Mehrsprachige iPhone App

Januar 13th, 2009

Stellt euch vor ihr habt gerade ein kleines Spiel fürs iPhone geschrieben und zwar in deutsch. Da ihr aber ein möglichst großes Publikum ansprechen wollt, sollte es auch eine englische Version geben. Wie aber geht man das Problem an? Ich habe mal ein wenig gegoogelt.

In eurem Xcode Projektverzeichnis legt ihr zwei Verzeichnisse an: “de.lproj” und “en.lproj”

crusher_locale_dirs.jpg

Nun fügt ihr eurem Projekt mittels Add -> New File … -> Other -> Strings File zwei neue Dateien “Localizable.strings” hinzu. Eins in das “de.lproj” und die andere in das “en.lproj” Verzeichnis.

crusher_locale_newfile.jpg crusher_locale_newfile_en.jpg crusher_locale_newfile_de.jpg

Eure Projektansicht sollte nun so aussehen:

crusher_locale_xcode_0.jpg

Ich habe als Beispiel mal ein Hauptmenü genommen, der Code sieht noch wie folgt aus:

1
2
3
4
5
6
7
MenuItem *start =
    [MenuItemFont itemFromString:@"Starte Spiel"
    target:self selector:@selector(startGame:)];
 
MenuItem *help =
    [MenuItemFont itemFromString:@"Hilfe"
    target:self selector:@selector(help:)];

Die Strings “Starte Spiel” und “Hilfe” ersetzen wir nun durch die NSLocalizedString() Funktion. StartGameKey und HelpKey geben an welchen String wir an der besagten Stelle haben möchten, übersetzt natürlich ;)

1
2
3
4
5
6
7
8
9
MenuItem *start =
    [MenuItemFont itemFromString:
    NSLocalizedString(@"StartGameKey", @"")
    target:self selector:@selector(startGame:)];
 
MenuItem *help =
    [MenuItemFont itemFromString:
    NSLocalizedString(@"HelpKey", @"")
    target:self selector:@selector(help:)];

Noch unsere beiden Localizable.strings Dateien bearbeiten, denn aus diesen holt sich unser Programm später die Übersetzten Strings.

Für Deutsch:

1
2
"StartGameKey" = "Starte Spiel";
"HelpKey" = "Hilfe";

und Englisch:

1
2
"StartGameKey" = "Start Game";
"HelpKey" = "Help";

Und schon bekommen wir je nach Spracheinstellung der iPhones die passenden Übersetzungen geliefert :) Sollte eine Sprache eingestellt sein, für die wir keine Übersetzung anbieten wird anscheinend die Englische Übersetzung genommen, was in den meisten Fällen völlig ok ist.

Ähnliche Beiträge:

Entry Filed under: Programmieren, iPod / iPhone


Translator

Seiten

Letzte Artikel

Kategorien

Archiv

Meta


Page optimized by WP Minify WordPress Plugin