Config

loadDictionary

loadDictionary() 函数的 API 参考

概览

loadDictionary 会为指定的 locale 加载一个翻译 JSON 文件。

此函数适用于希望将 gt-react 作为独立 i18n 库使用的用户。

该函数主要用于在保留现有翻译的前提下,将已使用 i18n 的现有项目迁移到 General Translation(GT)。

当存在多份翻译时,通过 loadDictionary 加载的 dictionaries 中的翻译将始终优先于其他来源。 loadDictionary 仅支持包含字符串翻译的 JSON 文件。

参考资料

参数

Prop

Type

描述

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

返回

一个 Promise<any>,解析后得到一个字典,将 id 映射到给定 locale 的翻译。


设置

通常,你会从 ./public/locales 目录加载字典。

在某个文件中定义你的 loadDictionary。 请确保该函数返回一个 Promise,解析为包含指定 locale 对应翻译的对象。

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

然后将其传递给你的 <GTProvider> 组件:

src/App.js
import { GTProvider } from 'gt-react';
import loadDictionary from './loadDictionary';

<GTProvider loadDictionary={loadDictionary}>
  <App />
</GTProvider>

问题: loadTranslationsloadDictionary 有什么区别?

  • loadTranslations 用于为你的应用定义获取翻译的自定义加载逻辑。 例如可从 CDN(内容分发网络)、数据库或应用的 bundle 中加载翻译。 这些通常是由 CLI 工具管理的机器生成译文,编辑体验对普通用户不太友好。
  • loadDictionary 适用于将 gt-react 作为独立库使用的场景。 用户自备译文,不依赖任何翻译基础设施。

注意

  • loadDictionary 用于为你的应用加载自定义翻译。
  • 通过 loadDictionary 加载的 dictionaries 将优先于通过 loadTranslations 加载的翻译生效。

后续步骤

这份指南怎么样?

loadDictionary