1. Android程序的国际化
-----------------------

国际化的英文单词是Internationalization,因为这个单词太长了,有时也简称为I18N,其中的I是这个单词的第一个字符,18表示中间省略的字母个数,而N代表这个单词的最后一个字母。所以,I18N也就是国际化的意思。Android程序国际化,也就是程序可以根据系统所使用的语言,将界面中的文字翻译成与之对应的语言。这样,可以让程序更加通用。Android可以通过资源文件非常方便的实现程序的国际化。
在编写Android项目时,通常都是将程序中要使用的字符串资源放置在res/values目录下的strings.xml文件中,为了给这些字符串资源实现国际化,可以在Android项目的res目录下,创建对应于各个语言的资源文件夹(例如,为了让程序兼容简体中文、繁体中文和美式英文,可以分别创建名称为values-zh-rCN、values-zh-rTW和values-en-rUS的文件夹),然后在每个文件夹中创建一个对应的strings.xml文件,并在该文件中定义对应语言的字符串即可。这样,当程序运行时,就会自动根据操作系统所使用的语言来显示对应的字符串信息了。

官方参考API:http://developer.android.com/training/basics/supporting-devices/languages.html

【Supporting Different Languages】步骤

(a)步骤一  Create Locale Directories and String Files

Once you’ve decided on the languages you will support, create the resource subdirectories and string resource files. For example:

MyProject/
    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-fr/
           strings.xml

At runtime, the Android system uses the appropriate set of string resources based on the locale currently set for the user's device.

For example, the following are some different string resource files for different languages.

English (default locale), /values/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">My Application</string>
    <string name="hello_world">Hello World!</string>
</resources>

Spanish, /values-es/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Mi Aplicación</string>
    <string name="hello_world">Hola Mundo!</string>
</resources>

French, /values-fr/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Mon Application</string>
    <string name="hello_world">Bonjour le monde !</string>
</resources>

(b)步骤二  Use the String Resources
【示例】
// Get a string resource from your app's Resources
String hello = getResources().getString(R.string.hello_world);

// Or supply a string resource to a method that requires a string
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);

或者:
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

android:text="@string/hello_world" />

Internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n。

一般用 语言_地区的形式表示一种语言,如  zh_CN, zh_TW.

各国语言缩写  http://www.loc.gov/standards/iso639-2/php/code_list.php

国家和地区简写 http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

在Android工程的res目录下,通过定义特殊的文件夹名称就可以实现多语言支持。比如我们的程序兼容 简体中文、日文、英文、法文和德文,在values文件夹中建立默认strings.xml,再建立 values-zh-rCN(zh表示中文rCN表示简体,类似还有美式英语,奥式英语)、values-ja、values、values-fr和values-de文件夹。(可以用开发工具建:见http://www.cnblogs.com/wuyunan/archive/2009/09/16/1567960.html)

在每个文件夹里放置一个strings.xml,strings.xml里是各种语言字符串。如果涉及到参数配置类xml文件夹也要改成xml-zh、xml-ja、xml、xml-fr和xml-de。这样在android的系统中进行语言切换,所开发的程序也会跟着切换语言。

【Android】Android国际化相关推荐

  1. Android语言国际化values资源文件命名规则

    今天,简单讲讲 android 里如何将语言国际化,和各个国家语言的value文件夹的命名规则. 昨天,需要将app的字符资源国际化,可是却不知道如何命名,在网上找了资料,终于解决了问题. Andro ...

  2. Android 语言国际化

    前言 我们在使用Android手机系统的时候经常在"设置"项里面会提供用户多种系统语言选择,比如:中文.英语-- 大家或许已经发现这些语言显示顺序都是"从左往右" ...

  3. Android App 国际化详解

    前言 internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化),简称L10n.一般用语言_地区的形式表示一种语言,如zh_ ...

  4. android语言国际化(最高适配Android31)

    android语言国际化适配其实也就那么回事,最主要要考虑适配的问题,sdk17以下和sdk17及以上Configuration配置Locale的方式有所改变,sdk N 及以上API发生了很大的变化 ...

  5. Android - Android Studio 解决访问被墙的问题

    Android - Android Studio 解决访问被墙的问题 参考文章: (1)Android - Android Studio 解决访问被墙的问题 (2)https://www.cnblog ...

  6. OpenCV2.4.9 For Android + Android Studio (with gradle)配置教程

    OpenCV2.4.9 For Android + Android Studio (with gradle)配置教程 10 回复 / 9501 浏览 本页底部本帖地址 4king2 年前 - 2014 ...

  7. [Android]Android端ORM框架——RapidORM(v2.1)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/6020412.html [Android]Android端ORM ...

  8. [Android] Android开发优化之——使用软引用和弱引用

    Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用和虚引用. 这里重点介绍一下软引用和弱引用. 如 ...

  9. android Android项目构建过程

    今天,简单讲讲android studio如何把写好的工程打包成apk的. 平时开发过程中我们通过android studio编写完成android项目之后直接点击 Run 'app'就可以在buil ...

  10. 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)

    Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道And ...

最新文章

  1. ES6 -Set 和 Map 数据结构
  2. poj 2528 Mayor's posters (线段树+离散化)
  3. 个人网站备案起名_郑州诚信个人商标注册电话
  4. jstree中json data 的生成
  5. 百度网盘最大的竞争对手来了!阿里云盘正式公测
  6. python 一组数据 正态分布散点图_python高维数据型图表矩阵散点图
  7. 服务器的运行速度突然变慢的原因一般有如下几个方面:
  8. linux 下tar打包举例,Linux tar打包命令
  9. 微信小程序开发之——开发者工具介绍(1.7)
  10. 个人web前段学习心得
  11. 利用XML文件以及集合方法设计简单超市管理系统的Java程序
  12. PostgreSQL-11.7关系型数据库源码安装
  13. 计算机图形学基础知识-光照材质
  14. phpqrcode简单在线二维码生成工具源码 非第三方接口
  15. 用断点续存实现视频快速上传
  16. 彻底理解傅里叶变换(上)
  17. 阿里云HaaS100物联网开发板学习笔记(四)轻应用初步--用javascript连接阿里云物联网平台
  18. d3.js操作svg
  19. 微信转发网站怎么可以看到icon图标?
  20. 湖南大学计算机博士好考吗,欲报考湖南大学人文类博士者注意:极难毕业

热门文章

  1. STL vector
  2. 【小菜日志】用C#完成Allen Lee's Magic大虾推荐的F#作业F#学习中
  3. java 多线程不安全_多线程并发为什么不安全
  4. 每日程序C语言31-auto的使用
  5. 如何在服务器上运行python程序_在服务器上配置运行(每天一则段子python程序)...
  6. C#中的深复制与浅复制
  7. 西北工业大学复试上机
  8. git命令详解( 八)
  9. 判断数组对象里面的某个属性全部为true才执行下一步操作
  10. 第四章:通过:driver.getAttribute(value); 获取value的值