Config

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 的翻译。

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(内容分发网络)、数据库或应用的打包资源中加载翻译。 这些通常是机器生成的翻译,由 CLI(命令行界面)工具管理,不太适合直接由用户编辑。
  • loadDictionary 面向将 gt-react 作为独立库使用的场景。 用户自带翻译,不依赖任何翻译基础设施。

注意

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

后续步骤

本指南如何?