wake-up-neo.net

Wie lokalisiert man eine Zeichenfolge in der iOS-Datei info.plist?

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. enter image description here

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.

205
Soheil

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.

right side editor

sie sollten die Datei auch im linken Editor sehen können.

left side editor

EDIT:

Hier ist die offizielle Dokumentation für die Lokalisierung von Info.plist-Schlüsseln.

400
Fahri Azimov

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.

26
Zvi

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.

14
tuvok

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ügenenter image description hereerhalten 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.enter image description here

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. 

8
Matt S.

Tipps

  1. 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. 

  2. Die Lokalisierungszeichenfolge (siehe Apple-Dokumente hier ) sollte sein

    NSLocationWhenInUseUsageDescription = "Description of this";
    

    und nicht (mit Zitat "...")

    "NSLocationWhenInUseUsageDescription" = "Description of this";
    
4

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.

3
Cap

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.

 enter image description here

3
Edward

Schritt für Schritt Info.plist lokalisieren:

  1. Finden Sie im X-Code den Ordner Resources (befindet sich im Stammverzeichnis)
  2. Wählen Sie den Ordner Resources
  3. Drücken Sie dann das Hauptmenü Datei-> Neu-> Datei ...
  4. Wählen Sie im Abschnitt "Resource" Strings File und drücken Sie Next
  5. Dann schreiben Sie in das Feld Speichern unter NUR InfoPlist ("I" Groß- und "P" Großbuchstaben)
  6. Drücken Sie dann Erstellen
  7. Wählen Sie dann die Datei InfoPlist.strings aus, die im Ordner Resources erstellt wurde, und klicken Sie im rechten Menü auf die Schaltfläche "Lokalisieren".
  8. Dann wählen Sie das Projekt im Projektnavigator aus und wählen die Liste Das Projekt aus Projekt aus
  9. In der Info-Registerkarte unten können Sie so viele Sprachen auswählen, wie Sie möchten (siehe Abschnitt Lokalisierungen).
  10. Die Sprache, die im Ressourcenordner angezeigt wird
  11. Um die Werte ("Schlüssel") aus der Datei info.plist zu lokalisieren, können Sie mit einem Texteditor öffnen und alle Schlüssel abrufen, die Sie lokalisieren möchten
  12. Sie schreiben einen beliebigen Schlüssel als Beispiel in eine beliebige InfoPlist.strings wie im obigen Beispiel

"NSLocationAlwaysAndWhenInUseUsageDescription" = "blabla";

"NSLocationAlwaysUsageDescription" = "blabla2";

Das ist alles Arbeit und Sie haben Ihre info.plist-Datei lokalisiert!

1

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

0
d.ennis

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.

0
Mike Glukhov