Android多语言支持实现
2017-06-03 14:38
591 查看
一.AndroidMianFest.xml中配置
<receiver android:name="cn.xm.antrou.broadcast.LanBroadcast"> <intent-filter> <action android:name="cn.xm.broadcast.language" /> </intent-filter> </receiver>
二.设置选中的语言
Configuration config = resources.getConfiguration(); DisplayMetrics dm = resources .getDisplayMetrics(); config.locale = locale; resources.updateConfiguration(config, dm); this.finish()//设置语言后关闭当前Activity
上面的local参数就是设置语言的,比如:Locale.SIMPLIFIED_CHINESE Locale.ENGLISH,详细信息你可以查看Local类,其实这里设置后软件语言已经变了,不过需要重新进入该界面,所以会用到通知来重启启动当前界面
三.发送通知
Intent intent = new Intent("cn.xm.broadcast.language"); sendBroadcast(intent);
注意上面构造Intent参数:cn.xm.broadcast.language与AndroidMainfest.xml中的配置是一致的,这里发出通知后,系统会在你配置的信息中找到匹配项后执行,android:name指定的类,这个类需要实现
BroadcastReceiver ,并重写 onReceive()在这个方法里面去重启你刚刚的设置语言的界面
第一步:将应用中的所有需要显示的字符串,如菜单,标题、文本,以及提示信息等都定义到values/strings.xml之中,注意name属性不能有重复
第二步:将应用中的字符串替换成从strings.xml中引用的形式,如 getResources().getString(R.string.appname)
第三步:真正的多语言设置了,需要新建一个xml文件,会显示如图画面!
需要注意的地方:
1. 需要选中”values“选项2. 需要设置”Region“和”Language“两个属性(注:上图中这两个属性已经设置,所以左边列表中已不可见),分别指代”区域“与”语言“,通过画面中的右箭头添加,对于英语支持,”Region“和”Language“分别对应"us"和"en"
设置完成点击”Finsh“之后会在res/values目录下发现多了个目录:values-en-rUS,然后将对应的strings.xml内容翻译成英文存储在该目录下的strings.xml即可,注意name属性不要更改。
再添加其他更多语言支持,重复上面的第三步即可(如设置繁体:”Region“和”Language“分别对应"tw"和"zh")!
参考链接:
www.cnblogs.com/wuyunan/archive/2009/09/16/1567960.html
还有一个关于动态替换strings.xml中变量的有用链接:
android string.xml文件中的整型和string型代替
相关文章推荐
- 关于Android应用多语言支持实现
- 关于Android应用多语言支持实现
- Android编程实现动态支持多语言的方法
- Android应用多语言支持实现(方法一)
- Android多语言实现及对Unity的Api的支持
- Android应用多语言支持实现(方法二)
- Android应用的多语言支持的实现方法
- Android实现图片自动轮播并且支持手势左右无限滑动
- android实现蓝牙文件发送的实例代码,支持多种机型
- Android 自定义控件 优雅实现元素间的分割线 (支持3.0以下)
- 关于Android实现语言切换的经验总结
- android studio一键生成快速开发实现语言国际化
- C语言 实现一个简单的Shell (支持管道和"cd")
- 如何看待 Kotlin 成为 Android 官方支持开发语言?
- 在XCode中实现多语言环境支持
- 一个功能,两个平台,三种语言 -(iOS,Swift,Android)App代码实现对比篇
- 完全详解--使用Resource实现多语言的支持
- Android 4.4.2开机动画支持系统语言切换
- 实现android支持多线程断点续传下载器功能
- Android实现多页左右滑动效果,支持子view动态创建和cache