Ir para o conteúdo

Referência

Configuração

Um arquivo na raiz do seu projeto, e o plugin recebe o mesmo objeto, então uma opção significa o mesmo para o seu build e para a linha de comandos. As flags vencem o arquivo.

verbaly.config.mjs
export default {
  sourceLocale: 'es',
  locales: ['es', 'en', 'pt'],
};

Os nomes aceitos são verbaly.config.js, .mjs, .ts, .mts e .json, lidos nessa ordem. Um config em TypeScript não precisa de mais nada instalado, e os imports dele podem omitir a extensão, como em ./src/i18n.

Todas as opções

OpçãoPadrãoO que faz
sourceLocale'en'O idioma em que você escreve
localesOs catálogos que encontraOs seus idiomas. Se você os listar, a lista está completa; se não, cada arquivo JSON de dir conta como um
dir'locales'Onde vivem os catálogos
rootOnde você executou o comandoA raiz do projeto contra a qual os outros caminhos são resolvidos
includesrc/**, app/**Que arquivos são varridos em busca de mensagens e compilados. Um arquivo fora dele que escreve t`…` é apontado, com o padrão a adicionar, quando o seu build ou servidor de desenvolvimento começa. [] desliga a varredura, para um projeto cujos catálogos são escritos à mão
excludenode_modules, distQue arquivos são ignorados dentro disso
routingSegue o seu setupOnde o idioma vive nos seus endereços. Ver Estratégia de URLs
dtsOnde o seu framework os lêOnde os tipos gerados são escritos, ou false para não escrever nenhum. Sem defini-lo, vão para src/verbaly.d.ts (a raiz quando não há src/), para .verbaly/types.d.ts no Next.js, que o Verbaly adiciona ao seu tsconfig.json, e para a pasta de tipos que o Astro e o Nuxt reservam para isso
bundleNada excluídoexclude: grupos de mensagens que ficam no build e nunca chegam ao navegador
renderDesligadoO espelho pré-traduzido para sites estáticos. As suas opções estão abaixo
translateClaudeTudo o que a tradução automática precisa além do provedor: modelo, tamanho de lote, glossário, instruções
icuOs seus catálogos decidemForça o parser de ICU a viajar. Só para mensagens que chegam ao seu app depois do build
relativeOs seus catálogos decidemO mesmo, para o formato de tempo relativo

Dentro de render

Só para sites estáticos que publicam uma árvore de endereços por idioma. Adicionar esta seção é o que liga o espelho.

OpçãoO que faz
baseUrlO seu endereço público. Os alternates e o sitemap precisam dele
siteO diretório construído a espelhar. Por padrão dist
sitemapEscreve um sitemap por idioma. Uma string dá nome ao arquivo
excludePáginas a deixar de fora desse sitemap, por caminho dentro do diretório de build
hreflangAlternates recíprocos em cada página. Ligado por padrão
redirectEnvia quem chega pela primeira vez ao seu idioma antes de a página pintar
linksOs endereços reais por trás dos links com nome dentro das suas mensagens
baseO prefixo de caminho, se o seu site não é servido a partir da raiz
attributeO atributo a procurar, se você renomeou data-verbaly
inlineCatalogEscreve em cada página as mensagens que ela renderiza, então uma página traduzida não baixa nenhum catálogo próprio
cleanRemove páginas de idioma deixadas por um build anterior

Dentro de translate

Tudo o que a tradução automática precisa além do provedor, para que uma execução se comporte igual para toda a equipe em vez de depender de quem escreveu o comando.

OpçãoO que faz
providerQuem traduz. 'claude' é o que vem posto; passe uma função e passa a ser seu, sem prender você a ninguém
modelQual modelo o provedor incluído usa. --model troca isso para uma única execução
batchSizeQuantas mensagens vão em uma requisição, 20 por padrão. Diminua se as mensagens longas saem cortadas, aumente se forem curtas
concurrencyQuantas requisições vão ao mesmo tempo, 4 por padrão. Diminua se o seu provedor limita o ritmo
retriesQuantas vezes uma requisição que falhou por algo passageiro é tentada de novo, 2 por padrão
instructionsO mesmo que você contaria a uma pessoa que traduz o seu produto: quanta formalidade usar, quão curto o rótulo de um botão precisa ficar, o que é o seu aplicativo
glossaryComo um termo tem que sair. Você dá uma forma para todos os idiomas, que é como se diz deixe isto em paz, ou uma por idioma. Só são enviados os termos que o lote realmente contém

Uma execução sobrevive a uma conexão ruim. As requisições que falham por algo passageiro são tentadas de novo, e se ainda assim uma não voltar, todo o resto fica escrito e o relatório nomeia as mensagens que não conseguiu preencher. Rodar translate de novo pede só essas, então uma conexão caída nunca custa a execução inteira duas vezes. O comando termina com 1 quando isso acontece, para que um script perceba.

Só no plugin

failOnMissing: true para um build com tudo o que faz o verbaly check falhar, para um projeto que publica sem CI. Sem ele, um build lista as chaves que faltam, as quebradas e as desconhecidas e termina: uma tradução faltando cai para o seu idioma fonte, e quem controla é o check no CI.

↑↓para navegarEnterpara abrir
Copiado para a área de transferência