导航:首页 > 操作系统 > android本地国际化

android本地国际化

发布时间:2025-06-01 06:54:48

android开发案例驱动教程目录

Android开发案例驱动教程目录

Ⅱ Android 国际化 设置Locale.ENGLISH不生效以及createConfigurationContext()问题

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国际化多语言切换

关于App国际化,之前有讲到国际化资源、字符换、布局相关,想要了解的猛戳 用力抱一下APP国际化 。借着本次重构多语言想跟大家聊一下多语言切换,多语言切换对于一款国际化App来讲是重中之重,并非难事,但是若要做好也是一件不容易的事情。

当我们做了系统的配置更改,比如说切换了系统导航或者说更改了深色模式,那么我们一般的处理是也是要对Application作出处理。

如果项目中有用到ApplicationContext去getString(@StringRes int id)实现加载的提示语,那么如果只是单纯的重启界面则无法让当前的提示语跟随当前切换的语言,所以我们要么重启整个应用,要么对ApplicationContext中的Local也作出相应的更新方可,这里有一点问题,虽然Android N之后updateConfiguration是过时方法,官方给出使用createConfigurationContext代替,但是更新ApplicationContext的Local发现无效使用老版本updateConfiguration正常。

如果你发现你的应用广播通知栏适配无效,那就是context中的Local在切换语言是并未及时更新Local,这里调试一下便知,如果是Applicaiton注册的广播,那么多半情况下是没有更新ApplicationContext的Local所导致的。

多语言适配基本步骤大概就是如此了,下面看一下适配的细节问题。

[图片上传失败...(image-b42d06-1640685147639)]
还有一点Android N之后,手机系统的语言配置选项已经不是单选了,改为一个列表了,具体可以参考手机设置中的语言和输入法,所以 setLocal(@Nullable Locale loc) 方法建议不要再使用了,我相信很多人还在用,正确的用法应该是 setLocals(@Nullable LocaleList locales) ,需要传递一个集合。

当你的应用使用的是androidx.appcompat:appcompat:1.2.0及以上时,BaseActivity中需要实现下面方法。

这套方案目前不在推荐,直接去替换attatchBaseContext()中的context则可,经过测试是完全正常的。

以下则是多语言操作的工具类,现在提供出来,需要的朋友可以自行进行改造。

阅读全文

与android本地国际化相关的资料

热点内容
喷泉码编译码 浏览:466
按揭车辆解压可以委托他人办理吗 浏览:442
瑞萨ARM可以用keil编译吗 浏览:341
phpurl加密解密 浏览:516
安卓如何修改sqlite的值 浏览:318
从事驾驶行业的人有什么解压神器 浏览:687
qq飞车无服务器怎么办 浏览:125
php微信拍照上传图片 浏览:673
php框架yii2 浏览:869
命令行共享 浏览:78
玩游戏解压包总数 浏览:413
用c语言模拟电梯调度算法 浏览:461
压缩空气压力单位 浏览:956
bo命令针对的是同一图层吗 浏览:539
总是用命令式 浏览:785
高性能单片机51 浏览:204
云服务器在界面卡住了 浏览:693
linuxphp不显示验证码 浏览:347
perl调用php 浏览:795
单片机移位除法 浏览:944