gpt4 book ai didi

ruby-on-rails - 如何在 Blacklight 中为字段标签正确实现 I18n?

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:42 25 4
gpt4 key购买 nike

有关如何正确执行此操作的文档很粗略。我试过这个:

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,它不会响应语言环境,并将始终提供与默认语言环境对应的标签。

执行此操作的“正确”方法是什么?

编辑:找到各个字段的解决方案。仍在寻找搜索字段的“适当”解决方案 (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')

最佳答案

多亏了 Surya,我才知道该往哪里看。 Blacklight 的默认模板已经调用了辅助方法,只要使用正确的键即可。因此,要将 date 字段标签本地化为英文,需要名为 en.blacklight.search.fields.date 的键。

关于ruby-on-rails - 如何在 Blacklight 中为字段标签正确实现 I18n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42199702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com