i18n Skills
ИИ команди за одит и обвиване на низове за i18n
Проблемът
Във Вашата кодова база има 500 твърдо кодирани низа, разпръснати из компоненти, шаблони и изгледи. Ръчното им обвиване изисква дни досадно търсене и замяна. Дори след това може да пропуснете разделени изречения, които нарушават словореда на немски, логика за множествено число, която не работи на арабски, и изоставени ключове, които ненужно увеличават файловете Ви за езикови версии.
Решението
Две ИИ команди с наклонена черта обхващат целия работен процес за i18n. Изпълнете /i18n-review, за да извършите одит, без да променяте кода, след което изпълнете /i18n-wrap, за да отстраните всичко автоматично. И двете команди разпознават използваната рамка, разбират формата на файловете за езикови версии и проверяват промените, преди да ги запишат в commit.
/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 и др.)
- Проверка на изграждането: след обвиването изпълнява командите Ви за изграждане, статичен анализ и тестове, за да открие евентуални регресии
Поддържани рамки
И двете команди разпознават автоматично рамката Ви по зависимостите на проекта. Можете също да я посочите изрично чрез флага --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
или натиснете, за да изберете файл
Целеви езици