【发布时间】:2013-02-03 21:59:42
【问题描述】:
我在 Heroku 上部署了我的应用程序,它是用 Ruby on Rails 编写的。我在 config/application.rb 做了以下配置来读取 locales 目录:
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
config.i18n.default_locale = :pt
目录结构如下:
config
locales
defaults
en.yml
pt.yml
models
my_model
en.yml
py.yml
my_model_2
en.yml
py.yml
...
views
my_view_1
en.yml
py.yml
my_view_2
en.yml
py.yml
...
只有存储在 defaults/pt.yml 的语言环境有效。
在我的开发环境中,所有文件都在工作。
可能有什么问题?
【问题讨论】:
-
您是否将可用区域设置为仅包含
:pt?即:I18n.available_locales = [:pt]在一些初始化文件中? -
立即尝试。在本地服务器工作。在 Heroku 中引发应用程序错误。
-
Heroku 日志的输出是什么?
-
我的应用程序中的语言环境的配置方式与您类似,并且在 Heroku 上部署没有问题,因此它必须在配置中。我确实注意到您的配置的一件事:尝试将您的自定义配置更改为
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]。我注意到对to_s的调用丢失了,所以也许值得将其放入并重新部署。 -
你最后的提示奏效了。您能否发布社区利益的答案?非常感谢!
标签: ruby-on-rails ruby heroku internationalization