CLI

Die CLI verwenden (Strings)

Inhalte werden von Phrase Language AI maschinell aus dem Englischen übersetzt.

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

Grundverwendung

Steuere, wie der Client Dateien pusht und abruft, indem du die Konfigurationsdatei .phrase.yml bearbeitest.

  1. Initialisiere ein Projekt.

    Initialisiere das Projekt, indem du phrase init ausführst. Dies definiert bevorzugte Sprache Dateiformate, Ausgangsdateien und mehr:

    $ phrase init
  2. Sprachdateien hochladen.

    Verwende den Unterbefehl push, um Sprachdateien hochzuladen:

    $ phrase push
  3. Sprachdateien herunterladen.

    Verwende den Unterbefehl pull, um die aktuellsten Sprachdateien in ein Projekt herunterzuladen:

    $ phrase pull
  4. Weitere Unterbefehle.

    Um eine Liste aller verfügbaren Unterbefehle anzuzeigen, führe phrase aus, 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 und Authentifizierung

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 update_translations 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 den translation_key_prefix auf 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 den translation_key_prefix auf 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

Komplexe Verwendung

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
War dieser Beitrag hilfreich?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.