【问题标题】: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 中,您就可以访问 keyalert(error_occured);

【讨论】:

    猜你喜欢
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多