Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Уточнение, что content test завершается с ненулевым кодом при отсутствии обязательных локалей"v6.1.027.10.2026
- "Введение тестирования"v6.0.020.09.2025
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
Тестирование вашего контента
Это руководство показывает, как автоматически проверять полноту ваших словарей, выявлять отсутствующие переводы до выпуска и тестировать локализованный пользовательский интерфейс в вашем приложении.
Что вы можете тестировать
- Отсутствующие переводы: провалить CI, если для любого словаря отсутствуют обязательные локали.
- Отрисовка локализованного UI: рендерить компоненты с провайдером конкретной локали и проверять видимый текст/атрибуты.
- Аудиты во время сборки (build time): запустить
npx intlayer content testлокально или в CI; команда завершается с ненулевым кодом, если отсутствуют обязательные переводы.
Быстрый старт: аудит через CLI
Запустите аудит из корня вашего проекта:
Копировать код в буфер обмена
Полезные флаги:
--env-file [path]: загрузить переменные окружения из файла.-e, --env [name]: выбрать профиль окружения.--base-dir [path]: задать базовую директорию приложения для разрешения путей.--verbose: показывать подробные логи.--prefix [label]: добавлять префикс к строкам логов.
Команда завершается с кодом 1, если отсутствует любая обязательная локаль (см. requiredLocales в вашей конфигурации), и с кодом 0 в противном случае. Её можно использовать напрямую, чтобы проваливать CI-задачи или хуки коммитов. Программный тест ниже является необязательной альтернативой.
Программное тестирование (Vitest/Jest)
Используйте API Intlayer CLI, чтобы проверить, что отсутствующих переводов для обязательных локалей нет.
Копировать код в буфер обмена
Эквивалент для Jest:
Копировать код в буфер обмена
Как это работает:
- Intlayer читает вашу конфигурацию (locales, requiredLocales) и объявленные словари, затем сообщает:
missingTranslations: для каждого ключа, какие локали отсутствуют и из какого файла.missingLocales: объединение всех отсутствующих локалей.missingRequiredLocales: подмножество, ограниченноеrequiredLocales(или все локали, еслиrequiredLocalesне установлены).
Тестирование локализованного UI (React / Next.js)
Рендерьте компоненты под провайдером Intlayer и проверяйте видимый контент.
Пример для React (Testing Library):
Копировать код в буфер обмена
Пример для Next.js (App Router): используйте обертку фреймворка:
Копировать код в буфер обмена
Советы:
- Когда вам нужны необработанные строковые значения для атрибутов (например,
aria-label), обращайтесь к полю.value, возвращаемомуuseIntlayerв React. - Храните словари рядом с компонентами для упрощения модульного тестирования и очистки.
Непрерывная интеграция
Запустите аудит CLI в CI. Он проваливает задачу, если отсутствуют обязательные переводы.
package.json:
Копировать код в буфер обмена
Альтернатива: Vitest
Копировать код в буфер обмена
Пример GitHub Actions:
Копировать код в буфер обмена
Опционально: запустите аудит CLI для получения удобочитаемого отчёта вместе с тестами:
Копировать код в буфер обмена
Устранение неполадок
- Убедитесь, что ваша конфигурация Intlayer определяет
localesи (опционально)requiredLocales. - Если ваше приложение использует динамические или удалённые словари, запускайте тесты в среде, где эти словари доступны.
- Для смешанных монорепозиториев используйте
--base-dir, чтобы указать CLI правильный корень приложения.
