Skip to main content

Outil de pseudo-traduction

Testez votre interface i18n avant le lancement. Générez de fausses traductions qui mettent à l'épreuve la mise en page, l'encodage et le rendu bidirectionnel — sans attendre les vraies traductions.

Le problème

Votre interface est parfaite en anglais. Puis vient l'allemand — des chaînes 40 % plus longues cassent chaque bouton et tronquent chaque en-tête de tableau. L'arabe inverse toute la mise en page et vos icônes pointent dans le mauvais sens. Le japonais nécessite des hauteurs de ligne différentes, et vos cartes soigneusement espacées s'effondrent. Vous découvrez tout cela après avoir payé pour les traductions.

Le coût moyen de correction des bugs de mise en page i18n après traduction est 5 à 10 fois plus élevé que si vous les détectez pendant le développement. La pseudo-traduction détecte ces problèmes gratuitement, avant même de dépenser le moindre centime en vraies traductions.

La solution

i18n-pseudo génère de fausses traductions qui mettent votre interface à l'épreuve sans attendre de vrais traducteurs. Il applique 7 stratégies de transformation — accents, caractères CJK, expansion de texte, marqueurs RTL et bien plus — tout en préservant les espaces réservés ICU, la syntaxe des pluriels et les variables d'interpolation.

Installation

i18n-pseudo est disponible sous forme de paquet npm, de formule Homebrew, ou vous pouvez le compiler depuis les sources avec Cargo.

Terminal
npm install -g @i18n-agent/i18n-pseudo
Le paquet npm inclut un binaire CLI global. Aucune dépendance d'exécution requise.

7 stratégies de transformation

Chaque stratégie cible une catégorie spécifique de bug i18n. Utilisez-les individuellement avec des options, ou combinez-les grâce aux préréglages.

StrategyFlagInputOutput
Accents--accentsHelloĤéľľó
CJK--cjkHello你好世界你好
Special Chars--specialHelloHel­lo
Expansion--expansion NSaveSave~~~~
Brackets--bracketsHello[Hello]
RTL--rtlHello‮Hello‬
Unicode Stress--unicode-stressHelloH́ȩl̈l̀õ
Les accents sont la stratégie la plus populaire pour détecter les chaînes codées en dur. Si une chaîne apparaît sans diacritiques dans votre interface, c'est qu'elle n'est jamais passée par la fonction de traduction.

Préréglages

Les préréglages regroupent des stratégies pour les scénarios de test courants. Utilisez --preset pour appliquer un groupe de stratégies en une seule fois.

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

Exemples d'utilisation

Exécutez i18n-pseudo sur votre fichier de locale source. Il lit les formats JSON, YAML, PO et d'autres formats i18n, applique les stratégies sélectionnées, et écrit le résultat transformé.

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/

Avant / Après

Voici ce que le préréglage par défaut (accents + crochets) fait à un fichier de traduction type. Notez que la syntaxe des pluriels ICU et les espaces réservés d'interpolation sont préservés à l'identique.

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 {# íťéɱš}}]"
}
Les espaces réservés comme {name}, {count} et les expressions plurielles ICU ne sont jamais modifiés. Seuls les segments de texte traduisibles sont transformés, afin que votre application s'affiche correctement avec les fichiers pseudo-traduits.

Intégration CI

Ajoutez la pseudo-traduction à votre pipeline CI pour détecter automatiquement les régressions i18n. Générez des fichiers pseudo-traduits, puis exécutez vos tests de régression visuelle dessus.

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
Combinez le préréglage layout avec les tests de régression visuelle Playwright ou Chromatic. Tout composant qui déborde ou se tronque avec un texte étendu à 1,4x fera échouer le diff visuel.

Essayez i18n Agent maintenant

Déposez votre fichier de traduction ici

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

ou cliquez pour parcourir

Langues cibles

Aucune inscription requiseEstimation instantanée

Questions fréquentes