【问题标题】:I18n together with clockworkI18n 与发条一起
【发布时间】:2016-09-17 15:58:06
【问题描述】:

当从时钟系统调用模型方法“model_method”时,I18n.locale 始终等于我的默认语言环境。

如何将当前语言环境传递给模型方法?

clockwork.rb的一部分:

every(10.minutes, 'test') do
  Book.delay(:queue => 'some_queue').model_method
end

book.rb的一部分:

def self.model_method
  ...
  message = I18n.t('some_text')
  # always equals to ":en"
end

【问题讨论】:

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


    【解决方案1】:

    您可以传递语言环境选项:

      message = I18n.t('some_text', locale: 'en')
    

    Read the documentation.

    【讨论】:

    • 但我不知道用户当前的语言环境
    • 仅在浏览器中可用的用户区域设置。你不能在 Rails 之外的守护进程/脚本中得到它。将用户区域设置保存到用户模型并在脚本/守护进程中获取它。
    • 您能否在回答中更详细地描述您的最后一句话?如何在模型中保存用户区域设置?
    • 但是,这是另一个问题?是吗? Check this answer 这正是你所需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    相关资源
    最近更新 更多