21 lines
1.3 KiB
Markdown
21 lines
1.3 KiB
Markdown
# D-006. Переводы: поля Payload и next-intl; 5 языков
|
||
|
||
Статус: принято, 20.10.2026.
|
||
|
||
## Решение
|
||
|
||
1. Языки: `en` (по умолчанию, без префикса в URL), `ru`, `de`, `fr`, `es`. Позже — `pt-br` и `ja`.
|
||
2. Контент — локализованные поля Payload (`localized: true`), откат на английский.
|
||
3. Интерфейс — next-intl, файлы `messages/*.json` в репозитории.
|
||
4. Язык всегда в URL (кроме английского). Список языков — в конфиге, у домена — включённые языки. Отдельной сущности «Языки» нет.
|
||
5. В админке Payload `filterAvailableLocales` скрывает языки, выключенные для сайта.
|
||
|
||
## Рассмотренные варианты
|
||
|
||
1. Языки как записи в базе — Payload задаёт локали в конфиге, сущность дублировала бы конфиг.
|
||
2. Интерфейсные строки тоже в Payload — нет версионирования и типизации, лишние запросы.
|
||
|
||
## Последствия
|
||
|
||
Новый язык — правка конфига, переводы и деплой.
|