french_rails 0.4.0 → 0.4.1
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 +5 -5
- data/lib/french_rails/action_view/text_helper.rb +9 -5
- data/lib/french_rails/backend/simple.rb +5 -4
- data/lib/french_rails/version.rb +1 -1
- data/locales/fr_actionpack.yml +34 -24
- data/locales/fr_activemodel.yml +14 -14
- data/locales/fr_activerecord.yml +6 -6
- data/locales/fr_activesupport.yml +5 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3e2888ca30f9ed939389c3282c756567fba7997cdde2db4814e8b495944d4e13
|
4
|
+
data.tar.gz: 3ff345ce4eb02147ae4e260dad0acecd7cecb8cf31c9c494cf30f9c8968a6904
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5167fdb710dc6f648eab690a81aa65f73cea356c32764ead5897245fac4d4aadce874a53c3d83ef3b3f3c0ccc4996fa513533967d8c317694cee63f70881bbb0
|
7
|
+
data.tar.gz: 8289a67070e1915000972c206b67f9c7007baa51c891bfe673280a51ea9c19c74a3d2ec8774c279c18382f76324d6a8046cd6a6ea0e0db8839862bf914473fb3
|
@@ -5,15 +5,19 @@ module ActionView
|
|
5
5
|
module TextHelper
|
6
6
|
|
7
7
|
# Monkey-patch the pluralize from ActionView::Helpers::TextHelper
|
8
|
-
# to the french grammar rules (
|
8
|
+
# to the french grammar rules (i.e. absolute value < 2 is singular).
|
9
9
|
#
|
10
10
|
# Example:
|
11
|
-
# pluralize(0, '
|
12
|
-
# pluralize(1, '
|
13
|
-
# pluralize(
|
11
|
+
# pluralize(0, 'euro') => 0 euro
|
12
|
+
# pluralize(1, 'euro') => 1 euro
|
13
|
+
# pluralize(1.99, 'euro') => 1,99 euro
|
14
|
+
# pluralize(2, 'euro') => 2 euros
|
15
|
+
# pluralize(-1, 'euro') => -1 euro
|
16
|
+
# pluralize(-1.99, 'euro') => -1,99 euro
|
17
|
+
# pluralize(-2, 'euro') => 2 euros
|
14
18
|
#
|
15
19
|
def pluralize(count, singular, plural = nil)
|
16
|
-
"#{count || 0} " + ((count.
|
20
|
+
"#{count || 0} " + ((count.abs < 2) ? singular : (plural || singular.pluralize))
|
17
21
|
end
|
18
22
|
|
19
23
|
end
|
@@ -3,14 +3,15 @@ require 'i18n/backend/memoize'
|
|
3
3
|
|
4
4
|
module FrenchRails
|
5
5
|
module Pluralization
|
6
|
-
# The
|
7
|
-
#
|
8
|
-
#
|
6
|
+
# The French grammar rules are not the same that for English.
|
7
|
+
# In english, everything different than 1 is plural.
|
8
|
+
# In French everything strictly above -2 and below 2 is singular
|
9
|
+
# e.g -1.99, -1, 0, 1, 1.99
|
9
10
|
#
|
10
11
|
def pluralize(locale, entry, count)
|
11
12
|
return entry unless entry.is_a?(Hash) and count
|
12
13
|
key = :zero if count == 0 && entry.has_key?(:zero)
|
13
|
-
key ||= count
|
14
|
+
key ||= count.abs < 2 ? :one : :other
|
14
15
|
raise InvalidPluralizationData.new(entry, count) unless entry.has_key?(key)
|
15
16
|
entry[key]
|
16
17
|
end
|
data/lib/french_rails/version.rb
CHANGED
data/locales/fr_actionpack.yml
CHANGED
@@ -2,23 +2,23 @@ fr:
|
|
2
2
|
number:
|
3
3
|
format:
|
4
4
|
separator: ","
|
5
|
-
delimiter: "
|
5
|
+
delimiter: " "
|
6
6
|
precision: 3
|
7
7
|
significant: false
|
8
8
|
strip_insignificant_zeros: false
|
9
9
|
currency:
|
10
10
|
format:
|
11
|
-
format: "%n
|
11
|
+
format: "%n %u"
|
12
12
|
unit: "€"
|
13
13
|
separator: ","
|
14
|
-
delimiter: "
|
14
|
+
delimiter: " "
|
15
15
|
precision: 2
|
16
16
|
significant: false
|
17
17
|
strip_insignificant_zeros: false
|
18
18
|
percentage:
|
19
19
|
format:
|
20
20
|
delimiter: ""
|
21
|
-
format: "%n%"
|
21
|
+
format: "%n %"
|
22
22
|
precision:
|
23
23
|
format:
|
24
24
|
delimiter: ""
|
@@ -29,63 +29,65 @@ fr:
|
|
29
29
|
significant: true
|
30
30
|
strip_insignificant_zeros: true
|
31
31
|
storage_units:
|
32
|
-
format: "%n
|
32
|
+
format: "%n %u"
|
33
33
|
units:
|
34
34
|
byte:
|
35
|
-
one: "
|
36
|
-
other: "
|
35
|
+
one: "octet"
|
36
|
+
other: "octets"
|
37
37
|
kb: "ko"
|
38
38
|
mb: "Mo"
|
39
39
|
gb: "Go"
|
40
40
|
tb: "To"
|
41
|
+
pb: "Po"
|
42
|
+
eb: "Eo"
|
41
43
|
decimal_units:
|
42
|
-
format: "%n
|
44
|
+
format: "%n %u"
|
43
45
|
units:
|
44
46
|
unit: ""
|
45
|
-
thousand: "
|
46
|
-
million: "
|
47
|
-
billion: "
|
48
|
-
trillion: "
|
49
|
-
quadrillion: "
|
47
|
+
thousand: "mille"
|
48
|
+
million: "million(s)"
|
49
|
+
billion: "milliard(s)"
|
50
|
+
trillion: "mille milliard(s)"
|
51
|
+
quadrillion: "million(s) de milliards"
|
50
52
|
|
51
53
|
datetime:
|
52
54
|
distance_in_words:
|
53
|
-
half_a_minute: "une demi
|
55
|
+
half_a_minute: "une demi‑minute"
|
54
56
|
less_than_x_seconds:
|
55
|
-
zero: "moins d
|
56
|
-
one: "moins d
|
57
|
+
zero: "moins d’une seconde"
|
58
|
+
one: "moins d’une seconde"
|
57
59
|
other: "moins de %{count} secondes"
|
58
60
|
x_seconds:
|
59
61
|
one: "1 seconde"
|
60
62
|
other: "%{count} secondes"
|
61
63
|
less_than_x_minutes:
|
62
|
-
zero: "moins d
|
63
|
-
one: "moins d
|
64
|
+
zero: "moins d’une minute"
|
65
|
+
one: "moins d’une minute"
|
64
66
|
other: "moins de %{count} minutes"
|
65
67
|
x_minutes:
|
66
68
|
one: "1 minute"
|
67
69
|
other: "%{count} minutes"
|
68
70
|
about_x_hours:
|
69
|
-
one: "environ une
|
71
|
+
one: "environ une heure"
|
70
72
|
other: "environ %{count} heures"
|
71
73
|
x_days:
|
72
74
|
one: "1 jour"
|
73
75
|
other: "%{count} jours"
|
74
76
|
about_x_months:
|
75
|
-
one: "environ un
|
77
|
+
one: "environ un mois"
|
76
78
|
other: "environ %{count} mois"
|
77
79
|
x_months:
|
78
80
|
one: "1 mois"
|
79
81
|
other: "%{count} mois"
|
80
82
|
about_x_years:
|
81
|
-
one: "environ un
|
83
|
+
one: "environ un an"
|
82
84
|
other: "environ %{count} ans"
|
83
85
|
over_x_years:
|
84
|
-
one: "plus d
|
86
|
+
one: "plus d’un an"
|
85
87
|
other: "plus de %{count} ans"
|
86
88
|
almost_x_years:
|
87
|
-
one: "presqu
|
88
|
-
other: "presque %{count}
|
89
|
+
one: "presqu’un an"
|
90
|
+
other: "presque %{count} ans"
|
89
91
|
prompts:
|
90
92
|
year: "Année"
|
91
93
|
month: "Mois"
|
@@ -94,6 +96,14 @@ fr:
|
|
94
96
|
minute: "Minute"
|
95
97
|
second: "Seconde"
|
96
98
|
|
99
|
+
time:
|
100
|
+
am: am
|
101
|
+
formats:
|
102
|
+
default: "%d %B %Y %H h %M min %S s"
|
103
|
+
long: "%A %d %B %Y %H h %M"
|
104
|
+
short: "%d %b %H h %M"
|
105
|
+
pm: pm
|
106
|
+
|
97
107
|
helpers:
|
98
108
|
select:
|
99
109
|
prompt: "Veuillez sélectionner"
|
data/locales/fr_activemodel.yml
CHANGED
@@ -1,25 +1,25 @@
|
|
1
1
|
fr:
|
2
2
|
errors:
|
3
|
-
format: "
|
3
|
+
format: "« %{attribute} » %{message}"
|
4
4
|
messages:
|
5
|
-
inclusion: "n
|
6
|
-
exclusion: "n
|
7
|
-
invalid: "n
|
5
|
+
inclusion: "n’est pas inclus(e) dans la liste"
|
6
|
+
exclusion: "n’est pas disponible"
|
7
|
+
invalid: "n’est pas valide"
|
8
8
|
confirmation: "ne concorde pas avec la confirmation"
|
9
9
|
accepted: "doit être accepté(e)"
|
10
10
|
empty: "doit être rempli(e)"
|
11
11
|
blank: "doit être rempli(e)"
|
12
12
|
present: "doit être vide"
|
13
|
-
too_long: "est trop long (pas plus de %{count}
|
14
|
-
too_short: "est trop court (au moins %{count}
|
15
|
-
wrong_length: "ne fait pas la bonne longueur (doit comporter %{count}
|
16
|
-
not_a_number: "n
|
13
|
+
too_long: "est trop long (pas plus de %{count} caractères)"
|
14
|
+
too_short: "est trop court (au moins %{count} caractères)"
|
15
|
+
wrong_length: "ne fait pas la bonne longueur (doit comporter %{count} caractères)"
|
16
|
+
not_a_number: "n’est pas un nombre"
|
17
17
|
not_an_integer: "doit être un nombre entier"
|
18
|
-
greater_than: "doit être supérieur à
|
19
|
-
greater_than_or_equal_to: "doit être supérieur ou égal à
|
20
|
-
equal_to: "doit être égal à
|
21
|
-
less_than: "doit être inférieur à
|
22
|
-
less_than_or_equal_to: "doit être inférieur ou égal à
|
23
|
-
other_than: "doit être différent de
|
18
|
+
greater_than: "doit être supérieur à %{count}"
|
19
|
+
greater_than_or_equal_to: "doit être supérieur ou égal à %{count}"
|
20
|
+
equal_to: "doit être égal à %{count}"
|
21
|
+
less_than: "doit être inférieur à %{count}"
|
22
|
+
less_than_or_equal_to: "doit être inférieur ou égal à %{count}"
|
23
|
+
other_than: "doit être différent de %{count}"
|
24
24
|
odd: "doit être impair"
|
25
25
|
even: "doit être pair"
|
data/locales/fr_activerecord.yml
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
fr:
|
2
2
|
attributes:
|
3
|
-
created_at: "Créé
|
4
|
-
updated_at: "Modifié
|
3
|
+
created_at: "Créé le"
|
4
|
+
updated_at: "Modifié le"
|
5
5
|
errors:
|
6
6
|
messages:
|
7
|
-
taken: "n
|
7
|
+
taken: "n’est pas disponible"
|
8
8
|
activerecord:
|
9
9
|
errors:
|
10
10
|
messages:
|
11
|
-
record_invalid: "Échec de la validation
|
11
|
+
record_invalid: "Échec de la validation : %{errors}"
|
12
12
|
restrict_dependent_destroy:
|
13
|
-
one: "Suppression impossible
|
14
|
-
many: "Suppression impossible
|
13
|
+
one: "Suppression impossible : un autre enregistrement est lié"
|
14
|
+
many: "Suppression impossible : d’autres enregistrements sont liés"
|
@@ -2,8 +2,8 @@ fr:
|
|
2
2
|
date:
|
3
3
|
formats:
|
4
4
|
default: "%d/%m/%Y"
|
5
|
-
short: "%e
|
6
|
-
long: "%e
|
5
|
+
short: "%e %b"
|
6
|
+
long: "%e %B %Y"
|
7
7
|
day_names: [lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche]
|
8
8
|
abbr_day_names: [lun, mar, mer, jeu, ven, sam, dim]
|
9
9
|
month_names: [~, janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre]
|
@@ -15,9 +15,9 @@ fr:
|
|
15
15
|
|
16
16
|
time:
|
17
17
|
formats:
|
18
|
-
default: "%d
|
19
|
-
short: "%d
|
20
|
-
long: "%A %d
|
18
|
+
default: "%d %B %Y %H:%M:%S"
|
19
|
+
short: "%d %b %H:%M"
|
20
|
+
long: "%A %d %B %Y %H:%M"
|
21
21
|
am: "am"
|
22
22
|
pm: "pm"
|
23
23
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: french_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bruno Michel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -67,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
67
|
version: '0'
|
68
68
|
requirements: []
|
69
69
|
rubyforge_project:
|
70
|
-
rubygems_version: 2.
|
70
|
+
rubygems_version: 2.7.6.2
|
71
71
|
signing_key:
|
72
72
|
specification_version: 4
|
73
73
|
summary: Simple french localization for Rails
|