Wenn ein Xcode-Projekt von iOS-App neu erstellt wird, in das Projekt (nicht Ziel) setzen wir sehen können, dass es Use Base internationalization
standardmäßig aktiviert ist, und es gibt zwei Dateien für die Development Language
lokalisiert, welche English
standardmäßig (eine für Main.storyboard
ist und eine für LaunchScreen.storyboard
, die sich beide im Verzeichnis Base.lproj
befinden). Im folgenden sehen Sie den Screenshot:Wie stelle ich eine andere Sprache als Englisch als Entwicklungssprache und Basislokalisierung ein?
(Der Einfachheit halber werde ich nur Main.storyboard
ab sofort erwähnen.)
Und in der Lokalisierungsabschnitt Main.storyboard
‚s der rechten Seitenwand, können wir sehen, dass Die Base
Lokalisierung ist standardmäßig aktiviert und es gibt auch eine English
Lokalisierung, die standardmäßig deaktiviert ist. Im folgenden sehen Sie den Screenshot:
Und im Ziel der Info.plist
gibt ein Schlüssel Localization native development region
(das heißt CFBundleDevelopmentRegion
) und dessen Standardwert ist en
benannt ist. Im folgenden sehen Sie den Screenshot:
Wenn ich es richtig verstanden habe, mit diesen Standardeinstellungen, Entwickler kann nur schreiben Englisch in der Base
Lokalisierung von Main.storyboard
und lassen Sie die English
Lokalisierung als nicht markiert. Wenn die App an eine andere Sprache angepasst werden muss, kann der Entwickler eine Lokalisierung in der Projektlokalisierungseinstellung hinzufügen und im Popup-Dialogfeld Main.storyboard
auswählen. Im folgenden sehen Sie den Screenshot:
Nehmen Chinese (Simplified)
als ein Beispiel, wird dies zur Folge haben in einem neu erstellten Verzeichnis zh-Hans.lproj
mit einer Main.strings
Datei in seinem Inneren. (Der Einfachheit halber werde ich es als Chinese
anstelle von Chinese (Simplified)
bezeichnen.) Entwickler muss nur die englischen Strings innerhalb dieser Datei ins Chinesische übersetzen (das neu erstellte Main.strings
im Verzeichnis zh-Hans.lproj
hat standardmäßig alle englischen Texte dupliziert von der Main.storyboard
in Base.lproj
). Mit diesen Einstellungen wird das Feld Language
in der Beschreibung dieser App im AppStore auf Englisch aufgeführt (von Base
, weil Englisch development language
ist) und Chinesisch (von Chinese
). Wenn auf dem Endgerät des Endbenutzers die Systemsprache Englisch/Chinesisch (oder Englisch/Chinesisch ist die bevorzugte Sprache) ist, verwendet die App die entsprechende Sprachressource (für Englisch verwenden Sie die Base
Lokalisierung; für Chinesisch verwenden Sie die Chinese
Lokalisierung). Für alle anderen Spracheinstellungen wird Englisch als Ausweichsprache verwendet, da CFBundleDevelopmentRegion
en
ist, also Base
Lokalisierung verwendet wird.
Also meine erste Frage wird sein, ist das obige Verständnis richtig? Zusammenfassend, mit development language
Englisch ist, müssen wir English
Lokalisierung für Storyboard-Dateien nicht aktivieren. Verwenden Sie einfach die Base
Lokalisierung und schreiben Sie Englisch direkt in die Storyboard-Dateien. Wir müssen lediglich die Lokalisierung für andere Sprachen als Englisch hinzufügen. (Eigentlich scheint es problematisch, wenn wir die English
Lokalisierung aktivieren.Wenn English
Lokalisierung aktiviert ist, dann müssen wir die Texte in Base.lproj/Main.storyboard
und en.lproj/Main.strings
halten beides.)
Wenn das obige Verständnis richtig ist, meine zweite Frage wird, wie Internationalisierung in umgekehrter Art und Weise zu erreichen? Das heißt, wenn ich Chinese
als development language
verwenden und Chinesisch in der Base
Lokalisierung schreiben und nur Lokalisierung für andere Sprachen als Chinese
hinzufügen möchte, ist es möglich und wie man das in Xcode macht? Ich kann keinen Weg finden, die development language
in der Projekteinstellung zu ändern, um zu behaupten, dass die Base
Lokalisierung in dem Projekt Chinese
anstatt English
ist.
Dies bedeutet, dass Sie Base (englisch) und chinesische Sprache. Wenn Sie sie übersetzen möchten, müssen Sie Texte in beiden Sprachzeichenfolgen setzen. Wenn die Sprache von den Einstellungen geändert wird, legt die App die übersetzte Zeichenfolge fest. Wenn Sie die Sprache über Ihre App (Gebietsschema) festlegen möchten, können Sie LocalizationSystem verwenden. https://github.com/rudensm/LocalizationSystem – Stefan
Bitte stellen Sie die Sprache nicht aus Ihrer App ein. Sie fragen nur nach Fehlern und einem Wartungs-Albtraum. – lensovet