Wie Sie vielleicht wissen, benötigt iOS 8 den Schlüssel 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 so etwas wie NSLocalizedString (MYSTRING, nil) in der Plist-Zeichenfolge verwenden kann. Ich weiß, dass ich mehrere Dateien von info.plist zur Lokalisierung erstellen kann, aber ich habe mich gefragt, ob es einen einfacheren Weg gibt.
Antworten:
Sie sollten
InfoPlist.strings
Datei verwenden, um Werte von zu lokalisierenInfo.plist
. Gehen Sie dazu zuFile->New->File
, wählen SieStrings File
unter derResource
RegisterkarteiOS
, benennen Sie esInfoPlist
und erstellen Sie. ÖffnenInfo.plist
Sie die Werte, die Sie lokalisieren möchten, und fügen Sie sie ein:Jetzt können Sie
InfoPlist.strings
Dateien 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.
BEARBEITEN:
Hier ist die offizielle Dokumentation zur
Info.plist
Schlüssellokalisierung.Credits zu Marco , vielen Dank für die Aufnahme der Bilder in dieser Antwort!
quelle
All das hat bei mir nicht funktioniert (XCode 7.3), daher habe ich die Apple-Referenz gelesen und es ist viel einfacher als oben beschrieben. Laut Apple:
Dementsprechend habe ich eine Zeichenfolgendatei mit dem Namen InfoPlist.strings erstellt und im Ordner xx.lproj der Sprache "xx" abgelegt (und dem Projekt über Datei-> Dateien hinzufügen zu ... hinzugefügt). Das ist es. Der Schlüssel "Lokalisierte Ressourcen können gemischt werden" = YES ist nicht erforderlich, und InfoPlist.strings in base.lproj oder en.lproj sind nicht erforderlich.
Die Anwendung verwendet den Schlüsselwert Info.plist als Standardwert, wenn in der sprachspezifischen Datei kein Schlüssel gefunden werden kann. Daher habe ich meinen englischen Wert in die Datei Info.plist und den übersetzten Wert in die sprachspezifische Datei eingefügt, getestet und alles funktioniert.
Insbesondere ist es nicht erforderlich, die InfoPlist.strings zu lokalisieren (wodurch eine Version der Datei in base.lproj, en.lroj und xx.lproj erstellt wird), und in meinem Fall hat dies nicht funktioniert.
quelle
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 Dateien InfoPlist.strings einfach ignoriert.
quelle
Tipps
Denken Sie daran, dass der iOS-Simulator standardmäßig Ihre Systemsprache ausnutzt. Bitte ändern Sie auch die Sprache (und Region) in der iOS-Simulator-Einstellung, um Ihre Übersetzungen zu testen.
Die Lokalisierungszeichenfolge (siehe Apple-Dokumente hier ) sollte lauten
und nicht (mit Zitat "...")
quelle
"NSLocationWhenInUseUsageDescription"="description"
Ist gültig). Es kann mit oder ohne sein.Ich würde wärmstens empfehlen, die Handbücher von Apple zu lesen und die hier aufgeführten WWDC-Ressourcen anzuzeigen: Themen zur Internationalisierung und Lokalisierung
Um Ihre Frage gezielt zu beantworten, können Sie beim Hinzufügen einer neuen Sprache zu Ihrem Projekt auswählen, welche InfoPlist-Dateien aufgenommen werden sollen (wenn Sie mehrere Ziele haben, verfügen Sie über mehrere Info-Plist-Dateien). Alles, was Sie tun müssen, um den folgenden Bildschirm zu erhalten, ist das + unter Lokalisierungen zu drücken und eine neue Sprache auszuwählen, für die Unterstützung hinzugefügt werden soll.
Sobald Sie hinzugefügt haben, werden die erforderlichen Zeichenfolgendateien in den entsprechenden lproj-Verzeichnissen für die angegebene Sprache erstellt.
--BEARBEITEN--
Um ganz klar zu sein, tauscht iOS die Zeichenfolge 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 Zeichenfolgendatei verwendet wird.
quelle
Schritt für Schritt Info.plist lokalisieren:
Save As
schreiben Sie in das Feld NUR InfoPlist ("I" -Kapital und "P" -Kapital)"NSLocationAlwaysAndWhenInUseUsageDescription" = "blabla";
"NSLocationAlwaysUsageDescription" = "blabla2";
Das ist alles Arbeit und Sie haben Ihre info.plist-Datei lokalisiert!
quelle
Für alle, bei denen das Problem auftritt, dass die info.plist beim Hinzufügen von Lokalisierungen nicht berücksichtigt wird, wie in Xcode 9.
Sie müssen die Datei info.plist localiazble erstellen, indem Sie sie aufrufen und im Dateiinspektor auf die Schaltfläche zum Lokalisieren klicken, wie unten gezeigt.
Die info.plist wird dann in die Dateiressourcen aufgenommen, wenn Sie neue Lokalisierungen hinzufügen.
quelle
Wie RGML sagt, können Sie eine InfoPlist.strings erstellen, lokalisieren und dann Ihren Schlüssel und den folgenden Wert hinzufügen: "NSLocationWhenInUseUsageDescription" = "Hilfe, um mich zu finden!";
Es wird der Schlüssel zu Ihrer info.plist für die angegebene Sprache hinzugefügt.
quelle
In meinem Fall wurde alles korrekt eingerichtet, aber die Datei InfoPlist.strings wurde immer noch nicht gefunden.
Das einzige, was wirklich funktionierte, war, die InfoPlist.strings-Dateien zu entfernen und erneut zum Projekt hinzuzufügen .
quelle
In meinem Fall hat die Lokalisierung aufgrund des Symbols '-' im Namen nicht funktioniert. Beispiel: "aero-Info.plist" und lokalisierte Dateien: "aero-InfoPlist.strings" und "aeroInfoPlist.strings" funktionierten nicht.
quelle
Bei Verwendung der
InfoPlist.strings
Datei (in XCode sollte sie neben derInfo.plist
Datei platziert werden - der tatsächliche Speicherort der Datei kann sich wahrscheinlich an einer beliebigen Stelle im Projekt befinden) Achten Sie darauf, den Kurznamen des Schlüssels für die Übersetzung zu verwenden.
Ich habe versucht zu verwenden
Privacy - Camera Usage Description
, aber der Arbeitsschlüssel istNSCameraUsageDescription
quelle