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
È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top