Nástroj Phrase Strings CLI pomáhá procházet API a spravovat projekty a překlady rychle z příkazového řádku namísto požadavků z curl.
Pokud používáte datové centrum v USA, předejte hostitele s phrase init --host https://api.us.app.phrase.com/v2. Pokud byla konfigurace už vytvořena, přidejte tento kód:
phrase: host: https://api.us.app.phrase.com/v2
Tip
Podrobnější informace naleznete v Developer Hub.
Ovládejte, jak klient odesílá a stahuje soubory úpravou konfiguračního souboru .phrase.yml.
-
Inicializace projektu.
Inicializujte projekt spuštěním
phrase init. Tím se definuje preferovaný formát souboru kódu jazyka, zdrojové soubory a další:$ phrase init
-
Nahrání souborů kódu jazyka.
Použijte podpříkaz
pusha nahrajte soubory kódu jazyka:$ phrase push
-
Stažení souborů kódu jazyka.
Použijte podpříkaz
pulla stáhněte si nejnovější soubory kódu jazyka zpět do projektu:$ phrase pull
-
Další podpříkazy.
Chcete-li zobrazit seznam všech dostupných podpříkazů, spusťte
phrasebez zadání podpříkazu. Chcete-li zobrazit všechny podporované možnosti pro určitý podpříkaz, použijte příznak--help:$ phrase locales list --help
Vzorový konfigurační soubor.
Escapování pravidel a použití uvozovek
Při předávání objektů JSON na příkazovém řádku se mohou pravidla pro escapování a použití uvozovek lišit podle použitého shellu.
Pokud používáte prostředí Windows, uzavřete celý řetězec JSON do dvojitých uvozovek "" a dvojité uvozovky v JSON ukončete pomocí znaku zpětného lomítka \. Například:
phrase locales create --project_id PROJECT123 --data "{\"name\":\"French\", \"code\":\"fr\"}" --access_token TOKEN123123
Přístup ke koncovým bodům API
Klient může být použit pro přístup ke všem koncovým bodům API. Například pro vypsání seznamu všech projektů:
$ phrase projects list --access_token ACCESS_TOKEN
Ověřování pomocí přihlašovacích údajů Phrase
Označte uživatelské jméno příznakem --username a bude vyžadováno heslo:
$ phrase projects list --username user@example.com Password: ********
Je-li pro daného uživatele nebo organizaci aktivováno dvoufaktorové ověření, musí být prostřednictvím příznaku --tfa poskytnut platný vícefaktorový token:
$ phrase projects list --username user@example.com --tfa Password: ******** TFA: ********
Ověřování pomocí tokenu přístupu Strings
Přístupový token označte příznakem --access_token:
$ phrase projects list --access_token ACCESS_TOKEN
nebo použijte pro uložení tokenu proměnnou prostředí PHRASE_ACCESS_TOKEN:
export PHRASE_ACCESS_TOKEN="ACCESS_TOKEN"
Je-li aktivováno dvoufaktorové ověření, musí být platný vícefaktorový token poskytnut prostřednictvím příznaku --x_phrase_app_otp:
$ phrase projects list --access_token ACCESS_TOKEN --x_phrase_app_otp PASSWORD
Token lze poskytnout také v interaktivním režimu s příznakem --tfa:
$ phrase projects list --access_token ACCESS_TOKEN --tfa TFA: ********
Přístupový token se ve výchozím nastavení čte z konfiguračního souboru .phrase.yml, ale chování lze přepsat pomocí uvedených příznaků nebo proměnných prostředí a místo toho se použije token poskytnutý prostřednictvím příznaku nebo proměnné prostředí. Tokeny poskytnuté pomocí příznaků přepisují tokeny poskytnuté prostřednictvím proměnné prostředí.
Při ukládání souboru .phrase.yml do úložiště kódu se doporučuje token nejprve odebrat a použít alternativní metody, jako je předání tokenu prostřednictvím prostředí nebo příznaku příkazového řádku. Ukládání tajných tokenů přímo do úložiště může být bezpečnostní problém.
Ověřování pomocí tokenu přístupu Platform
Tokeny API Platform nejsou přímo přijímány rozhraním Strings CLI. Uživatelé musí nejprve vyměnit je za krátkodobý token přístupu k produktu (JWT) a poté použít vrácený token prostřednictvím jedné z následujících možností:
-
Nastavit proměnnou prostředí
export PHRASE_ACCESS_TOKEN=\"GENERATED-JWT\" phrase projects list --access_token \"$PHRASE_ACCESS_TOKEN\"
-
Předat token přímo
phrase projects list --access_token GENERATED-JWT
Push and pull
Příkazy push a pull použijte k nahrávání a stahování souborů kódu jazyka. Místo argumentů příkazového řádku se push a pull spoléhají na konfiguraci uloženou v konfiguračním souboru .phrase.yml v kořenové složce projektu.
Pokud má push volbu nastavenou na true, push překlady přepíše. Pull vždy přepíše překlady v místním souboru.
Chcete-li automaticky odstranit klíče v Phrase Strings, když jsou odebrány ze zdrojového souboru, přidejte parametr delete_unmentioned_keys: true do sekce push konfiguračního souboru .phrase.yml. Tento parametr musí být umístěn na úrovni push, jako sourozenec sources, nikoli vnořen pod params. Tento parametr odstraní jakýkoli klíč v projektu Phrase, který v synchronizovaném souboru chybí. Použijte toto pouze v případě, že zdrojový soubor obsahuje všechny klíče pro projekt.
Příklad konfigurace pro nahrávání a stahování souborů kódu jazyka typické aplikace Rails:
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"
Použijte příkaz push a nahrajte soubory kódu jazyka do projektu identifikovaného pomocí project_id s odpovídajícím souborem de.yml a en.yml ve složce config/locales. Pokud jsou k dispozici nové klíče, budou přidány do lokalizačního souboru:
$ phrase push Uploading config/locales/de.yml Uploaded config/locales/de.yml successfully. Uploading config/locales/en.yml Uploaded config/locales/en.yml successfully.
Použijte příkaz pull a stáhněte soubory kódu jazyka z projektu identifikovaného pomocí project_id do jejich cest k souborům. Pokud jsou k dispozici nové klíče, budou přidány do projektu:
$ phrase pull Downloaded de to config/locales/de.yml Downloaded en to config/locales/en.yml
Podpora přenosového limitu
Klient podporuje přenosový limit pro stahování kódu jazyka. Po dosažení přenosového limitu klient čeká, až přenosový limit vyprší, a poté pokračuje ve stahování kódů jazyků. Klient zobrazí zprávurate limit exceeded a stažení bude pokračovat za x sekund.
Upload cleanup
Příkaz uploads cleanup slouží k tomu, aby odstranil klíče, které se nacházejí v projektu, ale nejsou obsaženy v nahraném souboru. Po odeslání souborů kódu jazyka může být nutné odstranit všechny klíče, které nejsou obsaženy ve výchozím kódu jazyka nebo jiném kódu jazyka:
$ phrase uploads cleanup --id <YOUR_UPLOAD_ID>
Možnosti formátu
Některé formáty, jako například CSV, podporují při nahrávání další možnosti formátování. Přístup k těmto možnostem máte pomocí předpony --format_options:
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
Předpona překladového klíče
Předpona překladového klíče zabraňuje kolizím klíčů napříč různými projekty nebo soubory a zlepšuje sledovatelnost překladových klíčů. Rozhraní CLI podporuje zpracování předpony klíče pro operace pull i push.
-
Parametry push:
-
translation_key_prefix: Zadaný prefix se přidá před klíč překladu, který je nahráván.-
Použijte magický zástupný znak
<file_path>k automatickému nastavenítranslation_key_prefixna aktuální cestu k souboru. Cesta má maximální délku 255 znaků.
-
-
-
Parametry stažení:
-
translation_key_prefix: Tento parametr umožňuje odečíst prefix od názvů klíčů překladu během operace stažení.-
Použijte magický zástupný znak
<file_path>k automatickému nastavenítranslation_key_prefixna aktuální cestu k souboru. Cesta má maximální délku 255 znaků.
-
-
filter_by_prefix: Logická možnost, která filtruje klíče překladu na základě prefixu před jejich stažením.
-
Příklad konfigurace souboru phrase.yml:
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
Příklad příkazů Curl:
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
Pokud je za proxy serverem, zadejte nastavení proxy serveru pomocí proměnné prostředí HTTPS_PROXY:
export HTTPS_PROXY=https://user:password@host:port
Více lokalizačních souborů pro jeden projekt
Použijte jeden soubor pro každý kód jazyka v projektu. Pokud nástroje nebo framework vynutí použití více souborů, podrobnosti o tom, jak nastavit projekt, naleznete v tématu Údržba struktur souborů.
Více projektů pro jeden lokalizační projekt
Při práci na velkém lokalizačním projektu distribuujte překlady do více projektů. Nakonfigurujte CLI pro práci s více lokalizačními soubory pro jeden lokalizační projekt.
Možnosti formátu
Některé formáty souborů umožňují specifikovat formátování pro lepší kontrolu nad syntaxí souboru. V konfiguračním souboru .phrase.yml uveďte možnosti formátu::
phrase:
pull:
targets:
- file: file.xml
params:
format_options:
convert_placeholder: true
push:
sources:
- file: file.csv
params:
format_options:
column_separator: ";"
Konfigurace pro projekty systému Android
Android nepoužívá pro vzor souborů standardní kódy jazyků ISO. Určete požadovaný vzor v souboru .phrase.yml.
Místo definování samostatného cíle pull 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 pro všechny ostatní jazyky se vrátí k výchozímu kódu jazyka Phrase.
Příklad:
phrase:
access_token: ACCESS_TOKEN
project_id: PROJECT_ID
file_format: "xml"
# Mapovat kódy 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:
# Zdroj soubor je výchozí jazyk, mapovaný na 'values'
- file: ./app/src/main/res/values/strings.xml
params:
locale_id: en-US # Musí odpovídat zdroj kód jazyka v Phrase
pull:
targets:
# Použít zástupný znak <locale_name>, který bude nahrazen mapováním
- file: ./app/src/main/res/<locale_name>/Strings.xml