3

我正在尝试使用 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. 保存具有这些继承值的表单实际上会将翻译保存为当前语言环境的值 - 所以突然之间你就获得了两个语言环境的数据,但用户可能不知道这一点(或知道为什么)。

我想在编辑页面/显示具有已翻译属性的对象的表单中禁用回退。有没有办法做到这一点?

我正在使用来自 svenfuchs https://github.com/svenfuchs/globalize3的 Globalize3 和 I18n 版本

4

0 回答 0