活动管理员搜索状态区域设置不起作用
Active Admin Search Status locale not working
search status not translated (image)
英语语言环境(activeadmin.en.yml)
en:
active_admin:
search_status:
headline: "Search status:"
日语语言环境(activeadmin.ja.yml)
ja:
active_admin:
search_status:
headline: "検索条件:"
我的 yml 文件中已经有这些翻译,但我不知道为什么它不起作用。我还发现 ActiveAdmin 使用此代码 I18n.t("active_admin.search_status.headline")
我已经在 ActiveAdmin Github 页面和 Whosebug 此处搜索了问题,但我找不到我现在遇到的任何相同问题。
实际上,您的 yml
文件应该如下所示:
activeadmin.en.yml:
en:
active_admin:
search_status:
headline: "Search status:"
activeadmin.ja.yml:
ja:
active_admin:
search_status:
headline: "検索条件:"
看代码Activeadmin好像有bug
下面这行好像只执行了一次,不随当前语言环境变化
ActiveAdmin::SidebarSection.new I18n.t("active_admin.search_status.headline"), only: :index, if: -> { params[:q] || params[:scope] } do
activeadmin 中的另一行代码是这样的,只要更改区域设置就可以正常工作
ActiveAdmin::SidebarSection.new :filters, only: :index, if: ->{ active_admin_config.filters.any? } do
所以好像还是传个符号比较好。
这是一个补丁(将其添加到初始化器中),您可以添加它以使其工作:
module ActiveAdmin
module Filters
module ResourceExtension
def search_status_section
ActiveAdmin::SidebarSection.new :headline, only: :index, if: -> { params[:q] || params[:scope] } do
active = ActiveAdmin::Filters::Active.new(resource_class, params)
span do
h4 I18n.t("active_admin.search_status.current_scope"), style: 'display: inline'
b active.scope, style: "display: inline"
div style: "margin-top: 10px" do
h4 I18n.t("active_admin.search_status.current_filters"), style: 'margin-bottom: 10px'
ul do
if active.filters.blank?
li I18n.t("active_admin.search_status.no_current_filters")
else
active.filters.each do |filter|
li do
span filter.body
b filter.value
end
end
end
end
end
end
end
end
end
end
end
此外,在您的语言环境文件中添加一个 headline
键:
sidebars:
filters: "検索条件"
search_status: "検索状態"
headline: "TODO Search status:"
search status not translated (image)
英语语言环境(activeadmin.en.yml)
en:
active_admin:
search_status:
headline: "Search status:"
日语语言环境(activeadmin.ja.yml)
ja:
active_admin:
search_status:
headline: "検索条件:"
我的 yml 文件中已经有这些翻译,但我不知道为什么它不起作用。我还发现 ActiveAdmin 使用此代码 I18n.t("active_admin.search_status.headline")
我已经在 ActiveAdmin Github 页面和 Whosebug 此处搜索了问题,但我找不到我现在遇到的任何相同问题。
实际上,您的 yml
文件应该如下所示:
activeadmin.en.yml:
en:
active_admin:
search_status:
headline: "Search status:"
activeadmin.ja.yml:
ja:
active_admin:
search_status:
headline: "検索条件:"
看代码Activeadmin好像有bug
下面这行好像只执行了一次,不随当前语言环境变化
ActiveAdmin::SidebarSection.new I18n.t("active_admin.search_status.headline"), only: :index, if: -> { params[:q] || params[:scope] } do
activeadmin 中的另一行代码是这样的,只要更改区域设置就可以正常工作
ActiveAdmin::SidebarSection.new :filters, only: :index, if: ->{ active_admin_config.filters.any? } do
所以好像还是传个符号比较好。 这是一个补丁(将其添加到初始化器中),您可以添加它以使其工作:
module ActiveAdmin
module Filters
module ResourceExtension
def search_status_section
ActiveAdmin::SidebarSection.new :headline, only: :index, if: -> { params[:q] || params[:scope] } do
active = ActiveAdmin::Filters::Active.new(resource_class, params)
span do
h4 I18n.t("active_admin.search_status.current_scope"), style: 'display: inline'
b active.scope, style: "display: inline"
div style: "margin-top: 10px" do
h4 I18n.t("active_admin.search_status.current_filters"), style: 'margin-bottom: 10px'
ul do
if active.filters.blank?
li I18n.t("active_admin.search_status.no_current_filters")
else
active.filters.each do |filter|
li do
span filter.body
b filter.value
end
end
end
end
end
end
end
end
end
end
end
此外,在您的语言环境文件中添加一个 headline
键:
sidebars:
filters: "検索条件"
search_status: "検索状態"
headline: "TODO Search status:"