作者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