Перейти к основному содержимому

Меню команд

Перейти на страницу или искать в каталоге

ИИ-инструменты и скрипты

Проверка файлов переводов

Проверьте файлы переводов перед выпуском новой языковой версии: расхождения плейсхолдеров с оригиналом, файлы, которые не загружаются, ошибки множественного числа ICU, апострофы, скрывающие {0}, отсутствующие или непереведённые ключи в JSON, YAML, .po, .arb, .strings и Android XML.

$5.00

Что вы получите: 1 файл · 58.15 KB · ZIP

Варианты покупки

Описание товара

Переводчик заменяет {name} на {nom}, пишет L'application в Android strings.xml или удаляет ветку other в форме множественного числа ICU, и приложение показывает необработанный плейсхолдер, сборка прерывается либо экран перестаёт работать у всех пользователей этого языка. Этот навык выявляет такие ошибки до выпуска, а также менее заметные пробелы: отсутствующие ключи, скопированный английский текст и арабские формы множественного числа только с one и other.

Ваш агент запускает сканер в проекте. Он читает JSON-файлы локализации (i18next, next-intl, vue-i18n, react-intl, Laravel, расширения Chrome), YAML Rails и Symfony, gettext .po, Flutter .arb, Apple .strings и .stringsdict, XML в Android res/values и Java .properties. Он группирует соответствующие друг другу файлы переводов, определяет базовый язык по именам файлов и папок (en, en-US, values/, пакет без языкового суффикса или файл шаблона Flutter), указывает выбранную базу и сравнивает с ней остальные языки. Сканер понимает ICU MessageFormat, формы множественного числа CLDR для каждого языка и стиль плейсхолдеров каждого формата, отличает настоящий набор форм множественного числа от обычного ключа вроде payment.other, воспринимает 100%ige как текст, а не плейсхолдер, и обрабатывает арабский и другие языки с письмом справа налево. Он никогда не запускает приложение или инструмент перевода. Результат: БЛОКИРОВКА, ПРОВЕРКА или НЕ ОТМЕЧЕНО с указанием файла, строки, причины и более безопасного подхода. Секретные данные никогда не выводятся.

Что проверяется

БЛОКИРОВКА (исправить до выпуска)

  • I01: плейсхолдеры, отличающиеся от базового текста ({name}, {{count}}, %s, %1$d, %(name)s, %@, {0}), включая изменение типа, например %d на %s, форму множественного числа, теряющую аргумент помимо количества, и форму ICU, которая нигде не выводит само число

  • I02: файлы, которые не загружаются или не проходят сборку: ошибки синтаксиса JSON, YAML, .po и .strings, повторяющиеся msgid, дубли ключей в YAML Symfony, неэкранированные апострофы Android, дубли ресурсов Android, несовпадения ARB @@locale

  • I03: сообщения ICU, которые невозможно разобрать (несбалансированные фигурные скобки, отсутствие варианта other, неизвестная категория множественного числа), и наборы форм множественного числа без other

  • I04: апострофы, из-за которых {0} или {name} выводятся буквально в Java MessageFormat и сообщениях ICU

  • I05: теги script, обработчики событий или ссылки javascript: внутри перевода

ПРОВЕРКА (проверить до выпуска)

  • I11: отсутствующие в переводе ключи

  • I12: ключи, которых нет в базовом файле

  • I13: пустые переводы

  • I14: текст, скопированный без изменений с базового языка

  • I15: теги HTML или форматированного текста, отличающиеся от базового текста

  • I16: ключи, записанные в одном файле дважды

  • I17: необходимые для языка формы множественного числа (арабского, русского, польского и других), а также число форм .po, не совпадающее с nplurals

  • I18: записи .po с пометкой fuzzy

  • I19: корневой ключ Rails или заголовок Language в .po, указывающий язык, отличный от языка файла

Что входит в комплект

  • Сканер (Python 3.9+, только стандартная библиотека)

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

  • Примеры проекта с уязвимостями и безопасного проекта (файлы веб-проекта, Android, iOS, Django, Rails и Spring с арабскими, немецкими и французскими переводами), а также реальный отчёт сканера для примера с уязвимостями

Ограничения

Сканер читает каждый файл в исходном виде: переводы, загружаемые во время выполнения, ключи, формируемые в коде, и способ отображения сообщения приложением, как текста или HTML, не проверяются. Каждый файл сравнивается только с базовым файлом своей группы, поэтому перемещённые между файлами ключи отмечаются как отсутствующие и лишние. Файлы локализации XLIFF, .resx, .xcstrings, Qt .ts, JSON5 и TOML не читаются. Непереведённый текст определяется эвристически. Статус НЕ ОТМЕЧЕНО не даёт гарантий.

Содержимое архива

Один ZIP-архив с 37 файлами: SKILL.md, сканер в scripts/ (8 файлов Python), references/rules.md (все правила с обоснованием и более безопасным подходом), а также examples/ (26 файлов примеров и report.md, реальный результат сканирования примера с уязвимостями).

Как использовать: Это навык для агента: папка с файлом SKILL.md и скриптами Python, которые может запускать ИИ-агент для разработки, например Claude Code, Cursor или Codex CLI. Распакуйте архив в папку навыков вашего агента (для Claude Code: ~/.claude/skills/), затем попросите агента проверить проект. Скрипты можно запускать и отдельно с Python 3.9 или новее, без установки дополнительных компонентов. Они только читают ваши файлы: не обращаются к сети и ничего никуда не отправляют.

Что вы получите

1 файл · 58.15 KB

  • translation-files-check-1.0.0.zipZIP · 58.15 KB

Включено в Getly ProПолучить Pro

ЛицензияКоммерческое использование разрешено
Опубликовано12 нояб. 2026 г.
Размер файла58.15 KB
Формат файлаZIP
Версияv1.0

Теги

i18nlocalizationtranslationgettextflutterai agent skill
R
RR HH

Частые вопросы

Доступ открывается сразу?

Да. Это цифровой товар - скачать его можно сразу после оплаты, прямо из своей библиотеки.

Можно ли использовать в коммерческих проектах?

Да. Коммерческое использование разрешено: в своём бизнесе и в том, что вы продаёте. Перепродавать и распространять сам файл нельзя.

Какие условия возврата?

Запросить возврат можно в течение 30 дней. Если что-то не так, оформите заявку в своём заказе - её рассмотрит команда Getly.

Какие форматы и размеры файлов я получу?

Вы скачаете 1 файл - ZIP - всего 58.15 KB.

Обновления бесплатны?

Да - когда продавец выпускает новую версию, вы можете бесплатно скачать актуальные файлы из своей библиотеки. Последние изменения смотрите в истории версий.

Цена

$5.00