Struts可以利用外部资源文件来实现国际化,那么一个标准的带有main()方法的JAVA应用程序如何实现利用外部资源文件的国际化? 大家多指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如何利用java.util.ResourceBundle来将程序与外部资源文件联系起来? 带有main() 和web有什么不同吗? 路过..........友情UP......//___________送个笑话____________一个年轻力壮的男子来到西药店里,表示要买一种效力强大、保证持久的春药,他向老板解释道:“今天晚上,我要应付两个骚女子,我要表现我的厉害给她们看看。” 药剂师给了他一些保证有效的药丸,并且建议他最好立刻服用,因为药性要过一段时间才会生效。男子照着做后,回去等他的客人。 第二天,他狼狈不堪的来到西药店。 “你看起来好像精疲力尽了。”药剂师微笑的说道。 “别提了!”男子呻吟道:“给我一点破皮软膏。” “擦你的……” “擦我的手,她们昨晚都没来!”男子咆哮道。 www.xiaohua007.com Struts的国际化的细节对我们来说是透明的,所以我无法把它的细节移植到标准应用程序中来 原理是一样的,都是用标签来解决显示的内容,用xml完全可以做到 myconfig.properties文件中的内容btnOk = OKbtnCancel = END-----------myconfig_zh.properties文件中的内容btnOk = 确定btnCancel = 取消-----------//ResourceBundleTest.javaimport java.util.ResourceBundle;import java.util.Locale;public class ResourceBundleTest{ public static void main(String[] args) { Locale.setDefault(Locale.CHINA); ResourceBundle resources = ResourceBundle.getBundle("myconfig"); String okStr = resources.getString("btnOk"); String cancelStr = resources.getString("btnCancel"); System.out.println(okStr); System.out.println(cancelStr); try { okStr = new String(okStr.getBytes("ISO-8859-1")); cancelStr = new String(cancelStr.getBytes("ISO-8859-1")); System.out.println(okStr); System.out.println(cancelStr); } catch(java.io.UnsupportedEncodingException e) { e.printStackTrace(); } }} 只要認真讀一讀Struts的源代碼就知道了。 十分感谢“hujiaboy(勿以恶小而不为) ” 我还有一个问题,那就是,在一个工程之中,java代码如果都放在了code包裹下面,property文件都放在了pro包裹下面,那么如何实现“hujiaboy(勿以恶小而不为) ”回复的那种国际化方法 “hujiaboy(勿以恶小而不为) ”回复的那种国际化方法必须将资源property文件与java编译后的文件放置在同一个目录下 zh_CN.propertiesen_US.properties这些都写一遍可以么? 和访问JAVA类没区别比如把资源文件放在src/com/abc/xyz下名称为Test.properties和Test_zh_CN.properties调用就是ResourceBundle resources = ResourceBundle.getBundle("com.abc.xyz.Test"); Calendar日期设置问题? 关于组件大小排版的一点困惑 equals是怎么回事? java 多线程监控的问题 哪位有java swing 编程方面的资料? 关于JAVA的SQL转义问题,请高手来解决 关于javap的使用问题 如何判断一个java字符串中是否含有半角字符? 请问java客户端报表打印提取数据时一定要用RMI吗? 线程同步的输出的问题,在线等 关于GUI事件监听的问题。。 package的使用
一个年轻力壮的男子来到西药店里,表示要买一种效力强大、保证持久的春药,他向老板解释道:“今天晚上,我要应付两个骚女子,我要表现我的厉害给她们看看。”
药剂师给了他一些保证有效的药丸,并且建议他最好立刻服用,因为药性要过一段时间才会生效。男子照着做后,回去等他的客人。
第二天,他狼狈不堪的来到西药店。
“你看起来好像精疲力尽了。”药剂师微笑的说道。
“别提了!”男子呻吟道:“给我一点破皮软膏。”
“擦你的……”
“擦我的手,她们昨晚都没来!”男子咆哮道。 www.xiaohua007.com
btnOk = OK
btnCancel = END
-----------
myconfig_zh.properties文件中的内容
btnOk = 确定
btnCancel = 取消-----------
//ResourceBundleTest.java
import java.util.ResourceBundle;
import java.util.Locale;public class ResourceBundleTest
{
public static void main(String[] args)
{
Locale.setDefault(Locale.CHINA);
ResourceBundle resources = ResourceBundle.getBundle("myconfig");
String okStr = resources.getString("btnOk");
String cancelStr = resources.getString("btnCancel");
System.out.println(okStr);
System.out.println(cancelStr);
try
{
okStr = new String(okStr.getBytes("ISO-8859-1"));
cancelStr = new String(cancelStr.getBytes("ISO-8859-1"));
System.out.println(okStr);
System.out.println(cancelStr);
}
catch(java.io.UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
}
en_US.properties
这些都写一遍可以么?
比如把资源文件放在src/com/abc/xyz下名称为Test.properties和Test_zh_CN.properties
调用就是
ResourceBundle resources = ResourceBundle.getBundle("com.abc.xyz.Test");