Rails 4 多域应用程序,为每个域 i18n 语言环境设置了语言环境

mah*_*ich 5 ruby-on-rails rails-i18n ruby-on-rails-4

在 Rails 4 多域应用程序中,我需要为每个域(总共 3 个域)的 4 种语言设置一组区域设置文件。

一些翻译在域之间重叠,但其中一些非常具体,所以我正在考虑一个有点像这样的结构:

config/locales/en.yml ..fr.yml ..de.yml ..it.yml  #is picked up by all domains
config/locales/domain1/en.yml ..fr.yml ..de.yml ..it.yml  #is picked up by domain 1
config/locales/domain2/en.yml ..fr.yml ..de.yml ..it.yml  #is picked up by domain 2
config/locales/domain3/en.yml ..fr.yml ..de.yml ..it.yml  #is picked up by domain 3
Run Code Online (Sandbox Code Playgroud)

这在 Rails 4 中可能吗?如果是这样,进行此设置的最佳方法是什么?

Tom*_*ing 1

config/application会:

some_domain = Rails.root.basename.to_s # this will give us "myapp.com" if the app is in "/var/www/myapp.com"
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', some_domain, '*.{rb,yml}').to_s]
Run Code Online (Sandbox Code Playgroud)

这将只加载所需的文件,并且应该用后面的数据覆盖任何重复的键,但我还没有测试过这一点。