Pregunta

Estoy estudiando la internacionalización de una aplicación Flex en la que estoy trabajando y siento curiosidad por las mejores prácticas o recomendaciones para hacerlo.

Buscar en Google para obtener dicha información resulta en un puñado de pequeños artículos y publicaciones de blog, cada uno sobre cómo hacerlo de manera diferente, y las ventajas y desventajas no están del todo claras.

Editado para reducir el alcance:

  • Necesita admitir solo dos idiomas (en_CA y fr_CA)
  • Necesito poder cambiar en tiempo de ejecución
¿Fue útil?

Solución

Por supuesto, después de buscar un poco más en Google, me topé con un artículo sobre localización en tiempo de ejecución .

Y siguió estos pasos:

Agregue lo siguiente a los argumentos del compilador para especificar las configuraciones regionales compatibles y su ruta: (En Flex Builder, seleccione las propiedades del proyecto y vaya - > Flex Compiler - > Argumentos adicionales del compilador)

-locale = en_CA, fr_CA -source-path = locale / {locale}

Cree los siguientes archivos:

src/locale/en_CA/resources.properties
src/locale/fr_CA/resources.properties

Y luego el compilador se queja: no puede abrir 'C: \ Archivos de programa \ Adobe \ Flex Builder 3 \ sdks \ 3.1.0 \ frameworks \ locale \ en_CA'

Parece estar relacionado con el error SDK-12507

Solución:
En el directorio sdks \ 3.1.0 \ bin , ejecute los siguientes comandos:

copylocale en_US en_CA  
copylocale en_US fr_CA

Esto creará los directorios locales en la instalación de Flex Builder y generará algunos recursos necesarios en ellos.

Luego, en sus archivos .mxml , haga referencia al paquete de recursos:

<mx:Metadata>
    [ResourceBundle("resources")]
</mx:Metadata>

E internacionalizar las cadenas:

<mx:TitleWindow title="Window Title">

se convierte en:

<mx:TitleWindow 
    title="{resourceManager.getString('resources', 'windowTitle')}">

y

var name:String = "Name";

se convierte en:

var name:String = resourceManager.getString("resources", "name");

Y en su archivo src / locale / en_CA / resources.properties :

windowTitle=Window Title
name=Name
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top