Das Phrase Strings CLI-Tool hilft bei der Navigation durch die API, um Projekte und Übersetzungen schnell von der Kommandozeile aus zu verwalten, anstatt aus Curl-Anfragen.
Wenn du das US-Rechenzentrum verwendest, kannst du den Host mit phrase init --host https://api.us.app.phrase.com/v2 übergeben. Wenn die Konfiguration bereits erstellt wurde, füge folgenden Code hinzu:
phrase: host: https://api.us.app.phrase.com/v2
Steuere, wie der Client Dateien pusht und abruft, indem du die Konfigurationsdatei .phrase.yml bearbeitest.
-
Initialisiere ein Projekt.
Initialisiere das Projekt, indem du
phrase initausführst. Dies definiert bevorzugte Sprache Dateiformate, Ausgangsdateien und mehr:$ phrase init
-
Sprachdateien hochladen.
Verwende den Unterbefehl
push, um Sprachdateien hochzuladen:$ phrase push
-
Sprachdateien herunterladen.
Verwende den Unterbefehl
pull, um die aktuellsten Sprachdateien in ein Projekt herunterzuladen:$ phrase pull
-
Weitere Unterbefehle.
Um eine Liste aller verfügbaren Unterbefehle anzuzeigen, führe
phraseaus, ohne einen Unterbefehl anzugeben. Um alle unterstützten Optionen für einen bestimmten Unterbefehl anzuzeigen, verwende--Hilfe:$ phrase locales list --help
Beispiel Konfigurationsdatei.
Verwendung von Ausweichregeln und Anführungszeichen
Beim Vorbeiführen an JSON-Objekten in der Kommandozeile kann die Verwendung von Ausweichregeln und Anführungszeichen je nach verwendeter Shell variieren.
Wenn Sie eine Windows-Shell verwenden, schließen Sie die gesamte JSON-Zeichenfolge in doppelte Anführungszeichen "" ein und entkommen Sie doppelte Anführungszeichen innerhalb von JSON mit einem Backslash \ Zeichen. Zum Beispiel:
phrase locales create --project_id PROJECT123 --data "{\"name\":\"French\", \"code\":\"fr\"}" --access_token TOKEN123123
Zugriff auf API-Endpunkte
Der Client kann verwendet werden, um auf alle API-Endpunkte zuzugreifen. Zum Beispiel, um alle Projekte aufzulisten:
$ phrase projects list --access_token ACCESS_TOKEN
Authentifizierung mit Phrase-Anmeldeinformationen
Geben Sie den Benutzernamen mit dem --username Flag an, und das Passwort wird angefordert:
$ phrase projects list --username user@example.com Passwort: ********
Wenn die Zwei-Faktor-Authentifizierung für den Benutzer oder die Organisation aktiviert ist, muss ein gültiger Multi-Faktor-Token über das --tfa Flag bereitgestellt werden:
$ phrase projects list --username user@example.com --tfa Passwort: ******** TFA: ********
Authentifizierung mit Strings Zugriffstoken
Verwenden Sie das --access_token Flag, um Ihr Zugriffstoken anzugeben:
$ phrase projects list --access_token ACCESS_TOKEN
oder verwende die Umgebungsvariable PHRASE_ACCESS_TOKEN, um dein Token zu speichern:
export PHRASE_ACCESS_TOKEN="ACCESS_TOKEN"
Wenn die Zwei-Faktor-Authentifizierung aktiviert ist, muss ein gültiger Multi-Faktor-Token über das --x_phrase_app_otp Flag bereitgestellt werden:
$ phrase projects list --access_token ACCESS_TOKEN --x_phrase_app_otp PASSWORD
Ein Token kann auch im interaktiven Modus mit dem --tfa Flag bereitgestellt werden:
$ phrase projects list --access_token ACCESS_TOKEN --tfa TFA: ********
Der Zugriffstoken wird standardmäßig aus der Konfigurationsdatei .phrase.yml gelesen, aber das Verhalten kann durch Verwendung der erwähnten Flags oder Umgebungsvariablen außer Kraft gesetzt werden, und das über das Flag oder die Umgebungsvariable bereitgestellte Token wird stattdessen verwendet. Über Flags bereitgestellte Token überschreiben die über die Umgebungsvariable bereitgestellten Token.
Beim Speichern der .phrase.yml Datei in einem Code-Repository wird empfohlen, das Token zuerst zu entfernen und alternative Methoden zu verwenden, wie das Übergeben des Tokens über die Umgebung oder ein Befehlszeilen-Flag. Das direkte Speichern geheimer Tokens in einem Repository kann ein Sicherheitsproblem darstellen.
Authentifizierung mit dem Plattform-Zugriffstoken
Plattform-API-Tokens werden nicht direkt von der Strings CLI akzeptiert. Benutzer müssen zuerst sie gegen ein kurzlebiges Produktzugriffstoken (JWT) eintauschen und dann das zurückgegebene Token über eine der folgenden Optionen verwenden:
-
Setze eine Umgebungsvariable
export PHRASE_ACCESS_TOKEN="GENERATED-JWT" phrase projects list --access_token "$PHRASE_ACCESS_TOKEN"
-
Gib das Token direkt weiter
phrase projects list --access_token GENERATED-JWT
Push und Pull
Verwende die Befehle Push und Pull, um Sprachdateien hochzuladen und herunterzuladen. Anstelle von Kommandozeilenargumenten verlassen sich Push und Pull auf die Konfiguration, die in der Konfigurationsdatei .phrase.yml im Stammordner des Projekts gespeichert ist.
Wenn beim Push-Befehl die Option auf „true“ gesetzt ist, überschreibt der Push-Befehl die Übersetzungen. Der Pull-Befehl überschreibt immer Übersetzungen in der lokalen Datei.
Beispielkonfiguration für das Hoch- und Herunterladen von Sprachdateien einer typischen Rails-Anwendung:
phrase:
access_token: "ACCESS_TOKEN"
project_id: "PROJECT_ID"
file_format: "yml"
push:
sources:
- file: "./config/locales/<locale_name>.yml"
pull:
targets:
- file: "./config/locales/<locale_name>.yml"
Verwende den Push-Befehl, um Sprachdateien in das Projekt hochzuladen, das durch project_id identifiziert wird, die der Datei de.yml und en.yml im Ordner config/locales entsprechen. Wenn es neue Keys gibt, werden diese der Lokalisierungsdatei hinzugefügt:
$ phrase push Hochladen von config/locales/de.yml config/locales/de.yml erfolgreich hochgeladen. Hochladen von config/locales/en.yml config/locales/en.yml erfolgreich hochgeladen.
Verwende den Pull-Befehl, um Sprachdateien von dem durch project_id identifizierten Projekt in die jeweiligen Dateipfade herunterzuladen. Wenn es neue Keys gibt, werden diese dem Projekt hinzugefügt:
$ phrase pull Downloaded de to config/locales/de.yml Downloaded en to config/locales/en.yml
Unterstützung für Ratenlimits
Der Client unterstützt das Ratenlimit für Downloads in Sprachen. Wenn das Ratenlimit erreicht ist, wartet der Client, bis das Ratenlimit abgelaufen ist, und lädt anschließend die Sprachen herunter. Der Client zeigt Ratenlimit überschritten, der Download wird in x Sekunden fortgesetzt an.
Upload-Bereinigung
Mit dem Upload-Bereinigungsbefehl werden Keys gelöscht, die im Projekt gefunden werden, aber nicht in der hochgeladenen Datei enthalten sind. Nach dem Pushen von Sprachdateien kann es erforderlich sein, alle Keys zu löschen, die nicht in einer Standardsprache oder einer anderen Sprache enthalten sind:
$ phrase uploads cleanup --id <YOUR_UPLOAD_ID>
Format-Optionen
Verschiedene Formate, wie zum Beispiel CSV, unterstützen zusätzliche Formatoptionen beim Hochladen. Greifen Sie auf diese Optionen zu, indem Sie die Optionen mit --format_options voranstellen:
phrase uploads create \\
--project_id PROJECT_ID \\
--file ./en.csv \
--file_format csv \\
--locale_mapping ‘{“en”:3, “de”:2}’ \\
--format_options ‘{“key_index”:1}’ \\
--access token YOUR_ACCESS_TOKEN
Übersetzungsschlüssel-Präfix
Ein Übersetzungsschlüssel-Präfix verhindert Schlüsselkonflikte zwischen verschiedenen Projekten oder Dateien und verbessert die Nachverfolgbarkeit von Übersetzungsschlüsseln. Die CLI-Schnittstelle unterstützt die Handhabung von Schlüsselpräfixen sowohl für Pull- als auch für Push-Operationen.
-
Push-Parameter:
-
translation_key_prefix: Das angegebene Präfix wird den Übersetzungsschlüsseln, die gepusht werden, vorangestellt.-
Verwenden Sie den
<file_path>magischen Platzhalter, um automatisch dentranslation_key_prefixauf den aktuellen Dateipfad zu setzen. Der Pfad hat eine maximale Länge von 255 Zeichen.
-
-
-
Pull-Parameter:
-
translation_key_prefix: Dieser Parameter ermöglicht es, das Präfix von den Übersetzungsschlüsseln während der Pull-Operation abzuziehen.-
Verwenden Sie den
<file_path>magischen Platzhalter, um automatisch dentranslation_key_prefixauf den aktuellen Dateipfad zu setzen. Der Pfad hat eine maximale Länge von 255 Zeichen.
-
-
filter_by_prefix: Eine boolesche Option, die Übersetzungsschlüssel basierend auf dem Präfix vor dem Pullen filtert.
-
Beispielkonfiguration der phrase.yml Datei:
phrase:
access_token: access_token
file_format: yml
push:
sources:
-
file: path/to/your/file.yml
project_id: project_id
params:
locale_id: en
translation_key_prefix: prefix_
pull:
targets:
-
file: path/to/your/file.yml
project_id: project_id
params:
translation_key_prefix: prefix_
filter_by_prefix: true
Beispiel für Curl-Befehle:
curl "https://api.phrase.com/v2/projects/:project_id/uploads?translation_key_prefix=prefix_" \ -u USERNAME_OR_ACCESS_TOKEN \ -X POST \\ -F datei=@/pfad/zum/meiner/datei.format \\ -F file_format=format \ -F locale_id=locale_id
curl "https://api.phrase.com/v2/projects/:projekt_id/locales/:id/download?file_format=dateiformat&translation_key_prefix=prefix_&filter_by_prefix=true" \\ -u USERNAME_OR_ACCESS_TOKEN
Proxy
Gib hinter einem Proxy Einstellungen mit der Umgebungsvariablen HTTPS_PROXY an:
export HTTPS_PROXY=https://user:password@host:port
Mehrere Lokalisierungsdateien für ein Projekt
Verwende für jede Sprache eines Projekts eine Datei. Wenn mit Tools oder Frameworks mehrere Dateien verwendet werden müssen, findest du unter Beibehaltung von Dateistrukturen weitere Informationen, wie das Projekt festgelegt werden kann.
Mehrere Projekte für ein Lokalisierungsprojekt
Verteile Übersetzungen an einem großen Lokalisierungsprojekt über mehrere Projekte. Konfiguriere das CLI für den Job mit mehreren Lokalisierungsdateien für ein Lokalisierungsprojekt.
Format-Optionen
Einige Dateiformate erlauben es, Formatoptionen festzulegen, um die Dateisyntax besser kontrollieren zu können. Format in der Konfigurationsdatei .phrase.yml angeben:
phrase:
pull:
targets:
- datei: datei.xml
params:
format_options:
convert_placeholder: true
push:
sources:
- file: file.csv
params:
format_options:
column_separator: ";"
Konfiguration für Android-Projekte
Android verwendet keine standard ISO-Sprachcodes als Dateimuster. Gib das erforderliche Muster in .phrase.yml an.
Anstatt ein separates Pull-Ziel für jede Sprache zu definieren, verwende die globale locale_mapping Einstellung in Kombination mit dem <locale_name> Platzhalter. Die CLI verwendet den benutzerdefinierten Namen aus der Zuordnung für die entsprechende Sprache und greift auf den Standard-Phrase-Sprachcode für alle anderen Sprachen zurück.
Beispiel:
phrase:
access_token: ACCESS_TOKEN
project_id: PROJECT_ID
file_format: "xml"
# Ordne Phrase-Sprachen den Android-spezifischen Verzeichnisnamen zu
locale_mapping:
en-US: values
de-DE: values-de-rDE
fr-FR: values-fr
push:
sources:
# Quelldatei ist die Standardsprache, zugeordnet zu 'values'
- file: ./app/src/main/res/values/strings.xml
params:
locale_id: en-US # Muss mit der Quellsprache in Phrase übereinstimmen
pull:
targets:
# Verwende den <locale_name> Platzhalter, der durch die Zuordnung ersetzt wird
- file: ./app/src/main/res/<locale_name>/strings.xml