gt-react@10.8.0
Обзор
В gt-react 10.8.0 мы добавили поддержку фича-флага через поле enableI18n. Это позволяет при необходимости отключать интернационализацию и поддерживает как синхронные, так и асинхронные сценарии загрузки.
Синхронное поведение
Когда enableI18n установлено в false, функциональность i18n отключается следующим образом:
- Список локалей ограничивается только локалью по умолчанию
- Локаль пользователя устанавливается в значение локали по умолчанию
<GTProvider enableI18n={false}>
{/* i18n отключён — доступна только локаль по умолчанию */}
</GTProvider>Асинхронная работа
Для динамических фич-флагов используйте enableI18nLoaded, чтобы указать состояние загрузки:
<GTProvider
enableI18n={featureFlag}
enableI18nLoaded={isLoaded}
>
{/* Содержимое */}
</GTProvider>Когда enableI18nLoaded не равно undefined:
false: Фича-флаг загружается (используется значениеenableI18nпо умолчанию)true: Фича-флаг завершил загрузку
Во время загрузки библиотека проверяет cookie generaltranslation.enable-i18n, чтобы определить текущее состояние. После завершения загрузки приоритет отдается явному значению enableI18n.
Особенности SSG/SSR
При SSG первый цикл рендеринга пропускается, если значение enableI18n по умолчанию — false, поскольку при статической генерации нельзя определить состояние фича-флага во время выполнения.
Сейчас SSR ведёт себя аналогично, хотя в будущих релизах мы планируем добавить полноценную поддержку SSR для Next.js Pages Router. Для Next.js App Router используйте gt-next.