android实现多语言切换

在安卓开发中,常会遇到需要切换不同语言的情况。语言不同意味着需要进行不同语种字符的动态切换、不同布局的动态切换。

安卓实现这一功能非常的简单:

首先在res中创建其它语种对应的value、layout等文件夹,比如添加英文版和越南版,命名如value-en-US、value-vi、layout-en-US、layout-vi。

命名规则在网上可以查到,value-en-US中,en表示英文,US表示美国。国家可不写。越南版可全写为layout-vi-VN。

如此,便有了几套同名,同id,但内容属性不同多版本布局。

然后,编写代码。

import java.util.Locale;

Locale locale;

String language = Locale.getDefault().getLanguage();

if (language.equals("en")){

...

}

可在切换语言的onclick事件中:

case *:

locale = Locale.ENGLISH;

或者: locale = new Locale("vi", "VN");
//越南

重启改变语言:

private void changeLanguage(Locale locale) {

try {

IActivityManager am =
ActivityManagerNative.getDefault();

Configuration
config = am.getConfiguration();

config.locale =
locale;

config.userSetLocale =
true;

am.updateConfiguration(config);

} catch (RemoteException e) {
   Log.e(TAG, e.toString());   }  }

至此代码部分完成。

最后,改变编译部分配置文件,增加语言支持:

/build/target/product目录下,language_full.mk|language_small.mk
看你的编译选项使用那个文件了,修改PRODUCT_LOCALES

在full.mk的文件,这里面有这样的片段:$(call inherit-product,
build/target/product/languages_small.mk),后者路径就是我们要设置的地方。

上面是摘自其它博客,

其实在我的编译环境里,在locales_full.mk里加上vi_Vn就可以了。

android实现多语言切换,布布扣,bubuko.com

时间: 2024-10-05 15:21:17

android实现多语言切换的相关文章

Android应用内语言切换实现

自定义控件系列结束了,打个回马枪,补上前段时间埋下的一个坑---"应用内语言切换".APP语言改变是一个Configuration,但是这个Configuration和android手机屏幕旋转有点不大一样.屏幕旋转的时候,会destroy当前页面,并进行重新绘制.而切换语言后不会重新绘制页面,所以这种情况的出现造成了网上的一知半解小伙伴们哀声一片,不是在咒骂api的坑爹,就是在卖力的另辟蹊径想尽办法解决问题.思路都是很好的,目的也是坚决的,可是方向是错误的,把哥哥我也给带进了坑了,爬

Android应用内语言切换实现(转)

使用Java反射机制 IActivityManager与ActivityManagerNative都是非公开类,使用Java反射去调用其中的方法. 第一步.使用Android开放的api更改Configuration,同时把语言类型保存下来 第二步.Destroy当前页面,重新绘制才能更改语言类型 如果你的页面不是首页,你调用上述代码只会更新当前页面,压在栈中的Activity依然不会更新界面.比如微信设置语言成功后,会自动跳转到首页,当然首页的内容也是更新后的,它的实现方式也很简单,与我们上面

Android 应用内多语言切换

p.p1 { margin: 0.0px 0.0px 12.0px 0.0px; line-height: 18.0px; font: 12.0px ".PingFang SC"; color: #000000 } p.p3 { margin: 0.0px 0.0px 13.9px 0.0px; line-height: 18.0px; font: 16.8px "PT Sans"; color: #000000 } p.p4 { margin: 0.0px 0.0

Android应用语言切换功能

因为公司的产品大部分是销售到国外的,所以领导要求app有语言切换功能.我在网上搜了些相关知识并实现了功能,在这里做个中英文切换的demo记录下来. 先看看demo的效果: 效果就是这样子.当然也可以做成其他语言的切换,具体根据需求而定. 原理其实很简单,就是多个strings.xml进行切换然后在刷新Activity. 首先,在AndroidManifest.xml文件中的每个需要切换语言的Activity中加入android:configChanges="locale". 然后在re

android 语言切换过程分析 (zhuan)

最近在看一个bug,系统切换语言后,本来退到后台的音乐,会在通知栏上显示通知.为了解决这个bug,我学习了下android的语言切换流程,也参考了大量其他人的资料.(主要参考了http://blog.csdn.net/wqhjfree/article/details/8244520)在这里我将自己的探索记录下来,作为自己的学习记录,也希望能对有同样需要的人有个帮助.刚学android不久,如果中间有什么问题不对的请多多谅解,并指出错误,多交流,共同进步下. 1.从setting入手,我们可以知道

【Android 多语言切换简单实例分享】

一.Android多语言切换 Android应用的开发不可能只针对某一个国家或者区域使用,各国间语言文化各不相同,因此一个优秀的APP必须支持多种语言,为了实现这个特性,Android给出了一个解决方式,在res目录下通过values+语言编码来实现多国语言的支持(中间采用连字符号-连接),例如:values-es代表英文,如果你决定了你的应用要支持多国语言,那么你就必须新建多种values-XXX的多语言支持文件,下面通过一个例子来看看基本的使用方式,先看下效果图: 1.工程结构 注:主要看下

Android应用实现多语言切换

关于Android应用实现多语言切换,有好几种办法,网上也搜到很多资料,这里有个简单有效的办法. 步骤如下: 在资源文件中新建一个文件夹values-en,在里面新建一个strings.xml,把默认values文件夹中的strings.xml中的内容拷贝一份到values-en中的strings.xml,再把该文件夹中的中文内容转换为英文,例如<string name="set">设置</string>转换为<string name="set&

android 语言切换过程分析

android 语言切换过程分析 2014-02-27 18:13 1207人阅读 评论(0) 收藏 举报 语言切换android语言切换android改变语言 最近在看一个bug,系统切换语言后,本来退到后台的音乐,会在通知栏上显示通知.为了解决这个bug,我学习了下android的语言切换流程,也参考了大量其他人的资料.(主要参考了http://blog.csdn.net/wqhjfree/article/details/8244520)在这里我将自己的探索记录下来,作为自己的学习记录,也希

【转】Android 语言切换过程分析

最近在看一个bug,系统切换语言后,本来退到后台的音乐,会在通知栏上显示通知.为了解决这个bug,我学习了下android的语言切换流程,也参考了大量其他人的资料.(主要参考了http://blog.csdn.net/wqhjfree/article/details/8244520)在这里我将自己的探索记录下来,作为自己的学习记录,也希望能对有同样需要的人有个帮助.刚学android不久,如果中间有什么问题不对的请多多谅解,并指出错误,多交流,共同进步下. 1.从setting入手,我们可以知道