语言环境:Eclipse与jar

时间:2012-12-15 23:41:10

标签: java eclipse localization locale resourcebundle

这是一个非常简单的问题,我只是不明白。

我使用messages.properties个文件和Messages类(由Eclipse生成)进行本地化。我有这段代码:

public class LocaleTest {

    public static void main(String[] args) {
        System.out.println(Messages.getString("LocaleTest.LocaleTestMessage")); //$NON-NLS-1$
    }

}

还有两个属性文件:

messages.properties

  

LocaleTest.LocaleTestMessage =这是区域设置测试。

messages_es.properties

  

LocaleTest.LocaleTestMessage = Esta es la prueba de locales。

messages.propertiesMessages.java文件由Eclipse的“Externalize Strings”函数创建( Source Externalize Strings ... )。< / p>

当我在Eclipse中运行它(通过标准 Ctrl + F11 )时,它会按预期显示“Esta es la prueba de locales”。但是当我使用默认选项导出到.jar并从命令行运行时,它会输出“这是区域设置测试。”

在GUI应用程序中,整个应用程序始终使用主要语言(来自messages.properties的字符串)。

我知道文件正在正确导出,因为如果我将以下内容添加到我的邮件类的顶部,它就可以正常工作:

static {
    Locale.setDefault(new Locale("es"));
}

我已将“非unicode程序的默认语言”设置为“西班牙语”,如here所述。

那么,为什么会发生这种情况,我该如何解决?

编辑:从命令行打印Locale.getDefault().getLanguage()会产生“英语”。从Eclipse开始,它会打印“español。”

0 个答案:

没有答案