Skip to main content

Strumento di pseudotraduzione

Testi l'interfaccia i18n prima del lancio. Generi traduzioni fittizie che mettono alla prova layout, codifica e rendering bidirezionale, senza attendere le traduzioni reali.

Il problema

L'interfaccia sembra perfetta in inglese. Poi arriva il tedesco: stringhe più lunghe del 40% rompono ogni pulsante e troncano tutte le intestazioni delle tabelle. L'arabo inverte l'intero layout e le icone puntano nella direzione sbagliata. Il giapponese richiede interlinee diverse e le schede disposte con cura si deformano. E tutto questo emerge dopo aver pagato le traduzioni.

Correggere gli errori di layout i18n dopo la traduzione costa in media da 5 a 10 volte di più rispetto a rilevarli durante lo sviluppo. La pseudotraduzione individua gratuitamente questi problemi, prima di spendere un solo dollaro per le traduzioni reali.

La soluzione

i18n-pseudo genera traduzioni fittizie che mettono alla prova l'interfaccia senza attendere i traduttori. Applica 7 strategie di trasformazione, tra cui accenti, caratteri CJK, espansione del testo e marcatori RTL, preservando segnaposto ICU, sintassi dei plurali e variabili di interpolazione.

Installazione

i18n-pseudo è disponibile come pacchetto npm o formula Homebrew; in alternativa, può compilarlo dal codice sorgente con Cargo.

Terminal
npm install -g @i18n-agent/i18n-pseudo
Il pacchetto npm include un binario CLI globale. Non sono necessarie dipendenze di runtime.

7 strategie di trasformazione

Ogni strategia è mirata a una specifica categoria di errori i18n. Le usi singolarmente con i flag oppure le combini tramite le preimpostazioni.

StrategyFlagInputOutput
Accents--accentsHelloĤéľľó
CJK--cjkHello你好世界你好
Special Chars--specialHelloHel­lo
Expansion--expansion NSaveSave~~~~
Brackets--bracketsHello[Hello]
RTL--rtlHello‮Hello‬
Unicode Stress--unicode-stressHelloH́ȩl̈l̀õ
Gli accenti sono la strategia più diffusa per rilevare le stringhe codificate direttamente. Se una stringa appare senza segni diacritici nell'interfaccia, non è mai passata attraverso la funzione di traduzione.

Preimpostazioni

Le preimpostazioni raggruppano strategie per scenari di test comuni. Usi --preset per applicare contemporaneamente un gruppo di strategie.

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

Esempi di utilizzo

Esegua i18n-pseudo sul file della lingua di origine. Legge JSON, YAML, PO e altri formati i18n, applica le strategie selezionate e scrive l'output trasformato.

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/

Prima e dopo

Ecco come la preimpostazione predefinita (accenti + parentesi) trasforma un tipico file di traduzione. La sintassi dei plurali ICU e i segnaposto di interpolazione vengono preservati esattamente.

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 {# íťéɱš}}]"
}
I segnaposto come {name}, {count} e le espressioni plurali ICU non vengono mai modificati. Vengono trasformati soltanto i segmenti di testo traducibili, affinché l'app visualizzi correttamente i file pseudotradotti.

Integrazione con la CI

Aggiunga la pseudotraduzione alla pipeline CI per rilevare automaticamente le regressioni i18n. Generi i file pseudotradotti, quindi esegua su di essi i test di regressione visiva.

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
Combini la preimpostazione layout con i test di regressione visiva Playwright o Chromatic. Qualsiasi componente che esca dai limiti o venga troncato con un testo espanso di 1,4 volte non supererà il confronto visivo.

Provi subito i18n Agent

Trascinare qui il file di traduzione

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

oppure fare clic per selezionarlo

Lingue di destinazione

Nessuna registrazione richiestaPreventivo immediato

Domande frequenti