乐闻世界logo
搜索文章和话题

How to replace variables in i18next

4 个月前提问
4 个月前修改
浏览次数12

1个答案

1

i18next中替换变量主要是通过在翻译字符串中使用变量占位符,然后在翻译的时候传递具体的变量值来实现的。这样可以在不改变代码的情况下,只修改翻译文件来适应不同的语言环境或动态内容。以下是具体的步骤和例子:

步骤 1: 准备翻译文件

首先,在你的翻译资源文件中定义含有变量的翻译字符串。例如,假设你有一个英文翻译文件en/translation.json,内容如下:

json
{ "greeting": "Hello, {{name}}! You have {{count}} new messages." }

这里{{name}}{{count}}是将要被替换的变量。

步骤 2: 在代码中使用翻译

接着,在你的应用程序中使用i18next来获取这个带有变量的翻译字符串。你需要在获取翻译的时候传递相应的变量值:

javascript
import i18n from 'i18next'; i18n.init({ // 初始化配置... }); // 假设用户名称和消息数量是动态获取的 const userName = "John"; const userMessages = 5; const greeting = i18n.t('greeting', { name: userName, count: userMessages }); console.log(greeting); // 输出: Hello, John! You have 5 new messages.

示例解释

在这个例子中,i18n.t函数的第一个参数是翻译键'greeting',第二个参数是一个对象,其中包含了所有需要在翻译字符串中替换的变量。i18next会自动查找{{name}}{{count}}这样的占位符,并用提供的变量值替换它们。

小结

使用i18next管理变量的替换可以让你的应用支持多语言,并且能够动态地展示不同的数据。这种方式也使得代码更加简洁和易于管理,因为所有的文本内容都集中在翻译文件中,易于修改和更新。

2024年8月8日 15:09 回复

你的答案