gpt4 book ai didi

internationalization - 如何使用 r.js 和 hbs.js 使用多个语言环境

转载 作者:行者123 更新时间:2023-12-04 08:22:53 25 4
gpt4 key购买 nike

我有一个项目,其中使用了 require.js 和 hbs.js(require-handlebars-plugin)等。在我的开发环境中一切正常,但在我使用 r.js(requirejs 优化)优化项目后,我遇到了问题。

也就是说;因为 hbs.js 只预编译一个语言环境,所以整个 i18n 逻辑都被破坏了,不再可能更改语言环境。我怀疑我必须以某种方式为每个语言环境做优化过程,但我看不出如何做。如果有人可以分享他们对这个问题的解决方案,那就太好了

谢谢!

最佳答案

好的,我是这样解决的:

首先,我为每种语言创建了一个 require.js Bootstrap 文件。然后我修改了我的 maven pom.xml 以执行两次 javascript 优化,每个区域设置一次。我使用了带有两个执行元素的 requirejs-maven-plugin,一个用于每个语言环境。每个元素都有一个指向相应 r.js 构建文件的 configFile 值。 (每种语言一个)。然后,语言环境的构建文件指向该语言的 Bootstrap 文件。

运行优化后,您现在将拥有每个语言环境的丑化 js 文件。但很可能这些都没有包含在最终的 war 文件中。您必须将 r.js build_out 文件夹中的丑化文件复制到 war 中。我通过向 maven-war-plugin 添加配置元素来做到这一点; warSourceDirectory 和 webResources 复制我的两个语言环境。我还使用 webSourceInclude 和 webSourceExlude 删除了我不需要的文件。

最后一步是在加载站点时加载正确的 require bootstrap 文件。要做到这一点,只需在您的 index.html 中创建一个 javascript 片段,它首先确定您的语言环境(例如来自 cookie),然后动态加载引导文件

document.write("<script data-main='bootstrap_" + getLocaleString() + "' src='/js/lib/require.js'><\/script>");

感谢https://github.com/SlexAxton/require-handlebars-plugin的作者|帮助我解决这个问题。

关于internationalization - 如何使用 r.js 和 hbs.js 使用多个语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16251771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com