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

How to use react-i18next < Trans > Component to display array elements?

1 个月前提问
1 个月前修改
浏览次数10

1个答案

1

在使用 react-i18next<Trans> 组件来显示数组元素时,主要的步骤包括设置好国际化资源文件,并在 React 组件中使用 <Trans> 标签来正确引用这些数组元素。这里我将通过一个具体的例子来展示如何实现这一功能。

步骤 1: 设置 i18n 配置

首先,确保已经安装了 react-i18next。然后,需要配置 i18n 实例并初始化它,如下所示:

javascript
import i18n from 'i18next'; import { initReactI18next } from 'react-i18next'; i18n .use(initReactI18next) // passes i18n down to react-i18next .init({ resources: { en: { translation: { items: ["Item 1", "Item 2", "Item 3"] } }, zh: { translation: { items: ["项目1", "项目2", "项目3"] } } }, lng: "en", // 可以设置为 "zh" 试试 fallbackLng: "en", interpolation: { escapeValue: false } }); export default i18n;

步骤 2: 使用 <Trans> 组件显示数组元素

接下来,在 React 组件中,你可以使用 <Trans> 组件来引用并显示数组中的元素。例如:

javascript
import React from 'react'; import { useTranslation, Trans } from 'react-i18next'; function ItemList() { const { t } = useTranslation(); return ( <ul> {t('items', { returnObjects: true }).map((item, index) => ( <li key={index}> <Trans>{item}</Trans> </li> ))} </ul> ); } export default ItemList;

在这个例子中,t 函数用于获取 items 数组,并将其作为对象返回。然后我们遍历这个数组,并使用 <Trans> 组件来显示每个元素。这保证了文本可以根据当前语言环境进行正确的翻译。

注意事项

  • 确保你的翻译文件(如上面例子中的英文和中文资源文件)中的数组和对象结构清晰且正确。
  • 使用 <Trans> 组件时,如果文本中包含 HTML 标记或需要进一步处理,它可以帮助保留这些标记或结构。

通过以上步骤,你可以有效地使用 react-i18next<Trans> 组件来显示数组中的元素,并根据不同的语言环境进行适当的翻译。

2024年8月8日 16:20 回复

你的答案