(原创)获取系统语言方式及动态全局切换语言方式

本文详细介绍了在Android应用中如何获取当前系统语言,以及如何动态全局切换应用的语言,无需重启应用。通过在AndroidManifest.xml进行配置,可以避免因用户手动切换系统语言导致应用崩溃的问题。同时,需在应用资源文件夹中设置中英文字符串资源,确保切换时能正确匹配。

(原创)获取系统语言方式及动态全局切换语言方式

1.获取当前系统语言

Locale locale = Constants.context.getResources().getConfiguration().locale;
String language = locale.getLanguage();//“zh”为中文,“en”为英文...

2.动态切换全局语言,注意:一般情况下都是需要关闭当前app再重新启动才不会崩溃,但是可以在清单文件配置后就可以实现不关闭情况下正常运行

(1).AndroidManifest.xml清单文件配置语言不跟随系统变化(避免用户手动到系统设置里面切换语言导致当前app崩溃的情况)
//其中android:configChanges="locale|layoutDirection|navigation|fontScale"作用就是不跟随系统语言变化</span>
<activity
            android:name=".MainActivity"
            android:configChanges="locale|layoutDirection|navigation|fontScale"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"/>
(2).当前app动态全局切换语言:注意这只是切换自身app当前全局语言而非手机系统的语言
Configuration config = UIUtils.getResources().getConfiguration();
  if (”添加条件“) {//切换中文
   config.locale = Locale.CHINA;
  } else {//切换英文
   config.locale = Locale.ENGLISH;
  }
//更新配置环境
getContext().getResources().updateConfiguration(config, null);

注意:对于当前界面在不关闭的情况下只能在自身通过动态的重新setText()方式切换,其他跳转获取已经关闭了的界面就不用动态setText()。

3.最后也就是需要添加中英文res文件夹---里面存放需要切换的string字符串,注意中英文name="名称"里面的"名称"要中英文一致,切换语言系统会自动寻找(没有该文件夹自行创建)

values/string.xml为默认显示文本
values-en/string.xml为切换英文显示文本
values-zh/string.xml为切换中文显示文本





评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值