loadDictionary
loadDictionary() 函数 API 参考。
概览
loadDictionary 会为指定的 locale 加载一个翻译 JSON 文件。
此函数适用于希望将 gt-react 作为独立 i18n 库使用的用户。
此函数主要用于在保留现有翻译的前提下,将已有 i18n 项目迁移到 General Translation。
如果存在多个翻译,由 loadDictionary 加载的字典中的翻译将始终优先于其他翻译。
loadDictionary 仅支持使用仅包含字符串翻译的 JSON 文件。
参考资料
参数
Prop
Type
描述
| 类型 | 说明 |
|---|---|
locale | 要加载其翻译内容的 locale。 |
返回值
一个 Promise<any>,其解析结果为一个字典,将 id 映射到指定 locale 的翻译。
设置
通常你会从 ./public/locales 目录加载字典。
在某个文件中定义你的 loadDictionary。
确保该函数返回一个 Promise,该 Promise 解析为一个对象,包含指定 locale 的翻译。
export default async function loadDictionary(locale) {
const translations = await import(`../public/locales/${locale}.json`);
return translations.default;
}然后将它传递给你的 <GTProvider> 组件:
import { GTProvider } from 'gt-react';
import loadDictionary from './loadDictionary';
<GTProvider loadDictionary={loadDictionary}>
<App />
</GTProvider>问题: loadTranslations 和 loadDictionary 有何区别?
loadTranslations用于为你的应用定义获取翻译的自定义加载逻辑。 可以从 CDN(内容分发网络)、数据库或应用的打包资源中加载翻译。 这些通常是机器生成的翻译,由 CLI(命令行界面)工具管理,不太适合直接由用户编辑。loadDictionary面向将gt-react作为独立库使用的场景。 用户自带翻译,不依赖任何翻译基础设施。
注意
loadDictionary用于为你的应用加载自定义翻译。- 通过
loadDictionary加载的字典将优先于通过loadTranslations加载的翻译。
后续步骤
- 如果你想自行编写翻译,请参阅自定义翻译。
- 参见
loadTranslations以了解更多编写自定义翻译加载器的内容。
本指南如何?