作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Multi-Tenancy 应用程序,我正在尝试使用 i18n gem 来允许我们的每个客户根据自己的喜好自定义系统、更改各个页面上的文本、自定义电子邮件等。诚然,我没有使用 i18n,因为我实际上并没有翻译不同的“语言”,所有内容都是英文的,但如果有道理的话,每个客户都有不同的英文。
尽管如此,我还是在 i18n gem 中遇到了我认为非常糟糕的设计决策:如果翻译不存在,而不是简单地不进行翻译并打印出正常情况下的任何内容,它会引发错误。例如,
<%= distance_of_time_in_words_to_now @press_release.submitted_at %>
translation missing: en, datetime, distance_in_words, x_days
最佳答案
这似乎可以解决问题。
require 'i18n' # without this, the gem will be loaded in the server but not in the console, for whatever reason
# store translations in the database's translations table
I18n.backend = I18n::Backend::ActiveRecord.new
# for translations that don't exist in the database, fallback to the Simple Backend which loads the default English Rails YAML files
I18nSimpleBackend = I18n::Backend::Simple.new
I18n.exception_handler = lambda do |exception, locale, key, options|
case exception
when I18n::MissingTranslationData
I18nSimpleBackend.translate(:en, key, options || {})
else
raise exception
end
end
关于ruby-on-rails - Rails i18n : Can I turn off "translation missing" errors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3061504/
我是一名优秀的程序员,十分优秀!