Rails i18n用于前端,后端的不同语言环境

时间:2015-03-31 23:57:09

标签: ruby-on-rails localization namespaces internationalization e-commerce

我正在尝试使用后端和前端开发商务解决方案。我刚刚完成后端,它被名称空间分隔,并意识到我需要为每一方分隔不同的语言环境。那么有没有一个解决方案如何分别为前端和后端设置区域设置?感谢您的建议

1 个答案:

答案 0 :(得分:1)

http://guides.rubyonrails.org/i18n.html#setting-and-passing-a-locale

  

语言环境可以伪全局设置为I18n.locale(使用Thread.current,例如Time.zone),也可以作为选项传递给#translate#localize

     

如果没有传递语言环境,则使用I18n.locale

I18n.locale = :de
I18n.t :foo
I18n.l Time.now
  

明确传递语言环境:

I18n.t :foo, locale: :de
I18n.l Time.now, locale: :de
  

I18n.locale默认为I18n.default_locale,默认为:en。默认语言环境可以设置如下:I18n.default_locale = :de

所以,来自现实生活的例子(语言环境,基于Accept-Language HTTP-header(https://github.com/iain/http_accept_language)):

class ApplicationController < ActionController::Base
  #...
  before_filter :set_locale

  def set_locale
    I18n.locale =     http_accept_language.compatible_language_from(I18n.available_locales)
  end

end