Skip to main content

Навички i18n

Команди ШІ для аудиту й огортання рядків i18n

Проблема

У Вашій кодовій базі є 500 жорстко заданих рядків, розпорошених між компонентами, шаблонами та представленнями. Ручне огортання потребує кількох днів виснажливого пошуку й заміни. Навіть після огортання можна пропустити розділені речення, які порушують порядок слів у німецькій, логіку множини, яка не працює в арабській, і осиротілі ключі, які роздувають файли локалей.

Ручне огортання для i18n часто спричиняє помилки: розробники пропускають розділені речення, порушують форми множини тернарними операторами й залишають жорстко задані рядки в нетипових випадках. Ці помилки стають помітними лише після перекладу, коли їх виправлення коштує вдесятеро дорожче.

Рішення

Дві команди ШІ зі скісною рискою, які охоплюють увесь робочий процес i18n. Запустіть /i18n-review, щоб перевірити код у режимі лише для читання, а потім /i18n-wrap, щоб автоматично все виправити. Обидві команди визначають Ваш фреймворк, розпізнають формат файлів локалей і перевіряють зміни перед їх фіксацією.

/i18n-review

Аудит у режимі лише для читання, який знаходить розділені речення, неправильні форми множини, не огорнуті функцією перекладу рядки та невикористані ключі. Ніколи не змінює Ваш код.

/i18n-wrap

Автоматично огортає жорстко задані рядки правильною функцією перекладу, створює семантичні ключі, оновлює файли локалей і перевіряє складання.

Команда /i18n-review

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

Terminal
/i18n-review src/
/i18n-review src/ --framework=next-intl

Що вона перевіряє

  • Розділені речення: об’єднані виклики t(), які порушують порядок слів в інших мовах
  • Зайве огортання: технічні рядки, класи CSS, URL-адреси та значення enum, помилково огорнуті функцією t()
  • Недостатнє огортання: видимі рядки інтерфейсу, як-от написи кнопок, заголовки й повідомлення про помилки, залишені жорстко заданими
  • Проблеми з множиною: тернарні оператори або перевірки === 1 замість належного синтаксису множини ICU
  • Невикористані ключі: ключі перекладу, визначені у файлах локалей, але жодного разу не використані в коді
  • Жорстко задані значення форматів: дати, валюти й числа, для яких не використовуються засоби форматування Intl
Команда перевірки працює виключно в режимі читання. Запускайте її без ризику небажаних змін так часто, як потрібно, під час розробки або в pipeline CI/CD.

Команда /i18n-wrap

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

Terminal
/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-i18nextt()key_one / key_other
next-intlt()ICU {count, plural, ...}
vue-i18n$t()Pipe syntax | singular | plural
angular i18n$localizeICU {count, plural, ...}
svelte-i18n$_()ICU {count, plural, ...}
flutter intlS.of(context)Intl.plural()
djangogettext / _()ngettext()
rails i18nt()count key
laravel__() / @langtrans_choice()
swiftNSLocalizedString.stringsdict

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

Скопіюйте файли команд у каталог .claude/commands/. Це все — без залежностей і налаштування. Команди є звичайними файлами Markdown, які може виконати будь-який асистент програмування на основі ШІ.

Terminal
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/
Це стандартні файли команд зі скісною рискою. Вони одразу працюють у Claude Code і можуть бути адаптовані для інших асистентів програмування на основі ШІ, які підтримують власні команди.

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

Проєкт React

Перевірте застосунок React, який використовує react-i18next, а потім огорніть усі жорстко задані рядки. Команди визначають react-i18next за Вашим package.json і використовують правильну функцію t() та формат множини key_one/key_other.

React Project
# 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() для форм множини.

Django Project
# 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

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

Цільові мови

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

Часті запитання