版权声明:本文为博主原创文章,转载请注明出处!谢谢! https://blog.csdn.net/aaa1050070637/article/details/86212837
总结:
1.Andorid studio安装AndroidLocalize插件(在settings里面的plugins里面可以搜索到、github也可以下载,然手动安装)
2.准备一份中文的strings文件,利用插件翻译成多语言
3.代码实现转换逻辑
具体步骤如下:
1.安装插件步骤省略
2.翻译文件,如下图
点击OK翻译完毕,翻译完毕之后,会出现如下图所示的文件夹
扫描二维码关注公众号,回复:
6071804 查看本文章
到这里,第二步就完成了。
3.代码实现语言转换,直接贴代码,通俗易懂
public static void shiftLanguage(String sta, Activity activity, Context context) {
if (sta.equals("zh")) {
// 转换为英文
Resources resources = context.getResources();
// 获得res资源对象
Configuration config = resources.getConfiguration();// 获得设置对象
DisplayMetrics dm = resources.getDisplayMetrics();//
// 获得屏幕参数:主要是分辨率,像素等。
config.locale = Locale.US;
// 英文
resources.updateConfiguration(config, dm);
activity.recreate();
} else {
// 转换为中文
Resources resources = context.getResources();
// 获得res资源对象
Configuration config = resources.getConfiguration();
// 获得设置对象
DisplayMetrics dm = resources.getDisplayMetrics();
// 获得屏幕参数:主要是分辨率,像素等。
config.locale = Locale.SIMPLIFIED_CHINESE;
// 英文
resources.updateConfiguration(config, dm);
activity.recreate();
}
}
到这里,基本就以及实现了中英文转换的功能,
List<Activity> list = APPActivityManager.getAppManager().getAllActivity();
if (list != null && list.size() != 0) {
for (Activity activity : list) {
Log.d("activitylist", activity.getLocalClassName());
String sta = getResources().getConfiguration().locale.getLanguage();
ShiftLanguage.shiftLanguage(sta, activity, getApplicationContext());
}
}
调用的时候,传入对应的activity就能实现中英文转换,如果是针对于整个APP,个人建议用ActivityManager对activity实现堆栈式管理,然后用的时候从栈里面取出来就行。
注意问题:
1.所有的中文字符,全都用strings来保存
2.堆栈式管理activity很重要
3.对于其他语言,实现方式基本一样,这里不细说了。