如何使用i18n定义特定于业务的口头语言?

时间:2018-11-18 06:28:09

标签: internationalization ruby-on-rails-5 rails-i18n

我开发了一个Ruby on Rails 5应用程序,在其中我使用I18n gem进行视图翻译。视图中使用的术语非常通用,应该可以满足所有业务。

但是对于一个特定客户,业务需要非常特定的条款。我不能将这些术语用作一般翻译。我可以想像有两种方式支持这一点:

  • 创建特定的 客户 语言以与i18n一起使用
  • 创建一个特定的 .yml 作为 en.yml 的子部分,并通过 配置

我该怎么做?

感谢您的帮助!

1 个答案:

答案 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文件来覆盖所需的键。

您也可以做到这一点而没有后退,但是您必须复制一种完整的语言,然后应用您的更改,由于应用程序中的文本更改,这可能更难以管理,并且如果您错过了,则更容易损坏钥匙。