通过潜在支持Spring
MVC国际化标准,Grails支持国际化标准(i18n)开箱即用。在Grails中,你能够根据用户属地定制该地区语言的文字。引用Java语言中的 Locale
文档定义:
Locale 对象描述了特定的地理、政治和文化地区。需要 Locale来执行其任务的操作称为本地化操作,它使用
Locale为用户量身定制信息。例如,显示一个数值就是本地化操作,应该根据用户本国家、地区或文化的风俗/传统来格式化该数值。
一个Locale对象由language
code和country code组成。比如,en_US是美国英语的代码,而en_GB是英国英语的代码。
现在你知道了本地化,为了在Grails中使用它们,你不得不创建你想显示的不同语言信息资源。Grails中的信息资源以简单的java属性文件格式放置在grails-app/i18n目录下。
每个资源束根据规则,以messages名字开始和locale结束。Grails在grails-app/i18n下
发布了一串不同语言范围内的内置信息,例如:
messages.properties
messages_de.properties
messages_es.properties
etc.
默认情况Grails会在messages.properties文件中检索信息,除非用户已经指定了一个自定义本地化文件。通过创建一个新的以
locale标签结尾的属性文件,你可以创建你感兴趣的属于自己的信息资源。比如属于英式英语范畴的 messages_en_GB.properties。
默认情况用户地区从传进来的
Accept-Language头部得知。然而
通过简单得给Grails传进lang参数作为请求参数,用户就可以更改地区了:
Grails 会自动更改用户地区,并把这个值存放在cookie里,随后的各种请求会有个新的头部。
视图中读取信息
你 通常最需要信息的地方是在视图内。要在视图内读取信息,使用message标签就可以了,如下:
<g:message code="my.localized.content" />
只要你在带有合适locale后缀的messages.properties文件有个key键,比如下面这种格式,Grails就会找到相对应的信息:
my.localized.content=Hola, Me llamo John. Hoy es domingo.
注 意有时候你需要向相应的信息传递参数。参考下面这个message标签:
<g:message code="my.localized.content" args="${ ['Juan', 'lunes'] }" />
还有可能在信息中使用定位参数:
my.localized.content=Hola, Me llamo {0}. Hoy es {1}.
控制器和标签库中读取信息
因为你可以在controllers中像方法一样使用标签,所以在controllers中读取信息也很经常,如下:
def show = {
def msg = message(code:"my.localized.content", args:['Juan', 'lunes'])
}
tag
libraries中使用的方法一样,但是注意如果你的标签库使用了不同的namespace,你需要使用g.前缀:
def myTag = { attrs, body ->
def msg = g.message(code:"my.localized.content", args:['Juan', 'lunes'])
}
Grails
没有发布可以生成控制器和视图的i18n特性脚手架模板。然而i18n模板插件可以提供i18n特性脚手架模板,这些模板与默认的脚手架模板一样,除了它们为标签,按钮等定义信息时使用message标签外。
首先用下面的这个命令安装i18n模板:
grails install-plugin i18n-templates
参考reference on the wiki,它里面了解释怎么使用i18n模板。
分享到:
相关推荐
但是,在使用 IntelliJ IDEA 的过程中,开发者可能会遇到一些常见的问题,例如中文乱码问题、Grails 国际化中文乱码问题、项目端口配置问题、IDE 优化问题等。本文将对这些问题进行总结和解决方法的介绍。 一、中文...
《Grails1.1中文文档》是Grails 1.1版本的官方中文指南,包含了框架的详细介绍、安装指南、基本概念、MVC模式的应用、GORM的使用、服务层、控制器、视图、国际化、测试等方面的内容。通过阅读这份文档,开发者可以...
Grails支持多语言环境,通过`messages.properties` 文件实现国际化,可以根据用户浏览器设置自动选择对应的语言版本。 总结来说,《Grails用户手册》涵盖了从项目创建到部署运行的全过程,包括Grails的基础概念、...
9. **国际化与本地化**:Grails内置了i18n支持,允许开发者轻松处理多语言环境,提高应用的全球适用性。 10. **持续集成与部署**:Grails与常见的CI/CD工具如Jenkins、GitLab CI/CD等良好集成,方便自动化部署和...
Grails的国际化支持非常好,开发者可以通过简单的配置来为不同的语言环境定制应用程序。 在服务层,Grails支持声明式事务,并允许通过依赖注入将服务集成到应用程序中。服务的作用域和生命周期是Grails服务管理的一...
Grails 提供了对多语言环境的支持,通过 properties 文件管理不同语言的文本资源,便于实现应用程序的国际化。 **Grails 文档** "Grails 中文参考手册" 是一套详细的 Grails 学习资料,涵盖了框架的所有核心组件、...
- **验证**:详述了声明式约束、客户端验证和国际化。 - **服务层**:涉及服务的作用域、事务和依赖注入。 - **测试**:涵盖单元测试、集成测试和功能测试的实践。 - **国际化**:如何实现多语言支持。 - **...
8. **国际化(i18n)**:Grails支持多语言环境,文档将介绍如何设置和使用国际化资源文件。 9. **插件系统**:Grails的插件系统极大地扩展了其功能,文档会讲解如何安装、使用及开发插件。 10. **测试**:文档会...
Grails框架内置了国际化支持,可以通过配置不同的资源文件来实现多语言界面。这使得Grails应用能够轻松地适应全球市场的需求,为不同地区的用户提供本地化的体验。 #### Ajax支持 Grails框架集成了对Ajax的支持,...
6. 国际化支持:Grails 1.2.2增强了国际化和本地化功能,使得多语言应用的开发变得轻松。 7. 文档更新:官方文档得到了全面修订和补充,为开发者提供了更详尽的参考资料。 在实际开发中,解压"grails-1.2.2.zip"后...
Grails 支持多语言环境,通过i18n资源文件,轻松实现应用的国际化和本地化。 11. **模板引擎与标签库** GSP(Groovy Server Pages)支持自定义标签库,使得视图层逻辑更加清晰,同时提供了内置的标签,如`g:form`...
9. **国际化与本地化**:Grails 提供了强大的i18n(国际化)支持,允许开发者轻松处理多语言环境。 10. **Scaffolding**:Grails 的快速原型功能(scaffolding)能自动生成基本的CRUD界面,帮助开发者快速搭建应用...
《使用 Grails 快速开发...同时,也将具备进一步探索Grails高级特性的基础,如插件系统、国际化、安全性和测试等。对于熟悉HTML、Web开发基础和Java或Groovy语言的开发者,Grails提供了一个高效且有趣的Web开发新选择。
9. **国际化支持**: Grails 内置了i18n(国际化)支持,使得应用能够轻松适应多种语言环境。 10. **热部署**: 开发者在Grails中修改代码后,应用可以自动重新加载变化,无需手动重启服务器,提高了开发效率。 下载...
9. **国际化与本地化**:Grails提供了内置的国际化支持,允许开发者轻松地为不同地区的用户提供本地化的应用体验。 10. **测试框架**:Grails集成了Spock测试框架,这是一种基于Groovy的BDD(行为驱动开发)测试...
5. **国际化支持**:增强了多语言支持,便于开发全球化应用。 6. **更多的内置服务和标签库**:1.1版本增加了更多的内置服务和GSP标签,如邮件服务、缓存服务等,以及用于表单处理和展示的标签库。 ### 学习与实践...
2. **src/main/resources**:资源文件存储在这里,例如配置文件、静态资源或国际化消息。 3. **grails-app/controllers**:控制器文件夹,包含处理HTTP请求的类,负责视图的渲染和业务逻辑的调用。 4. **grails-app/...
9. **Internationalization(国际化)** - Grails 支持多语言环境,通过资源包(messages.properties)管理不同语言的文本。 10. **Grails 与Spring** - Grails 内部集成了Spring框架,提供了依赖注入(DI)和AOP...