Wie Sie vielleicht wissen, erfordert iOS 8 die Taste NSLocationWhenInUseUsageDescription, um den Standort des Benutzers zu verwenden. Ich habe diesen Schlüssel und einige allgemeine Informationen in meine Info-Liste aufgenommen.
Wie kann ich eine Übersetzungszeichenfolge in der plist-Datei verwenden?
- Update -
Ich habe bereits eine lokalisierbare Zeichenfolge. Ich frage mich nur, ob ich etwas wie NSLocalizedString (MYSTRING, nil) in der Plist-Zeichenfolge verwenden kann. Ich weiß, dass ich mehrere Dateien von info.plist für die Lokalisierung erstellen kann, aber ich habe mich gefragt, ob es einen einfacheren Weg gibt.
Sie sollten InfoPlist.strings
-Datei verwenden, um die Werte von Info.plist
zu lokalisieren. Gehen Sie dazu zu File->New->File
, wählen Sie Strings File
auf der Registerkarte Resource
von iOS
aus, nennen Sie es InfoPlist
, und erstellen Sie. Öffnen Sie die Info.plist
-Werte, die Sie lokalisieren möchten, und geben Sie sie ein:
"NSLocationWhenInUseUsageDescription" = "Description of this";
Jetzt können Sie die InfoPlist.strings
-Datei mit Übersetzungen lokalisieren. Viel Glück!
BEARBEITEN:
wählen Sie die Lokalisierungsoptionen aus oder aktivieren Sie bei Bedarf die Lokalisierung.
sie sollten die Datei auch im linken Editor sehen können.
EDIT:
Hier ist die offizielle Dokumentation für die Lokalisierung von Info.plist
-Schlüsseln.
All das oben genannte funktionierte nicht für mich (XCode 7.3). Ich lese daher die Referenz von Apple, und es ist viel einfacher als oben beschrieben. Laut Apple:
Lokalisierte Werte werden nicht in der Info.plist-Datei selbst gespeichert. Stattdessen speichern Sie die Werte für eine bestimmte Lokalisierung in einer Strings-Datei mit dem Namen InfoPlist.strings. Sie legen diese Datei in .__ ab. dasselbe sprachspezifische Projektverzeichnis, das Sie zum Speichern von .__ verwenden. andere Ressourcen für dieselbe Lokalisierung.
Dementsprechend erstellte ich eine String-Datei mit dem Namen InfoPlist.strings und legte sie im Ordner xx.lproj der Sprache "xx" ab (und fügte sie mit File-> Add Files to ... zum Projekt hinzu). Das ist es. Keine Notwendigkeit für den Schlüssel "Lokalisierte Ressourcen können gemischt werden" = YES und keine Notwendigkeit für InfoPlist.strings in base.lproj oder en.lproj.
Die Anwendung verwendet den Schlüsselwert Info.plist als Standardwert, wenn in der sprachspezifischen Datei kein Schlüssel gefunden werden kann. So stelle ich meinen englischen Wert in die Info.plist-Datei und die übersetzte in die sprachspezifische Datei, teste und alles funktioniert.
Insbesondere ist es nicht erforderlich, die InfoPlist.strings zu lokalisieren (wodurch eine Version der Datei in den Dateien base.lproj, en.lroj und xx.lproj erstellt wird). In diesem Fall funktionierte dies jedoch nicht.
Wenn etwas nicht funktioniert, stellen Sie sicher, dass Sie Folgendes hinzugefügt haben:
"Lokalisierte Ressourcen können gemischt werden" = JA
in die info.plist. In meinem Fall wurden die InfoPlist.strings-Dateien einfach ignoriert.
Ich würde wärmstens empfehlen, die Handbücher von Apple zu lesen und die hier aufgelisteten WWDC-Ressourcen anzuzeigen: Internationalisierung und Lokalisierungsthemen
Um Ihre Frage gezielt zu beantworten, wenn Sie Ihrem Projekt eine neue Sprache hinzufügenerhalten Sie die Möglichkeit, auszuwählen, welche InfoPlist-Dateien eingeschlossen werden sollen (wenn Sie mehrere Ziele haben, haben Sie mehrere Info-Plist-Dateien). Um den folgenden Bildschirm anzuzeigen, klicken Sie auf das + unter Lokalisierungen und wählen Sie eine neue Sprache aus, um Unterstützung für ..__ hinzuzufügen.
Nach dem Hinzufügen werden die erforderlichen String-Dateien in den entsprechenden lproj-Verzeichnissen für die angegebene Sprache erstellt.
--BEARBEITEN--
Um es klar zu stellen, tauscht iOS den String für Ihre Plist-Datei basierend auf der aktuell ausgewählten Sprache des Benutzers aus, wobei der Schlüssel des Plist-Eintrags als Schlüssel in der lokalisierten String-Datei verwendet wird.
Tipps
Denken Sie daran, dass der iOS-Simulator standardmäßig Ihre Systemsprache ausnutzt. Bitte ändern Sie auch die Sprache (und Region) in den iOS-Simulator-Einstellungen, um Ihre Übersetzungen zu testen.
Die Lokalisierungszeichenfolge (siehe Apple-Dokumente hier ) sollte sein
NSLocationWhenInUseUsageDescription = "Description of this";
und nicht (mit Zitat "...")
"NSLocationWhenInUseUsageDescription" = "Description of this";
Wie RGML sagt, können Sie eine InfoPlist.strings erstellen, lokalisieren und dann Ihren Schlüssel und den Wert wie folgt hinzufügen: "NSLocationWhenInUseUsageDescription" = "Hilfe zur Suche nach mir!";
Der Schlüssel wird Ihrer info.plist für die angegebene Sprache hinzugefügt.
Für alle, die das Problem haben, dass die info.plist beim Hinzufügen von Lokalisierungen nicht enthalten ist, wie in Xcode 9.
Sie müssen die info.plist localiazble erstellen, indem Sie darauf klicken und im Datei-Inspector auf die Schaltfläche localize klicken, wie unten gezeigt.
Die info.plist wird dann in die Dateiressourcen aufgenommen, wenn Sie neue Lokalisierungen hinzufügen.
Schritt für Schritt Info.plist lokalisieren:
"NSLocationAlwaysAndWhenInUseUsageDescription" = "blabla";
"NSLocationAlwaysUsageDescription" = "blabla2";
Das ist alles Arbeit und Sie haben Ihre info.plist-Datei lokalisiert!
In meinem Fall wurde alles richtig eingerichtet, aber die InfoPlist.strings-Datei wurde nicht gefunden.
Das einzige, was wirklich funktioniert hat, war, remove und die InfoPlist.strings-Dateien wieder in das Projekt aufzunehmen.
In meinem Fall hat die Lokalisierung nicht funktioniert, da im Namen das Symbol "-" enthalten ist. Beispiel: "aero-Info.plist" und lokalisierte Dateien: "aero-InfoPlist.strings" und "aeroInfoPlist.strings" funktionierten nicht.