Java i18n工作记录2
版权声明:本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者署名及本版权声明。
1、书接上文,继续实现多语言的Java显示,我的系统是WindowsXP+SP1(BTW:不知道现在升SP2还可不可以,激活等等有没有问题,据说IE7只能在SP2上运行,什么时候还是得把它升了),把字体文件Tibetan Machine Uni拷到windows/fonts目录下。
2、修改font.properties文件,从http://java.sun.com/j2se/1.4.2/docs查文档:
程序运行时JRE能找到如下的文件:(按先后顺序)
JavaHome/lib/font.properties.Language_Country_Encoding.OSVersion
JavaHome/lib/font.properties.Language_Country_Encoding.OS
JavaHome/lib/font.properties.Language_Country_Encoding.Version
JavaHome/lib/font.properties.Language_Country_Encoding
JavaHome/lib/font.properties.Language_Country.OSVersion
JavaHome/lib/font.properties.Language_Country.OS
JavaHome/lib/font.properties.Language_Country.Version
JavaHome/lib/font.properties.Language_Country
JavaHome/lib/font.properties.Language_Encoding.OSVersion
JavaHome/lib/font.properties.Language_Encoding.OS
JavaHome/lib/font.properties.Language_Encoding.Version
JavaHome/lib/font.properties.Language_Encoding
JavaHome/lib/font.properties.Language.OSVersion
JavaHome/lib/font.properties.Language.OS
JavaHome/lib/font.properties.Language.Version
JavaHome/lib/font.properties.Language
JavaHome/lib/font.properties.Encoding.OSVersion
JavaHome/lib/font.properties.Encoding.OS
JavaHome/lib/font.properties.Encoding.Version
JavaHome/lib/font.properties.Encoding
JavaHome/lib/font.properties.OSVersion
JavaHome/lib/font.properties.OS
JavaHome/lib/font.properties.Version
JavaHome/lib/font.properties
其中
- JavaHome – JRE安装目录
- Language – locale语言
- Country – locale国家
- Encoding – 编码名
- OS – 操作系统名:
- For Windows, "NT", "98", "2000", "Me", "XP".
- For Solaris, empty.
- For Linux, "Redhat", "Turbo", "SuSE".
- Version – 操作系统版本.
3、在jre/lib下修改一个文件font.properties,把font.properties.zh中的内容拷进来,重新font mapping,修改所有这样的内容:
dialog.plain.0=Arial,ANSI_CHARSET
dialog.plain.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.plain.2=WingDings,SYMBOL_CHARSET
dialog.plain.3=Symbol,SYMBOL_CHARSET
dialog.bold.0=Arial,ANSI_CHARSET
dialog.bold.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.bold.2=WingDings,SYMBOL_CHARSET
dialog.bold.3=Symbol,SYMBOL_CHARSET
dialog.italic.0=Arial,ANSI_CHARSET
dialog.italic.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.italic.2=WingDings,SYMBOL_CHARSET
dialog.italic.3=Symbol,SYMBOL_CHARSET
dialog.bolditalic.0=Arial,ANSI_CHARSET
dialog.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET
dialog.bolditalic.2=WingDings,SYMBOL_CHARSET
dialog.bolditalic.3=Symbol,SYMBOL_CHARSET
dialoginput.plain.0=Courier New,ANSI_CHARSET
dialoginput.plain.1=\u5b8b\u4f53,GB2312_CHARSET
dialoginput.plain.2=WingDings,SYMBOL_CHARSET
dialoginput.plain.3=Symbol,SYMBOL_CHARSET
……
先把中文的字体变一下,看看行不行。
其中"*.0=.." 是描述英文该用什么字体,所有 "*.1=…" 是描述中文该用什么字体。
上面的“\u5b8b\u4f53”就是中文“宋体”的unicode码,全部改为“\u9ED1\u4f53”(黑体),看看有没有变化。
4、没用,字符全部变成了方框,字体文件映射不对。还要改这部分:
# Font File Names
#
filename.\u5b8b\u4f53=SIMSUN.TTF
改为
# Font File Names
#
filename.\u96B6\u4f53=SIMHEI.TTF
其中SIMHEI.TTF是黑体的文件名。
5、这下不用在程序中setfont()了,程序中的中文全部变成了黑体。
6、注意windows下字体名和字体文件名的差别。
7、等下再建立font.properties.mk_MK,切换语言。

最新评论