ruby-on-rails - 仅在 Rails 中禁用英语的translation_missing

标签 ruby-on-rails localization internationalization translation

有没有办法防止.translation_missing如果语言是英语,类(class)会出现在 View 中吗?由于英文文本是正确的,我不需要翻译它。

现在我向蒙版添加了样式 span.translation_missing如果区域设置是默认跨度,但如果区域设置是:en,我宁愿希望它根本不出现

更新:为了清楚起见,我在 .erb 中进行翻译文件,可以这么说<%= t "Menu item" %>变成<span class="translation_missing">Menu item<span>这太过分了。我只需要它保留原始字符串 :en语言环境

最佳答案

我认为没有办法通过标准方法来做到这一点,但您可以添加如下补丁:

module I18n::MissingTranslation::Base

  def html_message_with_en_fix
    (locale == :en) ? key : html_message_without_en_fix
  end
  alias_method_chain :html_message, :en_fix

  def message_with_en_fix
    (locale == :en) ? key : message_without_en_fix
  end
  alias_method_chain :message, :en_fix

end

或者,如果您不想使用补丁,您也可以定义自己的方法并自己捕获异常:

def my_translate(key)
  begin
    I18n.t(key, :raise => I18n::MissingTranslationData)
  rescue I18n::MissingTranslationData
    (I18n.locale == :en) ? key.to_s : I18n.t(key)
  end
end

另请参阅this answer .

(我已经更新了两个答案以返回翻译字符串,而不是感谢空白/nil。)

关于ruby-on-rails - 仅在 Rails 中禁用英语的translation_missing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12558716/

相关文章:

ios - iOS:应用程序语言独立于设备,无需更改NSUserDefaults

javascript - 区域设置 : Browser or OS Setting?

Angular 4 i18n 也得到 TS/JS 代码的翻译

java jlabel setText(str) 当str有韩文字符时错误

ruby-on-rails - 模块构建失败 : Error: spawn bin/rails ENOENT

ruby-on-rails - 如何将 Rails 项目从 Rail 3.0.5 升级到 3.0.6?

c# - 使用本地化的 Razor 页面作为电子邮件模板

ruby-on-rails - 提供静态资源(如 .jpgs 等?)

mysql - 在 RoR 中以惯用的方式连接到外部数据库?

xaml - WinRT & XAML - 资源文件但不是本地化的语言?