翻译数据库字符串

Phi*_*ray 5 .net sql vb.net globalization translation

我有一个为英国市场编写的应用程序,目前只支持英语(英国),客户希望将部分应用程序部署到非英国站点,并将数据同步到英国总部.

我可以使用资源文件和本地文化信息转换应用程序标签和消息,但是想知道如何转换数据库绑定数据.

EG这是基于HQ的表

tblFault
ID ; Description
1 ; Not Functional
2 ; Build Fault
3 ; Leak
4 ; Aesthetics
5 ; Testing
Run Code Online (Sandbox Code Playgroud)

如果我要将数据转换为非英语语言,我可以直接替换描述,但如果数据未经同步,这会导致一些问题?

我是否应该使用另一列扩展该表以获取其他语言,然后使用本地文化更改选择?

tblFault
ID ; Description-EN ; Descrption-US ; Description-DE etc
1  ; Not Functional ;               ;
2  ; Build Fault    ;               ;
3  ; Leak           ;               ;
4  ; Aesthetics     ;               ;
5  ; Testing        ;               ;
Run Code Online (Sandbox Code Playgroud)

你会推荐什么方法?

谢谢

菲尔

Hei*_*nzi 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   ; ...
Run Code Online (Sandbox Code Playgroud)

  • 我会在原始表格中保留英文/中性语言版本(并标记为非空),因此如果尚未翻译某些内容,则总会出现回退. (2认同)
  • @Phil Murray - 我认为目的是`tblFault_Labels`中的`ID`是一个FK到`tblFault-> ID` - 每个故障都有一个唯一的`ID`,与用于选择它的语言无关. (2认同)