【问题标题】:Mvc Localize Database valuesMvc 本地化数据库值
【发布时间】:2013-12-31 05:28:54
【问题描述】:

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

MVC C# .net 4,4.5

【问题讨论】:

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


    【解决方案1】:

    您需要在数据库中保存翻译后的值。

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

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

    Localize
     - Field
     - Locale
     - Translation
    

    那么对于类别名称,您将拥有三个记录,每种语言一个。您只需按字段和语言环境查询表。

    【讨论】:

    • 我认为这不是一个好方法。不过谢谢。我想从一个地方管理我的所有资源。其中一些在数据库中,其中一些在资源文件中。这很复杂。而且我认为这并不容易使用。例如,对于每个值使用资源文件你能说什么?以及如何使用基本系统以编程方式执行此操作。
    【解决方案2】:

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

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

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

    例如,如果您的表“Categories”包含 Id 和 Name 列,则相应的 Translation 表“Categories_Translation”可能包含 CategoryId、LanguageCode、Name_Tx 列,而 Name_Tx 包含语言“LanguageCode”中“Name”的翻译文本.

    【讨论】:

      猜你喜欢
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 2011-04-03
      • 2017-11-12
      • 1970-01-01
      相关资源
      最近更新 更多