Grunt:用多种语言编译页面(翻译)

时间:2014-04-15 21:14:50

标签: node.js gruntjs

我有一个非常简单的问题,但仍无法找到任何解决方案。 我的网站应该在两个不同的文件夹中以2种语言“发布”(= grunt发布)。

我的想象

index.html

<!DOCTYPE html>
<html>
<body>
    <. hello_world />
</body>
</html>

translation.json

translation: [
    hello_world: [
        en: "Hello World!",
        de: "Hallo Welt!"
    ]
]

然后应编译为

en/index.html

<!DOCTYPE html>
<html>
<body>
    Hello World!
</body>
</html>

de/index.html

<!DOCTYPE html>
<html>
<body>
    Hallo Welt!
</body>
</html>

有谁知道这样一个笨拙的任务?

3 个答案:

答案 0 :(得分:0)

对任何有兴趣做同样事情的人来说,有angular-gettext / grunt-angular-gettext可以做到这一点。

我最后选择了angular-translate,因为它只编译了1个版本的网站,包括所有语言,这意味着用户可以在运行时更改语言。

答案 1 :(得分:0)

我没有看到任何可以做到这一点的现成解决方案。您可以使用grunt-angular-gettext extractcompile任务将所有需要翻译的字符串拉出来并制作所需的json文件。

但是我找不到任何可以编译html并为你插入翻译的内容。大部分代码都存在于angular-gettext project中。您需要修改它并在任务中运行代码,而不是在运行时以角度运行。

如果您使用此路线,您的index.html可能如下所示:

<!DOCTYPE html>
<html>
<body>
    <span translate>Hello World!</span>
</body>
</html>

加载字符串的代码位于setStrings herecatalog.js函数中,检索字符串的函数名为getString

不是一个理想的解决方案,但它是一些东西。

答案 2 :(得分:0)

我找到了一个执行此操作的繁琐任务: https://github.com/claudetech/grunt-i18n-static