随着国际化的潮流,越来越多的APP产品开发了多个国际版本。而在网页产品中,很多就是对于网页上显示的文字内容进行了一个翻译操作,根据用户的需求翻译为不同的语言。

java提供了一个强大的Locale类可以帮助我们实现这一功能。

locale类提供了三种初始化的方法,每一个初始化的方法需要的参数个数不同。一共有三个参数:

language:这个是一个必须的参数,初始化需要使用的语言。

比如:en(英语),zh(中文), de(德语)等等。

country:国家,指定语言的国家版本。

比如:US,CA等等。

variant:个人把这个理解为类别,比如有四川话,湖南话等等,但都是中文。

public Locale(String language, String country, String variant) {

if (language== null || country == null || variant == null) {

throw new NullPointerException();

}

baseLocale = BaseLocale.getInstance(convertOldISOCodes(language), "", country, variant);

localeExtensions = getCompatibilityExtensions(language, "", country, variant);

}

public Locale(String language, String country) {

this(language, country, "");

}

public Locale(String language) {

this(language, "", "");

}

接下来讲一讲locale的应用。

创建需要properties文件,以及对应的不同语言的版本。放在resource目录下。文件的内容

test=文件名。

简单的进行一个测试

package com.leetcode.arrayAndString;

import java.util.Locale;

import java.util.ResourceBundle;

/**

* created by Eden

*/

public class ResouceTest {

public static void main(String[] args) {

//对应获取到的文件就是test_zh

Locale locale1 = new Locale("zh");

ResourceBundle resourceBundle1 = ResourceBundle.getBundle("test", locale1);

System.out.println("locale1:" + resourceBundle1.getString("test"));

//对应获取到的文件应该是是test_de,但这个文件不存在,获取系统默认的locale初始化的文件test_en_US,因为系统的初始化环境的locale的language是en,country是US.

//该文件不存在进一步获取test_en,依旧不存在则获取test文件,都不存在则会报错。

Locale locale2 = new Locale("de");

ResourceBundle resourceBundle2 = ResourceBundle.getBundle("test", locale2);

System.out.println("locale2:"+resourceBundle2.getString("test"));

//对应获取到的文件就是test_en

Locale locale3 = new Locale("en");

ResourceBundle resourceBundle3 = ResourceBundle.getBundle("test", locale3);

System.out.println("locale3:"+resourceBundle3.getString("test"));

//对应获取到的文件就是test_de_CA_1

Locale locale4 = new Locale("de", "CA", "1");

ResourceBundle resourceBundle4 = ResourceBundle.getBundle("test", locale4);

System.out.println("locale5:"+resourceBundle4.getString("test"));

//对应获取到的文件就是test_de_CA_2

Locale locale5 = new Locale("de", "CA", "2");

ResourceBundle resourceBundle5 = ResourceBundle.getBundle("test", locale5);

System.out.println("locale5:"+resourceBundle5.getString("test"));

//对应获取到的文件就是test_en_US

Locale locale6 = new Locale("en","US");

ResourceBundle resourceBundle6 = ResourceBundle.getBundle("test", locale6);

System.out.println("locale6:"+resourceBundle6.getString("test"));

}

}

测试结果

可以根据初始化locale的语言参数(language),国家参数(country),类别参数(variant),获取不同文件里面的内容。

在实际项目中就可以根据前端用户选择的语言、国家等来初始化locale,从而实现页面的翻译。

java locale 印尼_java国际化Locale详解相关推荐

  1. java bundle_java.util.ResourceBundle国际化用法详解

    初识国际化和ResourceBundle 这个类主要用来解决国际化和本地化问题.国际化和本地化可不是两个概念,两者都是一起出现的.可以说,国际化的目的就是为了实现本地化,详细的介绍可以看本文的最后.比 ...

  2. java super实例_java Super 用法详解及实例代码

    java Super 用法详解及实例代码 发布于 2021-1-8| 复制链接 摘记: java  Super 用法详解 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建 ...

  3. java enum 变量_java枚举使用详解

    package com.ljq.test; /** * 枚举用法详解 * * @author jiqinlin * */ public class TestEnum { /** * 普通枚举 * * ...

  4. java异常体系_JAVA异常体系结构详解

    一.什么是异常 异常:程序在运行过程中发生由于硬件设备问题.软件设计错误等导致的程序异常事件.(在Java等面向对象的编程语言中)异常本身是一个对象,产生异常就是产生了一个异常对象.      --百 ...

  5. java list用法_Java List 用法详解及实例分析

    Java List 用法详解及实例分析 Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺 ...

  6. java linkedlist 节点_JAVA学习-LinkedList详解

    1.定义 实现List接口与Deque接口双向链表,实现了列表的所有操作,并且允许包括null值的所有元素,对于LinkedList定义我产生了如下疑问: 1.Deque接口是什么,定义了一个怎样的规 ...

  7. java abstract 变量_Java基础知识详解:abstract修饰符

    abstract详解 abstract一般用来修饰类和方法. 1.abstract修饰类 abstract修饰类,会使得类变成抽象类,抽象类不能生成实例,但是可以作为对象变量声明的类型,也就是编译时类 ...

  8. java backlog满_java socket参数详解:BackLog

    输入连接指示(对连接的请求)的最大队列长度被设置为 backlog 参数.如果队列满时收到连接指示,则拒绝该连接. 注意: 1. backlog参数必须是大于 0 的正值.如果传递的值等于或小于 0, ...

  9. java 正则 实例_Java正则表达式实例详解

    创建正则表达式 你可以从比较简单的东西入手学习正则表达式.要想全面地掌握怎样构建正则表达式,可以去看JDK 文档的java.util.regex 的Pattern 类的文档. 字符 B 字符B \xh ...

最新文章

  1. 【发现】彻底清除www.go2000.cc的清除方法
  2. 创建型模式之Builder模式
  3. this.Index = this._count - 1
  4. C语言 用代码将10进制转换为2进制表示
  5. 采用CSS+JS实现简洁的滑动导航栏_网页代码站(www.webdm.cn)
  6. 网络游戏中用到哪些计算机技术,美术设计中计算机技术的应用论文
  7. 2.Idea分支的merge
  8. 科大讯飞语音识别demo
  9. 51单片机开发工具安装
  10. 2008服务器远程开启,windows server 2008 r2中开启远程桌面的方法
  11. 彻底理解差模共模 输入信号
  12. 淘气的小丁-使用jQuery实现漂浮气球的效果
  13. 华三防火墙web端口_华三防火墙开放端口 华三防火墙怎么登录
  14. vivo Y79的Usb调试模式在哪里,打开vivo Y79Usb调试模式的方法
  15. electron打开系统默认浏览器
  16. 【量化金融】多因子选股策略
  17. 阿里云是如何实现云视频直播的?
  18. 全新轻量级ViT!LVT:具有增强自注意力的Lite视觉Transformer
  19. 马来西亚:央行与证监会联合实施数字货币与ICO监管
  20. 如何用一颗芯片实现5V转正负12V

热门文章

  1. JCJC错别字检测新功能:检测日期格式
  2. Unity AVPro视频播放路径问题(andriod和pc)
  3. 运用python爬取股票的股吧评论、新闻报道(附完整代码)
  4. 【CS224图机器学习】task1 图机器学习导论
  5. 【杭州云栖·智能服务专场】AI+服务 阿里巴巴如何做智能服务转型?
  6. 从技术雷达看DevOps的十年 – 基础设施即代码和云计算
  7. 聚甲基丙烯酸甲酯(PMMA)微球PMMA Beads
  8. 波的一种分类:机械波和电磁波
  9. TS 判断字符串是否为手机号码
  10. 运营小技能:大众熟知的写作平台分析