Ich habe ein iOS-Projekt, das in 16 Sprachen lokalisiert ist. Nur einige Wörter sind nicht lokalisiert (hauptsächlich diejenigen, die in ein Update gehen und das Lokalisierungsbüro nicht rechtzeitig geliefert hat). Für meine Schlüssel tue ich nicht Verwenden Sie die englische Formulierung, wie dies auch ändern kann, wenn ein Übersetzer wünscht. Also wenn ich jetzt gerade keine Übersetzung für eine Sprache habe, greift ich auf den Schlüssel zurück, den ich benutzt habe. Aber da dieser Schlüssel nicht "menschlich lesbar" oder zumindest nicht "menschlich angenehm zu lesen" ist, ist dies ein Problem.Fallback-Sprache iOS (mit unvollständiger Localizable.strings-Datei)
Ich habe etwas Forschung, aber konnte keine Lösung zu mein genaues Problem finden. Ich habe fe .:
Localizable.strings in en.lproj
@"Key1" = @"Value 1"
@"Key2" = @"Value 2"
Localizable.strings in de.lproj
@"Key1" = @"Wert 1"
// Note that @"Key2" is missing here in my de.lproj
I would expect that if I make NSLocalizedString(@"Key2", ...)
and am running on a german phone, it falls back to the english
translation for this key as it exists...
So jetzt ich die Englisch-Übersetzung in die fehlenden Localizable.strings Dateien nur kopiert. Aber das ist ein großer Hack! Aber auch die Verwendung der englischen Wörter als Schlüssel scheint mir ein Hack zu sein!
Gibt es eine Möglichkeit, meiner App mitzuteilen, dass sie z. Englisch als Fallback, wenn es keinen Wert für einen bestimmten Schlüssel gibt? Ich habe versucht, das Hinzufügen einer Base Lokalisierung aber das hilft nicht ...
Vielen Dank
"Aber auch die Verwendung der englischen Wörter als Schlüssel scheint mir ein Hack zu sein!" -- ganz und gar nicht. Es ist eine ziemlich elegante Lösung und behebt genau das Problem, das Sie beschreiben. Nur weil der Übersetzer die tatsächlichen Wörter in der englischen Übersetzung ändern könnte, heißt das nicht, dass sich der Schlüssel ändern muss. Das heißt, die neue Base-Lokalisierung, die Maxhon erwähnt, ist die meiste Zeit ein noch besserer Ansatz. –