有什么方法可以暂时禁用I18n后备/ Globalize3翻译?

时间:2012-12-18 10:21:51

标签: ruby-on-rails ruby-on-rails-3 internationalization globalize3

我正在尝试使用Globalize3和I18n后备来实现已翻译属性的后备。为了获得后备和运行,我添加到我的environment.rb文件:

 #support for locale fallbacks
 require "i18n/backend/fallbacks"
 I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)

然后在我的配置文件中:

   config.i18n.fallbacks = {'en-US' => 'zh-CN', 'zh-CN' => 'en-US'}

现在我运行了一个应用程序,如果某个字段未在“en-US”语言环境中翻译,它将回退到“zh-CN”语言环境,反之亦然。

但是,这意味着回退也会发生在网站上的表单上。这是不受欢迎的行为,原因有两个:

  1. 用户可能会认为这意味着此区域设置具有此值的输入(而它是从后备区域设置继承而来)。
  2. 使用这些继承值保存表单实际上会将翻译保存为当前语言环境的值 - 因此突然间您在两个语言环境中都获得了数据,但用户可能不知道这一点(或知道原因)。
  3. 我想在编辑页面/显示具有已翻译属性的对象的表单中禁用回退。有没有办法做到这一点?

    我正在使用来自svenfuchs https://github.com/svenfuchs/globalize3

    的Globalize3和I18n版本

0 个答案:

没有答案