【发布时间】:2023-08-04 18:55:01
【问题描述】:
我的翻译数据有 2 个 JSON 文件 -> EN 文件和 FR 文件。
我正在使用 react-i18next 以这种方式处理我的翻译,效果很好,但由于我有可重复的组件,我需要映射/循环翻译以获得正确的输出
示例
zh:
export const EN = {
page1: {
section1 {
titles: {
title1: "title1_name",
title2: "title2_name",
title3: "title3_name"
},
buttons: {
button1 : "button1_name",
button2 : "button2_name",
button3 : "button3_name",
}
}
section2 { THE SAME AS SECTION 1 }
section3 { THE SAME AS SECTION 1 }
page2 { SAME AS PAGE 1 }
同样的事情也适用于 FR 文件(用法语翻译代替)
如何实现从 section1 和 page1 映射所有例如标题。使用map() 是否正确?
现在我的解决方案是使用{t page1.section1.0.titles.title1},它当然会在任何地方打印相同的标题 - 在本例中为 title1_name
使用电流输出 {t page1.section1.0.titles.title1} :
slider1:title1_name
slider2:title1_name
滑块3:title1_name
滑块4:title1_name 以此类推……
预期输出:
slider1:title1_name,button1_name
滑块2:title2_name,button2_name
slider3:title4_name,button3_name
slider4: title4_name, button4_name
【问题讨论】:
-
嘿艾略特,你需要
EN.page2与EN.page1相同吗? -
@jburtondev 不,这只是使其更短的示例-解释我的 json 文件结构。我需要打印出 page1 和 section1 中的所有标题 - 你可以看到我正在使用 useTranslation 中的 { t } 所以我现在正在打印它
{t page1.section1.0.titles.title1}但这只是到处打印 title1_name -
好的,请在您的问题中添加预期的输出对象,然后我就可以添加答案了。
-
我更新了我的帖子,如果没有意义请告诉我
-
好的,现在看看。
标签: reactjs typescript next.js react-i18next