Android会运行在许多地区的许多设备上。为满足大多数用户的需要,应用程序应该使用与应用所在地区相适应的文本、音频文件、数字、货币符号、以及图形等。
本文档介绍Android应用程序本地化的最佳实践。这个原则适用于你正在使用的任何IDE开发工具,如带有ADT的Eclipse、基于Ant的工具等。
首先要掌握Java的编程知识,并且熟悉Android的资源加载过程,以及XML中用户界面元素的声明方法。在开发方面要掌握Activity的生存周期以及国际化和本地化的一般原则。
使用Android资源框架把应用程序本地化的外观尽可能的与核心Java功能分离,是一个良好的实践。
1.可以把大多数或所有的应用程序的用户界面的内容放到资源文件中;
2.用户界面的行为,以及其他处理,是通过Java代码来驱动的。如,如果用户输入的数据需要依赖不同的地区来格式化或排序,那么就要使用Java代码来编程处理这些数据。
概要:Android中的资源切换
资源是文本字符串、布局、声音、图形以及Android应用程序中需要的其他静态数据。一个应用程序能够包含多个资源集,每个都是针对不同的设备配置来定制的。当用户运行应用程序时,Android会自动的选择并加载跟设备最匹配的资源。
当编写应用程序时,需要创建一组默认的资源,外加用于不同地区的可选资源。
当用户运行应用程序时,Android系统会基于地区来选择加载合适的资源。
在编写应用程序时,要给应用程序创建默认和可选资源。对于这些创建的资源,要把它们放到res/目录下,特定命名的子目录中的文件中。
为什么默认资源是重要的?
当应用程序运行在一个没有提供特定语言文本的语言环境中时,Android会从res/values/strings.xml中加载默认的字符串。如果默认的文件不存在,或者是缺少应用程序需要的字符串,那么应用程序就不会运行,并且会显示一个错误。下面的示例演示了当默认文本文件不完整时所发生的问题:
应用程序的Java代码只引用了两个字符串,text_a和text_b。这个应用程序包含了用英语定义的text_a和text_b的本地资源文件(res/values-en/strings.xml)。应用程序还包含了一个默认的资源文件(res/values/strings.xml),文件中包含了text_a的定义,但没有定义text_b。
1.应用程序编译时可能不会有问题。像Eclipse这样的IDE,如果资源有错误,它是不会报告任何错误的。
2. 当应用程序在设置了英语语言环境的设备上启动时,应用程序能够正确运行,因为res/values-en/strings.xml中包含了它所需要的文本字符串。
3.但是,当应用程序在设置了英语以外的其他语言环境的设备上启动这个应用程序时,用户会看到一个错误信息和强制关闭按钮。
要防止这种情况发生,必须确保res/values/strings.xml文件存在,并且定义了每个需要字符串。这适用于所有类型的资源,不只是字符串。你要给应用程序需要的所有类型的资源创建默认资源文件,包括布局资源、可描画资源、动画资源等。
分享到:
相关推荐
【eoeAndroid特刊】第五期:资源与应用国际化布 (其余《eoeAndroid特刊》请查阅我的资源列表) 1.源和资产(Resources and Assets) ...8.Android Applications Localization Helper (Android 本地化助手)
eoeAndroid特刊第五期 Android+widget 资源与应用国际化 pdf,本期特刊将翻译一些文章,并参考一些例子... Android Applications Localization Helper (Android 本地化助手) -一个小工具让你的国际化工作,事半功倍
它还包括本地化的语言资源,翻译成法语和希伯来语的字符串以及RTL布局调整。 该应用会转换用户所选语言环境的日期,数字和货币格式。 先决条件 你得知道: 如何使用Android Studio打开,构建和运行应用程序。 ...
sdk-android:使用Applanga Android本地化SDK,您可以自动化android应用翻译过程。 您无需将android字符串资源文件转换为excel或xliff。 整合SDK之后,您可以无线翻译Android应用程式,并管理资讯主页中的所有字串。...
国际化和本地化Internationalization and Localization 43 意图和意图过滤器Intents and Intent Filters 43 意图过滤器Intent filters 47 通常情况Common cases 51 使用意图匹配Using intent matching 52 数据存储...
国际化和本地化Internationalization and Localization 43 意图和意图过滤器Intents and Intent Filters 43 意图过滤器Intent filters 47 通常情况Common cases 51 使用意图匹配Using intent matching 52 数据...
国际化和本地化Internationalization and Localization 43 意图和意图过滤器Intents and Intent Filters 43 意图过滤器Intent filters 47 通常情况Common cases 51 使用意图匹配Using intent matching 52 数据存储...
国际化和本地化Internationalization and Localization................ 43 意图和意图过滤器Intents and Intent Filters............................. 43 意图过滤器Intent filters.................................