Se asume tener instalado, configurado el Flex Builder, y un proyecto flex vacío.
- Creamos una carpeta "locale" en la raiz del proyecto
- Dentro de esta carpeta crearemos una carpeta por cada idioma, y con el nombre correspondiante ej: es_CL,en_US,pr_BR,ja_JP .. etc
- Ahora, dentro de cada directorio de idioma crearemos un archivo de igual nombre, como puede ser "recursoForm.properties", lo importante es que debe terminar con ".properties".
- En estos archivos colocaremoas las traducciones. ej:
pais = Chile
flag = Embed("images/chile.gif")
flag = Embed("images/chile.gif")
locate/en_US/recursoForm.properties
pais = US
flag = Embed("images/us.gif")
flag = Embed("images/us.gif")
locate/pt_BR/recursoForm.properties
pais = Brasil
flag = Embed("images/brasil.gif")
flag = Embed("images/brasil.gif")
locate/ja_JP/recursoForm.properties
pais = Japon
flag = Embed("images/japon.gif")
flag = Embed("images/japon.gif")
- Creamos las respectivas carpetas "images" en cada carpeta de los locales, donde colocamos las imagenes que hemos declarado.
- Ahora desde la linea de comando "cmd" nos dirigimos directorio de instalacion del sdk que utilicemos, en mi caso es:
C:\Archivos de programa\Adobe\Flex Builder 3 Plug-in\sdks\3.0.0\bin>
- Y ejecutamos el comando copylocale.exe, para cargar los nuevos idiomas, su sintaxis es: copylocale locale_original locale_nuevo
copylocale.exe en_US es_CL
copylocale.exe en_US pr_BR
copylocale.exe en_US pr_BR
- El en_US y el ja_JP vienen cargador por defecto.
- Podemos ver los que han sido cargado en :
- Ahora en las propiedades del proyecto, en la seccion "Flex Compiler", en los argumentos para el compilador, agregamos los nuevos locales:
-locale=es_ES,en_US -allow-source-path-overlap=true -source-path=..\locale\{locale}
- Bién ahora solo que hacer una pequeña aplicación donde lo podamos ver.
Y ejecutando la aplicación se puede apreciar así:
Al seleccionar el pais, también se carga el Label y la Image correspondiente
Hay dos formas de buscar un recurso:
- Una es usando la directiva @Resource: este es el método simple pero tiene varias limitaciones. Ejemplo, solo se puede usar en MXML, no se pueden cambiar los locales en tiempo de ejecución y solo devuelve Strings.
<mx:formitem label="@Resource(key='nombre', bundle='recursos')">
<mx:textinput>
</mx:textinput></mx:formitem>
- La otra forma es usando los métodos de la clase ResourceManager (como se muestra en el ejemplo): puede retornar distintos tipos de datos como int, Boolean, Number. Se pueden cambiar los locales en tiempo de ejecución
Cambiando los mensajes del sistema
Para cambiar los mensajes del sistema como "yes" por "si" , vamos a la carpeta de los locales, en mi caso:
C:\Archivos de programa\Adobe\Flex Builder 3 Plug-in\sdks\3.0.0\frameworks\locale\es_CL
Abrimos el archivo "framework_rb.swc", puede ser con winzip. Y editamos el archivo "controls.properties".
Y cambiamos donde dice:
yesLabel=Yes
por
yesLabel=Si
Y así podemos seguir con todas la que queramos.
Guardamos los cambios. Volvemos a compilar el proyecto y apareceran los cambios
1 comentario:
Admiration and interest were my first feelings when I’ve entered your blog. It is indeed the most remarkable creation I’ve ever seen! Moreover, your manner of writing and the photos are absolutely fine and I think everyone would agree with my words. All this made me immediately add the blog to my links. Thank you very much for such a marvelous web page and I will surely enter it again!
Publicar un comentario