Uch*_*nna 2 ruby-on-rails internationalization ruby-on-rails-3 ruby-on-rails-3.1
我正在使用rails 3应用程序,它在我的locales文件夹中有不同的语言.这些文件是en.yml,pu.yml,sp.yml.所有语言都必须转换为各种格式,我需要帮助,让用户选择任何语言,如链接
<%= link_to "English language", ...%> <%= link_to "spanish", ...%>
Run Code Online (Sandbox Code Playgroud)
当用户选择语言时,该语言被设置为用户的首选语言,以便用户在每次登录后不必继续选择语言.
Mar*_*her 17
只需locale
在User
模型中添加一个字符串属性,然后before_filter
按照您的application_controller.rb
喜好添加:
before_filter :set_locale
...
def set_locale
I18n.locale = current_user.locale if current_user
end
Run Code Online (Sandbox Code Playgroud)
Rails Internationalization(I18n)API提供更多信息!
添加到ream88的答案:
<%= link_to "spanish", :controller => 'locale', :action => 'set', :id => 'es' %>
Run Code Online (Sandbox Code Playgroud)
在LocaleController(或任何其他控制器)中
def set
locale = params[:id]
raise 'unsupported locale' unless ['es', 'en', ... ].include?(locale)
current_user.locale = locale
current_user.save
redirect_to :back
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6906 次 |
最近记录: |