Локализация интерфейса
Repovio предоставляет веб-интерфейс на английском (en), немецком (de), испанском (es), французском (fr),
итальянском (it), голландском (nl), польском (pl) и португальском языках. (pt). Языковое меню в шапке приложения
доступно каждому авторизованному пользователю. Выбор языка сохраняет предпочтения в файле cookie браузера
repovio-locale и применяет их при будущих посещениях.
Английский является детерминированным значением по умолчанию и резервным вариантом. Если настройки браузера или сохраненный файл cookie не определяют поддерживаемый языковой стандарт, Repovio отображает английский язык. Форматирование даты, времени и чисел использует выбранный языковой стандарт.
Элементы входа и флаги языков
Страницы входа и создания первого администратора предлагают под формой выбор языка с текущим языком и флагом. Во время загрузки отображается занятость. Отдельная кнопка темы переключает системную, светлую и тёмную темы и сохраняет выбор. Значок показывает текущий выбор; подсказка и доступное имя описывают его и следующее действие.
Меню показывает декоративные локальные SVG-флаги рядом с названиями языков на родном языке. Названия остаются доступными
метками; флаги их не заменяют. Соответствие языка стране: en → GB, de → DE, es → ES, fr → FR, it → IT, nl →
NL, pl → PL, pt → PT.
Файлы в apps/web/public/flags взяты из flag-icons v7.5.0 под
включённой лицензией MIT. Внешние запросы изображений не нужны. При добавлении языка добавьте флаг и соответствие в
useLocales.
Добавление или обновление локали
- Добавьте или обновите
apps/web/i18n/locales/<locale>.json, используяen.jsonв качестве полной ссылки на ключ. - Зарегистрируйте его языковой код, имя файла и собственное отображаемое имя в
apps/web/nuxt.config.ts. - Сохраните все ключи сообщений в
en.json; набор веб-тестов проверяет эту четность для каждой поставляемой локали. - Добавьте сообщения на английском и немецком языках для каждой новой строки интерфейса, видимой пользователю, а затем добавьте соответствующий перевод в каждую поставляемую локаль.
- Запустите
pnpm --filter @repovio/web test,pnpm --filter @repovio/web typecheckи соответствующий тест драматурга.
Имена поставщиков, имена репозиториев, имена рабочих процессов и другие данные, предоставленные поставщиком, остаются неизменными, поскольку они не являются копией интерфейса Repovio.