Навички i18n
Команди ШІ для аудиту й огортання рядків i18n
Проблема
У Вашій кодовій базі є 500 жорстко заданих рядків, розпорошених між компонентами, шаблонами та представленнями. Ручне огортання потребує кількох днів виснажливого пошуку й заміни. Навіть після огортання можна пропустити розділені речення, які порушують порядок слів у німецькій, логіку множини, яка не працює в арабській, і осиротілі ключі, які роздувають файли локалей.
Рішення
Дві команди ШІ зі скісною рискою, які охоплюють увесь робочий процес i18n. Запустіть /i18n-review, щоб перевірити код у режимі лише для читання, а потім /i18n-wrap, щоб автоматично все виправити. Обидві команди визначають Ваш фреймворк, розпізнають формат файлів локалей і перевіряють зміни перед їх фіксацією.
/i18n-review
Аудит у режимі лише для читання, який знаходить розділені речення, неправильні форми множини, не огорнуті функцією перекладу рядки та невикористані ключі. Ніколи не змінює Ваш код.
/i18n-wrap
Автоматично огортає жорстко задані рядки правильною функцією перекладу, створює семантичні ключі, оновлює файли локалей і перевіряє складання.
Команда /i18n-review
Команда перевірки виконує аудит Вашої кодової бази в режимі лише для читання. Вона сканує кожен файл на наявність проблем i18n і створює впорядкований за пріоритетом звіт із точними місцями у файлах та рекомендаціями щодо виправлення. Ваш код ніколи не змінюється.
/i18n-review src/
/i18n-review src/ --framework=next-intlЩо вона перевіряє
- Розділені речення: об’єднані виклики t(), які порушують порядок слів в інших мовах
- Зайве огортання: технічні рядки, класи CSS, URL-адреси та значення enum, помилково огорнуті функцією t()
- Недостатнє огортання: видимі рядки інтерфейсу, як-от написи кнопок, заголовки й повідомлення про помилки, залишені жорстко заданими
- Проблеми з множиною: тернарні оператори або перевірки === 1 замість належного синтаксису множини ICU
- Невикористані ключі: ключі перекладу, визначені у файлах локалей, але жодного разу не використані в коді
- Жорстко задані значення форматів: дати, валюти й числа, для яких не використовуються засоби форматування Intl
Команда /i18n-wrap
Команда огортання автоматично огортає жорстко задані рядки правильною функцією перекладу для Вашого фреймворку. Вона визначає Вашу бібліотеку i18n, створює семантичні ключі, згруповані за компонентом або функціональністю, оновлює файли локалей і перевіряє, чи складання досі проходить успішно.
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18nextЩо вона робить
- Визначення фреймворку: розпізнає Вашу бібліотеку i18n та її функцію перекладу (t, $t, $_, gettext тощо)
- Створення семантичних ключів: створює змістовні ключі на кшталт nav.signIn і errors.notFound замість загальних назв
- Оновлення файлів локалей: додає нові ключі до Вашого файла вихідної локалі в правильному форматі (JSON, YAML, PO тощо)
- Перевірка складання: після огортання запускає Ваші команди складання, lint і тестування, щоб виявити можливі регресії
Підтримувані фреймворки
Обидві команди автоматично визначають фреймворк за залежностями Вашого проєкту. Ви також можете явно вказати його за допомогою прапорця --framework. Нижче наведено 10 підтримуваних фреймворків із відповідними функціями перекладу й форматами множини.
| Фреймворк | Функція перекладу | Формат множини |
|---|---|---|
| react-i18next | t() | key_one / key_other |
| next-intl | t() | ICU {count, plural, ...} |
| vue-i18n | $t() | Pipe syntax | singular | plural |
| angular i18n | $localize | ICU {count, plural, ...} |
| svelte-i18n | $_() | ICU {count, plural, ...} |
| flutter intl | S.of(context) | Intl.plural() |
| django | gettext / _() | ngettext() |
| rails i18n | t() | count key |
| laravel | __() / @lang | trans_choice() |
| swift | NSLocalizedString | .stringsdict |
Встановлення
Скопіюйте файли команд у каталог .claude/commands/. Це все — без залежностей і налаштування. Команди є звичайними файлами Markdown, які може виконати будь-який асистент програмування на основі ШІ.
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/Приклади використання
Проєкт React
Перевірте застосунок React, який використовує react-i18next, а потім огорніть усі жорстко задані рядки. Команди визначають react-i18next за Вашим package.json і використовують правильну функцію t() та формат множини key_one/key_other.
# Review a React project for i18n issues
/i18n-review src/ --framework=react-i18next
# Wrap all hardcoded strings automatically
/i18n-wrap src/components/ --framework=react-i18next
# Result: t() calls inserted, keys added to en/translation.jsonПроєкт Django
Перевірте шаблони й представлення Django на наявність проблем i18n, а потім огорніть рядки за допомогою gettext. Команди визначають Django за Вашим settings.py і використовують _() для простих рядків та ngettext() для форм множини.
# Review Django templates and views
/i18n-review myapp/ --framework=django
# Wrap hardcoded strings with gettext
/i18n-wrap myapp/templates/ --framework=django
# Result: _() calls inserted, .po file updatedПов’язані посібники з фреймворків
Спробуйте i18n Agent зараз
Перетягніть сюди файл для перекладу
JSON, YAML, PO, XML, CSV, Markdown, Properties
або натисніть, щоб вибрати
Цільові мови