java - java.lang.System.properties 的内容是否随区域设置而变化?

标签 java localization internationalization

我不习惯必须考虑 i18n 的东西。我为 Java 程序编写了这个方法:

boolean isWindows()
{
    return System.getProperty("os.name").toLowerCase().contains("windows");
}

我需要此检查以便为特定于 Windows 的 JVM 错误提供解决方法。

我突然想到这个程序可能需要在没有选择英语的系统上运行,这会导致这行代码中断吗?

也许我应该澄清一下,我问这个问题是希望看到人们可以挖掘出什么证据(所以我对将这段代码公开发表感觉更好)。带有文档链接、实验证据或某种支持性理由的答案会得到优先考虑。

最佳答案

直截了当,您想知道操作系统名称(由 os.name 属性返回)是否可以国际化并包含其他语言的 windows 一词?

我会说 99% 的人不会,因为 Microsoft Windows 是一个商标(或其他什么,IANAL)并且可能没有翻译并保持原样.然而,我looked up Apache Commons Lang 中 IS_OS_WINDOWS 属性的定义 SystemUtils类(class)。删除所有间接层后,一切都归结为:

System.getProperty("os.name").startsWith("Windows");

我并不是说这是一个证明,但我倾向于相信这样完善的图书馆。

关于java - java.lang.System.properties 的内容是否随区域设置而变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6767933/

相关文章:

JavaScript 文化敏感货币格式

ruby-on-rails - Ruby On Rails I18n-错误的本地化。full_messages可在一个服务器上运行,但不能在另一台服务器上运行

java - GWT 中的本地化选项

grails - Grails 2.4.4使用已删除的i18n文件

java - 诺基亚 J2ME 上的 getRequestCode

java - Ant 构建文件的问题

php - 如何在 Ubuntu 上安装 php 本地化字符串

java - ListView内存问题

java - 在 Java 中同时使用鼠标监听器和按键监听器

iOS:如何在不重新启动应用程序的情况下以编程方式更改应用程序语言?