blacklight 7.7.0 → 7.8.0
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.
- checksums.yaml +4 -4
- data/.docker/app/Dockerfile +26 -0
- data/.docker/app/entrypoint.sh +6 -0
- data/.env +5 -0
- data/.rubocop_todo.yml +13 -13
- data/.travis.yml +15 -23
- data/Gemfile +4 -1
- data/README.md +4 -0
- data/VERSION +1 -1
- data/app/assets/stylesheets/blacklight/_pagination.scss +4 -0
- data/app/components/blacklight/constraint_layout_component.html.erb +21 -0
- data/app/components/blacklight/constraint_layout_component.rb +16 -0
- data/app/components/blacklight/facet_field_component.html.erb +25 -0
- data/app/components/blacklight/facet_field_component.rb +11 -0
- data/app/components/blacklight/facet_field_list_component.html.erb +18 -0
- data/app/components/blacklight/facet_field_list_component.rb +22 -0
- data/app/components/blacklight/facet_field_no_layout_component.rb +13 -0
- data/app/components/blacklight/facet_item_component.rb +120 -0
- data/app/helpers/blacklight/catalog_helper_behavior.rb +2 -2
- data/app/helpers/blacklight/facets_helper_behavior.rb +84 -48
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +64 -33
- data/app/javascript/blacklight/modal.js +1 -1
- data/app/models/concerns/blacklight/document/extensions.rb +3 -0
- data/app/models/concerns/blacklight/document/semantic_fields.rb +0 -4
- data/app/presenters/blacklight/facet_field_presenter.rb +57 -0
- data/app/presenters/blacklight/facet_item_presenter.rb +81 -0
- data/app/views/catalog/_citation.html.erb +1 -1
- data/app/views/catalog/_constraints.html.erb +1 -1
- data/app/views/catalog/_constraints_element.html.erb +5 -24
- data/app/views/catalog/_email_form.html.erb +1 -1
- data/app/views/catalog/_facet_layout.html.erb +8 -17
- data/app/views/catalog/_facet_limit.html.erb +3 -12
- data/app/views/catalog/_facet_pagination.html.erb +2 -2
- data/app/views/catalog/_facet_pivot.html.erb +4 -4
- data/app/views/catalog/_sms_form.html.erb +1 -1
- data/blacklight.gemspec +1 -0
- data/config/locales/blacklight.ar.yml +29 -25
- data/docker-compose.yml +35 -0
- data/lib/blacklight/engine.rb +2 -6
- data/lib/blacklight/search_state.rb +32 -0
- data/lib/blacklight/solr/response/facets.rb +2 -0
- data/lib/generators/blacklight/assets_generator.rb +10 -0
- data/spec/{views/catalog/_constraints_element.html.erb_spec.rb → components/blacklight/constraint_layout_component_spec.rb} +21 -11
- data/spec/components/blacklight/facet_field_list_component_spec.rb +108 -0
- data/spec/components/blacklight/facet_item_component_spec.rb +50 -0
- data/spec/features/facets_spec.rb +1 -1
- data/spec/helpers/blacklight/facets_helper_behavior_spec.rb +24 -12
- data/spec/helpers/blacklight/render_constraints_helper_behavior_spec.rb +4 -23
- data/spec/lib/blacklight/search_state_spec.rb +38 -0
- data/spec/models/blacklight/solr/response/facets_spec.rb +30 -1
- data/spec/presenters/blacklight/facet_field_presenter_spec.rb +109 -0
- data/spec/presenters/blacklight/facet_item_presenter_spec.rb +92 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/support/presenter_test_helpers.rb +11 -0
- data/spec/views/catalog/_facet_group.html.erb_spec.rb +1 -0
- data/tasks/blacklight.rake +30 -23
- metadata +43 -5
@@ -4,10 +4,6 @@ module Blacklight::Document
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
module ClassMethods
|
7
|
-
# Returns array of hashes of registered extensions. Each hash
|
8
|
-
# has a :module_obj key and a :condition_proc key. Usually this
|
9
|
-
# method is only used internally in #apply_extensions, but if you
|
10
|
-
|
11
7
|
# Class-level method for accessing/setting semantic mappings
|
12
8
|
# for solr stored fields. Can be set by local app, key is
|
13
9
|
# a symbol for a semantic, value is a solr _stored_ field.
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Blacklight
|
4
|
+
class FacetFieldPresenter
|
5
|
+
attr_reader :facet_field, :display_facet, :view_context, :search_state
|
6
|
+
|
7
|
+
delegate :key, to: :facet_field
|
8
|
+
delegate :field_name, to: :display_facet
|
9
|
+
|
10
|
+
def initialize(facet_field, display_facet, view_context, search_state = view_context.search_state)
|
11
|
+
@facet_field = facet_field
|
12
|
+
@display_facet = display_facet
|
13
|
+
@view_context = view_context
|
14
|
+
@search_state = search_state
|
15
|
+
end
|
16
|
+
|
17
|
+
def collapsed?
|
18
|
+
Deprecation.silence(Blacklight::FacetsHelperBehavior) do
|
19
|
+
view_context.should_collapse_facet?(facet_field)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def active?
|
24
|
+
Deprecation.silence(Blacklight::FacetsHelperBehavior) do
|
25
|
+
view_context.facet_field_in_params?(key)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def in_modal?
|
30
|
+
search_state.params[:action] == "facet"
|
31
|
+
end
|
32
|
+
|
33
|
+
def modal_path
|
34
|
+
return unless paginator
|
35
|
+
|
36
|
+
view_context.search_facet_path(id: key) unless paginator&.last_page?
|
37
|
+
end
|
38
|
+
|
39
|
+
def label
|
40
|
+
view_context.facet_field_label(key)
|
41
|
+
end
|
42
|
+
|
43
|
+
# @private
|
44
|
+
# @deprecated
|
45
|
+
def html_id
|
46
|
+
Deprecation.silence(Blacklight::FacetsHelperBehavior) do
|
47
|
+
view_context.facet_field_id(facet_field)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def paginator
|
52
|
+
return unless display_facet
|
53
|
+
|
54
|
+
@paginator ||= view_context.facet_paginator(facet_field, display_facet)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Blacklight
|
4
|
+
class FacetItemPresenter
|
5
|
+
attr_reader :facet_item, :facet_config, :view_context, :search_state, :facet_field
|
6
|
+
|
7
|
+
delegate :hits, to: :facet_item
|
8
|
+
|
9
|
+
def initialize(facet_item, facet_config, view_context, facet_field, search_state = view_context.search_state)
|
10
|
+
@facet_item = facet_item
|
11
|
+
@facet_config = facet_config
|
12
|
+
@view_context = view_context
|
13
|
+
@facet_field = facet_field
|
14
|
+
@search_state = search_state
|
15
|
+
end
|
16
|
+
|
17
|
+
##
|
18
|
+
# Check if the query parameters have the given facet field with the
|
19
|
+
# given value.
|
20
|
+
def selected?
|
21
|
+
search_state.has_facet? facet_config, value: facet_value
|
22
|
+
end
|
23
|
+
|
24
|
+
##
|
25
|
+
# Get the displayable version of a facet's value
|
26
|
+
#
|
27
|
+
# @return [String]
|
28
|
+
def label
|
29
|
+
return @view_context.facet_display_value(@facet_field, @facet_item) unless @view_context.method(:facet_display_value).owner == Blacklight::FacetsHelperBehavior
|
30
|
+
|
31
|
+
value = if facet_item.respond_to? :label
|
32
|
+
facet_item.label
|
33
|
+
else
|
34
|
+
facet_value
|
35
|
+
end
|
36
|
+
|
37
|
+
if facet_config.helper_method
|
38
|
+
view_context.public_send(facet_config.helper_method, value)
|
39
|
+
elsif facet_config.query && facet_config.query[value]
|
40
|
+
facet_config.query[value][:label]
|
41
|
+
elsif facet_config.date
|
42
|
+
localization_options = facet_config.date == true ? {} : facet_config.date
|
43
|
+
I18n.l(Time.zone.parse(value), localization_options)
|
44
|
+
else
|
45
|
+
value
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def href(path_options = {})
|
50
|
+
if selected?
|
51
|
+
remove_href
|
52
|
+
else
|
53
|
+
add_href(path_options)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# @private
|
58
|
+
def remove_href(path = search_state)
|
59
|
+
view_context.search_action_path(path.remove_facet_params(facet_config.key, facet_item))
|
60
|
+
end
|
61
|
+
|
62
|
+
# @private
|
63
|
+
def add_href(path_options = {})
|
64
|
+
if facet_config.url_method
|
65
|
+
view_context.public_send(facet_config.url_method, facet_config.key, facet_item)
|
66
|
+
else
|
67
|
+
view_context.search_action_path(search_state.add_facet_params_and_redirect(facet_config.key, facet_item).merge(path_options))
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
private
|
72
|
+
|
73
|
+
def facet_value
|
74
|
+
if facet_item.respond_to? :value
|
75
|
+
facet_item.value
|
76
|
+
else
|
77
|
+
facet_item
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -7,27 +7,8 @@
|
|
7
7
|
options ||= {}
|
8
8
|
%>
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
<% unless value.blank? %>
|
16
|
-
<%= content_tag :span, value, class: 'filter-value', title: strip_tags(value) %>
|
17
|
-
<% end %>
|
18
|
-
</span>
|
19
|
-
<% unless options[:remove].blank? %>
|
20
|
-
<% accessible_remove_label = content_tag :span, class: 'sr-only' do
|
21
|
-
if label.blank?
|
22
|
-
t('blacklight.search.filters.remove.value', value: value)
|
23
|
-
else
|
24
|
-
t('blacklight.search.filters.remove.label_value', label: label, value: value)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
%>
|
28
|
-
|
29
|
-
<%= link_to(content_tag(:span, '✖', class: 'remove-icon') + accessible_remove_label,
|
30
|
-
options[:remove], class: 'btn btn-outline-secondary remove'
|
31
|
-
) %>
|
32
|
-
<%- end -%>
|
33
|
-
</span>
|
10
|
+
<%= render(Blacklight::ConstraintLayoutComponent.new(
|
11
|
+
classes: options[:classes],
|
12
|
+
label: label,
|
13
|
+
value: value,
|
14
|
+
remove_path: options[:remove])) %>
|
@@ -1,17 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
<%= facet_field_label(facet_field.key) %>
|
10
|
-
</button>
|
11
|
-
</h3>
|
12
|
-
<div id="<%= facet_field_id(facet_field) %>" aria-labelledby="<%= facet_field_id(facet_field) %>-header" class="panel-collapse facet-content collapse <%= "show" unless should_collapse_facet?(facet_field) %>">
|
13
|
-
<div class="card-body">
|
14
|
-
<%= yield %>
|
15
|
-
</div>
|
16
|
-
</div>
|
17
|
-
</div>
|
1
|
+
<%= render(Blacklight::FacetFieldComponent.new(facet_field: facet_field_presenter(facet_field, nil))) do |component| %>
|
2
|
+
<% component.with(:label) do %>
|
3
|
+
<%= facet_field_label(facet_field.key) %>
|
4
|
+
<% end %>
|
5
|
+
<% component.with(:body) do %>
|
6
|
+
<%= yield %>
|
7
|
+
<% end %>
|
8
|
+
<% end %>
|
@@ -1,12 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
<% unless paginator.last_page? || params[:action] == "facet" %>
|
6
|
-
<li class="more_facets">
|
7
|
-
<%= link_to t("more_#{field_name}_html", scope: 'blacklight.search.facets', default: :more_html, field_name: facet_field_label(facet_field.key)),
|
8
|
-
search_facet_path(id: facet_field.key),
|
9
|
-
data: { blacklight_modal: 'trigger' } %>
|
10
|
-
</li>
|
11
|
-
<% end %>
|
12
|
-
</ul>
|
1
|
+
<%= render(Blacklight::FacetFieldListComponent.new(
|
2
|
+
facet_field: facet_field_presenter(facet_field, display_facet),
|
3
|
+
layout: false)) %>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<div class="prev_next_links btn-group">
|
2
2
|
<%= link_to_previous_page @pagination, raw(t('views.pagination.previous')), params: search_state.to_h, param_name: blacklight_config.facet_paginator_class.request_keys[:page], class: 'btn btn-link', data: { blacklight_modal: "preserve" } do %>
|
3
|
-
<%= content_tag :span, raw(t('views.pagination.previous')), class: 'disabled btn
|
3
|
+
<%= content_tag :span, raw(t('views.pagination.previous')), class: 'disabled btn' %>
|
4
4
|
<% end %>
|
5
5
|
|
6
6
|
<%= link_to_next_page @pagination, raw(t('views.pagination.next')), params: search_state.to_h, param_name: blacklight_config.facet_paginator_class.request_keys[:page], class: 'btn btn-link', data: { blacklight_modal: "preserve" } do %>
|
7
|
-
<%= content_tag :span, raw(t('views.pagination.next')), class: 'disabled btn
|
7
|
+
<%= content_tag :span, raw(t('views.pagination.next')), class: 'disabled btn' %>
|
8
8
|
<% end %>
|
9
9
|
</div>
|
10
10
|
|
@@ -2,10 +2,10 @@
|
|
2
2
|
<% display_facet.items.each do |item| -%>
|
3
3
|
<li>
|
4
4
|
<span class="facet-values">
|
5
|
-
<% if facet_in_params?(field_name, item) %>
|
6
|
-
<%= render_selected_facet_value(field_name, item) %>
|
7
|
-
<% else %>
|
8
|
-
<%= render_facet_value(field_name, item) %>
|
5
|
+
<% if facet_in_params?(field_name, item) %>
|
6
|
+
<%= render_selected_facet_value(field_name, item) %>
|
7
|
+
<% else %>
|
8
|
+
<%= render_facet_value(field_name, item) %>
|
9
9
|
<% end -%>
|
10
10
|
</span>
|
11
11
|
|
data/blacklight.gemspec
CHANGED
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
|
|
30
30
|
s.add_dependency "jbuilder", '~> 2.7'
|
31
31
|
s.add_dependency "kaminari", ">= 0.15" # the pagination (page 1,2,3, etc..) of our search results
|
32
32
|
s.add_dependency "deprecation"
|
33
|
+
s.add_dependency "view_component"
|
33
34
|
|
34
35
|
s.add_development_dependency "rsolr", ">= 1.0.6", "< 3" # Library for interacting with rSolr.
|
35
36
|
s.add_development_dependency "rspec-rails", "~> 4.0.0.beta2"
|
@@ -3,8 +3,8 @@ ar:
|
|
3
3
|
pagination:
|
4
4
|
first: 'الأولى «'
|
5
5
|
last: 'الأخيرة »'
|
6
|
-
previous: '«
|
7
|
-
next: '
|
6
|
+
previous: '« السابق'
|
7
|
+
next: 'التالي »'
|
8
8
|
truncate: '…'
|
9
9
|
aria:
|
10
10
|
container_label: 'روابط الصفحات'
|
@@ -52,7 +52,8 @@ ar:
|
|
52
52
|
few: 'أضيفت الصفحات المفضلة بنجاح.'
|
53
53
|
many: 'أضيفت الصفحات المفضلة بنجاح.'
|
54
54
|
other: 'أضيفت الصفحات المفضلة بنجاح.'
|
55
|
-
|
55
|
+
|
56
|
+
failure: 'معذرة! حدثت مشكلة في حفظ الصفحات المفضلة.'
|
56
57
|
remove:
|
57
58
|
button: 'إزالة الصفحة المفضلة'
|
58
59
|
success: 'أزيلت الصفحة المفضلة بنجاح.'
|
@@ -61,7 +62,7 @@ ar:
|
|
61
62
|
clear:
|
62
63
|
action_title: 'مسح الصفحات المفضلة'
|
63
64
|
action_confirm: 'هل ترغب في مسح الصفحات المفضلة؟'
|
64
|
-
success: '
|
65
|
+
success: 'تم مسح صفحاتك المفضلة.'
|
65
66
|
failure: 'معذرة! حدثت مشكلة في مسح صفحاتك المفضلة.'
|
66
67
|
need_login: 'يُرجى تسجيل الدخول لتنظيم صفحاتك المفضلة وعرضها.'
|
67
68
|
list_title: 'صفحاتك المفضلة'
|
@@ -69,14 +70,14 @@ ar:
|
|
69
70
|
|
70
71
|
search_history:
|
71
72
|
clear:
|
72
|
-
action_title: '
|
73
|
+
action_title: 'امسح سجل البحث السابق'
|
73
74
|
action_confirm: 'هل ترغب في مسح سجل البحث السابق؟'
|
74
|
-
success: '
|
75
|
+
success: 'تم مسح سجل بحثك السابق.'
|
75
76
|
failure: 'حدثت مشكلة في مسح سجل بحثك السابق.'
|
76
77
|
title: 'سجل البحث'
|
77
78
|
page_title: 'سجل البحث - %{application_name}'
|
78
|
-
no_history: '
|
79
|
-
recent: '
|
79
|
+
no_history: 'لا يوجد لديك سجل بحث'
|
80
|
+
recent: 'سجل ابحاثك السابقة'
|
80
81
|
forget: 'تراجع'
|
81
82
|
save: 'حفظ'
|
82
83
|
|
@@ -84,7 +85,7 @@ ar:
|
|
84
85
|
title: 'أدوات'
|
85
86
|
citation: 'استشهاد مرجعي'
|
86
87
|
email: 'بريد إلكتروني'
|
87
|
-
sms: '
|
88
|
+
sms: 'إرسله كرسالة نصية قصيرة'
|
88
89
|
clear: 'مسح'
|
89
90
|
|
90
91
|
citation:
|
@@ -94,12 +95,12 @@ ar:
|
|
94
95
|
|
95
96
|
email:
|
96
97
|
form:
|
97
|
-
title: '
|
98
|
+
title: 'إرسله عبرالبريد الإلكتروني'
|
98
99
|
to: 'بريد إلكتروني:'
|
99
100
|
message: 'الرسالة:'
|
100
101
|
submit: 'إرسال'
|
101
102
|
text:
|
102
|
-
default_title: 'لا
|
103
|
+
default_title: 'لا يوجد'
|
103
104
|
title: 'العنوان: %{value}'
|
104
105
|
author: 'المؤلف: %{value}'
|
105
106
|
format: 'الصيغة: %{value}'
|
@@ -111,30 +112,31 @@ ar:
|
|
111
112
|
few: 'سجلات المادة'
|
112
113
|
many: 'سجلات المادة'
|
113
114
|
other: 'سجلات المادة'
|
115
|
+
|
114
116
|
url: 'الرابط: %{url}'
|
115
117
|
message: 'الرسالة: %{message}'
|
116
118
|
|
117
|
-
success:
|
119
|
+
success: "تم إرسال البريد الإلكتروني"
|
120
|
+
|
118
121
|
errors:
|
119
122
|
to:
|
120
123
|
invalid: 'يجب إدخال عنوان بريد إلكتروني صحيح'
|
121
124
|
blank: 'يجب إدخال مُستلم من أجل إرسال هذه الرسالة'
|
122
|
-
|
123
125
|
sms:
|
124
126
|
form:
|
125
|
-
title: '
|
127
|
+
title: 'إرسله كرسالة نصية قصيرة'
|
126
128
|
to: 'رقم الهاتف:'
|
127
129
|
carrier: 'شركة الاتصالات'
|
128
130
|
carrier_prompt: 'يرجى تحديد شركة الاتصالات'
|
129
131
|
submit: 'إرسال'
|
130
132
|
text:
|
131
133
|
title: '%{value}'
|
132
|
-
author: '
|
134
|
+
author: ' بواسطة %{value}'
|
133
135
|
url: 'الرابط: %{url}'
|
134
|
-
success:
|
136
|
+
success: "تم الإرسال كرسالة نصية قصيرة"
|
135
137
|
errors:
|
136
138
|
to:
|
137
|
-
invalid: 'يجب إدخال رقم هاتف صحيح من 10
|
139
|
+
invalid: 'يجب إدخال رقم هاتف صحيح من 10 أرقام'
|
138
140
|
blank: "يجب إدخال رقم هاتف المستلم لإرسال هذه الرسالة"
|
139
141
|
carrier:
|
140
142
|
blank: 'يجب تحديد شركة الاتصالات'
|
@@ -148,11 +150,11 @@ ar:
|
|
148
150
|
title: '%{constraints} - %{application_name} نتائج البحث'
|
149
151
|
constraint: '%{label}: %{value}'
|
150
152
|
many_constraint_values: 'تم تحديد %{values}'
|
151
|
-
header: '
|
153
|
+
header: 'ابحث'
|
152
154
|
search_constraints_header: 'قيود البحث'
|
153
155
|
search_results: 'نتائج البحث'
|
154
156
|
errors:
|
155
|
-
request_error: "معذرة،
|
157
|
+
request_error: "معذرة، لم أفهم ما تبحث عنه."
|
156
158
|
invalid_solr_id: "معذرة! لقد طلبت سجلًا غير موجود."
|
157
159
|
per_page:
|
158
160
|
label: '%{count}<span class="sr-only"> لكل صفحة</span>'
|
@@ -160,18 +162,18 @@ ar:
|
|
160
162
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> لكل صفحة</span>'
|
161
163
|
title: 'عدد النتائج المعروضة في الصفحة'
|
162
164
|
submit: 'تحديث'
|
163
|
-
aria_label: '
|
165
|
+
aria_label: 'تصفح النتائج'
|
164
166
|
sort:
|
165
167
|
label: 'ترتيب حسب %{field}' # TODO: Remove during major release
|
166
168
|
label_html: 'ترتيب <span class="d-none d-sm-inline"> حسب %{field}</span>'
|
167
169
|
submit: 'نتائج الترتيب'
|
168
170
|
form:
|
169
171
|
search_field:
|
170
|
-
label: '
|
172
|
+
label: 'ابحث في'
|
171
173
|
title: 'خيارات البحث المستهدفة'
|
172
174
|
post_label: 'عن'
|
173
175
|
search:
|
174
|
-
label: '
|
176
|
+
label: 'ابحث عن'
|
175
177
|
placeholder: 'بحث...'
|
176
178
|
submit: 'بحث'
|
177
179
|
pagination:
|
@@ -186,6 +188,7 @@ ar:
|
|
186
188
|
few: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> من <strong>%{total_num}</strong>'
|
187
189
|
many: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> من <strong>%{total_num}</strong>'
|
188
190
|
other: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> من <strong>%{total_num}</strong>'
|
191
|
+
|
189
192
|
entry_pagination_info:
|
190
193
|
zero: '<strong>%{current}</strong> من <strong>%{total}</strong>'
|
191
194
|
one: '<strong>%{current}</strong> من <strong>%{total}</strong>'
|
@@ -193,10 +196,11 @@ ar:
|
|
193
196
|
few: '<strong>%{current}</strong> من <strong>%{total}</strong>'
|
194
197
|
many: '<strong>%{current}</strong> من <strong>%{total}</strong>'
|
195
198
|
other: '<strong>%{current}</strong> من <strong>%{total}</strong>'
|
199
|
+
|
196
200
|
documents:
|
197
201
|
aria:
|
198
202
|
search_results: 'نتائج البحث'
|
199
|
-
limit_search: '
|
203
|
+
limit_search: '...ابحث عن العناصر حسب'
|
200
204
|
counter: '%{counter}. '
|
201
205
|
facets:
|
202
206
|
title: 'تحديد نطاق البحث'
|
@@ -233,9 +237,9 @@ ar:
|
|
233
237
|
zero_results:
|
234
238
|
title: "لا توجد نتائج للبحث"
|
235
239
|
modify_search: "حاول تعديل معايير البحث"
|
236
|
-
use_fewer_keywords: "استخدم كلمات
|
240
|
+
use_fewer_keywords: "استخدم كلمات أساسية أقل أولاً، ثم أعد تحديد البحث باستخدام الروابط على اليسار."
|
237
241
|
search_fields: "لقد بحثت باستخدام %{search_fields}"
|
238
|
-
search_everything: "
|
242
|
+
search_everything: "حاول البحث عن كل شيء"
|
239
243
|
view_title: "عرض النتائج ك: "
|
240
244
|
view:
|
241
245
|
list: "قائمة"
|