6

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

摘要:我拥有的遗留代码在 Locale 中使用预定义的静态来检查用户是否,例如,在法国......

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

我想添加一些代码来检查用户是否在澳大利亚。但是,Locale 只有一组有限的预定义静态变量,而 AUSTRALIA 不是其中之一。我似乎能够做到以下几点......

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

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

4

1 回答 1

7

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

这些Locale.equals()方法比较language,countryvariant。您可能应该像这样检查:

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

至于为什么预定义的列表Locale如此有限:通过。我们可能应该感到荣幸的是,根本没有任何东西en_US:-)

干杯,

于 2012-11-08T12:26:35.510 回答