blob: 5c26e7a50c28618ad009b7499bd1954b44b4541c [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.base;
import org.chromium.base.annotations.CalledByNative;
import java.util.Locale;
/**
* This class provides the locale related methods.
*/
public class LocaleUtils {
/**
* Guards this class from being instantiated.
*/
private LocaleUtils() {
}
/**
* @return the string for the given locale, translating
* Android deprecated language codes into the modern ones
* used by Chromium.
*/
public static String getLocale(Locale locale) {
String language = locale.getLanguage();
String country = locale.getCountry();
// Android uses deprecated lanuages codes for Hebrew and Indonesian but Chromium uses the
// updated codes. Also, Android uses "tl" while Chromium uses "fil" for Tagalog/Filipino.
// So apply a mapping.
// See http://developer.android.com/reference/java/util/Locale.html
if ("iw".equals(language)) {
language = "he";
} else if ("in".equals(language)) {
language = "id";
} else if ("tl".equals(language)) {
language = "fil";
}
return country.isEmpty() ? language : language + "-" + country;
}
/**
* @return the default locale, translating Android deprecated
* language codes into the modern ones used by Chromium.
*/
@CalledByNative
public static String getDefaultLocale() {
return getLocale(Locale.getDefault());
}
/**
* Get the default country code set during install.
* @return country code.
*/
@CalledByNative
private static String getDefaultCountryCode() {
CommandLine commandLine = CommandLine.getInstance();
return commandLine.hasSwitch(BaseSwitches.DEFAULT_COUNTRY_CODE_AT_INSTALL)
? commandLine.getSwitchValue(BaseSwitches.DEFAULT_COUNTRY_CODE_AT_INSTALL)
: Locale.getDefault().getCountry();
}
}