Инструменты локализации

проверка ICU MessageFormatпосмотрите реальную фразу для каждого числа

Введите традиционный шаблон ICU, JSON-объект и локаль, чтобы увидеть обычный результат и семь граничных значений.

проверка ICU MessageFormat

Сообщение ICU

Параметры JSON

Результат форматирования

Результаты для граничных чисел

Добавьте аргумент plural или selectordinal, чтобы увидеть таблицу.

Сообщение и параметры обрабатываются только в этой вкладке браузера.

Параметры проверки

Категории берутся из Intl этого браузера. Версия CLDR зависит от браузера и может отличаться от версии приложения.

Результат устарел. Повторите проверку перед экспортом.

Русская фраза для 1 может отличаться не только от 2, но и от 11 и 21. Проверка ICU MessageFormat запускает один шаблон с разными числами и показывает выбранную категорию вместе с готовым текстом.

Проверка ICU MessageFormat полезна перед выпуском отдельной строки перевода: она выявляет пропущенные параметры, синтаксические ошибки и неверные вложенные ветви select. Шаблон обрабатывает FormatJS, а правила множественного числа берутся из Intl текущего браузера. Если приложение использует другой ICU, повторите финальную проверку там.

Зачем нужна проверка ICU MessageFormat?

Одна удачная фраза не подтверждает остальные числовые ветви.

Сравните 11 и 21 в готовых фразах

Проверка ICU MessageFormat выполняет шаблон для 0, 1, 2, 5, 11, 21 и 101. Точное условие =0 проверяется раньше категории plural. Таблица показывает и категорию, и результат, не переписывая исходный JSON.

Один шаблон расходится по нескольким ветвям в зависимости от числа и правил локали.

Найдите отсутствующий аргумент

Для {name} нужен одноимённый ключ JSON с тем же регистром букв. Инструмент сообщает о пропущенном значении, ошибке синтаксиса и её позиции. Вложенные select и plural проходят через один парсер FormatJS, поэтому необработанный плейсхолдер не считается успехом.

Параметры поступают в шаблон; отсутствующий токен выделен перед формированием текста.

Три шага при проверке перевода

01

Вставьте исходный шаблон

Используйте строку традиционного MF1 или загрузите пример plural, select либо вложенных ветвей. Неверный пример показывает диагностику при отсутствии обязательной ветви other. Синтаксис MF2 вроде {$name} сюда не подходит.

02

Сверьте ключи и локаль

Передайте один JSON-объект. Имена ключей должны точно совпадать с аргументами сообщения. Измените тег локали BCP 47 и сравните категории; данные CLDR в браузере не имеют закреплённой здесь версии.

03

Прочитайте таблицу границ

Выберите числовой параметр и сравните 0, 1, 11 и 21. Для каждой строки временно меняется только выбранное число. После изменения ввода прежний результат нельзя копировать или скачивать.

Что показывает один запуск

FormatJS для разбора и вывода

Проверка ICU MessageFormat применяет один движок к синтаксису и результату MF1. Форматирование сообщений ICU включает plural, select, selectordinal, offset, вложенные ветви и базовые числа.

Семь чисел и реальные окончания

Тест правил множественного числа полезнее списка категорий: рядом с one, few и many находится законченная фраза. Так видна разница между 11 и 21 в выбранной локали.

Разные ошибки не смешиваются

Проверка синтаксиса ICU показывает строку и столбец, если парсер их сообщает. Подстановка параметров отделена от ошибок JSON и неподдерживаемой локали; после правки старый вывод нельзя экспортировать.

Предпросмотр замены

Автозапуск ждёт паузу при вводе. Пример и очистка сначала показывают, что будет заменено и сколько символов затронуто. После применения можно один раз вернуть ввод и результат.

Границы формата и окружения

Только традиционный MF1
Проверка ICU MessageFormat принимает синтаксис FormatJS для MessageFormat 1. Конструкции MF2, включая {$name} и .match, не смешиваются с ним и не преобразуются автоматически.
CLDR зависит от браузера
Категории выдаёт Intl.PluralRules текущего браузера. Страница не знает точную версию встроенного CLDR и не обещает полного совпадения с ICU4J, ICU4C или сервером.
Одна строка и один JSON-объект
Здесь нет загрузки файлов перевода, сравнения исходной и целевой строк или проверки всего каталога. Отсутствующая ветвь other не добавляется автоматически; массив и null не подходят как корневые параметры.
Вывод только как текст
Теги с callback для rich text отклоняются и не выполняются как HTML. Сложные форматы валюты, даты и времени следует дополнительно проверить в рабочем приложении.

Частые вопросы: проверка ICU MessageFormat

Как использовать select для параметра с разным регистром?

Ветки select сравниваются с переданным значением как со строкой. Female и female — разные варианты. Укажите точное значение в JSON или приведите регистр в своём приложении до форматирования.

Не работает перевод для множественного числа на некоторых языках

Проверьте локаль, наличие обязательной ветви other и категории, нужные данному языку. Проверка ICU MessageFormat позволяет сравнить 0, 1, 2, 5, 11, 21 и 101, но итог нужно сверить с движком приложения.

Поддерживает ли интеграция Smartcat множественное число?

Поддержка Smartcat зависит от конкретной интеграции и её формата; эта страница её не проверяет. Вставьте отдельную готовую строку MF1 и JSON-параметры, чтобы проверить логику plural после экспорта.

Почему plurals для слова автомобиль отрабатывают некорректно?

Для русского важны различия 1, 2–4 и 5–20, а также исключение 11–14. Проверьте, какая категория выбирается для 11 и 21; если шаблон использует другую систему plural, результаты могут отличаться.

Android / Использовать plural-правила русского, когда на телефоне установлен другой язык

В Android язык ресурсов и локаль устройства управляются приложением. Здесь можно явно выбрать ru-RU и увидеть результат MF1 в браузере, но инструмент не меняет настройки Android и не заменяет тест на устройстве.

Нашли отличие от результата вашего приложения?

Начните: проверка ICU MessageFormat

Измените count в примере и сравните фразы для 11 и 21.

Возвращайтесь к проверке ICU MessageFormat, если перевод ломается только на отдельном числе.

Работает локально в браузере.