我們使用delphi開發的程式,會用到一些delphi內部的資源,例如對話方塊、控制項等,這些控制項上的文字一般都是英文的。另外一些執行時錯誤也是以英文的方式報告出來的。
這些字串能否翻譯成中文顯示呢?
當然是可以的,方法也很簡單。
首先找到包含這些字串的單元,例如consts, rtlconsts等。
sdlgwarning: string = 『警告『;
sdlgerror: string = 『錯誤『;
sdlginformation: string = 『資訊『;
sdlgconfirm: string = 『確認『;
sdlgyes: string = 『是(&y)』;
sdlgno: string = 『否(&n)』;
sdlgok: string = 『確定(&o)』;
sdlgcancel: string = 『取消(&c)』;
sdlgabort: string = 『放棄(&a)』;
sdlgretry: string = 『重試(&r)』;
sdlgignore: string = 『忽略(&i)』;
sdlgall: string = 『全部(&a)』;
sdlgnotoall: string = 『全否(&o)』;
sdlgyestoall: string = 『全是(&a)』;
sdlgclose: string = 『關閉(&c)』;
分別對應了consts中smsgdlgwarning等。然後在loadlocaleresource中和其它字串一樣載入他們的本地化翻譯。
然後通過fslib.changeresstring()就可以改變delphi內部的字串成翻譯後的樣子,例如:
changeresstring(@consts.smsgdlgwarning, pchar(sdlgwarning));
前面乙個引數是delphi原來的字串名字前面加乙個@,後面乙個就是翻譯後的字串。
無論本地化翻譯是否載入都可以呼叫changeresstring來改變delphi內部的字串。
*請注意*這個方法只對宣告為resourcestring的字串才有用,如果是宣告為var或者const都不起作用。
看一下效果:
changeresstring(@rtlconsts.slistindexerror, 『下標%d越界啦』);
資料本地化儲存 如何選擇
巨集定義,直接根據檔名稱,拼接檔案的絕對路徑,pragma mark 寫入檔案 ibaction writtofile id sender pragma mark 讀取內容,讀取字串的內容 ibaction readfromfile id sender pragma mark 寫入檔案 ibacti...
如何做本地化測試
一 什麼是本地化測試 當今的軟體發布到世界不同的國家和地區,使軟體適應該國家或地區特定的語言 地區習俗和文化的過程成為本地化,這類的測試就稱為本地化測試 二 本地化測試包括哪些內容 1 翻譯 這是最基本的內容,首先檢查軟體中顯示的文字 幫助文件的內容等等是否翻譯成當地的語言,並且能夠被讀懂。這並不是...
原創 如何資源本地化DevExpress
使應用程式支援各種語言本地化,可以使你的應用程式支援面對各個國家使用者的版本的語言。下面以xtraeditors 為例子進行資源本地化。你需要哪種語言版本的應用程式,你就需要建立哪種語言的assembly,其中包含該語言的本地資源。sdk提供了本地化工具winres.exe。工具的具體使用,參見sd...