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.
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.
- Digitalizar
- Idioma-fonte
- Idiomas
- Strings
- Estilo e termos
- Cultura
- Qualidade e automação
- Revisão
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.
- 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
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:
| Formato | Use para |
|---|---|
| ICU JSON | Arquivos de mensagens com pluralização e seleção ICU |
| i18next JSON | Catálogos i18next e react-i18next, incluindo sufixos de plural |
| Vue i18n JSON | Mensagens vue-i18n, incluindo mensagens vinculadas e pluralização via pipe |
| YAML do Rails | config/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 MDX | Pá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 |
| Personalizado | Qualquer 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" }
}
}clifixa 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.derivedLocaleslista as variantes regionais produzidas pelas regras.protectedTermselocaleInstructionsguardam o que você escolheu sob Estilo e termos, eworldo que você escolheu sob Cultura. O Verificação de Globalização lista o restante deworld.
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.