Инструмент за псевдопревод
Тествайте Вашия интерфейс за 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
или натиснете, за да изберете файл
Целеви езици