【问题标题】:Locales working partially on Heroku部分在 Heroku 上工作的语言环境
【发布时间】: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


【解决方案1】:

所有缺少的只是在配置中调用to_s

config.i18n.load_path += 
  Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]

应该是:

config.i18n.load_path += 
  Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-07
    • 2014-01-23
    • 2018-06-02
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多