我遇到的问题是翻译包里有这样的东西:
"toBeTranslated":{
"text": "Lorem ipsum dolor sit amet, <%=ejsVariable%> consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
}
ejs变量里面的包含“Hello World !!”在ejs模板中我得到了这样的东西:
<th><%=t("toBeTranslated.text")%></th>
当我访问我的网页时,我得到的文字完全相同:
“Lorem ipsum dolor sit amet,&lt;%= ejsVariable%&gt; consectetur adipiscing elit,sed ......”
我真正需要的是这样的事情:
“Lorem ipsum dolor sit amet, Hello World !! consectetur adipiscing elit,sed ......”
有没有办法让ejs或i18next使用“&lt;%= ejsVariable%&gt;”的值而不是将其写成纯文本而不将其从翻译包中删除?
答案 0 :(得分:0)
为了使ejs能够识别变量,你必须像这样执行代码:
替换变量&lt;%= ejsVariable%&gt;对于 ejsVariable (现在这是一个i18next变量)
"toBeTranslated":{
"text": "Lorem ipsum dolor sit amet, __ejsVariable__ consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."}
并在调用t函数时调用它:
t("toBeTranslated.text", {ejsVariable: ejsVariable})
这应该替换ejs变量,然后用它的值替换i18next变量