尕桑才讓++安見才讓
摘要:近幾年來隨著手機(jī)用戶的數(shù)量增多以及互聯(lián)網(wǎng)向移動(dòng)終端的普及,手機(jī)的APP開發(fā)達(dá)到了一個(gè)空前的數(shù)目。隨身有著4G技術(shù)的網(wǎng)絡(luò)讓更多的用戶體驗(yàn)到了互聯(lián)網(wǎng)終端帶來的效益,也因此手機(jī)開發(fā)廠商在操作系統(tǒng)上不斷推陳出新。面對(duì)各個(gè)手機(jī)系統(tǒng),用戶都有著自己的選擇。但是Android的開源壟斷了大部分的手機(jī)市場(chǎng),使得也有著系統(tǒng)本地化的發(fā)展空間。在信息時(shí)代,對(duì)于很多藏族同胞來說,要想弘揚(yáng)藏族優(yōu)秀文化、要想藏文信息處理跟上大數(shù)據(jù)時(shí)代,使藏語文適應(yīng)現(xiàn)代化的發(fā)展,首要的問題就是實(shí)現(xiàn)藏文的信息輸入,方便廣大的藏文用戶信息交流,使得藏民族的傳統(tǒng)文化結(jié)合在電子信息上,使用和發(fā)展而真正進(jìn)入現(xiàn)代化的軌道。如何快速準(zhǔn)確地利用手機(jī)輸入藏文信息,對(duì)藏族人或研究藏文化的人而言有利于重要。
關(guān)鍵詞:藏文;Android;字體;本地化
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)06-0189-02
2007年11月,Google與硬件制造商、軟件開發(fā)商、電信運(yùn)營商和芯片制造商總共65家一同創(chuàng)組成立了開放手持設(shè)備聯(lián)盟,共同研發(fā)和改良Android,隨后,Google以Apache免費(fèi)開放源代碼許可證的授權(quán)方式,發(fā)布了Android的源代碼,讓生產(chǎn)商推出搭載Android的智能手機(jī),Android后來更逐漸拓展到平板電腦及其他領(lǐng)域上。
藏文在移動(dòng)智能設(shè)備上盛行,也面臨著藏文在信息化發(fā)展上的一個(gè)問題。因此介紹藏文在Android平臺(tái)上的本地化技術(shù)和如何加載自定義的字體,然后針對(duì)Android平臺(tái)的開源輸入法框架為實(shí)例,對(duì)兩個(gè)輸入法布局進(jìn)行自定義,提出藏文輸入的可行性和開發(fā)Android應(yīng)用的前景。
1 Android平臺(tái)的國際化和本地化
Android平臺(tái)作為一個(gè)開放性的操作系統(tǒng),面對(duì)的是全世界的用戶,故而Android在一定程度上會(huì)有了這國際化與本地化的區(qū)分,那么這二者都有哪些區(qū)別呢?Internationalization (國際化)簡稱i18n,因?yàn)樵贗和N之間還有18個(gè)字符,localization(本地化),簡稱L10n。一般說明一個(gè)地區(qū)的語言時(shí),用語言地區(qū)的形式,如zh_CN,對(duì)i18n和L10n提供了非常好的支持。要構(gòu)建多語言Android應(yīng)用程序,你需要收集到文本資源文件和翻譯。一旦您提供文本和翻譯,Android操作系統(tǒng)會(huì)選擇匹配用戶的語言環(huán)境的資源。如果你的應(yīng)用可以支持幾種語言,Android將選擇該設(shè)備使用的語言。通過定義相關(guān)的資源可以可提取并加載自適應(yīng)當(dāng)前智能設(shè)備的相應(yīng)的語言資源文件,通過代碼:String CwjLocale=getResources().getConfiguration().locale.getCountry(),即可獲取所支持的語言類型。之前還沒有提供對(duì)藏文的支持,不過Google I/O 在2015大會(huì)上發(fā)布的代號(hào)為Marshmallow(棉花糖)的安卓6.0系統(tǒng)將完美支持藏文輸入法和藏文字體。
1.1Android平臺(tái)的本地化技術(shù)
如果想要在原有的Android系統(tǒng)版本上解決實(shí)現(xiàn)藏文輸入的實(shí)現(xiàn),那么方法一是藏文字體導(dǎo)入到系統(tǒng)中,然后對(duì)其系統(tǒng)源碼進(jìn)行修改,才能正常顯示藏文,不過這方式有點(diǎn)復(fù)雜。而另外一種方法是擴(kuò)充原系統(tǒng)字體文件實(shí)現(xiàn)字體在界面上顯示,相比第一種很容易實(shí)現(xiàn)。上述已講明矢量字庫和點(diǎn)陣字庫的特點(diǎn)和格式,在Android SDK的根目錄下找到platforms/android-5.1/Data/fonts/里面,Android系統(tǒng)調(diào)用的字體資源文件有DroidsansFallback.ttf、Droidsans-bold.ttf、Droidsans.ttf、DroidsansMono.ttf、DroidSerif-bold.ttf、DroidSerif-boldItalie.ttf、DroidSerif-Italie.ttf和DroidSerif-Regular.ttf等多個(gè)文件,經(jīng)過研究分析,DroidSansFallback.ttf是系統(tǒng)最基本的字體文件。系統(tǒng)所支持的字體都包含在這個(gè)文件中,因而根據(jù)第二種方法的思路將藏文字符直接擴(kuò)充到這個(gè)文件中。
根據(jù)第二種方法將藏文字符直接擴(kuò)充到這個(gè)字體文件中。本文采用的是微軟字庫和編碼,在表中有著基本代碼區(qū)和擴(kuò)展區(qū),基本代碼區(qū)為信息交換和傳輸、保存時(shí)使用,而擴(kuò)展區(qū)的代碼用于字符在系統(tǒng)上的顯示使用,不用于信息交換。
在FontCreator8.0中,對(duì)Android系統(tǒng)默認(rèn)字體DroidsansFallback.ttf進(jìn)行按其藏文編碼進(jìn)行擴(kuò)充,將所有的藏文字符和符號(hào)添加在指定區(qū)域。圖1是在FontCreator8.0中對(duì)DroidsansFallback.ttf進(jìn)行藏文字符擴(kuò)充的部分截圖。
擴(kuò)充后的字體文件替代原有字體文件,系統(tǒng)模擬器加載的即是藏文字體了。
2 應(yīng)用程序的文件構(gòu)架
目前安卓應(yīng)用軟件是有Android studio開發(fā)的,既可以在Windows下搭建開發(fā),也可以在Linux下搭建。在工作室環(huán)境當(dāng)中新建一個(gè)Android項(xiàng)目(Hello Tibetan,顯示一句The Tibetan font),其代碼是本身環(huán)境自動(dòng)產(chǎn)生的,形成項(xiàng)目特有的結(jié)構(gòu)框架,通過分析Hello Tibetan目錄結(jié)構(gòu),圖2所示:
可以看到在Android視圖下的一級(jí)目錄分兩個(gè)區(qū)域,一個(gè)是Module列表區(qū)域,一個(gè)是Gradle腳本區(qū)域,Module目錄下分三個(gè)子目錄,分別對(duì)應(yīng)mainfests文件,java源碼,res資源目錄。Res資源目錄,該目錄下面定義了drawable、layout、menu、mipmap、values等五個(gè)目錄,本地化所需要的資源幾乎在這里。Drawable下面存放png、Jpeg、gif、xml等位圖文件,layout目錄包含所有使用xml格式的文件,而menu是選單、mipmap是用來放啟動(dòng)圖標(biāo)的,values目錄(dimens.xml定義css的配置文件、strings.xml定義字符串的配置文、styles.xml 定義樣式的配置文件、colors.xml定義顏色的配置文件)包含了使用xml格式的參數(shù)描述文件。AndroidManifest.xml是系統(tǒng)控制文件,該文件向Android操作系統(tǒng)描述了、程序所包括的組件、實(shí)現(xiàn)的功能、能處理的數(shù)據(jù),請(qǐng)求的資源控制系統(tǒng)所創(chuàng)建的所有頂層組件(尤其是Activity、Service、IntentReceiver和ContentProvider)。
3 加載自定義字體
Android studio本身其支持很多實(shí)例的導(dǎo)入,在導(dǎo)入源碼或?qū)嵗切枰芏嘧煮w來顯示。基本上加載字體的時(shí)候,找到Android studio安裝的路徑,打開lib文件中的reources.jar,用winrar的打開方式,找到fonts文件,添加上你想要的字體就行。不過想要真正加載字體并使用的話,還得通過加載字體的方式來使用android中不曾提供的字體。首先在Androidstudio中找到assets文件夾,位于serc/main/java下,與res在同一個(gè)文件里面,找到之后將字體文件(以上述所說系統(tǒng)默認(rèn)的字體形式*.ttf)放入這個(gè)文件夾下,當(dāng)然為了規(guī)范起見,我們可以在asseets下建立一個(gè)font文件夾表示存放字體文件。如果assets文件夾不存在,那么就在main下面新建folder,選擇ASSTES folder,把自己的字體存放在里面。資源存放成功之后,通過以下的代碼加載并使用字體:
Typeface.createFromAsset(getContext().getAssets(), "fonts/himalaya.ttf"
就可以加載并使用了,不過Calligraphy.jar也是Android自定義字體庫,所以下載完成之后也可以自定義屬性。
4 結(jié)語
通過對(duì)Android平臺(tái)本地化技術(shù),加載自定義字體并使用,進(jìn)一步研究系統(tǒng)語言改造成藏文的計(jì)劃。
參考文獻(xiàn):
[1] 蓋索林. Android開發(fā)入門指南[M]. 2版.北京:人民郵電出版社,2012.
[2] 靳巖,姚尚朗. Android 入門開發(fā)與實(shí)踐[M]. 北京:人民郵件出版社,2012.
[3] 李佐彬. Android開發(fā)入門與實(shí)戰(zhàn)體驗(yàn)[M].北京:機(jī)械工業(yè)出版社,2010.
[4] 伯內(nèi)特,田俊靜,張波,等. Android基礎(chǔ)教程[M].3版.北京:人民郵電出版社,2011.
[5] 郭凱敏,吾守爾·斯拉木,李少雪.基于Android本地化的技術(shù)[J].計(jì)算機(jī)應(yīng)用,2010(10).