我开发了一个Ruby on Rails 5应用程序,在其中我使用I18n gem进行视图翻译。视图中使用的术语非常通用,应该可以满足所有业务。
但是对于一个特定客户,业务需要非常特定的条款。我不能将这些术语用作一般翻译。我可以想像有两种方式支持这一点:
我该怎么做?
感谢您的帮助!
答案 0 :(得分:1)
这对于您创建客户特定的区域设置代码的第一个示例应该是相当可行的。
如果您将I18n配置为注册此自定义语言环境,然后将该语言环境配置为基本语言的备用:
Rails.application.configure do
config.i18n.available_locales = %i[en es fr en-customer]
config.i18n.default_locale = :en
config.i18n.backend.class.send(:include, I18n::Backend::Fallbacks)
config.i18n.fallbacks.map('en-customer' => 'en')
end
这应该使您可以设置该公司的用户使用自定义区域设置的首选项,并且可以创建yaml
文件来覆盖所需的键。
您也可以做到这一点而没有后退,但是您必须复制一种完整的语言,然后应用您的更改,由于应用程序中的文本更改,这可能更难以管理,并且如果您错过了,则更容易损坏钥匙。