目前好的APP走向国际化,所以APP中的语言也使用了多国语,
1:
资源文件的命名如下:
values---->默认
values-en---->英文
values-zh---->中文values-zh-rCN---->中文-简体
values-zh-rTW---->中文-繁体
2:
首先,获取系统当前使用的语言:
方法一:
Locale locale = Locale.getLocale();
String language = locale.getLanguage();
String country = locale.getCountry();
方法二:
String language = getResources().getConfiguration().locale.getLanguage();
String country = getResources().getConfiguration().locale.getCountry();
3:
默认情况下,Android会根据系统的语言地区设置,自动选择对应的资源。
会首先尝试语言地区全匹配,如果没有权匹配的资源包,则会尝试匹配语言,最后则会取默认的。
比如如果Android系统的语言地区是中文简体,则首先会尝试从/values-zh-rCN中获取资源,如果没有此文件夹或者文件夹中没有响应的资源,则会尝试/values-zh,都获取不到的情况下即从/values中获取。
4:
private void checkSetLanguage() {
Resources resources = getResources();DisplayMetrics dm = resources.getDisplayMetrics();
Configuration config = resources.getConfiguration();
Locale defaultLocale = Locale.getDefault();
//设置APP的语言为简体或者繁体则和系统语言一致,否则,则默认为简体
if (defaultLocale.getCountry().equals(Locale.SIMPLIFIED_CHINESE.getCountry()) || defaultLocale.getCountry().equals(Locale.TRADITIONAL_CHINESE.getCountry()))
{
config.locale = defaultLocale;} else {
config.locale = Locale.SIMPLIFIED_CHINESE;
}
resources.updateConfiguration(config, dm);
}