Best practice per l'internazionalizzazione di un'applicazione Flex?
-
02-07-2019 - |
Domanda
Sto cercando di internazionalizzare un'applicazione Flex su cui sto lavorando e sono curioso di sapere se ci sono buone pratiche o raccomandazioni per farlo.
Cercare su google tali informazioni porta a una manciata di piccoli articoli e post di blog, ognuno sui quali lo fa diversamente, e i vantaggi e gli svantaggi non sono esattamente chiari.
Modificato in ambito ristretto:
- È necessario supportare solo due lingue (en_CA e fr_CA)
- È necessario essere in grado di passare in fase di esecuzione
Soluzione
Naturalmente, dopo aver cercato su Google un po 'di più, mi imbatto in un articolo su localizzazione runtime .
E segui questi passaggi:
Aggiungi quanto segue agli argomenti del compilatore per specificare le impostazioni locali supportate e il loro percorso: (In Flex Builder, seleziona project and go properties - > Flex Compiler - > Additional Compiler Argomenti)
-locale = en_CA, fr_CA -source-path = locale / {locale}
Crea i seguenti file:
src/locale/en_CA/resources.properties
src/locale/fr_CA/resources.properties
E poi il compilatore si lamenta: impossibile aprire 'C: \ Programmi \ Adobe \ Flex Builder 3 \ sdks \ 3.1.0 \ frameworks \ locale \ en_CA'
Che sembra essere correlato al bug SDK-12507
Soluzione:
Nella directory sdks \ 3.1.0 \ bin
, esegui i seguenti comandi:
copylocale en_US en_CA
copylocale en_US fr_CA
Questo creerà le directory delle impostazioni locali nell'installazione di Flex Builder e creerà alcune risorse necessarie in esse.
Quindi nei file .mxml
, fai riferimento al pacchetto di risorse:
<mx:Metadata>
[ResourceBundle("resources")]
</mx:Metadata>
E internazionalizza le stringhe:
<mx:TitleWindow title="Window Title">
diventa:
<mx:TitleWindow
title="{resourceManager.getString('resources', 'windowTitle')}">
e
var name:String = "Name";
diventa:
var name:String = resourceManager.getString("resources", "name");
E nel tuo file src / locale / en_CA / resources.properties
:
windowTitle=Window Title
name=Name