【问题标题】:How to internationalize Javascript Content with Spring I18N?如何使用 Spring I18N 国际化 Javascript 内容?
【发布时间】:2014-09-11 07:03:40
【问题描述】:
在构建 Spring MVC WebApp 时,如何国际化位于 Javascript 文件中的字符串?
我正在使用<spring:message code="label1" /> 对 JSP 文件中的一些静态字符串进行国际化,但是例如我的 js 文件中的错误消息呢?有没有办法在jsp文件中不包含纯js代码的情况下解决国际化问题?
我考虑过创建一个值列表,每个错误一个,并在页面刷新时继续进行 ajax 调用,这样我就可以根据 lang 变量的值获取正确的消息,但是这样做明智吗?!
【问题讨论】:
标签:
spring
spring-mvc
internationalization
【解决方案1】:
将这段代码包含在一些常见的jsp中,比如header.jsp。
<script type="text/javascript">
function getSystemLocale() {
var systemLocale ='<%=RequestContextUtils.getLocale(request)%>';
return systemLocale;
}
function getResource(){
jQuery.i18n.properties({
name:'JS_Messages',
path: getContextPath()+'/resource-bundles/JS_Messages/',
mode:'both',
language:getSystemLocale(),
callback: function() {
jQuery.i18n.prop('error_message');
}
});
}
</script>
结构如下。它将从给定路径加载所有属性文件并根据语言环境搜索变量。
记住 file 的命名约定,以 locale 结尾。
同样需要包含jquery.i18n.properties-min-1.0.9。
只需在 javascript 中,您就可以访问 key 为 alert(error_occured);