Digamos que tiene dos siguientes archivos de mensajes
messages.properties
messages_de.properties
Configuración de la localidad de aplicaciones
Hay tres formas de establecer la La configuración regional de la aplicación y creo que necesita la primera aquí.
1-Puede permitir que el navegador elija la configuración regional.
establecer el valor predeterminado y locales soportados en WEB-INF/faces-config.xml:
<faces-config>
<application>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>de</supported-locale>
</locale-config>
</application>
</faces-config>
Cuando un navegador se conecta a su aplicación, por lo general incluye un valor Accept-Language en la cabecera HTTP
2-Puede configurar la configuración regional programáticamente.
Llame al método setLocale del objeto UIViewRoot:
UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
viewRoot.setLocale(new Locale("de"));
3-Usted puede configurar el idioma para una página individual
Al utilizar el elemento f:view
con un atributo, por ejemplo local:
<f:view locale="de">
La configuración regional se puede establecer dinámicamente:
<f:view locale="#{user.locale}"/>
mensaje Declarar lía
Ahora que la configuración regional está establecida puede utilizar una de las dos formas siguientes para declarar el mensaje lía
1-Via enfrenta-config La forma más sencilla es suministrar un archivo llamado faces-config.XML en el directorio WEB-INF de su aplicación, con el siguiente contenido:
<?xml version="1.0"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<resource-bundle>
<base-name>com.corejsf.messages</base-name>
<var>msgs</var>
</resource-bundle>
</application>
</faces-config>
2-En cada página JSF que necesita tener acceso a ella. En lugar de utilizar una declaración global paquete de recursos, se puede añadir el f: Elemento loadBundle a cada página JSF que necesita acceso al paquete, así:
<f:loadBundle basename="com.corejsf.messages" var="msgs"/>
En cualquier caso, los mensajes en el paquete son accesible a través de una variable de mapa con el nombre msgs.
Mostrando etiqueta apropiada en el botón Ahora digamos que presentar propiedades por defecto es decir Inglés tiene la propiedad
next=Next
y alemán tiene equivallent es decir
next=Weiter
y ha ajustado la configuración regional y declaró mesg paquete puede acceder a él para poner la etiqueta en un botón de comando como
<h:commandButton value="#{msgs.next}"/>
La respuesta anterior se extrae y modifica de Hortsmen Core Java Server Faces book.
Me gustaría agregar algo: En el punto 3. y 2.. En lugar de hacerlo para cada página JSF, puede hacerlo en template.xhtml. – karlihnos