`
abc20899
  • 浏览: 908929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何在程序中获取系统语言及修改Value-的语言

阅读更多
很多开发者考虑使自己的Android程序兼容多国语言,其实Google在设计Android时已经考虑了本地化问题,通过定义相关的资源可以自适应当前手机的语言来加载响应的资源文件。Android开发网列出主流的本地化:

  语言自适应

   在Android工程的res目录下,通过定义特殊的文件夹名称就可以实现,比如我们的程序兼容 简体中文、日文、英文、法文和德文,常规的字符strings.xml保存的目录在values文件夹中,这里我们就需要定义 values-zh-rCN、values-ja、values、values-fr和values-de。当然如果涉及到参数配置类xml文件夹也要改成xml-zh、xml-ja、xml、xml-fr和xml-de。

   当然我们用代码如何获取本机的语言类型呢? 通过代码 :

   String cwjLocale = getResources().getConfiguration().locale.getCountry();  即可获取,其中cwjLocale保存了国家代码,这些定义在java.util.Locale的字段中,直接对比即可,比如我们英文版固件设备为US。

  当然我们需要测试,可能会强制加载某国语言,可以使用在Activity的SetContentView之前调用,比如强制简体中文,代码如下:

         Resources resources = getResources();
         Configuration config = resources.getConfiguration();
         config.locale = Locale.SIMPLIFIED_CHINESE; //简体中文
         DisplayMetrics dm = res.getDisplayMetrics();
         resources.updateConfiguration(config, dm);

  屏幕分辨率自适应 

    这里我们需要判断两种大体情况,屏幕的方向,比如常规的纵向port和横屏land,我们定义的图片资源为

    layout或drawable,而横屏情况下位layout-land和drawable-land,当然还有一种情况就是分辨率。

  目前Android手机分辨率有

   HVGA (320x480) 的G1、G2、G3 对应标准的 drawable-mdpi

  QVGA (240x320) 的G4 ,对应 drawable-ldpi

  WVGA (480x800) 的N1,对应 drawable-hdpi 。

  最终我们以MMS应用的例子,对应res文件夹的摆放如图:




1.首先,如果要程序自动适应系统语言进行转变,可以在res下添加相应的语言文件夹:如:添加中文,则文件夹命名为values-zh-rCN,如果不清楚需要的名字可以到:E:\android-sdk-windows\platforms\android-8\data\res,如这样的文件夹下寻找。这样就可以让程序自动适应系统的语言来选择语言。
2.如果我们想在程序内部可以手动地选择语言则:
  a.首先获得当前的语言或者国家:
String able= getResources().getConfiguration().locale.getCountry();
  b.进行判断:如果是中文则返回的able.equals("CN")
  c.进行设置的代码为:
//选择中文
Configuration config = getResources().getConfiguration();
DisplayMetrics dm = getResources() .getDisplayMetrics();
config.locale = Locale.SIMPLIFIED_CHINESE;
getResources().updateConfiguration(config, dm);
  d.最后用sharedPreferences保存当前的语言设置
分享到:
评论

相关推荐

    UWA 2.X UTF-8 (v2.1.5_to_v2.2.0) 升级程序.zip

    3、在您修改了程序或数据库结构以后我们不能保证升级能够完全成功。   升级方法 ---------------------------------------------------- 1. 将升级包中 upload 下所有的文件上传至网站根目录覆盖。 2. 访问 ...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    话框类,将其加入工程中,然后在程序中调用自己新建的对话框类来实现多窗口。 实现过程: 1.首先新建Qt4 Gui Application 工程,工程名为nGui,Base class 选为QWidget。 建立好后工程文件列表如下图。 2.新建对话...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    KODExplorer 芒果云-资源管理器

    - 代码中grunt部分代码拆分开,放到程序外面;提交到git、osc - 桌面:删除alert enter快捷键删除 - install 检测 加入跳过,(只判断用到的函数) 加入多语言 - zip压缩没有权限 提示红色,false 统一查找 - 登录...

    Go程序设计语言

    简介 本书由《C程序设计语言》的作者Kernighan和谷歌公司Go团队主管Alan Do[0no0]van联袂撰写,是[0学0]习Go语言程序设计的指南。本书共13章,主要内容包括:Go的基础[0知0]识、基本结构、基本数据类型、复合数据...

    lib-i18n:库Lib-I18N允许开发人员将.properties文件的键值对绑定到[StringBinding]。 这使得在[JavaFX]应用程序中的运行时更改语言非常容易

    这使得在应用程序的运行时更改语言非常容易。 Lib-I18N用JavaFX, 和编写。 图片: Lib-I18N的演示集成 该演示通过四个步骤显示了如何轻松地将应用程序变为多语言 :grinning_face_with_smiling_eyes: 。 请参阅...

    Modify Header Value (HTTP Headers)-crx插件

    添加,修改或删除标题以获取所需域的任何请求。 修改标题值(HTTP标头)是可以添加,修改或删除HTTP-Request-Header的扩展名对于所需网站或URL上的所有请求。如果您是App Developer,网站设计师,或者您想在网站上的...

    WanAndroid-一位练习时长两年半的安卓练习生根据鸿神提供的WanAndroid开放Api来制作的产品级App,采用Kotlin语言,基于Material Design AndroidX MVP RxJava Retrofit等框架开发,注释超详细,方便大家练手.zip

    收藏文章 收藏网址待办清单 添加清单 编辑清单 删除清单文章网址详情 详情中收藏 分享 浏览器打开全局修改应用主题色全局修改列表的加载动画侧滑返回 可打开与关闭文章在任何地方收藏与取消,其他界面相对应的数据也...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正了在Grid的PageIndexChange事件中不能获取SelectedRowIndexArray属性的BUG(feedback:Violet)。 -Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行显示,请为第一个按钮设置CssStyle=...

    grub4dos-V0.4.6a-2017-02-04更新

    7.1 文件名可以任意大小写,但是在 grldr.mbr 及 grldr.pbr 中必须大写。 7.2 在 grldr.pbr 中: FAT16、FAT32 分区使用 8.3 格式; ext2、exFAT、NTFS 分区使用 12 字符。 7.3 在 grldr.mbr 中:使用 12 ...

    (重要)AIX command 使用总结.txt

    更改/etc/security/user 文件中需要限制的用户的rlogin属性(rlogin = false) 当再次尝试远程登录时, 系统报错:Remote logins are not allowed for this account, 表示修改成功 //如何自动logout用户 有的用户登录后...

    HttpClient以及获取页面内容应用

    程序可通过该对象获取服务器的响应内容。 6. 释放连接。无论执行方法是否成功,都必须释放连接 //打印服务器返回的状态 System.out.println(method.getStatusLine()); //打印返回的信息 System.out.println(method....

    Microsoft SQL Server 2005 Express Edition SP3

    由于未在 Windows 中完全配置 Microsoft 分布式事务处理协调器 (MS DTC),因此,应用程序可能无法在分布式事务中登记 SQL Server Express 资源。此问题会影响使用分布式事务的链接服务器、分布式查询以及远程存储...

    JAVA_API1.6文档(中文)

    java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供...

    c#学习笔记.txt

    volatile指示字段可由操作系统、硬件或并发执行的线程等在程序中进行修改。 9,语句 语句是程序指令。除非特别说明,语句都按顺序执行。C# 具有下列类别的语句。 类别C# 关键字 选择语句if, else, switch, case 迭代...

    ExtAspNet_v2.3.2_dll

    -修正了在Grid的PageIndexChange事件中不能获取SelectedRowIndexArray属性的BUG(feedback:Violet)。 -Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行显示,请为第一个按钮设置CssStyle=...

    C++MFC教程

    在16位的系统中系统中只有一个消息队列,所以系统必须等待当前任务处理消息后才可以发送下一消息到相应程序,如果一个程序陷如死循环或是耗时操作时系统就会得不到控制权。这种多任务系统也就称为协同式的多任务系统...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。  SQL语言主要包含5个部分  数据定义...

    基于i18n利用springboot实现后台国际化+源代码+文档说明

    resolveLocale 方法作用就是我们的程序从哪获取指定的语言信息,我这里采用的是从header中获取指定语言,如果没有则采用浏览器 默认的。 还可以从 Session 或 Cookie 中获取。**这里因为我们采取header中获取,...

Global site tag (gtag.js) - Google Analytics