pagy 7.0.11 → 8.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/gem/apps/calendar.ru +2196 -0
  3. data/gem/apps/demo.ru +452 -0
  4. data/gem/apps/rails.ru +205 -0
  5. data/gem/apps/repro.ru +168 -0
  6. data/gem/bin/pagy +83 -0
  7. data/{lib → gem}/config/pagy.rb +6 -17
  8. data/{lib → gem}/javascripts/pagy-dev.js +10 -10
  9. data/{lib → gem}/javascripts/pagy-module.js +9 -9
  10. data/gem/javascripts/pagy.js +1 -0
  11. data/gem/lib/optimist.rb +1022 -0
  12. data/gem/lib/pagy/extras/bootstrap.rb +97 -0
  13. data/gem/lib/pagy/extras/bulma.rb +89 -0
  14. data/gem/lib/pagy/extras/foundation.rb +93 -0
  15. data/{lib → gem/lib}/pagy/extras/items.rb +21 -18
  16. data/{lib/pagy/extras/frontend_helpers.rb → gem/lib/pagy/extras/js_tools.rb} +1 -1
  17. data/gem/lib/pagy/extras/materialize.rb +97 -0
  18. data/gem/lib/pagy/extras/pagy.rb +82 -0
  19. data/gem/lib/pagy/extras/semantic.rb +91 -0
  20. data/gem/lib/pagy/extras/trim.rb +29 -0
  21. data/gem/lib/pagy/extras/uikit.rb +96 -0
  22. data/gem/lib/pagy/frontend.rb +97 -0
  23. data/{lib → gem/lib}/pagy/url_helpers.rb +1 -2
  24. data/{lib → gem/lib}/pagy.rb +12 -11
  25. data/{lib → gem}/locales/ar.yml +2 -2
  26. data/{lib → gem}/locales/be.yml +4 -4
  27. data/{lib → gem}/locales/bg.yml +4 -4
  28. data/{lib → gem}/locales/bs.yml +4 -4
  29. data/{lib → gem}/locales/ca.yml +4 -4
  30. data/gem/locales/ckb.yml +18 -0
  31. data/{lib → gem}/locales/cs.yml +4 -4
  32. data/{lib → gem}/locales/da.yml +4 -4
  33. data/{lib → gem}/locales/de.yml +4 -4
  34. data/{lib → gem}/locales/en.yml +4 -4
  35. data/{lib → gem}/locales/es.yml +2 -2
  36. data/{lib → gem}/locales/fr.yml +4 -4
  37. data/{lib → gem}/locales/hr.yml +4 -4
  38. data/{lib → gem}/locales/id.yml +4 -4
  39. data/{lib → gem}/locales/it.yml +4 -4
  40. data/{lib → gem}/locales/ja.yml +4 -4
  41. data/{lib → gem}/locales/km.yml +4 -4
  42. data/{lib → gem}/locales/ko.yml +4 -4
  43. data/{lib → gem}/locales/nb.yml +4 -4
  44. data/{lib → gem}/locales/nl.yml +4 -4
  45. data/{lib → gem}/locales/nn.yml +4 -4
  46. data/{lib → gem}/locales/pl.yml +4 -4
  47. data/{lib → gem}/locales/pt-BR.yml +2 -2
  48. data/{lib → gem}/locales/pt.yml +2 -2
  49. data/{lib → gem}/locales/ru.yml +4 -4
  50. data/{lib → gem}/locales/sr.yml +4 -4
  51. data/{lib → gem}/locales/sv-SE.yml +4 -4
  52. data/{lib → gem}/locales/sv.yml +4 -4
  53. data/{lib → gem}/locales/sw.yml +4 -4
  54. data/{lib → gem}/locales/ta.yml +4 -4
  55. data/{lib → gem}/locales/tr.yml +4 -4
  56. data/{lib → gem}/locales/uk.yml +4 -4
  57. data/{lib → gem}/locales/vi.yml +4 -4
  58. data/{lib → gem}/locales/zh-CN.yml +4 -4
  59. data/{lib → gem}/locales/zh-HK.yml +4 -4
  60. data/{lib → gem}/locales/zh-TW.yml +4 -4
  61. data/{lib → gem}/stylesheets/pagy.css +19 -34
  62. data/{lib → gem}/stylesheets/pagy.scss +17 -19
  63. data/gem/stylesheets/pagy.tailwind.css +21 -0
  64. metadata +103 -90
  65. data/lib/javascripts/pagy.js +0 -1
  66. data/lib/locales/ckb.yml +0 -18
  67. data/lib/pagy/extras/bootstrap.rb +0 -108
  68. data/lib/pagy/extras/bulma.rb +0 -105
  69. data/lib/pagy/extras/foundation.rb +0 -105
  70. data/lib/pagy/extras/materialize.rb +0 -96
  71. data/lib/pagy/extras/navs.rb +0 -51
  72. data/lib/pagy/extras/semantic.rb +0 -95
  73. data/lib/pagy/extras/support.rb +0 -40
  74. data/lib/pagy/extras/trim.rb +0 -29
  75. data/lib/pagy/extras/uikit.rb +0 -97
  76. data/lib/pagy/frontend.rb +0 -114
  77. data/lib/stylesheets/pagy.tailwind.scss +0 -24
  78. /data/{lib → gem}/javascripts/pagy-module.d.ts +0 -0
  79. /data/{lib → gem/lib}/pagy/backend.rb +0 -0
  80. /data/{lib → gem/lib}/pagy/calendar/day.rb +0 -0
  81. /data/{lib → gem/lib}/pagy/calendar/helper.rb +0 -0
  82. /data/{lib → gem/lib}/pagy/calendar/month.rb +0 -0
  83. /data/{lib → gem/lib}/pagy/calendar/quarter.rb +0 -0
  84. /data/{lib → gem/lib}/pagy/calendar/week.rb +0 -0
  85. /data/{lib → gem/lib}/pagy/calendar/year.rb +0 -0
  86. /data/{lib → gem/lib}/pagy/calendar.rb +0 -0
  87. /data/{lib → gem/lib}/pagy/console.rb +0 -0
  88. /data/{lib → gem/lib}/pagy/countless.rb +0 -0
  89. /data/{lib → gem/lib}/pagy/exceptions.rb +0 -0
  90. /data/{lib → gem/lib}/pagy/extras/arel.rb +0 -0
  91. /data/{lib → gem/lib}/pagy/extras/array.rb +0 -0
  92. /data/{lib → gem/lib}/pagy/extras/calendar.rb +0 -0
  93. /data/{lib → gem/lib}/pagy/extras/countless.rb +0 -0
  94. /data/{lib → gem/lib}/pagy/extras/elasticsearch_rails.rb +0 -0
  95. /data/{lib → gem/lib}/pagy/extras/gearbox.rb +0 -0
  96. /data/{lib → gem/lib}/pagy/extras/headers.rb +0 -0
  97. /data/{lib → gem/lib}/pagy/extras/i18n.rb +0 -0
  98. /data/{lib → gem/lib}/pagy/extras/jsonapi.rb +0 -0
  99. /data/{lib → gem/lib}/pagy/extras/meilisearch.rb +0 -0
  100. /data/{lib → gem/lib}/pagy/extras/metadata.rb +0 -0
  101. /data/{lib → gem/lib}/pagy/extras/overflow.rb +0 -0
  102. /data/{lib → gem/lib}/pagy/extras/searchkick.rb +0 -0
  103. /data/{lib → gem/lib}/pagy/extras/standalone.rb +0 -0
  104. /data/{lib → gem/lib}/pagy/i18n.rb +0 -0
@@ -0,0 +1,96 @@
1
+ # See the Pagy documentation: https://ddnexus.github.io/pagy/docs/extras/uikit
2
+ # frozen_string_literal: true
3
+
4
+ require 'pagy/extras/js_tools'
5
+
6
+ class Pagy # :nodoc:
7
+ # Frontend modules are specially optimized for performance.
8
+ # The resulting code may not look very elegant, but produces the best benchmarks
9
+ module UikitExtra
10
+ # Pagination for uikit: it returns the html with the series of links to the pages
11
+ def pagy_uikit_nav(pagy, id: nil, aria_label: nil, **vars)
12
+ id = %( id="#{id}") if id
13
+ a = pagy_anchor(pagy)
14
+
15
+ html = %(<ul#{id} class="pagy-uikit nav uk-pagination uk-flex-center" role="navigation" #{
16
+ nav_aria_label(pagy, aria_label:)}>#{
17
+ uikit_prev_html(pagy, a)})
18
+ pagy.series(**vars).each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
19
+ html << case item
20
+ when Integer
21
+ %(<li>#{a.(item)}</li>)
22
+ when String
23
+ %(<li class="uk-active"><span role="link" aria-current="page" aria-disabled="true">#{
24
+ pagy.label_for(item)}</span></li>)
25
+ when :gap
26
+ %(<li class="uk-disabled"><span>#{pagy_t 'pagy.gap'}</span></li>)
27
+ else
28
+ raise InternalError, "expected item types in series to be Integer, String or :gap; got #{item.inspect}"
29
+ end
30
+ end
31
+ html << %(#{uikit_next_html(pagy, a)}</ul>)
32
+ end
33
+
34
+ # Javascript pagination for uikit: it returns a nav with a data-pagy attribute used by the pagy.js file
35
+ def pagy_uikit_nav_js(pagy, id: nil, aria_label: nil, **vars)
36
+ sequels = pagy.sequels(**vars)
37
+ id = %( id="#{id}") if id
38
+ a = pagy_anchor(pagy)
39
+ tokens = { 'before' => uikit_prev_html(pagy, a),
40
+ 'a' => %(<li>#{a.(PAGE_TOKEN, LABEL_TOKEN)}</li>),
41
+ 'current' => %(<li class="uk-active"><span role="link" aria-current="page" aria-disabled="true">#{
42
+ LABEL_TOKEN}</span></li>),
43
+ 'gap' => %(<li class="uk-disabled"><span>#{pagy_t 'pagy.gap'}</span></li>),
44
+ 'after' => uikit_next_html(pagy, a) }
45
+
46
+ %(<ul#{id} class="#{'pagy-rjs ' if sequels.size > 1}pagy-uikit nav-js uk-pagination uk-flex-center" role="navigation" #{
47
+ nav_aria_label(pagy, aria_label:)} #{
48
+ pagy_data(pagy, :nav, tokens, sequels, pagy.label_sequels(sequels))
49
+ }></ul>)
50
+ end
51
+
52
+ # Javascript combo pagination for uikit: it returns a nav with a data-pagy attribute used by the pagy.js file
53
+ def pagy_uikit_combo_nav_js(pagy, id: nil, aria_label: nil)
54
+ id = %( id="#{id}") if id
55
+ a = pagy_anchor(pagy)
56
+ pages = pagy.pages
57
+
58
+ page_input = %(<input name="page" type="number" min="1" max="#{pages}" value="#{pagy.page}" aria-current="page" ) <<
59
+ %(style="text-align: center; width: #{pages.to_s.length + 1}rem;">)
60
+
61
+ %(<ul#{id} class="pagy-uikit combo-nav-js uk-button-group uk-pagination uk-flex-center" role="navigation" #{
62
+ nav_aria_label(pagy, aria_label:)} #{
63
+ pagy_data(pagy, :combo, pagy_url_for(pagy, PAGE_TOKEN))
64
+ }>#{
65
+ uikit_prev_html(pagy, a)
66
+ }<li><label>#{
67
+ pagy_t('pagy.combo_nav_js', page_input:, pages:)
68
+ }</label></li>#{
69
+ uikit_next_html(pagy, a)
70
+ }</ul>)
71
+ end
72
+
73
+ private
74
+
75
+ def uikit_prev_html(pagy, a)
76
+ span = %(<span uk-pagination-previous></span>)
77
+ if (p_prev = pagy.prev)
78
+ %(<li>#{a.(p_prev, span, aria_label: pagy_t('pagy.aria_label.prev'))}</li>)
79
+ else
80
+ %(<li class="uk-disabled"><a role="link" aria-disabled="true" aria-label="#{
81
+ pagy_t('pagy.aria_label.prev')}">#{span}</a></li>)
82
+ end
83
+ end
84
+
85
+ def uikit_next_html(pagy, a)
86
+ span = %(<span uk-pagination-next></span>)
87
+ if (p_next = pagy.next)
88
+ %(<li>#{a.(p_next, span, aria_label: pagy_t('pagy.aria_label.prev'))}</li>)
89
+ else
90
+ %(<li class="uk-disabled"><a role="link" aria-disabled="true" aria-label="#{
91
+ pagy_t('pagy.aria_label.next')}">#{span}</a></li>)
92
+ end
93
+ end
94
+ end
95
+ Frontend.include UikitExtra
96
+ end
@@ -0,0 +1,97 @@
1
+ # See Pagy::Frontend API documentation: https://ddnexus.github.io/pagy/docs/api/frontend
2
+ # frozen_string_literal: true
3
+
4
+ require 'pagy/url_helpers'
5
+ require 'pagy/i18n'
6
+
7
+ class Pagy
8
+ # Used for search and replace, hardcoded also in the pagy.js file
9
+ PAGE_TOKEN = '__pagy_page__'
10
+ LABEL_TOKEN = '__pagy_label__'
11
+
12
+ # Frontend modules are specially optimized for performance.
13
+ # The resulting code may not look very elegant, but produces the best benchmarks
14
+ module Frontend
15
+ include UrlHelpers
16
+
17
+ # Generic pagination: it returns the html with the series of links to the pages
18
+ def pagy_nav(pagy, id: nil, aria_label: nil, **vars)
19
+ id = %( id="#{id}") if id
20
+ a = pagy_anchor(pagy)
21
+
22
+ html = %(<nav#{id} class="pagy nav" #{nav_aria_label(pagy, aria_label:)}>#{
23
+ prev_a(pagy, a)})
24
+ pagy.series(**vars).each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36]
25
+ html << case item
26
+ when Integer
27
+ a.(item)
28
+ when String
29
+ %(<a role="link" aria-disabled="true" aria-current="page" class="current">#{pagy.label_for(item)}</a>)
30
+ when :gap
31
+ %(<a role="link" aria-disabled="true" class="gap">#{pagy_t('pagy.gap')}</a>)
32
+ else
33
+ raise InternalError, "expected item types in series to be Integer, String or :gap; got #{item.inspect}"
34
+ end
35
+ end
36
+ html << %(#{next_a(pagy, a)}</nav>)
37
+ end
38
+
39
+ # Return examples: "Displaying items 41-60 of 324 in total" or "Displaying Products 41-60 of 324 in total"
40
+ def pagy_info(pagy, id: nil, item_name: nil)
41
+ id = %( id="#{id}") if id
42
+ p_count = pagy.count
43
+ key = if p_count.zero? then 'pagy.info.no_items'
44
+ elsif pagy.pages == 1 then 'pagy.info.single_page'
45
+ else 'pagy.info.multiple_pages' # rubocop:disable Lint/ElseLayout
46
+ end
47
+
48
+ %(<span#{id} class="pagy info">#{
49
+ pagy_t key, item_name: item_name || pagy_t('pagy.item_name', count: p_count),
50
+ count: p_count, from: pagy.from, to: pagy.to
51
+ }</span>)
52
+ end
53
+
54
+ # Return a performance optimized lambda to generate the HtML anchor element (a tag)
55
+ # Benchmarked on a 20 link nav: it is ~22x faster and uses ~18x less memory than rails' link_to
56
+ def pagy_anchor(pagy)
57
+ a_string = pagy.vars[:anchor_string]
58
+ a_string = %( #{a_string}) if a_string
59
+ left, right = %(<a#{a_string} href="#{pagy_url_for(pagy, PAGE_TOKEN)}").split(PAGE_TOKEN, 2)
60
+ # lambda used by all the helpers
61
+ lambda do |page, text = pagy.label_for(page), classes: nil, aria_label: nil|
62
+ classes = %( class="#{classes}") if classes
63
+ aria_label = %( aria-label="#{aria_label}") if aria_label
64
+ %(#{left}#{page}#{right}#{classes}#{aria_label}>#{text}</a>)
65
+ end
66
+ end
67
+
68
+ # Similar to I18n.t: just ~18x faster using ~10x less memory
69
+ # (@pagy_locale explicitly initialized in order to avoid warning)
70
+ def pagy_t(key, opts = {})
71
+ Pagy::I18n.translate(@pagy_locale ||= nil, key, opts)
72
+ end
73
+
74
+ private
75
+
76
+ def nav_aria_label(pagy, aria_label: nil)
77
+ aria_label ||= pagy_t('pagy.aria_label.nav', count: pagy.pages)
78
+ %(aria-label="#{aria_label}")
79
+ end
80
+
81
+ def prev_a(pagy, a, text: pagy_t('pagy.prev'), aria_label: pagy_t('pagy.aria_label.prev'))
82
+ if (p_prev = pagy.prev)
83
+ a.(p_prev, text, aria_label:)
84
+ else
85
+ %(<a role="link" aria-disabled="true" aria-label="#{aria_label}">#{text}</a>)
86
+ end
87
+ end
88
+
89
+ def next_a(pagy, a, text: pagy_t('pagy.next'), aria_label: pagy_t('pagy.aria_label.next'))
90
+ if (p_next = pagy.next)
91
+ a.(p_next, text, aria_label:)
92
+ else
93
+ %(<a role="link" aria-disabled="true" aria-label=#{aria_label}>#{text}</a>)
94
+ end
95
+ end
96
+ end
97
+ end
@@ -8,13 +8,12 @@ class Pagy
8
8
  # For non-rack environments you can use the standalone extra
9
9
  def pagy_url_for(pagy, page, absolute: false, **_)
10
10
  vars = pagy.vars
11
- request_path = vars[:request_path].to_s.empty? ? request.path : vars[:request_path]
12
11
  pagy_params = pagy.params.is_a?(Hash) ? pagy.params.transform_keys(&:to_s) : {}
13
12
  params = request.GET.merge(pagy_params)
14
13
  pagy_set_query_params(page, vars, params)
15
14
  params = pagy.params.call(params) if pagy.params.is_a?(Proc)
16
15
  query_string = "?#{Rack::Utils.build_nested_query(params)}"
17
- "#{request.base_url if absolute}#{request_path}#{query_string}#{vars[:fragment]}"
16
+ "#{request.base_url if absolute}#{vars[:request_path] || request.path}#{query_string}#{vars[:fragment]}"
18
17
  end
19
18
 
20
19
  # Add the page and items params
@@ -5,27 +5,28 @@ require 'pathname'
5
5
 
6
6
  # Core class
7
7
  class Pagy
8
- VERSION = '7.0.11'
8
+ VERSION = '8.0.1'
9
9
 
10
- # Root pathname to get the path of Pagy files like templates or dictionaries
10
+ # Gem root pathname to get the path of Pagy files stylesheets, javascripts, apps, locales, etc.
11
11
  def self.root
12
- @root ||= Pathname.new(__dir__).freeze
12
+ @root ||= Pathname.new(__dir__).parent.freeze
13
13
  end
14
14
 
15
- # Default core vars: constant for easy access, but mutable for customizable defaults
15
+ # Core defult: constant for easy access, but mutable for customizable defaults
16
16
  DEFAULT = { page: 1, # rubocop:disable Style/MutableConstant
17
17
  items: 20,
18
18
  outset: 0,
19
19
  size: 7,
20
- page_param: :page,
20
+ cycle: false,
21
+ # backend/collection
22
+ count_args: [:all], # AR friendly
23
+ # backend/url
21
24
  params: {},
25
+ page_param: :page,
22
26
  fragment: '',
23
- link_extra: '',
24
- item_i18n_key: 'pagy.item_name',
25
- nav_i18n_key: 'pagy.aria_label.nav',
26
- cycle: false,
27
- request_path: '',
28
- count_args: [:all] } # AR friendly
27
+ request_path: nil,
28
+ # frontend/helpers
29
+ anchor_string: nil }
29
30
 
30
31
  attr_reader :count, :page, :items, :vars, :pages, :last, :offset, :in, :from, :to, :prev, :next, :params, :request_path
31
32
 
@@ -24,7 +24,7 @@ ar:
24
24
  other: "عناصر"
25
25
  info:
26
26
  no_items: "لا يوجد %{item_name}"
27
- single_page: "عرض <b>%{count}</b> %{item_name}"
28
- multiple_pages: "عرض %{item_name} <b>%{from}-%{to}</b> من اجمالي <b>%{count}</b>"
27
+ single_page: "عرض %{count} %{item_name}"
28
+ multiple_pages: "عرض %{item_name} %{from}-%{to} من اجمالي %{count}"
29
29
  combo_nav_js: "الصفحة %{page_input} من %{pages}"
30
30
  items_selector_js: "عرض %{items_input} %{item_name} لكل صفحة"
@@ -19,7 +19,7 @@ be:
19
19
  other: "запісаў"
20
20
  info:
21
21
  no_items: "Пакуль %{item_name} няма"
22
- single_page: "<b>%{count}</b> %{item_name}"
23
- multiple_pages: "Усяго <b>%{count}</b> %{item_name}, паказаны з <b>%{from}</b> па <b>%{to}</b>"
24
- combo_nav_js: "<label>Старонка %{page_input} з %{pages}</label>"
25
- items_selector_js: "<label>Паказаць %{items_input} %{item_name} на старонцы</label>"
22
+ single_page: "%{count} %{item_name}"
23
+ multiple_pages: "Усяго %{count} %{item_name}, паказаны з %{from} па %{to}"
24
+ combo_nav_js: "Старонка %{page_input} з %{pages}"
25
+ items_selector_js: "Паказаць %{items_input} %{item_name} на старонцы"
@@ -15,7 +15,7 @@ bg:
15
15
  other: "резултати"
16
16
  info:
17
17
  no_items: "Няма намерени %{item_name}"
18
- single_page: "Показани са <b>%{count}</b> %{item_name}"
19
- multiple_pages: "Показани са %{item_name} <b>%{from}-%{to}</b> от <b>%{count}</b> общо"
20
- combo_nav_js: "<label>Страница %{page_input} от %{pages}</label>"
21
- items_selector_js: "<label>Покажи %{items_input} %{item_name} на страница</label>"
18
+ single_page: "Показани са %{count} %{item_name}"
19
+ multiple_pages: "Показани са %{item_name} %{from}-%{to} от %{count} общо"
20
+ combo_nav_js: "Страница %{page_input} от %{pages}"
21
+ items_selector_js: "Покажи %{items_input} %{item_name} на страница"
@@ -19,7 +19,7 @@ bs:
19
19
  other: "stavki"
20
20
  info:
21
21
  no_items: "Nije pronađena %{item_name}"
22
- single_page: "Prikazuje se <b>%{count}</b> %{item_name}"
23
- multiple_pages: "Prikaz %{item_name} <b>%{from}-%{to}</b> od <b>%{count}</b> ukupno"
24
- combo_nav_js: "<label>Stranica %{page_input} od %{pages}</label>"
25
- items_selector_js: "<label>Prikaži %{items_input} %{item_name} po stranici</label>"
22
+ single_page: "Prikazuje se %{count} %{item_name}"
23
+ multiple_pages: "Prikaz %{item_name} %{from}-%{to} od %{count} ukupno"
24
+ combo_nav_js: "Stranica %{page_input} od %{pages}"
25
+ items_selector_js: "Prikaži %{items_input} %{item_name} po stranici"
@@ -17,7 +17,7 @@ ca:
17
17
  other: "elements"
18
18
  info:
19
19
  no_items: "No s'ha trobat cap resultat"
20
- single_page: "Mostrant <b>%{count}</b> %{item_name}"
21
- multiple_pages: "Mostrant %{item_name} <b>%{from}-%{to}</b> de <b>%{count}</b> en total"
22
- combo_nav_js: "<label>Pàgina %{page_input} de %{pages}</label>"
23
- items_selector_js: "<label>Mostra %{items_input} %{item_name} per pàgina</label>"
20
+ single_page: "Mostrant %{count} %{item_name}"
21
+ multiple_pages: "Mostrant %{item_name} %{from}-%{to} de %{count} en total"
22
+ combo_nav_js: "Pàgina %{page_input} de %{pages}"
23
+ items_selector_js: "Mostra %{items_input} %{item_name} per pàgina"
@@ -0,0 +1,18 @@
1
+ # :other pluralization (see https://github.com/ddnexus/pagy/blob/master/lib/pagy/i18n.rb)
2
+
3
+ ckb:
4
+ pagy:
5
+ item_name: "بابەت"
6
+ aria_label:
7
+ nav: "پەڕەکان"
8
+ prev: "پاش"
9
+ next: "پێش"
10
+ prev: "&lt;"
11
+ next: "&gt;"
12
+ gap: "&hellip;"
13
+ info:
14
+ no_items: "هیچ %{item_name}ێک نەدۆزرایەوە"
15
+ single_page: "پیشاندانی %{count} %{item_name}"
16
+ multiple_pages: "پشاندانی %{item_name}ی %{from}-%{to} لە کۆی %{count} بە گشتی"
17
+ combo_nav_js: "پەڕی %{page_input} لە %{pages}"
18
+ items_selector_js: "نیشاندانی %{items_input} %{item_name} لە هەر پەڕێک"
@@ -17,7 +17,7 @@ cs:
17
17
  other: "položek"
18
18
  info:
19
19
  no_items: "Nic nebylo nalezeno"
20
- single_page: "Zobrazeno <b>%{count}</b> %{item_name}"
21
- multiple_pages: "Zobrazeny položky <b>%{from}-%{to}</b> z <b>%{count}</b> celkem"
22
- combo_nav_js: "<label>Strana %{page_input} z %{pages}</label>"
23
- items_selector_js: "<label>Zobrazit %{items_input} %{item_name} na stránce</label>"
20
+ single_page: "Zobrazeno %{count} %{item_name}"
21
+ multiple_pages: "Zobrazeny položky %{from}-%{to} z %{count} celkem"
22
+ combo_nav_js: "Strana %{page_input} z %{pages}"
23
+ items_selector_js: "Zobrazit %{items_input} %{item_name} na stránce"
@@ -17,7 +17,7 @@ da:
17
17
  other: "resultater"
18
18
  info:
19
19
  no_items: "Ingen %{item_name} fundet"
20
- single_page: "Viser <b>%{count}</b> %{item_name}"
21
- multiple_pages: "Viser %{item_name} <b>%{from}-%{to}</b> af <b>%{count}</b> totalt"
22
- combo_nav_js: "<label>Side %{page_input} af %{pages}</label>"
23
- items_selector_js: "<label>Antal %{items_input} %{item_name} per side</label>"
20
+ single_page: "Viser %{count} %{item_name}"
21
+ multiple_pages: "Viser %{item_name} %{from}-%{to} af %{count} totalt"
22
+ combo_nav_js: "Side %{page_input} af %{pages}"
23
+ items_selector_js: "Antal %{items_input} %{item_name} per side"
@@ -15,7 +15,7 @@ de:
15
15
  other: "Einträge"
16
16
  info:
17
17
  no_items: "Keine %{item_name} gefunden"
18
- single_page: "Zeige <b>%{count}</b> %{item_name}"
19
- multiple_pages: "Zeige %{item_name} <b>%{from}-%{to}</b> von <b>%{count}</b> gesamt"
20
- combo_nav_js: "<label>Seite %{page_input} von %{pages}</label>"
21
- items_selector_js: "<label>Zeige %{items_input} %{item_name} pro Seite</label>"
18
+ single_page: "Zeige %{count} %{item_name}"
19
+ multiple_pages: "Zeige %{item_name} %{from}-%{to} von %{count} gesamt"
20
+ combo_nav_js: "Seite %{page_input} von %{pages}"
21
+ items_selector_js: "Zeige %{items_input} %{item_name} pro Seite"
@@ -15,7 +15,7 @@ en:
15
15
  other: "items"
16
16
  info:
17
17
  no_items: "No %{item_name} found"
18
- single_page: "Displaying <b>%{count}</b> %{item_name}"
19
- multiple_pages: "Displaying %{item_name} <b>%{from}-%{to}</b> of <b>%{count}</b> in total"
20
- combo_nav_js: "<label>Page %{page_input} of %{pages}</label>"
21
- items_selector_js: "<label>Show %{items_input} %{item_name} per page</label>"
18
+ single_page: "Displaying %{count} %{item_name}"
19
+ multiple_pages: "Displaying %{item_name} %{from}-%{to} of %{count} in total"
20
+ combo_nav_js: "Page %{page_input} of %{pages}"
21
+ items_selector_js: "Show %{items_input} %{item_name} per page"
@@ -17,5 +17,5 @@ es:
17
17
  no_items: "Sin resultados"
18
18
  single_page: "Mostrando %{count} %{item_name}"
19
19
  multiple_pages: "Mostrando %{item_name} %{from}-%{to} de %{count} en total"
20
- combo_nav_js: "<label>Página %{page_input} de %{pages}</label>"
21
- items_selector_js: "<label>Mostrar %{items_input} %{item_name} por página</label>"
20
+ combo_nav_js: "Página %{page_input} de %{pages}"
21
+ items_selector_js: "Mostrar %{items_input} %{item_name} por página"
@@ -15,7 +15,7 @@ fr:
15
15
  other: "éléments"
16
16
  info:
17
17
  no_items: "Aucun %{item_name} trouvé"
18
- single_page: "Affichage de <b>%{count}</b> %{item_name}"
19
- multiple_pages: "Affichage des %{item_name} <b>%{from} à %{to}</b> sur <b>%{count}</b> au total"
20
- combo_nav_js: "<label>Page %{page_input} sur %{pages}</label>"
21
- items_selector_js: "<label>Afficher %{items_input} %{item_name} par page</label>"
18
+ single_page: "Affichage de %{count} %{item_name}"
19
+ multiple_pages: "Affichage des %{item_name} %{from} à %{to} sur %{count} au total"
20
+ combo_nav_js: "Page %{page_input} sur %{pages}"
21
+ items_selector_js: "Afficher %{items_input} %{item_name} par page"
@@ -19,7 +19,7 @@ hr:
19
19
  other: "stavki"
20
20
  info:
21
21
  no_items: "Nije pronađena %{item_name}"
22
- single_page: "Prikazuje se <b>%{count}</b> %{item_name}"
23
- multiple_pages: "Prikaz %{item_name} <b>%{from}-%{to}</b> od <b>%{count}</b> ukupno"
24
- combo_nav_js: "<label>Stranica %{page_input} od %{pages}</label>"
25
- items_selector_js: "<label>Prikaži %{items_input} %{item_name} po stranici</label>"
22
+ single_page: "Prikazuje se %{count} %{item_name}"
23
+ multiple_pages: "Prikaz %{item_name} %{from}-%{to} od %{count} ukupno"
24
+ combo_nav_js: "Stranica %{page_input} od %{pages}"
25
+ items_selector_js: "Prikaži %{items_input} %{item_name} po stranici"
@@ -13,7 +13,7 @@ id:
13
13
  item_name: "item"
14
14
  info:
15
15
  no_items: "Tidak ditemukan %{item_name}"
16
- single_page: "Menampilkan <b>%{count}</b> %{item_name}"
17
- multiple_pages: "Menampilkan %{item_name} <b>%{from}-%{to}</b> dari total <b>%{count}</b>"
18
- combo_nav_js: "<label>Halaman %{page_input} dari %{pages}</label>"
19
- items_selector_js: "<label>Tampilkan %{items_input} %{item_name} per halaman</label>"
16
+ single_page: "Menampilkan %{count} %{item_name}"
17
+ multiple_pages: "Menampilkan %{item_name} %{from}-%{to} dari total %{count}"
18
+ combo_nav_js: "Halaman %{page_input} dari %{pages}"
19
+ items_selector_js: "Tampilkan %{items_input} %{item_name} per halaman"
@@ -15,7 +15,7 @@ it:
15
15
  other: "elementi"
16
16
  info:
17
17
  no_items: "Nessun %{item_name} trovato"
18
- single_page: "Visualizzazione di <b>%{count}</b> %{item_name}"
19
- multiple_pages: "Visualizzazione %{item_name} <b>%{from}-%{to}</b> di <b>%{count}</b> in totale"
20
- combo_nav_js: "<label>Pagina %{page_input} di %{pages}</label>"
21
- items_selector_js: "<label>Mostra %{items_input} %{item_name} per pagina</label>"
18
+ single_page: "Visualizzazione di %{count} %{item_name}"
19
+ multiple_pages: "Visualizzazione %{item_name} %{from}-%{to} di %{count} in totale"
20
+ combo_nav_js: "Pagina %{page_input} di %{pages}"
21
+ items_selector_js: "Mostra %{items_input} %{item_name} per pagina"
@@ -13,7 +13,7 @@ ja:
13
13
  item_name: "結果"
14
14
  info:
15
15
  no_items: "見つかりませんでした"
16
- single_page: "<b>%{count}</b> 件の%{item_name}"
17
- multiple_pages: "<b>%{count}</b> 件中 <b>%{from}-%{to}</b> 件目の%{item_name}を表示中"
18
- combo_nav_js: "<label>%{page_input} / %{pages} ページ</label>"
19
- items_selector_js: "<label>%{items_input} 件ずつ表示</label>"
16
+ single_page: "%{count} 件の%{item_name}"
17
+ multiple_pages: "%{count} 件中 %{from}-%{to} 件目の%{item_name}を表示中"
18
+ combo_nav_js: "%{page_input} / %{pages} ページ"
19
+ items_selector_js: "%{items_input} 件ずつ表示"
@@ -13,7 +13,7 @@ km:
13
13
  item_name: "ធាតុ"
14
14
  info:
15
15
  no_items: "មិនមាន %{item_name} ទេ"
16
- single_page: "បង្ហាញ <b>%{count}</b> %{item_name}"
17
- multiple_pages: "បង្ហាញ %{item_name} <b>%{from}-%{to}</b> នៃ <b>%{count}</b> ជាចំនួនសរុប"
18
- combo_nav_js: "<label>ទំព័រ %{page_input} នៃ %{pages}</label>"
19
- items_selector_js: "<label>បង្ហាញ %{items_input} %{item_name} ក្នុង ១ ទំព័រ</label>"
16
+ single_page: "បង្ហាញ %{count} %{item_name}"
17
+ multiple_pages: "បង្ហាញ %{item_name} %{from}-%{to} នៃ %{count} ជាចំនួនសរុប"
18
+ combo_nav_js: "ទំព័រ %{page_input} នៃ %{pages}"
19
+ items_selector_js: "បង្ហាញ %{items_input} %{item_name} ក្នុង ១ ទំព័រ"
@@ -13,7 +13,7 @@ ko:
13
13
  item_name: "항목"
14
14
  info:
15
15
  no_items: "%{item_name} 없음"
16
- single_page: "<b>%{count}</b>개의 %{item_name} 표시됨"
17
- multiple_pages: "총 <b>%{count}</b>개의 %{item_name} 중 <b>%{from}-%{to}</b>"
18
- combo_nav_js: "<label>총 %{pages} 중 %{page_input} 페이지</label>"
19
- items_selector_js: "<label>페이지 당 %{items_input}개 표시%</label>"
16
+ single_page: "%{count}개의 %{item_name} 표시됨"
17
+ multiple_pages: "총 %{count}개의 %{item_name} 중 %{from}-%{to}"
18
+ combo_nav_js: " %{pages} 중 %{page_input} 페이지"
19
+ items_selector_js: "페이지 당 %{items_input}개 표시%"
@@ -15,7 +15,7 @@ nb:
15
15
  other: "resultater"
16
16
  info:
17
17
  no_items: "Ingen %{item_name} funnet"
18
- single_page: "Viser <b>%{count}</b> %{item_name}"
19
- multiple_pages: "Viser %{item_name} <b>%{from}-%{to}</b> av totalt <b>%{count}</b>"
20
- combo_nav_js: "<label>Side %{page_input} av %{pages}</label>"
21
- items_selector_js: "<label>Vis %{items_input} %{item_name} per side</label>"
18
+ single_page: "Viser %{count} %{item_name}"
19
+ multiple_pages: "Viser %{item_name} %{from}-%{to} av totalt %{count}"
20
+ combo_nav_js: "Side %{page_input} av %{pages}"
21
+ items_selector_js: "Vis %{items_input} %{item_name} per side"
@@ -15,7 +15,7 @@ nl:
15
15
  other: "stuks"
16
16
  info:
17
17
  no_items: "Geen %{item_name} gevonden"
18
- single_page: "Toont <b>%{count}</b> %{item_name}"
19
- multiple_pages: "Toont <b>%{from}-%{to}</b> %{item_name} van <b>%{count}</b> in totaal"
20
- combo_nav_js: "<label>Pagina %{page_input} van %{pages}</label>"
21
- items_selector_js: "<label>Toont %{items_input} %{item_name} per pagina</label>"
18
+ single_page: "Toont %{count} %{item_name}"
19
+ multiple_pages: "Toont %{from}-%{to} %{item_name} van %{count} in totaal"
20
+ combo_nav_js: "Pagina %{page_input} van %{pages}"
21
+ items_selector_js: "Toont %{items_input} %{item_name} per pagina"
@@ -15,7 +15,7 @@ nn:
15
15
  other: "resultat"
16
16
  info:
17
17
  no_items: "Ingen %{item_name} funne"
18
- single_page: "Viser <b>%{count}</b> %{item_name}"
19
- multiple_pages: "Viser %{item_name} <b>%{from}-%{to}</b> av totalt <b>%{count}</b>"
20
- combo_nav_js: "<label>Side %{page_input} av %{pages}</label>"
21
- items_selector_js: "<label>Vis %{items_input} %{item_name} per side</label>"
18
+ single_page: "Viser %{count} %{item_name}"
19
+ multiple_pages: "Viser %{item_name} %{from}-%{to} av totalt %{count}"
20
+ combo_nav_js: "Side %{page_input} av %{pages}"
21
+ items_selector_js: "Vis %{items_input} %{item_name} per side"
@@ -19,7 +19,7 @@ pl:
19
19
  other: "elementów"
20
20
  info:
21
21
  no_items: "Nie znaleziono %{item_name}"
22
- single_page: "Wyświetlono <b>%{count}</b> %{item_name}"
23
- multiple_pages: "Wyświetlono %{item_name} <b>%{from}-%{to}</b> z wszystkich <b>%{count}</b>"
24
- combo_nav_js: "<label>Strona %{page_input} z %{pages}</label>"
25
- items_selector_js: "<label>Pokaż %{items_input} %{item_name} na stronie</label>"
22
+ single_page: "Wyświetlono %{count} %{item_name}"
23
+ multiple_pages: "Wyświetlono %{item_name} %{from}-%{to} z wszystkich %{count}"
24
+ combo_nav_js: "Strona %{page_input} z %{pages}"
25
+ items_selector_js: "Pokaż %{items_input} %{item_name} na stronie"
@@ -17,5 +17,5 @@ pt-BR:
17
17
  no_items: "Sem resultados"
18
18
  single_page: "Mostrando %{count} %{item_name}"
19
19
  multiple_pages: "Mostrando %{item_name} %{from}-%{to} do total de %{count}"
20
- combo_nav_js: "<label>Página %{page_input} de %{pages}</label>"
21
- items_selector_js: "<label>Mostrar %{items_input} %{item_name} por página</label>"
20
+ combo_nav_js: "Página %{page_input} de %{pages}"
21
+ items_selector_js: "Mostrar %{items_input} %{item_name} por página"
@@ -17,5 +17,5 @@ pt:
17
17
  no_items: "Sem resultados"
18
18
  single_page: "Mostrando %{count} %{item_name}"
19
19
  multiple_pages: "Mostrando %{item_name} %{from}-%{to} de um total de %{count}"
20
- combo_nav_js: "<label>Página %{page_input} de %{pages}</label>"
21
- items_selector_js: "<label>Mostrar %{items_input} %{item_name} por página</label>"
20
+ combo_nav_js: "Página %{page_input} de %{pages}"
21
+ items_selector_js: "Mostrar %{items_input} %{item_name} por página"
@@ -21,7 +21,7 @@ ru:
21
21
  other: "записей"
22
22
  info:
23
23
  no_items: "Пока %{item_name} нет"
24
- single_page: "<b>%{count}</b> %{item_name}"
25
- multiple_pages: "Всего <b>%{count}</b> %{item_name}, показаны с <b>%{from}</b> по <b>%{to}</b>"
26
- combo_nav_js: "<label>Страница %{page_input} из %{pages}</label>"
27
- items_selector_js: "<label>Показать %{items_input} %{item_name} на странице</label>"
24
+ single_page: "%{count} %{item_name}"
25
+ multiple_pages: "Всего %{count} %{item_name}, показаны с %{from} по %{to}"
26
+ combo_nav_js: "Страница %{page_input} из %{pages}"
27
+ items_selector_js: "Показать %{items_input} %{item_name} на странице"
@@ -19,7 +19,7 @@ sr:
19
19
  other: "ставки"
20
20
  info:
21
21
  no_items: "Нema пронађених %{item_name}"
22
- single_page: "Приказује се <b>%{count}</b> %{item_name}"
23
- multiple_pages: "Приказ %{item_name} <b>%{from}-%{to}</b> од <b>%{count}</b> укупно"
24
- combo_nav_js: "<label>Страниca %{page_input} од %{pages}</label>"
25
- items_selector_js: "<label>Прикажи %{items_input} %{item_name} по страниcи</label>"
22
+ single_page: "Приказује се %{count} %{item_name}"
23
+ multiple_pages: "Приказ %{item_name} %{from}-%{to} од %{count} укупно"
24
+ combo_nav_js: "Страниca %{page_input} од %{pages}"
25
+ items_selector_js: "Прикажи %{items_input} %{item_name} по страниcи"
@@ -15,7 +15,7 @@ sv-SE:
15
15
  other: "resultat"
16
16
  info:
17
17
  no_items: "Inga %{item_name} hittade"
18
- single_page: "Visar <b>%{count}</b> %{item_name}"
19
- multiple_pages: "Visar %{item_name} <b>%{from}-%{to}</b> av <b>%{count}</b> totalt"
20
- combo_nav_js: "<label>Sida %{page_input} av %{pages}</label>"
21
- items_selector_js: "<label>Visa %{items_input} %{item_name} per sida</label>"
18
+ single_page: "Visar %{count} %{item_name}"
19
+ multiple_pages: "Visar %{item_name} %{from}-%{to} av %{count} totalt"
20
+ combo_nav_js: "Sida %{page_input} av %{pages}"
21
+ items_selector_js: "Visa %{items_input} %{item_name} per sida"
@@ -15,7 +15,7 @@ sv:
15
15
  other: "resultat"
16
16
  info:
17
17
  no_items: "Inga %{item_name} hittade"
18
- single_page: "Visar <b>%{count}</b> %{item_name}"
19
- multiple_pages: "Visar %{item_name} <b>%{from}-%{to}</b> av <b>%{count}</b> totalt"
20
- combo_nav_js: "<label>Sida %{page_input} av %{pages}</label>"
21
- items_selector_js: "<label>Visa %{items_input} %{item_name} per sida</label>"
18
+ single_page: "Visar %{count} %{item_name}"
19
+ multiple_pages: "Visar %{item_name} %{from}-%{to} av %{count} totalt"
20
+ combo_nav_js: "Sida %{page_input} av %{pages}"
21
+ items_selector_js: "Visa %{items_input} %{item_name} per sida"