i18n Doctor: отримайте повний звіт про стан перекладу за допомогою однієї команди
Запустіть better-i18n doctor, щоб проаналізувати весь ваш код за п'ятьма параметрами — якість коду, охоплення перекладом, точність заповнення місцезаповнювачів, сирітські ключі та синхронізація CDN — і отримайте єдиний показник стану від 0 до 100 з практичними діагностичними рекомендаціями.
П'ять рівнів аналізу за один прохід
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)Порогові оцінки
Інтеграція 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 всією командою.
Коли використовувати яку команду
Doctor — це комплексний варіант. Використовуйте цільові команди, коли вам потрібна конкретна перевірка або ви хочете отримати швидший відгук у пре-комміт-хуках.
лікарПовний показник стану з п'ятьма рівнями аналізу — єдине джерело достовірної інформації про стан інтернаціоналізації вашого проєкту.
скануванняЗосереджене виявлення жорстко закодованих рядків. Підтримує --staged для пре-комміт хуків.
перевіритиІнтерактивний перевіряльник відсутніх або невикористаних ключів перекладу з підказками.
синхронізаціяПовне порівняння локального та віддаленого файлів, що показує одночасно відсутні та невикористані ключі.
Створено для реальних робочих процесів i18n
Оцінка здоров'я 0–100
Єдиний бал з розбивкою за категоріями та порогом проходження/непроходження CI. Відстежуйте стан перекладу з часом.
Відстеження лексичного обсягу
Розумне виявлення простору імен для useTranslations і getTranslations. Кожен виклик t() відображається на відповідний простір імен.
Підтримка серверних компонентів
Повна підтримка асинхронних серверних функцій Next.js App Router. Виклики getTranslations на стороні сервера виявляються та перевіряються.
Настроювані правила
Вимкніть або понизьте рівень правил у файлі i18n.config.ts. Встановіть правила на «error», «warning» або «off» відповідно до потреб вашого проєкту.
Розумна фільтрація
Автоматично ігнорує імена класів CSS, URL-адреси, шляхи імпорту та константи розробника. Тільки результати, що підлягають обробці.
Детальний журнал аудиту
Глибока прозорість за допомогою --verbose. Підсумки обсягу, інформація про час та трасування вирішення простору імен для налагодження.
Пов'язані теми
CLI & Code Scanning
Інструменти для виявлення жорстко закодованих рядків на основі AST та сканування коду
For Developers
Інструменти i18n, орієнтовані на розробників, з типобезпечними SDK та робочими процесами Git-first
Localization Software
Platforms and software for managing localization at scale
Translation Management
Централізована платформа для управління великими обсягами перекладів
Дізнайтеся про стан вашого перекладу перед відправкою
Запустіть better-i18n doctor один раз, щоб отримати базові дані. Додайте його до CI, щоб більше ніколи не відправляти неповні переклади.