Android:应用多语言切换,国际化实现

2018-10-30  本文已影响0人  yangSmallXing

多语言切换原理:

生成多种语言的string.xml,里面放置对应的语言,修改配置(Configuration),重启之后就会加载对应语言的string.xml。

实现步骤:

1:在res目录下,生成对应的语言包,比如英语:


image.png

在res目录下生成了可看到生成了:


image.png
2:在对应string.xml内,需要使用相同的name的string;比如
中文简体:

<string name="hello">你好</string>
英语:
<string name="hello">hello</string>
之后就可以使用getResource.getString(R.string.hello),这个字符串会加载相对应的配置的语言。
3:修改语言配置

Resources resources = context.getResources();
DisplayMetrics dm = resources.getDisplayMetrics();
Configuration config = resources.getConfiguration();
//简体中文
config.locale = Locale.SIMPLIFIED_CHINESE;
//or 繁体中文
config.locale = Locale.TRADITIONAL_CHINESE;
// or 英文
config.locale = Locale.ENGLISH;

//更新语言配置
resources.updateConfiguration(config, dm);
//重启到主页
Intent intent = new Intent(context, HomeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
 // 杀掉进程
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);

修改语言配置后,需要重新启动进程,并且杀死进程。

多语言切换细节

1:有些手机是可以在设置里直接切换语言的,这个也就是Configuration改变。用户重新设置系统语言导致应用的语言也会重新设置。Configuration改变,如果在Manifest中不设置android:configChanges忽略掉配置改变,Activity会重新创建,那么我们就可以在Activity的onCreate中,重新修改语言配置。
2:切换语言后,退出应用,重新进来,你会发现又是系统设置的语言。所以需要在Application开启时,需要再次切换语言配置。

上一篇下一篇

猜你喜欢

热点阅读