loadTranslations
loadTranslations() 函数的 API 参考
概览
使用 loadTranslations 来指定翻译的加载方式。
在生产环境中,应用默认会从 GT CDN(内容分发网络)加载翻译。
你也可以提供一个 loadTranslations 函数,从其他来源加载翻译,例如:
- 来自应用的打包产物(最常见)
- 来自数据库
- 来自 API
- 来自其他 CDN
我们已内置支持从应用打包产物中的本地文件加载翻译。 请按照本指南在你的 Next.js 应用中设置本地翻译。
如果你希望手动定义自己的翻译,请查看自定义翻译指南
和 loadDictionary 函数。
参考资料
参数
Prop
Type
描述
| 类型 | 描述 | 
|---|---|
| locale | 需要加载其翻译的 locale。 | 
返回
一个 Promise<any>,解析后得到一个字典,在给定的 locale 下将 id 映射到对应的翻译。
设置
将 loadTranslations 定义为文件 loadTranslations.js 或 loadTranslations.ts 的默认导出,该文件可位于 src/ 目录或项目根目录。
请确保该函数返回一个 Promise,解析后得到一个对象,其中包含针对指定 locale 的翻译内容。
export default async function loadTranslations(locale) {
  const translations = await import(`../public/locales/${locale}.json`);
  return translations.default;
};如果你想使用不同的名称或路径,可在 withGTConfig 中通过 loadTranslationsPath 参数传入相对路径。
示例
从应用包中获取翻译
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(内容分发网络)、数据库或应用的 bundle 中拉取翻译。 这些通常是由 CLI 工具管理的机器生成翻译,不太适合由用户直接编辑。
- loadDictionary适用于将- gt-next作为独立库使用的场景。 用户自备翻译,不依赖任何翻译基础设施。
注意
- loadTranslations允许你在生产环境中自定义应用的翻译加载方式。
- 最常见的用法是添加本地翻译
下一步
这份指南怎么样?

