【问题标题】:using jquery.i18n.properties.js with Grails将 jquery.i18n.properties.js 与 Grails 一起使用
【发布时间】:2019-08-28 00:22:16
【问题描述】:

我将jquery.i18n.properties.jsGrails 2.5.6 应用程序一起使用,但由于稍后提到的错误,我认为它无法正常工作。以下是我在 grails 视图中的代码。

普惠制:

<head>
 <asset:javascript src="jquery.i18n.properties-min-1.0.9.js"/>
</head>
<body>
<script>
    $(document).ready(function () {
    $.i18n.properties({
        name: 'messages',
        path: 'i18n/', //E:/IntelljWS/MyProject/grails-app/
        mode: 'both',
        language: 'en', 
        callback: function () {

            $("#error").text($.i18n.prop('msg.test'));
        }
    });
});

以下是messages.properties 文件中定义并用于示例代码的消息之一:

 msg.test=Test message

#error 中显示的是[msg.test]

我缺少什么吗?

【问题讨论】:

  • 你终于找到解决方案了吗?
  • @Tung 尝试任何解决方法都可能达到我的目标
  • 我最近与i18n-asset-pipeline:1.0.6 合作过。它适合检索本地消息或自定义国际化。您需要帮助吗?
  • @Tung 如果您有任何相关文件,我将不胜感激

标签: jquery grails internationalization properties-file


【解决方案1】:

我将在下面介绍i18n-asset-pipeline grails 插件,它与jquery.i18n.properties.js 做同样的工作。您可能会在grails plugin portal 上找到一些jquery.i18n.properties.js 的实现。我不完全确定你会对我的建议感到满意。然而,我想说使用这个插件将帮助我们减少维护和调用标签库g:message grails 视图和外部javascript 文件中的工作。

如果您有信心与i18n-asset-pipeline 一起玩,请仔细查看its documentation。以下是我对grails 2.5.6 所做的总结的婴儿步骤。

第 1 步:在 BuildConfig.groovy

中声明插件
plugins {
   ...
   runtime 'org.grails.plugins:i18n-asset-pipeline:1.0.6'
   ...
}

第 2 步:在适当的文件中定义您的消息属性

grails-app/i18n 目录下的资源包消息中,添加您感兴趣的语言文件,例如messages_fr.propertiesmessages_vi.properties 等。为了演示它是如何工作的,我有welcome.message 只是在这些文件中的索引页messages_{fr,es,vi}.properties

第 3 步:定义 i18n 文件在assets/javascripts/i18n 目录

首先启动应用程序后,你会看到这个目录。创建相同的文件集,即messages.i18nmessages_{es,fr,vi}.i18n。在这些文件中,我们只是将在messages_{es,fr,vi}.properties 文件中添加的属性或您希望仅以特定语言显示的属性。

第 4 步:设置默认语言(可选)

grails-app/conf/spring/resources.groovy文件中留下以下sn-p

beans = {
   localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) {
      defaultLocale = new Locale("fr", "FR")
      java.util.Locale.setDefault(defaultLocale)
   }
}

第 5 步:如何使用 i18n 插件

在视图中,我们可以加载 i18n 语言默认设置并显示消息属性。

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
    <title>Demo | BioModels</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="layout" content="main"/>
    <script>

    </script>
    <g:set var="locale" value="${session.'org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE'}"/>
    <asset:i18n locale="${locale}"/>
</head>

<body>
<h2><g:message code="welcome.message"/> </h2>
</body>
</html>

第 6 步:测试

在您的网络浏览器中打开一个选项卡,检索您的页面http://localhost:8900/i18ndemo/demo/,例如,它将以resources.groovy 中设置的默认语言呈现welcome.message 属性的内容。如果您想直接切换到其他语言,请在上一个 URL 后键入 ?lang=es。看起来像http://localhost:8900/i18ndemo/demo/?lang=es

经过这些步骤,相信你会得到你的需要。

示例项目也已经推送到bitbucket找到here

我希望这个答案能帮助您解决问题。

【讨论】:

    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    相关资源
    最近更新 更多