Подключение переводов в i18next не ограничивается единственным способом загрузки ресурсов. Архитектура библиотеки построена вокруг идеи подключаемых backend-модулей, каждый из которых отвечает за доставку переводов из определённого источника. Такой подход позволяет адаптировать систему интернационализации под разные типы приложений: от серверных Node.js сервисов до SPA, работающих в браузере или на edge-инфраструктуре.
Backend в i18next представляет собой абстракцию над источником переводов. Вместо того чтобы жестко зашивать локали в код, библиотека делегирует загрузку внешнему модулю, реализующему единый интерфейс:
read(language, namespace, callback)create?(languages, namespace, key, fallbackValue)readMulti? (в некоторых реализациях)Ключевая идея заключается в том, что i18next не знает, откуда приходят переводы: из файловой системы, HTTP API, CDN или собранного JS-бандла.
Наиболее распространённый вариант — загрузка переводов по HTTP через модуль backend, основанный на REST-запросах.
Типичный сценарий:
/locales/{lng}/{ns}.jsonHTTP-подход обеспечивает:
Однако у этого подхода есть архитектурные ограничения:
Для компенсации часто применяются reloadInterval,
ETag-заголовки и CDN-слой.
В серверных приложениях используется файловый backend, работающий напрямую с файловой системой. Он особенно эффективен в SSR-сценариях и CLI-инструментах.
Характерные особенности:
Структура обычно выглядит следующим образом:
locales/
en/
common.json
auth.json
ru/
common.json
auth.json
Файловый backend часто комбинируется с preloading:
Альтернативный подход заключается в полном отказе от backend-загрузчика. Переводы компилируются в JavaScript-бандл во время сборки.
Сценарии использования:
Реализация может происходить через:
Преимущества:
Недостатки:
Chained backend позволяет объединять несколько источников переводов в одну цепочку. Это один из наиболее гибких механизмов в экосистеме i18next.
Принцип работы:
Типичные комбинации:
Такой подход позволяет:
В продвинутых системах часто используется интеграция с внешними платформами управления локализацией. Одним из распространённых решений является Locize, которая предоставляет API для синхронизации переводов в реальном времени.
Особенности такого подхода:
В архитектуре i18next это реализуется через специализированный backend-модуль, который:
i18next допускает полную замену backend-слоя собственной реализацией. Это используется в системах с нестандартной инфраструктурой.
Примеры кастомных источников:
Минимальная реализация требует соблюдения интерфейса:
Кастомный backend часто используется в:
С распространением edge computing изменился подход к доставке переводов. Вместо классического backend-сервера используются распределённые точки доставки.
Основные стратегии:
В таких системах backend i18next часто работает в режиме:
Это снижает latency до уровня нескольких миллисекунд в глобальных приложениях.
Эффективность backend-решений напрямую влияет на производительность интернационализации.
Ключевые оптимизации:
Особое внимание уделяется стратегии fallback:
Различные типы приложений требуют разных решений:
Каждая стратегия определяется балансом между: