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
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: ";"
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.
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.
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í.
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