在java代码中就已经有了关于当前系统语言的判断:
- Locale locale = Locale.getDefault();
- System.out.println(locale.getLanguage());
- System.out.println(locale.getCountry());
如果系统使用的是汉语,那么getLanguage()返回的字符串为zh,然后根据getCountry()返回结果可以判断出简体还是繁体了。如果是TW,那么就是繁体了,返回CN则是简体,如果返回了HK。整理之后的代码如下所示:
private String getLanguage() {
Locale locale = getResources().getConfiguration().locale;
String language = locale.getLanguage();
if (language.endsWith("zh")){
String country = locale.getCountry();
if(country.equalsIgnoreCase("cn")){
return "zh_cn";
}else if(country.equalsIgnoreCase("tw")){
return "zh_tw";
}else{
return "zh_hk";
}
}else if(language.endsWith("en")){
return "en";
}
return "zh_cn";
}
Locale locale = getResources().getConfiguration().locale;
String language = locale.getLanguage();
if (language.endsWith("zh")){
String country = locale.getCountry();
if(country.equalsIgnoreCase("cn")){
return "zh_cn";
}else if(country.equalsIgnoreCase("tw")){
return "zh_tw";
}else{
return "zh_hk";
}
}else if(language.endsWith("en")){
return "en";
}
return "zh_cn";
}
注释:上面的代码主要关注:中文简体、中文繁体(台湾)、中文繁体(香港)、英文