Internationalization and Localization are important features for an web based application. Internationalization is implementing the features in your application to support multiple languages. Localization is creating text in a specific language that is presented through an internationalized application
also read:
The following example program demonstrates very simple program for implementing this concepts. if you look into the faces-config.xml file,locale-config element is used for specifying the default locale and supported locale information. In this sample application we have provided default as English and supported as French.
Use resource-bundle element to specify the name of the properties file to be used. For example if you create a resource bundle name as Messages, then all the language letters will be suffixed with the file name.In our case French locale is named as “Messages_fr”.The default will be “en”, it is not required to specify explicitly.
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <html> <body> <f:view> <h:form> <h:commandButton value="#{msg.cancel}" action="fail"/> <h:commandButton value="#{msg.submit}" action="success"/> </h:form> </f:view> </body> </html>
faces-config.xml
<?xml version='1.0' encoding='UTF-8'?> <faces-config version="1.2" 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_1_2.xsd"> <application> <locale-config> <default-locale>en</default-locale> <supported-locale>fr</supported-locale> <supported-locale>de</supported-locale> </locale-config> <resource-bundle> <base-name>javabeat.net.messages.Messages</base-name> <var>msg</var> </resource-bundle> </application> </faces-config>
Messages.properties
cancel=Cancel submit=Submit
Messages_fr.properties
cancel=annuler submit=envoyer