Tag: blacklight

围绕`mount`的`scope`无效?

(虽然这讨论了Blacklight引擎,但我相信这个问题实际上纯粹是关于Rails。) 我正在尝试为我的Blacklight应用添加国际化。 为此,我 将config/routes.rb所有内容config/routes.rb到scope “(:locale)”, locale: /en|ja/ ,和 在app/controllers/application_controller.rb我添加了before_action :set_locale并覆盖了default_url_options 正如Rails i18n指南所建议的那样。 大多数事情都有效,但有一点我无法弄清楚。 我的所有应用程序路由都已正确映射,例如http://www.example.com/en/catalog/12345正确匹配(/:locale)/catalog/:id(.:format) ,并被路由到catalog#show用{:id=>/[^\/]+(?=\.json|\.html|$|\/)/, :locale=>/en|ja/} )显示。 所有Devise的url都很好。 一切正常……除了mount Blacklight引擎。 显然,Blacklight引擎不听scope 。 rake routes显示: Routes for Blacklight::Engine: search_history GET /search_history(.:format) search_history#index …. 而不是(:locale)/search_history(.:format) ,我希望如此。 我修改了Blacklight模板,以便我得到一个语言选择器,用日语和英语指向当前页面,但是当我导航到search_history , url_for在面对:locale参数时突然抛出。 为什么mount会忽略scope ? 如何解决我的问题(引擎路由也响应:locale )? 这是我默认的Blacklight生成的config/routes.rb ,用scope修改: Rails.application.routes.draw do scope “(:locale)”, locale: /en|ja/ do mount Blacklight::Engine => ‘/’ root […]

在切换要转换的Blacklight标签的区域设置后,需要刷新页面

我正在尝试创建一个基于Blacklight的Rails应用程序的阿拉伯语版本。 这是我面临的问题: 当我切换语言时,除了Blacklight标签外,一切都完美无缺。 只有当我刷新页面时才会翻译标签。 这是我要显示的标签:“ترتيبحسبعام”(翻译:按年份排序) 但这就是我目前得到的:“年ترتيبحسب” 从阿拉伯语切换回英语时会出现同样的问题 – 标签以阿拉伯语显示,直到我刷新页面。 这就是我的Blacklight配置: class CatalogController I18n.t(‘sortby.year’) # … end end 这是我在应用程序控制器中设置区域设置的方法: class ApplicationController < ActionController::Base before_filter :set_locale def set_locale I18n.locale = params[:locale] || I18n.default_locale end # … end 我不确定发生了什么,我真的很感谢你的帮助。