我正在尝试使用其他语言在屏幕上显示某些消息(但是将日期保留为默认语言uk_eng),具体取决于用户在屏幕上查看的内容。作为一个临时的环境,我想知道用Java做最好的方法是什么。
答案 0 :(得分:3)
您可以为每个区域设置包含消息包。加载这些并在识别用户的区域设置时适当显示它们。
一个例子是http://java.sun.com/developer/onlineTraining/Programming/BasicJava2/int.html
您可以在网络应用中加载http://www.devsphere.com/mapping/docs/guide/internat.html
答案 1 :(得分:0)
如果我发现问题,您希望显示MessageFormat
这样的消息:
Object[] arguments = {
new Integer(7),
new Date(System.currentTimeMillis()),
"a disturbance in the Force"
};
String result = MessageFormat.format(
"At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
arguments);
(来自javadoc的例子)
我检查了MessageFormat
的来源,我发现getLocale()
对于整个邮件来说很常见。你不能为参数制作一个独特的参数。
为什么不用格式化的日期字符串本身创建参数?像这样:
Object[] arguments = {
new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa", Locale.UK).format(new Date())
};
String result = MessageFormat.format(
"This is the date format which I always want independently of the locale: {1} ",
arguments);
格式方法的第一个参数可能来自本地化属性文件。