6.4 Android国际化和本地化

简介: 何谓国际化和本地化呢?就是在资源文件夹res内建立不同国家语言的文件,这些国家语言的文件命名是有规定的,具体参见表6-1。当用户设置手机的语言时,程序能根据用户选择的语言情况,而加载相对应的语言文件。用户感受到是程序的本地化,而对于开发人员来讲就是程序实现了国际化。<br> 在本例中实现了一个注册的界面,它可以实现中文简体和中文繁体的本地化过程,编写的string.xml和文件夹命名如表6-1
何谓国际化和本地化呢?就是在资源文件夹res内建立不同国家语言的文件,这些国家语言的文件命名是有规定的,具体参见表6-1。当用户设置手机的语言时,程序能根据用户选择的语言情况,而加载相对应的语言文件。用户感受到是程序的本地化,而对于开发人员来讲就是程序实现了国际化。
在本例中实现了一个注册的界面,它可以实现中文简体和中文繁体的本地化过程,编写的string.xml和文件夹命名如表6-1。
表6-1 文件命名对比表
values/strings.xml 默认
values-zh-rCN/strings.xml 中文(简体)
values-zh-rTW/strings.xml 中文(繁体)
res文件夹内的目录结构如图6-26所示。
 


图6-26  res目录结构
需要创建三个strings.xml文件,默认是英文,文件的位置在chapter6_10/res/values/strings.xml,实现代码如下。在手机“设置”->“语言和键盘” ->“选择语言”中选择英文,回到应用界面如图6-27所示。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, button!</string>
<string name="app_name">chapter6_5</string>
<string name="registerInfo">Registration Information</string>
<string name="userName">Username:</string>
<string name="password">Password:</string>
<string name="sex">Sex:</string>
<string name="radioButton01">Male</string>
<string name="radioButton02">Female</string>
<string name="hobby">Hobby:</string>
<string name="checkBox01">Travel</string>
<string name="checkBox02">Read</string>
<string name="checkBox03">Net</string>
<string name="button01">Save</string>
</resources>
 


图6-27 工程运行效果图五
简体中文的文件位置在chapter6_10/res/values-zh-rCN/strings.xml,实现如代码清单6-19。在手机“设置”->“语言和键盘” ->“选择语言”中选择简体中文,回到应用界面如图6-28所示。
【代码清单6-19】 chapter6_10/res/values-zh-rCN/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, button!</string>
<string name="app_name">chapter6_5</string>
<string name="registerInfo">注册信息</string>
<string name="userName">用户名:</string>
<string name="password">密码:</string>
<string name="sex">性别:</string>
<string name="radioButton01">男</string>
<string name="radioButton02">女</string>
<string name="hobby">爱好:</string>
<string name="checkBox01">旅游</string>
<string name="checkBox02">看书</string>
<string name="checkBox03">上网</string>
<string name="button01">保存</string>
</resources>



图6-28 工程运行效果图六
繁体中文的文件位置在chapter6_10/res/values-zh-rTW/strings.xml,实现如代码清单6-20。在手机“设置”->“语言和键盘” ->“选择语言”中选择繁体中文,回到应用界面如图6-29所示。
【代码清单6-20】 chapter6_10/res/values-zh-rTW/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, button!</string>
<string name="app_name">chapter6_5</string>
<string name="registerInfo">註冊資訊</string>
<string name="userName">用戶名:</string>
<string name="password">密碼:</string>
<string name="sex">性別:</string>
<string name="radioButton01">男</string>
<string name="radioButton02">女</string>
<string name="hobby">愛好:</string>
<string name="checkBox01">旅遊</string>
<string name="checkBox02">看書</string>
<string name="checkBox03">上網</string>
<string name="button01">保存</string>
</resources>
 


图6-29 工程运行效果图七
                                                          出自《Android开发案例驱动教程》第六章
目录
相关文章
|
6月前
|
XML 自然语言处理 Android开发
🌐Android国际化与本地化全攻略!让你的App走遍全球无障碍!🌍
【7月更文挑战第28天】在全球化背景下,实现Android应用的国际化与本地化至关重要 for 用户基础扩展。本文通过旅游指南App案例,介绍全攻略。步骤包括资源文件拆分与命名、适配布局与方向、处理日期时间及货币格式、考虑文化习俗及进行详尽测试。采用Android Studio支持,创建如`res/values-en/strings.xml`等多语言资源文件夹,使用灵活布局解决文本长度差异问题,并通过用户反馈迭代优化。最终,打造一款能无缝融入全球各地文化的App。
233 3
|
4月前
|
XML Android开发 数据格式
🌐Android国际化与本地化全攻略!让你的App走遍全球无障碍!🌍
在全球化背景下,实现Android应用的国际化与本地化至关重要。本文以一款旅游指南App为例,详细介绍如何通过资源文件拆分与命名、适配布局与方向、处理日期时间及货币格式、考虑文化习俗等步骤,完成多语言支持和本地化调整。通过邀请用户测试并收集反馈,确保应用能无缝融入不同市场,提升用户体验与满意度。
145 3
|
8月前
|
XML Java 开发工具
Android的国际化与本地化
Android的国际化与本地化
88 1
|
自然语言处理 Android开发 图形学
修行Android Studio技巧到出神入化,快速涨薪-【国际化】、【JPG/PNG转WebP】、【代码折叠】篇
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
156 0
|
Android开发
【Android 安装包优化】资源打包配置 ( resources.arsc 资源映射表 | 配置国际化资源 )
【Android 安装包优化】资源打包配置 ( resources.arsc 资源映射表 | 配置国际化资源 )
387 0
【Android 安装包优化】资源打包配置 ( resources.arsc 资源映射表 | 配置国际化资源 )
|
Android开发
Android 本地化翻译插件,一键将你的 strings.xml 翻译为最多 104 种语言,告别手动复制黏贴
Android 本地化翻译插件,一键将你的 strings.xml 翻译为最多 104 种语言,告别手动复制黏贴
|
机器学习/深度学习 Android开发 索引
Android国际化:资源+初始化+系统适配
资源匹配 字符资源values、布局资源layout、图片资源drawable,都可以在文件夹后添加国家后缀,放对应语言的资源。则系统会根据设置的语言自动去找对应语言的资源,如果没有设置的系统语言资源,则会拿去拿默认资源(values、layout、drawable文件夹下)。
|
Android开发
安卓国际化开发中的时区问题之——夏令时,冬令时
在说时区问题的时候,估计很多人都很不屑。因为获取时区的方法真的太简单了。尤其是很多面向百度编程的iter。 比如,获取时区的方法一句就能搞定:        String timeZone =“GMT”+String.valueOf(TimeZone.getDefault().getRawOffset() / (3600 *1000)); 当时很不屑这个问题的时候。
2365 0
|
Android开发
Android 国际化
1. 应用内设置语言 @Override protected void onCreate(Bundle savedInstanceState) { super.
890 0
|
API Android开发 网络协议
Android 8.0 新特性之语言区国际化和隐私性
语言区域和国际化 Android 7.0引入了能指定默认类别语言区域的概念,某些API在使用默认的DISPLAY类别语言区域时,仍然使用的是不带参数Locale.getDefault()函数。
1396 0