0

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

在我的应用程序中,我使用coffeescriptwith extension Craftyjs,虽然按钮和一些文本等某些内容已翻译,但其他内容尚未翻译。

没有翻译的一个例子是:

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>
"""

任何想法我可以做些什么来正确完成翻译?

4

1 回答 1

0

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

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

不是函数调用,它只是一个文字字符串。来自精美手册

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

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

因此#{...},不在单引号字符串内进行字符串插值,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>"
#...
于 2013-11-21T19:08:55.807 回答