最近产品提出了在APP内部切换应用的语言包,潜意识里APP的国际化就是跟随系统语言来修改的。不过在微信里面发现有在APP内部切换语言包的功能,因此专门研究了一下。
public void changeAppLanguage() {
String sta = LanguageStore.getLanguageLocal(this);
if (sta != null && !"".equals(sta)) {
Locale myLocale = new Locale(sta);
switch (sta) {
case "default"://跟随系统
myLocale = Locale.getDefault();
currentPosition = 0;
break;
case "zh_CN":
myLocale = Locale.SIMPLIFIED_CHINESE;
currentPosition = 1;
break;
case "zh_TW": //自定义语言,参数1为语种代码,参数2为地区代码
myLocale = new Locale("zh", "TW");
currentPosition = 2;
break;
case "en":
myLocale = Locale.ENGLISH;
currentPosition = 3;
break;
case "zh_HK":
myLocale = new Locale("zh", "HK");
currentPosition = 4;
break;
}
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
//更新配置
res.updateConfiguration(conf, dm);
}
}
/存储当前语言代码
LanguageStore.setLanguageLocal(ChangeLanguageActivity.this, languageCode[currentPosition]);
//重启页面
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
// 杀掉进程
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务