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

Google Closure Templates为每种语言生成多个JavaScript文件,而不是使用单独的资源文件生成单个JavaScript代码库,javascript,code-generation,locale,multilingual,google-closure,Javascript,Code Generation,Locale,Multilingual,Google Closure,我正在使用Google闭包模板,以便使用JavaScript编写应用程序的UI。关于我为什么使用Google闭包模板的详细原因。我希望它是多语言的。我看到有一个--locales开关,还查看了项目和中提供的示例。在README_FOR_示例文件中写到 +简单生成的\u en.js,功能生成的\u en.js, 简单生成的功能生成的功能 SoyToJsSrcCompiler在执行时生成的JS文件 在simple.soy和features.soy上(区域设置为'en'和'x-zz',带有来自共享示例

我正在使用Google闭包模板,以便使用JavaScript编写应用程序的UI。关于我为什么使用Google闭包模板的详细原因。我希望它是多语言的。我看到有一个
--locales
开关,还查看了项目和中提供的示例。在README_FOR_示例文件中写到

+简单生成的\u en.js,功能生成的\u en.js,
简单生成的功能生成的功能 SoyToJsSrcCompiler在执行时生成的JS文件 在simple.soy和features.soy上(区域设置为'en'和'x-zz',带有来自共享示例目录'examples'的已翻译XLIFF文件以及上述编译时全局设置 文件)。我们需要simple.soy和features.soy,因为features.soy中的一些模板调用simple.soy中的模板。 注意:对于示例Ant目标(和命令行参数) 生成这些文件,请参阅顶级“build.xml”中的目标“js功能示例”


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

据我所知,您可以使用dictionary对象作为模板的参数

/**
 * @param dict
 */
{template .example}
    <h1>{$dict.title}</h1>
    <div>{$dict.content}</div>
{/template}
/**
*@param dict
*/
{template.example}
{$dict.title}
{$dict.content}
{/template}
这个对象可以从您的语言环境文件在服务器端生成,并通过脚本标记传输到javascript

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


还有,但这对你的问题没什么用,依我看,你可以使用dictionary对象作为模板的参数

/**
 * @param dict
 */
{template .example}
    <h1>{$dict.title}</h1>
    <div>{$dict.content}</div>
{/template}
/**
*@param dict
*/
{template.example}
{$dict.title}
{$dict.content}
{/template}
这个对象可以从您的语言环境文件在服务器端生成,并通过脚本标记传输到javascript

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


还有,但这对你的问题没什么用,我想。

你能把我链接到关于字典对象的文档吗?好的,我知道了。普通JavaScript对象就可以了。虽然现在的问题是HTML使用
soy.$$escapeHtml(opt_data.title)
转义它,但对我来说,字符串中可能有HTML位。有什么想法吗?好的!我也发现了。如果我的模板中有
{$dict.content | noAutoescape}
,那么我可以在
内容中传递HTML,它不会被转义,即
是,字典对象=普通javascript对象。此外,如果您需要比noAutoescape更强大的功能,您可以编写自己的模板函数(),谢谢@Mironor,现在noAutoescape就可以了,而且我们正在开发Microsoft技术堆栈,没有太多java技能。我希望我们不需要创建任何插件。我只是使用闭包模板来轻松地获取JavaScript,以便从设计师提供的HTML中绘制DOM。您能将我链接到有关dictionary对象的文档吗?好的,我得到了。普通JavaScript对象就可以了。虽然现在的问题是HTML使用
soy.$$escapeHtml(opt_data.title)
转义它,但对我来说,字符串中可能有HTML位。有什么想法吗?好的!我也发现了。如果我的模板中有
{$dict.content | noAutoescape}
,那么我可以在
内容中传递HTML,它不会被转义,即
是,字典对象=普通javascript对象。此外,如果您需要比noAutoescape更强大的功能,您可以编写自己的模板函数(),谢谢@Mironor,现在noAutoescape就可以了,而且我们正在开发Microsoft技术堆栈,没有太多java技能。我希望我们不需要创建任何插件。我只是使用闭包模板来轻松地获取JavaScript,以便从设计师提供的HTML中绘制DOM。