Google Closure Templates为每种语言生成多个JavaScript文件,而不是使用单独的资源文件生成单个JavaScript代码库

时间:2011-08-10 09:15:00

标签: javascript code-generation locale multilingual google-closure

我正在使用Google Closure Template来使用JavaScript编写应用程序的UI。 Look at this question了解我为何使用Google Closure Template的详细原因。我希望它是多语言的。我看到有一个--locales开关,还查看了项目herehere中提供的示例。在README_FOR_EXAMPLES文件中写入

  

+ simple_generated_en.js,features_generated_en.js,
  simple_generated_x-zz.js,features_generated_x-zz.js       SoyToJsSrcCompiler执行时生成的JS文件   on simple.soy和features.soy(locales是'en'和'x-zz',带有来自共享示例目录'examples'的翻译后的XLIFF文件以及上面的编译时全局变量   文件)。我们需要simple.soy和features.soy,因为features.soy中的一些模板在simple.soy中调用模板。       注意:对于示例Ant目标(和命令行args)   生成这些文件,请在顶级'build.xml'中查看目标'js-features-example'。

我所期望的是它只生成一个JavaScript代码库,它将根据在调用模板函数之前在运行时提供的选项,使用相应语言环境文件中的所需字符串。封闭模板可以实现吗?

1 个答案:

答案 0 :(得分:1)

据我所见,您可以使用词典对象作为模板的参数。

/**
 * @param dict
 */
{template .example}
    <h1>{$dict.title}</h1>
    <div>{$dict.content}</div>
{/template}

此对象可以在服务器端从您的语言环境文件生成,并通过脚本标记转移到javascript。

否则,您可以根据区域设置将不同的已编译模板文件加载到客户端。

还有i18n possibility,但它对你的问题有点无用,imo。