作者willieliao (Willie Liao)
看板Soft_Job
標題Re: [請益] 開發多國語系的系統
時間Fri Oct 5 12:01:01 2007
※ 引述《RoxetteI (累積資產,降低負債)》之銘言:
: 最近部門開始討論以後可能要開發多國語系的系統,
: 方式好像有多種,有的是讀自己先定好的多國語系的文字檔,
: 有的是利用資料庫的方式,
: 不曉得各位目前都是用什麼方式以方便將來的維護與擴充....tks...
這個要看您程式用的是啥系統,像敝公司的gui從vb,asp,c#,jsp到java一應俱全
backend的c++也要輸出localized的error message,因此沒辦法用單一的解決方案
目前的做法是把strings 放到database(目前用的是sql server)裡面,欄位像這樣:
ID Component Symbolic Name String_EN String_ZH_TW String_JP ...
1 3 IDS_DSK_OPEN &Open 開啟文件(&O) ....
之後寫一個perl的程式,build的時候component是3(vb desktop)的就編譯成dll,
web的編成resource bundle,java gui的編成property file或是.java等等。
實際上使用的話以JAVA為例,編成.java的話像這樣
Res_ZH_TW.java
..
static String IDS_DSK_OPEN="開啟文件(&O)"
GUIStrings.java
static init (Locale locale) {...}
static getString (String symbolicName) {..看哪個locale去哪個class
用reflection找string...}
web就沒這麼麻煩,弄個文字檔
1=開啟文件(&O)
就好了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 76.111.69.123
1F:推 psalter:這招真是不簡單 10/05 12:30
2F:推 mike0226:web那邊還是不太懂意思@@" 10/05 16:26
3F:推 TonyQ:web就是類似config , 比方說 "$1" 就自己去找出"1=開啟文件" 10/05 18:46
4F:→ TonyQ:某過去知名線上遊戲(Lineage)也是這樣做 有5000多個字串:P 10/05 18:46
5F:→ TonyQ:存在某個文字檔內. :P 10/05 18:47
6F:推 willieliao:是的,這種做法的好處是方便客戶自己在web介面增加語系 10/05 21:26
7F:→ willieliao:我們自己支援11種語言,但是有某歐洲客戶自己加了12種 10/05 21:27