Springboot根据浏览器实现网站资源国际化

每天学习一点点 编程PDF电子书、视频教程免费下载:
http://www.shitanlife.com/code

根据浏览器地区主动选择资源

1.创建资源化文件
  • resource目录下创建messages目录
  • 创建messages_en_US.properties、messages_zh_CN.properties文件。分别是英文、中文资源。
  • messages.properties文件为默认文件。
  • messages_en_US.properties写入内容:welcome = welcome to login in soa-watch systerm(english)
  • messages_zh_CN.properties写入内容:welcome=欢迎访问soa-watch系统(CH)
  • messages.properties写入内容:welcome=欢迎访问soa-watch系统(Default)
2.配置application.properties
   spring.messages.encoding=UTF-8
   spring.messages.basename=/messages/messages
3.jsp页面中使用标签
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<html>
<head>
<title>i18n</title>
</head>
<body>
    <spring:message code="welcome"></spring:message>
</body>
</html>
4.修改浏览器的语言环境
  • 浏览器地址栏中输入about:config
  • 修改intl.accept_languages,查看结果
  • 以上为火狐浏览器

页面链接中实现对资源化得控制

如同以下页面,点击相关链接完成网页资源切换

1.创建MyLocaleResolver类集成AcceptHeaderLocaleResolver类
public class MyLocaleResolver extends AcceptHeaderLocaleResolver {
    private Locale myLocal;
    @Override
    public Locale resolveLocale(HttpServletRequest request) {
        return myLocal==null?request.getLocale():myLocal;
    }

    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
        myLocal = locale;
    }
}
2.创建I18nConfig类初始化localeResolver对象bean

对象的名称必须为localeResolver,Spring容器会自动加载,否则找不到。

@Configuration
public class I18nConfig {
private static Logger logger = LoggerFactory.getLogger(I18nConfig.class);

    @Bean(name = "localeResolver")
    public MyLocaleResolver myLocaleResolver(){
        logger.info("#####cookieLocaleResolver---create");

        MyLocaleResolver myLocaleResolver = new MyLocaleResolver();
        myLocaleResolver.setDefaultLocale(Locale.ENGLISH);
        logger.info("#####cookieLocaleResolver:");
        return myLocaleResolver;
}
3.LoginControl类中代码实现跳转
  • welcome页面为welcome.jsp,展示页面
  • language请求为动态设置语言环境
@GetMapping("/welcome")
public String welcome(){
   logger.info("class:"+messageSource.getClass());

    return "welcome";
}

@GetMapping("/language")
public ModelAndView  language(HttpServletRequest request, HttpServletResponse response, String language){
    Locale locale= request.getLocale();
    logger.error(locale.toString());
    LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
    language=language.toLowerCase();
    logger.info("language:"+language);
    if(language==null||language.equals("")){
        return new ModelAndView("welcome");
    }else{
        if(language.equals("zh_cn")){
            localeResolver.setLocale(request, response, Locale.CHINA);
        }else if(language.equals("en")){
            localeResolver.setLocale(request, response, Locale.US);
        }else{
            localeResolver.setLocale(request, response, Locale.CHINA );
        }
    }
    return new ModelAndView("redirect:welcome");
}
4.welcome.jsp页面代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

<html>
<head>
    <title>i18n</title>
</head>
<body>
    <spring:message code="welcome"></spring:message>

    <a href="<c:url value=‘language?language=zh_cn‘/>">
       中文
    </a>
    <a href="<c:url value=‘language?language=en‘/>">
        english
    </a>
</body>
</html>

实现完成,即可测试。

每天学习一点点 编程PDF电子书、视频教程免费下载:
http://www.shitanlife.com/code

原文地址:https://www.cnblogs.com/scode2/p/9050752.html

时间: 2024-11-10 14:32:48

Springboot根据浏览器实现网站资源国际化的相关文章

SpringBoot资源国际化

Springboot根据浏览器实现网站资源国际化 1.创建资源化文件 resource目录下创建messages目录 创建messages_en_US.properties.messages_zh_CN.properties文件.分别是英文.中文资源. messages.properties文件为默认文件. messages_en_US.properties写入内容:welcome = welcome to login in soa-watch systerm(english) messages

struts2 资源国际化

web.xml: <?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem

Chrome 浏览器显示“网站连接不安全”,是什么原因?

Chrome 浏览器显示“网站连接不安全”,这可能是您最近访问网站时经常遇到的问题,浏览器地址栏中域名前面显示圆圈i图标和“不安全”字样,点击这个字样,就会看到红字警告“你与此网站之间建立的连接不安全”,这是怎么回事?这样的网站可以继续访问吗? Chrome 浏览器显示“网站连接不安全”的原因 “你与此网站之间建立的连接不安全”这是浏览器对HTTP网站的警告提示,这表示这个网站使用了HTTP协议传输数据,提醒用户谨慎访问网站. HTTP协议是明文传输协议,无法加密传输数据或校验数据完整性,也无法

c# 如何通过Socket访问网站资源

引言 在C#中,我们通常会使用HttpWebRequest来访问url资源,例子如下: public static string GetContentFromUrl(string url)         {             HttpWebResponse response = null;             WebRequest request;             try             {                 request = WebRequest.C

资源国际化

在一个普通的project项目中资源国际化 public class I18n { public static void main(String[] args) { //默认读取src下以app开头的配置文件 //ResourceBundle rb = ResourceBundle.getBundle("app",Locale.US); ResourceBundle rb = ResourceBundle.getBundle("app",Locale.CHINA);

谈谈网站资源积累对推广工作的重要性

从06到北京做推广工作开始,我就一直很在意网站资源的积累,只要谈过合作的网站,都会用文本记录下对方的基本信息,从而方便以后有需要的时候再次寻找合作.先跟大家分享下,我这几年资源积累的一些数据,希望能给大家一些启发.另外我也想把自己多年积累的一些资源,分享给更多的朋友. 一:06-09年的资源积累的经历 06年做联盟推广工作的时候,我找过几百家日IP1W以上的网站,谈过联盟广告投放的合作.当时联盟专用的一个QQ号码都满了,QQ上的500好友,基本上都是个人站长.后来因为没再做联盟工作,这个QQ号码

使用KRPano分析动态网站资源

软件交流群:571171251(软件免费版本在群内提供) krpano技术交流群:551278936(软件免费版本在群内提供) 最新博客地址:blog.turenlong.com KRPano资源分析工具可以分析网站(不限于KRPano制作的网站,任意网站均可)的资源结构,例如,我们在网址框中,输入一个全景网站,输入完成后,点击回车,即可浏览网站. http://vr.pacificparkbrooklyn.com/park_stills.html 单击资源查看器中的文件夹图标,我们可以看到整个

获取网站资源 getResourceAsStream

1 获取网站资源(重点) 2 public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { 3 // 获取网站对象 4 ServletContext context = this.getServletContext(); 5 // 获取网站中的静态资源 6 InputStream in = context.getResourceAs

游戏UI框架设计(7): 资源国际化技术

游戏UI框架设计(7) --资源国际化技术 说起"资源国际化"技术,个人认为可以追述到微软Window2000 PC操作系统的发布,在这之前windows98操作系统的开发都是先由美国总部出一个英文版本,然后在发布windows 版本之后的大约一年后,全世界其他语言版本的操作系统才能面世. 在这一年中,就是微软驻各个国家分公司的多语言版本的翻译工作,需要从操作系统的核心到外围软件,全部翻译为所在国家语言,不留死角.       这种情况对于微软来说需要为多语言版本付出额外非常大的经济负