android多语言(android多语言失效)

本篇文章给大家谈谈android多语言,以及android多语言失效对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Android 内多语言切换实现

网上有春扰很多安卓内多语言切换的文章,我也看了一些,很多都千篇一律,而且还是有问题,我就自己重新改了一下。整好分享给各位同学,废话不多说,我们正式开始

我们在点击切换语言的按钮时候弹窗dialog 然后用户可以选择 简体中文 英文 繁体中文 跟随系统 四种选项 ,这是我们基本的需求

首先我们要在资源文件res目录下面创建多语言的目录文件夹 values values-en values-zh-rTW values-TW 如图所示:

我们适配多语言的只需要在 values values-en values-zh-rTW 这个三个目录下面的string.xml文件里面写入对应的引用的文本即可

我们只需要这样配置就然后在布局的xml文件里面引用可以达到适配多语言的效果 :

具体引用:

切换的dialog实现这个我用原生的AlertDialog 你们自己可以自定义继承系统的Dialog来实现

这里的语言种类获取滚森辩到的sta是重SharedPreferences 缓存里面获取到的因为需要

SharedPreferences 工具类:

我们在dialog点击事件里发送一个广播通知 用来触发刷新

然我们在baseActivity里面接收广播重启activity 来刷新多语言切换

关于Locale

实现多语言切换用到了Locale。Locale里很多常见国家和地区以及语言,如果我们做常见的语言,可以直接调用系统的,比如Locale.CHINESE。但是这次做的繁体中文的适配,略我坑一下。

繁体中文我们直接在Locale 属性里面传入 zh-rTW 但是切换没有生效 我翻了下源码只有TW的属性配置我就要修改了

问题是,我最开始直接这样写的:

到此我们说明下开头提到到为什么多出了 values-TW目录 是因为我发现在多语言切换更新 Configuration 中的 locale 属性 的时候翻开源码看到繁体中文(泛指港澳台并没有看到zh-rTW的属性配置)

所以目前的解决方案就是用values-TW来替代:

我这边目前是这样处理来兼容繁体中文切换不生效的做法 ,如果你有更好的方案 麻烦留言大家一起探讨。

Android 内多语言的切换网大缺上的文章也挺多的,基本都千篇一律 很多有纰漏 ,这边也是翻了一下源码勉强能够兼容繁体中文, 项目地址

Android国际化之多语言(配置及应用内设置)✈️

Android系统通过判断当前系统的Local配置,来使用知冲余对应的strings.xml文件

values--strings.xml 默认语言(简搭滚体中文)

values-zh-rHK--strings.xml 繁体中文

values-en--strings.xml 英语

在Android系统中,系统的配置大都通过 Configuration 来管理,包括strings等等。

onCreate() 中注册

onDestroy() 中取消注册

setLanguage() 方法

通过上面的设置,可以实现不重启APP修改语言的效果

以上只是对Android多语言设置的一些小小的总结,可能有理解不周的情况,欢迎给我留言判友指出

标签列表