java - 如何正确使用 java.util.Locale 检查澳大利亚语言环境

标签 java locale

问题:如何正确使用 java.util.locale 来检查用户的语言环境?

总结:我的遗留代码使用区域设置中的预定义静态来检查用户是否在法国......

if(Locale.FRANCE.equals(locale) || Locale.FRENCH.equals(locale)) {
    // do stuff
}

我想添加一些代码来检查用户是否在澳大利亚。然而,Locale 只有一组有限的预定义静态信息,而 AUSTRALIA 不是其中之一。我似乎能够执行以下操作......

if(new Locale("AU").equals(locale)) {
    // do stuff
}

但是,这与现有代码不一致。正确的做法是什么?如果我给出的第一个例子是正确的,为什么预定义的静态列表如此有限?

最佳答案

没有。 new Locale( "AU") 将是语言“AU”(无论是什么)。你需要两个参数的构造函数!

Locale.equals() 方法比较languagecountryvariant。您可能应该这样检查:

if ( "AU".equals( locale.getCountry() ) ) { /* do stuff */ }

至于为什么预定义的 Locale 列表如此有限:通过。除了 en_US 之外,我们可能应该感到荣幸:-)

干杯,

关于java - 如何正确使用 java.util.Locale 检查澳大利亚语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13289024/

相关文章:

java - Android开发与hibernate+spring

java - Java 中的循环和条件

android - 语言环境:应用程序的当前语言

javascript - Javascript 中独立于区域设置的字符串搜索

java - Tomcat 8.5 WEB-INF 内容可访问 URL

java - 是否有 Java 的包管理器,例如 Python 的 easy_install?

java - 按下主页按钮时 Android 应用程序崩溃但方向更改正常

windows - 对于 psql 在日语语言环境的 Windows 上产生可怕的乱码,是否有解决方法/修复?

python - 为什么我必须做 `sys.stdin = codecs.getreader(sys.stdin.encoding)(sys.stdin)` ?

ruby-on-rails - 如何在I18n语言环境文件中的模型之间指定共享属性转换?