先介绍几个术语:
-
i18n:
就是internationalization,
国际化,由于首字母"i"和末尾字母"n"间有18个字符,所以简称i18n.
internationalization指为了使应用程序能适应不同的语言和地区间的变化而不作系统性的变化所采取的设计措施。
-
l10n:
就是localization,
本地化,由于首字母"l"和末尾字母"n"间有10个字母,所以简称l10n.
localization指为了使应用软件能够在某一特定语言环境或地区使用而加入本地特殊化部件和翻译后文本的过程。
-
locale:
简单来说是指语言和区域进行特殊组合的一个标志。
1.文字的本地化
import java.util.ResourceBundle;
import java.util.Locale;
public class I18nDemo1
{
static public void main(String arg[]) {
Locale loc;
ResourceBundle bundle;
/* File: Demo1_en_US.properties
*/
loc = new Locale("en","US");
bundle = ResourceBundle.getBundle("Demo1
",loc);
System.out.println(bundle.getString("greeting"));
System.out.println(bundle.getString("question"));
System.out.println(bundle.getString("farewell"));
System.out.println("--------------------------");
/* File: Demo1_en_US_TX.properties
*/
loc = new Locale("en","US","TX
");
bundle = ResourceBundle.getBundle("Demo1
",loc);
System.out.println(bundle.getString("greeting"));
System.out.println(bundle.getString("question"));
System.out.println(bundle.getString("farewell"));
}
}
而本地化配置文件如下:
Demo1_en_US.properties:
greeting = Hello.
farewell = Goodbye.
question = Are you ready?
Demo1_en_US_TX.properties:
greeting = Howdy.
farewell = S'long.
question = Is your gun loaded?
国际化资源文件的命名规范规定资源名称采用以下的方式进行命名:<资源名>_<语言代码>_<国家/地区代码>.properties
其中,语言代码和国家/地区代码都是可选的。
2.数字的本地化:
import java.util.Locale;
import java.util.Date;
import java.text.NumberFormat;
import java.text.DateFormat;
public class I18nDemo2 {
static public void main(String arg[]) {
I18nDemo2 demo = new I18nDemo2();
demo.showLoc(new Locale("en","US"));
System.out.println("-----------");
demo.showLoc(new Locale("fr","FR"));
System.out.println("-----------");
demo.showLoc(new Locale("de","DE"));
}
public void showLoc(Locale loc) {
NumberFormat nfmt;
DateFormat dfmt;
System.out.println(loc);
nfmt = NumberFormat.getNumberInstance(loc);
System.out.println(nfmt.format(123456));
System.out.println(nfmt.format(123456.78));
nfmt = NumberFormat.getCurrencyInstance(loc);
System.out.println(nfmt.format(123456.78));
nfmt = NumberFormat.getPercentInstance(loc);
System.out.println(nfmt.format(.78));
dfmt = DateFormat.getDateInstance(DateFormat.DEFAULT,loc);
System.out.println(dfmt.format(new Date()));
}
}
3.看看到底支持什么本地化:
import java.util.Locale;
import java.text.NumberFormat;
public class I18nDemo3 {
static public void main(String arg[]) {
Locale loc[] = NumberFormat.getAvailableLocales();
for(int i=0; i<loc.length; i++)
System.out.println(loc[i]);
}
}
分享到:
相关推荐
——————————————————————————————————————————————
Java JDK 6学习笔记——ppt简体版.rar
Java JDK 6学习笔记——ppt简体版加课本代码
Java JDK 6学习笔记——ppt简体版
Java JDK 6学习笔记——ppt简体版 第21章.ppt
Java JDK 6学习笔记——ppt简体版 第20章.ppt
Java JDK 6学习笔记——ppt简体版 第19章.ppt
Java JDK 6学习笔记——ppt简体版 第18章.ppt
Java JDK 6学习笔记——ppt简体版 第17章.ppt
良葛格的Java学习笔记~讲解得非常详细。JDK5.0的~是Java入门的不错选择。
STM32H743IIT6学习笔记04——移植LetterShell,演示工程源码下载链接
良葛格————JavaJDK5.0学良葛格————JavaJDK5.0学习笔记PDF.rar习笔记PDF.rar良葛格良葛格————JavaJDK5.0学习笔记PDF.rar————JavaJDK5.0学习笔记PDF.rar良葛格————JavaJDK5.0学习笔记PDF.rar良...
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...
此资源为我跟着B站up主【遇见狂神说】java系列视频中前端入门部分学习过程中所写 大部分和视频保持一致,有一些自己的理解和一些扩展的部分