看板 Soft_Job 關於我們 聯絡資訊
※ 引述《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
psalter:這招真是不簡單 10/05 12:30
mike0226:web那邊還是不太懂意思@@" 10/05 16:26
TonyQ:web就是類似config , 比方說 "$1" 就自己去找出"1=開啟文件" 10/05 18:46
TonyQ:某過去知名線上遊戲(Lineage)也是這樣做 有5000多個字串:P 10/05 18:46
TonyQ:存在某個文字檔內. :P 10/05 18:47
willieliao:是的,這種做法的好處是方便客戶自己在web介面增加語系 10/05 21:26
willieliao:我們自己支援11種語言,但是有某歐洲客戶自己加了12種 10/05 21:27