it-swarm.com.de

Ist es möglich, die Strings eines lokalisierten Storyboards zu aktualisieren?

Ich habe einen Teil meiner Anwendung lokalisiert, indem ich ein base.lproj-Storyboard und 3 String-Dateien dafür erstellt habe. Es war vor einem Monat und danach habe ich der App einen neuen Ansichts-Controller hinzugefügt, aber die Schaltflächen und Beschriftungen dieses Controllers werden nicht in String-Dateien angezeigt

Ist es möglich, diese 3 an das Storyboard angehängten Zeichenfolgendateien zu aktualisieren, oder muss ich neue Zeichenfolgenübersetzungen programmgesteuert mit NSLocalizableString und Localizable.strings hinzufügen?

210
GeLB

Es gibt zwei Möglichkeiten:

Option 1

Xcode kann die Datei "neu laden", indem die Datei entweder in einen [Interface Builder Cocoa Touch Storyboard] -Dateityp oder in einen [Localizable Strings] -Dateityp Dateityp.

  1. Wählen Sie im Projektnavigator Ihre Basis-Storyboard-Datei aus
  2. Suchen Sie den Abschnitt Lokalisierung im Datei-Inspektor
  3. Wenn es sich bei Ihrer Datei derzeit um eine [lokalisierbare Zeichenfolge] handelt, ändern Sie sie in [Interface Builder Cocoa Touch Storyboard] oder umgekehrt.
  4. Xcode sollte Ihr Storyboard auf die aktuelle Version konvertiert haben und Ihre alten Lokalisierungsbemühungen beibehalten. Hier können Sie die Datei auf den ursprünglichen Dateityp zurücksetzen, wenn Sie möchten.

Option 2

Verwenden Sie ibtool, um die Zeichenfolgen in Ihrem Storyboard zu extrahieren.

  1. Öffnen Sie die Terminal-Anwendung
  2. Suchen Sie Ihr Base.lproj-Verzeichnis
  3. Verwenden Sie diese Zeile, um die Zeichenfolgen zu extrahieren:

    ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings

  4. Nachdem ibtool die Zeichenfolgen in dateiname.strings extrahiert hat, können Sie sie kopieren und in Ihre ursprüngliche .strings-Datei einfügen

Besuchen Sie für weitere Informationen: https://conyac.cc/business/columns/localization_guide_ios

258
Tha Leang

Check out BartyCrouch, es löst dein Problem perfekt. Auch es ist Open Source, aktiv gewartet und kann einfach installiert und integriert werden in Ihr Projekt.


Install BartyCrouch via Homebrew :

brew install bartycrouch

Alternativ installieren Sie es über Mint :

mint install Flinesoft/BartyCrouch

Inkrementelle Aktualisierung Ihre Storyboards/XIBs-Strings-Dateien:

$ bartycrouch update

Dies wird genau das tun, wonach Sie gesucht haben.


Um keep Ihre Storyboards/XIBs Strings-Dateien im Laufe der Zeit aktualisiert Ich empfehle dringend, ein Build-Skript hinzuzufügen (Anweisungen zum Hinzufügen eines Build-Skripts hier ):

if which bartycrouch > /dev/null; then
    bartycrouch update -x
    bartycrouch lint -x
else
    echo "warning: BartyCrouch not installed, download it from https://github.com/Flinesoft/BartyCrouch"
fi

Zusätzlich zur schrittweisen Aktualisierung Ihrer Storyboards/XIBs-Strings-Dateien wird Stellen Sie sicher, dass Ihr Localizable.strings Dateien bleiben aktualisiert mit neu hinzugefügten Schlüsseln im Code mit NSLocalizedString und zeigen Warnungen für doppelte Schlüssel oder leere Werte an.

Vergewissern Sie sich, BartyCrouch auf GitHub oder dieser ausführliche Artikel für zusätzliche Informationen zu überprüfen.

64
Dschee

Sie können einen Schlüssel manuell in Ihre Lokalisierungsdatei einfügen. Sie finden das Schlüsselobjekt, indem Sie es im Storyboard-Editor auswählen. Werfen wir einen Blick auf Object-ID im Identitätsinspektor. Es sieht aus wie "nwc-b2-19c"

Aktualisieren Sie Ihre Lokalisierung oder fügen Sie eine Übersetzung hinzu. Beispielsweise :

"nwc-b2-19c.title" = "Translated title";
53
iLandes

Dieser ist nicht für jedermann geeignet, erfordert jedoch keine zusätzlichen Werkzeuge im Terminal und ist für kleine manuelle Änderungen einfach. (Berücksichtigen Sie dies nicht, wenn Sie Ihren Prozess automatisieren möchten.)

Schritt 0: Einrichtung der Storyboard-Sprache

  • Base (mit englischen Texten)
  • Englisch (lokalisierbare Zeichenfolgendatei ist nicht vorhanden, da die Basisdatei Englisch ist)
  • andere Sprachen (lokalisierbare String-Dateien)

base configuration

Dieser Schritt wird nur einmal ausgeführt.

Wenn ich jetzt etwas zum Storyboard hinzufüge, gehe ich folgendermaßen vor

Schritt 1: Füge die englischsprachige lokalisierbare Strings-Datei hinzu

Add English

markieren Sie einfach die englische Werbebuchung.

Dadurch wird eine komplett neue, in Englisch lokalisierbare Zeichenfolgendatei mit allen Zeilen erstellt

Schritt 2: Kopieren Sie die neuen Werbebuchungen in die anderen Sprachdateien

und übersetze sie

Schritt 3: Englisch deaktivieren, entsprechende lokalisierbare Zeichenfolgendatei entfernen

die Datei wurde nur zum Abrufen der neuen Werbebuchungen benötigt

Dies ist ein einfacher und schneller Vorgang, alles wird im Storyboard-Editor erledigt

Bearbeiten:

Dieser Prozess funktioniert sehr gut mit kleinen Storyboards. Ich habe zum Beispiel ein Projekt auf Registerkartenbasis und für jede Registerkarte ein Storyboard.

Suchen Sie nach "Storyboard-Referenz", um Tutorials zu finden.

Gutes Beispiel: Storyboard-Referenz in Xcode, wo sollen wir sie verwenden?

Jedes kleine Storyboard muss also nur ein paar Zeichenfolgen lokalisieren.

27
Gerd Castan

Schließlich bestand meine Lösung darin, (rudimentär, aber effektiv) die vorherigen Übersetzungen zu kopieren und sie in eine neue Datei einzufügen, die durch Deaktivieren und Aktivieren des Kontrollkästchens für die Lokalisierungssprache erstellt wurde.

Dies ist in einigen Fällen wie in meinen nützlich, wenn Sie nur einen oder zwei Texte ändern müssen.

15
jpl850

Ich denke, der beste Weg ist die Verwendung von integrierten Export-/Import-Lokalisierungen:

  1. Wählen Sie im Projektnavigator Ihren Projektordner
  2. Wählen Sie "Editor"> "Zur Lokalisierung exportieren".
  3. Alle Übersetzungen, die an ihren Plätzen und in XCode verblieben sind, fügen automatisch fehlende Zeichenfolgen hinzu. Zusätzlich können Sie vor dem Import .xliff im XLIFF-Editor bearbeiten (z. B. online - http://xliff.brightec.co.uk ) und müssen dies dann nicht in XCode tun .
  4. dann Editor> Lokalisierungen importieren und gespeicherte .xliff-Datei auswählen.

P.S. Wenn Sie nicht im XLIFF-Editor bearbeiten möchten und Schritt 3 übersprungen haben, kann XCode keine neuen Zeichenfolgen speichern. Öffnen Sie in diesem Fall .xliff im XLIFF-Editor, speichern Sie es ohne Änderungen erneut und importieren Sie eine neue Datei.

13
Igor

Wenn Sie in Ihr Storyboard klicken, zum Beispiel Main.storyboard ... Auf der rechten Seite sehen Sie das Lokalisierungsmenü (siehe nebenstehendes Bild). Wenn Sie eine Sprache deaktivieren und erneut überprüfen, wird die Datei erneut generiert. Normalerweise kopiere ich den Inhalt, erstelle die Datei erneut und füge dann den Inhalt ein, den ich kopiert habe und der bereits übersetzt wurde.

Auf diese Weise aktualisiere ich das Wörterbuch.

enter image description here

5
J. Fdez

Hier ist ein Skript , um Zeichenfolgen aus Storyboards und xibs zu extrahieren und sie mit vorhandenen Übersetzungen zusammenzuführen.

Um das Skript beim Erstellen eines Projekts automatisch auszuführen, fügen Sie das Skript in Ihr Projektstammverzeichnis ein und fügen Sie eine Run Script -Phase mit der folgenden Zeile zu a hinzu Zielerstellungsphasen in Ihren Projekteinstellungen.

./mergegenstrings.py PathToSourceDir

Sie können das Skript auch manuell auf dem Terminal ausführen, wenn Sie möchten.

Das Skript führt ibtool aus, während Tha Leang antwortet. Es wird auch genstrings ausgeführt, um mit NSLocalizedString markierte Zeichenfolgen in Ihrem Quellcode zu extrahieren und zusammenzuführen. Das Skript basiert auf ein Skript in diesem Beitrag , das Zeichenfolgen nach dem Ausführen von genstrings zusammenführt.

4
Yoichi Tagaya

Ich habe dort ein riesiges Storyboard mit vielen Streichern. Zwei Sprachen Basis Englisch und ein weiteres Arabisch. Die Aufgabe bestand darin, dem Storyboard einige Felder und Beschriftungen hinzuzufügen und deren Lokalisierung ohne Skripte und NSLocalizableStrings hinzuzufügen.

Für mich hat weiter geholfen:

First: Stellen Sie sicher, dass Sie git haben, um unerwartete Änderungen zu verhindern.

  1. Gehe in xcode zum Zielbildschirm und drücke Editor -> Export For Localization.... Speichern Sie die Datei ar.xliff irgendwo.
  2. Download XLIFF Edtior .
  3. Öffnen Sie die Datei ar.xliff und nehmen Sie die gewünschten Änderungen vor.
  4. Importiere diese Datei in xcode. Getan! Sie haben die Storyboard-Strings-Datei aktualisiert.
4
Nik Kov

Es gibt eine App Ein Befehlszeilentool von Apple named AppleGlot , das die inkrementelle Lokalisierung unterstützt. Ich habe es noch nicht ausprobiert, aber es sieht genauso aus wie das gesuchte Tool (seit einiger Zeit) vor).

4
tilo

Der einfachste und weniger riskante Ansatz ist, einfach die Objekt-ID aus dem Storyboard zu kopieren und einen neuen Schlüssel für den Schlüssel in der lokalisierten Datei hinzuzufügen, wie im folgenden Beispiel gezeigt:

1: Kopieren Sie die unten stehende Objekt-ID aus dem Storyboard für die Komponente:

enter image description here

2: Fügen Sie einen neuen Schlüssel in die lokalisierte Datei wie folgt ein:

"DjF-dn-0ay.text" = "Borrar datos y restablecer";

Hinweis: Dies ist ein weniger riskanter Ansatz, wenn Sie nur wenige Komponenten aktualisieren möchten. Andernfalls können Sie lokalisierte Dateien für das Storyboard neu erstellen.

2
Alok

Dies ist meine einfache Möglichkeit, neuen Text vom Storyboard oder XIB auf die Lokalisierungszeichenfolge zu aktualisieren

1- Verwenden Sie dieses Skript http://tredje.se/dev/trouble/?x=entry:entry150917-204052

2- Wählen Sie die Lokalisierungszeichenfolge aus, die Sie aktualisieren möchten, und wechseln Sie die Sprachzeichenfolge von "Lokalisierungszeichenfolge" zu "Storyboard für Interface Builder".

3- schalte es zurück :)

Fertig.

enter image description here

0
Fadi Abuzant