在 Heroku 中运行时无法更改 Rails 应用程序的区域设置 在开发中效果良好
我正在开发一个双语应用程序。我可以通过传递 ?locale=en 将语言环境更改为开发中的英语,它在开发中有效,但在 Heroku 中无效。
通过我在下面插入的记录器,我可以告诉区域设置实际上发生了变化,但所有内容都是在默认区域设置
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :set_locale
def set_locale
if %w(en pt-BR).include? params[:locale]
I18n.locale = params[:locale].to_sym
end
logger.info I18n.locale
end
end
config/application.rb中发出的
config.i18n.default_locale = :'pt-BR'
config.i18n.locale = :'pt-BR'
I have an bilingual app in development. I can change the locale to english in development by passing ?locale=en, it works in development but not in heroku.
By the logger i inserted below I can tell the locale actually changes but all the content is emitted in the default locale
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :set_locale
def set_locale
if %w(en pt-BR).include? params[:locale]
I18n.locale = params[:locale].to_sym
end
logger.info I18n.locale
end
end
config/application.rb
config.i18n.default_locale = :'pt-BR'
config.i18n.locale = :'pt-BR'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
试试这个
,在routes.rb中
使用
domain.tld/:locale/
类型的路由感觉更干净。Try this
and in routes.rb
It feels cleaner to have
domain.tld/:locale/
type routing as well.