我有一个需要支持英语,西班牙语和俄语的应用程序。

为了检测到这一点,我使用以下方法:

UserLanguage = setLanguage(Locale.getDefault().getDisplayLanguage());


如果英语为UserLanguage,则为“ en”;西班牙语为“ es”,如果为俄语,则必须为“ ru”,否则为英语。但是,当我在手机上将语言环境设置为俄语时,未检测到该语言环境。 Android网站上的文档未提及俄语。有什么帮助吗?

private String setLanguage(String locale){
    //Toast.makeText(context, locale.toString(), Toast.LENGTH_SHORT).show();
    if(locale.equals("English")){
        UserLanguage="en";
    }else{
        if(locale.equals("español")){//espanol
            UserLanguage="es";
        }else{
            if(locale.equals("ru")){//cant compile with true russian
                UserLanguage="ru";
            }else{
                //I give up.... english??
                UserLanguage="en";
            }
        }
    }
    return UserLanguage;
}

最佳答案

对于俄语Locale.getDefault()。getDisplayLanguage()将返回“русский”

尝试以下方法:

        if(locale.equals("русский")){
            UserLanguage="ru";
        }else{
            //I give up.... english??
            UserLanguage="en";
        }


但是更好的解决方案是使用getLanguage()而不是getDisplayLanguage():

private String setLanguage(String locale){
    if (locale.equals("es")){
        mUserLanguage = "es";
    } else if(locale.equals("ru")){
        mUserLanguage = "ru";
    } else {
        mUserLanguage = "en";
    }
    return UserLanguage;
}

setLanguage(Locale.getDefault().getLanguage());

10-08 01:39