Мультиязычность
Система мультиязычности в проекте строится на принципах масштабируемости, типобезопасности и удобства лок ализации контента.
Цели
- Единые правила для ключей, namespaces и структуры переводов.
- Предсказуемая загрузка переводов в SSR/SSG (Next.js / Astro).
- Минимум "магии": понятные фолбэки, контроль missing keys.
- Корректные plural, интерполяция и форматирование дат/чисел/валют.
- Полная локализуемость UI, централизованное управление, консистентность текстов.
Общие принципы
MUST
- Интернационализация (i18n) — требование для всех мультиязычных проектов
- Внедрение на старте значительно дешевле интеграции постфактум
- Проект использует одну систему интернационализации
- Использование нескольких библиотек одновременно запрещено
- Все следующие элементы проходят через систему i18n:
- UI-элементы: заголовки, подписи, кнопки, плейсхолдеры
- Обратная связь: уведомления, сообщения об ошибках, валидация
- SEO: meta-теги, OG-теги, structured data
- Accessibility:
aria-label,altдля изображений, атрибуты для скринридеров
- TypeScript Augmentation (типизация):
- Ключи должны подтягиваться из JSON файлов в глобальную декларацию типов библиотеки
t('key')проверяет существование ключа на этапе компиляции
Рекомендуемые библиотеки
| Стек | Библиотека |
|---|---|
| React / Next.js | next-intl, react-intl |
| Astro / SSG | astro-i18next, i18next |
Разделы документации
- Технические требования — Правила организации ключей, namespaces, работа с плюралами, интерполяцией и форматированием.
- Контроль и автоматизация — Правила Code Review, инструменты автоматизации и чеклист разработчика.