MVC本地化数据库值

3

如何最好地本地化来自数据库的数据,比如类别名称?

MVC C# .net 4、4.5

2个回答

3

你需要在数据库中存储翻译后的值。

如果只有几种语言且不会改变,可以为每种语言添加一列(NameEn、NameEs、NameFr等)。这有点违反规范化原则,但可以使生活更轻松。

另一种数据库方法是创建一个包含所有翻译的表:

Localize
 - Field
 - Locale
 - Translation

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


1
我认为那不是一个好的方式。但还是谢谢你。我想要从一个地方管理所有的资源,有些在数据库中,有些在资源文件中。这很复杂,而且我认为使用起来并不容易。例如,你能说一下每个值都使用资源文件的方法吗?以及如何在基础系统中以编程方式实现这一点。 - ersin ceylan

1
一种常见的方法是通过创建单独的翻译表来本地化数据库中至少需要本地化一个列的每个表。这通常是我们在项目中所做的。数据库数据-> 本地化到数据库中。视图/UI字符串-> 本地化到resx文件中。
请看这里的答案:存储数据本地化版本的良好数据库表设计 编辑:与链接相反,我们通常将“默认”语言存储在原始表中,因此实际上不需要有翻译条目。
例如,如果您的表“类别”包含列Id和Name,则对应的翻译表“Categories_Translation”可以包含列CategoryId,LanguageCode,Name_Tx,其中Name_Tx包含“Name”的语言代码“LanguageCode”中的翻译文本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接