Skip to main content

i18n Skills

ИИ команди за одит и обвиване на низове за i18n

Проблемът

Във Вашата кодова база има 500 твърдо кодирани низа, разпръснати из компоненти, шаблони и изгледи. Ръчното им обвиване изисква дни досадно търсене и замяна. Дори след това може да пропуснете разделени изречения, които нарушават словореда на немски, логика за множествено число, която не работи на арабски, и изоставени ключове, които ненужно увеличават файловете Ви за езикови версии.

Ръчното обвиване за i18n създава предпоставки за грешки: разработчиците пропускат разделени изречения, нарушават множествените форми с тернарни оператори и оставят твърдо кодирани низове в гранични случаи. Тези грешки се проявяват едва след превода, когато отстраняването им е 10x по-скъпо.

Решението

Две ИИ команди с наклонена черта обхващат целия работен процес за i18n. Изпълнете /i18n-review, за да извършите одит, без да променяте кода, след което изпълнете /i18n-wrap, за да отстраните всичко автоматично. И двете команди разпознават използваната рамка, разбират формата на файловете за езикови версии и проверяват промените, преди да ги запишат в commit.

/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
Командата за преглед не прави никакви промени. Изпълнявайте я колкото желаете по време на разработката или в 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 и др.)
  • Проверка на изграждането: след обвиването изпълнява командите Ви за изграждане, статичен анализ и тестове, за да открие евентуални регресии
Командата за обвиване проверява всяка промяна, като изпълнява процеса Ви за изграждане и набора от тестове. Ако някоя проверка е неуспешна, тя автоматично отменя промените.

Поддържани рамки

И двете команди разпознават автоматично рамката Ви по зависимостите на проекта. Можете също да я посочите изрично чрез флага --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

или натиснете, за да изберете файл

Целеви езици

Не се изисква регистрацияНезабавна оценка

Често задавани въпроси