`
dwj147258
  • 浏览: 195626 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring通过ResourceBundleMessageSource实现国际化

阅读更多

首先我们需要中文与英文的properties文件

lang_zh.properties内容,name=\u5F20\u4E09 因为properties中输入中文他会自动转换,这里name是张三

lang_en.properties内容,name=zhangsan

注意:配置文件的命名需要带上语言种类的即:文件名_语言种类.properties,并且不同语言的相同消息的文件名应该一样,例如ang_zh.properties和lang_en.properties就表示中文和英语

语言种类不知道该怎么写的可以在程序中输出,System.out.println(Locale.CHINESE);即可

接着我们就是在spring配置文件中配置:

 

<bean id="configProperties" class="org.springframework.context.support.ResourceBundleMessageSource">
   		<property name="basenames">
   			<list>
   				<value>config/properties/lang</value>
   			</list>
   		</property>
   	</bean>

 这里需要注意几点:

 

①在basenames中输入的相对路径

②文件不需要文件类型比如:我的语言文件是lang_zh.properties和lang_en.properties在这里我就只需要输入lang

③大家也看到了,不同语言的文件不需要全部都导入,只需要写文件名即可,看我的配置就知道了

 

最后就是应用了,

在程序中我们需要得到spring中配置的这个bean,可以通过注入,也可以通过beanUtil获取,我的代码如下:

 

MessageSource ms = (MessageSource) BeanUtil.getBeanByName("configProperties") ;
		System.out.println(ms.getMessage("name",new Object[]{} , Locale.CHINESE));
		System.out.println(ms.getMessage("name",new Object[]{} , Locale.ENGLISH));

 

输出结果是:

张三

zhangsan

在这里的ms.getMessage中有两个三个方法,我只研究了三个参数的和四个参数的

getMessage(String arg0, Object[] arg1, Locale arg2) 这里, 第一个参数是文件中的字段名,第二个参数是文件中占位符的参数(后面讲),第三个参数是语言种类,可以通过Locale.种类    获取
getMessage(String arg0, Object[] arg1, String arg2, Locale arg3)这里第一个参数是文件中的字段名,第二个参数是文件中占位符的参数(后面讲),第三个参数是默认值,第四个参数是语言种类,可以通过Locale.种类获取
这里需要注意的是,如果没有占位符也可以用null
 
如果我要在消息中带参数:
那么我需要在文件中带入占位符,如我吧语言文件中的内容改为:

lang_zh.properties内容,name=\u5F20\u4E09 {0}

lang_en.properties内容,name=zhangsan{0}

然后程序中输出:
MessageSource ms = (MessageSource) BeanUtil.getBeanByName("configProperties") ;
		System.out.println(ms.getMessage("name",new Object[]{"年龄:20"} , Locale.CHINESE));
		System.out.println(ms.getMessage("name",new Object[]{"age:20"} , Locale.ENGLISH));
输出为:

张三年龄20

zhangsanage20

不过也有注意的地方:

如果你的文件中的消息有占位符,同时又有单引号就需要注意了,有占位符的时候,单引号需要转义,只需要在单引号前再加一个单引号就可以了,

例如:

name='dengwei'{0}

我就需要写成:name=''dengwei‘’{0}记得是两个单引号,而不是双引号

0
0
分享到:
评论

相关推荐

    spring 国际化 spring mvc

    我们可以使用 Spring 的 ResourceBundleMessageSource 来实现国际化。首先,我们需要配置 Resource 文件,例如 message-info.properties、message-info_zh_CN.properties 等。然后,在 JSP 文件中使用 fmt 标记来...

    Spring实现国际化的一个小例子

    在Spring框架中,实现国际化(Internationalization,简称i18n)是常见的需求,它使得应用程序可以根据用户所在的地区提供不同的语言版本。以下是一个详细的步骤,解释如何在Spring应用中实现国际化。 1. **理解...

    09 Spring IoC容器ApplicationContext如何实现国际化慕课专栏1

    总的来说,Spring通过ApplicationContext实现国际化主要依赖于以下三个要素: 1. ResourceBundle:存储不同语言环境的资源文件。 2. MessageFormat:格式化输出字符串,处理占位符。 3. ResourceBundle.Control:...

    Spring Boot 国际化(i18n)配置demo.zip

    首先,国际化主要依赖于`MessageSource`接口,Spring Boot默认提供了基于`ResourceBundleMessageSource`的实现。`ResourceBundle`是Java中的一个类,用于存储特定语言环境下的文本资源。 1. **创建资源文件**: ...

    spring显示国际化信息

    通过以上步骤,你就可以在Spring应用中实现国际化显示,为全球用户提供更加本地化的体验。记住,国际化不仅关乎文本翻译,还涉及到数字、日期和货币格式的适配,确保所有方面都考虑周全才能提供优质的多语言服务。

    Spring国际化案例

    本案例将深入探讨如何在Spring应用中实现国际化。 首先,我们需要了解i18n的基本概念。"i18n"这个术语来源于英文单词"internationalization",由于单词中有18个字母,因此得名。国际化的核心是将应用中的文本、日期...

    10 扩展之Spring MVC中如何实现国际化i18n慕课专栏1

    通过深入了解Spring MVC国际化背后的原理,包括`ResourceBundleMessageSource`的工作机制以及`Locale`的处理方式,开发者可以更好地设计和实现多语言支持的Web应用。这不仅增强了用户体验,也为全球范围内的用户提供...

    Spring Boot实战实现登录国际化

    在本文中,我们将深入探讨如何使用Spring Boot实现登录页面的国际化。Spring Boot作为一个流行的Java开发框架,极大地简化了创建和部署微服务应用的过程。而登录国际化则是为了提供更好的用户体验,使得用户可以根据...

    spring mvc 国际化 demo

    3. **使用注解实现国际化** Spring MVC提供了`@MessageSource`注解,可以方便地在控制器方法中获取本地化消息。首先,你需要在控制器类上添加`@Controller`注解,然后在方法上使用`@RequestMapping`注解来处理请求...

    spring国际化实例

    在Spring框架中,实现国际化主要依赖于两个关键组件:`ResourceBundle`和`MessageSource`。`ResourceBundle`是Java标准库中的类,用于管理不同语言和地区的文本资源。`MessageSource`则是Spring提供的接口,它允许你...

    SpringBoot消息国际化配置实现过程解析

    在 SpringBoot 项目中,消息国际化配置可以通过配置文件和程序代码来实现。配置文件可以是 messages.properties、messages_en_US.properties、messages_zh_CN.properties 等,分别对应不同语言的配置。程序代码方面...

    ssm框架上实现国际化/多语言

    通过以上步骤,SSM框架即可实现国际化和多语言支持。在实际项目中,还需要考虑如何优雅地处理未找到对应语言资源的情况,以及如何在数据库中存储用户首选语言等细节问题。多语言功能的实现能够使应用具有更广泛的...

    spring mvc 3 国际化(下)——简单自定义操作

    对于响应式Web应用,Spring WebFlux同样支持国际化,可以通过`WebSession`或`ServerWebExchange`来设置和获取`Locale`。 以上就是Spring MVC 3中进行国际化的基本步骤和自定义操作的要点。在实际开发中,可能还...

    Spring2.5的国际化配置

    Spring 2.5 的国际化配置是一项关键功能,它允许应用程序根据用户浏览器的语言设置显示相应的文本。国际化使得软件能够适应...Spring 2.5 提供了多种灵活的方式来实现国际化,从而帮助开发者构建全球化友好的应用程序。

    spring国际化

    在Spring MVC中实现国际化,主要涉及以下几个关键步骤和概念: 1. **资源文件**:首先,我们需要创建资源文件,这些文件通常以`.properties`为扩展名,如`messages.properties`。每个文件对应一种语言或地区,例如`...

    spring boot国际化 i18n

    通过以上步骤,你可以为Spring Boot应用实现完整的国际化功能,包括页面的中英文切换,并确保在页面跳转时,语言设置得以保持。记得在实际项目中,还要考虑如何优雅地处理未找到对应语言资源的情况,以及优化语言...

    SpringBoot 配置国际化完整源码

    在Spring Boot应用中,配置国际化是一项重要的任务,它允许我们为不同的地区和...以上就是Spring Boot配置国际化的基本知识和实现方式,通过这个源码项目,你可以深入理解并实践这些概念,为你的应用提供全球化支持。

    第18章spring-mvc之国际化(i18n)

    总结一下,Spring MVC的国际化(i18n)功能通过`MessageSource`接口和`ResourceBundle`资源文件实现。开发者可以创建针对不同语言的资源文件,并通过配置使Spring MVC自动根据用户locale选择合适的消息。这极大地提高...

    springMVC实现国际化

    在Spring MVC中实现国际化(i18n)是为用户提供多语言支持的重要功能,这使得应用能够适应全球不同地区的用户需求。本项目是基于Eclipse开发的一个实战示例,包含了实现国际化所需的所有配置和代码,可以直接导入并...

Global site tag (gtag.js) - Google Analytics