Перейти до вмісту
i18n Doctor

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. Виявляє проблеми з відсутніми віддаленими та невикористаними віддаленими ключами, перш ніж вони потраплять у виробництво.

Єдиний бал для вашого перекладу Health

Лікар обчислює бал від 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 — блокування неякісних перекладів до їх випуску

Додайте doctor до вашого 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 — це комплексний варіант. Використовуйте цільові команди, коли вам потрібна конкретна перевірка або ви хочете отримати швидший відгук у пре-комміт-хуках.

лікар

Повний показник стану з п'ятьма рівнями аналізу — єдине джерело достовірної інформації про стан інтернаціоналізації вашого проєкту.

сканування

Зосереджене виявлення жорстко закодованих рядків. Підтримує --staged для пре-комміт хуків.

перевірити

Інтерактивний перевіряльник відсутніх або невикористаних ключів перекладу з підказками.

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

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

Створено для реальних робочих процесів 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, щоб більше ніколи не відправляти неповні переклади.