Ich stieß auf dieses Problem, bei dem der Name der App auf dem Startbildschirm in der falschen Sprache angezeigt wird. Dies geschieht nur, wenn keine der bevorzugten Sprachen des Benutzers von der App unterstützt wird. Ich habe dies in Xcode 8 und iOS 10 mit mehreren Projekten sowohl im Simulator als auch in einem echten Gerät getestet.
Wenn keine der vom Benutzer bevorzugten Sprachen von der App unterstützt wird, wird die Sprache der Benutzeroberfläche unter Verwendung des Entwicklungsbereichs der App ( CFBundleDevelopmentRegion
) angezeigt, wie in dieses Dokument . So weit, ist es gut. Der App-Name auf dem Startbildschirm berücksichtigt dies jedoch nicht und scheint Englisch oder den ersten .lproj
-Ordner alphabetisch auszuwählen (falls Englisch nicht vorhanden ist).
Nehmen wir an, meine App unterstützt die folgenden Sprachen:
Und meine Geräteeinstellungen sehen so aus:
Die folgende Aussage:
%Vor%gibt das erwartete Ergebnis zurück:
%Vor%Und diese andere Aussage:
%Vor%gibt auch das erwartete Ergebnis zurück:
%Vor%Der Name der App auf dem Startbildschirm verwendet jedoch die falsche Lokalisierung:
Vermisse ich etwas? Ist jemand von Ihnen auf dieses Problem gestoßen?
Zu reproduzierende Schritte:
Erwartete Ergebnisse:
Die Benutzeroberfläche und der App-Name werden voraussichtlich in der App-Entwicklungssprache (im Beispiel Chinesisch) angezeigt.
Beobachtete Ergebnisse:
Die Benutzeroberfläche wird in der App-Entwicklungssprache angezeigt (Chinesisch im Beispiel), während der App-Name in Japanisch angezeigt wird.
Zunächst ist dies eine exemplarische Frage mit vielen Details und einem guten Leitfaden, um Ihr Problem zu reproduzieren;)
Analyse
Dieses Verhalten scheint ein Bug zu sein, der mit iOS 10 beginnt. Ich konnte es nicht auf iOS9.3 reproduzieren, wo der erwartete Bundle-Anzeigename "Chinesisch" angezeigt wird. iOS 11 Beta 4 scheint auch diesen Fehler zu haben. Sie sollten Apple einen Fehler melden (siehe BugReporter )
Ich habe das alles mit einer App getestet, die von Xcode8.3.3 mit iOS 10.3 SDK erstellt wurde.
Workaround
Als einfache Abhilfemaßnahme könnten Sie den CFBundleDisplayName in der Info.plist auf den lokalisierten Wert der DevelepmentRegion-Language ("Chinese") setzen, der als Standardwert fungiert.
Tags und Links ios localization