Что это
Проверка файлов перевода для приложений. Читает JSON, YAML, .properties, Apple .strings, gettext .po или простой список ключей и сравнивает каждый язык с исходным.
Проверка переводов для многоязычных приложений
Locale Gaps сравнивает исходный языковой файл с каждым переводом и останавливает всё, что сломается на экране: пропущенные ключи, пустой или непереведённый текст, потерянные плейсхолдеры, сломанную разметку и формы множественного числа, которые нужны языку, но которых нет в файле. А затем отдаёт переводчикам файл ровно с тем, что осталось сделать.
Проверка файлов перевода для приложений. Читает JSON, YAML, .properties, Apple .strings, gettext .po или простой список ключей и сравнивает каждый язык с исходным.
Для разработчиков сайтов и мобильных приложений, менеджеров продукта, которые выпускают его на нескольких языках, менеджеров локализации и переводчиков, которым нужен чистый список, а не скриншот с сырым ключом.
Пропущенный ключ показывает пользователю текст вроде cart.checkout, потерянный плейсхолдер выводит {{amount}} вместо цены, а нехватка формы множественного числа ломает фразы на русском или арабском. Всё это видно до релиза.
Вставьте исходный файл, добавьте поле для каждого языка и нажмите Проверить переводы. Ничего не покидает эту страницу.
Длинные переводы часто вылезают за кнопки и меню. 1.6 означает на 60 процентов длиннее.
Через запятую, например названия бренда или продукта. Числа, коды и однословные бренды уже игнорируются.
Вставьте исходный файл и хотя бы один перевод или загрузите пример приложения, чтобы увидеть полный отчёт.
Каждое правило появилось потому, что однажды уже сломало настоящий экран. Ни одному не нужна нейросеть или догадки.
Каждый исходный ключ должен быть в переводе и иметь текст. Иначе пользователь увидит cart.checkout или пустую кнопку.
Текст, совпадающий с исходным, отмечается, если это не число, не код, не ссылка и не разрешённое вами слово, например название бренда.
Переменные {{name}}, {name}, %s, %1$d, %{name} и :name должны точно совпадать с исходными. Переименованная переменная ничего не выведет.
Правила берутся из вашего браузера, это те же правила, что используют приложения. Русскому нужны one, few и many, арабскому шесть форм. Проверяются и ICU сообщения, и суффиксы i18next вроде items_few.
Теги <a>, <b> или <0> должны пережить перевод, иначе пропадут ссылки и выделение.
Очень длинные переводы, ключи, которые есть только в переводе, и ключи, заданные дважды, показываются с меньшим приоритетом.
Обычно английский. Откройте файл или вставьте его содержимое. Вложенные ключи превращаются в пути вида checkout.pay.
Введите код языка и вставьте его файл. У каждого языка может быть свой формат.
Каждый язык получает штамп с долей найденных ключей и готовых к релизу строк, а также счётчик по каждому типу проблем.
Отфильтруйте находки, затем скачайте файл на перевод для каждого языка или полный CSV.
Скопируйте заметку к релизу в запрос на слияние или в список проверок перед релизом. Хеш показывает, что отчёт не правили.
Нет. Разбор и проверки выполняются на этой странице. Закройте вкладку, и текста больше нет.
Некоторые слова действительно совпадают. Добавьте их в поле Слова, которые могут остаться без изменений, и запустите проверку снова.
Из Intl.PluralRules в вашем браузере. Он следует данным Unicode CLDR, которые используют большинство приложений.
Да. Вставьте простые списки ключей. Пропущенные и лишние ключи будут в отчёте, проверки текста пропускаются.