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 ...
随机推荐
- 为什么众多软件厂商无法提供APS高级计划排程系统?工厂目前生产计划是怎么排产的?
一.行业现状如想了解一下目前现状,去考察一下上了ERP的企业,会发现一个有趣的现象该企业无论ERP软件搞得如何如火如荼,似乎都与生产调度人员无关. 车间里或者生产线上的生产作业计划.生产过程的调度和管 ...
- java 编程基础 Class对象 反射:代理模式和静态代理
生活中的代理 类(对象)代理模式 代理模式是面向对象编程中比较常见的设计模式. 1. 用户只关心接口功能,而不在乎谁提供了功能.上图中接口是 Subject 2. 接口真正实现者是上图的 RealSu ...
- MySQL增删改查的常用语句汇总
MySQL增删改查的常用语句汇总 以下是总结的mysql的常用语句,欢迎指正和补充~ 一.创建库,删除库,使用库 1.创建数据库:create database 库名; 2.删除数据库:drop da ...
- .Net Core 项目发布在IIS上 访问404 问题对应
对策: 1.进入线程池画面,将当前程序的线程池设为"无托管代码" 2.修改配置文件 Web.config,加上配置 原因: 因为.NetCore 5.0 自带集成了Swag ...
- Protobuf 动态加载 .proto 文件并操作 Message
Google Protocol Buffer 的常规用法需要使用 protoc 将 .proto 编译成 .pb.h 和 .pb.cc,这样做效率非常高,但是耦合性也很高.在某些追求通用性而不追求性能 ...
- nim_duilib(15)之duilib属性列表.xml
Note 为了更加方便查看duilib的属性(github有时候打不开),特此记录. 阅读本文,可以知道控件有哪些属性,可以写在xml文件中.个别需要结合源码一起看 from here 原文 < ...
- 【LeetCode】950. Reveal Cards In Increasing Order 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 模拟 日期 题目地址:https://leetcod ...
- MySQL 的性能
影响数据库性能的因素: SQL 脚本 数据库服务器配置 网卡流量 磁盘 IO 大表操作 大事务操作 存储引擎 数据库参数配置 1. SQL 脚本 超高的 QPS 和 TPS TPS:英文全称是 Tra ...
- Java实习生常规技术面试题每日十题Java基础(八)
目录 1.解释内存中的栈(stack).堆(heap)和静态区(static area)的用法. 2.怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串? 3.运行时异常与受检异常有 ...
- 编写Java程序,将JButton按钮按网格布局管理器格式放置
返回本章节 返回作业目录 需求说明: 将JButton按钮按网格布局管理器格式放置 实现思路: 实现代码: public void init(){ setLayout(new GridLayout(4 ...