1、简单介绍

我们知道在java中通过.properties文件来配置资源文件,一般用的有中文message_zh_CN.properties和英文message_en_US.properties两个配置文件,然后通过一系列的配置来实现,这里不详细介绍,在android也有国际化,而且更方便,因为android本身采用了Xml资源文件来管理所有的字符串消息,只要为各消息提供不同语言、国家对应的内容即可。

2、资源文件的编写

和java中的properties文件一样,在android也要配置这样的文件,只不过android是在res/values目录下编写字符串消息,为了给这些消息提供不同的语言、国家的版本,开发者需要在values目录下添加几个不同语言国家版本,不同values文件夹的命名方式为:

  values-语言代码-r国家代码

例如:values-zh-rCN(中文)和values-en-rUS(英文)

如果需要让图片也实现国际化,还要为drawable目录添加几个不同语言国家的版本,不同drawable文件夹的命名方式为:drawable-语言代码-r国家代码

在values-zh-rCN文件夹下建一个strings.xml代表中文资源

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ok">确定</string>
<string name="cancel">取消</string>
<string name="msg">你好啊,小机器人!</string>
</resources>

在valuesen-rUS文件夹下建一个strings.xml代表英文资源

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ok">ok</string>
<string name="cancel">cancel</string>
<string name="msg">Hello,Android!</string>
</resources>

3、在布局文件中使用这些字符串资源

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/msg"

/> <Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/ok"

/> <Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cancel"
/> </LinearLayout>

接着在activity中通过setContentView(R.layout.main)加载布局文件

运行效果:

首先显示出来的是英文版的,android模拟器默认英文的,接着我们可以在Setting/Language&Input/Language这将android语言设置问中文的,就可以看到中文版的。

android国际化操作的更多相关文章

  1. [Android Pro] 完美Android Cursor使用例子(Android数据库操作)

    reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...

  2. Android 常用操作

    0.android studios使用介绍 使用介绍 android studio 常用小技巧 网址 1.怎么样添加第三方库 方法一: 第一步:将第三方库以module的形式导入 第二步:选中要导入第 ...

  3. iOS基础框架的搭建/国际化操作

    1.基础框架的搭建 1.1 pod引入常用的第三方类库 1.2 创建基础文件夹结构/目录结构 Resource———存放声音/图片/xib/storyboard 等资源文件 Define——宏定义, ...

  4. Android – 学习操作NFC – 2

    在<Android – 学习操作NFC – 1>说明了Android在处理NFC tag的机制.tag dispatch system的运作流程,以及三种ACTION_NDEF_DISCO ...

  5. iOS基础框架的搭建 / 及国际化操作

    1.基础框架的搭建 1.1 pod引入常用的第三方类库 1.2 创建基础文件夹结构/目录结构 Resource———存放声音/图片/xib/storyboard 等资源文件 Define——宏定义, ...

  6. android 文件操作类简易总结

    android 文件操作类(参考链接) http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html package com.androi ...

  7. iOS Storyboard创建APP 的国际化操作

    Storyboard创建APP 的国际化操作 最近在看<X-code江湖录>这本书,看到了APP 国际化这点,刚刚也简单的实践了一下.现在和大家分享分享! 写的这个简单的Demo全都是用 ...

  8. 为什么说android UI操作不是线程安全的

    转载于:http://blog.csdn.net/lvxiangan/article/details/17218409#t2 UI线程及Android的单线程模型原则 使用Worker线程 Commu ...

  9. Android权限操作之uses-permission详解

    本文实例讲述了Android权限操作之uses-permission.分享给大家供大家参考,具体如下: 我们在安装Android软件的时候,系统会提示该软件所需要的权限,相对于其他系统,android ...

随机推荐

  1. Node.js在不同平台的安装方法步骤详解

    Mac平台下搭建node.js开发平台 安装方式 1 步骤: 下载mac版的.pkg文件(简单直接和Windows差不多) 安装方式 2 步骤: 安装xcode(命令:xcode-select --i ...

  2. JavaScipt 源码解析 异步

    我们常见的异步操作: 定时器setTimeout postmessage WebWorkor CSS3 动画 XMLHttpRequest HTML5的本地数据 等等- JavaScript要求在与服 ...

  3. 关于如何写UI及屏幕适配的一些技巧

    因为公司开启了一个新的iOS项目, 所以近期比较忙, 没有更新博客,今天打算总结一下关于UI布局及屏幕适配的一些实战技巧,尤其使用纯代码,会对提升效率及代码易于维护等方面有明显帮助,这里提到的没有使用 ...

  4. SEO命令之”site“运用详解

    一.“site”基本介绍: 都知道要想查询一个特定网站的收录状况一般会分为两种情况:一.结果中有返回数据,则表明该网站已被收录:二.如果返回数据为空,则该网站未被收录.如果是以前已被收录的,现在来查没 ...

  5. Linux (Ubuntu) 下配置VPN服务器

    昨天网上找了下VPN的相关信息,居然各种撞墙,特别郁闷,自己不容易找到的东西,记录下VPN的配置信息 ubuntu 13.1下配置VPN  ,采用PPTP实现, 第一步.安装pptpd,没有安装包记得 ...

  6. oracle中存储过程中调用存储过程

    存储过程中调用存储过程 create or replace package body PF_Role_Pack is procedure sp_GetPage_Role(pageSize_ in nu ...

  7. 怎样将Sqlserver数据库转成mysql数据库

    手上有一个网站之前是用asp.net做的,所使用的数据库是sqlserver,现在打算用PHP+MYSQL架构.因原来的站点有一定排名,直接改版的话,会导致产生很多错误页,网站排名和收录结果要恢复过来 ...

  8. apache commons工具包

    javqa中,有时候,我们需要重写类的hashCode()和toString()方法,自己去实现,太麻烦. 我们可以用apache的commons工具类来实现. hashCode(): @overri ...

  9. C#之延迟加载

    延迟加载,亦称延迟实例化,延迟初始化等,主要表达的思想是,把对象的创建将会延迟到使用时创建,而不是在对象实例化时创建对象,即用时才加载.这种方式有助于提高于应用程序的性能,避免浪费计算,节省内存的使用 ...

  10. jdk6提供的加密算法

    SUN:SHA1PRNG____sun.security.provider.SecureRandomSUN:SHA1withDSA____sun.security.provider.DSA$SHA1w ...