Config

loadTranslations

Справочная информация по API функции loadTranslations().

Обзор

Используйте loadTranslations, чтобы задать поведение загрузки переводов. По умолчанию в продакшене ваше приложение будет загружать переводы из GT CDN. Вы можете указать функцию loadTranslations, чтобы загружать переводы из другого источника, например:

  • из бандла вашего приложения (самый распространённый вариант)
  • из базы данных
  • из API
  • из другого CDN

Мы встроили поддержку загрузки переводов из локальных файлов в бандле вашего приложения. Следуйте этому руководству, чтобы настроить локальные переводы в приложении на Next.js.

Если вы хотите вручную задать собственные переводы, ознакомьтесь с руководством по пользовательским переводам и функцией loadDictionary.

Справка

Параметры

Prop

Type

Описание

ТипОписание
localeЛокаль, для которой нужно загрузить переводы.

Возвращает

Promise<any>, который разрешается в словарь, отображающий идентификаторы на переводы для указанной локали.


Настройка

Определите loadTranslations как экспорт по умолчанию в файле loadTranslations.js или loadTranslations.ts в каталоге src/ или в корне. Убедитесь, что функция возвращает промис, который разрешается в объект с переводами для указанной локали.

src/loadTranslations.js
export default async function loadTranslations(locale) {
  const translations = await import(`../public/locales/${locale}.json`);
  return translations.default;
};

Если нужно использовать другое имя или путь, передайте относительный путь через параметр loadTranslationsPath в withGTConfig.


Примеры

Получение переводов из вашего бандла

src/loadTranslations.js
export default async function loadTranslations(locale) {
  const translations = await import(`../public/locales/${locale}.json`);
  return translations.default;
};

При использовании локальных переводов команда gtx-cli translate будет сохранять переводы в файловой структуре вашего проекта.

npx gtx-cli translate

Загрузка переводов из CDN

loadTranslations.js
export default async function loadTranslations(locale) {
  try {
    const translations = await fetch(`https://your-cdn.com/translations/${locale}.json`);
    const data = await translations.json();
    return data;
  } catch (e) {
    console.error(e);
    return {};
  }
};

Загружайте переводы из собственной базы данных

loadTranslations.js
export default async function loadTranslations(locale) {
  try {
    const translations = await prisma.translation.findUnique({
      where: {
        locale: locale,
      },
    });
    return translations;
  } catch (e) {
    console.error(e);
    return {};
  }
};

Вопрос: В чем разница между loadTranslations и loadDictionary?

  • loadTranslations используется для определения кастомной логики загрузки переводов для вашего приложения. Источником могут быть CDN, база данных или бандл приложения. Обычно это машинно сгенерированные переводы, управляемые CLI‑инструментом, и редактировать их неудобно.
  • loadDictionary предназначен для использования gt-next как самостоятельной библиотеки. Пользователи подключают собственные переводы и не используют никакую инфраструктуру для перевода.

Примечания

  • loadTranslations позволяет настраивать загрузку переводов в приложении в продакшене.
  • Самый распространённый сценарий — добавление локальных переводов

Дальнейшие шаги

Насколько полезно это руководство?

loadTranslations