首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在黑光灯中正确实现字段标签的I18n?

如何在黑光灯中正确实现字段标签的I18n?
EN

Stack Overflow用户
提问于 2017-02-13 08:34:25
回答 1查看 98关注 0票数 2

医生们对如何正确地做这件事很粗略。我试过这个:

代码语言:javascript
复制
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

这足以满足很多情况;但是,我的字段配置如下(按照黑光指南):

代码语言:javascript
复制
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 (如果没有)。作为一种快速的止损措施,我上了这门课:

代码语言:javascript
复制
class Localized
  def initialize(key)
    @key = key
  end

  def to_s
    I18n.t(key)
  end
end

将搜索字段配置为

代码语言:javascript
复制
... label: Localized.new('blacklight.search.general.all_fields')
EN

回答 1

Stack Overflow用户

发布于 2017-02-14 00:39:21

多亏了苏里亚,我才知道该去哪找。只要使用正确的键,Blacklight的默认模板就已经调用了助手方法。因此,要将date字段标签本地化为英文,需要一个名为en.blacklight.search.fields.date的键。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42199702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档