CLI

Using the CLI (Strings)

O conteúdo de toda a Central de Ajuda é traduzido automaticamente de inglês pelo Phrase Language AI.

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

Uso básico

Controle como o cliente executa push e pull nos arquivos editando o arquivo de configuração .phrase.yml.

  1. 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
  2. Faça upload dos arquivos locais.

    Use o subcomando push para fazer upload dos arquivos locais:

    $ phrase push
  3. Faça download dos arquivos locais.

    Use o subcomando pull para baixar os arquivos locais mais recentes de volta para um projeto:

    $ phrase pull
  4. 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

Acesso e autenticação

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 update_translations 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 o translation_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 o translation_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

Uso complexo

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
Esse artigo foi útil?

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.