3

我正在尝试本地化我的 Javascript 文件。例如,我会:

var count = 0;
$('#choices .choice').each(function(i) {
    $('input', this).each(function() {
        count++
        $(this).attr('placeholder', '@Message("placeholder.choice") ' + count)
    })
})

如果 Javascript 文件位于 Scala HTML 模板中,这显然会起作用,但我更愿意将它放在专用文件中。

首先,我想知道这是否是一个好主意:如果文件的内容可能发生变化,那么缓存文件怎么办?在这种情况下,只有一个参数:在 URL 中包含它会解决这个问题吗?例如:/assets/javascripts/:lang/my-file.js

真正的问题是:使用 Play 是否可以做到这一点!框架?似乎不支持 Javascript 模板(或者我错过了一些东西)。有没有办法正确地做到这一点?

4

2 回答 2

1

实际上你不需要动态地翻译你的 JavaScript,这会浪费资源,而是准备静态的 JS 文件,如等messages.en.jsmessages.de.js并将基于用户语言的所需文件直接包含到视图中。

Here你有一些描述如何让它变得简单(JavaScript方法)

于 2013-04-02T12:30:14.590 回答
1

有一个模块允许使用与 Play 模板中相同的机制进行 javascript 国际化,请查看: https ://github.com/julienrf/play-jsmessages

这绝对符合您的需求。我用了一段时间就知道成功了。您可以通过 javascript 文件公开您的翻译,然后使用具有适当指纹配置的浏览器缓存。

于 2015-03-10T05:49:34.977 回答