2013-03-06 66 views

回答

2

您将需要在数据库中的翻译值。

如果语言较少且不会更改,则可以为每种语言(NameEn,NameEs,NameFr等)添加一列。有点违反正常化规则,但使生活更容易。

的其他数据库的做法是有保留的所有翻译的表:

Localize 
- Field 
- Locale 
- Translation 

那么对于类别名称你将有三个记录,一个为每种语言。您只需按字段和区域设置查询表。

+0

我认为这不是一个好方法。但是,谢谢。我想从一个地方管理我的所有资源。其中一些在数据库中,其中一些在资源文件中。这很复杂。我认为这并不容易使用。例如,你可以说为每个值使用Resource文件?我该如何用基础系统以编程方式进行此操作。 – 2013-03-06 07:45:17

1

一个比较常见的方法是通过为每个表创建一个单独的转换表,并通过至少一个需要本地化的列来为其本地化。这是我们通常在我们的项目中做的。数据库数据 - >在数据库中进行本地化。查看/ UI字符串 - >在resx文件中进行本地化。

看看这个答案在这里:Good database table design for storing localized versions of data

编辑:相反,我们通常存储在原始表中的“默认”的语言,所以没有必要实际上有一个转换条目的链接。例如,如果您的表“Categories”包含列Id和Name,则相应的翻译表“Categories_Translation”可以包含CategoryId,LanguageCode,Name_Tx列,而Name_Tx包含语言为“LanguageCode”的翻译文本“Name” ”。