导航:首页 > 操作系统 > 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本地国际化相关的资料

热点内容
服务器放到云上和云下有啥区别 浏览:670
单片机玻璃管加热研究成果 浏览:760
财产pdf 浏览:795
java添加图标 浏览:890
命令与征服4任务攻略 浏览:97
算法和逻辑程序验证 浏览:771
用户管理系统php模板 浏览:423
中国银行app账号怎么登录 浏览:871
安卓手机icloud云服务器地址 浏览:805
加密门禁如何写到小米手机 浏览:173
java静态方法的多线程 浏览:270
CAXAXp下载打不开要加密 浏览:250
开锁pdf 浏览:94
python可视化奶茶 浏览:230
命令方字幕 浏览:594
苹果手机如何连接ipad服务器 浏览:986
打印矩阵java 浏览:405
如何双开一个不能双开的app 浏览:540
抖音喜欢加密了怎么打开 浏览:397
mysql命令行显示表 浏览:365