java 多语言_JAVA实现多语言
做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实现多语言相关推荐
- java跟其_java跟其他语言比有哪些优势?
很多国信安java培训学员,在开始了解java前,都会问国信安老师们一个问题"java语言跟其他开发语言比有哪些优势?" 相信,这也是大部分小白,在加入java开发行列前,比较关心 ...
- java中的静态语言_java是动态语言还是静态语言?
java是静态语言.Java是在编译时期确定的变量类型且在运行时期不能改变,在类型转换方面也是强制的,例如大范围整数类型转换为小范围整数类型时必须要强转,如int必须强制转换才能得到小范围类型byte ...
- java动态语言_java动态类型语言支持(三)
invokedynamic指令 在前面java动态类型语言支持(一)(二)中我们有提到invokedynamic指令和java.lang.invoke包中的MethodHandle机制,在某种程度上他 ...
- java与c语言_Java与C语言的区别之我见
Java 是由C++演变而来的,而C++却是由C 演变而来的,Java与C既有相同 的地方,但是也具备了各自的特点. 一.Java的特点 1.平台独立性 2.面向对象的技术 3.多线程 4.动态性 5 ...
- 仿照java做一个脚本语言_java调用其它语言脚本(python、js)
1.背景 之前用开发过程一些功能如图像处理.相似度计算.水印等需要调用算法写的方法,但是算法一般都是用python语言进行开发.所以经常直接用java调用python脚本文件.在网上搜了很多方法也排了 ...
- java 调用c语言_Java 调用C语言JNI库(Hello World实例)
要在java中调用c语言的库,一直觉得很不可思议,但是Java提供了JNI这个东西,这也就变得可能了. 作为一个码农,我们还是从最简单的 Hello World开始吧. 首先说一下我们想要做的事情. ...
- java调用c语言_Java调用C语言动态库(JNA方式,持续)
过程主要分为以下几个步骤: 1.vs2017编写cpp/h代码,编译成dll,编译成功后,用depends查看库的依赖是否有缺失,也可以自己写个demo,调用这个dll中的函数,是否可以调用成功作为验 ...
- java 变量作用域 c语言_java - 数据结构 c语言 作用域问题
问题用//标出来了,同样的语句为什么放入循环结果就完全不同了? #include #include #define OK 1 #define NO 0 int nn=0; typedef struct ...
- x的平方加y平加xy的java语言_JAVA语言及网络编程-中国大学mooc-题库零氪
第1章 认识Java语言 单元测验1 1.使用计算机处理数据,输入原始数据必须放在下列哪个步骤之后? A.申请内存空间 B.数据处理 C.输出处理结果 D.未包含在选项中 2.如果程序中出现单词&qu ...
- java哪个软件编程好学吗_java好学吗?java是不是最难学的语言?
1. java好学吗? 从某些方面来说,java比较容易学,如果是大学毕业,大学计算机专业里大多开设了java基础课程,或者学过一点编程,学起java来也会轻松不少.即使是零基础也不用担心,java可 ...
最新文章
- C++中STL中的大、小、相等概念
- Matlab中解决出现的错误使用 svmtrain (line 234) Y must be a vector or a character array.问题
- wamp2 php配置,Wamp2+SVN+Eclipse配置_PHP教程
- 手机端h5页面字体大小适配
- 编译原理习题(含答案)——4-7语法分析——MOOC哈尔滨工业大学陈鄞配套_学习通_慕课堂
- 漫游飞行_魔兽世界:德拉诺时光周 冲声望解锁德拉诺飞行好时机
- Using Swift with Cocoa and Objective-C(Swift 2.0版):开始--基础设置-备
- matlab输入变量 复数,Matlab带符号变量的复数运算及其画图问题
- php 并发控制中的独占锁
- Glib实例学习(1)单链表
- 【python】文件打开中文符问题
- 博文视点“阿里云全系列技术图书”隆重亮相2021云栖大会
- 在CentOS 7 1804 中 安装 使用 GitLab 11.4.3-ee (企业版、社区版最新版、或任意版本)
- XSS 工具之 beef
- hdfs写流程和MR缓冲区
- Unity3D 基于XLua框架实现Lua组件化开发方式(一)----基于C#调用Lua
- 中式客厅装修的特点 亦古亦今的惊艳每一家
- 【工业互联网】周剑:工业互联网平台作用机理和发展路径
- 文件包含漏洞(RFI)
- msn 登录死机问题
热门文章
- 苹果真伪查询_拆解报告:山寨版苹果AirPods Pro
- 工业相机基础知识五十问
- win10 常用DOS命令
- Android Animation之TranslateAnimation(平移动画)
- ue怎么转换html格式,UE编辑器UltraEdit怎么格式化代码
- linux zip文件解压命令详解
- 点餐系统+小程序常见问题解决(2022年最新版)
- 恢复Windows默认文件资源管理器(Files设置后,恢复亲测可用)
- 解决 macOS Big Sur 新安装ideaIU-2021.2.2 无法启动
- 数据结构算法之关键路径