【问题标题】:Are duplicate translations necessary for same strings in Globalize3?Globalize3 中的相同字符串是否需要重复翻译?
【发布时间】:2012-01-18 09:07:14
【问题描述】:

我希望利用 Globalize3 来翻译我正在构建的项目中的模型。但是,尝试一下它看起来像每个模型,比如Post,比如:

class Post < ActiveRecord::Base
    translates :title, :body
end

将完全独立于其他帖子,即一个标题必须被翻译多次,即使该标题与已翻译的标题相同。 IE。系统已经知道它应该是。

我知道在许多情况下字符串是唯一的,所以这不是问题,但是,想象一下具有颜色属性的汽车模型。如果系统有数百辆相同颜色的汽车,我应该多次翻译颜色吗?我只想翻译一次,如果字符串相同,所有人都可以使用相同的翻译。

我是否误解了什么,或者这真的是 Globalize3 的工作原理?如果是这样,听起来它真的很适合字符串是唯一的,比如在博客中。

是否有其他可用的 gem 可以满足我的需要?

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails globalization globalize3


    【解决方案1】:

    基本上这就是 Globalize 的工作方式,每个模型记录的属性都被翻译并保存在翻译记录中。

    你的问题可以通过规范化表格来解决,所以颜色本身就是一个模型,你可以翻译它。

    不过,我不会那样做,而且我不知道任何适合您的场景的宝石。我会改为执行以下操作:

    改为存储 RGB 值,并在控制器中将其转换为颜色名称。然后你可以使用 Rails i18n 模块翻译它。

    或者上述的变体,你使用颜色名称作为 i18n 键,比如t("color.#{car.color.parameterize}"),并且在 en.yml 中有

    en:
      color:
        dark-blue: 'Dark Blue'
    

    【讨论】:

      【解决方案2】:

      这是一个您无法轻易避免的问题,如果要翻译的字符串是“标准的”,您可以使用 lulalala 提出的解决方案(对该信息进行建模)。

      我有一个类似的问题(不是在 Rails 中,但它是相同的),我们通过定期自动复制重复内容的翻译的任务“修复”了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-01
        • 1970-01-01
        • 2012-12-29
        • 1970-01-01
        • 1970-01-01
        • 2017-01-26
        • 1970-01-01
        • 2013-07-07
        相关资源
        最近更新 更多