Lokalisierung von Strings in einer Windows 8-App

Der erste Schritt um eine Windows 8-App zu lokalisieren ist die Verwendung von mehrsprachigen Strings. Wie das geht, möchte ich ganz kurz darstellen:

  1. Deutsche Ressourcen-Datei im Projekt anlegen: Strings/de/Resources.resw
  2. Englische Ressourcen-Datei im Projekt anlegen: Strings/en/Resources.resw
  3. Ressourcen hinzufügen, Beispiel: Name „AppName.Text“ mit Value „Meine App“ (Wichtig: Das .Text muss angegeben werden, damit die Ressource als Text genutzt werden kann)
  4. Ressource verwenden:
    <TextBlock x:Uid="AppName" />

Um die Lokalisierung zu testen, muss die bevorzugte Sprache unter Systemsteuerung\Zeit, Sprache und Region\Sprache umgestellt werden.

Mit C# können auch Lokalisierungen benutzt werden. Allerdings darf dann der „Name“ nicht mehr „AppName.Text“ heißen (in der Datei Resources.resw), sondern nur noch „AppName“.

Beispiel

ResourceLoader loader = new Windows.ApplicationModel.Resources.ResourceLoader();
string text = loader.GetString("AppName");

3 Gedanken zu „Lokalisierung von Strings in einer Windows 8-App“

  1. Hi,
    If you’re interested to localize web software, PC software, mobile software or any other type of software, I warmly recommend a new l10n tool that my team recently developed and will probably make your work a lot faster and easier: http://poeditor.com/
    POEditor is intuitive and collaborative and has a lot of useful features to help your translations management process, which you can find enlisted on our website.
    You can import from multiple localization file formats (like pot, po, xls, xlsx, strings, xml, resx, properties) or just use our REST API.
    Feel free to try it out and recommend it to developers and everyone who might find it useful.

  2. Danke für den Code.
    Ich möchte noch eine Kleinigkeit ergänzen. Das .Text gilt nur für TextBlöcke. Für Buttons muss bspws. Content benutzt werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.