Die Datei .phrase.yml
wird zum Speichern von wiederverwendeten Befehlszeilenargumenten verwendet.
Unterstützte Argumente:
-
project_id
Die ID eines Projekts.
-
file_format
Das Dateiformat, das verwendet wird, wenn eines in der Ausgangssprache und der Zielsprache nicht explizit angegeben ist.
-
per_page
Die Anzahl der Elemente, die in paginierten Antworten zurückgegeben wurden.
Beispiel:Konfigurationsdatei.
Push
$ phrase push
Mit dem Befehl push
werden Dateien hochgeladen, die in lokalen Projektverzeichnissen gefunden wurden. Verwende die Datei .phrase.yml
, um Dateien hochzuladen und zusätzliche Parameter festzulegen. Mit dem Platzhalter <tag>
können Keys auch auf der Grundlage ihrer Tags in separate Dateien heruntergeladen werden.
Pull
$ phrase pull
Ähnlich wie beim Befehl push
mit der Ausnahme, dass Globbing nicht verwendet werden kann. Wenn du Platzhalter verwendest, verwende möglichst <locale_name>
. Um eine Datei mit Keys zu pullen, die ein bestimmtes Tag haben, verwende die Tag-Parameter :
phrase: pull: targets: - file: path/to/file/<locale_name>.yml params: tags:tag_name
Um den Platzhalter des <tag>
Platzhalters zu verwenden, müssen die gewünschten Tags im Abschnitt params
aufgelistet werden.
Parameter
Die Befehle Push
und Pull
können innerhalb der Datei .phrase.yml
konfiguriert werden. Push-Optionen sind die gleichen wie für die Uploads
des API-Endpunkts und die Pull-Optionen sind die gleichen wie für das lokale Herunterladen des
API-Endpunkts.
Push-Beispiel:
push: sources: - file: ./locales/en.json params: update_translations: true
Pull-Beispiel:
pull: targets: - file: "./locales/example.yml" params: include_unverified_translations: true
Je nach Format der Datei können auf den Parameterabschnitt Format-Optionen angewendet werden. Format-Optionen können auf Uploads, Downloads oder beides angewendet werden.
Format-Beispiele:
params: format_options: convert_placeholder: true
Einige Dateiformate erlauben eine größere Kontrolle über die Dateisyntax:
phrase: pull: targets: - file: file.xml params: format_options: convert_placeholder: true push: sources: - file: file.csv params: format_options: column_separator: ";"
Die folgenden Platzhalter und Globbing-Operatoren können in den Pfaden in deinen Dateieinträgen platziert werden:
-
<locale_name>
Der Name der Sprache.
-
<locale_code>
Die RFC 5646-konforme Sprache. Die Sprache muss nicht eindeutig sein. Daher können mehrere Sprachen mit unterschiedlichen Namen mit demselben Code existieren.
-
<tag>
Tags verwenden um Keys zu gruppieren. Tags können zur Beibehaltung der ursprünglichen Dateistruktur verwendet werden.
Globbing
*
und **
sind Globbing-Operatoren. Ein einzelnes Sternchen *
überspringt einen beliebigen Ordner in einem Pfad. Das Doppelsternchen **
entspricht dem Standardglobbing-Operator und entspricht jedem Zeichen für einen rekursiven, nicht erschöpfenden Abgleich.
Beispiele:
# a file pattern ./abc/**/*.yml
# with a few files on your system ./abc/defg/en.yml ./abc/es.yml ./fr.yml
# selects ./abc/defg/en.yml ./abc/es.yml
Beim Herunterladen von Pull
-Dateien, sollte explizites Dateimuster wie ./abc/defg/< Sprache_name>.yml
anstelle von ./**/*.yml
angegeben werden.
Alle Uploads werden asynchron verarbeitet. Um auf Uploads zu warten, füge das Kennzeichen --wait
hinzu. Der Push
wartet auf jede hochgeladene Datei und gibt zurück, ob das Hochladen fehlgeschlagen oder erfolgreich war.
Datei in eine bestimmte Sprache hochladen
Die Datei en.json
mit der angegebenen locale_id
in das ./locales/
Verzeichnis hochladen (Sprache muss bereits vorhanden sein).
Update_translations
wird auf false gesetzt, so dass nur neue Keys und Übersetzungen importiert werden. Wenn true gesetzt ist, würde der Client auch lokale Änderungen an vorhandenen Übersetzungen importieren und dabei alle bereits vorhandenen Inhalte überschreiben.
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: nested_json push: sources: - file: ./locales/en.json params: update_translations: false locale_id: YOUR_LOCALE_ID # the locale must exist remotely
Hinweis
Importierte Übersetzungseinträge können nicht gelöscht werden. Übersetzungen gegebenenfalls über den jeweiligen API Endpunkt auf empty
Werte aktualisieren.
Ruby on Rails: einen bestimmten Dateityp hochladen
Alle Dateien hochladen, die auf .yml
enden und sich in ./config/locales/
befinden. Ruby on Rails YAML-Dateien enthalten Informationen zur Sprache, sodass keine explizite Angabe der Sprache erforderlich ist. Update_translations
wird auf true gesetzt, so dass alle Änderungen an Übersetzungen importiert werden, wobei vorhandene Daten überschrieben werden.
phrase: push: sources: - file: ./config/locales/*.yml params: update_translations: true file_format: yml
iOS-Strings abgleichen
Abgleichung aller iOS Strings Dateien mit Dateien namens Localizable.strings
in .lproj
Ordnern.
Der <locale_code>
ist alles, was nach /
und vor .lproj
abgeglichen wurde, um Gebietsschemata zu erstellen und zu identifizieren.
Der Parameter update_translations
wird weggelassen und hat die gleiche Wirkung wie das Setzen auf false.
phrase: push: sources: - file: "./<locale_code>.lproj/Localizable.strings" params: file_format: strings
Verwalten mehrerer Strings Projekte für ein Lokalisierungsprojekt
Bearbeite die Konfigurationsdatei, um den Projektumfang zu begrenzen, indem du die Übersetzungen in kleinere Kategorien aufteilst.
Passe die Konfigurationsdatei an deine Anforderungen an und überprüfe sie dann in der Ausgangssprachen- oder im Versionskontrollsystem.
Rails
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: "yml" push: sources: - file: "./config/locales/*.yml" pull: targets: - file: "./config/locales/<locale_name>.yml"
iOS-Strings
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: "strings" push: sources: - file: "./<locale_code>.lproj/Localizable.strings" pull: targets: - file: "./<locale_code>.lproj/Localizable.strings" - file: "./<locale_code>.lproj/Localizable.stringsdict" params: #file_format can be overwritten file_format: "stringsdict"
Android-XML
Android verwendet nicht die ISO-Sprachcodes als Dateimuster. Gib das erforderliche Muster in .phrase.yml
an.
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: "xml" push: sources: - file: "./res/values-<locale_code>/strings.xml" pull: targets: - file: "./res/values-<locale_code>/strings.xml"
Beispiel mit Englisch als Standardsprache, einer deutschen Ausgangssprache und einer deutschen Sprachregion für österreichisches Deutsch:
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: xml pull: targets: - file: ./app/src/main/res/values/strings.xml params: file_format: xml # Unique locale id for English locale_id: LOCALE_ID - file: ./app/src/main/res/values-de/strings.xml params: file_format: xml # Unique locale id for German locale_id: LOCALE_ID - file: ./app/src/main/res/values-de-rAU/strings.xml params: file_format: xml # Unique locale id for Austrian locale_id: LOCALE_ID push: sources: - file: ./app/src/main/res/values/strings.xml params: file_format: xml locale_id: LOCALE_ID - file: ./app/src/main/res/values-de/strings.xml params: file_format: xml locale_id: LOCALE_ID - file: ./app/src/main/res/values-de-rAU/strings.xml params: file_format: xml locale_id: LOCALE_ID