A ferramenta Phrase Strings CLI ajuda a navegar na API para gerenciar projetos e traduções rapidamente a partir da linha de comando em vez de solicitações curl.
Se utilizar o centro de dados dos EUA, informe o host com phrase init --host https://api.us.app.phrase.com/v2
. Se a configuração já tiver sido gerada, adicione este código:
phrase: host: https://api.us.app.phrase.com/v2
Controle como o cliente executa push e pull nos arquivos editando o arquivo de configuração .phrase.yml
.
-
Inicialize um projeto.
Inicialize o projeto executando
phrase init
. Isso define o formato de arquivo local preferencial, arquivos originais de texto e muito mais:$ phrase init
-
Faça upload dos arquivos locais.
Use o subcomando
push
para fazer upload dos arquivos locais:$ phrase push
-
Faça download dos arquivos locais.
Use o subcomando
pull
para baixar os arquivos locais mais recentes de volta para um projeto:$ phrase pull
-
Mais subcomandos.
Para ver uma lista de todos os subcomandos disponíveis, execute
phrase
sem especificar um subcomando. Para ver todas as opções compatíveis com um subcomando específico, use a marca--help
:$ phrase locales list --help
Amostra de arquivo de configuração.
Regras de escape e uso de aspas
Ao passar objetos JSON na linha de comando, o uso de regras e aspas de escape pode variar de acordo com o shell usado.
Se você estiver usando um shell do Windows, inclua toda a string JSON em aspas duplas ""
e faça o escape de aspas duplas no JSON usando um caractere \
da barra invertida. Por exemplo:
phrase locales create --project_id PROJECT123 --data "{\"name\":\"French\", \"code\":\"fr\"}" --access_token TOKEN123123
Acessar endpoints da API
O cliente pode ser usado para acessar todos os endpoints da API. Por exemplo, para listar todos os projetos:
$ phrase projects list --access_token ACCESS_TOKEN
Autenticação usando credenciais do Phrase
Especifique o nome de usuário com a marca -username
e a senha será solicitada:
$ phrase projects list --username user@example.com Password: ********
Se a autenticação de dois fatores estiver ativada para o usuário ou organização, um token de múltiplos fatores válido deverá ser fornecido através do sinal --tfa
:
$ phrase projects list --username user@example.com --tfa Password: ******** TFA: ********
Autenticação usando token de acesso
Use a marca --access_ token
para especificar seu token de acesso:
$ phrase projects list --access_token ACCESS_TOKEN
ou use a variável de ambiente PHRASE_ACCESS_TOKEN
para armazenar seu token:
export PHRASE_ACCESS_TOKEN="ACCESS_TOKEN"
Se a autenticação de dois fatores estiver ativada, um token de vários fatores válido deverá ser fornecido por meio do marcador --x_phrase_app_otp
:
$ phrase projects list --access_token ACCESS_TOKEN --x_phrase_app_otp PASSWORD
O token também pode ser fornecido em modo interativo com a marca --tfa
:
$ phrase projects list --access_token ACCESS_TOKEN --tfa TFA: ********
O token de acesso é lido a partir do arquivo de configuração .phrase.yml
como padrão, mas o comportamento pode ser substituído usando as marcas ou variáveis env mencionadas e o token fornecido por meio da marca ou variável do ambiente é usado. Os tokens fornecidos por meio de sinalizadores substituem os tokens fornecidos por meio da variável do ambiente.
Ao armazenar o arquivo .phrase.yml
em um repositório de código, recomenda-se remover o token primeiro e usar métodos alternativos, como passar o token através do ambiente ou um marcador de linha de comando. Armazenar tokens secretos diretamente em um repositório pode ser um problema de segurança.
Push e pull
Use os comandos push e pull para fazer upload e download de arquivos locais. Em vez de argumentos de linha de comando, push e pull contam com a configuração armazenada no arquivo de configuração .phrase.yml
na pasta original do projeto.
Se o push tiver a opção
definida como true, o push substituirá as traduções. Pull sempre substitui as traduções no arquivo local.Exemplo de configuração para fazer upload e baixar arquivos locais de um aplicativo típico 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"
Use o comando push para fazer upload de arquivos locais ao projeto identificado pelo project_id
correspondente ao arquivo de.yml
e en.yml
na pasta config/locales. Se houver novas chaves, elas serão adicionadas ao arquivo de localização:
$ phrase push Uploading config/locales/de.yml Uploaded config/locales/de.yml successfully. Uploading config/locales/en.yml Uploaded config/locales/en.yml successfully.
Use o comando pull para baixar arquivos locais do projeto identificado pelo project_id
para seus caminhos de arquivos respectivos. Se houver novas chaves, elas serão adicionadas ao projeto:
$ phrase pull Downloaded de to config/locales/de.yml Downloaded en to config/locales/en.yml
Suporte ao limite de taxa
O cliente aceita o limite de taxa para downloads locais. Quando o limite de taxa é atingido, o cliente espera até que o limite de taxa expire para fazer o download dos locais depois. O cliente exibe a mensagem rate limit exceeded, download will resume in x seconds.
Limpeza de upload
O comando uploads cleanup é fornecido para excluir chaves que estão no projeto mas não estão contidas no arquivo enviado por upload. Após empurrar arquivos locais, pode ser necessária a exclusão de todas as chaves que não estejam contidas em um local padrão ou em outro local:
$ phrase uploads cleanup --id <YOUR_UPLOAD_ID>
Opções de formato
Vários formatos, como CSV, aceitam opções de formato adicionais durante o upload. Acesse estas opções prefixando as opções com --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
Usar prefixo da chave de tradução
Um prefixo da chave de tradução evita conflitos de chaves em diferentes projetos ou arquivos e melhora a rastreabilidade das chaves de tradução. A interface CLI é compatível com o tratamento de prefixos chaves para operações de pull e push.
-
Parâmetros push:
-
translation_key_prefix
: O prefixo especificado é predependido das chaves de tradução a serem empurradas.-
Use o marcador de posição mágico
<file_path>
para definir automaticamente otranslation_key_prefix
para o caminho do arquivo atual. O caminho tem um comprimento máximo de 255 caracteres.
-
-
-
Parâmetros de pull:
-
translation_key_prefix
: Este parâmetro permite que o prefixo seja subtraído dos nomes das chaves de tradução durante a operação pull.-
Use o marcador de posição mágico
<file_path>
para definir automaticamente otranslation_key_prefix
para o caminho do arquivo atual. O caminho tem um comprimento máximo de 255 caracteres.
-
-
filter_by_prefix
: Uma opção boolean que filtra as chaves de tradução com base no prefixo antes de puxá-las.
-
Exemplo de configuração do arquivo phrase.yml
:
phrase: access_token: access_token file_format: yml push: sources: - arquivo: path/to/your/file.yml project_id: project_id params: locale_id: en translation_key_prefix: prefix_ pull: targets: - arquivo: path/to/your/file.yml project_id: project_id params: translation_key_prefix: prefix_ filter_by_prefix: true
Exemplo de comando 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
Se estiver atrás de um proxy, especifique as configurações de proxy usando a variável de ambiente HTTPS_PROXY
:
export HTTPS_PROXY=https://user:password@host:port
Vários arquivos de localização para um projeto
Use um arquivo para cada local em um projeto. Se Ferramentas ou frameworks forçar o uso de vários arquivos, consulte Manter estruturas de arquivos para obter detalhes sobre como configurar o projeto.
Vários projetos para um projeto de localização
Ao trabalhar em um grande projeto de localização, distribua traduções em vários projetos. Configure o CLI para trabalhar com vários arquivos de localização para um projeto de localização.
Opções de formato
Alguns formatos de arquivo permitem especificar opções de formato para controlar melhor a sintaxe do arquivo. Especifique as opções de formato no arquivo de configuração .phrase.yml
:
phrase: pull: targets: - file: file.xml params: format_options: convert_placeholder: true push: sources: - file: file.csv params: format_options: column_separator: ";"
Configuração para projetos Android
O Android não usa os códigos de idioma ISO padrão como padrão de arquivo. Especifique o padrão necessário em .phrase.yml
.
Especifique cada local explicitamente no arquivo .phrase.yml
. Este exemplo mostra uma configuração de .phrase.yml
com o inglês como idioma padrão, um local alemão e um local de região alemã para o alemão austríaco:
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