欢迎来到天天文库
浏览记录
ID:38073587
大小:233.50 KB
页数:5页
时间:2019-05-24
《Android的文言_肖祥昌》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Android上的文言Android是个国际化的手机操作系统,Androidmarket也是个世界共享的大市场,要想使得自己的应用程序被更多人用到,必须考虑的一个问题就是“国际化”,说到国际化,其不仅仅代表界面显示的语言文字,其还包括诸如界面风格,图片等等资源的国际化。Android可以运行在不同国家的各种硬件上,并且有很多语言,不同的用户在使用Android的时候,必须考虑让他们的应用程序使用用户本地化的语言,能够让各种用户都能够看明白。文言顾名思义就是文字,手机中的文言也就是手机中显示在控件中的文字,提示信息的文字。简单的说,手机中的文言,就是和外界数据无关,
2、手机自身带的文字。手机中的文言,为了适应各国的语言,需要进行国际化和本地化。国际化(i18n)和本地化(l10n):i18n和l10n分别是internationalization和localization的缩写。国际化是指让同一个程序能支持多个不同的区域,而本地化是指让程序能够支持用户所选择的区域。粗略地说,对于多语言的系统而言,国际化通常由开发人员实现,而本地化通常由翻译人员实现。Android通过资源文件实现本地化,将要实多国语言的文字,写到资源文件中,Android可以提供不同的资源,去适应不同的用户,SDK不提供显示的方法让你指定加载的资源。Androi
3、d通过检测硬件和语言的设置,去加载特定的资源文件。用户可以在设定面板上设定语言的种类。步骤为:按下menu,通过setting中的selectlocle,选择自己想要得语言。根据Resource类来选择相应文件夹下的内容,选择英语时候,也即选择了values下的strings.xml;选择chinese(china)时,也即选了values-zh-rcn目录下的strings.xml;选择chinese(taiwan)时,也即选了values-zh-rtw目录下的strings.xml。Android为我们提供了本地化类Locale,当我们在选定语言的时候,通过a
4、ndroid.content.res.Configuration.java类,调用java.util.Locale.java中的函数,设定我们选择的语言。locale类定义了android中可以使用的各种语言,提供了许多外部访问方法,当我们要增加其他的国际化语言的时候,通过扩展这个类,来达到要求。资源文件中的资源文件,通过android.content.res.Resources.java中的方法,将资源文件装载到程序中,当我们在程序中通过context.getResources()中的方法,我们可以获取资源文件中的文言,使用getString()或者更适合的ge
5、tText()方法获得这些资源。getText()方法将保留所有用于描述用户界面样式的描述符,保持复杂文本的原貌,当然我们还可以在资源文件中通过android:text="@string/hello_world"这样的方式引用资源,这样我们就可以取到设定语言下的文言。Android将根据配置文件挑选资源,挑选过程为:1.排除所有和配置文件中指定的当前设备参数不匹配的资源;2.接下来系统将根据限定字的多少来筛选。例如,如果你的本地系统识别为en-GB编码的便携设备;3.选择机制将根据配置文件中定义的优先级.如果Android程序需要适应国际化,比如说多国语言等问题,
6、那么就可以定义不同语言的UI布局,定义不同语言的资源文件,在程序装载时根据选择的语言,调用不同的布局,调用不同的文言。而且,如果我们需要修改UI的一些问题,比如修改提示信息等等,就不必查看代码了,直接更改资源文件即可。Android为了包含替代资源,在同一目录下创建并行的文件夹,在每个文件夹名字后面加上相应的指定。在开发中我们建好一个Android的项目后,默认的res下面有layout、values、drawable等目录。这些都是程序默认的资源文件目录,如果要实现多国语言版本的话,就要添加要实现各国语言的对应资源文件。首先我们点击添加AndroidXmlFil
7、e按钮,会出现下面的界面:输入文件名:string.xml,选中Values单选框,并把下面左列表中的Region添加到左边的列表里面,并在Region输入框里输入cn,如下图这时,上面的消息提示:如果用Region的话,需要使用语言项,和Region一样,我们把Language也添加到右面的列表里面,填入zh,如下图点击Finish按钮,资源文件就会建好了,目录:resvalues-zh-rCN因为设置了region为CN,如果我们选择zh-tw的时候,没有找到resvalues-zh-rTW的目录,Android会加载了默认的resvalues目录下的s
8、tring
此文档下载收益归作者所有