Wie wird eine andere Sprache als Englisch als Entwicklungssprache und Basislokalisierung festgelegt?
Wenn ein Xcode-Projekt der iOS-App neu erstellt wird, können wir in der Projekteinstellung (nicht Zieleinstellung) erkennen, dass es @ haUse Base internationalization
ist standardmäßig aktiviert, und für das @ sind 2 Dateien lokalisierDevelopment Language
welches istEnglish
standardmäßig (eine fürMain.storyboard
und eins fürLaunchScreen.storyboard
, beide befinden sich imBase.lproj
Verzeichnis). Siehe unter dem Screenshot:
(Der Einfachheit halber werde ich nur @ erwähnMain.storyboard
von jetzt an.
Und im Lokalisierungsabschnitt vonMain.storyboard
uf der rechten Seite von @ können wir sehen, dass dasBase
ie @ -Lokalisierung ist standardmäßig aktiviert und es gibt auch einEnglish
localization ist standardmäßig deaktiviert. Siehe unter dem Screenshot:
Und im @ des ZieInfo.plist
, es gibt einen Schlüssel mit dem NamenLocalization native development region
(d. h.CFBundleDevelopmentRegion
) und sein Standardwert isten
. Siehe unter dem Screenshot:
Wenn ich es richtig verstehe, kann der Entwickler mit diesen Standardeinstellungen einfach Englisch in das @ schreibeBase
Lokalisierung vonMain.storyboard
und verlasse dasEnglish
localization als deaktiviert markieren. Wenn die App an eine andere Sprache angepasst werden muss, kann der Entwickler der Projektlokalisierungseinstellung eine Lokalisierung hinzufügen und @ auswähleMain.storyboard
im aufgerufenen Dialog. Siehe unter dem Screenshot:
NehmenChinese (Simplified)
als Beispiel führt dies zu einem neu erstellten Verzeichniszh-Hans.lproj
mit einerMain.strings
Datei drin. (Der Einfachheit halber bezeichne ich es alsChinese
Anstatt vonChinese (Simplified)
.) Der Entwickler muss nur die englischen Zeichenfolgen in dieser Datei ins Chinesische übersetzen (das neu erstellteMain.strings
in demzh-Hans.lproj
m @ -Verzeichnis sind standardmäßig alle englischen Texte aus dem @ -Verzeichnis duplizierMain.storyboard
imBase.lproj
). Mit diesen Einstellungen wird dasLanguage
as @ -Feld in der Beschreibung dieser App im AppStore listet Englisch auf (vomBase
Lokalisierung, weil Englisch das @ idevelopment language
) und Chinesisch (vomChinese
Lokalisierung). Wenn auf dem Endbenutzergerät die Systemsprache Englisch / Chinesisch ist (oder Englisch / Chinesisch ist eine der bevorzugten Sprachen), verwendet die App die entsprechende Sprachressource (für Englisch verwenden Sie dasBase
localisation; Verwenden Sie für Chinesisch dasChinese
Lokalisierung). Bei allen anderen Spracheinstellungen wird Englisch als Ersatzsprache verwendet, daCFBundleDevelopmentRegion
isten
, soBase
localization wird verwendet.
So wird meine erste Frage sein, ob das obige Verständnis korrekt ist? Zusammenfassend mit demdevelopment language
da wir Englisch sind, müssen wir @ nicht aktivierEnglish
Lokalisierung für Storyboard-Dateien. Benutze einfach dasBase
localization und schreibe direkt Englisch in die Storyboard-Dateien. Wir müssen nur die Lokalisierung für andere Sprachen als Englisch hinzufügen. (Eigentlich scheint es mühsam, wenn wir das @ aktivierEnglish
Lokalisierung. WennEnglish
localization ist aktiviert, dann müssen wir beide Texte in @ pflegBase.lproj/Main.storyboard
unden.lproj/Main.strings
.)
Wenn das obige Verständnis richtig ist, wird meine zweite Frage sein, wie man die Internationalisierung auf umgekehrte Weise erreichen kann. Das heißt, wenn ich @ verwenden möchChinese
als diedevelopment language
und schreibe Chinesisch in dasBase
localization und nur die Lokalisierung für andere Sprachen als @ hinzufügChinese
, ist es möglich und wie geht das in Xcode? Ich kann das @ nicht ändedevelopment language
in der Projekteinstellung, um zu behaupten, dass dieBase
Lokalisierung im Projekt istChinese
eher, alsEnglish
.