发布网友 发布时间:2022-04-26 17:08
共1个回答
热心网友 时间:2022-04-12 16:34
第一个是通过指定语言和地区指定; 第二个是通过语言代码构造语言环境 第三个是获取此JAVA虚拟机实例的当前默认语言环境
实际上这里就是通过读取不同的配置文件获取不同的语言对应的字符,因此这里就用到了ResourceBundle工具类绑定资源文件。
资源文件的命名包含了语言环境的代码,我创建了下面两个中文和英文的语言文件:
这里写图片描述
IDEA直接识别不同语言环境的文件并将他们放在一起(因为它们的
基本名称
相同)
这里定义的是汉语的资源文件,通过key=value的方式保存值,直接通过key去获取就可以了,其中info.success=\u6B22\u8FCE\uff0c{0}这一行的最后一个{0}代表的是通配符,用于后续动态文本处理在下面会用得到。
通过第一个参数指定资源文件,资源文件是包名.文件基本名(基本名不包括语言部分(_en_US)和资源后缀部分(.properties)),然后通过第二个参数指定当前的语言环境,然后就可以根据不同的语言环境寻找不同的资源文件,从中读取不同的语言字符,从属性文件中通过key获取value值如下:
直接通过之前new的ResourceBundle类的getString方法通过在参数中传入key的值就可返回要取到的value的值。其中之前说到的动态文本处理使用到java.text.MessageFormat类,用来处理动态文本,这里简单使用如下:
其中format是MessgeFormat的一个静态方法,该方法的第一个参数就是要进行动态处理的字符串,infoSuccess就是之前获取到的包含通配符{0}的一个字符串,后续的参数个数可变,分别对应前面字符串中的通配符,这样修改之后就可以达到动态处理文本了。
下面例子是一个模拟用户登陆的例子,可以通过分别指定不同的locale进而显示不同的语言,下面分别是各个文件的源码,如下:
在上面的文件当中实际分别为中文的unicode编码。
当语言环境使用locale时执行如下:
这里写图片描述
当语言环境使用locale1时执行如下: