Config

loadTranslations

loadTranslations() 函数的 API 参考

概览

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

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

  • 来自应用的 bundle(最常见)
  • 来自数据库
  • 来自 API
  • 来自其他 CDN

我们已内置对从应用 bundle 的本地文件加载翻译的支持。 请按照本指南在 React 应用中配置本地翻译。

参考资料

参数

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 让你可以在生产环境中自定义应用的翻译加载方式。
  • 最常见的用例是添加本地翻译

后续步骤

这份指南怎么样?

loadTranslations