Интернационализация и переводы
TrucklineMP использует единую систему интернационализации, созданную на базе Next-Intl, для обработки многоязычной маршрутизации, каталогов переводов и вкладов в переводы.
Каталоги переводов
Заголовок раздела «Каталоги переводов»Все переводимые строки в веб-приложении определены в файлах сообщений формата JSON, организованных по локалям в директории messages/:
messages/├── en/ # Английский (Исходный каталог)│ ├── common.json│ ├── account.json│ └── ...├── pl/ # Польский│ ├── common.json│ └── ...└── de/ # Немецкий ├── common.json └── ...Форматирование сообщений
Заголовок раздела «Форматирование сообщений»Ключи сообщений поддерживают стандартные функции перевода системы ICU, такие как интерполяция и множественные числа:
{ "welcome": "Welcome back, {username}!", "memberCount": "{count, plural, =0 {No members} =1 {1 member} other {# members}}"}Рабочие пространства для переводов
Заголовок раздела «Рабочие пространства для переводов»TrucklineMP имеет встроенные рабочие пространства для управления и проверки переводов:
- Пользовательское рабочее пространство (
/translations): Позволяет участникам сообщества отправлять варианты переводов для неполных ключей на выбранных ими языках. - Рабочее пространство проверки (
/translations/[locale]/review): Интерфейс рабочего процесса для модераторов переводов, позволяющий проверять, одобрять или отклонять предложенные переводы.
Конфигурация поддерживаемых локалей, разрешения пользовательских рабочих пространств и развертывание обновлений каталога переводов выполняются персоналом платформы через служебные инструменты.
Официальный контент
Заголовок раздела «Официальный контент»Контент системного уровня, такой как определения значков, параметры динамических выпадающих списков или официальные правила платформы, регистрируется в:
Разработчики должны использовать вспомогательные функции в этом модуле для регистрации системных строк и обеспечения их анализа и каталогизации средой выполнения перевода.
Инструменты командной строки для переводов
Заголовок раздела «Инструменты командной строки для переводов»Доступно несколько скриптов командной строки для синхронизации, проверки и валидации каталогов переводов во время разработки.
Синхронизация каталогов
Заголовок раздела «Синхронизация каталогов»Синхронизирует все каталоги целевых локалей (messages/pl/*.json, messages/de/*.json и так далее) со структурой исходного английского каталога, добавляя недостающие ключи и удаляя устаревшие ключи:
npm run i18n:syncПроверка каталогов
Заголовок раздела «Проверка каталогов»Проверяет, что все JSON файлы каталога правильно сформированы и содержат действительный синтаксис:
npm run i18n:checkПроверка заполнителей макета
Заголовок раздела «Проверка заполнителей макета»Проверяет, что переменные форматирования системы ICU (например, {username}) идеально совпадают в исходном английском файле и во всех переведенных файлах:
npm run i18n:layoutОценка покрытия
Заголовок раздела «Оценка покрытия»Вычисляет метрики процентного покрытия перевода для всех настроенных локалей:
npm run i18n:coverageНабор проверок
Заголовок раздела «Набор проверок»Запускает комплексные проверки валидации (проверка, строгое покрытие, проверки макета и модульные тесты в директории src/i18n/__tests__/ для предотвращения проблем безопасности и атак с внедрением межсайтового скриптинга через переводы). Этот набор запускается конвейером непрерывной интеграции перед слиянием любых запросов на внесение изменений:
npm run i18n:verify