尕桑才让++安见才让

摘要:近几年来随着手机用户的数量增多以及互联网向移动终端的普及,手机的APP开发达到了一个空前的数目。随身有着4G技术的网络让更多的用户体验到了互联网终端带来的效益,也因此手机开发厂商在操作系统上不断推陈出新。面对各个手机系统,用户都有着自己的选择。但是Android的开源垄断了大部分的手机市场,使得也有着系统本地化的发展空间。在信息时代,对于很多藏族同胞来说,要想弘扬藏族优秀文化、要想藏文信息处理跟上大数据时代,使藏语文适应现代化的发展,首要的问题就是实现藏文的信息输入,方便广大的藏文用户信息交流,使得藏民族的传统文化结合在电子信息上,使用和发展而真正进入现代化的轨道。如何快速准确地利用手机输入藏文信息,对藏族人或研究藏文化的人而言有利于重要。

关键词:藏文;Android;字体;本地化

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)06-0189-02

2007年11月,Google与硬件制造商、软件开发商、电信运营商和芯片制造商总共65家一同创组成立了开放手持设备联盟,共同研发和改良Android,随后,Google以Apache免费开放源代码许可证的授权方式,发布了Android的源代码,让生产商推出搭载Android的智能手机,Android后来更逐渐拓展到平板电脑及其他领域上。

藏文在移动智能设备上盛行,也面临着藏文在信息化发展上的一个问题。因此介绍藏文在Android平台上的本地化技术和如何加载自定义的字体,然后针对Android平台的开源输入法框架为实例,对两个输入法布局进行自定义,提出藏文输入的可行性和开发Android应用的前景。

1 Android平台的国际化和本地化

Android平台作为一个开放性的操作系统,面对的是全世界的用户,故而Android在一定程度上会有了这国际化与本地化的区分,那幺这二者都有哪些区别呢?Internationalization (国际化)简称i18n,因为在I和N之间还有18个字符,localization(本地化),简称L10n。一般说明一个地区的语言时,用语言地区的形式,如zh_CN,对i18n和L10n提供了非常好的支持。要构建多语言Android应用程序,你需要收集到文本资源文件和翻译。一旦您提供文本和翻译,Android操作系统会选择匹配用户的语言环境的资源。如果你的应用可以支持几种语言,Android将选择该设备使用的语言。通过定义相关的资源可以可提取并加载自适应当前智能设备的相应的语言资源文件,通过代码:String CwjLocale=getResources().getConfiguration().locale.getCountry(),即可获取所支持的语言类型。之前还没有提供对藏文的支持,不过Google I/O 在2015大会上发布的代号为Marshmallow(棉花糖)的安卓6.0系统将完美支持藏文输入法和藏文字体。

1.1Android平台的本地化技术

如果想要在原有的Android系统版本上解决实现藏文输入的实现,那幺方法一是藏文字体导入到系统中,然后对其系统源码进行修改,才能正常显示藏文,不过这方式有点复杂。而另外一种方法是扩充原系统字体文件实现字体在界面上显示,相比第一种很容易实现。上述已讲明矢量字库和点阵字库的特点和格式,在Android SDK的根目录下找到platforms/android-5.1/Data/fonts/里面,Android系统调用的字体资源文件有DroidsansFallback.ttf、Droidsans-bold.ttf、Droidsans.ttf、DroidsansMono.ttf、DroidSerif-bold.ttf、DroidSerif-boldItalie.ttf、DroidSerif-Italie.ttf和DroidSerif-Regular.ttf等多个文件,经过研究分析,DroidSansFallback.ttf是系统最基本的字体文件。系统所支持的字体都包含在这个文件中,因而根据第二种方法的思路将藏文字符直接扩充到这个文件中。

根据第二种方法将藏文字符直接扩充到这个字体文件中。本文采用的是微软字库和编码,在表中有着基本代码区和扩展区,基本代码区为信息交换和传输、保存时使用,而扩展区的代码用于字符在系统上的显示使用,不用于信息交换。

在FontCreator8.0中,对Android系统默认字体DroidsansFallback.ttf进行按其藏文编码进行扩充,将所有的藏文字符和符号添加在指定区域。图1是在FontCreator8.0中对DroidsansFallback.ttf进行藏文字符扩充的部分截图。

扩充后的字体文件替代原有字体文件,系统模拟器加载的即是藏文字体了。

2 应用程序的文件构架

目前安卓应用软件是有Android studio开发的,既可以在Windows下搭建开发,也可以在Linux下搭建。在工作室环境当中新建一个Android项目(Hello Tibetan,显示一句The Tibetan font),其代码是本身环境自动产生的,形成项目特有的结构框架,通过分析Hello Tibetan目录结构,图2所示:

可以看到在Android视图下的一级目录分两个区域,一个是Module列表区域,一个是Gradle脚本区域,Module目录下分三个子目录,分别对应mainfests文件,java源码,res资源目录。Res资源目录,该目录下面定义了drawable、layout、menu、mipmap、values等五个目录,本地化所需要的资源几乎在这里。Drawable下面存放png、Jpeg、gif、xml等位图文件,layout目录包含所有使用xml格式的文件,而menu是选单、mipmap是用来放启动图标的,values目录(dimens.xml定义css的配置文件、strings.xml定义字符串的配置文、styles.xml 定义样式的配置文件、colors.xml定义颜色的配置文件)包含了使用xml格式的参数描述文件。AndroidManifest.xml是系统控制文件,该文件向Android操作系统描述了、程序所包括的组件、实现的功能、能处理的数据,请求的资源控制系统所创建的所有顶层组件(尤其是Activity、Service、IntentReceiver和ContentProvider)。

3 加载自定义字体

Android studio本身其支持很多实例的导入,在导入源码或实例是需要很多字体来显示。基本上加载字体的时候,找到Android studio安装的路径,打开lib文件中的reources.jar,用winrar的打开方式,找到fonts文件,添加上你想要的字体就行。不过想要真正加载字体并使用的话,还得通过加载字体的方式来使用android中不曾提供的字体。首先在Androidstudio中找到assets文件夹,位于serc/main/java下,与res在同一个文件里面,找到之后将字体文件(以上述所说系统默认的字体形式*.ttf)放入这个文件夹下,当然为了规范起见,我们可以在asseets下建立一个font文件夹表示存放字体文件。如果assets文件夹不存在,那幺就在main下面新建folder,选择ASSTES folder,把自己的字体存放在里面。资源存放成功之后,通过以下的代码加载并使用字体:

Typeface.createFromAsset(getContext().getAssets(), "fonts/himalaya.ttf"

就可以加载并使用了,不过Calligraphy.jar也是Android自定义字体库,所以下载完成之后也可以自定义属性。

4 结语

通过对Android平台本地化技术,加载自定义字体并使用,进一步研究系统语言改造成藏文的计划。

参考文献:

[1] 盖索林. Android开发入门指南[M]. 2版.北京:人民邮电出版社,2012.

[2] 靳岩,姚尚朗. Android 入门开发与实践[M]. 北京:人民邮件出版社,2012.

[3] 李佐彬. Android开发入门与实战体验[M].北京:机械工业出版社,2010.

[4] 伯内特,田俊静,张波,等. Android基础教程[M].3版.北京:人民邮电出版社,2011.

[5] 郭凯敏,吾守尔·斯拉木,李少雪.基于Android本地化的技术[J].计算机应用,2010(10).