Локали и язык сайта
TeqCMS поддерживает мультиязычные сайты с определением языка пользователя и fallback-механизмом. Все локали настраиваются в конфигурации и работают на уровне URL.
1. Определение локали
Локаль пользователя определяется по следующему приоритету:
- Префикс в URL —
/en/
,/ru/
и т.д. - Заголовок
Accept-Language
— если префикс не указан - Локаль по умолчанию — параметр
localeBaseDisplay
Если URL не содержит допустимый префикс, CMS автоматически перенаправляет пользователя на путь с базовой локалью.
2. Настройка доступных локалей
Локали указываются через переменную окружения:
TEQ_CMS_LOCALE_ALLOWED=en,ru,fr
Базовая локаль для отображения:
TEQ_CMS_LOCALE_BASE_DISPLAY=en
Базовая локаль для переводов (например, оригинальные тексты на русском):
TEQ_CMS_LOCALE_BASE_TRANSLATE=ru
3. Каталоги шаблонов
Для каждой локали создаётся свой подкаталог:
tmpl/web/
├── en/
│ └── index.html
├── ru/
│ └── index.html
Если нужный файл отсутствует в целевой локали, CMS использует версию из localeBaseDisplay
.
4. Переключение локали на сайте
Для переключения языка можно использовать селектор с генерацией ссылок на /en
, /ru
и т.п.
CMS всегда рендерит страницы в соответствии с URL-локалью, что делает поведение однозначным и предсказуемым.