Javascript 使用i18next(占位符、值)转换自定义属性

Javascript 使用i18next(占位符、值)转换自定义属性,javascript,localization,globalization,i18next,Javascript,Localization,Globalization,I18next,我正在调查本地化库的可行性 现在我有以下代码(): HTML <div data-i18n="title"></div> <input placeholder="Hello" value="name"> <div class="holder"></div> <button class="lang" data-lang="en">Eng</button> <button class="lang" data-l

我正在调查本地化库的可行性

现在我有以下代码():

HTML

<div data-i18n="title"></div>
<input placeholder="Hello" value="name">
<div class="holder"></div>
<button class="lang" data-lang="en">Eng</button>
<button class="lang" data-lang="ch">Chi</button>
它翻译所有
文本
元素,但问题是我无法翻译
自定义属性
。例如,div中的文本被翻译,但我不明白如何翻译自定义属性,如
占位符

另一个问题是我的翻译方式。无论何时单击按钮
Chi
Eng
,我都会初始化翻译(但我不确定这是否正确)Edit我想我找到了解决这个问题的方法(我需要使用setLng):
i18n.setLng(lang,function(t){…})

在直接问了这个问题之后,我收到了一个提示:我只需要将我的自定义属性放在translation元素前面。以下是一个例子:

<div data-i18n="[title]titleTransl"></div>
<input data-i18n="[placeholder]placeTransl" value="name">

如果需要多个属性,则用
将它们分开

我从中学到了两件事:

  • 我必须阅读更好的文档
  • 118next的创建者真的很有帮助(这是对他的一句感谢话)

    • 对我来说,以下几点奏效了

      <input data-i18n="[placeholder]placeTransl" value="name">
      
      
      
      因此,只需在[]和翻译之间输入属性名称。

      考虑调用

      $('body').i18n()
      
      函数的内部。你应该告诉在哪里可以找到航向仪。
      无需调用data-i18n属性中的[占位符]即可完成此操作。

      哦,对不起,我没有得到您的答案。我必须使用data-i18n属性才能让它工作。哦,对不起,我没有注意到你的答案是不同的。真的很抱歉+1没问题!你的回答为我指明了正确的方向,所以谢谢!我知道已经有一段时间了,但这似乎不再有效了。有人还在成功地使用它吗?假设我们有这样的东西:
      Country
      ,那么我们如何翻译
      Country
      ?@AjayKulkarni在您的示例中,Country不是一个属性。是的,所以我尝试了以下代码:
      Country
      $('.\35; Country')。text($.t('app.country');
      。效果不错!我原以为这会是长篇大论和烦琐的
      $('body').i18n()