我有一个应用程序,它是Ruby on Rails / Devise前端,然后是Backbone.js。在app / views / layouts / application.html.erb中我有这个:
<head>
...
<script type="text/javascript">
I18n.locale = "<%= I18n.locale %>"
I18n.defaultLocale = "<%= I18n.default_locale %>"
</script>
然后用户可以选择自己的语言环境。现在,在Ruby on Rails部分,我在应用程序控制器中有这个:
class ApplicationController
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options={})
{ :locale => I18n.locale }
end
我遇到的问题是Backbone.js片段没有从Ruby on Rails片段“获取”语言环境,用户必须再次选择语言环境。如何将语言环境“注入”Backbone.js片段,以便用户不必再选择它?
更多信息:其中一条评论是完全正确的。 Javascript控制台显示Backbone.js部分没有从Ruby on Rails / Devise获取语言环境 - Javascript控制台首先显示默认设置。不知怎的,我没有将语言环境传递给Backbone.js。