Инструмент псевдоперевода
Тестируйте интерфейс i18n до запуска. Создавайте искусственные переводы для стресс-тестирования макета, кодировки и двунаправленной отрисовки, не дожидаясь настоящих переводов.
Проблема
Ваш интерфейс идеально выглядит на английском. Затем появляется немецкий: строки на 40% длиннее нарушают все кнопки и обрезают каждый заголовок таблицы. Арабский переворачивает весь макет, а значки указывают не туда. Японскому нужны другие высоты строк, и тщательно расставленные карточки разваливаются. И всё это обнаруживается уже после оплаты переводов.
Решение
i18n-pseudo создаёт искусственные переводы для стресс-тестирования интерфейса без ожидания переводчиков. Он применяет 7 стратегий преобразования — диакритические знаки, символы CJK, увеличение текста, маркеры RTL и другие — сохраняя заполнители ICU, синтаксис множественного числа и переменные интерполяции.
Установка
i18n-pseudo доступен как пакет npm и формула Homebrew, а также может быть собран из исходного кода с помощью Cargo.
npm install -g @i18n-agent/i18n-pseudo7 стратегий преобразования
Каждая стратегия направлена на отдельный класс ошибок i18n. Применяйте их по отдельности с помощью флагов или объединяйте в предустановки.
| Strategy | Flag | Input | Output |
|---|---|---|---|
| Accents | --accents | Hello | Ĥéľľó |
| CJK | --cjk | Hello | 你好世界你好 |
| Special Chars | --special | Hello | Hello |
| Expansion | --expansion N | Save | Save~~~~ |
| Brackets | --brackets | Hello | [Hello] |
| RTL | --rtl | Hello | Hello |
| Unicode Stress | --unicode-stress | Hello | H́ȩl̈l̀õ |
Предустановки
Предустановки объединяют стратегии для распространённых сценариев тестирования. Используйте --preset, чтобы применить группу стратегий одновременно.
| Preset | Strategies | Use Case |
|---|---|---|
default | accents + brackets | Quick visual check that all strings are externalized |
layout | expansion (1.4x) + brackets | Catch truncation and overflow before real translations |
charset | CJK + special + brackets | Test font rendering and character encoding |
rtl | RTL markers + brackets | Verify bidirectional layout without switching locale |
full | All strategies combined | Maximum stress test — everything at once |
Примеры использования
Запустите i18n-pseudo для файла исходной локали. Он читает JSON, YAML, PO и другие форматы i18n, применяет выбранные стратегии и записывает преобразованный результат.
# 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/До и после
Вот как стандартная предустановка — диакритика и скобки — изменяет обычный файл перевода. Обратите внимание: синтаксис множественного числа ICU и заполнители интерполяции сохраняются в точности.
// 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 {# íťéɱš}}]"
}Интеграция с CI
Добавьте псевдоперевод в конвейер CI, чтобы автоматически выявлять регрессии i18n. Создайте псевдопереведённые файлы, а затем выполните для них визуальные регрессионные тесты.
# 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Связанные инструменты и руководства
Попробовать i18n Agent
Перетащите сюда файл перевода
JSON, YAML, PO, XML, CSV, Markdown, Properties
или нажмите, чтобы выбрать
Целевые языки