Перейти к содержанию
Доктор i18n

i18n Doctor: Получите полный отчет о состоянии перевода с помощью одной команды

Запустите better-i18n doctor для анализа всего вашего кода по пяти параметрам — качество кода, охват перевода, точность заполнителей, осиротевшие ключи и синхронизация CDN — и получите единую оценку работоспособности от 0 до 100 с практическими рекомендациями по диагностике.

$ better-i18n doctor
better-i18n · Отчет i18n Doctor
████████████████░░░░82 / 100A
PASSED (threshold: 70)
Coverage95(3 issues)
Quality88(2 issues)
Code72(8 issues)
Structure100(clean)
Performance91(1 issue)

Пять уровней анализа за один проход

Doctor выполняет сканирование кода, анализ покрытия, проверку качества, аудит производительности и проверку синхронизации CDN — все одновременно, с единой оценкой.

Код — обнаружение жестко запрограммированных строк

Сканирование на основе AST обнаруживает все строки, отображаемые пользователю, которые не заключены в t(). Обнаруживает текст JSX, атрибуты, тернарную логику локализации, сообщения toast и строковые переменные.

Охват — отсутствующие переводы

Сравнивает ключи, присутствующие в исходной локали, с каждой целевой локалью. О любых ключах, отсутствующих в целевой локали, сообщается с указанием их точного пространства имен и пути.

Качество — Несоответствие заполнителя

Проверяет, что заполнители интерполяции согласованы во всех локалях. Поддерживает именованные {}, двойные фигурные скобки {{}}, printf-%s, шаблон ${} и позиционные форматы {0}.

Производительность — обнаружение осиротевших ключей

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

Синхронизация — сравнение CDN

Сравнивает ключи, извлеченные из вашего кода, с опубликованными ключами в CDN. Выявляет проблемы, связанные с отсутствующими удаленными и неиспользуемыми удаленными ключами, до того, как они появятся в производственной среде.

Единый балл для оценки качества вашего перевода

Врач рассчитывает оценку от 0 до 100 на основе полученных диагностических данных. За каждую ошибку начисляется штраф в размере 3,0 баллов, а вклад каждого правила в предупреждение ограничен 20 баллами, что предотвращает сведение всей оценки к нулю из-за одного правила с тысячами предупреждений.

По умолчанию порог прохождения составляет 70 (оценка B). Используйте --ci, чтобы отклонить сборки ниже этого порога, или начните с --report, чтобы установить базовый уровень перед применением оценки.

Формула подсчета баллов
score = 100 - (errors × 3.0) - Σ min(rule_warnings × 0.15, 20)

Пороговые значения оценок

A+≥ 90
Пропуск
A≥ 80
Пропуск
B≥ 70
Пропуск
C≥ 50
Неудача
F< 50
Неудача

Интеграция CI/CD — предотвращение некачественных переводов до их выпуска

Добавьте доктора в ваш CI-конвейер, чтобы отслеживать регрессии перевода при каждом пуше. Автоматическая аутентификация OIDC в GitHub Actions означает отсутствие необходимости в управлении секретами.

GitHub Actions с OIDC

Пройдите аутентификацию автоматически без ключей API с помощью GitHub Actions OIDC. Просто добавьте id-token: право на запись и запустите doctor --ci --report.

Пороговое управление

Установите пороговое значение (по умолчанию: 70) и прекратите сборку, если оценка опустится ниже этого значения. Начните отслеживание с помощью --report, затем примените с помощью --ci.

Машинно-читаемый JSON

Используйте --format json для структурированного вывода, который можно передать в jq, настраиваемые панели мониторинга или последующую автоматизацию в вашей конвейерной линии развертывания.

Отчетность на панели инструментов

Загрузите результаты в панель управления Better i18n с помощью --report для отслеживания истории, анализа тенденций и обеспечения видимости состояния i18n для всей команды.

# GitHub Actions example
- run: npx @better-i18n/cli doctor --ci --report

Когда использовать какую команду

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

доктор

Полная оценка состояния с пятью уровнями анализа — единственный достоверный источник информации о статусе i18n вашего проекта.

сканировать

Сосредоточенное обнаружение жестко запрограммированных строк. Поддерживает --staged для хуков pre-commit.

проверить

Интерактивный инструмент для проверки отсутствующих или неиспользуемых ключей перевода с подсказками.

синхронизация

Полное сравнение локальной и удаленной версий, показывающее одновременно отсутствующие и неиспользуемые ключи.

Разработан для реальных рабочих процессов i18n

Оценка здоровья 0–100

Единый балл с разбивкой по категориям и пороговым значением CI для прохождения/непрохождения. Отслеживайте качество ваших переводов с течением времени.

Отслеживание лексической области действия

Интеллектуальное определение пространства имен для useTranslations и getTranslations. Каждый вызов t() сопоставляется с правильным пространством имен.

Поддержка серверных компонентов

Полная поддержка асинхронных серверных функций Next.js App Router. Вызовы getTranslations на стороне сервера обнаруживаются и проверяются.

Настраиваемые правила

Отключите или понизьте уровень правил в i18n.config.ts. Установите правила на «error», «warning» или «off» в соответствии с требованиями вашего проекта.

Интеллектуальная фильтрация

Автоматически игнорирует имена классов CSS, URL-адреса, пути импорта и константы разработчика. Только результаты, подлежащие действию.

Подробный журнал аудита

Высокая прозрачность с помощью --verbose. Сводки по области действия, информация о времени и трассировка разрешения пространств имен для отладки.

Оцените качество перевода перед отправкой

Запустите better-i18n doctor один раз, чтобы получить базовые показатели. Добавьте его в CI, чтобы больше никогда не выпускать продукты с отсутствующими переводами.