Android 国际化 设置Locale.ENGLISH不生效以及createConfigurationContext()问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 国际化 设置Locale.ENGLISH不生效以及createConfigurationContext()问题相关的知识,希望对你有一定的参考价值。
参考技术A Q1 故事情节: 设置了简体中文,繁体中文和英文,结果拿了7.0荣耀青春版完美显示,然而7.0下的所有安卓手机都设置英文无效,简体中文和繁体中文依然可以,纳闷......Q1 解决方式:虽说看起来设置了英文Locale.ENGLISH, 但实际上有些手机或系统需要特殊指明那个英文的(英国/美国),所以不要直接使用Locale.ENGLISH,将Locale.ENGLISH改成相对应的Locale.US(美国英文) 或 Locale.UK(英国英文)就可以了,如下图注释部分。
Q2 故事情节:还以为Q1问题解决就可以了,在设置createConfigurationContext(config)情况下,>=6.0系统的手机都切换语言失败(5.0的手机刚好没有,所以待定),具体原因不详
Q2 解决方式:老老实实,用回getResources().updateConfiguration(config, null)就可以了
Android国际化之多语言(配置及应用内设置)✈️
参考技术AAndroid系统通过判断当前系统的Local配置,来使用对应的strings.xml文件
values-->strings.xml 默认语言(简体中文)
values-zh-rHK-->strings.xml 繁体中文
values-en-->strings.xml 英语
在Android系统中,系统的配置大都通过 Configuration 来管理,包括strings等等。
onCreate() 中注册
onDestroy() 中取消注册
setLanguage() 方法
通过上面的设置,可以实现不重启APP修改语言的效果
以上只是对Android多语言设置的一些小小的总结,可能有理解不周的情况,欢迎给我留言指出😄
以上是关于Android 国际化 设置Locale.ENGLISH不生效以及createConfigurationContext()问题的主要内容,如果未能解决你的问题,请参考以下文章
Android 国际化 设置Locale.ENGLISH不生效以及createConfigurationContext()问题