Documentação

Internacionalizar um projeto

Execute o assistente de Internacionalização para tornar um projeto multilíngue. O Coroid lê o repositório, sugere idiomas e configurações e prepara uma pull request.

O assistente de internacionalização torna um projeto multilíngue. Ele lê seu repositório, inicia cada etapa com base no que encontrou e termina com uma tarefa que abre um pull request. Você nunca precisa digitar um código de idioma ou editar JSON; basta alterar apenas o que deseja, e nada é modificado no repositório até o merge.

Proprietários e administradores executam o assistente. Inicie-o a partir de Globalização → Internacionalização: escolha Internacionalizar um projeto, ou Iniciar o assistente na linha de um projeto. Para um projeto já multilíngue, Configurações → Alterar idiomas em sua área de trabalho abre o mesmo assistente para propor alterações.

As etapas

1. Escaneamento

Coroid lê o branch padrão sem executar nenhum de seus códigos. Ele procura por catálogos e seus idiomas, pelos frameworks utilizados e pelo texto ainda escrito diretamente no código, contando por arquivo.

  • Catálogos encontrados. O assistente os mantém: Coroid adiciona suas verificações e traduz o que está faltando. Isso é chamado de adotar.
  • Nenhum catálogo ainda. Coroid move o texto do seu código para os catálogos e substitui-o por consultas. Isso é chamado de introduzir.
  • Já configurado. O projeto já possui uma configuração do Coroid, e o assistente propõe alterações nela.

2. Idioma de origem

O idioma em que o produto foi escrito; todos os outros idiomas são traduzidos a partir dele. O assistente detecta esse idioma nos seus catálogos ou o adivinha com base no texto no código. Qualquer idioma pode ser a origem: um produto sueco Traduzido para inglês e alemão funciona da mesma maneira.

3. Idiomas

Selecione os idiomas um por um ou adicione todo um mercado de uma vez: Mais falados, Europa, Nórdicos, Leste Asiático, As Américas ou Da direita para a esquerda. Cada idioma exibe seu próprio nome, se é escrito da direita para a esquerda e quantas formas plurais necessita.

Variantes regionais podem ser derivadas em vez de traduzidas. O inglês britânico é derivado do inglês americano com ortografia britânica, e o alemão suíço do alemão com ortografia suíça, portanto não custam nada e permanecem alinhados ao seu idioma pai.

Internacionalização
Assistente de internacionalização

Cada etapa começa com o que já existe no repositório. Altere apenas o que desejar; nada será alterado até que o pull request seja mesclado.

Passo 3 de 8
Idiomas para adicionar

Selecione os idiomas um por um ou inclua todo um mercado de uma só vez. Variantes regionais, como o inglês britânico, podem ser geradas automaticamente com base em regras, em vez de exigir tradução manual.

5 idiomas
  • Deutschalemão · de · 2 formas plurais
  • Françaisfrancês · fr · 3 formas plurais
  • 日本語japonês · ja · 1 forma plural
  • العربيةárabe · ar · da direita para a esquerda · 6 formas plurais
  • British Englishinglês (Reino Unido) · en-GB · 2 formas pluraisDerivado com ortografia britânica
Adicionar um mercado
Mais faladoEuropaNórdicosLeste AsiáticoAs AméricasDa direita para a esquerda
VoltarContinuar

O assistente de Internacionalização na etapa de Idiomas: cada idioma com sua direção de escrita e formas plurais, o inglês britânico gerado por regras e os mercados para adicionar de uma só vez. Dados ilustrativos.

4. Strings

Ao adotar, escolha os catálogos que Coroid manterá traduzidos; suas chaves e estrutura permanecerão como estão. Ao introduzir, escolha os arquivos cujo texto Coroid moverá para os catálogos; os arquivos que você deixar de fora permanecerão como estão.

5. Estilo e termos

Tudo opcional e seguido em todos os idiomas:

  • Formal ou informal. Para idiomas que tratam o leitor de forma formal ou informal, como o alemão Sie e du. Por padrão, cada um segue o tom do texto de origem.
  • Termos mantidos como escritos. Nomes de produtos, marcas e recursos que permanecem os mesmos em todos os idiomas.
  • Sobre o produto. Algumas frases sobre o produto e seus leitores, que ajudam cada tradução a escolher as palavras certas.

6. Cultura

Cada mercado escreve datas, números e preços à sua maneira. Escolha como o código formata para o leitor: o assistente sugere o formatador do framework que encontrou, como o next-intl ou o react-intl, ou descreva o seu próprio. Depois, escolha a moeda que cada mercado utiliza; cada uma começa com a do próprio país. Cada mercado exibe uma amostra de data e número, o dia em que sua semana começa e seu tamanho de papel. Os agentes do Coroid seguem ambas as escolhas; veja Cultura.

7. Qualidade e automação

Ativados por padrão, e cada um pode ser alterado posteriormente:

  • Verificar traduções a cada alteração. A Verificação de globalização envia uma alteração de volta quando há strings ausentes ou corrompidas, ou adiciona texto ao código em vez do catálogo.
  • Traduzir strings mescladas fora do Coroid. Quando alguém mescla novo texto sem o Coroid, uma tarefa o traduz.
  • Aplicar correções todas as noites. Sugestões aprovadas de colaboradores chegam como um pull request toda noite.
  • Permitir que pessoas convidadas sugiram redação. Leitores nativos que você convidar podem corrigir traduções no seu site. Veja Manter traduções com sugestões.

O arquivo de configuração armazena a última versão. Coroid ativa as outras na próxima vez que um proprietário ou administrador abrir Globalização após o pull request ser mesclado, e apenas uma vez: se você desativar uma delas depois, ela permanecerá desativada.

8. Revisão

Um resumo do projeto, o que a tarefa fará, o idioma de origem, os idiomas e quais deles são derivados, o volume de tradução, os termos mantidos conforme escritos, o formatador e as moedas, além do que acontece após o merge. A tradução é cobrada como uso de modelo, assim como o trabalho de outros agentes, com limite por tarefa.

Escolha Internacionalizar. Coroid cria uma tarefa com uma Especificação e critérios de aceitação e inicia-a imediatamente.

O que a tarefa faz

  • Adotando escreve o arquivo de configuração exatamente como o assistente o compôs e, em seguida, traduz todas as strings ausentes.
  • Apresentando conecta sua estrutura, move o texto dos arquivos selecionados para catálogos, adiciona roteamento de idiomas, fallback e suporte a direita para esquerda, e então traduz.
  • Alterando escreve a nova configuração e corrige as traduções afetadas pela alteração.

A tarefa termina em um único pull request. Depois que ele for mesclado ao branch padrão, todos os idiomas aparecerão em Localização, e a Prontidão global analisará o código para ver o que ainda presume um único idioma.

Formatos

Coroid lê catálogos nesses formatos:

FormatoUse para
ICU JSONArquivos de mensagens com pluralização e seleção ICU
i18next JSONCatálogos i18next e react-i18next, incluindo sufixos de plural
Vue i18n JSONMensagens vue-i18n, incluindo mensagens vinculadas e pluralização via pipe
YAML do Railsconfig/locales/*.yml, com %{name} interpolação e chaves de plural
PO gettext.po arquivos e um .pot modelo, com Plural-Forms por idioma
Markdown e MDXPáginas de documentação dentro de uma pasta de idioma (docs/en/…): texto, descrições de imagens e campos de frontmatter selecionados; código e marcação permanecem como escritos
PersonalizadoQualquer outro formato, por meio de um pequeno comando adaptador no seu repositório

O arquivo de configuração

O assistente escreve .coroid/i18n.json. Ele descreve seu repositório, portanto vive nele e muda por meio de pull requests:

{
  "version": 1,
  "cli": { "version": "1.16.0", "sha256": "…" },
  "sourceLocale": "en",
  "targetLocales": ["de", "fr", "ja", "ar"],
  "derivedLocales": [
    { "locale": "en-GB", "from": "en", "rules": "en-gb-spelling" }
  ],
  "catalogs": [
    {
      "id": "ui",
      "format": "i18next-json",
      "source": "messages/{locale}.json"
    }
  ],
  "protectedTerms": ["Storefront"],
  "localeInstructions": {
    "de": "Address the reader informally (du)."
  },
  "world": {
    "formatter": "useFormatter from next-intl",
    "currencies": { "de": "EUR", "fr": "EUR", "ja": "JPY", "ar": "SAR" }
  }
}
  • cli fixa a versão exata do motor e seu checksum. Coroid baixa e verifica essa versão antes de cada execução, para que uma atualização nunca altere seu resultado de forma inesperada.
  • derivedLocales lista as variantes regionais produzidas pelas regras.
  • protectedTerms e localeInstructions guardam o que você escolheu sob Estilo e termos, e world o que você escolheu sob Cultura. O Verificação de Globalização lista o restante de world.

O arquivo também pode conter um glossário, contexto do produto, rotas de tradução por idioma e a vinculação de sugestões para colaboradores.

Configurações → Arquivo de configuração na área de trabalho mostra o arquivo exato no branch padrão. Para alterá-lo ali, edite a proposta e escolha Propor alteração: Coroid abre uma tarefa que aplica exatamente esse arquivo e corrige quaisquer traduções afetadas pela alteração. Para idiomas e estilo, o assistente é a maneira mais fácil.