软件的本地化,一个软件在某个国家或者地区使用时,采用该国家或地区的语言,数字、货币、日期等习惯。
软件的国际化:软件开发时,让它能支持多个国家和地区的本地化应用。使得应用软件能够适应多个地区的语言和文化风俗习惯。
随用户区域信息而变化的数据称为本地信息敏感数据。例如数字,货币等数据。
应用程序的国际化就是在应用软件的设计阶段,使软件能够支持多个国家和地区的用户习惯。
一、Locale类
一个 Locale对象代表一个特定的地理、政治或文化区。操作需要一个 Locale执行其任务称为现场敏感和使用 Locale定制信息的用户。例如,显示一个数字是一个区域设置敏感的操作-该数字应该被格式化,根据用户的母语国家,地区或文化的习俗和惯例。
使用:
public class LocaleTest {
@Test
public void test1() throws Exception{
System.out.println(Locale.CHINA);
System.out.println(Locale.US);
System.out.println(Locale.FRANCE);
System.out.println(Locale.TAIWAN);
}
}
结果:(语言_国家)
二、Format类
使用:
public class FormatTest {
//日期
@Test
public void testFormat() throws Exception{
System.out.println("DateFormat日期:");
System.out.println(new Date());
System.out.println(DateFormat.getInstance().format(new Date()));
}
//货币
@Test
public void testNumberFormat() throws Exception{
System.out.println("NumberFormat:货币");
Double money = 123456.123;
NumberFormat format = NumberFormat.getCurrencyInstance(Locale.CHINA);
System.out.println(format.format(money));
}
//拼接
@Test
public void MessageFormatDemo() throws Exception{
System.out.println("MessageFormat:拼接");
String pattern = "我是{5},你是{0},他是{1},她是{2},它是{3},他们{4}";
String str = MessageFormat.format(pattern, "A","B","C","D","E","F");
System.out.println(str);
}
//可以用于拼接SQL语句
@Test
public void testSql() throws Exception{
String sql = "SELECT * FROM {0} {1}";
String ret = MessageFormat.format(sql, "product","WHERE productName LIKE ?");
System.out.println(ret);
}
}
结果:
小实例:
资源文件:
其中app_en_US.properties是“美国”有关资源文件
app_en_CN.properties是“中国”有关资源文件
app.properties是默认资源文件(一般为英文)
app_en_US.properties:
username=will
company=see
app_en_CN.properties:(无需修改文件编码)
username=\u5F20\u4E09
company=\u963F\u91CC\u5DF4\u5DF4
ResourceBundleDemo.java:
public class ResourceBundleDemo {
public static void main(String[] args) {
//ResourceBundle可以读取资源文件,获取其中的信息
ResourceBundle rb = ResourceBundle.getBundle("app",Locale.CHINA);
String username = rb.getString("username");
String company = rb.getString("company");
System.out.println(username+","+company);
}
}
若是CHINA:
若是US:
如果要添加多个国家,只需要增加资源文件即可,资源文件中设置需要修改的属性和所对应的值,用户需要哪个国家可以随意切换。