2

我正在尝试开发具有后端和前端双方的商业解决方案。我刚刚完成了由名称空间分隔的后端,并意识到我需要为每一侧分隔不同的区域设置。那么是否有解决方案,如何分别为前端和后端设置区域设置?感谢建议前端,后端Rails i18n不同语言环境

回答

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

因此,例如,从现实生活中的(区域的基础上,接受语言HTTP标头(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 
+0

我不知道如果u理解我的权利。我的问题是我在管理模块中设置了语言环境,然后我在前端模块中工作,并且会有无效语言环境的消息,因为我在前端和后端具有不同的语言环境。我在应用程序控制器中设置了前端的区域设置,并在admin :: application控制器中设置了后端。 – Onda 2015-04-02 21:46:35

+0

文档指出,您可以在每个请求范围('I18n.locale')或每个方法调用('I18n.t:foo,区域设置:: ')的任何位置设置区域设置。您已在不同的控制器中设置不同的区域设置。任何问题? :)我只想说,如果你设置了不正确的语言环境并且看到错误 - 那么你的问题不是你看到错误,而是你设置了不正确的语言环境。 – AlkH 2015-04-03 13:26:57