Internacionalizar Aplicacion Web ADF 11g

En este post explicare como internacionalizar una aplicación web en ADF 11g.

Con esto haremos que nuestra aplicación tome el idioma que tiene configurado nuestro navegador y muestre el contenido de nuestra pagina como son etiquetas de los componentes ADF en el idioma correspondiente. Creamos una nueva aplicacion Fusion Web Aplication.

Creamos una nueva pagina JSF.

Dentro de esta pagina vamos a poner una caja de texto,un botón y un panel con pestañas.

Bien primero que nada le tenemos que configurar la aplicación con los idiomas que esta va a soportar para esto abrimos el archivo faces-config.xml (contenido dentro de la carpeta WEB-INF) dentro de la pestaña Overview y dentro de la opción Application->Locale Config daremos de alta los idiomas que seran soportados, para este caso pondremos ingles, español y portugues, de la siguiente manera:

Es momento de crear las configuraciones nuestra aplicación para que esta se muestre en diferente idiomas, para lo cual vamos a dar clic secundario sobre el proyecto ViewController y nos vamos a Project Properties

Dentro de las propiedades nos vamos a Resources Bundles y configurarlo para que quede de la siguiente forma:

Ahora para poder configurar las etiquetas en necesario crear un archivo .properties (dentro del paquete donde anteriormente configuramos los Resource Bundles) el cual contendra el identificador de la etiqueta y su valor, es necesario tomar en cuenta que si nuestra aplicación soporta 3 idiomas es necesario crear 3 archivos uno para el sistema default, uno para cada uno de los otros idiomas de la siguiente forma:

  • [nombreBundle].properties (Para el idioma default)
  • [nombreBundle]_[lang].properties (Para los idiomas alternos)
  • [nombreBundle]_[lang].properties (Para los idiomas alternos)

Para nuestro caso quedaria como sigue:

  • myBundle.properties
  • myBundle_en.properties
  • myBundle_pt.properties

Bien ahora editemos cada uno de los archivos .properties myBundle.properties tabtitle=Pagina de Prueba lbltext=Texto lblbtn=Presiona myBundle_en.properties tabtitle=Test Page lbltext=Text lblbtn=Press Here Ahora cuando nuestros archivos ya estan listo es necesario dentro de una pagina utilizar la siguiente etiqueta <f:loadbundle> esto permite cargar nuestro resource bundle y accesar a los identificadores de la siguiente manera #{sampleBundle[labtitle]}.

La etiqueta contiene la propiedad var la cual es usada para definir una variable de acceso a al recurso <f:loadbundle basename=”pruebas.view.myBundle” var=”sampleBundle”>. Aqui un ejemplo de como quedaria la pagina creada anteriormente utilizando los valores de nuestro archivo .properties.

<f:loadBundle basename=”myBundle.myBundle” var=”sampleBundle”>
<af:panelTabbed binding=”#{backingBeanScope.backing_localize.pt1}” id=”pt1″> <af:showDetailItem text=”#{sampleBundle[labtitle]}” binding=”#{backingBeanScope.backing_localize.sdi1}” id=”sdi1″>
<af:inputText label=”#{sampleBundle[lbltext]}” binding=”#{backingBeanScope.backing_localize.it1}” id=”it1″/>
<af:commandButton text=”#{sampleBundle[lblbtn]}” binding=”#{backingBeanScope.backing_localize.cb1}” id=”cb1″/>
</af:showDetailItem> </af:panelTabbed>

Para finalizar hay que dar de alta nuestro Resource Bundle en el archivo faces-config.xml

Listo ahora nuestra aplicació es capaz de soportar 3 idiomas diferentes Espero les sea de ayuda y espero sus comentarios.

2 comentarios en “Internacionalizar Aplicacion Web ADF 11g

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s