我正在使用i18next翻译我的应用,但它只翻译了部分应用。
在我的应用中,我使用coffeescript
扩展名为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">#{__(" TEACH HERE ")}</span><i class="btn-goldenw-right"></i></div>
"""
我能做些什么来正确完成翻译?
答案 0 :(得分:0)
我怀疑问题在于__("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>"
#...