french_rails 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 60fdd01b4e5f2170cafeb958e98d4536742c134f
4
- data.tar.gz: 9a907977d729dca513f7e883d29659e564cdb433
2
+ SHA256:
3
+ metadata.gz: 3e2888ca30f9ed939389c3282c756567fba7997cdde2db4814e8b495944d4e13
4
+ data.tar.gz: 3ff345ce4eb02147ae4e260dad0acecd7cecb8cf31c9c494cf30f9c8968a6904
5
5
  SHA512:
6
- metadata.gz: dd236513977e995bbac409215faf18e90a4e9e39e2998a7c11ac2c75d0d65a9e11805c4121b65416fef761b8305ecb9555df79804fb15b2535f4f087e2577d39
7
- data.tar.gz: b63bdedc9a6a74c43d5713250f4369d80ecf2606a6c34e458d19818f475509ce3489a1b9cec27c592295ee10a7c2034a9f6f042508b480b60a4c7a2700027bc3
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 (ie 0 is singular).
8
+ # to the french grammar rules (i.e. absolute value < 2 is singular).
9
9
  #
10
10
  # Example:
11
- # pluralize(0, 'image') => 0 image
12
- # pluralize(1, 'image') => 1 image
13
- # pluralize(2, 'image') => 2 images
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.to_i <= 1) ? singular : (plural || singular.pluralize))
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 french grammar rules are not the same that for english.
7
- # For our concern, the main difference is 0:
8
- # in english, 0 is plural, but in french, it's singular.
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 <= 1 ? :one : :other
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
@@ -1,3 +1,3 @@
1
1
  module FrenchRails
2
- Version = "0.4.0"
2
+ Version = "0.4.1"
3
3
  end
@@ -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 %u"
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 %u"
32
+ format: "%n%u"
33
33
  units:
34
34
  byte:
35
- one: "Octet"
36
- other: "Octets"
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 %u"
44
+ format: "%n %u"
43
45
  units:
44
46
  unit: ""
45
- thousand: "Millier"
46
- million: "Million"
47
- billion: "Milliard"
48
- trillion: "Mille milliard"
49
- quadrillion: "Million de milliard"
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-minute"
55
+ half_a_minute: "une demiminute"
54
56
  less_than_x_seconds:
55
- zero: "moins d'une seconde"
56
- one: "moins d'une seconde"
57
+ zero: "moins dune seconde"
58
+ one: "moins dune 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'une minute"
63
- one: "moins d'une minute"
64
+ zero: "moins dune minute"
65
+ one: "moins dune 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 heure"
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 mois"
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 an"
83
+ one: "environ un an"
82
84
  other: "environ %{count} ans"
83
85
  over_x_years:
84
- one: "plus d'un an"
86
+ one: "plus dun an"
85
87
  other: "plus de %{count} ans"
86
88
  almost_x_years:
87
- one: "presqu'un an"
88
- other: "presque %{count} ans"
89
+ one: "presquun 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"
@@ -1,25 +1,25 @@
1
1
  fr:
2
2
  errors:
3
- format: "Le %{attribute} %{message}"
3
+ format: "« %{attribute} » %{message}"
4
4
  messages:
5
- inclusion: "n'est pas inclus(e) dans la liste"
6
- exclusion: "n'est pas disponible"
7
- invalid: "n'est pas valide"
5
+ inclusion: "nest pas inclus(e) dans la liste"
6
+ exclusion: "nest pas disponible"
7
+ invalid: "nest 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} 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"
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: "nest pas un nombre"
17
17
  not_an_integer: "doit être un nombre entier"
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}"
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"
@@ -1,14 +1,14 @@
1
1
  fr:
2
2
  attributes:
3
- created_at: "Créé le"
4
- updated_at: "Modifié le"
3
+ created_at: "Créé le"
4
+ updated_at: "Modifié le"
5
5
  errors:
6
6
  messages:
7
- taken: "n'est pas disponible"
7
+ taken: "nest pas disponible"
8
8
  activerecord:
9
9
  errors:
10
10
  messages:
11
- record_invalid: "Échec de la validation : %{errors}"
11
+ record_invalid: "Échec de la validation : %{errors}"
12
12
  restrict_dependent_destroy:
13
- one: "Suppression impossible : un autre enregistrement est lié"
14
- many: "Suppression impossible : d'autres enregistrements sont liés"
13
+ one: "Suppression impossible : un autre enregistrement est lié"
14
+ many: "Suppression impossible : dautres enregistrements sont liés"
@@ -2,8 +2,8 @@ fr:
2
2
  date:
3
3
  formats:
4
4
  default: "%d/%m/%Y"
5
- short: "%e %b"
6
- long: "%e %B %Y"
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 %B %Y %H:%M:%S"
19
- short: "%d %b %H:%M"
20
- long: "%A %d %B %Y %H:%M"
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.0
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: 2017-08-20 00:00:00.000000000 Z
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.5.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