Config

loadTranslations

loadTranslations() 函数的 API 参考

概览

loadTranslations 函数是自定义翻译加载行为的主要方式。

在生产环境中,需要存储你的翻译以便在应用中渲染。 默认情况下,你的翻译会存储在 GT 的 CDN(内容分发网络)中。 你可以指定 loadTranslations 函数从其他来源获取翻译,例如:

  • 来自应用的 bundle(最常见)
  • 来自数据库
  • 来自 API
  • 来自其他 CDN(内容分发网络)

我们已内置支持:可从应用 bundle 中的本地文件加载翻译。 请按照本指南在 React 应用中设置本地翻译(local translations)。

参考资料

参数

Prop

Type

描述

类型描述
locale需要加载其翻译的 locale。

返回值

一个 Promise<any>,其解析结果为字符串,或是包含指定 locale 对应翻译内容的 JSX 对象。


设置

必须导入 loadTranslations 函数,并将其作为 prop 传递给 <GTProvider> 组件。

src/index.js
import loadTranslations from './loadTranslations';

createRoot(document.getElementById("root")!).render(
  <StrictMode>
    <GTProvider locales={['es', 'fr']} loadTranslations={loadTranslations}> // [!code highlight]
      <App />
    </GTProvider>
  </StrictMode>
);

示例

从本地文件加载翻译

当配置为使用本地翻译时,运行gtx-cli translate命令后,翻译将保存到./src/_gt目录。

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

从你自己的 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 允许你在生产环境中自定义应用的翻译加载方式。
  • 最常见的用例是添加 local translations

下一步

本指南如何?