.net 翻译数据库字符串
我有一个为英国市场编写的应用程序,目前只支持英语(英国),客户希望将部分应用程序部署到非英国站点,并将数据同步回英国总部 我可以使用资源文件和本地区域性信息转换应用程序标签和消息,但不知道如何转换数据库绑定数据 例如。 这是总部的表格.net 翻译数据库字符串,.net,sql,vb.net,translation,globalization,.net,Sql,Vb.net,Translation,Globalization,我有一个为英国市场编写的应用程序,目前只支持英语(英国),客户希望将部分应用程序部署到非英国站点,并将数据同步回英国总部 我可以使用资源文件和本地区域性信息转换应用程序标签和消息,但不知道如何转换数据库绑定数据 例如。 这是总部的表格 tblFault ID ; Description 1 ; Not Functional 2 ; Build Fault 3 ; Leak 4 ; Aesthetics 5 ; Testing 如果我要将数据翻译成非英国语言,我可以替换描述,但如果数据不同步,这
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 ; ;
你推荐什么方法
谢谢
Phil由于故障及其描述之间存在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 ; ...
更有可能的是:
tblFault
ID ; Lang ; Description
1 ; EN ; Not Functional
...
这绝对是一种方法 我以前在这种情况下使用过的另一种方法是创建一个“LanguageId”列 通常我会有这样的东西:
StringId, LanguageId, Description
1 0 Hello
1 1 Hola
1 2 Bon Jour
这允许我编写一个查询,如果字符串35(例如)没有我要找的语言,我仍然可以提供英语。有总比没有好的想法
这种方法的缺点是复合主键和一些连接逻辑。我会将英语/中性语言版本保留在原始表中(并标记为NOTNULL)因此,如果某些东西还没有被翻译,总是会有退路。我可以看到这种方法的好处,但当数据聚合到OLAP datacube中时,您将失去总体顶层(所有语言)作为故障的聚合将具有不同的ID's@PhilMurray-我认为其意图是
tblFault\u标签中的ID
是一个FK totblFault->ID
-每个故障都有一个唯一的ID
,与选择它的语言无关。