APP包含了需要适配多国、多文化的资源。例如,APP可能包含需要转换为当前语言环境的字符串。通常的做法是将文化特定的资源与APP的其他资源分开。Android根据系统区域设置来解决语言和文化特定的资源。您可以使用Android项目中的资源目录来支持不同的区域设置。
您可以根据APP用户的文化习惯来定制您的APP资源。您可以提供适合用户语言和文化的任何资源类型。例如,以下屏幕截图显示了在设备的默认(en_US)区域设置和西班牙语(es_ES)区域设置中,APP显示的字符串和图片资源。
图1.APP根据当前语言环境使用不同的资源
如果您使用Android SDK工具(请参阅创建Android项目)创建了项目,那么这些工具将在项目的根目录创建一个res /
目录。res /
目录下有各种资源类型的子目录,还有一些默认文件,如字符串文件res / values / strings.xml
。
使用特定于语言环境的资源不能满足支持不同的语言的需求。一部分用户使用RTL( right-to-left)语言(如阿拉伯语或希伯来语)来实现UI本地化。有些语言(如阿拉伯语或希伯来语)是从右往左编写的(right-to-left ,缩写为RTL),有些语言(如英语)是从左往右编写的(left-to-right,缩写为LTR),但其中可能有部分内容是RTL方向的。为了支持这两种情况,您的应用需要采用如下操作:
•为RTL语言环境使用RTL UI布局。
•调用检测文本方向的函数,检测格式化消息的文本方向。
创建区域设置目录和资源文件
如果需要支持更多语言环境,那么请在res /
中创建对应的目录。每个目录的名称应遵循以下格式:
<resource type>-b+<language code>[+<country code>]
例如,values-b+es/
文件夹下包含语言代码为es的字符串资源。同样,mipmap-b+es+ES/
文件夹下包含语言代码为es、国家代码为ES的图标资源。Android在运行时根据设备的区域设置加载适当的资源。更多相关信息,请参阅 Providing Alternative Resources。
如果您的APP要支持多语言,那么需要创建相应的资源子目录和文件。例如:
例如,以下是不同语言的不同资源文件:
英文字符串(default locale),/values/strings.xml
:
<resources>
<string name="hello_world">Hello World!</string>
</resources>
西班牙语字符串(es locale),/values-es/strings.xml
:
<resources>
<string name="hello_world">¡Hola Mundo!</string>
</resources>
美国国旗图标(default locale),/mipmap/country_flag.png
:
西班牙国旗图标(es_ES locale),/mipmap-b+es+ES/country_flag.png
:
注意:您可以对任何资源类型使用区域限定符(或配置限定符),例如提供位图drawable的本地化版本。更多相关信息请参考[Localization](