2009-04-01 11 views
1

Ich versuche, lokalisierte Zeichenfolgen für die englische Sprache (in en.lproj/Localizable.strings) für Verwendung als Standardwerte zu erhalten, wenn die lokalisierte Zeichenfolge für die bevorzugte Sprache des Benutzers nicht gefunden wird.Erhalten lokalisierter Zeichenfolgen für eine bestimmte Sprache

Ich möchte in diesem Standardwert dieser Methode zu übergeben:

[[NSBundle mainBundle] localizedStringForKey:key value:defaultValue table:nil] 

Aber ich habe nicht eine einfache Möglichkeit zu erhalten, diesen Wert zu finden. Ich kann ein Wörterbuch aus der Strings-Datei erstellen, aber ich frage mich, ob es einen bequemeren Weg gibt?

Antwort

1

Ich denke, dass Cocoa die englischen Strings automatisch als Fallbacks verwendet.

1

Ist Englisch Ihre Entwicklungsregion (Sprache)? Wenn dies der Fall ist, wird standardmäßig jede lokalisierbare Zeichenfolge, die nicht in die bevorzugte Sprache des Benutzers übersetzt wurde, auf Englisch zurückgesetzt. Dies wird durch den Schlüssel CFBundleDevelopmentRegion in Ihrer Anwendung geregelt. Vom official documentation,

CFBundleDevelopmentRegion

CFBundleDevelopmentRegion (String - iOS, Mac OS X) gibt die Heimatregion für das Bündel. Dieser Schlüssel enthält einen Zeichenfolgenwert, der normalerweise der Muttersprache der Person entspricht, die das Paket geschrieben hat. Die durch diesen Wert angegebene Sprache wird als Standardsprache verwendet, wenn eine Ressource nicht für die bevorzugte Region oder Sprache des Benutzers gefunden werden kann.

Dieser Schlüssel wird automatisch zur Datei Info.plist hinzugefügt, die mit Xcode-Vorlagen erstellt wird. Seine "freundliche" Darstellung ist Lokalisierung native Entwicklungsregion.

Verwandte Themen