CLI

Using the CLI (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-Aufrufen.

Wenn du das US-Rechenzentrum verwendest, kannst du den den Host mit der Phrase init --host https://api.us.app.phrase.com/v2 passen. Wenn die Konfiguration bereits erstellt wurde, füge folgenden Code hinzu:

phrase:
  host: https://api.us.app.phrase.com/v2

Grundverwendung

Steuern Sie, wie der Client Dateien pusht und abruft, indem Sie die Konfigurationsdatei .phrase.yml bearbeiten.

  1. Initialisiere ein Projekt.

    Initialisiere ein Projekt, indem du phrase init ausführst. Dies definiert bevorzugte Sprachen 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.

Bei einem Windows-Shell, muss die gesamte JSON Zeichenfolge in doppelte Anführungszeichen „“ gesetzt werden und doppelte Anführungszeichen innerhalb von JSON mit einem Backslash \ müssen vermieden werden. Beispiel:

phrase locales create --project_id PROJECT123 --data "{\"name\":\"French\", \"code\":\"fr\"}" --access_token TOKEN123123

Zugriff und Authentifizierung

Zugriff auf API-Endpunkte

Mit dem Client kann auf alle API-Endpunkte zugreifen werden. Zum Beispiel, um alle Projekte aufzulisten:

$ phrase projects list --access_token ACCESS_TOKEN

Authentifizierung mit Phrase-Anmeldeinformationen

Gib mit --username einen Benutzernamen an, um das Passwort anzufordern_

$ phrase projects list --username user@example.com
Password: ********

Wenn für den User oder die Organisation Zwei-Faktor-Authentifizierung aktiviert ist, muss ein gültiger Multi-Faktor Token über das -tfa erstattet werden:

$ phrase projects list --username user@example.com --tfa
Password: ********
TFA: ********

Authentifizierung mit Zugriffstoken

Verwende --zugriff_token, um dein 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 Zwei-Faktor-Authentifizierung aktiviert ist, muss ein gültiger Multi-Faktor Token mit man --x_phrase_app_otp angegeben werden:

$ phrase projects list --access_token ACCESS_TOKEN --x_phrase_app_otp PASSWORD

Ein Token kann auch im interaktiven Modus mit -tfa 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 Datei .phrase.yml in einem Code Repository empfiehlt es sich, zunächst den Token zu entfernen und alternative Methoden zu verwenden, wie z.B. das Durchgeben des Tokens durch die Umgebung oder ein Kommandozeilenflag zu melden. Geheime Token direkt in einem Repository zu speichern kann ein sicherheitstechnisches Problem sein.

Push & 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: „ZUGRIFFS_TOKEN“
  project_id: "PROJEKT_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
Uploading config/locales/de.yml
Uploaded config/locales/de.yml successfully.
Uploading config/locales/en.yml
Uploaded config/locales/en.yml successfully.

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 Ratelimits

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 Gebietsschemata herunter. Der Client zeigt das Ratenlimit überschritten an. Der Download wird in x Sekunden fortgesetzt.

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 das Löschen aller Keys, die nicht in einer Standardsprache oder einer anderen Sprache enthalten sind, erforderlich sein:

$ phrase uploads cleanup --id <YOUR_UPLOAD_ID>

Format-Optionen

Verschiedene Formate, wie zum Beispiel CSV, unterstützen zusätzliche Formatoptionen beim hochladen. Greife auf diese Optionen zu, indem du die Optionen --format_options voranstellst:

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

Übersetzungs-Key-Präfix verwenden

Ein Translation Key Präfix verhindert Key Kollisionen zwischen verschiedenen Projekten oder Dateien und verbessert die Rückverfolgbarkeit von Translation Keys. Die CLI-Schnittstelle unterstützt Key Präfixe sowohl pull als auch push.

  • Push Parameter:

    • translation_key_prefix: Der angegebene Präfix wird dem Pushen der Translation Keys vorangestellt.

      • Verwende den magischen Platzhalter <file_path>, um den translation_key_prefix automatisch auf den aktuellen Dateipfad zu setzen. Der Pfad hat eine maximale Länge von 255 Zeichen.

  • Pull Parameter:

    • translation_key_prefix: Mit diesem Parameter kann der Präfix während des pull Vorgangs von den Translation Key Namen abgezogen werden.

      • Verwende den magischen Platzhalter <file_path>, um den translation_key_prefix automatisch 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 auf der Grundlage des Präfixes filtert, bevor sie abgerufen werden.

Beispielkonfiguration der Datei phrase.yml:

phrase:
  access_token: access_token
  file_format: yml
  push:
    sources:
      -
        Datei: path/to/your/file.yml
        project_id: project_id
        params:
          locale_id: en
          translation_key_prefix: prefix_
  pull:
    targets:
      -
        Datei: 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 file=@/path/to/my/file.format \
  -F file_format=format \
  -F locale_id=locale_id
Curl "https://api.phrase.com/v2/projects/:project_id/locales/:id/download?file_format=file_format&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:
    - file: file.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 ISO-Sprachcodes als Dateimuster. Gib das erforderliche Muster in .phrase.yml an.

Gib jede Sprache explizit in der Datei .phrase.yml an. Dieses Beispiel zeigt eine .phrase.yml-Konfiguration mit Englisch als Standardsprache, einem deutschen Gebietsschema und einem deutschen Gebietsschema für Österreichdeutsch:

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