我正在开发一个html模板并对其进行剖析(Suitecommerce Reference Impl更具体 - 一个带有网络功能的ERP解决方案)。
这是模板的摘录。
<li>
<a href="#" data-touchpoint="customercenter" data-hashtag="#ordershistory">
<%= _('Order History').translate() %>
</a>
</li>
普通html标签之间的%标签写在backbonejs和underscorejs中。
由于下划线函数采用_.function()形式,我不会得到_(&#39;字符串&#39;)。
任何主干/下划线开发人员都在那里?
答案 0 :(得分:1)
它看起来像一个翻译库,用于将文本翻译成用户浏览器中指定的语言,可能类似于this one?
在translate.js
的文档页面上,看起来您可以使用传统的underscore.js
样式调用该函数,或者您可以在下划线函数中发送主参数:
_.translate(text...)
- 这是主要的翻译功能,也是基础对象(即你可以调用_(text)
)。翻译第一个参数。如果使用多个参数调用,它将调用&#34;格式&#34;函数,第一个参数已翻译,后跟其他参数。
使用下划线功能(例如,see Django)访问翻译库是非常常见的惯例:translated_text = _('Text to translate')
我建议查看脚本以查看是否正在使用语言翻译库。
答案 1 :(得分:1)
当您致电_(obj)
时,Underscore会包裹obj
参数。然后可以在包装对象上调用任何Underscore方法,而无需修改obj
的原型。
您正在使用的其中一个库已将translate()
方法添加到Underscore原型中,而_(string).translate()
是在您的字符串上调用该方法的方法。
以下是以类似方式扩展Underscore的另一个示例:
_.mixin({
logToConsole: function(str) {
console.log(str)
}
})
_('text to log').logToConsole()
参考文献: