活动管理员自定义筛选器标签未注册 I18n 区域设置



>我的 activeadmin 仪表板选项卡中有一些自定义过滤器,并且我已经设置了过滤器标签以从 3 个不同的翻译文件中读取其相应的翻译。这是我的应用程序中唯一在用户切换到其他语言时不起作用/更改的翻译。当我完全删除翻译并重新加载页面时,错误告诉我 activeadmin 确实在其"翻译丢失"错误中查找了错误的翻译文件。活动管理员是否对自定义过滤器标签进行某种缓存?有没有办法强制查找这些标签的区域设置?

我已经确认我的set_localeapplication_controller中始终如一地工作。我尝试从 activadmin ruby 文件中冗余地重新检查/强制检查区域设置,但我没有成功做到这一点。我尝试使用rails文档中的各种方法阅读翻译:https://guides.rubyonrails.org/i18n.html#looking-up-translations 我还在
资源的活动管理文件的顶部打印出了I18n.locale,它打印出了以前的语言代码(在用户切换之前)。我尝试通过将其作为第二个参数传递给标签翻译来强制语言环境。

def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
filter :space,
label: I18n.t('.activeadmin.labels.space_names'),
collection: proc { Space.order(:name) }

当 url 包含es并且所有其他翻译都以西班牙语呈现时,自定义筛选器语言仍为英语。当我删除翻译时,错误是:TRANSLATION MISSING: EN.ACTIVEADMIN.LABELS.SPACE_NAMES为什么这些是唯一查找EN文件的翻译?

哦,自定义标签必须作为进程传递:

label: proc{I18n.t('.activeadmin.labels.space_names')}

最新更新