程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 批處理文件國際化支持解決方案

批處理文件國際化支持解決方案

編輯:關於JAVA

隨著軟件應用的迅速推廣與發展,應用軟件無一例外的面臨著支持多國家多語種的國際化問題,基於 Windows 的批處理文件應用廣泛,然而作為一種通用腳本語言,批處理腳本沒有提供一種體系化的多語言國際化支持。本文首先介紹編程語言和國際標准化對多語言問題作出的努力;其次,給出了通用多語言支持解決方案的靈活架構設計;再次,給出了批處理文件的輕量級、靈活架構的通用多語言支持解決方案,以及基於該解決方案構建支持多語言的批處理軟件系統的一般步驟;最後作了一定的總結和展望。

背景

軟件應用迅速發展擴張,逐步滲透到各行各業,越來越多的國家和地區認識到了計算機軟件的重要性,大量的應用軟件應用於日常的生活和工作當中。小到一個音樂播放軟件,大到操作系統,都被廣泛的應用。但是大量的計算機軟件應用面臨著一個非常嚴峻的問題,國際化問題。由於各個國家有不同的語言,而同一個國家的不同地區也有不同的語言習慣,例如中國大陸和台灣地區都使用中文,但是由於地區的語言等習慣不同,大陸地區使用簡體中文,台灣地區使用的是繁體中文。對於一個應用軟件要做到很好的本地化效果,就要充分考慮到用戶的語言等習慣,例如 Windows Xp 系統包括中文簡體 Xp 系統,中文繁體系統,英文系統等等。任何一個跨國家跨地域的軟件都要碰到這樣的問題,這個問題的解決和實現被稱為國際化問題,所謂國際化就是 Internationalization,簡稱作 i18n 。

批處理腳本作為基於 Windows 直接支持的腳本,以其簡潔、方便、快速而被廣泛的直接應用或間接應用到大量的軟件應用當中,然而作為一種通用的腳本語言沒有提供一種成體系的多語言國際化支持,大大限制了這種簡潔、方便的語言的使用,本文針對批處理腳本語言提出了一種有效的多語言支持解決方案。

Java 語言的國際化支持

Java 語言提供了 java.util.Locale 類進行多語言環境處理,Locale 對象表示了特定的地理、政治和文化地區。需要 Locale 來執行其任務的操作稱為語言環境敏感的操作,它使用 Locale 為用戶量身定制信息。例如,顯示一個數值就是語言環境敏感的操作,應該根據用戶的國家、地區或文化的風俗 / 傳統來格式化該數值。使用此類中的構造方法來創建 Locale:

Locale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)

language 語言參數是一個有效的 ISO 語言代碼。這些代碼是由 ISO-639 定義的小寫兩字母代碼。

表一 語言參數的 ISO 語言代碼

English Name of Language All English Names All French Names ISO 639_2 ISO 639_1 Chinese Chinese chinois chi/zho zh English English anglais eng en French French français fre/fra fr

country 國家/地區參數是一個有效的 ISO 國家/地區代碼。這些代碼是由 ISO-3166 定義的大寫兩字母代碼。

表二 語言參數的 ISO 國家/地區代碼

Country names ISO 3166-1-alpha-2 code CHINA CN TAIWAN, PROVINCE OF CHINA TW UNITED STATES US UNITED KINGDOM GB FRANCE FR

根據 ISO 語言代碼和國家/地區代碼我們定位一個國家地區的語言習慣的時候可以使用“語言 - 國家”這樣的格式,例如中國大陸的中文語言習慣可以表示為“ zh-CN ”,中國台灣的語言習慣可以表示為“ zh-TW ”等等以此類推。

Java 語言充分利用 Locale 對象對語言習慣進行處理和設計。基於 JAVA 語言的大部分應用充分利用這一特性進行多語言架構設計。例如 Struts 框架在進行多語言處理的時候結合 Web 應用的特點充分使用了 JAVA 的多語言特性,多語言處理按照如下邏輯,如果用戶選擇了某種語言習慣 Locale,則將該信息存儲到該用戶的會話當中,再次讀取首先檢查會話信息,然後將會話中語言習慣 Locale 映射為信息文件;如果會話信息不存在,則利用 Request 對象讀取客戶端浏覽器的系統 Locale 信息,然後把這一信息解析,即可得到相應的語言習慣,並映射成相應的語言習慣文件中去。

批處理腳本語言國際化支持

批處理,也稱為批處理腳本,英文譯為 BATCH,批處理文件後綴 BAT 就取的前三個字母。是一種簡化的腳本語言,它應用於 DOS 和 Windows 系統中,是由 DOS 或者 Windows 系統內嵌的命令解釋器(通常是 COMMAND.COM 或者 CMD.EXE)解釋運行,類似於 Unix 中的 Shell 腳本。

從某種意義上說,批處理就是一種編程,其實批處理是一種宏,但是用途非常廣泛,可以實現一些用軟件才可以實現的簡單功能。它的構成沒有固定格式,遵守以下規則:每一行可視為一個命令,每個命令裡可以含多條子命令,從第一行開始執行,直到最後一行結束。其最簡單的例子,是逐行書寫在命令行中會用到的各種命令。更復雜的情況,需要使用 if,for,goto 等命令控制程序的運行過程,如同 C,Basic 等高級語言一樣。如果需要實現更復雜的應用,利用外部程序是必要的,這包括系統本身提供的外部命令和第三方提供的工具或者軟件。批處理程序雖然是在命令行環境中運行,但不僅僅能使用命令行軟件,任何 32 位的 Windows 程序都可以放在批處理文件中運行。

批處理有很鮮明的特點:使用方便、靈活,功能強大,由於直接運行於 Windows 平台,不需要綁定其他編譯器或者運行平台,可以很快速的定制易使用的輕量級應用。

在多語言支持方面,批處理腳本語言沒有提供一套切實可行的解決方案體系。但是依賴於強大的 Windows 系統,批處理文件可以查詢系統的系統變量,進而得出當前的系統狀態和語言支持,因此可以通過建立一套有效的多語言支持解決方案解決多語言支持問題。

通用多語言解決方案靈活架構設計

概念層架構設計

依據面向對象分離可變的與不可變的思想理念,將支持多語言的應用系統劃分為程序內核和多語言外殼層。在運行時刻,程序邏輯運行於程序內核之中,相對於多語言來說屬於不變部分,運行時刻需要的語言按照系統和用戶習慣要求動態調入程序內核,屬於可變部分。在運行時刻的概念層體系架構為圖 1 所示。

圖 1. 運行時刻概念層體系結構

從復用和編程語言的特點來考慮,由於編程語言必須靜態依賴,因此在設計期系統必須提供靜態支持,如果直接依賴於某種語言則造成系統無法動態靈活支持多語言,因此在設計期增加多語言抽象層,程序內核依賴於多語言抽象層,從而支持多語言實現;從復用性的角度考慮,如果將多語言抽象層混雜到程序內核中實現,則會造成程序內核直接依賴於多語言實現功能,同時造成了多語言支持的功能復用性低,多語言的功能不能很好復用到其他軟件系統。

據以上兩點分析,最終多語言支持軟件概念層體系結構如圖 2 所示。

圖 2. 概念層體系結構

實現層架構設計

基於多語言支持軟件的概念層體系結構設計,多語言支持軟件實現層體系結構如圖 3 所示,

圖 3. 實現層體系結構

依據概念層體系結構,實現層體系結構包括三層,程序內核層、多語言抽象層、多語言外殼。程序內核包裝程序系統的業務邏輯和實現功能,位於實現層體系結構的最頂層,內核層由多個功能模塊 (Program1 … ,m, … n) 構成直接依賴於多語言抽象層。多語言抽象層位於實現體系結構的中間層次,多語言抽象層一方面提供給程序內核層直接依賴,另一方面實現對多語言的動態調入支持。多語言抽象層通過變量鍵值 (Key) 的方式提供給內核層的直接依賴,以剝離內核層對多語言的直接依賴;多語言抽象層通過動態判斷系統、用戶語言習慣動態從多語言外殼層調入對應鍵值的語言,從而完成動態支持多語言。多語言外殼層位於實現層體系結構的最底層,提供多種語言的存儲和 Key 值的映射對應關系,支持抽象層的多語言動態調入,常用的多語言存儲方式包括數據庫存儲、文件存儲等。

依據實現層的體系結構設計和運行時刻的多語言動態支持過程,多語言支持一般包括如下幾個步驟:

獲取系統、用戶語言習慣。獲取的方式很多,可以讀取系統信息直接獲取,也可以和用戶交互,通過用戶輸入獲取。

從軟件系統中分離語言元素。分離語言元素實際上包括分離系統、用戶習慣相關的元素,構建抽象層,使得軟件系統程序內核依賴於抽象層。另一方面,從軟件系統中剝離的語言元素首先選擇合適的存儲方式,然後根據對應的鍵值對相應的語言進行翻譯,翻譯後的語言按照既定的存儲方式進行存儲。一般常用的存儲方式包括文件存儲和數據庫存儲,兩種存儲方式各有優缺點。

從正確的存儲方式中獲取對應的多語言信息。利用在步驟一種獲得的系統、用戶語言習慣獲得對應的語言種類,根據相應的存儲方式,讀取指定的鍵值對應的語言元素。

依據概念層的體系架構設計,步驟一和步驟三屬於運行時刻實現,步驟二屬於開發設計中的實現。

現過程中一般有兩種角色,程序開發人員和多語言文案准備人員。程序開發人員的職責貫穿從步驟一到步驟三,多語言文安准備人員的職責主要集中在步驟二中。在實際的開發過程中開發人員首先完成從步驟一到步驟三的初期系統開發和單語種元素的剝離,並選定特定的語言種類。待基本完成了軟件開發工作,軟件系統處於穩定期後,多語言文案准備人員開始步驟二的多語言翻譯,並按照選定的存儲方式進行存儲。

獲取系統、用戶語言習慣設計

獲取系統、當前用戶的語言習慣是多語言支持的第一步。目前常用的實現手段包括兩種,通過讀取系統參數獲取系統當前的用戶語言習慣;另一種方式是通過與當前用戶進行交互,讀取用戶當前的輸入內容和選擇項,設定當前用戶的語言習慣。對於操作系統語言習慣,常用的方式是直接讀取操作系統的語言習慣信息,每次運行直接讀取;對於當前用戶的語言習慣,通過用戶選定的語言習慣,軟件系統記錄該信息,並完成存儲。

目前較為流行的軟件系統包括 C\S 和 B\S 模式兩種,C/S 模式直接作用於系統,可以直接操作系統的語言習慣信息,用戶語言習慣則通過存儲用戶輸入的信息,每次讀取用戶選擇信息;對於 B/S 模式通過讀取浏覽器發送請求信息讀取操作系統語言習慣,進而選定對應的語言習慣,對於用戶語言習慣,通過將用戶輸入信息存儲於服務器端,每次服務器端程序讀取存儲信息,然後解析發布。

分離軟件系統中語言元素設計

該過程是一個設計期的靜態行為,要解決多語言外殼層的語言存儲問題和建立多語言抽象層,並根據多語言抽象層完成程序內核對於多語言抽象層的依賴。

多語言外殼層的語言存儲方式一般包括數據庫存儲和文件存儲兩種方式,根據需要選擇對應的存儲方式。對於存儲內容,一般存儲 Key=Value 格式的內容,Key 為某一指定語言元素鍵值,Value 為對應的語言元素內容。

對於文件存儲方式,要考慮到何種方式易於處理多語言。在程序處理中,能直接獲得的是語言習慣,根據語言習慣和 Key 值得到某種語言的語言元素的過程是存儲方式重要考慮的內容。一般采用每種語言一個語言文件,文件名用對應的語言習慣相對應,例如存儲的多語言文件 message_en-us.properties,message_zh-cn.properties 等等。這種存儲方式便於在選定某一語言習慣後,直接映射到對應的信息存儲文件。對於數據庫存儲形式較多,從執行效率等角度有很多衡量考慮的內容,這裡不予詳述。

對於多語言抽象層,是一個位於程序內核和多語言外殼層的抽象層,該層次的目標為分離程序內核層對多語言外殼層的直接依賴,使程序內核層對多語言抽象層的直接依賴,保持了程序內核層動態對多語言支持過程中的穩定性;對於多語言外殼層,多語言抽象層實現了對於多語言外殼層語言元素的獲取,因此多語言抽象層對多語言外殼層存在直接依賴,根據面向接口編程的思想可以有效的分離這種直接依賴。抽象層首先可以獲得系統和用戶語言習慣,得到了系統和用戶語言習慣,然後提供了根據鍵值和語言習慣獲取語言元素的方法。不考慮系統的其他品質,而僅從實現角度,該方法首先根據語言習慣映射出對應的語言文件,然後根據鍵值實現對於多語言外殼層數據的讀取。

程序內核層對多語言抽象層的依賴。一般的對於這個提取語言元素的過程,要選定一種語言進行處理,以保證在系統運行和調試過程中不會出現語言元素不存在的錯誤。程序內核的語言元素提取過程如下,首先查找程序內核中所有的多語言信息,然後將每個語言元素提取出來放入對應的語言文件中,並選定一個固定的鍵值,最後用指定的鍵值和抽象層的語言元素讀取方法來替換。

例子:

多語言存儲方式選擇文件存儲,存儲文件格式為 message_en-us.properties. 抽象層實現類為 Message,實現語言讀取為 getMessage(String key) 方法。

清單 1. 抽象層的語言信息提取器

public String getMessage(String key)
{
  //獲取語言習慣
  getLocale();
  //根據語言習慣獲取對應的文件
  getMessgeFile();
  //讀取對應的語言內容,並返回
  .....
  //
  return message;
}

假定程序內核的程序包括如下語言程序段 UI 為用戶界面,UI.print(String str) 在用戶界面上輸出對應的內容。

清單 2. 未進行多語言處理前程序片斷

UI.print("系統檢測開始");
.......
UI.print("系統檢測圖形界面是否正常");
......
UI.print("系統檢測完畢");

提取程序內核語言元素,使程序內核直接依賴於多語言抽象層。選定提供簡體中文信息,把程序內核中語言元素提取到 message_zh-cn.properties 中。

清單 3. 保存內容到 message_zh-cn.properties 文件

System_detect_begin=系統檢測開始
System_detect_GraphUI_normal=系統檢測圖形界面是否正常
System_detect_over=系統檢測完畢

替換程序內核語言元素,使之直接依賴於多語言抽象層。

清單 4. 進行多語言處理後程序片斷

UI.print(message. getMessage(System_detect_begin));
.......
UI.print(message. getMessage(System_detect_GraphUI_normal));
......
UI.print(message. getMessage(System_detect_over));

到此,完成了從軟件系統中的語言元素的提取,程序內核即可動態靈活的實現多語言支持。

獲取正確的語言元素設計

該步驟一般為擴展步驟,根據不同的存儲方式和讀取存儲目的完成不同的多語言構建層的實現。一般情況下,是直接對 2.4 中的 message.getMessage(String message) 方法的擴展,根據系統、用戶語言習慣和鍵值獲取對應語言文件的語言內容。在考慮到系統的靈活支持的前提下,通過 message 類可以采用橋模式的動態代理不同存儲方式的讀取,從而提供靈活存儲方式讀取的支持框架。

圖 4. 基於橋模式的靈活多語言處理架構

針對系統運行狀態下,為了保證程序內核不依賴於某一種 Message 的實現手段,采用單例工廠模式來完成,從而保證系統動態的對用戶語言習慣和系統語言習慣的靈活支持。

圖 5. 基於單例和工廠模式的靈活多語言處理架構

MessageFactory 的作用為根據系統選擇創建一個 Message 對象,Message 對象負責具體的語言提取工作。

批處理支持多語言解決方案

基於第二章的通用多語言支持解決方案架構設計,本章提出了批處理多語言支持解決方案,該方案的目的是構建一個通用的輕量級多語言支持靈活解決方案。作為輕量級的應用,本文對 Batch 文件的多語言支持,采用文件存儲的方式來完成,基本的實現過程按照獲取本地語言,構建語言抽象層、提取語言因素和獲取語言信息三個步驟來完成,完全采用腳本語言來實現,不依賴於其他第三方軟件和 API 支持,以保持輕量級的易用,易移植等問題;作為通用的解決方案,本例構建的多語言支持可以快速被復用到其他批處理軟件當中,進而降低多語言支持的工作量,提高多語言支持批處理軟件的開發效率。

獲取本地語言實現

當前用戶語言習慣的讀取通過跟用戶直接交戶來完成,這裡不予贅述。對於系統語言習慣的讀取,通過讀取系統的參數來完成。

清單 5. getLocale.bat 內容

@echo off
for /f "skip=4 tokens=3" %%i in ('reg query "HKCU\Control Panel\International" /v
 "sLanguage"') do (
    set reg_localevar=%%i
)
call Keys_v2.bat %reg_localevar%,nlvmapping.txt,%~1

清單 6. nlvmapping.txt 內容

DEU= de
ENU= en-us
ESN= es
FRA= fr
ITA= it
JPN= ja
KOR= ko
PTB= pt-br
CHS= zh-cn
CHT= zh-tw

清單 7. 調用 getLocale.bat 獲取當前的語言習慣

getLocale.bat varlocale

則 %temp_type% 和 varlocale 為當前系統的語言習慣,讀取的語言習慣格式為標准的 en-us,zh-cn,zh-tw 等,並輸出當前的語言習慣。

分離出程序中語言元素實現

建立信息文件的存儲,考慮到輕量級批處理文件的多語言實現架構,采用基於文件的存儲方式,有便於移植的特點。對於同一個語言采用一個語言文件進行存儲。 message_en-us.properties,message_zh-cn.properties 等等。在程序處理過程中包括很多種類型的信息,為了減少信息的數量,提高信息的使用質量,一般根據信息的通用性和特殊性來分離。在程序處理過程中經常要使用的包括通用信息包括“是否”,“繼續”,“退出”等等,有著較為普遍的通用性。在實際的信息抽取過程中,把通用性的要求用戶行為的信息抽取出來可以有效提高信息復用性。鍵值的設定要比較具有代表性,例如“繼續”可以設定為“ continue ”,“退出”為“ quit ”等等。

message_en-us.txt 信息文件存儲的為英文信息

清單 8 message_en-us.txt 信息項內容

Success= Operation successfully!
Failed= Operation failed, for more information please contact the administrator!”
UserCheckFailed= user Check failed!

構建語言元素抽象層,用以提高多語言支持基本架構,語言元素抽象層包括兩大部分,抽象的語言元素鍵值和語言信息解析器。

創建多語言抽象層的語言信息解析器,getMessage.bat,傳遞參數直接調用即可。

清單 9. 調用 getMessage.bat 執行多語言處理

set value=""
call getMessageFactory.bat key, value

key 為指定的鍵值調用後,則 value 值為某語言習慣的 key 對應的語言信息。

完成了語言元素抽象層的構建,程序內核依賴於該抽象層,與具體的語言顯示功能徹底分離,保證了程序的穩定性同時能夠靈活支持多語言。

清單 10 直接依賴於某種語言的程序片斷

……………… ..
echo “Operation failed, for more information please contact the administrator!”
………………… .

清單 11 基於語言元素抽象層的程序片斷

……………… ..
set failedvalue=""
call getMessageFactory.bat "Failed",failedvalue
echo %failedvalue%
………………… .

獲取正確的信息實現

信息讀取器的作用是通過給定鍵值,可以把指定文件中的信息值取出來。根據第三章的靈活架構體系設計,可以實現較為靈活的多語言體系結構,批處理腳本語言屬於非面向對象語言,因此在實現上基於面向過程語言的注射方式。常用的有動態讀取和通過配置文件配置的方式,本文采用兩種方式相結合提供靈活配置。另外,考慮到適用當前用戶語言習慣的情況下,只是在與用戶第一次交互後記錄語言習慣,每次運行進行文件讀取,較為簡單,本也不予詳述,對於讀取系統語言習慣本文作詳細的研究。

系統配置文件 sysconfig.txt 配置運行過程中的系統設置,對於動態支持多語言選擇方式而言,可以動態配置 Message 的方式,動態 Message 實現的方式等。

清單 12. sysconfig.txt 內容

getMessage= usergetMessage.bat
getMessageImp= DBgetMessageImp00000.bat

其中 getMessage 指定運行的 Message 方式行為的執行文件,getMessageImp 指定讀取 Message 信息的各種存儲方式的讀取實現。

getMessageFactory.bat 獲取選定的 getMessage 方式,從系統中取,還是按照當前用戶習慣取。

清單 13 getMessageFactory.bat 內容

set varimp=""
call Keys_v2.bat getMessage,sysconfig.txt,varimp
if Not %varimp%== "" goto executeMessage
For %%1 in (*getMessage.bat) do (
 set varimp=%%1
 goto executeMessage
)
:executeMessage
echo %varimp%
call %varimp% %~1,%~2

getMessageFactory.bat 首先讀取系統配置的系統語言習慣行為,如果沒有設定,則在當前目錄下搜索相應的 Message 執行文件,如果搜索到了,則使用第一個執行文件進行執行。

獲取系統當前語言習慣

清單 14 sysgetMessage.bat 內容

set varlocale=""
set key0=%~1
set varimp=""
call getLocale.bat varlocale
call Keys_v2.bat getMessageImp,sysconfig.txt,varimp
if Not %varimp%== "" goto executeMessageImp
For %%1 in (*getMessageImp.bat) do (
 set varimp=%%1
 goto executeMessageImp
)
:executeMessageImp
echo [%varimp%]
call %varimp% %key0%,%varlocale%,%~2

sysgetMessage.bat 采取了和 getMessageFactory.bat 的實現手段,首先從配置文件中讀取多語言外殼的存儲方式的執行腳本文件,如果沒有讀到則從當前目錄中進行查找是否有可執行的文件,如果存在,則讀取第一個進行執行。

采用文件存儲多語言信息的實現:

清單 15 filegetMessageImp.bat 內容

@Rem set varlocale=""
@Rem getLocale.bat varlocale
@echo off
set key=%~1
set varlocale=%~2
set filename=message_%varlocale%.txt
IF not EXIST %filename% set filename=message_en-us.txt
call Keys_v2.bat %key%,%filename%,%~3

filegetMessageImp.bat 實現了采用文件格式按照 message_en-us.properties,message_zh-cn.properties 方式存儲的多語言解析讀取。

基於 Key 值 Value 的對應關系的通用的實現:

清單 16 Keys_v2.bat 內容

set key=%~1
set file=%~2
@Rem echo %key%
@Rem echo %file%
for /F "eol=;tokens=1,* delims= " %%1 in (%file%) do (
@Rem echo kesy.bat--%%1
if "%%1" == "%key%=" (
@Rem  echo %%2
  set "%~3=%%2"
  goto end
)
)
:end

Keys_v2.bat 是一個通用的 Key=Value 格式文件內容讀取器,有著較為通用的功能,在指定了滿足格式要求的文件和鍵值的情況下,調用 Keys_v2.bat 返回指定的值。

快速構建多語言批處理系統

基於該多語言解決方案構架支持多語言批處理系統包括以下幾個步驟:

按照 message_xx-xx.txt 格式,建立某種語言的信息文件以備進行測試和使用,比如 message_zh-cn.txt 。

在進行程序內核編寫時,直接依賴於多語言解決方案系統。首先為要表達的語言元素准備一個 Key 值,然後通過對多語言解決方案系統和 Key 值的直接依賴,最後把准備好的 Key 值和語言元素寫入對應的信息文件中。例如程序內核要使用:echo “嗨,大家好”

依賴於多語言解決方案系統後,該程序片斷如下,

set helloValue=""
call getMessageFactory.bat "hello", helloValue
echo %helloValue%

並在信息文件 message_zh-cn.txt 中,加入

Hello=嗨,大家好

配置 sysconfig.txt,准備運行調試。按照上文論述方式在系統配置文件中配置對應實現程序,如果不配置的話,則系統自動選擇當前目錄下對應的第一個執行文件。

翻譯所有的 message 文件對應的文件。

結論與展望

本文針對多語言解決方案進行了較為詳細的研究和探討,主要包括幾方面:

本文首先對於多語言支持的背景進行了一定的論述,包括對批處理文件和面向對象 Java 語言的國際化支持進行總結和分析,為通用多語言解決方案設計提供了可參考的依據。

本文給出了通用多語言系統的設計,並對設計的每一步進行了詳細地論述和推理,以期完成一個功能上能夠滿足通用的靈活多語言支持系統,在系統架構上獲得良好的可維護性和復用性,同時保持較為靈活的語言習慣和存儲方式的切換使用。

在通用多語言系統的設計架構下完成了基於批處理腳本語言的程序實現,在保證了系統架構的靈活性前提下,完成了通用的多語言系統,基於該系統可以快速構建一個支持多語言的基於批處理的軟件系統。

由於時間較為倉促,雖然實現了基於批處理腳本的多語言解決方案,但是批處理腳本並非面向對象語言,該解決方案的實現還存在不盡如人意的地方,需要進一步深化研究;另一方面,批處理腳本語言在實現手段上有其自身優勢,該解決方案的實現在這方面沒有采用批處理文件的這些特性,進一步采用這些特性可以有效的改善該解決方案執行性能等非功能屬性。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved