android10开发语言,Android开发入门教程(十):支持不同的语言

说明:本文是我自己对官方入门教程(Training)的翻译,仅仅是为了记录自己的学习过程。由于本人英语水平太低,基本上是靠金山词霸加上自己的理解,所以翻译的不好。如果你有好的意见请留言,谢谢!

支持不同的语言(Supporting Different Languages)

一个比较好的做法是,将用户界面(UI)中显示的字符串从你的应用程序代码中提取出来,保存在一个外部文件中。Android在每一个工程中都建立了资源目录。

如果你的工程是使用Android SDK工具创建的(参考Creating an Android Project),那么工具会在项目的顶层目录中创建 res/ 目录。在这个 res/ 目录中还有各种类型的资源子目录。也有一些默认的文件,如res/values/strings.xml,其中包含了字符串的值。

创建本地目录和字符串文件(Create Locale Directories and String Files)

为了添加更多的语言支持,可以在res/目录下添加更多的values目录,以连字符和ISO国家代码为结尾。例如,values-es/就是保存区域语言代码为“es”的资源目录。程序运行时,Android通过设备的区域设置来加载适当的资源。

一旦你确定了要支持哪种语言,你就要创建资源子目录和字符串资源文件。例如:

MyProject/

res/

values/

strings.xml

values-es/

strings.xml

values-fr/

strings.xml

在正确的地区资源文件中添加字符串信息。

在程序运行的时候,Android系统会根据当时用户设备上设置的区域代码来使用适当的字符串资源。

举个例子,下面有两个不同语言的字符串资源文件。

英语(缺省的区域设置),/values/strings.xml:

My Application

Hello World!

西班牙语,/values-es/strings.xml:

Mi Aplicación

Hola Mundo!

法语,/values-fr/strings.xml:

Mon Application

Bonjour le monde !

注意:你可以在任何资源类型上使用区域限定符(或任何配置修饰符),如果你想提供本地化版本的位图绘制。更多信息,详见Localization。

使用字符串资源(Use the String Resources)

你可以在源代码和其他XML文件中使用资源名称(使用元素的name属性定义的)来引用字符串资源。

在源代码中,你可以通过R.string.这种语法来引用一个字符串资源。还有很多引用字符串资源的方法。

例如:

// 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);

在其它XML文件中,你随时可以通过语法@string/来引用一个字符串资源。

例如:

android:layout_width="wrap_content"

android:layout_height="wrap_content"

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值