Skip to main content

Інструмент псевдоперекладу

Перевірте свій інтерфейс i18n до випуску. Створюйте імітовані переклади для ретельної перевірки компонування, кодування та двонапрямного відтворення, не чекаючи на справжні переклади.

Проблема

Ваш інтерфейс бездоганно виглядає англійською. Потім з’являється німецька: рядки на 40% довші, тому кнопки деформуються, а заголовки таблиць обрізаються. Арабська змінює напрямок усього компонування, і піктограми вказують не туди. Для японської потрібна інша висота рядка, через що порушується компонування ретельно розташованих карток. І все це Ви виявляєте вже після оплати перекладів.

Середня вартість виправлення помилок компонування i18n після перекладу в 5-10 разів вища, ніж під час розробки. Псевдопереклад безкоштовно виявляє ці проблеми ще до того, як Ви витратите кошти на справжні переклади.

Рішення

i18n-pseudo створює імітовані переклади для ретельної перевірки Вашого інтерфейсу без очікування на справжніх перекладачів. Інструмент застосовує 7 стратегій перетворення — діакритичні знаки, символи CJK, розширення тексту, маркери RTL тощо — і водночас зберігає заповнювачі ICU, синтаксис множини та змінні інтерполяції.

Встановлення

i18n-pseudo доступний як пакет npm і формула Homebrew; також його можна зібрати з вихідного коду за допомогою Cargo.

Terminal
npm install -g @i18n-agent/i18n-pseudo
Пакет npm містить глобальний виконуваний файл CLI. Залежності середовища виконання не потрібні.

7 стратегій перетворення

Кожна стратегія призначена для певного класу помилок i18n. Застосовуйте їх окремо за допомогою прапорців або поєднуйте в наборах налаштувань.

StrategyFlagInputOutput
Accents--accentsHelloĤéľľó
CJK--cjkHello你好世界你好
Special Chars--specialHelloHel­lo
Expansion--expansion NSaveSave~~~~
Brackets--bracketsHello[Hello]
RTL--rtlHello‮Hello‬
Unicode Stress--unicode-stressHelloH́ȩl̈l̀õ
Діакритичні знаки — найпопулярніша стратегія виявлення жорстко закодованих рядків. Якщо рядок у Вашому інтерфейсі відображається без діакритичних знаків, його не було передано функції перекладу.

Набори налаштувань

Набори об’єднують стратегії для поширених сценаріїв тестування. Використовуйте --preset, щоб одночасно застосувати групу стратегій.

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

Приклади використання

Запустіть i18n-pseudo для файлу вихідної локалі. Інструмент читає JSON, YAML, PO та інші формати i18n, застосовує вибрані стратегії й записує перетворений результат.

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/

До та після

Ось як набір за замовчуванням (діакритичні знаки + дужки) змінює типовий файл перекладу. Зверніть увагу: синтаксис множини ICU та заповнювачі інтерполяції зберігаються без змін.

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 {# íťéɱš}}]"
}
Заповнювачі на кшталт {name}, {count} і вирази множини ICU ніколи не змінюються. Перетворюються лише сегменти тексту, призначені для перекладу, тому Ваш застосунок правильно відтворює файли псевдоперекладу.

Інтеграція з CI

Додайте псевдопереклад до свого процесу CI, щоб автоматично виявляти регресії i18n. Створіть файли псевдоперекладу, а потім запустіть для них тести візуальної регресії.

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
Поєднайте набір layout із тестуванням візуальної регресії в Playwright або Chromatic. Будь-який компонент, що виходить за межі контейнера або обрізається з текстом, розширеним у 1.4 раза, не пройде перевірку візуальних відмінностей.

Пов’язані інструменти й посібники

Спробуйте i18n Agent зараз

Перетягніть сюди файл для перекладу

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

або натисніть, щоб вибрати

Цільові мови

Реєстрація не потрібнаМиттєвий розрахунок

Поширені запитання