天天看點

一種特殊的多語言解決方案

一直以來多語言問題都是個讓人頭疼的問題,不是這個問題有多難,而是很繁瑣,而我們目前的這個項目有點特殊,我希望最大限度的化繁為簡,以下是我解決這個問題的方案。

我們的項目有這樣兩個前提:

1、要支援多語言但最多三種語言,一般情況下就兩種語言,是以并沒有随時切換語言的要求。

2、我們希望有一種可以初期不用管語言問題,之後統一翻譯的方案

基于這麼兩點,我們提出了這樣的方案:

1、初期寫程式時不用關心多語言的翻譯工作,隻要将所有使用到中文的地方都用{}擴上

2、在資料庫中Chinese會設定為唯一限制

3、所有的翻譯工作會在BasePage中的Render方法中作

4、所有的頁面會繼承BasePage

5、翻譯時會根據目前的語言設定建構以language表中Chinese做key,相應的語言為value的字典,然後查找需要翻譯的字元串是不是在字典中,如果不在就生成這一行。

資料庫設計四個字段

ID,Chinese,English,Other

BasePage源碼

一種特殊的多語言解決方案

BasePage

這樣設計的

優點

2、省去了大量命名相應文字的工作

3、直接用中文标示要顯示到頁面的文字,容易了解

缺點

1、如果中文是一樣的翻譯,而其他語言翻譯卻不一樣時不好解決,但這種情況似乎不常見

<a href="http://files.cnblogs.com/nuaalfm/Language.rar">源碼下載下傳</a>

本文轉自 你聽海是不是在笑 部落格園部落格,原文連結:http://www.cnblogs.com/nuaalfm/archive/2009/01/19/1378599.html  ,如需轉載請自行聯系原作者