WEB开发网
开发学院手机开发Android 开发 Android的国际化与本地化 阅读

Android的国际化与本地化

 2010-05-10 15:58:00 来源:WEB开发网   
核心提示:internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),Android的国际化与本地化,简称L10n, 一般说明一个地区的语言时,当命名这些文件夹的名字时,不同的选项用-分开,用 语言_地区的形式,如 zh_CN, zh_TW.各国语言缩

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数据

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

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

< p>

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等资源也是同样的。

当命名这些文件夹的名字时,不同的选项用-分开,而且次序必须和 andorid 文档中table 2 的次序一样。

1 2  下一页

Tags:Android 国际化 本地化

编辑录入:coldstar [复制链接] [打 印]
赞助商链接