padrino-helpers 0.11.3 → 0.11.4

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.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/README.rdoc +1 -1
  3. data/lib/padrino-helpers.rb +3 -5
  4. data/lib/padrino-helpers/asset_tag_helpers.rb +32 -40
  5. data/lib/padrino-helpers/breadcrumb_helpers.rb +21 -39
  6. data/lib/padrino-helpers/form_builder/abstract_form_builder.rb +121 -118
  7. data/lib/padrino-helpers/form_builder/standard_form_builder.rb +6 -9
  8. data/lib/padrino-helpers/form_helpers.rb +190 -193
  9. data/lib/padrino-helpers/format_helpers.rb +29 -42
  10. data/lib/padrino-helpers/locale/cs.yml +14 -14
  11. data/lib/padrino-helpers/locale/da.yml +1 -1
  12. data/lib/padrino-helpers/locale/de.yml +1 -1
  13. data/lib/padrino-helpers/locale/en.yml +16 -16
  14. data/lib/padrino-helpers/locale/es.yml +16 -16
  15. data/lib/padrino-helpers/locale/fr.yml +1 -2
  16. data/lib/padrino-helpers/locale/hu.yml +16 -16
  17. data/lib/padrino-helpers/locale/it.yml +2 -2
  18. data/lib/padrino-helpers/locale/ja.yml +16 -16
  19. data/lib/padrino-helpers/locale/lv.yml +16 -16
  20. data/lib/padrino-helpers/locale/nl.yml +1 -1
  21. data/lib/padrino-helpers/locale/no.yml +1 -1
  22. data/lib/padrino-helpers/locale/pl.yml +7 -7
  23. data/lib/padrino-helpers/locale/pt_br.yml +16 -16
  24. data/lib/padrino-helpers/locale/ro.yml +16 -16
  25. data/lib/padrino-helpers/locale/ru.yml +16 -16
  26. data/lib/padrino-helpers/locale/sv.yml +16 -16
  27. data/lib/padrino-helpers/locale/tr.yml +16 -16
  28. data/lib/padrino-helpers/locale/uk.yml +16 -16
  29. data/lib/padrino-helpers/locale/zh_cn.yml +16 -16
  30. data/lib/padrino-helpers/locale/zh_tw.yml +16 -16
  31. data/lib/padrino-helpers/number_helpers.rb +10 -15
  32. data/lib/padrino-helpers/output_helpers.rb +49 -57
  33. data/lib/padrino-helpers/output_helpers/abstract_handler.rb +16 -18
  34. data/lib/padrino-helpers/output_helpers/erb_handler.rb +11 -12
  35. data/lib/padrino-helpers/output_helpers/haml_handler.rb +9 -9
  36. data/lib/padrino-helpers/output_helpers/slim_handler.rb +11 -13
  37. data/lib/padrino-helpers/render_helpers.rb +5 -6
  38. data/lib/padrino-helpers/tag_helpers.rb +18 -21
  39. data/lib/padrino-helpers/translation_helpers.rb +4 -6
  40. data/test/fixtures/markup_app/app.rb +7 -3
  41. data/test/fixtures/render_app/app.rb +1 -0
  42. data/test/test_asset_tag_helpers.rb +1 -1
  43. data/test/test_form_builder.rb +5 -6
  44. data/test/test_form_helpers.rb +24 -12
  45. data/test/test_format_helpers.rb +3 -3
  46. data/test/test_number_helpers.rb +4 -0
  47. data/test/test_output_helpers.rb +1 -1
  48. data/test/test_render_helpers.rb +1 -1
  49. data/test/test_tag_helpers.rb +1 -1
  50. metadata +9 -15
@@ -6,7 +6,7 @@ module Padrino
6
6
  #
7
7
  module FormatHelpers
8
8
  ##
9
- # Returns escaped text to protect against malicious content
9
+ # Returns escaped text to protect against malicious content.
10
10
  #
11
11
  # @param [String] text
12
12
  # Unsanitized HTML string that needs to be escaped.
@@ -17,7 +17,6 @@ module Padrino
17
17
  # escape_html("<b>Hey<b>") => "&lt;b&gt;Hey&lt;b;gt;"
18
18
  # h("Me & Bob") => "Me &amp; Bob"
19
19
  #
20
- # @api public
21
20
  def escape_html(text)
22
21
  Rack::Utils.escape_html(text).html_safe
23
22
  end
@@ -25,8 +24,7 @@ module Padrino
25
24
  alias sanitize_html escape_html
26
25
 
27
26
  ##
28
- # Returns escaped text to protect against malicious content
29
- # Returns blank if the text is empty
27
+ # Returns escaped text to protect against malicious content.
30
28
  #
31
29
  # @param [String] text
32
30
  # Unsanitized HTML string that needs to be escaped.
@@ -39,14 +37,13 @@ module Padrino
39
37
  # h!("Me & Bob") => "Me &amp; Bob"
40
38
  # h!("", "Whoops") => "Whoops"
41
39
  #
42
- # @api public
43
40
  def h!(text, blank_text = '&nbsp;')
44
41
  return blank_text.html_safe if text.nil? || text.empty?
45
42
  h(text)
46
43
  end
47
44
 
48
45
  ##
49
- # Strips all HTML tags from the html
46
+ # Strips all HTML tags from the html.
50
47
  #
51
48
  # @param [String] html
52
49
  # The HTML for which to strip tags.
@@ -56,7 +53,6 @@ module Padrino
56
53
  # @example
57
54
  # strip_tags("<b>Hey</b>") => "Hey"
58
55
  #
59
- # @api public
60
56
  def strip_tags(html)
61
57
  html.gsub(/<\/?[^>]*>/, "") if html
62
58
  end
@@ -79,14 +75,13 @@ module Padrino
79
75
  # simple_format("hello\nworld") # => "<p>hello<br/>world</p>"
80
76
  # simple_format("hello\nworld", :tag => :div, :class => :foo) # => "<div class="foo">hello<br/>world</div>"
81
77
  #
82
- # @api public
83
78
  def simple_format(text, options={})
84
79
  t = options.delete(:tag) || :p
85
80
  start_tag = tag(t, options, true)
86
81
  text = escape_html(text.to_s.dup)
87
- text.gsub!(/\r\n?/, "\n") # \r\n and \r -> \n
88
- text.gsub!(/\n\n+/, "</#{t}>\n\n#{start_tag}") # 2+ newline -> paragraph
89
- text.gsub!(/([^\n]\n)(?=[^\n])/, '\1<br />') # 1 newline -> br
82
+ text.gsub!(/\r\n?/, "\n") # \r\n and \r -> \n
83
+ text.gsub!(/\n\n+/, "</#{t}>\n\n#{start_tag}") # 2+ newline -> paragraph
84
+ text.gsub!(/([^\n]\n)(?=[^\n])/, '\1<br />') # 1 newline -> br
90
85
  text.insert 0, start_tag
91
86
  text << "</#{t}>"
92
87
  text.html_safe
@@ -94,7 +89,7 @@ module Padrino
94
89
 
95
90
  ##
96
91
  # Attempts to pluralize the singular word unless count is 1. If plural is supplied, it will use that when count is > 1,
97
- # otherwise it will use the Inflector to determine the plural form
92
+ # otherwise it will use inflector to determine the plural form.
98
93
  #
99
94
  # @param [Fixnum] count
100
95
  # The count which determines pluralization.
@@ -108,7 +103,6 @@ module Padrino
108
103
  # @example
109
104
  # pluralize(2, 'person') => '2 people'
110
105
  #
111
- # @api public
112
106
  def pluralize(count, singular, plural = nil)
113
107
  "#{count || 0} " + ((count == 1 || count == '1') ? singular : (plural || singular.pluralize))
114
108
  end
@@ -131,7 +125,6 @@ module Padrino
131
125
  # @example
132
126
  # truncate("Once upon a time in a world far far away", :length => 8) => "Once upon..."
133
127
  #
134
- # @api public
135
128
  def truncate(text, options={})
136
129
  options.reverse_merge!(:length => 30, :omission => "...")
137
130
  if text
@@ -159,7 +152,6 @@ module Padrino
159
152
  # @example
160
153
  # truncate_words("Once upon a time in a world far far away", :length => 8) => "Once upon a time in a world far..."
161
154
  #
162
- # @api public
163
155
  def truncate_words(text, options={})
164
156
  options.reverse_merge!(:length => 30, :omission => "...")
165
157
  if text
@@ -180,12 +172,11 @@ module Padrino
180
172
  # @option options [Fixnum] :line_width (80)
181
173
  # The line width before a wrap should occur.
182
174
  #
183
- # @return [String] The text with line wraps for lines longer then +line_width+
175
+ # @return [String] The text with line wraps for lines longer then +line_width+.
184
176
  #
185
177
  # @example
186
178
  # word_wrap('Once upon a time', :line_width => 8) => "Once upon\na time"
187
179
  #
188
- # @api public
189
180
  def word_wrap(text, *args)
190
181
  options = args.extract_options!
191
182
  unless args.blank?
@@ -223,7 +214,6 @@ module Padrino
223
214
  # highlight('Lorem ipsum dolor sit amet', 'dolor', :highlighter => '<span class="custom">\1</span>')
224
215
  # # => Lorem ipsum <strong class="custom">dolor</strong> sit amet
225
216
  #
226
- # @api public
227
217
  def highlight(text, words, *args)
228
218
  options = args.extract_options!
229
219
  options.reverse_merge!(:highlighter => '<strong class="highlight">\1</strong>')
@@ -241,19 +231,19 @@ module Padrino
241
231
  # Set +include_seconds+ to true if you want more detailed approximations when distance < 1 min, 29 secs
242
232
  # Distances are reported based on the following table:
243
233
  #
244
- # 0 <-> 29 secs # => less than a minute
245
- # 30 secs <-> 1 min, 29 secs # => 1 minute
246
- # 1 min, 30 secs <-> 44 mins, 29 secs # => [2..44] minutes
247
- # 44 mins, 30 secs <-> 89 mins, 29 secs # => about 1 hour
248
- # 89 mins, 29 secs <-> 23 hrs, 59 mins, 29 secs # => about [2..24] hours
249
- # 23 hrs, 59 mins, 29 secs <-> 47 hrs, 59 mins, 29 secs # => 1 day
250
- # 47 hrs, 59 mins, 29 secs <-> 29 days, 23 hrs, 59 mins, 29 secs # => [2..29] days
251
- # 29 days, 23 hrs, 59 mins, 30 secs <-> 59 days, 23 hrs, 59 mins, 29 secs # => about 1 month
252
- # 59 days, 23 hrs, 59 mins, 30 secs <-> 1 yr minus 1 sec # => [2..12] months
253
- # 1 yr <-> 1 yr, 3 months # => about 1 year
254
- # 1 yr, 3 months <-> 1 yr, 9 months # => over 1 year
255
- # 1 yr, 9 months <-> 2 yr minus 1 sec # => almost 2 years
256
- # 2 yrs <-> max time or date # => (same rules as 1 yr)
234
+ # 0 <-> 29 secs # => less than a minute
235
+ # 30 secs <-> 1 min, 29 secs # => 1 minute
236
+ # 1 min, 30 secs <-> 44 mins, 29 secs # => [2..44] minutes
237
+ # 44 mins, 30 secs <-> 89 mins, 29 secs # => about 1 hour
238
+ # 89 mins, 29 secs <-> 23 hrs, 59 mins, 29 secs # => about [2..24] hours
239
+ # 23 hrs, 59 mins, 29 secs <-> 47 hrs, 59 mins, 29 secs # => 1 day
240
+ # 47 hrs, 59 mins, 29 secs <-> 29 days, 23 hrs, 59 mins, 29 secs # => [2..29] days
241
+ # 29 days, 23 hrs, 59 mins, 30 secs <-> 59 days, 23 hrs, 59 mins, 29 secs # => about 1 month
242
+ # 59 days, 23 hrs, 59 mins, 30 secs <-> 1 yr minus 1 sec # => [2..12] months
243
+ # 1 yr <-> 1 yr, 3 months # => about 1 year
244
+ # 1 yr, 3 months <-> 1 yr, 9 months # => over 1 year
245
+ # 1 yr, 9 months <-> 2 yr minus 1 sec # => almost 2 years
246
+ # 2 yrs <-> max time or date # => (same rules as 1 yr)
257
247
  #
258
248
  # With +include_seconds+ = true and the difference < 1 minute 29 seconds:
259
249
  # 0-4 secs # => less than 5 seconds
@@ -295,7 +285,6 @@ module Padrino
295
285
  # distance_of_time_in_words(to_time, from_time, true) # => about 6 years
296
286
  # distance_of_time_in_words(Time.now, Time.now) # => less than a minute
297
287
  #
298
- # @api public
299
288
  def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false, options = {})
300
289
  from_time = from_time.to_time if from_time.respond_to?(:to_time)
301
290
  to_time = to_time.to_time if to_time.respond_to?(:to_time)
@@ -351,27 +340,25 @@ module Padrino
351
340
  # @return [String] The time formatted as a relative string.
352
341
  #
353
342
  # @example
354
- # time_ago_in_words(3.minutes.from_now) # => 3 minutes
355
- # time_ago_in_words(Time.now - 15.hours) # => 15 hours
356
- # time_ago_in_words(Time.now) # => less than a minute
343
+ # time_ago_in_words(3.minutes.from_now) # => 3 minutes
344
+ # time_ago_in_words(Time.now - 15.hours) # => 15 hours
345
+ # time_ago_in_words(Time.now) # => less than a minute
357
346
  #
358
- # @api public
359
347
  def time_ago_in_words(from_time, include_seconds = false)
360
348
  distance_of_time_in_words(from_time, Time.now, include_seconds)
361
349
  end
362
350
 
363
351
  ##
364
- # Used in xxxx.js.erb files to escape html so that it can be passed to javascript from Padrino
352
+ # Used in xxxx.js.erb files to escape html so that it can be passed to javascript from Padrino.
365
353
  #
366
354
  # @param [String] html
367
- # The html content to be escaped into javascript compatible format.
355
+ # The HTML content to be escaped into javascript compatible format.
368
356
  #
369
357
  # @return [String] The html escaped for javascript passing.
370
358
  #
371
359
  # @example
372
360
  # js_escape_html("<h1>Hey</h1>")
373
361
  #
374
- # @api public
375
362
  def js_escape_html(html_content)
376
363
  return '' unless html_content
377
364
  javascript_mapping = { '\\' => '\\\\', '</' => '<\/', "\r\n" => '\n', "\n" => '\n', "\r" => '\n', '"' => '\\"', "'" => "\\'" }
@@ -380,6 +367,6 @@ module Padrino
380
367
  escaped_content
381
368
  end
382
369
  alias :escape_javascript :js_escape_html
383
- end # FormatHelpers
384
- end # Helpers
385
- end # Padrino
370
+ end
371
+ end
372
+ end
@@ -1,30 +1,30 @@
1
1
  cs:
2
2
  number:
3
- # Used in number_with_delimiter()
4
- # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
3
+ # Used in number_with_delimiter().
4
+ # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'.
5
5
  format:
6
- # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
6
+ # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5).
7
7
  separator: ","
8
- # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
8
+ # Delimits thousands (e.g. 1,000,000 is a million) (always in groups of three).
9
9
  delimiter: " "
10
- # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
10
+ # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00).
11
11
  precision: 3
12
12
 
13
- # Used in number_to_currency()
13
+ # Used in number_to_currency().
14
14
  currency:
15
15
  format:
16
- # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
16
+ # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00).
17
17
  format: "%n %u"
18
18
  unit: "Kč"
19
- # These three are to override number.format and are optional
19
+ # These three are to override number.format and are optional.
20
20
  separator: ","
21
21
  delimiter: " "
22
22
  precision: 2
23
23
 
24
- # Used in number_to_percentage()
24
+ # Used in number_to_percentage().
25
25
  percentage:
26
26
  format:
27
- # These three are to override number.format and are optional
27
+ # These three are to override number.format and are optional.
28
28
  # separator:
29
29
  delimiter: ""
30
30
  # precision:
@@ -32,15 +32,15 @@ cs:
32
32
  # Used in number_to_precision()
33
33
  precision:
34
34
  format:
35
- # These three are to override number.format and are optional
35
+ # These three are to override number.format and are optional.
36
36
  # separator:
37
37
  delimiter: ""
38
38
  # precision:
39
39
 
40
- # Used in number_to_human_size()
40
+ # Used in number_to_human_size().
41
41
  human:
42
42
  format:
43
- # These three are to override number.format and are optional
43
+ # These three are to override number.format and are optional.
44
44
  # separator:
45
45
  delimiter: ""
46
46
  precision: 1
@@ -57,7 +57,7 @@ cs:
57
57
  gb: "GB"
58
58
  tb: "TB"
59
59
 
60
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
60
+ # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words().
61
61
  datetime:
62
62
  distance_in_words:
63
63
  half_a_minute: "půl minutou"
@@ -23,7 +23,7 @@ da:
23
23
  precision: 1
24
24
  storage_units:
25
25
  # Storage units output formatting.
26
- # %u is the storage unit, %n is the number (default: 2 MB)
26
+ # %u is the storage unit, %n is the number (default: 2 MB).
27
27
  format: "%n %u"
28
28
  units:
29
29
  byte:
@@ -23,7 +23,7 @@ de:
23
23
  precision: 1
24
24
  storage_units:
25
25
  # Storage units output formatting.
26
- # %u is the storage unit, %n is the number (default: 2 MB)
26
+ # %u is the storage unit, %n is the number (default: 2 MB).
27
27
  format: "%n %u"
28
28
  units:
29
29
  byte:
@@ -1,52 +1,52 @@
1
1
  en:
2
2
  number:
3
- # Used in number_with_delimiter()
4
- # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
3
+ # Used in number_with_delimiter().
4
+ # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'.
5
5
  format:
6
- # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
6
+ # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5).
7
7
  separator: "."
8
- # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
8
+ # Delimits thousands (e.g. 1,000,000 is a million) (always in groups of three).
9
9
  delimiter: ","
10
- # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
10
+ # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00).
11
11
  precision: 3
12
12
 
13
- # Used in number_to_currency()
13
+ # Used in number_to_currency().
14
14
  currency:
15
15
  format:
16
- # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
16
+ # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00).
17
17
  format: "%u%n"
18
18
  unit: "$"
19
- # These three are to override number.format and are optional
19
+ # These three are to override number.format and are optional.
20
20
  separator: "."
21
21
  delimiter: ","
22
22
  precision: 2
23
23
 
24
- # Used in number_to_percentage()
24
+ # Used in number_to_percentage().
25
25
  percentage:
26
26
  format:
27
- # These three are to override number.format and are optional
27
+ # These three are to override number.format and are optional.
28
28
  # separator:
29
29
  delimiter: ""
30
30
  # precision:
31
31
 
32
- # Used in number_to_precision()
32
+ # Used in number_to_precision().
33
33
  precision:
34
34
  format:
35
- # These three are to override number.format and are optional
35
+ # These three are to override number.format and are optional.
36
36
  # separator:
37
37
  delimiter: ""
38
38
  # precision:
39
39
 
40
- # Used in number_to_human_size()
40
+ # Used in number_to_human_size().
41
41
  human:
42
42
  format:
43
- # These three are to override number.format and are optional
43
+ # These three are to override number.format and are optional.
44
44
  # separator:
45
45
  delimiter: ""
46
46
  precision: 1
47
47
  storage_units:
48
48
  # Storage units output formatting.
49
- # %u is the storage unit, %n is the number (default: 2 MB)
49
+ # %u is the storage unit, %n is the number (default: 2 MB).
50
50
  format: "%n %u"
51
51
  units:
52
52
  byte:
@@ -57,7 +57,7 @@ en:
57
57
  gb: "GB"
58
58
  tb: "TB"
59
59
 
60
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
60
+ # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words().
61
61
  datetime:
62
62
  distance_in_words:
63
63
  half_a_minute: "half a minute"
@@ -1,52 +1,52 @@
1
1
  es:
2
2
  number:
3
- # Used in number_with_delimiter()
4
- # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
3
+ # Used in number_with_delimiter().
4
+ # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'.
5
5
  format:
6
- # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
6
+ # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5).
7
7
  separator: "."
8
- # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
8
+ # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three).
9
9
  delimiter: ","
10
- # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
10
+ # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00).
11
11
  precision: 2
12
12
 
13
- # Used in number_to_currency()
13
+ # Used in number_to_currency().
14
14
  currency:
15
15
  format:
16
- # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
16
+ # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00).
17
17
  format: "%u%n"
18
18
  unit: "$"
19
- # These three are to override number.format and are optional
19
+ # These three are to override number.format and are optional.
20
20
  separator: "."
21
21
  delimiter: ","
22
22
  precision: 2
23
23
 
24
- # Used in number_to_percentage()
24
+ # Used in number_to_percentage().
25
25
  percentage:
26
26
  format:
27
- # These three are to override number.format and are optional
27
+ # These three are to override number.format and are optional.
28
28
  # separator:
29
29
  delimiter: ""
30
30
  # precision:
31
31
 
32
- # Used in number_to_precision()
32
+ # Used in number_to_precision().
33
33
  precision:
34
34
  format:
35
- # These three are to override number.format and are optional
35
+ # These three are to override number.format and are optional.
36
36
  # separator:
37
37
  delimiter: ""
38
38
  # precision:
39
39
 
40
- # Used in number_to_human_size()
40
+ # Used in number_to_human_size().
41
41
  human:
42
42
  format:
43
- # These three are to override number.format and are optional
43
+ # These three are to override number.format and are optional.
44
44
  # separator:
45
45
  delimiter: ""
46
46
  precision: 1
47
47
  storage_units:
48
48
  # Storage units output formatting.
49
- # %u is the storage unit, %n is the number (default: 2 MB)
49
+ # %u is the storage unit, %n is the number (default: 2 MB).
50
50
  format: "%n %u"
51
51
  units:
52
52
  byte:
@@ -57,7 +57,7 @@ es:
57
57
  gb: "GB"
58
58
  tb: "TB"
59
59
 
60
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
60
+ # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words().
61
61
  datetime:
62
62
  distance_in_words:
63
63
  half_a_minute: "medio minuto"
@@ -23,7 +23,7 @@ fr:
23
23
  precision: 1
24
24
  storage_units:
25
25
  # Storage units output formatting.
26
- # %u is the storage unit, %n is the number (default: 2 MB)
26
+ # %u is the storage unit, %n is the number (default: 2 MB).
27
27
  format: "%n %u"
28
28
  units:
29
29
  byte:
@@ -77,4 +77,3 @@ fr:
77
77
  one: "1 erreur a empêché ce %{model} d'être sauvé"
78
78
  other: "%{count} erreurs ont empêché ce %{model} d'être sauvé"
79
79
  body: "Il y avait des problèmes avec les champs suivants:"
80
-