In diesem Artikel möchte ich euch eine kleine aber sehr feine Funktion vorstellen, die euch beim Testen von Apps in verschiedenen Sprachen enorm unter die Arme greifen kann.
Mehrsprachigkeit ist eine der größten Herausforderungen, mit der man sich als Apple Developer konfrontiert sieht. Die unterschiedliche Länge von Wörtern, verschiedene Sprachzeichen oder sogar alternative Leserichtungen (von rechts nach links) sind alles Dinge, die bei einer App, die breit im internationalen Raum aufgestellt werden soll, ausführlich getestet werden müssen. Sie besitzen eine hohe Fehlerquote und gehen meist während des normalen Entwicklungsalltags unter, da man sich währenddessen eher auf die korrekte Umsetzung der Anwendung für eine bestimmte Sprache (in unserem Fall wohl meist Englisch oder Deutsch) konzentriert.
Gleichzeitig bietet Mehrsprachigkeit aber auch eine enorm Chance. Viele von uns kennen das womöglich selbst. Ich persönlich nutze beispielsweise tatsächlich lieber Apps, die (gut) ins Deutsche übersetzt sind (von Entwicklerwerzeugen wie Texteditoren oder IDEs einmal abgesehen). Beim Entwickeln eigener Apps, die international angeboten werden sollen, kann es für bestimmte Endkunden also den entscheidenden Unterschied machen, ob die Anwendungen in ihrer Heimatsprache zur Verfügung stehen oder nicht.
Application Language festlegen
Doch genug dem allgemeinen Thema „Mehrsprachigkeit“. Dank Xcode ist es möglich, eine App jederzeit in einer ganz bestimmten Sprache auszuführen, und das, ohne die Systemsprache des Simulators oder eines Endgeräts umzustellen. Letzteres wird nämlich spätestens dann zum Problem, wenn man eine Anwendung auf Chinesisch oder Arabisch testet und – wie in meinem Fall – beiden Sprachen nicht im geringsten mächtig ist.
Gesteuert wird diese Funktion über die Schemes eines App-Targets. Wenn man ein solches bearbeitet, findet sich im Abschnitt Run unter dem Reiter Options der Punkt Application Language. Darüber steht ein Dropdown-Menü zur Verfügung, in dem standardmäßig der Wert System Language ausgewählt ist.
Über Application Language lässt sich steuern, in welcher Sprache die App bei der Ausführung über Xcode gestartet werden soll. System Language bezieht sich auf die gesetzte Systemsprache von Simulator beziehungsweise Endgerät. Es lässt sich aber auch explizit eine beliebige andere der zur Verfügung stehenden Sprachen auswählen.
Wenn man die App nach Wechsel der Application Language über das jeweilige Scheme ausführt, wird sie im Simulator oder auf einem Endgerät in genau jener Sprache gestartet. So lässt sich ohne Umstellung des zugrundeliegenden Systems testen, wie gut die Übersetzungen gelungen sind und ob alle Views die Inhalte korrekt darstellen.
Pseudolanguage
Das geht sogar so weit, dass unter Application Language auch diverse sogenannte Pseudolanguages zur Auswahl zur Verfügung stehen. Die behalten die zugrundeliegende Systemsprache bei der Ausführung der App bei, ändern aber die Darstellung der Texte.
Die Right-to-Left Pseudolanguage beispielsweise ändert die eingangs genannte Leserichtung von dem für uns gewohnten links nach rechts nach rechts nach links. Entsprechend lässt sich so testen, wie sich die App zum Beispiel bei arabischen Übersetzungen verhält, ohne dafür die ganze Sprache umstellen zu müssen (und den Inhalt eventuell kaum noch zu verstehen). Auch interessant ist die Double-Length Pseudolanguage, die jeden Text doppelt darstellt. Damit lässt sich schnell überprüfen, wie sich eine App bei sehr langen Übersetzungen verhält.
Fazit
Für Apple ist Mehrsprachigkeit in Apps ein wichtiges Thema, das meist auch immer bei der alljährlichen WWDC eine große Rolle spielt. Dank der in Xcode integrierten Tools werden uns Entwicklern viele Hilfen angeboten, um unsere Apps in verschiedenen Sprachen zu testen. Die Möglichkeit zur Umstellung der App-Sprache über ein Scheme ist eine davon.
Wer dieses Feature übrigens des öfteren benötigt und bestimmte Sprachen immer und immer wieder testet, braucht nicht immer die Application Language im Scheme zu wechseln. In so einem Fall bietet es sich an, einfach ein bestehendes Scheme zu kopieren und die gewünschte Application Language fest einzustellen. Die Sprache kann man dann zum besseren Verständnis noch im Namen des Schemes unterbringen. So braucht man nur noch das Scheme zu wechseln, um eine App in einer anderen Sprache auszuführen.
Euer Thomas
Schreibe einen Kommentar