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 对i18n和L10n提供了非常好的支持。android没有专门的API来提供国际化,而是通过对不同resource的命名来达到国际化,同时这种命名方法还可用于对硬件的区分,如不同的新视屏用不同的图片。

      在eclipse的工程中,res目录有默认几项resource,如 drawable, layout,menu,values

其余还有

res/anim/   用来放置动画
res/xml/     用来放置style theme等xml定义。
res/raw/    用来放置data数据

android的国际化和本地化_第1张图片

 

 我们引用这些resource时候,在java代码中是通过R.resource_type.resource_name的方式来使用,如setTitle(R.string.main_title);

还有一种是在xml中直接引用,如

    android:id ="@+id/hello_view"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
     引用了名字为hello的字符串。当程序运行时,通过Resource类会装载strings.xml中名字为hello的字符串。但Resource类装载strings.xml时会根据当前手机的设置来选择装载哪一个xml文件。这些手机设置有

MCC and MNC, Language and region, Screen dimensions, Wider/taller screens, Screen orientation,Screen pixel density, Touchscreen type, SDK version,也就是说通过手机当前语言区域,屏幕的大小,屏幕像素,以及当前android sdk的版本号来选择。通过把strings.xml放置在以这些选项命名的文件夹下,Resource类就能正确的装载所需的字符串。

     我们以不同的local和region来做一次国际化,首先values表示默认的字符串,也即当Resource找不到匹配的资源时,默认使用values文件夹下的资源,其余 drawable等资源也是同样的。

 

android的国际化和本地化_第2张图片

   当命名这些文件夹的名字时,不同的选项用-分开,而且次序必须和 andorid 文档中table 2 的次序一样,详见http://developer.android.com/guide/topics/resources/resources-i18n.html#AlternateResources

文件夹的命名必须都是小写字符,否则在一些大小敏感的文件系统中可能会出错,如果你用大写,eclipse的adt都会自动报错。小写字母r表示region的意思。 上图命名了中文简体和繁体以及默认选项,在strings.xml中除了字符串本身不一样,xml中定义该字符串的名字,id都是一样的。所以在代码或者xml中引用该资源时,只要引用名字即可或者id即可,程序启动时候Resource类回到相应的目录下去寻找正确的字符串(资源)

android的国际化和本地化_第3张图片   android的国际化和本地化_第4张图片

 

 

  通过在Settings中设置locale& Text 我们可以让Resource类来选择相应文件夹下的内容,

 

  android的国际化和本地化_第5张图片

 

 

选择英语时候结果如下,也即选择了 values下的strings.xml

android的国际化和本地化_第6张图片

 

选择 chinese(china)时,也即选了 values-zh-rcn目录下的strings.xml

 

android的国际化和本地化_第7张图片

 

 

选择 chinese(taiwan)时,也即选了 values-zh-rtw目录下的strings.xml

 

 

android的国际化和本地化_第8张图片

 

 其余手机的选项,像屏幕的像素等都可以建立相应得目录。

 

 

更多相关文章

  1. andorid 将布局文件(layout)转换为图片(Bitmap)简单使用详解
  2. Android 存储字符串数据到txt文件
  3. Android画各种圆,饼图,环图,圆形图片
  4. android TextView 结合SpannableString对部分内容设置颜色、字体
  5. android 图片压缩的几种方法
  6. 2011.10.14——— android 仿照微信的图片展示功能 之 基本功能
  7. 流媒体开发之-服务器图片的加载

随机推荐

  1. 超级简单!Android旧手机也能搭建http服务
  2. android studio修改项目名,模块名,包名
  3. Unity3D链接Android手机端数据库
  4. [第二届 Google 暑期大学生博客分享大赛
  5. android 扫码设备获取扫码回调内容实践
  6. Android(安卓)实现点击出现选择框,或者长
  7. 使用proguard混淆android代码
  8. Android(安卓)开发中使用广播的那些事儿
  9. Android(安卓)换肤之旅——主题切换
  10. SWIG与JAVA的交互指南一