如何在Locale.class中添加语言

时间:2018-01-29 02:50:18

标签: android locale

我无法在Locale.class中找到印尼语言,我该如何添加该语言? 所以我的代码显示红色文字因为无法找到该语言。

public static Locale getUserLocale() {
    int currentLanguage = SpUtil.getInstance().getInt("currentLanguage", 0);

    Locale myLocale = Locale.INDONESIA;// error
    switch (currentLanguage) {
        case 0:
            myLocale = Locale.INDONESIA; // error
            break;
        case 1:
            myLocale = Locale.ENGLISH;
            break;

    }
    return myLocale;
}

这里摘录自Locale.class:

public final class Locale implements Cloneable, Serializable {
public static final Locale CANADA = null;
public static final Locale CANADA_FRENCH = null;
public static final Locale CHINA = null;
public static final Locale CHINESE = null;
public static final Locale ENGLISH = null;
public static final Locale FRANCE = null;
public static final Locale FRENCH = null;
public static final Locale GERMAN = null;
public static final Locale GERMANY = null;
public static final Locale ITALIAN = null;
public static final Locale ITALY = null;
public static final Locale JAPAN = null;
public static final Locale JAPANESE = null;
public static final Locale KOREA = null;
public static final Locale KOREAN = null;
public static final Locale PRC = null;
public static final char PRIVATE_USE_EXTENSION = 'x';
public static final Locale ROOT = null;
public static final Locale SIMPLIFIED_CHINESE = null;
public static final Locale TAIWAN = null;
public static final Locale TRADITIONAL_CHINESE = null;
public static final Locale UK = null;
public static final char UNICODE_LOCALE_EXTENSION = 'u';
public static final Locale US = null;

public Locale(String language, String country, String variant) {
    throw new RuntimeException("Stub!");
} 

2 个答案:

答案 0 :(得分:3)

您可以使用

中的印度尼西亚语,印度尼西亚语(in_ID)进行尝试

https://web.archive.org/web/20120814113314/http://colincooper.net/blog/2011/02/17/android-supported-language-and-locales/

类似

Locale INDONESIA = new Locale("in", "ID");

然后使用

分配
myLocale = INDONESIA;

答案 1 :(得分:1)

您无法将该语言添加到课程中,因为它是最终的。

Java类java.util.Locale没有将所有语言环境和国家/地区作为静态成员。您将必须创建所需的那个,然后创建另一个方法来检查区域设置。您需要替换getUserLocale方法中的逻辑。

Locale locale = new Locale("in", "ID");

这将为您提供正确的区域设置对象。

您可以使用

defaultLocale = Resources.getSystem().getConfiguration().getLocales().get(0);

获取用户的设备区域设置。