【问题标题】:How to translate the fields of a database model?如何翻译数据库模型的字段?
【发布时间】:2011-02-14 18:44:49
【问题描述】:

我在一个包含多语言内容的网络应用程序中有一些表格/模型。 例如一所大学,它的描述是默认语言(英语),用户希望他可以用另一种语言看到相同的信息(如果对象的字段已翻译)。 如果只有几种语言,那么我只会添加诸如 name_en 和 name_de 之类的字段,但是语言的数量不固定,所以会造成混乱。 我也可以用翻译后的数据创建一个新对象,但外键不起作用,只能翻译一些字段,这样会创建重复数据。 将翻译存储在文件中并使用 gettext 或类似的东西也不是一种选择,因为对象字段可以由网站用户翻译,而不仅仅是开发人员/管理员。

设计/构建这样一个数据库的最佳方法是什么?从翻译后的数据中搜索也不应该太复杂 - 因为它不应该需要创建复杂的连接,这会使查询变慢

我正在使用 PostgreSQL 和 Rails 的 Ruby,但我不是在寻找技术解决方案,而是想大致了解如何设计它。

【问题讨论】:

    标签: database-design


    【解决方案1】:

    不要重新发明轮子。安装globalize2 插件就可以了。当然,如果您愿意,您还可以研究它是如何工作的(使用转换表,是的,使用连接)。不过,有一个 fork 使用主表作为默认语言。

    【讨论】:

    • 好吧,看起来还不错,虽然我问了如何为它设计数据库。将使用 model_translations 插件,并对其进行更改,以便我可以为整个应用程序和模型设置单独的语言环境(如果有人想编辑模型数据,那么如果整个站点和编辑表单语言会改变,那就不好了如果用另一种语言编辑对象)
    猜你喜欢
    • 2018-01-30
    • 1970-01-01
    • 2015-06-03
    • 2014-07-19
    • 2018-08-28
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多