2008-09-25 15 views
5

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.Best practice per l'internazionalizzazione di un'applicazione Flex?

Cercare su Google informazioni di questo tipo si traduce in una manciata di piccoli articoli e post di blog, ognuno dei quali lo fa in modo diverso, e i vantaggi e gli svantaggi non sono esattamente chiari.

A cura di restringere la portata:

  • necessità di sostenere solo due lingue (en_CA e fr_CA)
  • devono essere in grado di passare in fase di esecuzione
+0

@Niko: Date un'occhiata a [questo articolo] (http://cookbooks.adobe.com/post_Change_Locale_at_the_runtime-11143 .html) – esBe

risposta

5

Naturalmente, dopo googling un po ' più mi imbatto in un articolo su runtime localization.

e seguito questi passi:

aggiungere quanto segue gli argomenti compilatore per specificare le localizzazioni supportate e il loro percorso: (In Flex Builder, selezionare progetto e andare proprietà -> Flex Compiler -> Ulteriori argomenti del compilatore)

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

Creare i seguenti file:

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

E poi il compilatore si lamenta: unable to open 'C:\Program Files\Adobe\Flex Builder 3\sdks\3.1.0\frameworks\locale\en_CA'

che sembra essere correlato al bug SDK-12507

aggirare:
Nella directory sdks\3.1.0\bin, eseguire i seguenti comandi:

copylocale en_US en_CA 
copylocale en_US fr_CA 

Questa volontà crea le directory locali nell'installazione di Flex Builder e crea alcune risorse necessarie in esse.

Poi nei file .mxml, fare riferimento al pacchetto di risorse:

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

e internazionalizzare le corde:

<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 src/locale/en_CA/resources.properties del file:

windowTitle=Window Title 
name=Name 
+0

Come si ottiene il runtime dello switch locale quando si utilizza il gestore risorse in ActionScript? –