以其他语言临时显示文本(不是日期)

时间:2010-08-23 10:48:22

标签: java locale

我正在尝试使用其他语言在屏幕上显示某些消息(但是将日期保留为默认语言uk_eng),具体取决于用户在屏幕上查看的内容。作为一个临时的环境,我想知道用Java做最好的方法是什么。

2 个答案:

答案 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);

格式方法的第一个参数可能来自本地化属性文件。