在Rails 3中更改运行时的语言环境

我正在使用rails 3应用程序,它在我的locales文件夹中有不同的语言。 这些文件是en.yml,pu.yml,sp.yml。 所有语言都必须转换为各种格式,我需要帮助,让用户选择任何语言,如链接

  

当用户选择语言时,语言被设置为用户的首选语言,以便用户在每次登录后不必继续选择语言。

添加到ream88的答案:

 <%= link_to "spanish", :controller => 'locale', :action => 'set', :id => 'es' %> 

在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 

只需在您的User模型中添加一个locale字符串属性,然后在application_controller.rb创建一个before_filter ,如下所示:

 before_filter :set_locale ... def set_locale I18n.locale = current_user.locale if current_user end 

Rails Internationalization(I18n)API提供更多信息!