blacklight 9.0.0.beta2 → 9.0.0.beta3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +11 -1
  3. data/VERSION +1 -1
  4. data/app/assets/builds/blacklight.css +0 -5
  5. data/app/assets/javascripts/blacklight/blacklight.esm.js +12 -4
  6. data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
  7. data/app/assets/javascripts/blacklight/blacklight.js +12 -4
  8. data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
  9. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +0 -1
  10. data/app/components/blacklight/constraint_layout_component.html.erb +1 -6
  11. data/app/components/blacklight/constraint_layout_component.rb +9 -0
  12. data/app/components/blacklight/document/bookmark_component.html.erb +2 -2
  13. data/app/components/blacklight/document_component.html.erb +3 -3
  14. data/app/components/blacklight/document_component.rb +2 -2
  15. data/app/components/blacklight/document_title_component.rb +3 -0
  16. data/app/components/blacklight/facet_field_checkboxes_component.rb +6 -2
  17. data/app/components/blacklight/facet_field_component.rb +6 -2
  18. data/app/components/blacklight/facet_field_filter_component.rb +6 -2
  19. data/app/components/blacklight/facet_field_inclusive_constraint_component.rb +6 -4
  20. data/app/components/blacklight/facet_field_list_component.rb +6 -2
  21. data/app/components/blacklight/facet_field_no_layout_component.rb +6 -2
  22. data/app/components/blacklight/facet_item_component.rb +6 -2
  23. data/app/components/blacklight/facets/filters_component.html.erb +2 -2
  24. data/app/components/blacklight/facets/filters_component.rb +14 -2
  25. data/app/components/blacklight/facets/list_component.html.erb +1 -1
  26. data/app/components/blacklight/facets/list_component.rb +2 -0
  27. data/app/components/blacklight/icons/remove_component.rb +2 -2
  28. data/app/components/blacklight/response/facet_group_component.html.erb +2 -2
  29. data/app/components/blacklight/response/facet_group_component.rb +6 -2
  30. data/app/components/blacklight/system/flash_message_component.html.erb +1 -1
  31. data/app/components/blacklight/system/flash_message_component.rb +0 -9
  32. data/app/components/blacklight/system/modal_component.html.erb +1 -2
  33. data/app/controllers/concerns/blacklight/catalog.rb +6 -2
  34. data/app/helpers/blacklight/catalog_helper_behavior.rb +1 -1
  35. data/app/javascript/blacklight-frontend/bookmark_toggle.js +7 -2
  36. data/app/javascript/blacklight-frontend/checkbox_submit.js +5 -1
  37. data/app/javascript/blacklight-frontend/modal.js +1 -2
  38. data/app/presenters/blacklight/json_presenter.rb +7 -1
  39. data/app/views/catalog/facet.html.erb +1 -1
  40. data/config/locales/blacklight.ar.yml +12 -11
  41. data/config/locales/blacklight.ca.yml +1 -0
  42. data/config/locales/blacklight.de.yml +13 -12
  43. data/config/locales/blacklight.en.yml +1 -0
  44. data/config/locales/blacklight.es.yml +11 -10
  45. data/config/locales/blacklight.fr.yml +12 -11
  46. data/config/locales/blacklight.hu.yml +13 -12
  47. data/config/locales/blacklight.it.yml +13 -12
  48. data/config/locales/blacklight.nl.yml +12 -11
  49. data/config/locales/blacklight.pt-BR.yml +13 -12
  50. data/config/locales/blacklight.sq.yml +12 -11
  51. data/config/locales/blacklight.zh.yml +9 -8
  52. data/lib/blacklight/configuration.rb +7 -1
  53. data/lib/blacklight/solr/repository.rb +4 -1
  54. data/lib/blacklight.rb +5 -3
  55. data/lib/generators/blacklight/templates/catalog_controller.rb +2 -2
  56. data/package.json +1 -1
  57. data/spec/features/modal_spec.rb +1 -1
  58. data/spec/models/blacklight/configuration_spec.rb +20 -0
  59. data/spec/presenters/blacklight/json_presenter_spec.rb +17 -0
  60. metadata +3 -4
  61. data/app/assets/stylesheets/blacklight/_icons.scss +0 -4
@@ -1,8 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Blacklight
4
- class FacetFieldInclusiveConstraintComponent < Facets::InclusiveConstraintComponent; end
5
- FacetFieldInclusiveConstraintComponent = ActiveSupport::Deprecation::DeprecatedConstantProxy.new("FacetFieldInclusiveConstraintComponent",
6
- "Blacklight::Facets::InclusiveConstraintComponent",
7
- ActiveSupport::Deprecation.new)
4
+ class FacetFieldInclusiveConstraintComponent < Facets::InclusiveConstraintComponent
5
+ def initialize(...)
6
+ Rails.logger.warn("Blacklight::FacetFieldInclusiveConstraintComponent is deprecated. Use Blacklight::Facets::InclusiveConstraintComponent instead.")
7
+ super
8
+ end
9
+ end
8
10
  end
@@ -1,6 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Blacklight
4
- class FacetFieldListComponent < Facets::ListComponent; end
5
- FacetFieldListComponent = ActiveSupport::Deprecation::DeprecatedConstantProxy.new("FacetFieldListComponent", "Blacklight::Facets::ListComponent", ActiveSupport::Deprecation.new)
4
+ class FacetFieldListComponent < Facets::ListComponent
5
+ def initialize(...)
6
+ Rails.logger.warn("Blacklight::FacetFieldListComponent is deprecated. Use Blacklight::Facets::ListComponent instead.")
7
+ super
8
+ end
9
+ end
6
10
  end
@@ -1,6 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Blacklight
4
- class FacetFieldNoLayoutComponent < Facets::NoLayoutComponent; end
5
- FacetFieldNoLayoutComponent = ActiveSupport::Deprecation::DeprecatedConstantProxy.new("FacetFieldNoLayoutComponent", "Blacklight::Facets::NoLayoutComponent", ActiveSupport::Deprecation.new)
4
+ class FacetFieldNoLayoutComponent < Facets::NoLayoutComponent
5
+ def initialize(...)
6
+ Rails.logger.warn("Blacklight::FacetFieldNoLayoutComponent is deprecated. Use Blacklight::Facets::NoLayoutComponent instead.")
7
+ super
8
+ end
9
+ end
6
10
  end
@@ -1,6 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Blacklight
4
- class FacetItemComponent < Facets::ItemComponent; end
5
- FacetItemComponent = ActiveSupport::Deprecation::DeprecatedConstantProxy.new("FacetItemComponent", "Blacklight::Facets::ItemComponent", ActiveSupport::Deprecation.new)
4
+ class FacetItemComponent < Facets::ItemComponent
5
+ def initialize(...)
6
+ Rails.logger.warn("Blacklight::FacetItemComponent is deprecated. Use Blacklight::Facets::ItemComponent instead.")
7
+ super
8
+ end
9
+ end
6
10
  end
@@ -1,4 +1,4 @@
1
1
  <div class="<%= classes %>">
2
- <%= render Blacklight::Facets::SuggestComponent.new(presenter: presenter) %>
3
- <%= render Blacklight::Facets::IndexNavigationComponent.new(presenter: presenter) %>
2
+ <%= suggestions %>
3
+ <%= index_navigation %>
4
4
  </div>
@@ -3,16 +3,20 @@
3
3
  module Blacklight::Facets
4
4
  class FiltersComponent < Blacklight::Component
5
5
  # @param [Blacklight::FacetFieldPresenter] presenter
6
- def initialize(presenter:, classes: 'facet-filters card card-body bg-light p-3 mb-3 border-0')
6
+ def initialize(presenter:, classes: 'facet-filters card card-body bg-light p-3 mb-3 border-0',
7
+ suggestions_component: Blacklight::Facets::SuggestComponent,
8
+ index_navigation_component: Blacklight::Facets::IndexNavigationComponent)
7
9
  @presenter = presenter
8
10
  @classes = classes
11
+ @suggestions_component = suggestions_component
12
+ @index_navigation_component = index_navigation_component
9
13
  end
10
14
 
11
15
  def facet
12
16
  @presenter.facet_field
13
17
  end
14
18
 
15
- attr_reader :classes, :presenter
19
+ attr_reader :classes, :presenter, :suggestions_component, :index_navigation_component
16
20
 
17
21
  delegate :display_facet, to: :presenter
18
22
 
@@ -23,5 +27,13 @@ module Blacklight::Facets
23
27
  def render_index_navigation?
24
28
  facet.index_range && display_facet.index?
25
29
  end
30
+
31
+ def suggestions
32
+ render suggestions_component.new(presenter: presenter)
33
+ end
34
+
35
+ def index_navigation
36
+ render index_navigation_component.new(presenter: presenter)
37
+ end
26
38
  end
27
39
  end
@@ -1,4 +1,4 @@
1
- <%= render(@layout.new(facet_field: @facet_field)) do |component| %>
1
+ <%= render(layout.new(facet_field: @facet_field)) do |component| %>
2
2
  <% component.with_label do %>
3
3
  <%= @facet_field.label %>
4
4
  <% end %>
@@ -8,6 +8,8 @@ module Blacklight
8
8
  @layout = layout == false ? Blacklight::Facets::NoLayoutComponent : Blacklight::Facets::FieldComponent
9
9
  end
10
10
 
11
+ attr_accessor :layout
12
+
11
13
  def facet_items(wrapping_element: :li, **item_args)
12
14
  facet_item_component_class.with_collection(facet_item_presenters, wrapping_element: wrapping_element, **item_args)
13
15
  end
@@ -7,8 +7,8 @@ module Blacklight
7
7
  # Blacklight::Icons::RemoveComponent.svg = '<svg>your SVG here</svg>'
8
8
  class RemoveComponent < Blacklight::Icons::IconComponent
9
9
  self.svg = <<~SVG
10
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x fs-4" viewBox="0 0 16 16">
11
- <path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708"/>
10
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-lg" viewBox="0 0 16 16">
11
+ <path d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8z"/>
12
12
  </svg>
13
13
  SVG
14
14
  end
@@ -1,7 +1,7 @@
1
1
  <% # main container for facets/limits menu -%>
2
- <%= content_tag :div, id: @id, class: 'facets sidenav facets-toggleable-md' do %>
2
+ <%= content_tag :div, id: @id, class: container_classes do %>
3
3
  <div class="facets-header">
4
- <%= content_tag :h2, @title, class: 'facets-heading h4' if @title %>
4
+ <%= content_tag :h2, @title, class: header_classes if @title %>
5
5
 
6
6
  <%= collapse_toggle_button(@panel_id) %>
7
7
  </div>
@@ -8,15 +8,19 @@ module Blacklight
8
8
 
9
9
  # @param [String] id a unique identifier for the group
10
10
  # @param [String] title the title of the facet group section
11
- def initialize(id:, title: nil, body_classes: 'facets-collapse d-lg-block collapse accordion')
11
+ def initialize(id:, title: nil, body_classes: 'facets-collapse d-lg-block collapse accordion',
12
+ header_classes: 'facets-heading h4',
13
+ container_classes: 'facets sidenav facets-toggleable-md')
12
14
  @groupname = id
13
15
  @id = id ? "facets-#{id}" : 'facets'
14
16
  @title = title || I18n.t("blacklight.search.#{@id}.title")
15
17
  @panel_id = id ? "facet-panel-#{id}-collapse" : 'facet-panel-collapse'
16
18
  @body_classes = body_classes
19
+ @header_classes = header_classes
20
+ @container_classes = container_classes
17
21
  end
18
22
 
19
- attr_accessor :body_classes
23
+ attr_accessor :body_classes, :header_classes, :container_classes
20
24
 
21
25
  def collapse_toggle_button(panel_id)
22
26
  render button_component.new(panel_id: panel_id)
@@ -1,6 +1,6 @@
1
1
  <div class="alert alert-dismissible <%= @classes %>">
2
2
  <%= message %>
3
- <%= tag.button button_contents, type: "button", class: "btn-close",
3
+ <%= tag.button '', type: "button", class: "btn-close",
4
4
  data: { dismiss: "alert", bs_dismiss: "alert" },
5
5
  aria: { label: "Close" } %>
6
6
  </div>
@@ -16,15 +16,6 @@ module Blacklight
16
16
  with_message { @message } if @message
17
17
  end
18
18
 
19
- # Bootstrap 4 requires the span, but Bootstrap 5 should not have it.
20
- # See https://getbootstrap.com/docs/4.6/components/alerts/#dismissing
21
- # https://getbootstrap.com/docs/5.1/components/alerts/#dismissing
22
- def button_contents
23
- return if helpers.controller.blacklight_config.bootstrap_version == 5
24
-
25
- tag.span '&times;'.html_safe, aria: { hidden: true }
26
- end
27
-
28
19
  def alert_class(type)
29
20
  case type.to_s
30
21
  when 'success' then "alert-success"
@@ -6,8 +6,7 @@
6
6
  <h1 class="modal-title"><%= title %></h1>
7
7
  <% end) %>
8
8
 
9
- <button type="button" class="blacklight-modal-close btn-close close" data-bl-dismiss="modal" aria-label="<%= t('blacklight.modal.close') %>">
10
- <span aria-hidden="true" class="visually-hidden">&times;</span>
9
+ <button type="button" class="blacklight-modal-close btn-close" data-bl-dismiss="modal" aria-label="<%= t('blacklight.modal.close') %>">
11
10
  </button>
12
11
  </div>
13
12
 
@@ -239,7 +239,7 @@ module Blacklight::Catalog
239
239
  mail.deliver_now
240
240
  end
241
241
 
242
- def validate_sms_params
242
+ def sms_params_valid?
243
243
  if params[:to].blank?
244
244
  flash[:error] = I18n.t('blacklight.sms.errors.to.blank')
245
245
  elsif params[:carrier].blank?
@@ -252,12 +252,14 @@ module Blacklight::Catalog
252
252
 
253
253
  flash[:error].blank?
254
254
  end
255
+ alias validate_sms_params sms_params_valid?
256
+ Blacklight.deprecation.deprecate_methods(Blacklight::Catalog, validate_sms_params: 'use Catalog#sms_params_valid? instead')
255
257
 
256
258
  def sms_mappings
257
259
  Blacklight::Engine.config.blacklight.sms_mappings
258
260
  end
259
261
 
260
- def validate_email_params
262
+ def email_params_valid?
261
263
  if params[:to].blank?
262
264
  flash[:error] = I18n.t('blacklight.email.errors.to.blank')
263
265
  elsif !params[:to].match(Blacklight::Engine.config.blacklight.email_regexp)
@@ -266,6 +268,8 @@ module Blacklight::Catalog
266
268
 
267
269
  flash[:error].blank?
268
270
  end
271
+ alias validate_email_params email_params_valid?
272
+ Blacklight.deprecation.deprecate_methods(Blacklight::Catalog, validate_email_params: 'use Catalog#email_params_valid? instead')
269
273
 
270
274
  def start_new_search_session?
271
275
  action_name == "index"
@@ -169,7 +169,7 @@ module Blacklight::CatalogHelperBehavior
169
169
  constraints += search_state.filters.collect { |filter| render_search_to_page_title_filter(filter.key, filter.values) }
170
170
  end
171
171
 
172
- constraints.join(' / ')
172
+ constraints.join(t('blacklight.search.page_title.joiner'))
173
173
  end
174
174
 
175
175
  ##
@@ -1,12 +1,17 @@
1
1
  import CheckboxSubmit from 'blacklight-frontend/checkbox_submit'
2
2
 
3
3
  const BookmarkToggle = (e) => {
4
- if (e.target.matches('[data-checkboxsubmit-target="checkbox"]')) {
5
- const form = e.target.closest('form')
4
+ const elementType = e.target.getAttribute('data-checkboxsubmit-target');
5
+ if (elementType == 'checkbox' || elementType == 'label') {
6
+ const form = e.target.closest('form');
6
7
  if (form) new CheckboxSubmit(form).clicked(e);
8
+ if (e.code == 'Space') e.preventDefault();
7
9
  }
8
10
  };
9
11
 
10
12
  document.addEventListener('click', BookmarkToggle);
13
+ document.addEventListener('keydown', function (e) {
14
+ if (e.key === 'Enter' || e.code == 'Space') { BookmarkToggle(e); } }
15
+ );
11
16
 
12
17
  export default BookmarkToggle
@@ -43,6 +43,9 @@ export default class CheckboxSubmit {
43
43
  this.bookmarksCounter().forEach(counter => {
44
44
  counter.innerHTML = json.bookmarks.count;
45
45
  });
46
+
47
+ var e = new CustomEvent('bookmark.blacklight', { detail: { checked: !this.checked } });
48
+ window.dispatchEvent(e)
46
49
  }).catch((error) => {
47
50
  this.handleError(error)
48
51
  })
@@ -77,7 +80,8 @@ export default class CheckboxSubmit {
77
80
  }
78
81
 
79
82
  updateStateFor(state) {
80
- this.checkboxTarget.checked = state
83
+ if (state) { this.checkboxTarget.setAttribute('checked', state) }
84
+ else { this.checkboxTarget.removeAttribute('checked') }
81
85
 
82
86
  if (state) {
83
87
  this.labelTarget.classList.add('checked')
@@ -81,8 +81,7 @@ const Modal = (() => {
81
81
 
82
82
  const contents = `<div class="modal-header">
83
83
  <div class="modal-title">There was a problem with your request.</div>
84
- <button type="button" class="blacklight-modal-close btn-close close" data-bl-dismiss="modal" aria-label="Close">
85
- <span aria-hidden="true" class="visually-hidden">&times;</span>
84
+ <button type="button" class="blacklight-modal-close btn-close" data-bl-dismiss="modal" aria-label="Close">
86
85
  </button>
87
86
  </div>
88
87
  <div class="modal-body">
@@ -11,7 +11,7 @@ module Blacklight
11
11
 
12
12
  attr_reader :blacklight_config
13
13
 
14
- delegate :facet_field_names, :facet_configuration_for_field, to: :blacklight_config
14
+ delegate :facet_fields, :facet_configuration_for_field, to: :blacklight_config
15
15
 
16
16
  delegate :documents, to: :@response
17
17
 
@@ -23,6 +23,12 @@ module Blacklight
23
23
  .select { |display_facet| display_facet.items.present? }
24
24
  end
25
25
 
26
+ # NOTE: we don't use the facet_field_names method in Blacklight::Configuration because that
27
+ # only returns the field names of the group where the name is nil.
28
+ def facet_field_names
29
+ facet_fields.values.map(&:field)
30
+ end
31
+
26
32
  # extract the pagination info from the response object
27
33
  def pagination_info
28
34
  h = {}
@@ -2,7 +2,7 @@
2
2
  <% component.with_title { facet_field_label(@facet.key) } %>
3
3
  <% view_config = blacklight_config.view_config(document_index_view_type) %>
4
4
 
5
- <%= render Blacklight::Facets::FiltersComponent.new(presenter: @presenter) %>
5
+ <%= render view_config.facet_filters_component.new(presenter: @presenter) %>
6
6
 
7
7
  <div class="facet-pagination top d-flex flex-wrap w-100 justify-content-between border-bottom pb-3 mb-3">
8
8
  <%= render view_config.facet_pagination_component.new(facet_field: @presenter) %>
@@ -36,29 +36,29 @@ ar:
36
36
  apa: الجمعية الأمريكية لعلم النفس APA
37
37
  chicago: شيكاغو
38
38
  mla: جمعية اللغة الحديثة MLA
39
- did_you_mean: 'هل كنت تقصد كتابة: %{options}؟'
39
+ did_you_mean: "هل كنت تقصد كتابة: %{options}؟"
40
40
  email:
41
41
  errors:
42
42
  to:
43
43
  blank: يجب إدخال مُستلم من أجل إرسال هذه الرسالة
44
44
  invalid: يجب إدخال عنوان بريد إلكتروني صحيح
45
45
  form:
46
- message: 'الرسالة:'
46
+ message: "الرسالة:"
47
47
  submit: إرسال
48
48
  title: إرسله عبرالبريد الإلكتروني
49
- to: 'بريد إلكتروني:'
49
+ to: "بريد إلكتروني:"
50
50
  success: تم إرسال البريد الإلكتروني
51
51
  text:
52
52
  default_title: لا يوجد
53
- message: 'الرسالة: %{message}'
53
+ message: "الرسالة: %{message}"
54
54
  subject:
55
55
  few: سجلات المادة
56
56
  many: سجلات المادة
57
- one: 'سجل المادة: %{title}'
57
+ one: "سجل المادة: %{title}"
58
58
  other: سجلات المادة
59
59
  two: سجلان للمادة
60
60
  zero: لا يوجد سجل للمادة
61
- url: 'الرابط: %{url}'
61
+ url: "الرابط: %{url}"
62
62
  entry_name:
63
63
  default: إدخال
64
64
  grouped:
@@ -118,9 +118,9 @@ ar:
118
118
  filters:
119
119
  label: "%{label}:"
120
120
  remove:
121
- label_value: 'إزالة القيد %{label}: %{value}'
121
+ label_value: "إزالة القيد %{label}: %{value}"
122
122
  value: إزالة القيد %{value}
123
- title: 'لقد بحثت عن:'
123
+ title: "لقد بحثت عن:"
124
124
  form:
125
125
  search:
126
126
  label: ابحث عن
@@ -139,6 +139,7 @@ ar:
139
139
  constraint: "%{label}: %{value}"
140
140
  many_constraint_values: تم تحديد %{values}
141
141
  title: "%{constraints} - %{application_name} نتائج البحث"
142
+ joiner: " / "
142
143
  pagination:
143
144
  title: تصفح النتائج
144
145
  pagination_info:
@@ -171,7 +172,7 @@ ar:
171
172
  start_over: البدء من جديد
172
173
  view:
173
174
  list: قائمة
174
- view_title: 'عرض النتائج ك: '
175
+ view_title: "عرض النتائج ك: "
175
176
  zero_results:
176
177
  modify_search: حاول تعديل معايير البحث
177
178
  search_everything: حاول البحث عن كل شيء
@@ -208,10 +209,10 @@ ar:
208
209
  carrier_prompt: يرجى تحديد شركة الاتصالات
209
210
  submit: إرسال
210
211
  title: إرسله كرسالة نصية قصيرة
211
- to: 'رقم الهاتف:'
212
+ to: "رقم الهاتف:"
212
213
  success: تم الإرسال كرسالة نصية قصيرة
213
214
  text:
214
- url: 'الرابط: %{url}'
215
+ url: "الرابط: %{url}"
215
216
  tools:
216
217
  citation: استشهاد مرجعي
217
218
  clear: مسح
@@ -134,6 +134,7 @@ ca:
134
134
  title: "%{constraints} - %{application_name} Resultats de la cerca"
135
135
  constraint: "%{label}: %{value}"
136
136
  many_constraint_values: "%{values} seleccionat"
137
+ joiner: " / "
137
138
  header: "Cerca"
138
139
  search_constraints_header: "Filtres de la cerca"
139
140
  search_results: "Resultats de la cerca"
@@ -32,25 +32,25 @@ de:
32
32
  apa: APA
33
33
  chicago: Chicago
34
34
  mla: MLA
35
- did_you_mean: 'Meinten Sie: %{options}?'
35
+ did_you_mean: "Meinten Sie: %{options}?"
36
36
  email:
37
37
  errors:
38
38
  to:
39
39
  blank: Sie müssen einen Empfänger eingeben, um diese Mitteilung zu schicken
40
40
  invalid: Sie müssen eine gültige E-Mail-Addresse eingeben
41
41
  form:
42
- message: 'Nachricht:'
42
+ message: "Nachricht:"
43
43
  submit: Senden
44
44
  title: E-Mail
45
- to: 'E-Mail-Adresse:'
45
+ to: "E-Mail-Adresse:"
46
46
  success: E-Mail verschickt
47
47
  text:
48
48
  default_title: N/A
49
- message: 'Mitteilung: %{message}'
49
+ message: "Mitteilung: %{message}"
50
50
  subject:
51
- one: 'Artikeldatensatz: %{title}'
51
+ one: "Artikeldatensatz: %{title}"
52
52
  other: Artikeldatensätze
53
- url: 'URL: %{url}'
53
+ url: "URL: %{url}"
54
54
  entry_name:
55
55
  default:
56
56
  one: Eintrag
@@ -92,7 +92,7 @@ de:
92
92
  close: Facetten ausblenden
93
93
  open: Facetten zeigen
94
94
  missing:
95
- - fehlt
95
+ - fehlt
96
96
  more_html: mehr <span class="visually-hidden">%{field_name}</span> »
97
97
  pivot:
98
98
  hide: Schließen
@@ -109,9 +109,9 @@ de:
109
109
  filters:
110
110
  label: "%{label}:"
111
111
  remove:
112
- label_value: 'Filter %{label}: %{value} entfernen'
112
+ label_value: "Filter %{label}: %{value} entfernen"
113
113
  value: Filter %{value} entfernen
114
- title: 'Sie suchten nach:'
114
+ title: "Sie suchten nach:"
115
115
  form:
116
116
  search:
117
117
  label: suchen nach
@@ -130,6 +130,7 @@ de:
130
130
  constraint: "%{label}: %{value}"
131
131
  many_constraint_values: "%{values} ausgewählt"
132
132
  title: "%{constraints} - %{application_name} Suchergebnisse"
133
+ joiner: " / "
133
134
  pagination:
134
135
  title: Ergebnisse Navigation
135
136
  pagination_info:
@@ -158,7 +159,7 @@ de:
158
159
  start_over: Neu anfangen
159
160
  view:
160
161
  list: Liste
161
- view_title: 'Ergebnisse ansehen als: '
162
+ view_title: "Ergebnisse ansehen als: "
162
163
  zero_results:
163
164
  modify_search: Ändern Sie Ihre Suche
164
165
  search_everything: Suchen Sie nach allem
@@ -195,10 +196,10 @@ de:
195
196
  carrier_prompt: Bitte wählen Sie Ihren Netzbetreiber aus
196
197
  submit: Schicken
197
198
  title: SMS
198
- to: 'Telefonnummer:'
199
+ to: "Telefonnummer:"
199
200
  success: SMS verschickt
200
201
  text:
201
- url: 'Link: %{url}'
202
+ url: "Link: %{url}"
202
203
  tools:
203
204
  citation: Zitieren
204
205
  clear: Löschen
@@ -148,6 +148,7 @@ en:
148
148
  constraint: "%{label}: %{value}"
149
149
  many_constraint_values: "%{values} selected"
150
150
  title: "%{constraints} - %{application_name} Search Results"
151
+ joiner: " / "
151
152
  pagination:
152
153
  title: Results navigation
153
154
  pagination_info:
@@ -39,18 +39,18 @@ es:
39
39
  blank: Debe introducir un destinatario para enviar este mensaje
40
40
  invalid: Debe entrar un email válido
41
41
  form:
42
- message: 'Mensaje:'
42
+ message: "Mensaje:"
43
43
  submit: Enviar
44
44
  title: Enviar
45
- to: 'Email:'
45
+ to: "Email:"
46
46
  success: Email enviado
47
47
  text:
48
48
  default_title: N/A
49
- message: 'Mensaje: %{message}'
49
+ message: "Mensaje: %{message}"
50
50
  subject:
51
- one: 'Ficha artículo: %{title}'
51
+ one: "Ficha artículo: %{title}"
52
52
  other: Ficha artículos
53
- url: 'URL: %{url}'
53
+ url: "URL: %{url}"
54
54
  entry_name:
55
55
  default:
56
56
  one: entrada
@@ -108,9 +108,9 @@ es:
108
108
  filters:
109
109
  label: "%{label}:"
110
110
  remove:
111
- label_value: 'Eliminar la restricción%{label}: %{value}'
111
+ label_value: "Eliminar la restricción%{label}: %{value}"
112
112
  value: Eliminar la restricción %{value}
113
- title: 'Usted ha buscado:'
113
+ title: "Usted ha buscado:"
114
114
  form:
115
115
  search:
116
116
  label: buscar
@@ -129,6 +129,7 @@ es:
129
129
  constraint: "%{label}: %{value}"
130
130
  many_constraint_values: "%{values} seleccionado"
131
131
  title: "%{constraints} - %{application_name} Resultados de la búsqueda"
132
+ joiner: " / "
132
133
  pagination:
133
134
  title: Resultados de navegación
134
135
  pagination_info:
@@ -157,7 +158,7 @@ es:
157
158
  start_over: Volver a empezar
158
159
  view:
159
160
  list: Lista
160
- view_title: 'Ver Resultados por: '
161
+ view_title: "Ver Resultados por: "
161
162
  zero_results:
162
163
  modify_search: Intente modificar su búsqueda
163
164
  search_everything: Pruebe a buscar de todo
@@ -194,10 +195,10 @@ es:
194
195
  carrier_prompt: Por favor, seleccione su compañía telefónica
195
196
  submit: Enviar
196
197
  title: Enviar SMS
197
- to: 'Número de teléfono:'
198
+ to: "Número de teléfono:"
198
199
  success: SMS enviado
199
200
  text:
200
- url: 'Link: %{url}'
201
+ url: "Link: %{url}"
201
202
  tools:
202
203
  citation: Cité
203
204
  clear: Borrar
@@ -32,25 +32,25 @@ fr:
32
32
  apa: APA
33
33
  chicago: Chicago
34
34
  mla: MLA
35
- did_you_mean: 'Essayez peut-être avec : %{options}'
35
+ did_you_mean: "Essayez peut-être avec : %{options}"
36
36
  email:
37
37
  errors:
38
38
  to:
39
39
  blank: Vous devez saisir l'adresse de votre destinataire.
40
40
  invalid: Vous devez saisir une adresse correcte.
41
41
  form:
42
- message: 'Message :'
42
+ message: "Message :"
43
43
  submit: Envoyer
44
44
  title: Envoyer par courriel
45
- to: 'Courriel :'
45
+ to: "Courriel :"
46
46
  success: Message envoyé
47
47
  text:
48
48
  default_title: N/A
49
- message: 'Message : %{message}'
49
+ message: "Message : %{message}"
50
50
  subject:
51
- one: 'Une référence : %{title}'
51
+ one: "Une référence : %{title}"
52
52
  other: Des références bibliographiques
53
- url: 'URL : %{url}'
53
+ url: "URL : %{url}"
54
54
  entry_name:
55
55
  default:
56
56
  one: résultat
@@ -108,9 +108,9 @@ fr:
108
108
  filters:
109
109
  label: "%{label}:"
110
110
  remove:
111
- label_value: 'Supprimer la restriction %{label}: %{value}'
111
+ label_value: "Supprimer la restriction %{label}: %{value}"
112
112
  value: Supprimer la restriction %{value}
113
- title: 'Vous avez demandé :'
113
+ title: "Vous avez demandé :"
114
114
  form:
115
115
  search:
116
116
  label: Rechercher
@@ -129,6 +129,7 @@ fr:
129
129
  constraint: "%{label}: %{value}"
130
130
  many_constraint_values: "%{values} sélectionné"
131
131
  title: "%{constraints} - %{application_name} Résultats de recherche"
132
+ joiner: " / "
132
133
  pagination:
133
134
  title: Navigation dans les résultats
134
135
  pagination_info:
@@ -157,7 +158,7 @@ fr:
157
158
  start_over: Accueil
158
159
  view:
159
160
  list: Liste
160
- view_title: 'Affichage: '
161
+ view_title: "Affichage: "
161
162
  zero_results:
162
163
  modify_search: Essayez de modifier votre requête de recherche
163
164
  search_everything: essayez de rechercher tout
@@ -194,10 +195,10 @@ fr:
194
195
  carrier_prompt: Veuillez choisir votre opérateur
195
196
  submit: Envoyer
196
197
  title: Envoyer par SMS
197
- to: 'Numéro de téléphone :'
198
+ to: "Numéro de téléphone :"
198
199
  success: SMS envoyé
199
200
  text:
200
- url: 'Lien : %{url}'
201
+ url: "Lien : %{url}"
201
202
  tools:
202
203
  citation: Citer
203
204
  clear: Effacer