如何在活动管理员中编辑菜单栏? - 改变语言。 Rails
how to edit menu bar in active admin? - change the language. Rails
我正在使用带有 i18n 的 Active Admin。一切正常,但如果我想更改语言,我需要手动更改 - 更改站点地址:-(...如何在带有模型名称的导航栏中添加按钮?它可能是另一个地方,但对它有好处 - 可访问。
您可以通过将以下行添加到 application_controller.rb 来在前置过滤器中设置默认语言环境:
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options={})
{ :locale => I18n.locale }
end
在active_admin.rb中添加用于选择语言的菜单:
config.namespace :admin do |admin|
admin.build_menu :utility_navigation do |menu|
menu.add :label => "Languages" do |lang|
lang.add :label => "English",:url => proc { url_for(:locale => 'en') }, id: 'i18n-en', :priority => 1
lang.add :label => "Mexican",:url => proc { url_for(:locale => 'es') }, id: 'i18n-es', :priority => 2
end
menu.add :label => proc { display_name current_active_admin_user },
:url => '#',
:id => 'current_user',
:if => proc { current_active_admin_user? }
admin.add_logout_button_to_menu menu
end
end
您可以在 application.rb 中设置默认语言环境:
config.before_configuration do
I18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
I18n.default_locale = :en
I18n.reload!
end
我正在使用带有 i18n 的 Active Admin。一切正常,但如果我想更改语言,我需要手动更改 - 更改站点地址:-(...如何在带有模型名称的导航栏中添加按钮?它可能是另一个地方,但对它有好处 - 可访问。
您可以通过将以下行添加到 application_controller.rb 来在前置过滤器中设置默认语言环境:
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options={})
{ :locale => I18n.locale }
end
在active_admin.rb中添加用于选择语言的菜单:
config.namespace :admin do |admin|
admin.build_menu :utility_navigation do |menu|
menu.add :label => "Languages" do |lang|
lang.add :label => "English",:url => proc { url_for(:locale => 'en') }, id: 'i18n-en', :priority => 1
lang.add :label => "Mexican",:url => proc { url_for(:locale => 'es') }, id: 'i18n-es', :priority => 2
end
menu.add :label => proc { display_name current_active_admin_user },
:url => '#',
:id => 'current_user',
:if => proc { current_active_admin_user? }
admin.add_logout_button_to_menu menu
end
end
您可以在 application.rb 中设置默认语言环境:
config.before_configuration do
I18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
I18n.default_locale = :en
I18n.reload!
end