HelloWorld 02 - Mehrsprachige Programme entwickeln - 3. Texte einpflegen |
|
|
|
Geschrieben von: Philipp
|
TUESDAY, 11 MARCH 2008 15:54 |
Seite 4 von 6
3. Texte einpflegen
In beiden Sprach-Dateien müssen wir nun unsere Texte, in diesem Beispiel unser "Hello World" einpflegen.
Öffnet dazu bitte im Projektbaum durch Doppelklick die englische Sprachdatei. Ihr seht ein leeres Fenster, in welches Ihr folgendes eingeben müsst:
"helloworld" = "Hello World";
Speichert und schließt die Datei und macht das gleiche Ihr für die deutsche Sprachdatei, aber mit folgenden Inhalt:
"helloworld" = "Hallo Welt";
Zur Erklärung: Solche Sprachdateien haben die Syntax "key" = "tatsächlicher Text"; - wobei der key als eine Art eindeutige Identifizierung zu verstehen ist. Diese verwenden wir später im Quelltext, um unsere Texte an die jeweilige Stelle einzufügen. Gefolgt von einem Gleichheitszeichen und in "Gänsefüßchen" eingeschlossen kommt der tatsächlich darzustellende Text. Bitte das Semikolon am Ende nicht vergessen.
Sollen später noch mehr Texte in eurem Programm hinzugefügt werden, braucht Ihr einfach nur für jeden Text eine neue Zeile hinzufügen, z.B.:
englisch:
"key1" = "one";
"key2" = "two";
"key3" = "three";
deutsch:
"key1" = "eins";
"key2" = "zwei";
"key3" = "drei";
|
LAST_UPDATED2 |
Hat der iPhone Besitzer also spanisch aktiviert und du diese Sprache in deinem Programm nicht unterstützt - wählt das Betriebssystem autmatisch deine englische Sprachdatei aus. Wird auch diese nicht gefunden - werden die "key"-Namen von NSLocalizedString zurück gegeben.
jetzt hab ich aber nen view Based Projekt erstellt und das dort versucht umzusetzen, aber ohne Erfolg ich bekomme nur den wert in der Codezeile gezeigt nicht den wert aus dem string.
Habe alles gemacht Localizabel.string localizabel gemacht und dann NSLocalizedString(@"helloworld",@"Applikationsname")]
mein wert wird aber immer nur helloworld angezeigt, wie gesagt habe es schon oft hinbekommen aber im viewbased Projekt irgendwie nicht .
"helloworld" = "irgend ein Text, z.B. der Applikationsname";
Ein Detail wurde leider vergessen: zumindest ich musste noch für die einzelnen Sprachen in den Dateien unter "get info" die Codierung einstellen, da sonst Änderungen an den Textfiles nicht übernommen wurden. Die Codierung Eurer Wahl sollte dabei UTF-18 sein.
maw
Wie muss man das schreiben bei einem UILabel?
Ohne Sprache schreibe ich das so;
infoText.text = [NSString stringWithFormat:@"einen Text"];
Mit Sprache habe ich das versucht;
infoText.text = [NSString stringWithFormat:NSLocalizedString(@"key1",@"Applikationsname")];
infoText.text = NSLocalizedString(@"key1",@"Applikationsname");
infoText.text = [NSLocalizedString stringWithFormat:@"undotext"];
Aber es funktionniert nicht...
Danke für deine Hilfe
Das erste Tutorial, das nicht zu schwer, noch zu leicht für mich ist!
Doch eine Frage bleibt noch.
- Muss die Datei eigendlich Localizable heißen? und
- Kann man auch mehrere Localized Files haben? Schaut das dann wo der Key ist? Und wenn er doppelt vorkommt?
super Tutorial, funktioniert bei mir alles super im Simulator, wenn ich das Projekt jedoch auf meinem iPod Touch schiebe und dort ausprobiere, dann stehen für die Texte nur die Tagnamen da. Weiss jemand woran das liegen kann?
danke