android 多语言版本开发

最近项目中用用到语言切换功能,第一想到的就是资源文件,没错。

在资源文件中新建一个文件夹values-en,en表示英语,有一些还细化到地区,如values-en-rUS 即美国地区的英语,r是必需的。在里面新建一个strings.xml,把默认values文件夹中的strings.xml中的内容Copy至values-en中的strings.xml,再把该文件夹中的中文内容转换为英文,例如<string name="set">设置</string>转换为<string name="set">set</string>。不止values文件可以这样,res文件夹下的都可以,但是assets就不行,这是外部文件。如果有做webapp引用网页形式 考虑多语言版本,可以java代码判断系统语言,再去调用相应的html文件。

然后再主Activity中写一个方法

代码:

public void switchLanguage(Locale locale) {
                 //应用内配置语言
      Resources resources =getResources();//获得res资源对象  
      Configuration config = resources.getConfiguration();//获得设置对象  
      DisplayMetrics dm = resources.getDisplayMetrics();//获得屏幕参数:主要是分辨率,像素等。
      config.locale = Locale.SIMPLIFIED_CHINESE; //简体中文
      resources.updateConfiguration(config, dm);
         }

   有一些相对不那么常用的语言Locale没提供相应的常量,这时

   如阿拉伯语,直接config.locale =new Locale("ar");  

   必须在OnCreate函数中调用

还得注意的是:在AndroidManifest.xml中要配置一下

在activity节点中加上这个属性: android:configChanges="locale"

添加权限: <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />

android 多语言版本开发

时间: 2024-12-09 08:42:35

android 多语言版本开发的相关文章

ios-多语言版本开发(三)(转载)

写在前面 ?iOS 多语言版本的开发(二)中我们实现了如何让用户自己去切换系统语言的功能,我们还写了Demo 以供辅助学习:但是,继以上两篇文章都是建立在项目刚刚启动或启动不久,项目中存在的中文字符串还不是很多,手动改起来也还可以接受; 那么问题来了,如果项目已经竣工或者已经迭代几个版本了,那该如何实现了?手动改起来也不太现实,耗时耗力不讨好的手动,在这里就不用考虑了. 不让考虑,是因为我有更简单快捷高效的方法,让我慢慢与您道来: 如何辨别项目中的中文字符串? ?既然要替换项目中使用到的中文字符

iOS-多语言版本开发(二)(转载)

题记 ??iOS 多语言版本的开发(一) 中我们完成了让应用跟随系统语言进行切换,而用户自己却不能切换的功能,也基本上算是实现了多语言版本:可是,对于某些应用来说,实现跟随系统语言切换的同时, 也想要实现让用户自己选择应用语言版本的功能:针对这种情况,利用这篇文章来写写如何让用户自己切换应用语言版本: 语言文件存在的形式 想要实现用户自己手动切换语言版本,就先要了解语言文件在资源文件中存在的形式; 如图中,不管是英语(en.lproj).简体(zh-Hans.lproj).还是繁体(zh-Han

Android开发实用技巧:判断当前系统语言版本

Locale locale = getResources().getConfiguration().locale; String language = locale.getLanguage(); 以上代码可以获取到当前系统的语言码,中文的语言码为ch,英文的语言码为en,完整的语言码如下: bn_BD孟加拉语(孟加拉)  bo_CN 博多语(中国)  bo_IN 博多语(印度)  ce_PH 塞布安诺语(菲律宾)  de_LI 德语(列支敦士登)  fa_AF 波斯语(阿富汗)  fa_IR 波

Android与Swift iOS开发:语言与框架对比

Swift是现在Apple主推的语言,2014年新推出的语言,比Scala等“新”语言还要年轻10岁.2015年秋已经开源.目前在linux上可用,最近已经支持Android NDK:在树莓派上有SwiftyGPIO库,可以通过GPIO控制一些硬件. Object C is old and ugly,oc是1983年苹果推出的,过于陈旧和臃肿. Swift语法类似Scala,Javascript ES6, Java,OC, C++, Python 这是tiobe发布的编程语言排行 Swift支持

从Java/Android到Swift iOS开发:语言与框架对比

本文是我在『移动前线』微信群2016年4月28日的分享总结整理. 我从2009年开始做Android开发,开始接触Swift是在2014年底,当时组里曾经做过一个Demo App,感觉技术还不够成熟没有正式发布.2016年初我们正式使用swift开发上线了销售助手App产品,积累了比较丰富的swift项目实战经验,开源框架都是用的swift版本,大量使用了面向协议和函数式编程.iOS App开发人员基本都是以前安卓版本的开发人员,同时维护安卓和iOS 2个版本,效率很高. 今天分享的主题是Jav

iOS-多语言版本的开发(一)(转载)

引言 ?多语言 & 本地化,随你怎么叫,道理差不多:一个App 要想走出国门,只支持一种语言是不能够的,也是不可能的,多元化世界已经融入我们的生活,对于一些应用,开发多语言版本,已经是不可避免的,特别是旅游等方面的应用:国内也有很多App 已经接入多语言,例如:支付宝.微信.收留我(嘻嘻,做下广告)等: 开发多语言,一般有两种情况 1.App还没有开始写,这个时候创建一个多语言版本,很是容易,然后再写代码的时候稍微留意下哪里需要保持多语言就行了:2.App已经上线了,而且之前没有任何的为开发多语

在Android(Java)开发中如何实现类似C语言中的中断程序

在Android开发过程中,有时候会遇到这样的情况,在一个线程中,执行A操作,B操作需要等A操作结束后才进行,因此需要wait,在java中可以如下代码实现 Handler mBlueHandler = new Handler(Looper.getMainLooper()); Task task = new Task(); mBlueHandler.post(task); while (!task.finish) { synchronized (task) { try { task.wait()

微信公众平台应用开发:方法、技巧与案例--柳峰,Java语言版本

他本人的博客:http://blog.csdn.net/lyq8479 作者简介: 刘运强,网名“柳峰”,资深微信公众平台应用开发工程师,国内微信公众平台应用开发的先驱之一,项目经验丰富.他还是一位资深的Java软件开发工程师和 Android/iOS移动应用开发工程师,活跃于CocoaChina.OSChina.CSDN等社区,并在CSDN博客撰写了系列微信公众平台二次 开发的教程,深受欢迎并被广泛传播,也因此获得CSDN博客移动开发版块的“博客冠军”. 本教程是采用java语言开发. 微信公

.Net语言 APP开发平台——Smobiler学习日志:在应用中添加WeiXin组件

最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 控件说明 WeiXin组件. 效果演示 1. 分享好友 2. 分享朋友圈 图1 图2 方法 方法 方法说明 registerApp 应用注册(只需要注册一次即可). loginWithWeixin 微信登录. pay 支付. shareToSession 分享给好友. shareToTimeline 分享到朋友圈. 控件使用 1. 微信应用注册 C#: //每个设备只需注册一次 //