Mvc本地化数据库值

时间:2013-03-06 00:18:45

标签: c# asp.net-mvc asp.net-mvc-3

本地化来自db的数据的最佳方法是什么?如类别名称?

MVC C# .net 4,4.5

2 个答案:

答案 0 :(得分:2)

您需要在数据库中包含已翻译的值。

如果语言很少,并且不会更改,则可以为每种语言添加一列(NameEn,NameEs,NameFr等)。有点违反规范化规则,但让生活更轻松。

另一种数据库方法是建立一个保存所有翻译的表:

Localize
 - Field
 - Locale
 - Translation

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

答案 1 :(得分:1)

一种非常常见的方法是通过数据库对其进行本地化,方法是为每个表创建一个单独的转换表,其中至少有一列需要本地化。这是我们通常在项目中所做的事情。数据库数据 - >在DB中本地化。视图/ UI字符串 - >在resx文件中本地化。

请在此处查看此答案:Good database table design for storing localized versions of data

编辑:与链接相反,我们通常在原始表中存储“默认”语言,因此无需实际拥有翻译条目。

例如,如果您的表“类别”包含列ID和名称,则对应的翻译表“Categories_Translation”可以包含CategoryId,LanguageCode,Name_Tx列,而Name_Tx包含“LanguageCode”语言中“Name”的翻译文本