CLI

Usando a 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
Senha: ********

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
Senha: ********
TFA: ********

Autenticação usando o token de acesso Strings

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 múltiplos fatores válido deve ser fornecido por meio da marca --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 por padrão, mas o comportamento pode ser substituído usando as marcas ou variáveis de ambiente mencionadas, e o token fornecido por meio da marca ou variável de ambiente é usado em vez disso. Os tokens fornecidos por meio de marcas substituem os tokens fornecidos por meio da variável de ambiente.

Ao armazenar o arquivo .phrase.yml em um repositório de código, é recomendável remover o token primeiro e usar métodos alternativos, como passar o token pela variável de ambiente ou por uma marca de linha de comando. Armazenar tokens secretos diretamente em um repositório pode ser um problema de segurança.

Autenticação usando o token de acesso da Plataforma

Tokens da API da Plataforma não são aceitos diretamente pelo CLI do Strings. Os usuários devem primeiro trocá-los por um token de acesso de produto de curta duração (JWT) e então usar o token retornado através de uma das seguintes opções:

  • Defina uma variável de ambiente

    export PHRASE_ACCESS_TOKEN="GENERATED-JWT"
    phrase projects list --access_token "$PHRASE_ACCESS_TOKEN"
  • Passe o token diretamente

    phrase projects list --access_token GENERATED-JWT

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 raiz 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 download de 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
Fazendo upload de config/locales/de.yml
Uploaded config/locales/de.yml com sucesso.
Fazendo upload de config/locales/en.yml
Uploaded config/locales/en.yml com sucesso.

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
Baixado de para config/locales/de.yml
Baixado en para config/locales/en.yml

Suporte ao limite de taxa

O cliente suporta o limite de taxa para downloads locais. Quando o limite de taxa é atingido, o cliente espera até que o limite de taxa expire e continua baixando os locais depois. O cliente exibe limite de taxa excedido, o download será retomado em x segundos.

Limpeza de upload

O comando de limpeza de uploads é fornecido para excluir chaves que estão no projeto, mas não estão contidas no arquivo enviado por upload. Após enviar arquivos locais, pode ser necessária a exclusão de todas as chaves que não estão 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, suportam 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

Prefixo da chave de tradução

Um prefixo de chave de tradução evita colisões de chaves em diferentes projetos ou arquivos e melhora a rastreabilidade das chaves de tradução. A interface CLI suporta o manuseio de prefixos de chaves para operações de pull e push.

  • Parâmetros de push:

    • translation_key_prefix: O prefixo especificado é adicionado às chaves de tradução que estão sendo enviadas.

      • Use o <file_path> marcador de posição mágico 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 de pull.

      • Use o <file_path> marcador de posição mágico 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 booleano 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:
      -
        file: caminho/para/seu/arquivo.yml
        project_id: project_id
        params:
          locale_id: en
          translation_key_prefix: prefix_
  pull:
    targets:
      -
        file: caminho/para/seu/arquivo.yml
        project_id: project_id
        params:
          translation_key_prefix: prefix_
          filter_by_prefix: true

Exemplo de comandos Curl:

curl "https://api.phrase.com/v2/projects/:project_id/uploads?translation_key_prefix=prefix_" \
  -u USERNAME_OR_ACCESS_TOKEN \
  -X POST \
  -F file=@/caminho/para/meu/arquivo.formato \\
  -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.

Em vez de definir um alvo de pull separado para cada local, use a configuração global locale_mapping combinada com o marcador de posição <locale_name>. A CLI usará o nome personalizado do mapeamento para o local correspondente e recorrerá ao código de local padrão do Phrase para todos os outros idiomas.

Exemplo:

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

  # Mapeie os locais do Phrase para nomes de diretório específicos do Android
  locale_mapping:
    en-US: values
    de-DE: values-de-rDE
    fr-FR: values-fr

  push:
    sources:
      # O arquivo de origem é o idioma padrão, mapeado para 'values'
      - file: ./app/src/main/res/values/strings.xml
        params:
          locale_id: en-US # Deve corresponder ao local de origem no Phrase

  pull:
    targets:
      # Use o marcador de posição <locale_name> que será substituído pelo mapeamento
      - file: ./app/src/main/res/<locale_name>/strings.xml
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.