显示导航

如何在365bet地区应用中更改语言

了解如何更改应用程序中使用的默认语言,以在两种语言之间切换或访问当前语言环境

s塞尔吉奥·德尔阿莫

365bet地区版本 3.3.11

365bet地区培训

365bet地区培训由创建并积极维护365bet地区框架的人们开发和交付

入门

在本指南中,您将学习如何创建界面被翻译成四种语言的应用

您将学习如何更改应用程序中使用的默认语言以及如何在使用应用程序时在语言之间进行切换

您将需要什么

要完成本指南,您将需要以下内容

  • 花些时间在你手上

  • 体面的文本编辑器或IDE

  • 安装了JDK或更高版本JAVA首页适当配置

如何完成指南

要开始,请执行以下操作

要么

365bet地区指南存储库包含两个文件夹

  • 初始初始项目通常是一个简单的365bet地区应用程序,其中包含一些其他代码,可以帮助您快速入门

  • 完成一个完整的示例它是按照指南中介绍的步骤进行操作并将这些更改应用于文档的结果。初始

要完成指南,请转到初始

  • 光盘进入365bet地区指南365bet地区在最初

并按照下一节中的说明进行操作

您可以直接前往完成的例子如果你光盘进入grails指南grails我已完成

编写申请

365bet地区365bet地区开箱即用地支持国际化365bet地区通过利用潜在的Spring MVC国际化支持,借助365bet地区,您可以基于用户的Locale自定义视图中显示的文本

讯息包

365bet地区365bet地区中的消息包位于内部365bet地区应用程式n目录,是简单的Java属性文件

我们希望在我们的应用程序中支持英语,西班牙语,意大利语和德语。我们将在不同的消息包中定义本地化

默认消息包

365bet地区应用程序在消息属性中
365bet地区navbar应用程序状态状态应用程序状态navbar人工制品artefacts navbar已安装插件已安装插件navbar语言语言en英语es西班牙语de德语意大利语欢迎标题欢迎来到365bet地区欢迎机构恭喜您已经成功启动了第一个365bet地区应用程序这个是个默认页面随时进行修改重定向到控制器或显示您可能选择的任何内容以下是当前已部署的控制器的列表 这个应用程序单击每个以执行其默认 行动:

西班牙语消息包

365bet地区应用程序i消息es属性
导航栏应用程序状态应用程序状态来自n navbar工件已安装Navbar工件插件已安装navbar语言的插件语言英文语言的语言是Españ语言的阿莱姆365bet地区n语言它Italiano欢迎标题Bienvenido a 365bet地区欢迎身体¡祝贺始于成功完成您的第一个应用程序来自365bet地区365bet地区 n此时是p默认gina随时可以对其进行修改以重定向到控制器或在下面显示您选择的内容来自n显示了此应用程序中当前实现的驱动程序列表来自n单击每个以执行您的操作来自ñ默认值:

意大利语消息包

grails应用程序向其发送消息
导航栏应用程序状态'应用
365bet地区navbar artefacts神器navbar已安装插件已安装navbar语言Languages语言en英语es西班牙语de德语语言it意大利语欢迎标题欢迎来到365bet地区欢迎机构恭喜您已经成功启动了第一个365bet地区应用程序它是默认页面可以随意编辑以重定向到控制器或查看您可以在下面选择的任何内容它是报告了当前实施的控制器列表这个程序点击每个在那运行'默认动作

德语留言包

消息属性中的应用程序
navbar应用程序状态应用程序状态navbar工件制品navbar已安装插件已安装插件navbar语言Languages语言en英语es西班牙语言de德语语言it意大利语欢迎标题Welcome365bet地区365bet地区欢迎身体Cordial GLü365bet地区ckwunsch您已经成功启动了第一个365bet地区应用程序,目前这是标准页面。ü随便做ä更改为重定向到控制器或显示您所需要的内容ä海伦·克以下是当前的控制器列表要部署到此应用程序,请单击所有人以执行其默认操作ü听到:

在主页中,我们使用这些消息代码

365bet地区应用程序观看次数索引gsp

<G讯息码"欢迎标题" /></H

<G讯息码"欢迎身体" /></p

变更地区

您可以通过简单地传递一个名为的参数来切换语言环境365bet地区365bet地区作为请求参数

久了

365bet地区365bet地区将自动切换用户的语言环境并将其存储在cookie中,以便后续请求将具有新的标头

我们可以通过功能测试来验证此行为

src集成测试groovy演示ChangeLocaleSpec groovy
演示进口 geb spock GebSpec
进口 grails测试mixin集成集成

积分
 ChangeLocaleSpec 延伸GebSpec定义 "变更地区"() {
        什么时候'长和'

        然后:
        $('H'文本'欢迎来到365bet地区'

        什么时候'久了'

        然后:
        $('H'文本'365bet地区欢迎来到365bet地区'
    }
}

更改默认语言环境

我们希望我们的应用程序启动,默认情况下使用西班牙语

grails app conf春季资源groovy
进口 在SessionLocaleResolver中使用org springframework Web servlet;

将您的Spring DSL代码放在这里bean localeResolver SessionLocaleResolver defaultLocalejava有用的本地'');
    }
}

我们可以通过功能测试来验证默认语言环境为西班牙语

src集成测试groovy演示DefaultLocaleSpec groovy
演示进口 geb spock GebSpec
进口 grails测试mixin集成集成

积分
 DefaultLocaleSpec 延伸GebSpec定义 "变更地区"() {
        什么时候'/'

        然后:
        $('H'文本'365bet地区欢迎来到365bet地区'
    }
}

本地导航栏

我们在配置属性中定义支持的语言

grails应用配置会议应用yml
---
指南:
    语言在是

我们将使用标签库呈现语言下拉菜单

语言下拉
grails应用程序taglib演示LocaleNavbarTagLib groovy
演示进口 grails config配置
进口 grails核心支持365bet地区ConfigurationAware
进口 org springframework上下文MessageSource
进口 org springframework Web servlet支持RequestContextUtils

 LocalNavbarTagLib 实施365bet地区ConfigurationAware静态的命名空间'导航栏'

    静态的defaultEncodeAs标签库: '没有'MessageSource messageSource清单<语言覆写
    虚空setConfiguration配置语言co getProperty'指导语言', 清单) (1)
    }

    定义localeDropdownListItems参数小时参数小时对于 ( languages语言语言代码"语言$"
            定义区域设置RequestContextUtils getLocale请求(2)
            定义msg messageSource getMessage languageCode[]  宾语[], 空值当地(3)"
  • ${味精}"
    } } }
    1 检索配置属性
    2 访问当前语言环境
    3 检索本地化消息

    我们可以使用单元测试来测试TagLib渲染

    src测试groovy演示LocaleNavbarTagLibSpec groovy
    演示进口 免费测试web taglib TagLibUnitTest
    进口 org springframework上下文MessageSource
    进口 spock lang规格
    
     LocaleNavbarTagLibSpec 延伸规格实施TagLibUnitTest {
    
        虚空 "LocaleNavbarTagLib方法localeDropdown呈现"() {
            给定:
            定义小号'图书'
            定义语言: '', 味精: '英语'],
                             [: '', 味精: '西班牙文'],
                             [: '', 味精: '义大利文'],
                             [: '', 味精: '德语']]
    
            什么时候:
            定义预期''每种语言地图米预期"
  • ${味精}"
    tagLib语言语言收集代码tagLib messageSource存根MessageSource getMessage'语言在', [] 宾语[], 空值语言查找''味精getMessage'语言是', [] 宾语[], 空值语言查找''味精getMessage'语言它', [] 宾语[], 空值语言查找''味精getMessage'language的', [] 宾语[], 空值语言查找''味精定义结果applyTemplate'') 然后cleanUpString结果cleanUpString预期cleanUpStringstr str replaceAll'ñ',''全部替换' ', '') } }

    我们调用标签库在 - 的里面默认GSP的元素

    365bet地区应用程序观看次数索引gsp
  • ="落下"> <一种href"#" ="下拉切换" 数据拨动"落下"角色"纽扣"空气弹跳"真正"咏叹调扩大""><G讯息码"语言" 默认="语言能力"/> ="没有"></跨度/一种>
      ="下拉式菜单"> <导航栏localDropdownListItems"${请求forwardURI}"/> </ </

      我们提供给标签库请求forwardURI

      转发URI由于请求对象的requestURI属性返回原始URI而不是匹配的URI,因此对于获取当前请求URI很有用。

      运行应用程序

      运行测试

      grailsw grails测试应用程序grails打开测试报告

      要么

      gradlew检查打开构建报告测试索引html

      要运行该应用程序,请使用gradlew bootRun命令将在端口上启动应用程序

      您需要365bet地区帮助吗

      OCI赞助了本指南的创建OCI提供了几种365bet地区服务:

      免费咨询

      OCI 365bet地区团队包括365bet地区联合创始人Jeff Scott Brown和Graeme Rocher检查我们的365bet地区课程并向发展和维护365bet地区的工程师学习

      Grails OCI团队