关于如何正确地做到这一点,文档是粗略的。我试过这个:
class ApplicationController < ActionController::Base
# ...
before_action :set_locale
def set_locale
session[:locale] = I18n.locale = params.delete(:locale) || session[:locale] || I18n.default_locale
end
end
这足以满足很多事情;但是,我的字段配置如下(遵循Blacklight指南):
class CatalogController < ApplicationController
include Blacklight::Catalog
configure_blacklight do |config|
# ...
config.add_facet_field 'date', label: 'Date', single: false
# ...
end
end
此配置在处理请求之前发生,因此如果我尝试将I18n.t('Date')
用于label
,它将不会响应区域设置的更改,并始终提供与默认区域设置相对应的标签
什么是&#34;正确&#34;这样做的方法?
编辑:找到各个字段的解决方案。仍然在寻找适当的&#34;搜索字段的解决方案(config.add_search_field
)。似乎只有label
如果有,#labelize
- d key
如果没有,作为一个快速的止损措施,我做了这个课:
class Localized
def initialize(key)
@key = key
end
def to_s
I18n.t(key)
end
end
并使用
配置搜索字段... label: Localized.new('blacklight.search.general.all_fields')
答案 0 :(得分:0)
感谢苏里亚,我看到了哪里可以看。只要使用正确的密钥,Blacklight的默认模板就已经调用了辅助方法。因此,要使用英语本地化date
字段标签,需要名为en.blacklight.search.fields.date
的密钥。