loadTranslations
Справочная информация по API функции loadTranslations().
Обзор
Используйте loadTranslations, чтобы задать поведение загрузки переводов.
По умолчанию в продакшене ваше приложение будет загружать переводы из GT CDN.
Вы можете указать функцию loadTranslations, чтобы загружать переводы из другого источника, например:
- из бандла вашего приложения (самый распространённый вариант)
- из базы данных
- из API
- из другого CDN
Мы встроили поддержку загрузки переводов из локальных файлов в бандле вашего приложения. Следуйте этому руководству, чтобы настроить локальные переводы в приложении на Next.js.
Если вы хотите вручную задать собственные переводы, ознакомьтесь с руководством по пользовательским переводам
и функцией loadDictionary.
Справка
Параметры
Prop
Type
Описание
| Тип | Описание |
|---|---|
locale | Локаль, для которой нужно загрузить переводы. |
Возвращает
Promise<any>, который разрешается в словарь, отображающий идентификаторы на переводы для указанной локали.
Настройка
Определите loadTranslations как экспорт по умолчанию в файле loadTranslations.js или loadTranslations.ts в каталоге src/ или в корне.
Убедитесь, что функция возвращает промис, который разрешается в объект с переводами для указанной локали.
export default async function loadTranslations(locale) {
const translations = await import(`../public/locales/${locale}.json`);
return translations.default;
};Если нужно использовать другое имя или путь, передайте относительный путь через параметр loadTranslationsPath в withGTConfig.
Примеры
Получение переводов из вашего бандла
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
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 {};
}
};Загружайте переводы из собственной базы данных
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позволяет настраивать загрузку переводов в приложении в продакшене.- Самый распространённый сценарий — добавление локальных переводов
Дальнейшие шаги
- Узнайте, зачем использовать локальные переводы
- Добавьте свои переводы по руководству по кастомным переводам
Насколько полезно это руководство?