应用国际化(3) -欧洲杯足彩官网

`
hbxflihua
  • 浏览: 653115 次
  • 性别:
  • 来自: 杭州
最近访客
博主相关
  • 博客
  • 微博
  • 相册
  • 收藏
  • 社区版块
    • ( 0)
    • ( 0)
    • ( 1)
    存档分类
    最新评论

    应用国际化(3)

    前两篇介绍了应用国际化的注意事项和提示语国际化的简单实现。后来阅读spring源码发现,spring对国际化的支持已经很到位了,很多地方都不需要在程序中处理。比如语言切换的拦截器,spring已经自带了。本文介绍更简洁的基于spring的提示语国际化实现方案。

     

    1、web.xml配置, web.xml中需要配置contextloaderlistener和dispatcherservlet,这个就不多讲了。

    	
    		springservlet
    		org.springframework.web.servlet.dispatcherservlet
    		
    			contextconfiglocation
    			classpath:/config/web/web-main.xml
    		
    		1
    	
    	
    		springservlet
    		*.htm
    	
    
    		org.springframework.web.context.contextloaderlistener
    	

     

    2、springmvc配置文件中添加i18n支持和语言切换拦截器

      
    	
    		
    	
    	  
    	  
    	      
    	          
    	            classpath:i18n/message  
    	          
    	      
    	      
    	      
    	      
    	
    	
    		
    		
    			
    		
    	

     

     3、messagesourceutils工具类调整

    import java.util.locale;
    import org.slf4j.logger;
    import org.slf4j.loggerfactory;
    import org.springframework.beans.factory.annotation.autowired;
    import org.springframework.context.messagesource;
    import org.springframework.context.i18n.localecontextholder;
    import org.springframework.stereotype.component;
    /**
     * 资源国际化工具类
     * @author lh@erongdu.com
     * @version 2.0
     * @since 2018-12-24
     */
    @component
    public class messagesourceutils {
        // 日志
        private static final logger logger = loggerfactory.getlogger(messagesourceutils.class);
        
        private static messagesource messagesource;
        
        @autowired
        public void setmessagesource(messagesource messagesource) {
    		messagesourceutils.messagesource = messagesource;
    	}
    //    /**
    //     * 获取国际化文件中国际化字段信息
    //     * @param key	国际化参数
    //     * @param args	动态参数
    //     * @return
    //     */
    //    public static string getmessage(string key, object[] args) {
    //    	try {
    //    		return messagesource.getmessage(key, args, key, langutil.getlocale());
    //    	} catch (exception e) {
    //    		logger.error(e.getmessage());
    //    	}
    //    	return key;
    //    }
        
        /**
         * 可供后台使用
         * 获取国际化文件中中文字段信息
         * @param key	国际化参数
         * @param args	动态参数
         * @return
         */
        public static string getchinesemessage(string key, object[] args) {
        	try {
        		return messagesource.getmessage(key, args, key, locale.chinese);
        	} catch (exception e) {
        		logger.error(e.getmessage());
        	}
        	return key;
        }
        
    	/**
         * 获取国际化文件中国际化字段信息
         * @param key	国际化key
         * @param args	动态参数
         * @return
         */
        public static string getmessage(string key, object[] args) {
            try {
                locale locale = localecontextholder.getlocale();
                return messagesource.getmessage(key, args, key, locale);
            } catch (exception e) {
            	logger.error(e.getmessage());
            }
            return key;
        }
    }

     

    4、在controller、service、interceptor等层使用messagesourceutils

    import org.springframework.context.annotation.scope;
    import org.springframework.stereotype.controller;
    import org.springframework.ui.model;
    import org.springframework.web.bind.annotation.requestmapping;
    import org.springframework.web.bind.annotation.responsebody;
    /**
     * web界面 配置action
     * @author lh@erongdu.com
     * @date 2017年1月20日
     *
     */
    @controller
    @scope("prototype")
    public class indexcontroller {
    	
    	
    	@requestmapping(value = "/index.htm")
    	@responsebody
    	public string index(model model){
    		return messagesourceutils.getmessage("title", null);
    	}
    }

      

    分享到:
    |
    评论

    相关推荐

      国际化版本应用,国际化语言切换及系统配置应用。springmvc国际化代码应用。

      java web应用国际化与分页 java web应用国际化与分页 java web应用国际化与分页

      【eoeandroid特刊】第五期:资源与应用国际化布 (其余《eoeandroid特刊》请查阅我的资源列表) 1.源和资产(resources and assets) 2.android 中可用的资源类型 3.resources and internationalization(资源和国际化)...

      对于某些应用系统而言,它需要发布到不同的国家地区,因此需要特殊的做法来支持,也即是国际化。通过国际化的方式,实现界面信息,各种提示信息等内容根据不同国家地区灵活展示的效果。比如在中国,系统以简体中文...

      qt应用程序国际化示例代码,包含静态加载和动态切换语言两种方式。

      ios应用程序国际化,能实现语言切换,非常好用。

      文档中介绍了struts2中国际化的实现原理和使用方法,同时介绍了应用程序的国际化的实现思路和方法以及示例!

      struts 2 国际化应用

      ios国际化 应用内切换语言更新版

      国际化与本地化的概念,web应用的中文本地化,struts框架对国际化的支持

      设计java ee应用程序-- j2ee应用程序国际化和本地化.doc

      论人脸识别技术的国际化区域诉讼证据应用.pdf

      go 需要支持 i18n (国际化) 工具,但是现有的 go 程序的国际化支持都比较冗长繁杂。i18n4go提供一个应用工作流进程 —— 从 go 应用中提取字符串,合并他们到单个包(消除冗余),准备翻译,使底层代码容易接收他们...

      android应用内和系统设置,两种设置多语言国际化。代码完整,包括切换简体,繁体中文和英文

      qt应用程序国际化工程示例

      # 国际化(应用名称 文字 图片的国际化适应)附带参考链接在readme.md中

      本地化与国际化.zipios应用例子源码下载本地化与国际化.zipios应用例子源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

      ios应用程序国际化 博客文章:http://blog.csdn.net/z251257144/article/details/8288028

      能够支持多个国家或者地区的本地化应用,国际化的应用

      为全面提高华北科技学院本科教育教学质量,推动教育信息化和教育国际化的建设,提出了"一体两翼双引擎"的教学发展思路,"一体"即全面提高本科教育教学质量,推进教育现代化;"两翼"即信息化、国际化;"双引擎"即抓基层、强...

    global site tag (gtag.js) - google analytics
    网站地图