Documentação

Traduza seu projeto

Configure traduções para um projeto, mantenha-as atualizadas por meio do Controle de Qualidade e saiba seus custos.

Coroid traduz seu produto com o mesmo mecanismo que usa para suas treze línguas. Seus catálogos permanecem como arquivos no seu repositório. Qualquer alteração neles chega como uma tarefa normal e pull request, sendo enviadas ao modelo apenas as strings novas, modificadas ou com erros.

As traduções ficam em Controle de Qualidade → Traduções. A lista exibe cada projeto, se as traduções estão configuradas e a última varredura realizada. Abra um projeto para acessar sua estação de trabalho.

Loja virtual
Configurado · origem en · 4 localidades de destino
Visão geralConfiguraçãoConfiguraçãoColaboradoresSugestõesAutomações
Última varreduraVisualizar achadosVisualizar execução
LocalidadeFaltandoDesatualizado
de02
fr140
ja141
ar140
  • TraduçõesQA de tarefas e pull requests · apenas strings alteradasPublicado
  • Auditoria de traduçãoAgendada · todas as páginas de catálogo e localidadeRascunho

Controle de qualidade → Traduções para um projeto: a última verificação de tradução por localidade e os controles de Auditoria de tradução e Traduções. Dados ilustrativos.

O que seu repositório precisa

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 do 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 estão.
PersonalizadoQualquer outro formato, por meio de um pequeno comando adaptador no seu repositório.

Você ainda não precisa de traduções. Se seu projeto não tem i18n, Coroid pode introduzi-lo.

Configurar

A Configuração aba orienta você em três etapas.

  1. Detectar. Coroid prepara uma tarefa de descoberta. Ele executa o mecanismo de tradução definido no seu repositório e registra a pilha tecnológica, os catálogos, qual idioma é a fonte e tudo aquilo que gerar dúvidas.
  2. Escolher. Selecione Adotar i18n existente para manter sua estrutura e catálogos e adicionar as verificações e o mecanismo de deltas do Coroid. Escolha Introduzir i18n para que o Coroid configure sua estrutura, extraia as strings representativas e adicione roteamento de idiomas, fallbacks e suporte a escrita da direita para a esquerda.
  3. Criar. Coroid cria a tarefa de configuração com uma Especificação e critérios de aceitação. O resultado final é um pull request que você revisa como qualquer outra tarefa.
Loja virtual
Ainda não configurado · instalação em andamento
Visão geralConfiguraçãoConfiguraçãoColaboradoresSugestõesAutomações
  1. Detectar
  2. 2Escolher
  3. 3Criar
Detectado: Next.js com next-intl · 3 catálogos do JSON · origem en
Adote o i18n existente

Mantenha sua estrutura e catálogos atuais e adicione as verificações de tradução e o mecanismo de deltas do Coroid.

Introduza o i18n

Conecte sua estrutura, extraia strings representativas e adicione roteamento de localidade, fallback e comportamento RTL.

Localidade de origem
en
Localidades de destino
de, fr, ja, ar
Continuar

A aba Configuração após a detecção: adote o i18n existente ou introduza-o, com as localidades de origem e destino. Dados ilustrativos.

A configuração fica pronta assim que esse pull request for mesclado ao branch padrão Coroid sincroniza. Até então, nada mais na estação de trabalho considerará essa configuração.

O arquivo do repositório

A Configuração grava .coroid/i18n.json. Ele descreve seu repositório, portanto fica no seu repositório e é alterado por meio de pull requests:

{
  "version": 1,
  "cli": { "version": "1.7.0", "sha256": "…" },
  "sourceLocale": "en",
  "targetLocales": ["de", "fr", "ja", "ar"],
  "catalogs": [
    {
      "id": "ui",
      "format": "i18next-json",
      "source": "messages/{locale}.json"
    }
  ],
  "localeTier": { "ja": "escalation" }
}
  • cli fixa a versão exata do mecanismo e seu checksum. O Coroid baixa e verifica essa versão antes de cada execução, garantindo que uma atualização nunca altere seu resultado de forma inesperada.
  • sourceLocale pode ser qualquer idioma. Uma fonte em sueco traduzida para inglês e alemão funciona da mesma maneira.
  • localeTier solicita o nível de qualidade de tradução para um idioma. Você escolhe um nível, nunca um modelo.

O arquivo também pode conter um glossário, termos protegidos, contexto do produto e instruções específicas por idioma.

Para alterá-lo, edite a proposta na Configuração aba e selecione Propor alteração. O Coroid abre uma tarefa que aplica exatamente esse arquivo e corrige quaisquer traduções afetadas pela alteração.

A mesma aba contém as configurações pertencentes ao Coroid e não ao seu repositório: quais sites podem abrir o seletor de sugestões, se as sugestões são revisadas por padrão e o limite de gastos com traduções do projeto.

Verifique cada alteração

As traduções passam a fazer parte da verificação por meio de dois controles de qualidade. Adicione-as na Visão geral aba.

  • Traduções opera na verificação de tarefas e nos pull requests. Ele analisa apenas as strings afetadas pela alteração.
  • Auditoria de tradução é executada periodicamente. Ela verifica todos os catálogos e idiomas e pode incluir um teste de navegador nas páginas do idioma, para verificar layout da direita para a esquerda, excesso de conteúdo e textos não traduzidos na página.

Ao adicionar um controle, uma minuta de política é preparada. Revise-a e publique-a em Políticas de qualidade para ativá-la.

Cada problema se torna uma ocorrência com um código de issue:

CódigoSignificadoBloqueia por padrão
missingA string não tem traduçãoSim
invalid_syntaxA tradução não é válida, por exemplo, ICU corrompidoSim
placeholder_mismatchOs placeholders diferem da fonteSim
plural_categoriesFalta uma forma plural necessária para esta localidadeSim
staleO código-fonte foi alterado após a tradução da stringNão

Você escolhe quais códigos serão bloqueados nas configurações do controle. O glossário, as regras de comprimento e de termos proibidos informam seus próprios códigos quando o arquivo os configura.

Controle de qualidade
Resultados das execuções mais recentes, filtrados para a verificação de traduções.
PolíticasAchados4Execuções
  • missingui · checkout.total · frNão traduzido
  • staleui · nav.deals · deOrigem alterada desde a tradução
  • placeholder_mismatchui · cart.items · jaOs placeholders diferem da origem
  • plural_categoriesui · cart.count · arFormas plurais ausentes para esta localidade

Achados de qualidade da verificação de traduções, um código de problema por achado. Dados ilustrativos.

Quando um bloqueio de tradução impede uma tarefa, o agente desenvolvedor corrige o problema da mesma forma sempre: ele abre uma sessão de tradução para a tarefa e executa o mecanismo nas strings alteradas. Ele nunca edita catálogos de destino manualmente.

O modelo Tradutor

A tradução possui sua própria função nos perfis do AI, Tradutor, ao lado de Arquiteto, Desenvolvedor, QA e Revisor. Por padrão, ele utiliza o Hy-MT2, um modelo de tradução, com GPT-6 Luna como alternativa, quando a política da sua organização permitir. Altere o mapeamento em um perfil do AI como faria com qualquer outra função.

O mecanismo também agrupa as strings por tamanho, valida cada resposta conforme seus placeholders e regras de plural e tenta novamente ou encaminha uma string que falhar.

Custos

As traduções estão disponíveis em todos os planos. As chamadas de tradução passam pelo gateway de tradução do Coroid e são cobradas como uso de modelo para a sua organização, da mesma forma que as execuções de agentes. As tarefas de configuração contam para as horas de agente do seu plano como qualquer outra tarefa.

Com a rota de Tradutor padrão, a tradução custa cerca de dois centavos por 1.000 strings por idioma. Traduzir um catálogo de 2.000 strings para dez idiomas custou aproximadamente US$ 0,33 em nossos testes.

  • Só as alterações geram custos. O mecanismo mantém um cache indexado pelo texto original, para que strings inalteradas nunca sejam enviadas novamente.
  • Cada tarefa tem um limite de tradução. Uma sessão é interrompida no limite de gastos da tarefa, que é de US$ 1 por padrão. Um projeto pode definir um limite menor em Configuração → Acesso e gastos.
  • As Verificações não fazem chamadas a modelos. O controle de Traduções e a auditoria leem seus catálogos; eles não traduzem.

Traduzindo fora do Coroid

O mecanismo é uma ferramenta de linha de comando, coroid-i18n. Seu próprio CI pode executar a mesma versão fixada com sua própria chave OpenRouter. Dentro do Coroid, as tarefas sempre usam o gateway de tradução, de modo que os gastos e limites fiquem em um só lugar.