國(guó)際化軟件開發(fā)需要遵守國(guó)際化技術(shù)準(zhǔn)則,采用軟件項(xiàng)目(或產(chǎn)品)方式進(jìn)行。一個(gè)完整的國(guó)際化軟件項(xiàng)目將包含很多內(nèi)容和階段,其中軟件的國(guó)際化和本地化是兩項(xiàng)主要內(nèi)容。
為了更深入地理解國(guó)際化軟件的開發(fā)流程,我們先從分析國(guó)際化項(xiàng)目失敗的原因開始,然后列舉國(guó)際化軟件的設(shè)計(jì)準(zhǔn)則,討論項(xiàng)目團(tuán)隊(duì)的組織結(jié)構(gòu)。在此基礎(chǔ)上,再詳細(xì)論述國(guó)際化軟件的開發(fā)流程和本地化流程。
1. 國(guó)際化軟件項(xiàng)目失敗的原因分析
開發(fā)國(guó)際化項(xiàng)目大的難點(diǎn)是避免失敗。由于軟件生產(chǎn)過程和技術(shù)的復(fù)雜性,軟件業(yè)在20世紀(jì)60年代出現(xiàn)了“軟件危機(jī)”——失敗的幾率很高。時(shí)至,雖然軟件開發(fā)和管理技術(shù)已經(jīng)取得了“突飛猛進(jìn)”式的發(fā)展,但是“軟件危機(jī)”仍然沒有根本消除,新開發(fā)軟件項(xiàng)目失敗的比例仍然居高不下。
與面向單一區(qū)域、單一語(yǔ)言的軟件開發(fā)項(xiàng)目相比,開發(fā)國(guó)際化軟件項(xiàng)目不僅在技術(shù)上,而且在項(xiàng)目需求和管理的各個(gè)方面都更加復(fù)雜,國(guó)際化軟件項(xiàng)目失敗的案例較多,開發(fā)國(guó)際化軟件項(xiàng)目成為高風(fēng)險(xiǎn)的生產(chǎn)活動(dòng)。
分析那些失敗的國(guó)際化軟件項(xiàng)目,其原因可能多種多樣,但是沒有遵守國(guó)際化軟件的設(shè)計(jì)準(zhǔn)則和技術(shù)要求,沒有考慮國(guó)際化和本地化的使用要求等因素成為大的問題。具體而言,導(dǎo)致國(guó)際化軟件項(xiàng)目失敗的原因主要有以下幾個(gè)方面:
在初編寫軟件規(guī)格說明和開發(fā)階段沒有考慮軟件的國(guó)際化問題,經(jīng)常在軟件編碼完成后進(jìn)行測(cè)試時(shí),才發(fā)現(xiàn)大量的國(guó)際化設(shè)計(jì)缺陷。
雖然考慮了軟件的國(guó)際化需求,但是沒有深入考慮當(dāng)?shù)赜脩艉褪袌?chǎng)的特定需求。
軟件開發(fā)團(tuán)隊(duì)不熟悉國(guó)際化開發(fā)技術(shù),不知道如何開發(fā)和管理國(guó)際化軟件。
測(cè)試團(tuán)隊(duì)不熟悉國(guó)際化測(cè)試技術(shù),沒有在本地化的操作系統(tǒng)和設(shè)備上進(jìn)行產(chǎn)品測(cè)試。
項(xiàng)目管理團(tuán)隊(duì)低估了軟件國(guó)際化和本地化處理所需的時(shí)間。
國(guó)際化軟件開發(fā)公司讓當(dāng)?shù)夭缓细竦能浖?jīng)銷商進(jìn)行軟件本地化處理。
為了盡量避免國(guó)際化軟件項(xiàng)目的失敗,需要研究、學(xué)習(xí)和遵守國(guó)際化軟件準(zhǔn)則,充分運(yùn)用國(guó)際化設(shè)計(jì)技術(shù)、工程技術(shù)、本地化技術(shù),深入獲取不同區(qū)域市場(chǎng)的特定功能特性需求和理解文化習(xí)俗等方面的差異。
2. 國(guó)際化軟件設(shè)計(jì)準(zhǔn)則
在進(jìn)行國(guó)際化軟件設(shè)計(jì)實(shí)踐過程中,軟件專業(yè)人員逐步總結(jié)出一些通用的準(zhǔn)則。遵守這些準(zhǔn)則,可以盡可能地避免國(guó)際化軟件項(xiàng)目失敗,提高質(zhì)量,降低開發(fā)和維護(hù)費(fèi)用。
國(guó)際化軟件設(shè)計(jì)需要遵循的通用準(zhǔn)則如下:
在國(guó)際化軟件項(xiàng)目的初期融入國(guó)際化思想,并且使國(guó)際化貫穿于項(xiàng)目的整個(gè)生命周期。
采用單一源文件進(jìn)行多語(yǔ)言版本的本地化,不針對(duì)不同的語(yǔ)言編寫多套代碼。
需要本地化的文字與軟件源代碼分離,存儲(chǔ)在單獨(dú)的資源文件中。
軟件代碼支持處理單字節(jié)字符集和多字節(jié)字符集文字的輸入、輸出和顯示,并且遵守豎排和折行規(guī)則。
軟件代碼應(yīng)該支持Unicode標(biāo)準(zhǔn),或者可以在Unicode和其他代碼頁(yè)(Code Pages)互換。
軟件代碼不要嵌入字體名,也不要假設(shè)使用某種字體。
使用通用的圖標(biāo)和位圖,避免不同區(qū)域的文化和傳統(tǒng)差異,避免在圖標(biāo)和位圖中嵌入需要本地化的文字。
菜單、對(duì)話框等界面布局能夠滿足處理本地化文字的長(zhǎng)度擴(kuò)展的需要。
源語(yǔ)言的文字要準(zhǔn)確精簡(jiǎn),使用一致的術(shù)語(yǔ),避免歧義和拼寫錯(cuò)誤,以便進(jìn)行本地化翻譯。
保證不同區(qū)域的鍵盤布局都能使用源軟件的快捷鍵。
考慮不同區(qū)域的法律和文化習(xí)俗對(duì)軟件的要求。
如果軟件中采用第三方開發(fā)的軟件或組件,需要檢查和確認(rèn)是否滿足國(guó)際化的要求。
保證源語(yǔ)言軟件可以在不同的區(qū)域和操作系統(tǒng)上正確運(yùn)行。
軟件代碼中避免“硬編碼”,不使用基于源語(yǔ)言的數(shù)字常量、屏幕位置、文件和路徑名。
字符串的緩沖區(qū)長(zhǎng)度要滿足本地化字符擴(kuò)展的長(zhǎng)度。
軟件能正確支持區(qū)域排序和大小寫轉(zhuǎn)換。
3. 項(xiàng)目與團(tuán)隊(duì)
項(xiàng)目是為完成某一項(xiàng)特定產(chǎn)品、服務(wù)或結(jié)果而實(shí)施的一項(xiàng)臨時(shí)任務(wù),它具有明確的目標(biāo)、起止時(shí)間和預(yù)算。
復(fù)雜的項(xiàng)目需要成立項(xiàng)目團(tuán)隊(duì),來自不同或地區(qū)的具有不同技能和經(jīng)驗(yàn)的人員,為著共同的任務(wù)目標(biāo)相互配合,共同完成項(xiàng)目的不同子任務(wù)。
國(guó)際化軟件的開發(fā)是復(fù)雜的工作,需要良好的項(xiàng)目規(guī)劃,成立有協(xié)作精神的團(tuán)隊(duì),由于現(xiàn)代軟件設(shè)計(jì)的復(fù)雜性和本地化對(duì)語(yǔ)言質(zhì)量的較高要求,經(jīng)常由分布在世界各地的多家公司的不同技術(shù)和管理人員組成國(guó)際化軟件項(xiàng)目團(tuán)隊(duì)。
一般地,國(guó)際化軟件項(xiàng)目可以分為規(guī)劃階段、實(shí)施階段和驗(yàn)收結(jié)尾階段。每一階段的任務(wù)都需要考慮國(guó)際化和本地化需要,而且盡早進(jìn)行國(guó)際化需求分析,可以有利于控制項(xiàng)目成本和進(jìn)度。