Documentação

Localização

Veja em que estágio cada idioma do projeto se encontra, identifique as strings que precisam de trabalho e mantenha as traduções atualizadas com cada alteração.

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

A Localização tem seu próprio local no menu principal. Ela exibe as línguas de cada Projeto em uma única página e fornece uma estação de trabalho para cada Projeto. Projetos que ainda não são multilíngues começam com o Assistente de internacionalização.

Todos os projetos em uma única página

A Localização abre com os projetos que você pode ler. Cada linha mostra o idioma-fonte do Projeto, quantas línguas ele possui, quantas strings há e uma barra indicando o quanto foi traduzido em todas as suas línguas.

O pequeno globo ao lado de cada Projeto possui uma conta para cada língua: verde quando a língua está completa, um anel turquesa quando faltam strings ou houve alterações, e âmbar quando algumas strings estão com erros.

Localização

Faça com que cada projeto fale a língua dos seus usuários e mantenha isso enquanto o produto evolui.

Internacionalizar um projeto2 projetos · 6 idiomas · 135 strings pendentes
  • Loja virtual
    inglês fonte · 5 idiomas · 1.240 strings
    97,2%
    135 strings aguardando
  • Central de ajuda
    sueco fonte · 2 idiomas · 318 strings
    100%
    Todos os idiomas completos
  • Aplicativo de reservas
    Ainda não internacionalizado
    Iniciar o assistente

Localização: os idiomas de cada projeto aparecem como contas ao redor de um pequeno globo, mostrando quanto foi traduzido e o que ainda precisa de trabalho. Dados ilustrativos.

Um projeto sem traduções indica Ainda não internacionalizado. Proprietários e administradores iniciam o assistente a partir dessa linha, ou a partir de Internacionalizar um projeto no topo da página.

A estação de trabalho

Abrir um Projeto exibe sua estação de trabalho: as seções à esquerda e a seção aberta ao lado delas.

SeçãoPara que serve
Visão geralO status de cada língua e a ação necessária para traduzir o que falta
StringsTodas as strings em todas as línguas, filtradas para o trabalho relevante
SugestõesCorreções feitas por colaboradores, aguardando decisão
IntercâmbioArquivos para agências, ferramentas de tradução e planilhas, além de suas traduções de volta
ColaboradoresQuem pode sugerir texto e em quais línguas
AutomaçõesCorreções aplicadas todas as noites e tradução de strings mescladas fora do Coroid
ConfiguraçõesLínguas, a verificação de Traduções, acesso e gastos, além do arquivo de configuração

Sugestões, Colaboradores e Automações são abordados em Manter traduções com sugestões.

A estação de trabalho lê os catálogos no seu branch padrão. Quando eles mudam, o Coroid os lê novamente na próxima vez que alguém abrir o Projeto; até então, a Visão geral indica que está lendo-os. O Coroid nunca executa o código do seu repositório para fazer isso. Catálogos que usam um adaptador personalizado não são exibidos; suas strings ainda são verificadas nas tarefas.

Visão geral: uma linha por língua

A Visão geral começa com quatro totais: strings, línguas, quanto foi traduzido e quantas strings precisam de trabalho. Abaixo deles, cada língua percorre uma linha com três etapas:

  1. Internacionalizar. O catálogo da língua existe e contém strings.
  2. Localizar. Cada string é traduzida a partir do texto-fonte atual.
  3. Verificar. Nenhuma string está com erro: todas são analisadas corretamente, mantêm os placeholders do texto-fonte e possuem as formas plurais exigidas pela língua.

A próxima etapa de uma língua é onde sua linha para. Uma parada verde indica conclusão, um anel turquesa é a parada que precisa de trabalho e uma âmbar indica strings com erros.

Localização
Loja virtual
inglês origem · 5 idiomas · verificado há 2 horas em 3f2c9a1
  • Visão geral
  • Strings
  • Sugestões
  • Trocar
  • Colaboradores
  • Automações
  • Configurações
Visão geral

Cada idioma passa por três etapas. O próximo passo ocorre onde a linha atual terminar.

Traduzir 135 textos
Strings1.240em 3 catálogos
Idiomas4mais 1 derivado
Traduzidos97,2%1.020 revisado por pessoas
Precisa de revisão135entre 3 idiomas
  1. Englishinglês · en · Origem

    1.240 strings em 3 catálogos

  2. Deutschalemão · de
    100%
    Concluído
    Aprovado
  3. Françaisfrancês · fr
    98%
    18 textos ausentes
    Aprovado
  4. 日本語japonês · ja
    96,3%
    42 textos ausentes
    3 strings incorretas
  5. العربيةárabe · ar
    94,6%
    64 textos ausentes
    Aprovado
  6. British Englishinglês (Reino Unido) · en-GB · Derivado de inglês
    100%
    Derivado e atualizado
    Aprovado

A visão geral da área de trabalho: cada idioma em sua linha através das fases de Internacionalizar, Localizar e Verificar, indicando a lacuna que impede o avanço. Dados ilustrativos.

A barra abaixo de Localizar lê desde o início: verde-escuro para strings revisadas por pessoas, verde-claro para strings escritas por modelo, âmbar para strings que precisam de atenção e a parte vazia para strings ausentes. O texto sob a barra indica a diferença, como 42 strings ausentes, e abre exatamente essas strings.

Línguas derivadas de outra por regras, como o inglês britânico do inglês americano, exibem Derivada e atualizada quando suas regras foram aplicadas a todas as strings.

Traduzir o que falta

Proprietários e administradores veem uma ação no topo da Visão geral, Traduzir com o número de strings que precisam de trabalho: ausentes, alteradas no texto-fonte ou com erros. Ele as traduz na estação de trabalho, em duas etapas:

  1. Memória de tradução. Uma string que outro Projeto da sua organização já traduziu, com exatamente o mesmo texto-fonte, reutiliza essa tradução. As traduções humanas têm prioridade sobre as automáticas. Isso não gera chamada ao modelo e não custa nada.
  2. O modelo Tradutor. O mecanismo fixado no seu repositório traduz o restante através do gateway de tradução, verificando cada resposta em relação aos placeholders e formas plurais.

Enquanto ele roda, um painel sob os totais mostra quantas strings foram escritas e quanto o processo gastou, e a barra de cada língua se preenche com tinta listrada à medida que suas strings chegam. Parar de traduzir encerra o processo; o que foi escrito permanece.

Localização
Loja virtual
inglês origem · 5 idiomas · verificado há 2 horas em 3f2c9a1
  • Visão geral
  • Strings
  • Sugestões
  • Trocar
  • Colaboradores
  • Automações
  • Configurações
Visão geral

Cada idioma passa por três etapas. O próximo passo ocorre onde a linha atual terminar.

Parar tradução
A tradução automática está em execução

Frases escritas até agora: 71 de 133

Reutilizado da memória de tradução sem custo: 26 · US$ 0,04 gasto do limite de US$ 5,00

  1. Deutschalemão · de
    Concluído
  2. Françaisfrancês · fr
    Traduções prontas para commit: 24
  3. 日本語japonês · ja
    Traduzindo: 28 de 45 já escritos
  4. العربيةárabe · ar
    Traduzindo: 19 de 64 já escritos

A visão geral durante a execução da tradução automática: a impressora funciona, cada idioma é preenchido com tinta listrada à medida que as strings chegam, e o banco de memória de tradução reproduz o que já foi dito em outros projetos. Dados ilustrativos.

As traduções não vão direto para o seu repositório. Elas aguardam Confirmar juntamente com as demais alterações, marcadas como traduções automáticas, para que você possa verificá-las em Strings primeiro. Uma string que já foi editada por alguém ou sugerida por um colaborador permanece sob responsabilidade deles.

Strings

Strings lista todas as strings com seu texto original e seu valor em um determinado idioma. Ela abre em Precisa de trabalho: as strings que estão ausentes, cujo texto original mudou, que estão corrompidas ou que ainda são idênticas ao texto original. Escolha outro idioma, um catálogo ou pesquise por chaves e texto.

StatusSignificado
AusenteA string não possui tradução
Texto original alteradoO texto original mudou após a tradução da string
CorrompidaEla não é analisável, seus placeholders diferem do texto original ou suas formas plurais não se adequam ao idioma
Idêntica ao originalÉ idêntica ao texto original
AutomáticaFoi gerada por um modelo e nenhuma pessoa a revisou
RevisadaFoi escrita ou corrigida por uma pessoa
DerivadaFoi produzida por regras a partir de outro idioma

Selecione uma string para vê-la em todos os idiomas. Placeholders e marcações aparecem como chips bloqueados, pois devem permanecer exatamente iguais após a tradução. Para o idioma escolhido, os detalhes também indicam quem escreveu o valor, qual o problema e, no caso de mensagens plurais, quais formas plurais o idioma requer.

Localização
Loja virtual
inglês origem · 5 idiomas · verificado há 2 horas em 3f2c9a1
  • Visão geral
  • Strings
  • Sugestões
  • Trocar
  • Colaboradores
  • Automações
  • Configurações
Strings

Todas as strings em todos os idiomas. Os filtros começam pelo trabalho que realmente importa.

日本語Todos os catálogosPesquisar chaves e texto…
Precisa de trabalho45Faltando42Fonte alterada0Danificado3Igual à fonte0Máquina1.035Revisado160Todos1.240
Fonte日本語
Total: {amount}合計: {price}Danificado
Your cart is emptyAinda sem traduçãoFaltando
Welcome back, {name}Ainda sem traduçãoFaltando
Prices include <b>VAT</b>価格には<b>消費税</b>が含まれますDanificado
Weekly dealsAinda sem traduçãoFaltando
checkout.total
Catálogo ui · label
Origem · inglês
Total: {amount}
  1. 日本語 · japonêsDanificado
    合計: {price}

    Escrito por um modelo · Os espaços reservados diferem da fonte

  2. DeutschRevisado
    Gesamt: {amount}
  3. FrançaisMáquina
    Total : {amount}
  4. العربيةMáquina
    الإجمالي: {amount}
  5. British EnglishDerivado
    Total: {amount}

Strings na área de trabalho, filtradas para as strings japonesas que precisam de trabalho; a string aberta exibe seus espaços reservados como chips bloqueados e o valor de cada idioma. Dados ilustrativos.

Editar e confirmar

Proprietários e administradores corrigem traduções em Strings. Selecione uma string, escolha Editar em um idioma e salve a alteração. O editor exibe os placeholders do texto original como chips que podem ser inseridos e verifica a alteração à medida que você digita: os placeholders, as formas plurais exigidas pelo idioma, termos do seu glossário e o comprimento. Coroid verifica novamente em relação ao branch padrão ao salvar.

Sugerir no editor propõe uma tradução para aquela string específica: a partir da memória de tradução, caso outro projeto a utilize, ou do modelo de Tradutor. Escolha Usar esta para inseri-la no editor; nada é salvo até que você salve a alteração.

As alterações salvas aguardam em uma barra abaixo das strings, onde você pode revisar ou descartar cada uma delas. Confirmar Confirma todas elas, juntamente com as sugestões aprovadas de colaboradores e traduções automáticas, em uma única tarefa. A tarefa aplica exatamente esses valores com o mecanismo fixo e abre um pull request. Uma confirmação acompanha até 5.000 alterações; o restante aguarda a próxima. Até que esse pull request seja mesclado, as strings exibirão Não confirmada ou Em processo de aplicação.

Uma tradução automática confirmada permanece como tradução automática no cache do mecanismo, portanto ainda é considerada Automática até que uma pessoa a revise.

A edição requer que as contribuições estejam habilitadas no arquivo de configuração; Assistente de internacionalização as habilita por default. Os colaboradores também podem sugerir uma redação melhor no seu próprio site.

Trocar arquivos

Em Troca, faça o download das strings para uma agência, uma ferramenta de tradução ou uma planilha e importe as traduções deles de volta.

FormatoIdiomas por arquivoUtilize para
XLIFF 1.2 e 2.0UmFerramentas de tradução e agências; os placeholders chegam como tags bloqueadas
Gettext POUmPoedit, Weblate e outras ferramentas gettext
CSV e ExcelTodos os idiomasPlanilhas, com todos os idiomas lado a lado
JSONUmChaves e traduções
Catálogo de strings da AppleTodos os idiomasXcode
Strings da Apple .stringsUmProjetos Xcode
strings.xml do AndroidUmAndroid Studio
ARB do FlutterUmFlutter

Uma exportação contém as strings que precisam de trabalho ou todas as strings. Placeholders e mensagens plurais são transferidos exatamente como foram escritos.

Uma importação exibe todas as linhas antes que algo seja mantido. Novas traduções e alterações podem ser aceitas. O Coroid ignora uma chave que o projeto não possui, uma tradução feita a partir de uma fonte que mudou desde então, placeholders quebrados e mensagens plurais sem a forma necessária para o idioma. As linhas aceitas viram alterações aguardando Commit, como edições feitas em Strings.

Os arquivos JSON, .strings e Android não indicam qual idioma contêm. O Coroid obtém essa informação do nome do arquivo, como storefront-de.json, ou pergunta.

Verificar cada alteração

O Traduções a verificação no Controle de Qualidade é executada na etapa de QA da tarefa e nos pull requests, e analisa apenas as strings afetadas pela alteração. O assistente ativa isso por padrão assim que o pull request for mesclado; Configurações mostra se está ativado e abre no Controle de Qualidade. Na Visão geral, Visualizar a última verificação em Verificar abre a execução mais recente.

Cada problema vira 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, por causa de um ICU quebradoSim
placeholder_mismatchOs placeholders diferem da fonteSim
plural_categoriesFalta uma forma plural necessária para o idiomaSim
staleA fonte mudou após a tradução da stringNão

Você escolhe quais códigos bloqueiam nas configurações da verificação. As regras de glossário, comprimento e termos proibidos informam seus próprios códigos quando o arquivo de configuração os define.

Traduzir texto de checkoutTarefa
Problemas encontrados
  • Abrirui · checkout.total · fr: missingTraduções · Não traduzido
  • Abrirui · nav.deals · de: staleTraduções · Origem alterada desde a tradução
  • Em processo de correçãoui · cart.items · ja: placeholder_mismatchTraduções · Os placeholders diferem da origem
  • Corrigidoui · cart.count · ar: plural_categoriesTraduções · Formas plurais ausentes para esta localidade

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

Quando uma ocorrência de tradução bloqueia uma tarefa, o agente desenvolvedor a corrige sempre da mesma forma: 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 tem sua própria função nos perfis do AI, Tradutor, ao lado de Arquiteto, Desenvolvedor, QA e Revisor. Por padrão, usa o Hy-MT2, um modelo de tradução, com GPT-6 Luna como fallback, quando a política da sua organização permitir. Altere o mapeamento em um perfil do AI como qualquer outra função.

O mecanismo também agrupa strings por tamanho, valida cada resposta conforme seus placeholders e regras plurais, 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 sua organização, da mesma forma que as execuções de agentes. As tarefas de tradução contam para as horas de agente do seu plano como qualquer outra tarefa.

Com a rota padrão do Tradutor, traduzir 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-fonte, para que strings inalteradas nunca sejam enviadas novamente.
  • Cada tarefa e cada execução têm um limite de tradução. A sessão de uma tarefa para no seu limite de gastos, US$ 1 por padrão; uma execução de Traduzir no ambiente de trabalho para em US$ 5. Um projeto pode definir um limite menor em Configurações → Acesso e gastos.
  • O memória de tradução não tem custo algum. As strings que sua organização já traduziu em outro lugar são reutilizadas sem necessidade de chamada ao modelo.
  • A leitura não tem custo algum. O ambiente de trabalho e a verificação de Traduções leem seus catálogos; eles não fazem chamadas ao modelo.

Traduzindo fora do Coroid

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