Назад

gt-react@10.8.0

Ernest McCarter avatarErnest McCarter
gt-react10.8.0feature flagsi18ntranslation

Обзор

В 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.