私は実際にこれら 2 つの形式をテストしましたが、私のサーバーは両方とも問題ありません。HTTP ヘッダー フィールドは "en-US" がフォーマットで、ローカル Java クラスは "en_US" を返しているため、どちらを使用するか少し混乱しています。
私の部分的なコードは次のようなものです:
// set accepted language
List<String> acceptedLanguages = null;
final Locale defaultLocale = Locale.getDefault(); // en
if (defaultLocale != null)
{
final String defaultLang = defaultLocale.toString(); // en_US
if (!TextUtils.isEmpty(defaultLang))
{
acceptedLanguages = new ArrayList<String>();
acceptedLanguages.add(defaultLang);
// Always add en as fallback if applicable
if (!HttpClient.DEFAULT_ACCEPTED_LANGUAGE_COUNTRY.equals(defaultLang))
{
acceptedLanguages.add(HttpClient.DEFAULT_ACCEPTED_LANGUAGE_COUNTRY);
}
}
}
String header = HttpClient.getAcceptLanguageHeader(acceptedLanguages); // like: cz_CH;q=1.0, en_US;q=0.9
this.mHttpGetRequest.addHeader(HttpHeaders.ACCEPT_LANGUAGE, header);
getAcceptLanguageHeader()
en_US;q=0.9
メソッドは、ユーザーのデバイス言語が not の場合、文字列に追加しますen_US
。
任意のアイデアをいただければ幸いです。ありがとう。