CLI

Úprava konfiguračního souboru CLI (Strings)

Obsah je strojově přeložen z angličtiny s použitím Phrase Language AI.

Push a Pull

Push

$ phrase push 

Příkaz push nahrává soubory nalezené v adresářích místních projektů. K určení souborů, které chcete nahrát, a nastavení dalších parametrů použijte soubor .phrase.yml. Zástupný znak <tag> lze také použít ke stažení klíčů do samostatných souborů na základě jejich tagů.

Pull

$ phrase pull 

Podobně jako u příkazu push, ale nelze použít globování. Při použití zástupných znaků použijte pokud možno <locale_name>. Chcete-li pull soubor s klíči s konkrétním tagem, použijte parametr tags:

phrase:
  pull:
    targets:
    - file: path/to/file/<locale_name>.yml
      params:
        tags:tag_name

Chcete-li použít zástupný znak <tag>, musí být požadované tagy uvedeny v oddílu params.

Parametry

Příkazy push a pull lze nakonfigurovat v souboru .phrase.yml.

Poznámka

Všechny možnosti API koncového bodu uploads jsou podporovány pro příkaz push.

Všechny možnosti API koncového bodu locales download jsou podporovány pro příkaz pull.

Příklad push:

push:
  sources:
  - file: ./locales/en.json
    params:
      update_translations: true 

Příklad Pull:

pull:
  targets:
  - file: "./locales/example.yml"
    params:
      include_unverified_translations: true

Možnosti formátu

V závislosti na formátu souboru lze na oddíl parametrů použít formátovací možnosti. Formátovací možnosti lze použít pro uploads, downloads nebo obě.

Příklady formátu:

params:
  format_options:
    convert_placeholder: true

Některé formáty souborů umožňují lepší kontrolu nad syntaxí souboru:

phrase:
  pull:
    targets:
    - file: file.xml
      params:
        format_options:
          convert_placeholder: true

  push:
    sources:
    - file: file.csv
      params:
        format_options:
          column_separator: ";"

Zástupné znaky a globování

Do cest v položkách souboru lze umístit následující zástupné znaky a operátory globování:

  • <locale_name>

    Jedinečný název kódu jazyka.

  • <locale_code>

    Identifikátor kódu jazyka odpovídající RFC 5646. Kód jazyka nemusí být jedinečný, takže se stejným kódem může existovat více jazyků s různými názvy.

  • <tag>

    Pro seskupování klíčů použít tagy. Tagy lze použít k zachování původní struktury souboru.

Globování

* a ** jsou operátory globování. Jedna hvězdička * přeskočí libovolnou složku v cestě. Dvojitá hvězdička ** se podobá standardnímu operátoru globování a pro účely opakovatelného hledání shod odpovídá libovolnému znaku.

Příklady:

# vzor souboru

./abc/**/*.yml
# s několika soubory ve vašem systému

./abc/defg/en.yml

./abc/es.yml

./fr.yml
# vybírá

./abc/defg/en.yml

./abc/es.yml

Pokud chcete stáhnout soubory pomocí příkazu pull, zadejte místo ./**/*.yml explicitní vzor souboru, jako je ./abc/defg/<locale_name>.yml.

Čekání na nahrání

Veškeré nahrávání se zpracovává asynchronně. Chcete-li na nahrání čekat, použijte příznak --wait. Push počká, než se každý soubor nahraje, a vrátí zprávu o úspěchu nebo selhání operace.

Příklady použití

Nahrát soubor do vybraného kódu jazyka

Nahrajte soubor en.json do adresáře ./locales/ s daným locale_id (kód jazyka už musí existovat).

Update_translations je nastavena na false, takže se importují pouze nové klíče a překlady. Pokud je nastavena na true, klient by také importoval místní změny do stávajících překladů, čímž by přepsal veškerý již přítomný obsah.

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 # kód jazyka musí existovat vzdáleně

Poznámka

Importované položky překladu nelze odstranit. V případě potřeby aktualizujte překlady na prázdné hodnoty prostřednictvím příslušného koncového bodu API.

Ruby on Rails: nahrát určitý typ souborů

Nahrajte všechny soubory končící na .yml umístěné v ./config/locales/. Soubory YAML Ruby on Rails obsahují informace o kódu jazyka, takže není nutné kód jazyka výslovně specifikovat. Update_translations je nastavena na true, takže všechny změny překladů budou importovány s přepsáním stávajících dat.

phrase:
  push:
    sources:
    - file: ./config/locales/*.yml
      params:
        update_translations: true
        file_format: yml

Přiřazení iOS strings

Pro přiřazení všech souborů iOS strings se soubory s názvem Localizable.strings ve složkách .lproj.

<locale_code> je vše, co se shoduje za / a před .lproj, aby bylo možné vytvořit a identifikovat kódy jazyků.

Parametr update_translations se vynechá a má stejný účinek jako jeho nastavení na false.

phrase:
  push:
    sources:
    - file: "./<locale_code>.lproj/Localizable.strings"
      params:
        file_format: strings

Zachovat víc projektů Strings pro jeden lokalizační projekt

Upravte konfigurační soubor a omezte rozsah projektů rozdělením překladů do menších kategorií.

Příklady konfigurace pro frameworky

Upravte konfigurační soubor tak, aby vyhovoval požadavkům, a poté jej zařaďte do systému pro správu zdrojů nebo verzí.

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 může být přepsán
        file_format: "stringsdict"

Android XML

Android nepoužívá standardní kódy jazyků ISO jako vzor souboru. Určete požadovaný vzor v souboru .phrase.yml.

Místo definování samostatného cíle pro každý kód jazyka použijte globální nastavení locale_mapping v kombinaci se zástupným znakem <locale_name>. CLI použije vlastní název z mapování pro odpovídající kód jazyka a v případě potřeby se vrátí k výchozímu kódu jazyka Phrase pro všechny ostatní jazyky.

Příklad:

phrase:
  access_token: ACCESS_TOKEN
  project_id: PROJECT_ID
  file_format: "xml"

  # Mapování kódů jazyka Phrase na názvy adresářů specifické pro Android
  locale_mapping:
    en-US: values
    de-DE: values-de-rDE
    fr-FR: values-fr

  push:
    sources:
      # Zdrojový soubor je výchozí jazyk, mapovaný na 'values'
      - file: ./app/src/main/res/values/strings.xml
        params:
          locale_id: en-US # Musí odpovídat zdrojovému kódu jazyka v Phrase

  pull:
    targets:
      # Použijte zástupný znak <locale_name>, který bude nahrazen mapováním
      - file: ./app/src/main/res/<locale_name>/strings.xml

Příklad explicitně nastavených kódů jazyka

Příklad s angličtinou jako výchozím jazykem, německým kódem jazyka a německým kódem jazyka pro rakouskou němčinu:

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
        # Unikátní kód jazyka pro angličtinu
        locale_id: LOCALE_ID
    - file: ./app/src/main/res/values-de/strings.xml
      params:
        file_format: xml
        # Unikátní kód jazyka pro němčinu
        locale_id: LOCALE_ID
    - file: ./app/src/main/res/values-de-rAU/strings.xml
      params:
        file_format: xml
        # Unikátní kód jazyka pro rakouský
        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

Příklad pro více platforem

Automaticky posílejte a stahujte překlady pro více cílů v jedné konfiguraci. 

phrase:
  access_token: ACCESS_TOKEN
  project_id: PROJECT_ID
  file_format: nested_json

  push:
    sources:
      # Web JSON
      - soubor: "apps/web/src/assets/i18n/.json"
        params:
          file_format: nested_json
          locale_id: LOCALE_ID
      # Android XML
      - soubor: "apps/android/app/src/main/res/values-/strings.xml"
        params:
          file_format: android
          locale_id: LOCALE_ID
      # iOS Strings
      - soubor: "apps/ios/.lproj/Localizable.strings"
        params:
          file_format: strings
          locale_id: LOCALE_ID

  pull:
    targets:
      - soubor: "apps/web/src/assets/i18n/.json"
        params:
          file_format: nested_json
          locale_id: LOCALE_ID
      - soubor: "apps/android/app/src/main/res/values-/strings.xml"
        params:
          file_format: android
          locale_id: LOCALE_ID
      - soubor: "apps/ios/.lproj/Localizable.strings"
        params:
          file_format: strings
          locale_id: LOCALE_ID
Byl pro vás tento článek užitečný?

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.