您的位置:首页 > 其它

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

2016-04-19 10:45 357 查看

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

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为切换中文显示文本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: