注册 登录
编程论坛 VB6论坛

多语系的实现方式

yz1025 发布于 2012-12-23 03:01, 354 次点击
老在回答问题依照板规一个月后又会进入版主候选名单〜
所以绞尽脑汁也要来问问题〜最近接了个案子〜案子虽然已经完成〜
但是案子通常接了之后要完成并不是什么难事〜
重点在于后续的维护和修改及新增功能和向下相容的特性〜
我就一步一步来问个介面多语系的功能实现〜
当然我也不是没做过功课就上来随便问讨代码〜
一般在网上查到多语系的实现方式是透过RES挡去实现〜
但是我需要给使用者更多的弹性和空间〜
故此设计了一个文挡格式类似INI的写法但也不完全是〜
想问问板上的人是否有相关经验能更完美的实现方式〜

格式为:英文=中文=日文= ....
开始=开始=スタート= ....
结束=结束=終わり
......

一开始我会读取档案放入阵列结构中~然后依照使用者选取的语系对应索引号〜
将读取进来的字串分别秀到使用者介面中〜然后建立一个专用结构〜
在Form_Load中()前初始化时载入资料〜让介面建立后使用者能依据选项切换〜
但是我想参考板上高手的建议是否有更好的方式来实现〜但这方法有点麻烦〜
请有经验的人能提供思路以供参考〜

4 回复
#2
Artless2012-12-23 23:37
一种自然语言一个文件可能较好
没弄过瞎说
#3
邵帅2012-12-24 11:08
期待好的想法。
#4
风吹过b2012-12-24 12:34
没弄过。

但认为还是按2楼的要求弄的好,一个语言一个文件。
文件结构我觉得用 INI 文件也好,可以这样弄。

1、文件名。建议按 语言缩写来。
  文件内要有语言的标记。

CN.ini
---------
[main]
Languages=中文简体
[seting]
101=开始
102=结束
---------
EN.ini
---------
[main]
Languages=English
[seting]
101=start
102=end
-----------

语言文件放到一个目录里。
初始化时,遍类 所有的 INI 文件,读取 Languages 这节,形成一个 文件名-语言 的 二维数组。
然后再根据选择的 语言,然后决定使用 哪个 语言 文件。

程序里的调用,都是一样的 ,如
 readini(文件名,"seting",101)

=======================
看过很多软件,语言文件多数是按单独的语种来设置一个文件。
如果需要修改语言时,只需要 新建这个文件,修改语言,修改字符串内容,前面的编号不用动。
#5
wube2012-12-26 01:37
回复 4楼 风吹过b
其實這用法幾乎類似網上RES教程的寫法~RES可以定編號又有專屬函式可以讀出來~加上RES編在EXE內~再額外做到INI就有點多此一舉了~
我的本意之一是想也許有特定函式庫或是語系轉換的功能函式可以直接用~如果沒有~
第二個考慮點是~當我一個表單內~舉例說有Command1.Caption ...Command10.Caption~再加上其他控件~
那假設我要做3種語言~分成3個語系檔時~我等於要對校3次~縱使101代表Command1.Caption~也是有3個101要人工對照製作~
而集中在一起的好處是~我不需要同時開3個檔案寫3個101~我只需要
英文=中文=日文= ....

Start=开始=スタート= ....
End=结束=終わり=.........
...=....=......=.........

然後Line Input後使用Temp()=Split(,"=")~若選擇英文則為每個Temp(0)~中文則為每個Temp(1)~日文就是Temp(2)~依此類推~
開一個INI檔就可以同時編輯各種語系內容~VB6單純就字符串處理~不會遇到單字元和雙字元的問題~也是好處之一吧~
缺點是在Assign自符串時要很仔細對照~所以才會想搞個結構來方便存取~其實我也沒做過~只是推測而已~

順道問一個目前的問題~若遇到VB6+VC6連通時的互相關聯性的問題~是要在VB6版問還是要到C版或VC6版去問?
1