我有一个需要支持英语,西班牙语和俄语的应用程序。
为了检测这个,我使用这个方法:
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;
}
答案 0 :(得分:5)
对于俄语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());
答案 1 :(得分:5)
首先,查看Android Developers Localization Guide
利用Android的XML魔法,您可以实现许多想要做的事情。例如,假设您想要本地化字符串。您所要做的就是创建:
res/values/strings.xml
res/values-es/strings.xml
res/values-ru/strings.xml
在每种语言的strings.xml中使用本地化字符串。您还可以使用可能在区域设置之间更改的drawable,layouts和其他XML资源来执行此操作。
您还可以查看Crowdin,它专门为Android提供协作本地化服务。