在下是新人,最近在做“综合资源国际化”的工作,整个国际化分为3部分:
1.GUI国际化
2.程序中写死的部分,如:MessageBox.Show(“提示信息”)
3.数据库的国际化
其中1和2都已经搞定了,但是3数据库的国际化 对我来说有点困难。请高人不吝赐教,如果是您来做,您会怎么想 如何去做,请说出您的解决方案 ,越详细越好。
先谢谢了。
1.GUI国际化
2.程序中写死的部分,如:MessageBox.Show(“提示信息”)
3.数据库的国际化
其中1和2都已经搞定了,但是3数据库的国际化 对我来说有点困难。请高人不吝赐教,如果是您来做,您会怎么想 如何去做,请说出您的解决方案 ,越详细越好。
先谢谢了。
当在窗体上选择 英文界面时,不仅仅是GUI显示是英文的,而且从数据库中显示在界面上的数据也是英文的。
在网上有人说要用多语言对照表。
有没有人发表点意见。
1.添加一张翻译配置表(且命名为:MLANGCONF),该表中含有两个字段:(被翻译表的)表名(TABLE_NAME),字段名(COLUMN_NAME),假定table1表中的column1字段需要翻译,那就向翻译配置表MLANGCONF中添加一条记录:
字段: TABLE_NAME COLUMN_NAME
数据: table1 column1
这张表中存储的就是需要翻译的表及被翻译的字段。
2.备份翻译配置表(MLANGCONF)中存储的表,然后重命名为“表名_默认语言”作为副表
例如1.中MLANGCONF存在一条记录,table1 column1,那就把table1备份一份,命名为“table1_chinese”(假如
默认语言为中文),这样做的目的在于还原主表。
3.再把翻译配置表MLANGCONF中有的表备份一份,重命名为“表名_语言”作为副表,
例如2.中,只不过表名为:“table1_english”(这里假定只翻译为一种外语),把table1_english表中
相应的数据翻译英文 (这里相应的数据就是在翻译配置表MLANGCONF中存在的数据)
4.这样真正从数据库中读取数据时还是从原表中读,当需要切换不同的语言时(如:table1_english),用相应语言表中的数
据更新主表,注意:步骤3中,只翻译MLANGCONF表中存在的数据。如果主表中增加了一条记录,相应的副表中也应该添加。
执行效率取决于,翻译配置表中记录的数量、和update语句的效率 。希望大家提出更多建议。
————————————————————————————————
改为“这张表中存储的就是需要翻译的表名及被翻译的数据。”
sorry书写有勿。翻译的是表中的数据,不是翻译字段。
需要提供多个语言数据的,也就是那些静态的,共同的语言显示部分吧,比如界面菜单,提示,报错等等。对于
用户自己需要录入的数据,因为每个用户肯定会选择一个prefer language,所以就按照用户的喜好录入就可以了,这个地方不需要翻译。该用户后面查看自己的数据时也没什么问题(因为客户端字符集设置和界面语言应该没有变化的)。
如果是这样的话,那么在某些表的字段上,添加一个标示语言的字段,对于同一个消息,分多语言要在该表中存放多行,分别对应各国语言。
这样或许就够了吧。