做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 多语言_JAVA实现多语言相关推荐

  1. java跟其_java跟其他语言比有哪些优势?

    很多国信安java培训学员,在开始了解java前,都会问国信安老师们一个问题"java语言跟其他开发语言比有哪些优势?" 相信,这也是大部分小白,在加入java开发行列前,比较关心 ...

  2. java中的静态语言_java是动态语言还是静态语言?

    java是静态语言.Java是在编译时期确定的变量类型且在运行时期不能改变,在类型转换方面也是强制的,例如大范围整数类型转换为小范围整数类型时必须要强转,如int必须强制转换才能得到小范围类型byte ...

  3. java动态语言_java动态类型语言支持(三)

    invokedynamic指令 在前面java动态类型语言支持(一)(二)中我们有提到invokedynamic指令和java.lang.invoke包中的MethodHandle机制,在某种程度上他 ...

  4. java与c语言_Java与C语言的区别之我见

    Java 是由C++演变而来的,而C++却是由C 演变而来的,Java与C既有相同 的地方,但是也具备了各自的特点. 一.Java的特点 1.平台独立性 2.面向对象的技术 3.多线程 4.动态性 5 ...

  5. 仿照java做一个脚本语言_java调用其它语言脚本(python、js)

    1.背景 之前用开发过程一些功能如图像处理.相似度计算.水印等需要调用算法写的方法,但是算法一般都是用python语言进行开发.所以经常直接用java调用python脚本文件.在网上搜了很多方法也排了 ...

  6. java 调用c语言_Java 调用C语言JNI库(Hello World实例)

    要在java中调用c语言的库,一直觉得很不可思议,但是Java提供了JNI这个东西,这也就变得可能了. 作为一个码农,我们还是从最简单的 Hello World开始吧. 首先说一下我们想要做的事情. ...

  7. java调用c语言_Java调用C语言动态库(JNA方式,持续)

    过程主要分为以下几个步骤: 1.vs2017编写cpp/h代码,编译成dll,编译成功后,用depends查看库的依赖是否有缺失,也可以自己写个demo,调用这个dll中的函数,是否可以调用成功作为验 ...

  8. java 变量作用域 c语言_java - 数据结构 c语言 作用域问题

    问题用//标出来了,同样的语句为什么放入循环结果就完全不同了? #include #include #define OK 1 #define NO 0 int nn=0; typedef struct ...

  9. x的平方加y平加xy的java语言_JAVA语言及网络编程-中国大学mooc-题库零氪

    第1章 认识Java语言 单元测验1 1.使用计算机处理数据,输入原始数据必须放在下列哪个步骤之后? A.申请内存空间 B.数据处理 C.输出处理结果 D.未包含在选项中 2.如果程序中出现单词&qu ...

  10. java哪个软件编程好学吗_java好学吗?java是不是最难学的语言?

    1. java好学吗? 从某些方面来说,java比较容易学,如果是大学毕业,大学计算机专业里大多开设了java基础课程,或者学过一点编程,学起java来也会轻松不少.即使是零基础也不用担心,java可 ...

最新文章

  1. C++中STL中的大、小、相等概念
  2. Matlab中解决出现的错误使用 svmtrain (line 234) Y must be a vector or a character array.问题
  3. wamp2 php配置,Wamp2+SVN+Eclipse配置_PHP教程
  4. 手机端h5页面字体大小适配
  5. 编译原理习题(含答案)——4-7语法分析——MOOC哈尔滨工业大学陈鄞配套_学习通_慕课堂
  6. 漫游飞行_魔兽世界:德拉诺时光周 冲声望解锁德拉诺飞行好时机
  7. Using Swift with Cocoa and Objective-C(Swift 2.0版):开始--基础设置-备
  8. matlab输入变量 复数,Matlab带符号变量的复数运算及其画图问题
  9. php 并发控制中的独占锁
  10. Glib实例学习(1)单链表
  11. 【python】文件打开中文符问题
  12. 博文视点“阿里云全系列技术图书”隆重亮相2021云栖大会
  13. 在CentOS 7 1804 中 安装 使用 GitLab 11.4.3-ee (企业版、社区版最新版、或任意版本)
  14. XSS 工具之 beef
  15. hdfs写流程和MR缓冲区
  16. Unity3D 基于XLua框架实现Lua组件化开发方式(一)----基于C#调用Lua
  17. 中式客厅装修的特点 亦古亦今的惊艳每一家
  18. 【工业互联网】周剑:工业互联网平台作用机理和发展路径
  19. 文件包含漏洞(RFI)
  20. msn 登录死机问题

热门文章

  1. 苹果真伪查询_拆解报告:山寨版苹果AirPods Pro
  2. 工业相机基础知识五十问
  3. win10 常用DOS命令
  4. Android Animation之TranslateAnimation(平移动画)
  5. ue怎么转换html格式,UE编辑器UltraEdit怎么格式化代码
  6. linux zip文件解压命令详解
  7. 点餐系统+小程序常见问题解决(2022年最新版)
  8. 恢复Windows默认文件资源管理器(Files设置后,恢复亲测可用)
  9. 解决 macOS Big Sur 新安装ideaIU-2021.2.2 无法启动
  10. 数据结构算法之关键路径