Skip to main content

Ferramenta de pseudotradução

Teste a interface de i18n antes do lançamento. Gere traduções simuladas que submetem a disposição, a codificação e a apresentação bidirecional a testes exigentes, sem esperar pelas traduções reais.

O problema

A sua interface parece perfeita em inglês. Depois chega o alemão: cadeias 40% maiores quebram todos os botões e cortam os cabeçalhos das tabelas. O árabe inverte toda a disposição e os ícones apontam para o lado errado. O japonês precisa de outras alturas de linha e os cartões cuidadosamente espaçados desmoronam-se. Descobre tudo isto depois de pagar as traduções.

O custo médio de corrigir erros de disposição de i18n após a tradução é 5 a 10 vezes superior ao de os detetar durante o desenvolvimento. A pseudotradução encontra-os gratuitamente, antes de gastar um euro em traduções reais.

A solução

i18n-pseudo gera traduções simuladas que submetem a interface a testes exigentes sem esperar por tradutores. Aplica 7 estratégias de transformação —acentos, caracteres CJK, expansão de texto, marcadores RTL e outras— preservando os marcadores ICU, a sintaxe de plural e as variáveis de interpolação.

Instalação

i18n-pseudo está disponível como pacote npm e fórmula Homebrew ou pode ser compilado a partir do código-fonte com Cargo.

Terminal
npm install -g @i18n-agent/i18n-pseudo
O pacote npm inclui um binário de CLI global. Não exige dependências durante a execução.

7 estratégias de transformação

Cada estratégia visa uma classe específica de erro de i18n. Utilize-as individualmente com sinalizadores ou combine-as através de predefinições.

StrategyFlagInputOutput
Accents--accentsHelloĤéľľó
CJK--cjkHello你好世界你好
Special Chars--specialHelloHel­lo
Expansion--expansion NSaveSave~~~~
Brackets--bracketsHello[Hello]
RTL--rtlHello‮Hello‬
Unicode Stress--unicode-stressHelloH́ȩl̈l̀õ
Os acentos são a estratégia mais popular para detetar cadeias codificadas diretamente. Se uma cadeia aparecer sem diacríticos na interface, nunca passou pela função de tradução.

Predefinições

As predefinições agrupam estratégias para cenários de teste habituais. Utilize --preset para aplicar várias estratégias de uma só vez.

PresetStrategiesUse Case
defaultaccents + bracketsQuick visual check that all strings are externalized
layoutexpansion (1.4x) + bracketsCatch truncation and overflow before real translations
charsetCJK + special + bracketsTest font rendering and character encoding
rtlRTL markers + bracketsVerify bidirectional layout without switching locale
fullAll strategies combinedMaximum stress test — everything at once

Exemplos de utilização

Execute i18n-pseudo no ficheiro regional de origem. Lê JSON, YAML, PO e outros formatos de i18n, aplica as estratégias selecionadas e grava o resultado transformado.

Terminal
# Default (accents + brackets)
i18n-pseudo en.json -o output/

# Layout testing (text expansion + brackets)
i18n-pseudo en.json --preset layout -o output/

# Specific strategies
i18n-pseudo en.json --accents --expansion 1.5 -o output/

# Kitchen sink
i18n-pseudo en.json --preset full -o output/

Antes e depois

Eis o efeito da predefinição normal —acentos e parênteses retos— num ficheiro de tradução habitual. Repare que a sintaxe de plural ICU e os marcadores de interpolação são preservados com exatidão.

Before & After
// Input (en.json):
{
  "greeting": "Hello, {name}!",
  "save": "Save",
  "items": "{count, plural, one {# item} other {# items}}"
}

// Output (default preset — accents + brackets):
{
  "greeting": "[Ĥéľľó, {name}!]",
  "save": "[Šáṽé]",
  "items": "[{count, plural, one {# íťéɱ} other {# íťéɱš}}]"
}
Os marcadores como {name} e {count} e as expressões de plural ICU nunca são alterados. Apenas os segmentos de texto traduzível são transformados, pelo que a aplicação apresenta corretamente os ficheiros pseudotraduzidos.

Integração com CI

Adicione a pseudotradução ao pipeline de CI para detetar automaticamente regressões de i18n. Gere ficheiros pseudotraduzidos e execute os testes de regressão visual sobre eles.

CI Pipeline
# Generate pseudo-translations and run visual regression
i18n-pseudo locales/en.json --preset layout -o locales/pseudo/
NEXT_PUBLIC_LOCALE=pseudo npx playwright test --project=visual
Combine a predefinição de disposição com testes de regressão visual no Playwright ou Chromatic. Qualquer componente que transborde ou fique cortado com texto expandido 1,4 vezes falhará na comparação visual.

Experimente já o i18n Agent

Largue aqui o seu ficheiro de tradução

JSON, YAML, PO, XML, CSV, Markdown, Properties

ou clique para selecionar

Idiomas de destino

Sem registoEstimativa imediata

Perguntas frequentes