如何在“生产”中重新加载语言文件

时间:2013-05-17 16:23:02

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

如何在Production中重新加载语言文件?

I18n.backend.reload!

此方法不起作用。

(尝试通过网址重新加载,附加到此操作)

2 个答案:

答案 0 :(得分:3)

您可以使用以下方式重新加载语言文件而无需重新加载应用程序服务器:

I18n.backend.load_translations

答案 1 :(得分:0)

Engine Yard api的简单示例。 (gem“engineyard”,gem“engineyard-metadata”) 请求进入延迟作业队列。

  def reload_on_all_instances!
    @ey_instances = EY.metadata.app_servers || raise(InvalidServerList)
    if @ey_instances
      @ey_instances.each_with_index do |instance_url, index|
        request_url = "http://#{instance_url}/reload_translations/reload"
        Delayed::Job.enqueue(RequestReloadLocale.new(request_url), :run_at => 1.minutes.from_now )
        Delayed::Job.enqueue(ClearCache.new, :run_at => 2.minutes.from_now )
      end
      true
    else
      false
    end
  end