gt-react@10.8.0
Обзор
В gt-react 10.8.0 мы добавили поддержку feature flag через поле 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.