zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

6.4 Android国际化和本地化

Android 国际化 6.4 本地化
2023-09-14 08:59:50 时间
何谓国际化和本地化呢?就是在资源文件夹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开发案例驱动教程》第六章

Android国际化:资源+初始化+系统适配 字符资源values、布局资源layout、图片资源drawable,都可以在文件夹后添加国家后缀,放对应语言的资源。则系统会根据设置的语言自动去找对应语言的资源,如果没有设置的系统语言资源,则会拿去拿默认资源(values、layout、drawable文件夹下)。
语言区域和国际化 Android 7.0引入了能指定默认类别语言区域的概念,某些API在使用默认的DISPLAY类别语言区域时,仍然使用的是不带参数Locale.getDefault()函数。
Android 国际化 由于公司的项目是投放 google play store , 所以要做国际化。国际化遇到的两个大问题 字符串国际化 布局样式国际化 一:字符串国际化        解决这个问题很简单,在res目录下放不同国家的value文件夹,在相应文件夹里的 strings.xml 文件放对应的语言即可。
.Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化 原文:.Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化 我们知道资源被注册到R.java我们通过R.java就可以读取到界面中的组件。跟我们.net一样,通过ID来读取组件
关东升 国内著名iOS/Cocos技术作家,iOS技术顾问,Cocos最有价值专家(CVP),智捷课堂首席培训专家。担任51CTO社区iOS技术顾问。 著有多部移动开发畅销书。