springboot随笔三:国际化 一:服务器根据浏览器请求头语言信息Accept-Language自动国际化 创建国际化文件,记住是放在claspath下,不能放在static或者public下 指定国际化配置路径,注意是classpath下的相对路径,也可以用locale/wording代替 登录页面为英文 登录页面为中文 二:自定义国际化信息 1. 在login.html中加入 [...
getLocale(); //获取请求中的语言参数 String language = request.getParameter("l"); if (!StringUtils.isEmpty(language)) { //zh_CN 国家_地区 String[] values = language.split("_"); locale = new Locale(values[0], values[1]); } return locale; } @Override public void setLocale(HttpServlet...
请求头:Accept-Language=zh-CN 结果: 我的test内容成message功 手写的参数失败 手写的参数 1. 2. 3. 4. 5. 6. 可以实现模板消息、默认消息等。 6、总结 我们可以通过Spring的国际化,将每一个国家的语言模板都定义在配置文件中,这样就可以动态的解决数据返回的语言问题了。 真正生产环境还会将消息再进一步封装...
首先我们先定义国际化资源文件,spring boot默认就支持国际化的,而且不需要你过多的做什么配置,只需要在resources/下定义国际化配置文件即可,注意名称必须以messages开发。 我们定义如下几个文件: messages.properties (默认,当找不到语言的配置的时候,使用该文件进行展示)。 messages_zh_CN.properties(中文) messages_en...
在页面上显示中文还是英文是由请求信息头中“accept-language”的决定的,默认是中文。我们只要将点击所附带的请求信息传递给“accept-language”就会使页面的中英文改变。 spring boot中有一个WebMvcAutoConfiguration类,提供了本地区域解析器。如下图所示:
Accept-Language 语言设置成英文(en-US),效果如下,这个是在模拟用户使用的浏览器是语言,也就是用户是使用英语的 Accept-Language 语言设置成中文(注意参数是zh-CN),同上,这里模拟用户是使用中文作为浏览器的语言 这里咱么测试的使用的英语,中文同理只需要把Accept-Language的设置成zh_CN就可以了!
1. SpringBoot国际化的三种方式 Springboot国际化存在三种使用方式:AcceptHeaderLocaleResolver (默认解析器,通过请求头的 Accept-Language 字段来判断当前请求所属的环境的,进而给出合适的响应)SessionLocaleResolverCookieLocaleResolver 默认AcceptHeaderLocaleResolver实现国际化 在默认情况下,国际化文件夹直接放在src\main...
前后端分离的国际化方案,如果每个接口都增加参数,代码量和测试量会很大,最好把语言变量加到请求头并通过拦截器解析。 i18n 具体过程如下: 客户端增加请求头 Accept-Language; 服务端增加拦截器,解析请求头Accept-Language中的语言值,并通过LanguageUtil设置到当前线程的语言环境中; ...
创建TestController和实体类,并在src\main\resources\templates目录下创建index.html文件。使用POSTMAN,通过请求头设置Accept-Language为zh-CN、en-US,验证国际化效果。对于自定义切换Local保存方式,如使用SessionLocaleResolver或CookieLocaleResolver,需定义LocaleChangeInterceptor拦截请求中key为lang的参数。配置...
②LocaleContextHolder.getLocale()可以拿到本次请求header里的Accept-Language对应的语言环境 。 (4)简单测试一种场景,结果如下(其他场景留给读者): 在这里插入图片描述 3 ReloadableResourceBundleMessageSource的玩法 ReloadableResourceBundleMessageSource相比于ResourceBundleMessageSource而言最重要的区别在于 ...