Locale类是用来国际化数据的 每一个locale对象都代表一个特定的的确,政治文化,地区和创建方法 首先是创建方法: // 方法一:调用默认的locale Locale locale = Locale.getDefault(); // zh-CN 华 - 中国 zh-HK 华 - 香港 SARzh-MO 华 - 澳门 System.out.println("locale:"+locale); //方法二:使用Locale.java中的静态对象,有很多 Locale locale1=Locale.KOREA; System.out.println("locale1:"+locale1); //方法三:自动创建 Locale enLocale = new Locale("en"); Locale locale1= new Locale;("语言代号如zh", "国家代号如CN"); System.out.println("locale1:"+locale1); Locale的相关方法 方法声明 功能描述 String getCountry() 获取Locale实例对象的ISO国家代码 String getLanguage() 获取Locale实例对象的ISO语言代码 String getVariant() 获取Locale实例对象的变量编码 String getDisplayCountry() 获取Locale实例对象适合显示给用户的国家名称 String getDisplayCountry(Locale inLocale) String getDisplayLanguage() 获取Locale实例对象适合显示给用户的语言名称 String getDisplayLanguage(Locale inLocale) String getDisplayName() 获取Local实例对象显示的名称 String getDisplayName(Locale inLocale) ResourceBundle类:处理固定文本 在设计一个国际化的应用时,应该把程序显示的文本内容(例如,菜单和按钮的标题)从源文件中分离出来,放在独立的资源文件(扩展名为.properties的文件)中,并针对不同的本地环境编写不同的资源文件 方法: 构造: getBundle(String baseName) getBundle(String baseName,Locale locale) 成员: getString(String key)返回此资源束中相应密钥的值 使用: Locale locale=Locale.US; ResourceBundle myResources= ResourceBundle.getBundle("MyResources",locale); myResources.getString(String key) MessageFormat类:处理动态文本 该类提供了一种用参数替换模式字符串中的占位符的方式,它将根据模式字符串中包含的占位符产生一系列的格式化对象,然后调用这些格式化对象对参数进行格式化,并将格式化后的结果字符串插入到模式字符串中的适当位置。 On {0},there was {1} on planet {2}. 上述的模式字符串中,花括号以及花括号内的数字被称为占位符,如{0}、{1},这些占位符都会被MessageFormat格式化的参数所代替。 方法: 构造:public MessageFormat(String pattern) public MessageFormat(String pattern, Locale locale) 成员: format()方法 例:String pattern = "On {0},{1} destroyed {2} houses and caused {3} of damage."; Object[] msgArgs = {"2010.11.03", "a hurricance", "100", "2000000"}; MessageFormat mf = new MessageFormat(pattern); String result = mf.format(msgArgs);
国际化Locale,ResourceBundle,MessageFormat
最新推荐文章于 2023-07-21 17:34:42 发布