381 Stimmen

Wie lokalisiert man einen String innerhalb der iOS info.plist-Datei?

Wie Sie vielleicht wissen, erfordert 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-Datei hinzugefügt. Bildbeschreibung hier eingeben

Wie kann ich Übersetzungszeichenfolgen in der Plist-Datei verwenden?

-- Update --

Ich habe bereits eine lokalisierte Zeichenfolge. Ich frage mich nur, ob ich so etwas verwenden kann wie NSLocalizedString(MYSTRING,nil) in der Plist-Zeichenfolge. Ich weiß, dass ich mehrere Info.plist-Dateien für die Lokalisierung erstellen kann, aber ich frage mich, ob es einen einfacheren Weg gibt.

24voto

tuvok Punkte 659

Wenn etwas nicht funktioniert, stellen Sie sicher, dass Sie Folgendes hinzugefügt haben:

"Lokalisierungsressourcen können gemischt werden" = JA

in die info.plist. In meinem Fall wurden die InfoPlist.strings-Dateien einfach ignoriert.

16voto

Yodagama Punkte 3305

Sie können den String-Katalog von,

Xcode 15+

Verwenden Sie einfach eine String-Katalogdatei namens InfoPlist.

Geben Sie hier eine Bildbeschreibung ein

Geben Sie hier eine Bildbeschreibung ein

Geben Sie hier eine Bildbeschreibung ein

Geben Sie hier eine Bildbeschreibung ein

14voto

Matt S. Punkte 1856

Ich würde dringend empfehlen, die Leitfäden von Apple zu lesen und die hier aufgeführten WWDC-Ressourcen anzusehen: Internationale Themen zur Internationalisierung und Lokalisierung

Um Ihre Frage spezifisch zu beantworten, wenn Sie eine neue Sprache zu Ihrem Projekt hinzufügenHier eine Bildbeschreibung eingeben, haben Sie die Möglichkeit, auszuwählen, welche InfoPlist-Dateien enthalten sein sollen (wenn Sie mehrere Ziele haben, werden mehrere Info-Plist-Dateien vorhanden sein). Alles, was Sie tun müssen, um den folgenden Bildschirm zu erhalten, ist auf das + unter Lokalisierungen zu klicken und eine neue Sprache auszuwählen, um Unterstützung hinzuzufügen. Hier eine Bildbeschreibung eingeben

Nachdem Sie hinzugefügt haben, werden die erforderlichen Zeichenfolgendateien in den entsprechenden lproj-Verzeichnissen für die angegebene Sprache erstellt.

--BEARBEITEN--

Um es klar zu stellen: iOS wird die Zeichenfolge für Ihre Plist-Datei basierend auf der aktuell ausgewählten Sprache des Benutzers austauschen und den Schlüssel im lokalisierenden Zeichenfolgenfile als Schlüssel verwenden.

9voto

Kirill Karmazin Punkte 5228

Neben der akzeptierten Antwort (das Projekt ist auf Flutter, aber im Grunde genommen dasselbe wie nativ):

Ich habe Ordner Base.lproj, en.lproj, xx.kproj. usw. mit einer Datei InfoPlist.strings in jedem. Diese Datei enthält Zeilen wie diese (ohne Anführungszeichen um den Schlüssel und mit einem Semikolon am Ende):

NSLocationWhenInUseUsageDescription = "Meine Erklärung, warum ich das brauche";

Überprüfen Sie, ob Sie Ihre Sprachen in Ihrem Projekt > Informationen haben: Bildbeschreibung hier eingeben

Überprüfen Sie außerdem die Datei project.pbxproj, sie befindet sich in XXX.xcodeproj/project.pbxproj: Es sollte alle Ihre Sprachen in Codes (en, fr usw.) enthalten.

Bildbeschreibung hier eingeben

Aber selbst dann hat es nicht funktioniert. Schließlich habe ich den Schlüssel CFBundleLocalizations in der Datei Info.plist bemerkt. (um sie als Roh-Schlüssel-Werte in XCode zu öffnen - Rechtsklick auf die Datei Info.plist -> Öffnen als -> Quellcode) Stellen Sie sicher, dass die Werte im Array Codes sind und nicht vollständige Wörter, zum Beispiel fr anstelle von French usw.

CFBundleLocalizations

    en
    ru
    lv

Und überprüfen Sie doppelt, ob Ihr Gerät auf die Sprache eingestellt ist, die Sie testen. Prost

N.S. Die "Entwicklungssprache" hat keinen Einfluss auf Ihr Problem, ändern Sie sie nicht.

7voto

Edward Punkte 2574

Für alle, die das Problem haben, dass die info.plist nicht eingeschlossen wird, wenn sie versuchen, Lokalisierungen hinzuzufügen, beispielsweise in Xcode 9.

Sie müssen die info.plist lokalisiert machen, indem Sie in sie hineingehen und auf die Lokalisierungsschaltfläche im Dateiinspektor klicken, wie unten gezeigt.

Die info.plist wird dann in den Dateiressourcen enthalten sein, wenn Sie neue Lokalisierungen hinzufügen.

Geben Sie hier eine Bildbeschreibung ein

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X