【问题标题】:Translating app with i18next使用 i18next 翻译应用程序
【发布时间】:2013-12-05 15:12:45
【问题描述】:

我正在使用 i18next 翻译我的应用,但它只翻译了应用的一部分。

在我的应用程序中,我使用带有扩展名 Craftyjscoffeescript,虽然按钮和文本等某些内容已翻译,但其他内容尚未翻译。

没有翻译的一个例子是:

btnLearn.replace '<div id="learn-mode" class="learw">#{__("LEARN HERE")}</div>'

但这确实翻译得很好:

btnWrapper.replace """
  <div class="btn-golden" id="teach"><i class="btn-goldenw"></i><span class="btn-goldenw-body">#{__("&nbsp;TEACH HERE&nbsp;")}</span><i class="btn-goldenw-right"></i></div>
"""

有什么想法可以让翻译正确完成吗?

【问题讨论】:

    标签: javascript coffeescript craftyjs i18next


    【解决方案1】:

    我怀疑问题出在__("LEARN HERE")里面:

    '<div id="learn-mode" class="learw">#{__("LEARN HERE")}</div>'
    

    不是函数调用,它只是一个文字字符串。来自fine manual

    字符串插值、块字符串和块注释

    CoffeeScript 中包含 Ruby 风格的字符串插值。双引号字符串允许插入值,使用#{ ... },而单引号字符串是文字。

    所以#{...} 不会在单引号字符串中进行字符串插值,I18N 工具需要查看__("LEARN HERE") 调用。更改引号以允许字符串插值,事情应该会更好:

    btnLearn.replace "<div id=\"learn-mode\" class=\"learw\">#{__("LEARN HERE")}</div>"
    btnLearn.replace "<div id='learn-mode' class='learw'>#{__("LEARN HERE")}</div>"
    #...
    

    【讨论】:

      猜你喜欢
      • 2019-10-04
      • 2012-10-11
      • 2021-01-29
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      相关资源
      最近更新 更多