Meine Frage:
Wie kann meine iPhone-App dem iOS mitteilen, dass der Benutzer in den App-Einstellungen eine Sprache ausgewählt hat, die sich von der in den allgemeinen Einstellungen festgelegten Sprache unterscheidet?
Andere Formulierung der gleichen Frage:
Wie kann ich dem System mitteilen, dass NSLocalizedString (@"text", @"comment");
nicht auf die systemweit ausgewählte Sprache, sondern auf die in der App ausgewählte Sprache zugegriffen werden soll?
Hintergrund, Beispiel:
Bitte nehmen Sie diese Situation als Beispiel: Ein Sohn deutscher Einwanderer lebt im Nordosten Frankreichs neben Luxemburg und Deutschland. Seine Muttersprache ist Französisch, daher hat er die Sprache der Benutzeroberfläche seines iPhones auf Französisch eingestellt (Einstellungen -> Allgemein -> International -> Sprache -> Français). Aufgrund seines kulturellen Hintergrunds und der zweisprachigen Region, in der er lebt, spricht er auch sehr gut Deutsch. Aber er spricht keine zehn Wörter Englisch. Auf einem iPhone (und auch auf einem iPad) hat er keine Möglichkeit, eine zweite Sprache auszuwählen, sodass das Telefon nur weiß, dass er Französisch spricht. Es hat keine Kenntnisse über die Fähigkeiten des Benutzers in anderen Sprachen.
Jetzt kommt meine App: Ich habe sie in Englisch und Deutsch entwickelt (Deutsch ist meine Muttersprache und Englisch ist Standardsprache in der IT). Ich habe es nach allen Regeln und Best Practices für mehrsprachige iOS-Apps entwickelt. "Erste" Sprache (Standardsprache) meiner App ist Englisch.
Das heisst:
Wenn jemand in seinen Einstellungen Englisch oder Deutsch ausgewählt hat, verwendet die Benutzeroberfläche der Apps automatisch die ausgewählte Sprache. Der Benutzer wird nicht einmal bemerken, dass andere Sprachen verfügbar sind.
Wenn er jedoch in den allgemeinen Einstellungen eine andere Sprache (wie Chinesisch, Polnisch oder Französisch) ausgewählt hat, erhält er die Standardsprache der Apps, in meinem Fall Englisch. Aber für meinen französisch-deutschen Freund ist dies nicht die beste Wahl. Er möchte die vorhandene deutsche Version verwenden, aber es scheint keine Möglichkeit zu geben, den Benutzer diese Version auswählen zu lassen.
Das Hinzufügen einer französischen Übersetzung würde das Problem für unseren französisch-deutschen Freund lösen, aber nicht für Leute, die zwei andere Sprachen sprechen (wie Italienisch und Deutsch), und ich kann meine App nicht mit allen auf diesem Planeten gesprochenen Sprachen unterstützen. Das Einstellen der Standardsprache auf Deutsch ist ebenfalls nicht optimal, da dies das gleiche Problem für Personen aufwerfen würde, die Französisch (eine Muttersprache) und Englisch (als Zweitsprache) sprechen.
Daher denke ich, dass meine App die Möglichkeit haben muss, manuell eine Sprache auszuwählen, die sich von der vorgewählten Sprache unterscheidet. Das Hinzufügen einer Sprachauswahl zum App-Einstellungsfeld ist nicht das Problem. Aber wie kann ich dem System mitteilen, dass NSLocalizedString (@"text", @"comment");
es nicht auf die systemweit ausgewählte Sprache zugreifen soll, sondern auf die in der App ausgewählte Sprache?