pagy 3.7.0 → 3.7.5
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/lib/config/pagy.rb +1 -1
- data/lib/javascripts/pagy.js +1 -1
- data/lib/locales/README.md +9 -2
- data/lib/locales/da.yml +22 -0
- data/lib/locales/{pt-br.yml → pt-BR.yml} +1 -1
- data/lib/locales/sv-SE.yml +23 -0
- data/lib/locales/{se.yml → sv.yml} +1 -1
- data/lib/locales/utils/i18n.rb +12 -5
- data/lib/locales/utils/loader.rb +5 -0
- data/lib/locales/utils/p11n.rb +9 -8
- data/lib/pagy.rb +1 -1
- data/lib/pagy/extras/arel.rb +1 -1
- data/lib/pagy/extras/bootstrap.rb +2 -2
- data/lib/pagy/extras/headers.rb +4 -4
- data/lib/templates/bootstrap_nav.html.erb +1 -1
- data/lib/templates/bootstrap_nav.html.haml +1 -1
- data/lib/templates/bootstrap_nav.html.slim +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1294620f428cf3807db1ab558bebf4bc01cc43d1e5d1fce668eec802b8a3088
|
4
|
+
data.tar.gz: '094b895627f5bb472d952fbc8e078a23d9f830cc2f2b629945733853e83ef1ce'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a041ca4fad15e46930d178ff9f86c20d66f60408d0ca270d127e615fca4ea29529a04e376905b45742405240b8d55438fbb4be4b60fe9c400171cce222eac64
|
7
|
+
data.tar.gz: bd9f46987b98a2d83e8a03f3e16cf9f02272cbb9177d74e7a2b3e6eca30dcc20b1ed901d5d59a240a521decb0b359c9d5f5be21e10dbf1e970e67e5fc0499e21
|
data/lib/config/pagy.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
# Pagy initializer file (3.7.
|
4
|
+
# Pagy initializer file (3.7.5)
|
5
5
|
# Customize only what you really need and notice that Pagy works also without any of the following lines.
|
6
6
|
# Should you just cherry pick part of this file, please maintain the require-order of the extras
|
7
7
|
|
data/lib/javascripts/pagy.js
CHANGED
data/lib/locales/README.md
CHANGED
@@ -11,13 +11,20 @@ You can create a Pull Request for your language, and get all the help you need t
|
|
11
11
|
### Check list for a new dictionary file:
|
12
12
|
|
13
13
|
- [ ] Find the pluralization rule for your language
|
14
|
-
|
14
|
+
|
15
|
+
- [ ] Find the locale file you need in the [list of pluralizations](https://github.com/svenfuchs/rails-i18n/tree/master/rails/pluralization) and check the pluralization rule in it. For example it is `::RailsI18n::Pluralization::OneOther.with_locale(:en)` for `en.rb`. Note the rule part i.e. `OneOther`. In pagy that translates to the symbol `:one_other`.
|
16
|
+
|
17
|
+
- [ ] If the pluralization rule of your language is not the `:one_other` default, confirm that the [p11n.rb](https://github.com/ddnexus/pagy/blob/master/lib/locales/utils/p11n.rb) file already defines the pluralization rule of your dictionary file:
|
18
|
+
|
19
|
+
- [ ] If the rule is not defined, you can either: a) Add the rule as a new rule/lambda entry in the `p11n` variable hash and relative tests or b) Just create an issue requesting the addition to the rule/lambda entry and tests.
|
20
|
+
|
21
|
+
- [ ] Add your language to the `plurals` hash in the file.
|
15
22
|
|
16
23
|
- [ ] add/edit the first line comment in the language rule in your dictionary file (e.g. `# :one_other pluralization ...`
|
17
24
|
|
18
25
|
- [ ] The mandatory pluralized entry in the dictionary file is the `item_name`. Please, provide all the plurals needed by your language. E.g. if your language uses the `:east_slavic` you should provide the plurals for `one`, `few`, `many` and `other`, if it uses `:one_other`, you should provide `one` and `other` plurals. If it uses `:other` you should only provide a single value. Look into other dictionary files to get some example. Ask if in doubt.
|
19
26
|
|
20
|
-
- [ ] The other entries in the dictionary file don't need any plural variant in most languages since the pluralization of the `item_name` in the sentence is enough. However, in some language,
|
27
|
+
- [ ] The other entries in the dictionary file don't need any plural variant in most languages since the pluralization of the `item_name` in the sentence is enough. However, in some language, a whole sentence might need to be written in different ways for different counts. In that case you should add the different plurals for the sentence and the `count` will trigger the one that applies.
|
21
28
|
|
22
29
|
Feel free to ask for help in your Pull Request.
|
23
30
|
|
data/lib/locales/da.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# :one_other pluralization (see https://github.com/ddnexus/pagy/blob/master/lib/locales/utils/p11n.rb)
|
2
|
+
|
3
|
+
da:
|
4
|
+
pagy:
|
5
|
+
|
6
|
+
item_name:
|
7
|
+
one: "resultat"
|
8
|
+
other: "resultater"
|
9
|
+
|
10
|
+
nav:
|
11
|
+
prev: "‹ Forrige"
|
12
|
+
next: "Næste ›"
|
13
|
+
gap: "…"
|
14
|
+
|
15
|
+
info:
|
16
|
+
no_items: "Ingen %{item_name} fundet"
|
17
|
+
single_page: "Viser <b>%{count}</b> %{item_name}"
|
18
|
+
multiple_pages: "Viser %{item_name} <b>%{from}-%{to}</b> til <b>%{count}</b> totalt"
|
19
|
+
|
20
|
+
combo_nav_js: "Side %{page_input} of %{pages}"
|
21
|
+
|
22
|
+
items_selector_js: "Antal %{items_input} %{item_name} per side"
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# :one_two_other pluralization (see https://github.com/ddnexus/pagy/blob/master/lib/locales/utils/p11n.rb)
|
2
|
+
|
3
|
+
sv-SE:
|
4
|
+
pagy:
|
5
|
+
|
6
|
+
item_name:
|
7
|
+
one: "resultat"
|
8
|
+
two: "resultat"
|
9
|
+
other: "resultat"
|
10
|
+
|
11
|
+
nav:
|
12
|
+
prev: "‹ Föregående"
|
13
|
+
next: "Nästa ›"
|
14
|
+
gap: "…"
|
15
|
+
|
16
|
+
info:
|
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
|
+
|
21
|
+
combo_nav_js: "Sida %{page_input} av %{pages}"
|
22
|
+
|
23
|
+
items_selector_js: "Visa %{items_input} %{item_name} per sida"
|
data/lib/locales/utils/i18n.rb
CHANGED
@@ -4,15 +4,22 @@
|
|
4
4
|
|
5
5
|
# this file returns the I18n hash used as default alternative to the i18n gem
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
Pagy::DEPRECATED_LOCALES = {'pt-br' =>'pt-BR', 'se' => 'sv-SE'}
|
8
|
+
|
9
|
+
Hash.new{|h,_| h.first[1]}.tap do |i18n_hash| # first loaded locale used as default
|
10
|
+
i18n_hash.define_singleton_method(:load) do |*load_args|
|
9
11
|
# eval: we don't need to keep the loader proc in memory
|
10
|
-
eval(Pagy.root.join('locales', 'utils', 'loader.rb').read).call(
|
12
|
+
eval(Pagy.root.join('locales', 'utils', 'loader.rb').read).call(i18n_hash, *load_args) #rubocop:disable Security/Eval
|
11
13
|
end
|
12
|
-
|
14
|
+
i18n_hash.define_singleton_method(:t) do |locale, path, vars={}|
|
15
|
+
if Pagy::DEPRECATED_LOCALES.key?(locale)
|
16
|
+
new_locale = Pagy::DEPRECATED_LOCALES[locale]
|
17
|
+
$stderr.puts("WARNING: the Pagy locale '#{locale}' is deprecated; use '#{new_locale}' instead")
|
18
|
+
locale = new_locale
|
19
|
+
end
|
13
20
|
data, pluralize = self[locale]
|
14
21
|
translate = data[path] || vars[:count] && data[path+=".#{pluralize.call(vars[:count])}"] or return %([translation missing: "#{path}"])
|
15
22
|
translate.call(vars)
|
16
23
|
end
|
17
|
-
|
24
|
+
i18n_hash.load(locale: 'en')
|
18
25
|
end
|
data/lib/locales/utils/loader.rb
CHANGED
@@ -20,6 +20,11 @@ flatten = lambda do |hash, key=''|
|
|
20
20
|
lambda do |i18n, *args|
|
21
21
|
i18n.clear
|
22
22
|
args.each do |arg|
|
23
|
+
if Pagy::DEPRECATED_LOCALES.key?(arg[:locale])
|
24
|
+
new_locale = Pagy::DEPRECATED_LOCALES[arg[:locale]]
|
25
|
+
$stderr.puts("WARNING: the Pagy locale '#{arg[:locale]}' is deprecated; use '#{new_locale}' instead")
|
26
|
+
arg[:locale] = new_locale
|
27
|
+
end
|
23
28
|
arg[:filepath] ||= Pagy.root.join('locales', "#{arg[:locale]}.yml")
|
24
29
|
arg[:pluralize] ||= plurals[arg[:locale]]
|
25
30
|
hash = YAML.load(File.read(arg[:filepath], encoding: 'UTF-8')) #rubocop:disable Security/YAMLLoad
|
data/lib/locales/utils/p11n.rb
CHANGED
@@ -60,14 +60,15 @@ p11n = {
|
|
60
60
|
# The default pluralization for locales not explicitly listed here
|
61
61
|
# is the :one_other pluralization proc (used for English)
|
62
62
|
plurals = Hash.new(p11n[:one_other]).tap do |hash|
|
63
|
-
hash['id']
|
64
|
-
hash['fr']
|
65
|
-
hash['ja']
|
66
|
-
hash['ko']
|
67
|
-
hash['pl']
|
68
|
-
hash['ru']
|
69
|
-
hash['
|
70
|
-
hash['
|
63
|
+
hash['id'] = p11n[:other]
|
64
|
+
hash['fr'] = p11n[:one_upto_two_other]
|
65
|
+
hash['ja'] = p11n[:other]
|
66
|
+
hash['ko'] = p11n[:other]
|
67
|
+
hash['pl'] = p11n[:polish]
|
68
|
+
hash['ru'] = p11n[:east_slavic]
|
69
|
+
hash['sv'] = p11n[:one_two_other]
|
70
|
+
hash['sv-SE'] = p11n[:one_two_other]
|
71
|
+
hash['tr'] = p11n[:other]
|
71
72
|
hash['zh-CN'] = p11n[:other]
|
72
73
|
hash['zh-HK'] = p11n[:other]
|
73
74
|
hash['zh-TW'] = p11n[:other]
|
data/lib/pagy.rb
CHANGED
data/lib/pagy/extras/arel.rb
CHANGED
@@ -21,7 +21,7 @@ class Pagy
|
|
21
21
|
end
|
22
22
|
html << (p_next ? %(<li class="page-item next">#{link.call p_next, pagy_t('pagy.nav.next'), 'aria-label="next"'}</li>)
|
23
23
|
: %(<li class="page-item next disabled"><a href="#" class="page-link">#{pagy_t('pagy.nav.next')}</a></li>))
|
24
|
-
%(<nav class="pagy-bootstrap-nav
|
24
|
+
%(<nav class="pagy-bootstrap-nav" role="navigation" aria-label="pager"><ul class="pagination">#{html}</ul></nav>)
|
25
25
|
end
|
26
26
|
|
27
27
|
# Javascript pagination for bootstrap: it returns a nav and a JSON tag used by the Pagy.nav javascript
|
@@ -34,7 +34,7 @@ class Pagy
|
|
34
34
|
'gap' => %(<li class="page-item gap disabled"><a href="#" class="page-link">#{pagy_t('pagy.nav.gap')}</a></li>),
|
35
35
|
'after' => p_next ? %(<li class="page-item next">#{link.call p_next, pagy_t('pagy.nav.next'), 'aria-label="next"'}</li></ul>)
|
36
36
|
: %(<li class="page-item next disabled"><a href="#" class="page-link">#{pagy_t('pagy.nav.next')}</a></li></ul>) }
|
37
|
-
%(<nav id="#{id}" class="pagy-bootstrap-nav-js
|
37
|
+
%(<nav id="#{id}" class="pagy-bootstrap-nav-js" role="navigation" aria-label="pager"></nav>#{pagy_json_tag(:nav, id, tags, pagy.sequels, defined?(TRIM) && pagy.vars[:page_param])})
|
38
38
|
end
|
39
39
|
|
40
40
|
# Javascript combo pagination for bootstrap: it returns a nav and a JSON tag used by the Pagy.combo_nav javascript
|
data/lib/pagy/extras/headers.rb
CHANGED
@@ -26,11 +26,11 @@ class Pagy
|
|
26
26
|
url_str = pagy_url_for(PAGE_PLACEHOLDER, pagy, :url)
|
27
27
|
hash = { 'Link' => Hash[rels.map{|rel, n|[rel, url_str.sub(PAGE_PLACEHOLDER, n.to_s)] if n}.compact] }
|
28
28
|
headers = pagy.vars[:headers]
|
29
|
-
hash[headers[:page]] = pagy.page if headers[:page]
|
30
|
-
hash[headers[:items]] = pagy.vars[:items] if headers[:items]
|
29
|
+
hash[headers[:page]] = pagy.page.to_s if headers[:page]
|
30
|
+
hash[headers[:items]] = pagy.vars[:items].to_s if headers[:items]
|
31
31
|
unless countless
|
32
|
-
hash[headers[:pages]] = pagy.pages if headers[:pages]
|
33
|
-
hash[headers[:count]] = pagy.count if headers[:count]
|
32
|
+
hash[headers[:pages]] = pagy.pages.to_s if headers[:pages]
|
33
|
+
hash[headers[:count]] = pagy.count.to_s if headers[:count]
|
34
34
|
end
|
35
35
|
hash
|
36
36
|
end
|
@@ -6,7 +6,7 @@
|
|
6
6
|
Usage: link.call( page_number [, text [, extra_attributes_string ]])
|
7
7
|
-%>
|
8
8
|
<% link = pagy_link_proc(pagy, 'class="page-link"') -%>
|
9
|
-
<%# -%><nav aria-label="pager" class="pagy-bootstrap-nav
|
9
|
+
<%# -%><nav aria-label="pager" class="pagy-bootstrap-nav" role="navigation">
|
10
10
|
<%# -%> <ul class="pagination">
|
11
11
|
<% if pagy.prev -%> <li class="page-item prev"><%== link.call(pagy.prev, pagy_t('pagy.nav.prev'), 'aria-label="previous"') %></li>
|
12
12
|
<% else -%> <li class="page-item prev disabled"><a href="#" class="page-link"><%== pagy_t('pagy.nav.prev') %></a></li>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pagy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.7.
|
4
|
+
version: 3.7.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Domizio Demichelis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: 'Agnostic pagination in plain ruby: it works with any framework, ORM
|
14
14
|
and DB type, with all kinds of collections, even pre-paginated, scopes, Arrays,
|
@@ -25,6 +25,7 @@ files:
|
|
25
25
|
- lib/locales/README.md
|
26
26
|
- lib/locales/bg.yml
|
27
27
|
- lib/locales/ca.yml
|
28
|
+
- lib/locales/da.yml
|
28
29
|
- lib/locales/de.yml
|
29
30
|
- lib/locales/en.yml
|
30
31
|
- lib/locales/es.yml
|
@@ -36,9 +37,10 @@ files:
|
|
36
37
|
- lib/locales/nb.yml
|
37
38
|
- lib/locales/nl.yml
|
38
39
|
- lib/locales/pl.yml
|
39
|
-
- lib/locales/pt-
|
40
|
+
- lib/locales/pt-BR.yml
|
40
41
|
- lib/locales/ru.yml
|
41
|
-
- lib/locales/
|
42
|
+
- lib/locales/sv-SE.yml
|
43
|
+
- lib/locales/sv.yml
|
42
44
|
- lib/locales/tr.yml
|
43
45
|
- lib/locales/utils/i18n.rb
|
44
46
|
- lib/locales/utils/loader.rb
|