精华内容
下载资源
问答
  • 做web服务器,为了实现全球业务,服务器端就要实现多语言。针对不同的国家、语言。返回不同语言的描述。第一:JAVA对多语言是支持的JAVA对语言的描述使用java.util.Locale,它主要包含语言、国家信息。例如几个常量...

    做web服务器,为了实现全球业务,服务器端就要实现多语言。针对不同的国家、语言。返回不同语言的描述。

    第一:JAVA对多语言是支持的

    JAVA对语言的描述使用java.util.Locale,它主要包含语言、国家信息。

    例如几个常量,

    中国的简体中文:

    Locale SIMPLIFIED_CHINESE = createConstant(“zh”, “CN”);

    台湾的繁体

    Locale TRADITIONAL_CHINESE = createConstant(“zh”, “TW”);

    也可以只包含语言信息:

    Locale CHINESE = createConstant(“zh”, “”);

    以上几种语言,用字符串写就是zh_CN, zh_TW, zh(也有用中划线的)。

    第二:语言资源文件

    你可以在i18n目录(或者是com/zhaoyanblog/i18n, com/zhaoyanblog/i18n/resource, 这个是类路径)下为每一种语言创建一个资源文件。命名格式如下:

    lang_zh_CN.properties

    lang_zh_TW.properties

    lang_zh.properties

    再创建一个默认的语言对应的资源文件:

    lang.properties

    注:这里的文件名lang和路径都可以随便起。为什么路径要包含i18n,这个就是个习惯,随便你。i18n的意思就是国际化(internationalization, i和n之间有18个字符)。

    资源文件里配置不同的配置

    lang_zh_CN.properties里:

    TITLE=我的苹果

    lang_en.properties里:

    TITLE=my apple

    配置文件为了防止乱码,properties文件里3个字节以上表示的字符(例如中文)一般使用unicode配置。

    TITLE=\u6211\u7684\u82f9\u679c

    第三:读取配置文件的内容

    JAVA加载语言资源文件使用java.util.ResourceBundle类。

    ResourceBundle lang = ResourceBundle.getBundle(“com.zhaoyanblog.i18n.resource.lang”, Locale.SIMPLIFIED_CHINESE);

    lang.getString(“TITLE”) 返回的就是我的苹果

    第四:HTTP协议的多语言支持。

    HTTP协议规定了一个header:Accept-Language支持多语言。多少客户端期望返回的语言类型。

    格式如下:

    Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

    q=0.8代表前面语言的比重。如果有中文就返回中文,没有中文就返回美式英文。再没有就返回中文。

    第五:java web应用,获取客户端需要的语言。

    servlet的HttpServletRequest参数对象里可以得到对Accept-Language的解析结果。

    protected void service(HttpServletRequest req, HttpServletResponse resp)

    {

    Locale locale = req.getLocale();

    }

    展开全文
  • Java实现多语言切换

    万次阅读 2012-11-19 10:12:41
    在一个项目中涉及到中英文版本,一般在... 前台读取多语言: 其中 标签是struts自带的可以获得properties里的键和值 当选中文时 后台action如下 session.clear(); session.put("WW_TRANS_I18N_LOCALE", Locale.C

    在一个项目中涉及到中英文版本,一般在登录页或者首页的时候会有中英文连接

    这个连接可以这样写:

    	<div class="flag">
    				<s:url id="localeUsUrl" action="localeUs"></s:url>
    				<s:url id="localeCnUrl" action="localeCn"></s:url>
    				<a class="en" href="${localeUsUrl }"><s:property value="getText('language.english')" /></a>
    				<a class="ch" href="${localeCnUrl }"><s:property value="getText('language.chinese')" /></a>
    	</div>
    前台读取多语言:

    其中 <s:property  value="getText">标签是struts自带的可以获得properties里的键和值
    当选中文时 后台action如下

    		session.clear();
    		session.put("WW_TRANS_I18N_LOCALE", Locale.CHINA);
    		ActionContext.getContext().setLocale(Locale.CHINA);
    英文:
    		session.clear();
    		session.put("WW_TRANS_I18N_LOCALE", Locale.US);
    		ActionContext.getContext().setLocale(Locale.US);
    后台读取多语言:

    当我们从后台想输出一个提示信息时,首先要获取当前Local环境

    Locale currentLocale = Locale.getDefault();

    currentLocale 分en,zh等

    读取properties的方法为:

    	try {    
                InputStream is = Test.class.getClassLoader().getResourceAsStream(propertiesName);    
                properties.load(is);    
                value = properties.getProperty(key);    
            } 

    返回这个String 型的value即可
    展开全文
  • java实现多语言配置i18n

    千次阅读 2018-01-20 11:30:31
    3、在Spring配置文件中增加多语言配置,applicationContext.xml <!--多语言的配置 开始--> <value>language/inspectionJsonMsg <!--多语言的配置 结束--> 4、如何使用...

    1、创建资源包和资源文件

    一个资源包中的每个资源文件都必须拥有共同的基名。除了基名,每个资源文件的名称中还必须有标识其本地信息的附加部分。例如:一个资源包的基名是“inspectionJsonMsg”,则与中文、英文环境相对应的资源文件名则为: "inspectionJsonMsg_zh_CN.properties"  "inspectionJsonMsg_en_US.properties"


    2、资源文件的书写格式

    资源文件的内容通常采用"关键字=值"的形式,软件根据关键字检索值显示在页面上。一个资源包中的所有资源文件的关键字必须相同,值则为相应国家的文字。并且资源文件中采用的是properties格式文件,所以文件中的所有字符都必须是ASCII字码,属性(properties)文件是不能保存中文的,对于像中文这样的非ACSII字符,须先进行编码

    例如:

    国际化的中文环境的properties文件


    国际化的英文环境的properties文件


    3、在Spring配置文件中增加多语言配置,applicationContext.xml

    <!--多语言的配置 开始-->
    	<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    		<property name="basenames">
    			<list>
    				<value>language/inspectionJsonMsg</value>
    			</list>
    		</property>
    
    		<property name="defaultEncoding" value="UTF-8" />
    	</bean>
    
    
    	<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
    		<property name="cookieName" value="spmsLanguage"/>
    		<property name="cookieMaxAge" value="94608000"/>
    		<property name="defaultLocale" value="zh_CN" />
    	</bean>
    	<!--多语言的配置 结束-->
    4、如何使用

    (1)编写常量类

    public class InspectionConst {
    
    	//设备查询成功
    	public static final String INSPECTION_DEVICE_QUERY_SUCCESS = "ny.spms.java.inspection.device.query.success";
    	//设备查询失败
    	public static final String INSPECTION_DEVICE_QUERY_ERROR = "ny.spms.java.inspection.device.query.error";
    }
    (2)编写I18n工具类,I18nUtil.java

    package com.hikvision.energy.util.i18n;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.context.MessageSource;
    import org.springframework.context.MessageSourceResolvable;
    import org.springframework.context.i18n.LocaleContextHolder;
    
    import com.hikvision.energy.core.util.AppContext;
    
    import java.util.Locale;
    
    /**
     * 多语言查询value工具类
     * 
     * @author wanjiadong
     * @date 2017-11-6
     *
     */
    public class I18nUtil {
    
        private static MessageSource messageSource;
    
        private final static Logger log = LoggerFactory.getLogger(I18nUtil.class);
    
        static {
            messageSource = AppContext.getBean("messageSource");
        }
        /**
         * 根据CODE查询,默认无通配参数,Local跟随当前cookie
         * @Author: wanjiadong
         * @Description:
         * @Date: 2017-11-6
         * @param: code
         */
        public static String getMessage(String code){
            return getMessage(code,null,getLocal());
        }
    
        public static String getMessage(String code,Locale locale){
            return getMessage(code,null,locale);
        }
    
        /**
         * 根据CODE查询,自定义默认值,默认无通配参数,Local跟随当前cookie
         * @Author: wanjiadong
         * @Description:
         * @Date: 2017-11-6
         * @param: code
         */
        public static String getMessage(String code,String defaultMessage){
            return getMessage(code,null,defaultMessage,getLocal());
        }
        /**
         * 根据CODE和args查询,Local跟随当前cookie
         * @Author: wanjiadong
         * @Description:
         * @Date: 2017-11-6
         * @param: code
         * @param: args 通配符的参数
         */
        public static String getMessage(String code,Object[] args){
            return getMessage(code,args,getLocal());
        }
    
        public static String getMessage(String code,Object[] args,String defaultMessage,Locale locale){
            return messageSource.getMessage(code,args,defaultMessage,locale);
        }
    
        public static String getMessage(String code, Object[] args, Locale locale){
            try{
                return messageSource.getMessage(code,args,locale);
            }catch (Exception e){
                log.error("Query message value by key[{}] error. The reason is:"+e.getMessage(),code);
                return null;
            }
    
        }
    
        public static String getMessage(MessageSourceResolvable resolvable, Locale locale){
            try{
                return messageSource.getMessage(resolvable,locale);
            }catch (Exception e){
                log.error("Query message value error. The reason is:"+e.getMessage());
                return null;
            }
    
        }
    
        //解析用户区域
        public static Locale getLocal() {
            return LocaleContextHolder.getLocale();
        }
    }
    
    (3)具体使用:

    I18nUtil.getMessage(InspectionConst.TEMPORARY_JOB_OVER_BEGIN_TIME, new Object[]{InspectionConst.TEMPORARA_TIME})

    I18nUtil.getMessage(InspectionConst.INSPECTION_TEMPORARY_JOB_ADD_SUCCESS)


    展开全文
  • java web 多语言实现local,有中文和英文实现
  • 用封装调用语言类型配置文件,实现多语言转换。
  • java多语言怎么实现

    2013-12-11 03:24:12
    java怎么实现多语言 要能处理很多语言的 求教 最好是有代码实现 ligu583976696@126.com这是我的邮箱
  • 如何快速实现中文翻译多国语言?这是从事外贸工作的人经常需要去面对的问题。因为你每天都要面对来自全球各地的外国人,但是自己肯定无法掌握各国语言。所以今天小编就为大家带来一个快速完成中文翻译多国语言的方法...

    如何快速实现中文翻译多国语言?这是从事外贸工作的人经常需要去面对的问题。因为你每天都要面对来自全球各地的外国人,但是自己肯定无法掌握各国语言。所以今天小编就为大家带来一个快速完成中文翻译多国语言的方法,快跟我看看吧。

    5d7d1e204f65ea10d55b9d4da5ee3bff.png

    1:首先我们可以在随身携带的手机上下载一个辅助软件

    “语音翻译器”,打开后选择语音翻译模式。要提醒大家的是与外国人交流一定要先了解好对方的国家文化,以免引起不必要的误会。

    7b4cb6b1bca5f2d4d2d4245c362be99d.png

    2:选择语种,源语种选择中文,目标语种选择英语。即使在不知道对方是国籍时,你也可以先通过英语进行问候,问清楚对方的国籍后在进行中文翻译。

    3532847ed95b2e295e0c7593659cd42f.png

    3:点击最下角的中文按钮开始说话,录音完成后进入中文翻译英语界面。同样如果要进行互译的话,只需要点击下角的英文按钮,即可完成英文翻译中文的操作。

    09efbaabcd8bbcc2dd9e688e336408e5.png

    4:翻译结果会以文字和语音播放两种形式出现,即使处于嘈杂的环境下,你也可以通过文字表达你的意思。

    99f5fbf7f2c58a9366da4d1376c778a4.png

    5:语速调节,在进行语音播放的过程中,语速过快或者过慢都会引起不适。我们可以点击最上角的方框,里面有一个语速调节功能,来调节语速。

    274888dbb4bbdbe4a6766e89b1591b84.png

    6:文本框编辑,点击文本框会出现多种编辑方式,比如收藏、复制、上传、全屏展示等等,可以根据情况选择使用。

    a65a7ad510defc6371cb66a274a60c63.png

    7:收藏夹,点击收藏后,你可以在收藏夹中找到你的文本,同时对收藏文本进行各种编辑。

    0653714aaaa82c405c0f49360ca6f709.png

    以上就是小编分享的关于中文翻译多国语言的方法,除了语音翻译外,文本翻译也同样很实用,可以根据不同的情况去选择使用。如果你刚好需要翻译,不如尝试一下小编的方法,希望可以对你有所帮助。

    展开全文
  • 一、国际化开发概述  软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同... 软件实现国际化,需具备以下两个特征:  1、对于程序中固定使用的文本元素,例如菜单栏、导航条等.
  • JAVA实现程序多语言(程序国际化)

    万次阅读 2016-05-30 22:31:53
    实现多语言环境首先可以通过Locale类创建一个本地语言环境对象,如下有三种方式: Locale locale = new Locale("zh", "CN"); Locale locale1 = Locale.US; Locale locale2 = Locale.getDefault();第一个是通过...
  • 展开全部(636f707932313133353236313431303231363533313333633662651)通过实现多个接口。(2)通过内部类实现多重继承。publicclassFather{publicintstrong(){return9;}}publicclassMother{publicintkind(){return8;}}...
  • 请教各位大牛,java web如何实现多语言化,怎样做?并且如何把从数据库读取出来的值也随选择的语言而变成相应的语言? 求教~~~谢谢!!!
  • import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;... * 生产者,消费者问题 * 在JDK5.0中可以使用Lock类
  • java实现多线程初探

    2016-04-07 11:24:46
    java实现多线程初探概述:在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持。在java中使用多线程可以基于两种方式:继承Thread类和实现Runnable接口1、基于Thread实现...
  • 高分悬赏:Java语言多线程倒计时怎么同步输出,怎么用线程来实现 高分悬赏:Java语言多线程倒计时怎么同步输出,怎么用线程来实现
  • 以下总结在不同java web 框架中如何实现网页的多语言,他们都是使用bundler. locale和message Servlet Locale locale =request.getLocale(); messages = ResourceBundle.getBundle( 
  • TEA算法多语言实现——Java

    千次阅读 2015-04-16 17:07:03
    主要分为两部分 加解密部分和编解码部分涉及两个文件1,tea.java 2,hex2byte.java /******************************************tea.java*****************************/ package javaTEA; import java.io....
  • java语言鼠标移动实现

    2019-09-12 21:21:19
    java语言鼠标移动的实现有很方法,这里是一种简单实用方法。 鼠标移动实现:鼠标移动是相对移动,即相对鼠标当前的位置而做的移动。这里我们需要获取鼠标当前位置的坐标,可以通过java.awt.MouseInfo类来获取鼠标...
  • Java 实现继承”

    万次阅读 2019-07-20 12:49:19
    Java是一种简单、面向对象、分布式、易读、鲁棒、安全、结构明晰、可移植、高性能、线程、动态的语言。 面向对象(继承、封装、多态) 一次编译,到处运行(JVM实现跨平台运行) 可靠性 安全性 支持线程...
  • md5加密算法~Java语言实现

    万次阅读 多人点赞 2020-12-08 16:07:50
    md5加密算法~Java语言实现 前言        密码是现在生活中非常常见的东西,平时使用QQ需要密码,使用微信需要密码,玩游戏等等很地方都需要用到密码。     &...
  • Java语言怎么实现多个包一样的名字进程的切换操作呢,具体怎么弄的 Java语言怎么实现多个包一样的名字进程的切换操作呢,具体怎么弄的
  • 事件委托模式是一个比较常用的设计模式,但是Java语言本身没有对其做一定的封装,因此实现起来有一定难度(了解原理后很简单),相比之下.NET就容易了很。身为一个Java爱好者,怎么向这样一个小困难低头,但是上网...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,834
精华内容 7,533
关键字:

java实现多语言

java 订阅