我有一个为英国市场编写的应用程序,目前只支持英语(英国),客户希望将部分应用程序部署到非英国站点,并将数据同步到英国总部。
我可以使用资源文件和本地文化信息转换应用程序标签和消息,但是想知道如何转换数据库绑定数据。
E.G。 这是基于总部的表
tblFault
ID ; Description
1 ; Not Functional
2 ; Build Fault
3 ; Leak
4 ; Aesthetics
5 ; Testing
如果我要将数据翻译成非英国语言,我可以直接替换描述但如果数据未经同步则会导致一些问题?
我是否应该使用其他列扩展表以获取其他语言,然后使用本地文化更改选择?
tblFault
ID ; Description-EN ; Descrption-US ; Description-DE etc
1 ; Not Functional ; ;
2 ; Build Fault ; ;
3 ; Leak ; ;
4 ; Aesthetics ; ;
5 ; Testing ; ;
你会推荐什么方法?
由于
菲尔
答案 0 :(得分:5)
由于故障与其描述之间存在1:n关系,因此最干净的解决方案是创建子表:
tblFault
--------
FaultID ; some other fields
1 ; ...
2 ; ...
3 ; ...
4 ; ...
5 ; ...
tblFault_Description
--------------------
FaultID ; lang ; Description
1 ; en ; Not Functional
1 ; de ; Funktioniert nicht
2 ; en ; ...
答案 1 :(得分:1)
这绝对是一种方法。
我之前在这种情况下使用的另一种方法是创建“LanguageId”列。
通常我会有这样的事情:
StringId, LanguageId, Description
1 0 Hello
1 1 Hola
1 2 Bon Jour
这允许我写一个查询,如果字符串35(例如)没有我正在寻找的语言,我仍然可以提供英语。认为事情总比没有好。
这种方法的缺点是复合主键和一些连接逻辑。
答案 2 :(得分:0)
更像是这样的东西,很有可能:
tblFault
ID ; Lang ; Description
1 ; EN ; Not Functional
...