1   package ch.ige.edossier.web.struts;
2   
3   import java.util.Locale;
4   import javax.servlet.http.HttpServletRequest;
5   import javax.servlet.http.HttpServletResponse;
6   import org.apache.log4j.Logger;
7   import org.apache.struts.action.*;
8   import ch.ige.edossier.util.ClientLogInit;
9   
10  /**
11   * B32.03 - eDossier-Interceptions - Diplomarbeit an der Software-Schule Schweiz<br>
12   * Die Klasse LanguageAction übersteuert die Systemsprache und stellt dem Benutzer die
13   * Webapplikation in der ausgewählten Sprache zur Verfügung.
14   * <p>
15   * Copyright (c) 2004, Eidgenössisches Institut für Geistiges Eigentum
16   * @author    Anita Rueegsegger, Marc Bouquet
17   * @version   $Id: LanguageAction.java,v 1.8 2004/10/22 01:58:23 bouquet Exp $
18   */
19  public class LanguageAction extends Action
20  {
21    // Attribute für Log4j-Logging
22    private static final Logger LOG = Logger.getLogger( "ch.ige.edossier.web.struts" );
23  
24    /** Diese Methode wird einmal und noch vor dem Classloader ausgeführt.
25     *  Logging wird inizialisiert
26     */
27    static
28    {
29      ClientLogInit.initLogging();
30    }
31  
32    /**
33     * Die Methode wird ausgeführt, wenn auf der index.jsp ein Button ausgewählt wurde. Mit dieser Methode wird die Sprach-Steuerung
34     * der Web-Applikation umgesetzt.
35     * @param actionMapping ActionMapping
36     * @param actionForm ActionForm
37     * @param httpServletRequest HttpServletRequest
38     * @param httpServletResponse HttpServletResponse
39     * @return ActionForward
40     */
41    public ActionForward execute( ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse )
42    {
43      String language = httpServletRequest.getParameter( "lang" );
44      ActionForward forward = null;
45      Locale local = null;
46  
47      if( language.equalsIgnoreCase( "de" ) )
48      {
49        local = new Locale( language, "" );
50        setLocale( httpServletRequest, local );
51        forward = new RedirectingActionForward();
52        forward = ( actionMapping.findForward( "forward" ) );
53        LOG.info( "Die Sprache Deutsch wurde vom Benutzer ausgewählt." );
54      }
55      else if( language.equalsIgnoreCase( "fr" ) )
56      {
57        local = new Locale( language, "" );
58        setLocale( httpServletRequest, local );
59        forward = ( actionMapping.findForward( "forward" ) );
60        LOG.info( "Die Sprache Französisch wurde vom Benutzer ausgewählt." );
61      }
62      else if( language.equalsIgnoreCase( "it" ) )
63      {
64        local = new Locale( language, "" );
65        setLocale( httpServletRequest, local );
66        forward = new RedirectingActionForward();
67        forward = ( actionMapping.findForward( "forward" ) );
68        LOG.info( "Die Sprache Italienisch wurde vom Benutzer ausgewählt." );
69      }
70      else if( language.equalsIgnoreCase( "en" ) )
71      {
72        local = new Locale( language, "" );
73        setLocale( httpServletRequest, local );
74        forward = new RedirectingActionForward();
75        forward = ( actionMapping.findForward( "forward" ) );
76        LOG.info( "Die Sprache Englisch wurde vom Benutzer ausgewählt." );
77      }
78      else
79      {
80        local = new Locale( "de", "" );
81        setLocale( httpServletRequest, local );
82        forward = new RedirectingActionForward();
83        forward = ( actionMapping.findForward( "forward" ) );
84        LOG.info( "Es wurde kein Sprachcode übergeben. Es wird die Standard-Sprache geladen." );
85      }
86      return forward;
87    }
88  }
89