Android 国际化与资源自适应

说起Android SDK国际化,通常只需要将界面文字翻译成不同语言,然后将相应的资源文件放到各种语言特定国际化资源目录

资源的自适应性  主要指单独为每一种环境设置资源,例如对480*320 和 854 * 480 两种分辨率的手机设置两种XML布局文件.

 1.  对于界面的字符串国际化,实际就是为应用程序提供不同语言的字符串,  对于开发人员要做的确是,为保存各种语言的字符串资源建立国际化目录,然后将相应的资源文件放到这些目录中, 国际化目录的规则如下:

   资源目录  +  国际化配置选项

其中资源目录是指  res  目录中的子目录,例如 values,layout等,国际化配置选择项包含很多部分,中间用 " - " 分隔。例如要实现不同语言和地区的国际化,这些配置选项包括语言代号和地区代号。 表示中文和中国的配置选项是 zh-rCN; 表示英文和美国的配置选项是en-rUS.  表示zh 和 en 表示中文和英文;CN  和 US 表示中国和美国;  前面的r 是必须的,

为了区分地区部分,不能单独指定地区,但可以单独指定语言。

步骤:

   1.  在res 目录中建立两个文件夹:  values-zh-rCN  和 values-en-rUS。 并在这两个目录中各建立一个strings.xml,  内容如下:

values-zh-rCN  目录中的 strings.xml 文件

     <resources>

            <string   name="ok">确定</string>

            <string name="cancel">取消</string>

           <string name="ignore">忽略</string>

    </resources>
values-en-rUS  目录中的strings.xml 文件

    <resources>

            <string   name="ok">OK</string>

            <string name="cancel">Cancel</string>

           <string name="ignore">Ignore</string>

   </resources>
 

2.  其他的资源目录也可以采用同样的方式处理语言和地区的国际化,例如在res 目录中建立两个目录: drawable-zh-rCN  和 drawable-en-rUS,并在这两个目录中分别放一个flag.jpg,  然后可以正常引用这个图像资源, 代码:

	<ImageView   
		android:id="@+id/iv"   
		android:layout_width="100dp"  
		android:layout_height="80dp"  
		android:src="@drawable/flag"  
	/>

如果当前的语言环境未找到相应的资源,如德文,Android 系统会根据具体的资源做出相应的处理,对于字符串资源,如果该资源不存在,会显示该资源在R类中生成的ID值(以十进制显示)

 可以从如下地址获得完整的语言和地区的配置选项:

获得语言配置选项 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

除了可以使用资源目录的方式外,第二种方式是:    使用  Locale  对象获得当前的语言环境, 然后根据语言环境决定读取哪个资源文件中的资源,使用这种方式可以将资源文件存放在  assets  目录 。要注意,这里的CN 和 US前面未加前缀 r.代码也在ch13_i18n中,设置title会随着当前语言环境的变化而变化

示意图

  










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值