如何使用 react-i18next 通过不同的 javascript 文件更改语言?
How to use react-i18next to change language by different javascript file?
我最近编写了一个开源项目Poker Coder。
每张卡片的介绍都英译成中文后,我找不到使用react-i18next切换语言的好方法。
在React i18next的官方文档中,每个例子都是public/locales/xx/translation.json
写的一个简单的json文件,但是我想加载不同的语言配置JavaScript src
中的文件像这样的文件结构:
# src/poker
.
├── index.ts
└── poker-coder
├── cn
│ ├── club.ts
│ ├── diamond.ts
│ ├── heart.ts
│ ├── joker.ts
│ └── spade.ts
└── en
├── club.ts
├── diamond.ts
├── heart.ts
├── joker.ts
└── spade.ts
我能做什么?如果有人能帮助我,我将不胜感激:)
你需要调用i18n.changeLanguage(value); //value 可以是 'es' 或 'en' 取决于您希望在网站上显示的语言。然后此 changeLanguage() 方法将调用 i18n 配置文件,该文件将进一步调用您已输入翻译文本的翻译文件。
In the official document of React i18next, every example is just a simple json file written in public/locales/xx/translation.json, but I want to load language config by different JavaScript files
让我们澄清一下 - 你想使用一些包但不是以它的工作方式?很简单 - 只需分叉它并根据您的需要进行更改!
你不觉得你的流程有问题吗?
您应该先检查 i18next 要求,然后再准备翻译。
...不过你很幸运...i18next 非常灵活
- 对于小型项目,您可以导入(硬编码、编译)所有翻译 - docs 第 1b 点的方法 - 只需从任何地方导入所有文件(源路径) - 根据翻译更改重新编译整个应用程序
- 要在 运行 时单独 加载,您必须在公开路径
中提供 .json 文件翻译
对于第二种方法中需要的文件转换,您可以使用 babel (babel-plugin-i18next-extract),但配置它可能更难。
我最近编写了一个开源项目Poker Coder。
每张卡片的介绍都英译成中文后,我找不到使用react-i18next切换语言的好方法。
在React i18next的官方文档中,每个例子都是public/locales/xx/translation.json
写的一个简单的json文件,但是我想加载不同的语言配置JavaScript src
中的文件像这样的文件结构:
# src/poker
.
├── index.ts
└── poker-coder
├── cn
│ ├── club.ts
│ ├── diamond.ts
│ ├── heart.ts
│ ├── joker.ts
│ └── spade.ts
└── en
├── club.ts
├── diamond.ts
├── heart.ts
├── joker.ts
└── spade.ts
我能做什么?如果有人能帮助我,我将不胜感激:)
你需要调用i18n.changeLanguage(value); //value 可以是 'es' 或 'en' 取决于您希望在网站上显示的语言。然后此 changeLanguage() 方法将调用 i18n 配置文件,该文件将进一步调用您已输入翻译文本的翻译文件。
In the official document of React i18next, every example is just a simple json file written in public/locales/xx/translation.json, but I want to load language config by different JavaScript files
让我们澄清一下 - 你想使用一些包但不是以它的工作方式?很简单 - 只需分叉它并根据您的需要进行更改!
你不觉得你的流程有问题吗?
您应该先检查 i18next 要求,然后再准备翻译。
...不过你很幸运...i18next 非常灵活
- 对于小型项目,您可以导入(硬编码、编译)所有翻译 - docs 第 1b 点的方法 - 只需从任何地方导入所有文件(源路径) - 根据翻译更改重新编译整个应用程序
- 要在 运行 时单独 加载,您必须在公开路径 中提供 .json 文件翻译
对于第二种方法中需要的文件转换,您可以使用 babel (babel-plugin-i18next-extract),但配置它可能更难。