Frage

Ich bin auf der Suche in eine Flex-Anwendung zu internationalisieren arbeite ich an, und ich bin gespannt, ob es irgendwelche Best Practices oder Empfehlungen sind so zu tun.

Googeln für solche Informationen Ergebnisse in einer Handvoll von kleinen Artikeln und Blog-Posts, die jeweils über es anders zu machen, und die Vor- und Nachteile sind nicht ganz klar.

Edited engen Anwendungsbereich:

  • Sie benötigen nur zwei Sprachen (en_CA und fr_CA)
  • Unterstützung
  • muß in der Lage sein, zur Laufzeit wechseln
War es hilfreich?

Lösung

Natürlich, nach googeln ein bisschen mehr ich auf einen Artikel kommen auf Laufzeit-Lokalisierung .

Und gefolgt vor:

Fügen Sie folgende zu den Compiler-Argumente die unterstützten Sprachen und deren Pfad angeben: (In Flex Builder, wählen Sie Projekt und Eigenschaften gehen -> Flex Compiler -> Zusätzliche Compiler-Argumente)

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

Erstellen Sie die folgenden Dateien:

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

Und dann der Compiler beschwert: unable to open 'C:\Program Files\Adobe\Flex Builder 3\sdks\3.1.0\frameworks\locale\en_CA'

Welche abzuhören SDK-12507

Umgehen:
Im sdks\3.1.0\bin Verzeichnis, führen Sie die folgenden Befehle ein:

copylocale en_US en_CA  
copylocale en_US fr_CA

Das wird die locale Verzeichnisse im Flex Builder Installation erstellen und einige benötigten Ressourcen in sie bauen.

Dann in Ihren .mxml Dateien verweisen auf das Ressourcenbündel:

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

Und internationalisieren die Saiten:

<mx:TitleWindow title="Window Title">

wird:

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

und

var name:String = "Name";

wird:

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

Und in Ihrer src/locale/en_CA/resources.properties-Datei:

windowTitle=Window Title
name=Name
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top