<Node id="bye.xhtml" x="650" y="750" zoom="true"/>
<Node id="index.xhtml" x="650" y="450" zoom="true"/>
<Node id="user/register_done.xhtml" x="1400" y="300" zoom="true"/>
- <Node id="user/user_profile.xhtml" x="400" y="150" zoom="true"/>
<Node id="login/login_change_personal_data.xhtml" x="150" y="600" zoom="true"/>
+ <Node id="user/user_profile.xhtml" x="400" y="150" zoom="true"/>
+ <Node id="*" x="650" y="150" zoom="true"/>
<Node id="imprint.xhtml" x="1150" y="150" zoom="true"/>
<Node id="user/show_addressbook.xhtml" x="900" y="300" zoom="true"/>
- <Node id="*" x="650" y="150" zoom="true"/>
<Node id="user/login_error.xhtml" x="1150" y="450" zoom="true"/>
<Node id="login/login_other_addressbooks.xhtml" x="650" y="600" zoom="true"/>
<Node id="user/show_addressbook_entries.xhtml" x="1650" y="300" zoom="true"/>
<Node id="admin/admin_index.xhtml" x="650" y="300" zoom="true"/>
<Node id="login/login_change_email_address.xhtml" x="150" y="1050" zoom="true"/>
<Node id="user/lost_passwd.xhtml" x="400" y="300" zoom="true"/>
- <Node id="login/login_list_sharing_addressbooks.xhtml" x="1400" y="150" zoom="true"/>
<Node id="user/login.xhtml" x="400" y="450" zoom="true"/>
+ <Node id="login/login_list_sharing_addressbooks.xhtml" x="1400" y="150" zoom="true"/>
<Node id="login/login_edit_user_data.xhtml" x="150" y="750" zoom="true"/>
</Scope>
<Scope Scope="All Faces Configurations">
*/
package org.mxchange.addressbook.beans.localization;
+import java.text.MessageFormat;
import java.util.Locale;
import javax.annotation.PostConstruct;
import javax.faces.bean.SessionScoped;
/**
* Serial number
*/
- private static final long serialVersionUID = 1_867_671_657_629_601_528L;
+ private static final long serialVersionUID = 158_768_216_759_107L;
/**
* Current Locale
@Override
public String getLanguage () {
- return this.getLocale().getLanguage();
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("JobsLocalizationSessionBean::getLanguage(): locale.language={0} - EXIT!", this.getLocale().getLanguage())); //NOI18N
+ return this.getLocale().getLanguage().toLowerCase();
}
@Override
public void setLanguage (final String language) {
- this.setLocale(new Locale(language));
- FacesContext.getCurrentInstance().getViewRoot().setLocale(this.getLocale());
+ // Log trace message
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("JobsLocalizationSessionBean::setLanguage: language={0} - CALLED!", language)); //NOI18N
+
+ // Language splits
+ String[] splits = language.split("_");
+ if (null == splits[1]) {
+ splits[1] = "";
+ }
+
+ // Get new locale with upper-case country code
+ Locale loc = new Locale(splits[0], splits[1]);
+
+ // Log debug message
+ this.getLoggerBeanLocal().logDebug(MessageFormat.format("JobsLocalizationSessionBean::setLanguage: loc={0}", loc)); //NOI18N
+
+ // Set it here and in the JSF context
+ this.setLocale(loc);
+ FacesContext.getCurrentInstance().getViewRoot().setLocale(loc);
+
+ // Log trace message
+ this.getLoggerBeanLocal().logTrace("JobsLocalizationSessionBean::setLanguage: EXIT!"); //NOI18N
}
@Override
public Locale getLocale () {
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("JobsLocalizationSessionBean::getLocale(): locale={0} - EXIT!", this.locale)); //NOI18N
return this.locale;
}
@Override
public void setLocale (final Locale locale) {
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("JobsLocalizationSessionBean::setLocale(): locale={0} - CALLED!", locale)); //NOI18N
this.locale = locale;
}
+ @Override
+ public Locale[] getSelectableLocalizations () {
+ Locale[] locales = {Locale.GERMANY, Locale.US};
+ return locales;
+ }
+
/**
* Initializer for this bean
*/
@PostConstruct
public void init () {
+ // Log trace message
+ this.getLoggerBeanLocal().logTrace("JobsLocalizationSessionBean::init: CALLED!"); //NOI18N
+
// Create locale instance from context
Locale loc = FacesContext.getCurrentInstance().getExternalContext().getRequestLocale();
+ // Log debug message
+ this.getLoggerBeanLocal().logDebug(MessageFormat.format("JobsLocalizationSessionBean::init: loc={0}", loc)); //NOI18N
+
// Set it here
this.setLocale(loc);
+
+ // Log trace message
+ this.getLoggerBeanLocal().logTrace("JobsLocalizationSessionBean::init: EXIT!"); //NOI18N
}
}
*/
void setLanguage (final String language);
+ /**
+ * Getter for selectable localizations
+ * <p>
+ * @return Selectable localizations
+ */
+ Locale[] getSelectableLocalizations ();
+
}
PAGE_TITLE_LOGIN_CHANGE_PERSONAL_DATA=Ihre persoenlichen Daten aendern
#TODO: Please fix German umlaut!
CONTENT_TITLE_LOGIN_CHANGE_PERSONAL_DATA=Aendern Ihrer Adresse, Telefonnummer usw.:
+SELECT_LANGUAGE=Sprache:
+DE_DE=Deutsch (DE)
+EN_US=Englisch (US)
CONTENT_TITLE_LOGIN_CHANGE_EMAIL_ADDRESS=Enter new email address:
PAGE_TITLE_LOGIN_CHANGE_PERSONAL_DATA=Change your personal data
CONTENT_TITLE_LOGIN_CHANGE_PERSONAL_DATA=Change your address, phone number or others:
+SELECT_LANGUAGE=Language:
+DE_DE=German (DE)
+EN_US=English (US)
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
<application>
<locale-config>
- <default-locale>de</default-locale>
+ <default-locale>de_DE</default-locale>
<supported-locale>en_US</supported-locale>
</locale-config>
</application>
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core">
- <h:head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <f:view locale="#{localization.locale}" contentType="text/html">
+ <h:head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <f:loadBundle var="msg" basename="org.mxchange.localization.bundle" />
- <f:view locale="#{localization.locale}" />
+ <f:loadBundle var="msg" basename="org.mxchange.localization.bundle" />
- <h:outputStylesheet name="/css/default.css" />
- <h:outputStylesheet name="/css/cssLayout.css" />
+ <h:outputStylesheet name="/css/default.css" />
+ <h:outputStylesheet name="/css/cssLayout.css" />
- <title>Addressbook - <ui:insert name="title">Default title</ui:insert></title>
- </h:head>
+ <title>Addressbook - <ui:insert name="title">Default title</ui:insert></title>
+ </h:head>
- <h:body>
- <div id="top">
- <div id="header">
- <div id="title">
- <h1>Addressbook - <ui:insert name="title">Default title</ui:insert></h1>
+ <h:body>
+ <div id="top">
+ <div id="header">
+ <div id="title">
+ <h1>Addressbook - <ui:insert name="title">Default title</ui:insert></h1>
+ </div>
</div>
</div>
- </div>
- <div id="menu_content">
- <div id="left">
- <ui:insert name="menu">Default menu</ui:insert>
- <ui:include src="/WEB-INF/templates/generic/locale_selection_box.tpl" />
- </div>
-
- <div id="content_outer" class="left_content">
- <div id="content_header">
- <ui:insert name="content_header">Default content header</ui:insert>
+ <div id="menu_content">
+ <div id="left">
+ <ui:insert name="menu">Default menu</ui:insert>
+ <ui:include src="/WEB-INF/templates/generic/locale_selection_box.tpl" />
</div>
- <div id="content">
- <ui:insert name="content">Default content</ui:insert>
+ <div id="content_outer" class="left_content">
+ <div id="content_header">
+ <ui:insert name="content_header">Default content header</ui:insert>
+ </div>
+
+ <div id="content">
+ <ui:insert name="content">Default content</ui:insert>
+ </div>
</div>
- </div>
- <div class="clear"></div>
- </div>
+ <div class="clear"></div>
+ </div>
- <div id="footer">
- <ui:insert name="footer">Default footer</ui:insert>
- </div>
- </h:body>
+ <div id="footer">
+ <ui:insert name="footer">Default footer</ui:insert>
+ </div>
+ </h:body>
+ </f:view>
</html>
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:form id="locale_selection">
- <h:selectOneMenu value="#{localization.language}" onchange="submit()">
- <f:selectItem itemValue="de" itemLabel="Deutsch" />
- <f:selectItem itemValue="en" itemLabel="English" />
+ <h:selectOneMenu id="language_selection" value="#{localization.language}" onchange="submit()">
+ <f:selectItem itemLabel="#{msg.SELECT_LANGUAGE}" noSelectionOption="true" />
+ <f:selectItems value="#{localization.selectableLocalizations}" var="l" itemValue="#{l}" itemLabel="#{msg[l.toString().toUpperCase()]}" />
</h:selectOneMenu>
</h:form>
</ui:composition>
float: left;
background-color: #ece3a5;
padding: 5px;
- width: 150px;
+ width: 170px;
}
#right {
.left_content {
padding: 5px;
- margin-left: 170px;
+ margin-left: 190px;
}
#top a:link, #top a:visited {