Android官方文档翻译 十三 3.1Supporting Different Languages
Supporting Different Languages
支持不同语言
This class teaches you to
这节课教给你
Create Locale Directories and String Files
创建一个本地目录和String文件夹
Use the String Resources
使用String资源
You should also read
你还需要阅读
Localization Checklist
本地清单列表
Localization with Resources
本地化资源
It’s always a good practice to extract UI strings from your app code and keep them in an external file. Android makes this easy with a resources directory in each Android project.
把UI字符串从你的应用程序中提取出来放到一个额外的文件中一直都是一个很好的惯例。Android通过在Android项目中使用一个资源目录让其变得简单。
If you created your project using the Android SDK Tools (read Creating an Android Project), the tools create a res/ directory in the top level of the project. Within this res/ directory are subdirectories for various resource types. There are also a few default files such as res/values/strings.xml, which holds your string values.
如果你使用Android SDK 工具创建你的项目(请阅读Creating an Android Project),SDK工具会在你项目的顶层创建一个 res/ 目录。在这个 res/ 目录下是一些各种各样的资源类型的子目录。这里也有一些默认的文件,比如 res/values/strings.xml,这里面保存的是你的字符串值。
Create Locale Directories and String Files
创建一个本地目录和String文件
To add support for more languages, create additional values directories inside res/ that include a hyphen and the ISO language code at the end of the directory name. For example, values-es/ is the directory containing simple resourcess for the Locales with the language code “es”. Android loads the appropriate resources according to the locale settings of the device at run time. For more information, see Providing Alternative Resources.
为了让你的app支持更多的语言,需要在 res/ 下创建一个额外的 values 目录,在这个目录的名字后面需要跟上一个连字符以及ISO( 国际标准化组织)语言代码。例如,values-es/ 是仅仅包含对于本地语言代码是“es”的资源目录。Android在运行时,会根据设备对于地区的设置来加载适当的资源。想获取跟多信息,请看Providing Alternative Resources。
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
Add the string values for each locale into the appropriate file.
把对于每种不同地区的string值添加到适当的文件中。
At runtime, the Android system uses the appropriate set of string resources based on the locale currently set for the user’s device.
在运行的时候,Android系统会使用适当的string资源,这取决于用户的设备当前的地区设置。
For example, the following are some different string resource files for different languages.
例如,下面是对于不同语言的几种不同string资源文件:
English (default locale), /values/strings.xml:
英语(默认地区),/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:
西班牙语,/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:
法语, /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>
Note: You can use the locale qualifier (or any configuration qualifer) on any resource type, such as if you want to provide localized versions of your bitmap drawable. For more information, see Localization.
注意:你可以在任何资源类型上使用地区限定符(或者任何配置的限定符),比如如果你想要对不同地方提供不同版本的位图图片。关于更多信息,请看Localization。
Use the String Resources
使用String资源
You can reference your string resources in your source code and other XML files using the resource name defined by the element’s name attribute.
你可以通过已经在string资源中已经定义好的资源名字在你的源代码或其他的XML文件中引用你的string资源,这些资源名字通过元素的名字属性来定义。
In your source code, you can refer to a string resource with the syntax R.string.. There are a variety of methods that accept a string resource this way.
在你的源代码中,你可以用R.string.这个语法来引用一个资源文件。有许多方法都可以通过这种方式接受一个string资源。
For example:
例如:
// 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);
In other XML files, you can refer to a string resource with the syntax @string/ whenever the XML attribute accepts a string value.
在其他的XML文件中,每当XML属性接收一个string值时,你就可以用 @string/这个语法来关联到一个string资源。
For example:
例如:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
Next: Supporting Different Screens
下一节:支持不同的屏幕
这是我自己翻译的,如果您发现其中有重要错误,敬请指出,万分感谢!
Android官方文档翻译 十三 3.1Supporting Different Languages的更多相关文章
- android官方文档翻译(不断更新中。。。)
最近在自学android,抽空把官方文档的guide跟training差不多看了一遍,又对比了一些书籍,感觉还是官方文档讲得比较好,所以自己计划把官方文档翻译一下,方便自己的知识巩固以及复习查找,由于 ...
- Android官方文档翻译 十二 3.Supporting Different Devices
Supporting Different Devices 支持不同设备 Dependencies and prerequisites 依赖关系和先决条件 Android 1.6 or higher A ...
- Android官方文档翻译 九 2.2Adding Action Buttons
Adding Action Buttons 增加动作按钮 This lesson teaches you to 这节课教给你 Specify the Actions in XML 在XML中指定动作 ...
- Android官方文档翻译 五 1.3Building a Simple User Interface
Building a Simple User Interface 创建一个简单的用户界面 This lesson teaches you to 这节课将教给你: Create a Linear Lay ...
- Android官方文档翻译 十七 4.1Starting an Activity
Starting an Activity 开启一个Activity This lesson teaches you to 这节课教给你 Understand the Lifecycle Callbac ...
- Android官方文档翻译 十六 4.Managing the Activity Lifecycle
Managing the Activity Lifecycle 管理activity的生命周期 Dependencies and prerequisites 依赖关系和先决条件 How to crea ...
- Android官方文档翻译 十五 3.3Supporting Different Platform Versions
Supporting Different Platform Versions 支持不同的平台版本 This lesson teaches you to 这节课教给你 Specify Minimum a ...
- Android官方文档翻译 十四 3.2Supporting Different Screens
Supporting Different Screens 支持不同的屏幕 This lesson teaches you to 这节课教给你 Create Different Layouts 创建不同 ...
- Android官方文档翻译 四 1.2Running Your App
Running Your App If you followed the previous lesson to create an Android project, it includes a def ...
随机推荐
- MySQL、Oracle元数据抽取分析
最近接到个任务是抽取mysql和Oracle的元数据,大致就是在库里把库.schema.表.字段.分区.索引.主键等信息抽取出来,然后导成excel. 因为刚开始接触元数据,对这个并不了解,就想借助一 ...
- Linux(Centos) 设置显示vim行号
1.修改vimrc文件 vim /etc/vimrc 2.在最后添加 set nu 如下图片所示 然后wq! 保存退出
- summernote富文本的简单使用
官方地址:https://summernote.org/ html代码 <div class="summernote" id="summernote" & ...
- 【LeetCode】157. Read N Characters Given Read4 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 直接调用 日期 题目地址:https://leetco ...
- 【LeetCode】968. Binary Tree Cameras 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【LeetCode】215. Kth Largest Element in an Array 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:移除最大值 方法二:排序 方法三:大顶堆 方 ...
- Redis常见使用场景
缓存 数据共享分布式 分布式锁 全局ID 计数器 限流 位统计 购物车 用户消息时间线timeline 消息队列 抽奖 点赞.签到.打卡 商品标签 商品筛选 用户关注.推荐模型 排行榜 1.缓存 St ...
- Java初学者作业——判断该年份是否为闰年,并输出判断结果
返回本章节 返回作业目录 需求说明: 从控制台输入年份,判断该年份是否为闰年,并输出判断结果. 实现思路: 可通过运算符实现闰年判断的条件: (1)能被4整除且不能被100整除的年份 实现:(年份 % ...
- Java初学者作业——使用switch结构实现一个简单的购物计划
返回本章节 返回作业目录 需求说明: 使用switch结构实现一个购物计划,计划为:星期一.星期三.星期五购买伊利牛奶和面包,星期二.星期四购买苹果和香蕉,星期六.星期日购买啤酒和周黑鸭. 实现思路: ...
- Java初学者作业——编写Java程序,输出1~100之间能够同时被3和4整除的最大的五个数字。
返回本章节 返回作业目录 需求说明: 编写Java程序,输出1-100之间能够同时被3和4整除的最大的五个数字. 实现思路: 声明变量count,用于存储满足条件的数据个数,设置初始值为0. 在区间1 ...