1.12.2008

Probleme mit Lokalisierung bei iPhone SDK 2.2

large-icon1.jpg Murphy allerorten – Nachdem meine erste iPhone-Anwendung fertig war, kam gerade das neue iPhone SDK 2.2 raus. „Klar, das stelle ich noch schnell um“ dachte ich mir und es funktionierte auch auf Anhieb. Natürlich war auch eine neue Entwicklungsumgebung dabei. Also alles schnell neu gebaut und brav in den AppStore zur Begutachtung eingereicht.

Vier Tage später konnte ich mein Werk in iTunes begutachten. Zufrieden kaufte ich mein eigenes Programm. Kaum Herunter geladen musste ich bestürzt feststellen, dass zwar alle Hilfetexte und die View-Vorlagen korrekt übersetzt waren, jedoch alle anderen Texte nicht in Deutsch, sondern in Englisch angezeigt wurden. Nach einer hektischen Suche und Installation des 2.1 SDKs wurde ich schließlich fündig.

Andere Benutzer hatten mittlerweile dasselbe Problem. Die Lösung sieht wie folgt aus: Für lokalisierte Strings wird jeweils eine „Localized.strings“-Datei für jede Sprache angelegt. Im Nachhinein erinnere ich mich, irgendwo gelesen zu haben, dass diese Datei zwingend UTF-16 kodiert sein muss. Da ich die Datei mit XCode angelegt hatte, habe ich mir darum aber nicht gekümmert. Die werden schließlich wissen, was sie tun… Und mit 2.1 lief auch alles prima.

Mit dem SDK 2.2, vielmehr mit der mitgelieferten Version von XCode, änderte sich das schlagartig. Meine Datei war in Wirklichkeit in UTF-8 kodiert. Beim Bauen wird diese umgewandelt und bekommt dabei die aktuelle Prozess-ID angehängt. Damit heißt sie nicht mehr „Localized.strings“, sondern z.B. „Localized.strings.125334“. Deshalb wird sie dann zur Laufzeit nicht mehr gefunden und die Texte kommen halt in Englisch.

Beheben kann man das Ganze dadurch, dass man die Datei in XCode explizit nach UTF-16 umwandelt. Danach ging es dann auch mit Version 2.2. Kleine Ursache – große Wirkung. Und so gab es bereits nach 1 Tag das erste Update in den AppStore. Jetzt weiß ich wenigstens auch gleich, wie das funktioniert…

Ich hoffe, dieser Beitrag hilft dabei, das Problem aus der Welt zu schaffen. Fazit: Keine Änderungen kurz vor Torschluss!

P.S.: Die Anwendung heißt „Math Trainer“ und kann unter http://www.think-intelligent.com/mathtrainer begutachtet werden.

Hinterlasse einen Kommentar

Dein Kommentar:

Kategorien