Java 如何在使用org.eclipse.osgi.util.NLS方法时设置不同的语言环境
在我们的eclipse应用程序中,我们使用该方法通过一个专用的nls包、messages.java和本地化的messages_xx_xx.properties文件提供本地化。这通常非常好:当在德语窗口上运行时,我们会得到德语字符串,英语窗口上的英语字符串等等 现在的请求是,用户可以切换到不同的语言。因此,即使他的Windows设置为德语,他也应该能够使用英语字符串等来运行我们的软件 这看起来并不太难,因为有几个文档描述了为Java应用程序切换语言环境的各种方法。例如,通过使用命令行开关-Duser.language和-Duser.country。或者使用本文中概述的方法: eclipse的另一种方法应该是使用eclipse的-nl开关,例如“eclipse.exe-nl-en” Noow:这些方法都不管用!无论您在德国Windows系统上做什么,无论您使用哪种方法,您都会得到德国字符串 深入研究我发现的问题,绑定到各个messages_xx_xx.properties文件的过程发生在“buildVariants”方法中的NLS.class中。在该方法中,调用“Locale.getDefault”,并从返回值中提取国家代码和语言代码,并用于组合相应的.properties文件的名称 不幸的是,在显示语言设置为德语的Windows系统上,Locale.getDefault始终返回de_de(请参阅)。因此,无论您做什么,似乎都无法使用上述任何方法更改java应用程序的默认语言环境 还是有办法Java 如何在使用org.eclipse.osgi.util.NLS方法时设置不同的语言环境,java,eclipse,locale,Java,Eclipse,Locale,在我们的eclipse应用程序中,我们使用该方法通过一个专用的nls包、messages.java和本地化的messages_xx_xx.properties文件提供本地化。这通常非常好:当在德语窗口上运行时,我们会得到德语字符串,英语窗口上的英语字符串等等 现在的请求是,用户可以切换到不同的语言。因此,即使他的Windows设置为德语,他也应该能够使用英语字符串等来运行我们的软件 这看起来并不太难,因为有几个文档描述了为Java应用程序切换语言环境的各种方法。例如,通过使用命令行开关-Duse
如果我们知道如何以编程方式重置org.eclipse.osgi.util.NLS中的nlSuffixes字段,那么它还将帮助我们尝试重新加载翻译属性文件。我自己找到了解决方案:
-vmargs
-Xmx1024m
-Xms256m
-XX:NewRatio=3
-Dosgi.nl=en_US
-Dorg.eclipse.ecf.provider.filetransfer.retrieve.connectTimeout=30000
-Dorg.eclipse.ecf.provider.filetransfer.retrieve.closeTimeout=15000
这篇文章[Java 7中的默认语言环境更改]()有帮助吗?