lazier 3.5.7 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/.travis-gemfile +5 -4
  3. data/.travis.yml +2 -2
  4. data/CHANGELOG.md +65 -8
  5. data/Gemfile +9 -8
  6. data/README.md +4 -0
  7. data/doc/Lazier.html +178 -110
  8. data/doc/Lazier/Boolean.html +7 -7
  9. data/doc/Lazier/Configuration.html +24 -50
  10. data/doc/Lazier/DateTime.html +50 -305
  11. data/doc/Lazier/DateTime/ClassMethods.html +116 -806
  12. data/doc/Lazier/Exceptions.html +2 -2
  13. data/doc/Lazier/Exceptions/Debug.html +1 -1
  14. data/doc/Lazier/Exceptions/MissingTranslation.html +18 -14
  15. data/doc/Lazier/Exceptions/TranslationExceptionHandler.html +213 -0
  16. data/doc/Lazier/Hash.html +19 -155
  17. data/doc/Lazier/I18n.html +1735 -230
  18. data/doc/Lazier/Math.html +1 -1
  19. data/doc/Lazier/Math/ClassMethods.html +13 -13
  20. data/doc/Lazier/Object.html +353 -339
  21. data/doc/Lazier/Pathname.html +4 -4
  22. data/doc/Lazier/Settings.html +150 -304
  23. data/doc/Lazier/String.html +39 -199
  24. data/doc/Lazier/TimeZone.html +244 -746
  25. data/doc/Lazier/TimeZone/ClassMethods.html +109 -127
  26. data/doc/Lazier/Version.html +4 -4
  27. data/doc/_index.html +15 -15
  28. data/doc/class_list.html +1 -1
  29. data/doc/file.README.html +5 -1
  30. data/doc/index.html +5 -1
  31. data/doc/method_list.html +97 -169
  32. data/doc/top-level-namespace.html +1 -1
  33. data/lazier.gemspec +9 -6
  34. data/lib/lazier.rb +41 -50
  35. data/lib/lazier/boolean.rb +0 -1
  36. data/lib/lazier/configuration.rb +26 -28
  37. data/lib/lazier/datetime.rb +33 -127
  38. data/lib/lazier/exceptions.rb +14 -6
  39. data/lib/lazier/hash.rb +7 -15
  40. data/lib/lazier/i18n.rb +130 -48
  41. data/lib/lazier/math.rb +6 -7
  42. data/lib/lazier/object.rb +79 -97
  43. data/lib/lazier/pathname.rb +0 -1
  44. data/lib/lazier/settings.rb +12 -25
  45. data/lib/lazier/string.rb +17 -38
  46. data/lib/lazier/timezone.rb +168 -164
  47. data/lib/lazier/version.rb +3 -4
  48. data/locales/en.yml +52 -51
  49. data/locales/it.yml +51 -50
  50. data/spec/coverage_helper.rb +0 -1
  51. data/spec/lazier/boolean_spec.rb +2 -3
  52. data/spec/lazier/configuration_spec.rb +3 -5
  53. data/spec/lazier/datetime_spec.rb +34 -95
  54. data/spec/lazier/exceptions_spec.rb +25 -0
  55. data/spec/lazier/hash_spec.rb +0 -21
  56. data/spec/lazier/i18n_spec.rb +135 -51
  57. data/spec/lazier/math_spec.rb +0 -1
  58. data/spec/lazier/object_spec.rb +105 -100
  59. data/spec/lazier/pathname_spec.rb +0 -1
  60. data/spec/lazier/settings_spec.rb +25 -28
  61. data/spec/lazier/string_spec.rb +7 -20
  62. data/spec/lazier/timezone_spec.rb +101 -87
  63. data/spec/lazier_spec.rb +25 -8
  64. data/spec/spec_helper.rb +3 -2
  65. metadata +15 -44
  66. data/doc/Lazier/Localizer.html +0 -545
  67. data/lib/lazier/localizer.rb +0 -41
  68. data/spec/lazier/localizer_spec.rb +0 -45
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
6
  <title>
7
- Module: Lazier::I18n
7
+ Class: Lazier::I18n
8
8
 
9
9
  &mdash; Documentation by YARD 0.8.7.4
10
10
 
@@ -63,7 +63,7 @@
63
63
 
64
64
  <iframe id="search_frame"></iframe>
65
65
 
66
- <div id="content"><h1>Module: Lazier::I18n
66
+ <div id="content"><h1>Class: Lazier::I18n
67
67
 
68
68
 
69
69
 
@@ -71,17 +71,28 @@
71
71
 
72
72
  <dl class="box">
73
73
 
74
-
74
+ <dt class="r1">Inherits:</dt>
75
+ <dd class="r1">
76
+ <span class="inheritName">Object</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">Lazier::I18n</li>
82
+
83
+ </ul>
84
+ <a href="#" class="inheritanceTree">show all</a>
85
+
86
+ </dd>
75
87
 
76
88
 
77
-
78
89
 
90
+
79
91
 
80
- <dt class="r1">Included in:</dt>
81
- <dd class="r1"><span class='object_link'><a href="Configuration.html" title="Lazier::Configuration (class)">Configuration</a></span>, <span class='object_link'><a href="Localizer.html" title="Lazier::Localizer (class)">Localizer</a></span>, <span class='object_link'><a href="Settings.html" title="Lazier::Settings (class)">Settings</a></span></dd>
82
92
 
83
93
 
84
94
 
95
+
85
96
  <dt class="r2 last">Defined in:</dt>
86
97
  <dd class="r2 last">lib/lazier/i18n.rb</dd>
87
98
 
@@ -99,6 +110,9 @@
99
110
 
100
111
 
101
112
  </div>
113
+ <h2>Constant Summary</h2>
114
+
115
+
102
116
 
103
117
 
104
118
 
@@ -108,7 +122,7 @@
108
122
  <li class="public ">
109
123
  <span class="summary_signature">
110
124
 
111
- <a href="#i18n_locale-instance_method" title="#i18n_locale (instance method)">- (String|Symbol|nil) <strong>i18n_locale</strong> </a>
125
+ <a href="#backend-instance_method" title="#backend (instance method)">- (I18n::Backend) <strong>backend</strong> </a>
112
126
 
113
127
 
114
128
 
@@ -127,6 +141,32 @@
127
141
 
128
142
 
129
143
 
144
+ <span class="summary_desc"><div class='inline'><p>The backend used for translations.</p>
145
+ </div></span>
146
+
147
+ </li>
148
+
149
+
150
+ <li class="public ">
151
+ <span class="summary_signature">
152
+
153
+ <a href="#locale-instance_method" title="#locale (instance method)">- (String|Symbol|nil) <strong>locale</strong> </a>
154
+
155
+
156
+
157
+ </span>
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
130
170
  <span class="summary_desc"><div class='inline'><p>The current locale.</p>
131
171
  </div></span>
132
172
 
@@ -136,7 +176,7 @@
136
176
  <li class="public ">
137
177
  <span class="summary_signature">
138
178
 
139
- <a href="#i18n_locales_path-instance_method" title="#i18n_locales_path (instance method)">- (String) <strong>i18n_locales_path</strong> </a>
179
+ <a href="#path-instance_method" title="#path (instance method)">- (String) <strong>path</strong> </a>
140
180
 
141
181
 
142
182
 
@@ -164,7 +204,7 @@
164
204
  <li class="public ">
165
205
  <span class="summary_signature">
166
206
 
167
- <a href="#i18n_root-instance_method" title="#i18n_root (instance method)">- (Symbol) <strong>i18n_root</strong> </a>
207
+ <a href="#root-instance_method" title="#root (instance method)">- (Symbol) <strong>root</strong> </a>
168
208
 
169
209
 
170
210
 
@@ -195,6 +235,38 @@
195
235
 
196
236
 
197
237
 
238
+ <h2>
239
+ Class Method Summary
240
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
241
+ </h2>
242
+
243
+ <ul class="summary">
244
+
245
+ <li class="public ">
246
+ <span class="summary_signature">
247
+
248
+ <a href="#instance-class_method" title="instance (class method)">+ (I18n) <strong>instance</strong>(locale = nil, root: :lazier, path: nil, force: false) </a>
249
+
250
+
251
+
252
+ </span>
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+ <span class="summary_desc"><div class='inline'><p>Returns the singleton instance of the settings.</p>
263
+ </div></span>
264
+
265
+ </li>
266
+
267
+
268
+ </ul>
269
+
198
270
  <h2>
199
271
  Instance Method Summary
200
272
  <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
@@ -205,10 +277,108 @@
205
277
  <li class="public ">
206
278
  <span class="summary_signature">
207
279
 
208
- <a href="#i18n-instance_method" title="#i18n (instance method)">- (R18N::Translation) <strong>i18n</strong> </a>
280
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (I18n) <strong>initialize</strong>(locale = nil, root: :lazier, path: nil) </a>
281
+
282
+
283
+
284
+ </span>
285
+
286
+
287
+ <span class="note title constructor">constructor</span>
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+ <span class="summary_desc"><div class='inline'><p>Creates a new I18n object.</p>
297
+ </div></span>
298
+
299
+ </li>
300
+
301
+
302
+ <li class="public ">
303
+ <span class="summary_signature">
304
+
305
+ <a href="#locales-instance_method" title="#locales (instance method)">- (Array) <strong>locales</strong> </a>
306
+
307
+
308
+
309
+ </span>
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+ <span class="summary_desc"><div class='inline'><p>Get the list of available translation for a locale.</p>
320
+ </div></span>
321
+
322
+ </li>
323
+
324
+
325
+ <li class="public ">
326
+ <span class="summary_signature">
327
+
328
+ <a href="#reload-instance_method" title="#reload (instance method)">- (Object) <strong>reload</strong> </a>
329
+
330
+
331
+
332
+ </span>
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+ <span class="summary_desc"><div class='inline'><p>Reloads all the I18n translations.</p>
343
+ </div></span>
344
+
345
+ </li>
346
+
347
+
348
+ <li class="public ">
349
+ <span class="summary_signature">
350
+
351
+ <a href="#translate-instance_method" title="#translate (instance method)">- (String) <strong>translate</strong>(message, **args) </a>
352
+
353
+
354
+
355
+ (also: #t)
356
+
357
+ </span>
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+ <span class="summary_desc"><div class='inline'><p>Localize a message.</p>
368
+ </div></span>
369
+
370
+ </li>
371
+
372
+
373
+ <li class="public ">
374
+ <span class="summary_signature">
375
+
376
+ <a href="#translate_in_locale-instance_method" title="#translate_in_locale (instance method)">- (String) <strong>translate_in_locale</strong>(locale, message, *args) </a>
209
377
 
210
378
 
211
379
 
380
+ (also: #tl)
381
+
212
382
  </span>
213
383
 
214
384
 
@@ -219,7 +389,7 @@
219
389
 
220
390
 
221
391
 
222
- <span class="summary_desc"><div class='inline'><p>Get the list of available translation for the current locale.</p>
392
+ <span class="summary_desc"><div class='inline'><p>Localize a message in a specific locale.</p>
223
393
  </div></span>
224
394
 
225
395
  </li>
@@ -228,7 +398,7 @@
228
398
  <li class="public ">
229
399
  <span class="summary_signature">
230
400
 
231
- <a href="#i18n%3D-instance_method" title="#i18n= (instance method)">- (R18n::Translation) <strong>i18n=</strong>(locale) </a>
401
+ <a href="#translations-instance_method" title="#translations (instance method)">- (Hash) <strong>translations</strong>(locale = nil) </a>
232
402
 
233
403
 
234
404
 
@@ -242,7 +412,7 @@
242
412
 
243
413
 
244
414
 
245
- <span class="summary_desc"><div class='inline'><p>Set the current locale for messages.</p>
415
+ <span class="summary_desc"><div class='inline'><p>Gets the list of available translation for a locale.</p>
246
416
  </div></span>
247
417
 
248
418
  </li>
@@ -251,7 +421,7 @@
251
421
  <li class="public ">
252
422
  <span class="summary_signature">
253
423
 
254
- <a href="#i18n_setup-instance_method" title="#i18n_setup (instance method)">- (Object) <strong>i18n_setup</strong>(root, path) </a>
424
+ <a href="#with_locale-instance_method" title="#with_locale (instance method)">- (Object) <strong>with_locale</strong>(locale) </a>
255
425
 
256
426
 
257
427
 
@@ -265,7 +435,7 @@
265
435
 
266
436
 
267
437
 
268
- <span class="summary_desc"><div class='inline'><p>Setup all I18n translations.</p>
438
+ <span class="summary_desc"><div class='inline'><p>Temporary sets a different locale and execute the given block.</p>
269
439
  </div></span>
270
440
 
271
441
  </li>
@@ -274,6 +444,113 @@
274
444
  </ul>
275
445
 
276
446
 
447
+ <div id="constructor_details" class="method_details_list">
448
+ <h2>Constructor Details</h2>
449
+
450
+ <div class="method_details first">
451
+ <h3 class="signature first" id="initialize-instance_method">
452
+
453
+ - (<tt><span class='object_link'><a href="" title="Lazier::I18n (class)">I18n</a></span></tt>) <strong>initialize</strong>(locale = nil, root: :lazier, path: nil)
454
+
455
+
456
+
457
+
458
+
459
+ </h3><div class="docstring">
460
+ <div class="discussion">
461
+ <p>Creates a new I18n object.</p>
462
+
463
+
464
+ </div>
465
+ </div>
466
+ <div class="tags">
467
+ <p class="tag_title">Parameters:</p>
468
+ <ul class="param">
469
+
470
+ <li>
471
+
472
+ <span class='name'>locale</span>
473
+
474
+
475
+ <span class='type'>(<tt>Symbol</tt>)</span>
476
+
477
+
478
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
479
+
480
+
481
+ &mdash;
482
+ <div class='inline'><p>The locale to use. Defaults to the current locale.</p>
483
+ </div>
484
+
485
+ </li>
486
+
487
+ <li>
488
+
489
+ <span class='name'>root</span>
490
+
491
+
492
+ <span class='type'>(<tt>Symbol</tt>)</span>
493
+
494
+
495
+
496
+ &mdash;
497
+ <div class='inline'><p>The root level of the translation.</p>
498
+ </div>
499
+
500
+ </li>
501
+
502
+ <li>
503
+
504
+ <span class='name'>path</span>
505
+
506
+
507
+ <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span></tt>)</span>
508
+
509
+
510
+
511
+ &mdash;
512
+ <div class='inline'><p>The path where the translations are stored.</p>
513
+ </div>
514
+
515
+ </li>
516
+
517
+ </ul>
518
+
519
+
520
+ </div><table class="source_code">
521
+ <tr>
522
+ <td>
523
+ <pre class="lines">
524
+
525
+
526
+ 41
527
+ 42
528
+ 43
529
+ 44
530
+ 45
531
+ 46
532
+ 47
533
+ 48
534
+ 49</pre>
535
+ </td>
536
+ <td>
537
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 41</span>
538
+
539
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='symbol'>:lazier</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
540
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>||=</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>ROOT</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/locales</span><span class='tstring_end'>&quot;</span></span>
541
+ <span class='ivar'>@root</span> <span class='op'>=</span> <span class='id identifier rubyid_root'>root</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
542
+ <span class='ivar'>@path</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_absolute_path'>absolute_path</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
543
+
544
+ <span class='id identifier rubyid_setup_backend'>setup_backend</span>
545
+
546
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>||</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_default_locale'>default_locale</span> <span class='op'>||</span> <span class='id identifier rubyid_system_locale'>system_locale</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
547
+ <span class='kw'>end</span></pre>
548
+ </td>
549
+ </tr>
550
+ </table>
551
+ </div>
552
+
553
+ </div>
277
554
 
278
555
  <div id="instance_attr_details" class="attr_details">
279
556
  <h2>Instance Attribute Details</h2>
@@ -281,9 +558,9 @@
281
558
 
282
559
  <span id=""></span>
283
560
  <div class="method_details first">
284
- <h3 class="signature first" id="i18n_locale-instance_method">
561
+ <h3 class="signature first" id="backend-instance_method">
285
562
 
286
- - (<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span>|Symbol|nil</tt>) <strong>i18n_locale</strong> <span class="extras">(readonly)</span>
563
+ - (<tt>I18n::Backend</tt>) <strong>backend</strong> <span class="extras">(readonly)</span>
287
564
 
288
565
 
289
566
 
@@ -291,7 +568,7 @@
291
568
 
292
569
  </h3><div class="docstring">
293
570
  <div class="discussion">
294
- <p>Returns The current locale.</p>
571
+ <p>Returns The backend used for translations.</p>
295
572
 
296
573
 
297
574
  </div>
@@ -304,12 +581,12 @@
304
581
  <li>
305
582
 
306
583
 
307
- <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span>|Symbol|nil</tt>)</span>
584
+ <span class='type'>(<tt>I18n::Backend</tt>)</span>
308
585
 
309
586
 
310
587
 
311
588
  &mdash;
312
- <div class='inline'><p>The current locale.</p>
589
+ <div class='inline'><p>The backend used for translations.</p>
313
590
  </div>
314
591
 
315
592
  </li>
@@ -322,7 +599,6 @@
322
599
  <pre class="lines">
323
600
 
324
601
 
325
- 16
326
602
  17
327
603
  18
328
604
  19
@@ -390,78 +666,241 @@
390
666
  81
391
667
  82
392
668
  83
393
- 84</pre>
669
+ 84
670
+ 85
671
+ 86
672
+ 87
673
+ 88
674
+ 89
675
+ 90
676
+ 91
677
+ 92
678
+ 93
679
+ 94
680
+ 95
681
+ 96
682
+ 97
683
+ 98
684
+ 99
685
+ 100
686
+ 101
687
+ 102
688
+ 103
689
+ 104
690
+ 105
691
+ 106
692
+ 107
693
+ 108
694
+ 109
695
+ 110
696
+ 111
697
+ 112
698
+ 113
699
+ 114
700
+ 115
701
+ 116
702
+ 117
703
+ 118
704
+ 119
705
+ 120
706
+ 121
707
+ 122
708
+ 123
709
+ 124
710
+ 125
711
+ 126
712
+ 127
713
+ 128
714
+ 129
715
+ 130
716
+ 131
717
+ 132
718
+ 133
719
+ 134
720
+ 135
721
+ 136
722
+ 137
723
+ 138
724
+ 139
725
+ 140
726
+ 141
727
+ 142
728
+ 143
729
+ 144
730
+ 145
731
+ 146
732
+ 147
733
+ 148
734
+ 149
735
+ 150
736
+ 151
737
+ 152
738
+ 153
739
+ 154
740
+ 155
741
+ 156
742
+ 157
743
+ 158
744
+ 159
745
+ 160
746
+ 161
747
+ 162
748
+ 163
749
+ 164
750
+ 165
751
+ 166</pre>
394
752
  </td>
395
753
  <td>
396
- <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 16</span>
754
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 17</span>
397
755
 
398
- <span class='kw'>module</span> <span class='const'>I18n</span>
399
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:i18n_locale</span>
400
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:i18n_root</span>
401
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:i18n_locales_path</span>
756
+ <span class='kw'>class</span> <span class='const'>I18n</span>
757
+ <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:locale</span>
758
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:root</span><span class='comma'>,</span> <span class='symbol'>:path</span><span class='comma'>,</span> <span class='symbol'>:backend</span>
402
759
 
403
- <span class='comment'># Setup all I18n translations.
760
+ <span class='comment'># The default locale for new instances.
761
+ </span> <span class='id identifier rubyid_mattr_accessor'>mattr_accessor</span> <span class='symbol'>:default_locale</span>
762
+
763
+ <span class='comment'># Returns the singleton instance of the settings.
404
764
  </span> <span class='comment'>#
765
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for translations. Default is the current system locale.
405
766
  </span> <span class='comment'># @param root [Symbol] The root level of the translation.
406
767
  </span> <span class='comment'># @param path [String] The path where the translations are stored.
407
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n_setup'>i18n_setup</span><span class='lparen'>(</span><span class='id identifier rubyid_root'>root</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
408
- <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_enforce_available_locales'>enforce_available_locales</span> <span class='op'>=</span> <span class='kw'>true</span>
409
- <span class='ivar'>@i18n_root</span> <span class='op'>=</span> <span class='id identifier rubyid_root'>root</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
410
- <span class='ivar'>@i18n_locales_path</span> <span class='op'>=</span> <span class='id identifier rubyid_path'>path</span>
768
+ </span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
769
+ </span> <span class='comment'># @return [I18n] The singleton instance of the i18n.
770
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='symbol'>:lazier</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>force:</span> <span class='kw'>false</span><span class='rparen'>)</span>
771
+ <span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
772
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='id identifier rubyid_root'>root</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
773
+ <span class='kw'>end</span>
774
+
775
+ <span class='comment'># Creates a new I18n object.
776
+ </span> <span class='comment'>#
777
+ </span> <span class='comment'># @param locale [Symbol] The locale to use. Defaults to the current locale.
778
+ </span> <span class='comment'># @param root [Symbol] The root level of the translation.
779
+ </span> <span class='comment'># @param path [String] The path where the translations are stored.
780
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='symbol'>:lazier</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
781
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>||=</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>ROOT</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/locales</span><span class='tstring_end'>&quot;</span></span>
782
+ <span class='ivar'>@root</span> <span class='op'>=</span> <span class='id identifier rubyid_root'>root</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
783
+ <span class='ivar'>@path</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_absolute_path'>absolute_path</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
784
+
785
+ <span class='id identifier rubyid_setup_backend'>setup_backend</span>
786
+
787
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>||</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_default_locale'>default_locale</span> <span class='op'>||</span> <span class='id identifier rubyid_system_locale'>system_locale</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
788
+ <span class='kw'>end</span>
789
+
790
+ <span class='comment'># Reloads all the I18n translations.
791
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_reload'>reload</span>
792
+ <span class='comment'># Extract the backend to an attribute
793
+ </span> <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_backend'>backend</span><span class='period'>.</span><span class='id identifier rubyid_load_translations'>load_translations</span>
411
794
  <span class='kw'>end</span>
412
795
 
413
- <span class='comment'># Get the list of available translation for the current locale.
796
+ <span class='comment'># Gets the list of available translation for a locale.
414
797
  </span> <span class='comment'>#
415
- </span> <span class='comment'># @return [R18N::Translation] The translation object.
416
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n'>i18n</span>
417
- <span class='ivar'>@i18n</span> <span class='op'>||=</span> <span class='id identifier rubyid_i18n_load_locale'>i18n_load_locale</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='rparen'>)</span>
798
+ </span> <span class='comment'># @param locale [Symbol] The locale to list. Defaults to the current locale.
799
+ </span> <span class='comment'># @return [Hash] The available translations for the specified locale.
800
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translations'>translations</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
801
+ <span class='id identifier rubyid_locale'>locale</span> <span class='op'>||=</span> <span class='ivar'>@locale</span>
802
+ <span class='ivar'>@backend</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:translations</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
418
803
  <span class='kw'>end</span>
419
804
 
420
- <span class='comment'># Set the current locale for messages.
805
+ <span class='comment'># Sets the current locale.
421
806
  </span> <span class='comment'>#
422
- </span> <span class='comment'># @param locale [String|Symbol|nil] The new locale. Default is the current system locale.
423
- </span> <span class='comment'># @return [R18n::Translation] The new translation object.
424
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n='>i18n=</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
425
- <span class='ivar'>@i18n_locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
426
- <span class='ivar'>@i18n</span> <span class='op'>=</span> <span class='id identifier rubyid_i18n_load_locale'>i18n_load_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
807
+ </span> <span class='comment'># @param value [Symbol] The locale to use for translations. Default is the current system locale.
808
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_locale='>locale=</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
809
+ <span class='ivar'>@locale</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
810
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='ivar'>@locale</span>
427
811
  <span class='kw'>end</span>
428
812
 
429
- <span class='id identifier rubyid_private'>private</span>
813
+ <span class='comment'># Get the list of available translation for a locale.
814
+ </span> <span class='comment'>#
815
+ </span> <span class='comment'># @return [Array] The list of available locales.
816
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_locales'>locales</span>
817
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_available_locales'>available_locales</span>
818
+ <span class='kw'>end</span>
430
819
 
431
- <span class='comment'># Loads a locale for messages.
820
+ <span class='comment'># Localize a message.
432
821
  </span> <span class='comment'>#
433
- </span> <span class='comment'># @param locale [Symbol] The new locale. Default is the current system locale.
434
- </span> <span class='comment'># @return [R18n::Translation] The new translation object.
435
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n_load_locale'>i18n_load_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
436
- <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='ivar'>@i18n_locales_path</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
437
- <span class='id identifier rubyid_locales'>locales</span> <span class='op'>=</span> <span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
822
+ </span> <span class='comment'># @param message [String|Symbol] The message to localize.
823
+ </span> <span class='comment'># @param args [Array] Optional arguments to localize the message.
824
+ </span> <span class='comment'># @return [String] The localized message.
825
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
826
+ <span class='comment'># PI: Ignore reek on this.
827
+ </span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_root'>root</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>!~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^(\.|::)</span><span class='regexp_end'>/</span></span>
438
828
 
439
829
  <span class='kw'>begin</span>
440
- <span class='id identifier rubyid_tokens'>tokens</span> <span class='op'>=</span> <span class='ivar'>@i18n_root</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[:.]</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
441
- <span class='id identifier rubyid_translation'>translation</span> <span class='op'>=</span> <span class='id identifier rubyid_tokens'>tokens</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>R18n</span><span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_a'>a</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='op'>|</span> <span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
442
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span> <span class='kw'>if</span> <span class='id identifier rubyid_translation'>translation</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>R18n</span><span class='op'>::</span><span class='const'>Untranslated</span><span class='rparen'>)</span>
443
- <span class='id identifier rubyid_translation'>translation</span>
444
- <span class='kw'>rescue</span>
445
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>MissingTranslation</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
830
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>**</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='label'>raise:</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
831
+ <span class='kw'>rescue</span> <span class='op'>::</span><span class='const'>I18n</span><span class='op'>::</span><span class='const'>MissingTranslationData</span>
832
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>MissingTranslation</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rbracket'>]</span>
446
833
  <span class='kw'>end</span>
447
834
  <span class='kw'>end</span>
835
+ <span class='id identifier rubyid_alias_method'>alias_method</span> <span class='symbol'>:t</span><span class='comma'>,</span> <span class='symbol'>:translate</span>
448
836
 
449
- <span class='comment'># Validates locales for messages.
837
+ <span class='comment'># Localize a message in a specific locale.
450
838
  </span> <span class='comment'>#
451
- </span> <span class='comment'># @param locales [Array] The list of locales to validate. English is added as fallback.
452
- </span> <span class='comment'># @param path [String] The path where look into.
453
- </span> <span class='comment'># @return [Array] The list of valid locales.
454
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
455
- <span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span> <span class='op'>+</span> <span class='lbracket'>[</span><span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LANG</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='const'>R18n</span><span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_system_locale'>system_locale</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>en</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_l'>l</span><span class='op'>|</span> <span class='id identifier rubyid_find_locale_in_path'>find_locale_in_path</span><span class='lparen'>(</span><span class='id identifier rubyid_l'>l</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:to_s</span><span class='rparen'>)</span>
839
+ </span> <span class='comment'># @param message [String|Symbol] The message to localize.
840
+ </span> <span class='comment'># @param locale [String|Symbol] The new locale to use for localization.
841
+ </span> <span class='comment'># @param args [Array] Optional arguments to localize the message.
842
+ </span> <span class='comment'># @return [String] The localized message.
843
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translate_in_locale'>translate_in_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
844
+ <span class='id identifier rubyid_with_locale'>with_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
456
845
  <span class='kw'>end</span>
846
+ <span class='id identifier rubyid_alias_method'>alias_method</span> <span class='symbol'>:tl</span><span class='comma'>,</span> <span class='symbol'>:translate_in_locale</span>
457
847
 
458
- <span class='comment'># Find a locale file in a path.
848
+ <span class='comment'># Temporary sets a different locale and execute the given block.
459
849
  </span> <span class='comment'>#
460
- </span> <span class='comment'># @param locale [String] The locale to find.
461
- </span> <span class='comment'># @param path [String] The path where look into.
462
- </span> <span class='comment'># @return [String|nil] The version of the locale found or `nil`, if nothing was found.
463
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_find_locale_in_path'>find_locale_in_path</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
464
- <span class='id identifier rubyid_locale'>locale</span> <span class='op'>?</span> <span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>5</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>2</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_l'>l</span><span class='op'>|</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_path'>path</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_l'>l</span><span class='embexpr_end'>}</span><span class='tstring_content'>.yml</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span> <span class='op'>:</span> <span class='kw'>nil</span>
850
+ </span> <span class='comment'># @param locale [String|Symbol] The new locale to use for localization.
851
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_with_locale'>with_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
852
+ <span class='id identifier rubyid_old_locale'>old_locale</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span>
853
+
854
+ <span class='kw'>begin</span>
855
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
856
+ <span class='kw'>return</span> <span class='kw'>yield</span>
857
+ <span class='kw'>ensure</span>
858
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='id identifier rubyid_old_locale'>old_locale</span>
859
+ <span class='kw'>end</span>
860
+ <span class='kw'>end</span>
861
+
862
+ <span class='id identifier rubyid_private'>private</span>
863
+
864
+ <span class='comment'># :nodoc:
865
+ </span> <span class='const'>OSX_DETECTION</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>defaults read .GlobalPreferences AppleLanguages | awk &#39;NR==2{gsub(/[ ,]/, \&quot;\&quot;);print}&#39;</span><span class='tstring_end'>&quot;</span></span>
866
+
867
+ <span class='comment'># :nodoc:
868
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale'>system_locale</span>
869
+ <span class='id identifier rubyid_platform'>platform</span> <span class='op'>=</span> <span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span>
870
+
871
+ <span class='kw'>if</span> <span class='lbracket'>[</span><span class='symbol'>:java</span><span class='comma'>,</span> <span class='symbol'>:osx</span><span class='comma'>,</span> <span class='symbol'>:posix</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_platform'>platform</span><span class='rparen'>)</span>
872
+ <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>system_locale_</span><span class='embexpr_beg'>#{</span><span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
873
+ <span class='kw'>else</span>
874
+ <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='const'>RuntimeError</span><span class='rparen'>)</span>
875
+ <span class='kw'>end</span>
876
+ <span class='kw'>rescue</span>
877
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>en</span><span class='tstring_end'>&quot;</span></span>
878
+ <span class='kw'>end</span>
879
+
880
+ <span class='comment'># :nodoc:
881
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_java'>system_locale_java</span>
882
+ <span class='const'>Java</span><span class='period'>.</span><span class='id identifier rubyid_java'>java</span><span class='period'>.</span><span class='id identifier rubyid_util'>util</span><span class='period'>.</span><span class='const'>Locale</span><span class='period'>.</span><span class='id identifier rubyid_getDefault'>getDefault</span><span class='period'>.</span><span class='id identifier rubyid_toString'>toString</span>
883
+ <span class='kw'>end</span>
884
+
885
+ <span class='comment'># :nodoc:
886
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_osx'>system_locale_osx</span>
887
+ <span class='backtick'>`</span><span class='embexpr_beg'>#{</span><span class='const'>OSX_DETECTION</span><span class='embexpr_end'>}</span><span class='tstring_end'>`</span></span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
888
+ <span class='kw'>end</span>
889
+
890
+ <span class='comment'># :nodoc:
891
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_posix'>system_locale_posix</span>
892
+ <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LANG</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
893
+ <span class='kw'>end</span>
894
+
895
+ <span class='comment'># :nodoc:
896
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_setup_backend'>setup_backend</span>
897
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_enforce_available_locales'>enforce_available_locales</span> <span class='op'>=</span> <span class='kw'>true</span>
898
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_load_path'>load_path</span> <span class='op'>+=</span> <span class='const'>Dir</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@path</span><span class='embexpr_end'>}</span><span class='tstring_content'>/*.yml</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
899
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_load_path'>load_path</span><span class='period'>.</span><span class='id identifier rubyid_uniq!'>uniq!</span>
900
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_exception_handler'>exception_handler</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>TranslationExceptionHandler</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
901
+ <span class='id identifier rubyid_reload'>reload</span>
902
+
903
+ <span class='ivar'>@backend</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_backend'>backend</span>
465
904
  <span class='kw'>end</span>
466
905
  <span class='kw'>end</span></pre>
467
906
  </td>
@@ -470,11 +909,11 @@
470
909
  </div>
471
910
 
472
911
 
473
- <span id=""></span>
912
+ <span id="locale=-instance_method"></span>
474
913
  <div class="method_details ">
475
- <h3 class="signature " id="i18n_locales_path-instance_method">
914
+ <h3 class="signature " id="locale-instance_method">
476
915
 
477
- - (<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span></tt>) <strong>i18n_locales_path</strong> <span class="extras">(readonly)</span>
916
+ - (<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span>|Symbol|nil</tt>) <strong>locale</strong>
478
917
 
479
918
 
480
919
 
@@ -482,7 +921,7 @@
482
921
 
483
922
  </h3><div class="docstring">
484
923
  <div class="discussion">
485
- <p>Returns The path where the translations are stored.</p>
924
+ <p>Returns The current locale.</p>
486
925
 
487
926
 
488
927
  </div>
@@ -495,12 +934,12 @@
495
934
  <li>
496
935
 
497
936
 
498
- <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span></tt>)</span>
937
+ <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span>|Symbol|nil</tt>)</span>
499
938
 
500
939
 
501
940
 
502
941
  &mdash;
503
- <div class='inline'><p>The path where the translations are stored.</p>
942
+ <div class='inline'><p>The current locale.</p>
504
943
  </div>
505
944
 
506
945
  </li>
@@ -513,7 +952,6 @@
513
952
  <pre class="lines">
514
953
 
515
954
 
516
- 16
517
955
  17
518
956
  18
519
957
  19
@@ -581,78 +1019,241 @@
581
1019
  81
582
1020
  82
583
1021
  83
584
- 84</pre>
1022
+ 84
1023
+ 85
1024
+ 86
1025
+ 87
1026
+ 88
1027
+ 89
1028
+ 90
1029
+ 91
1030
+ 92
1031
+ 93
1032
+ 94
1033
+ 95
1034
+ 96
1035
+ 97
1036
+ 98
1037
+ 99
1038
+ 100
1039
+ 101
1040
+ 102
1041
+ 103
1042
+ 104
1043
+ 105
1044
+ 106
1045
+ 107
1046
+ 108
1047
+ 109
1048
+ 110
1049
+ 111
1050
+ 112
1051
+ 113
1052
+ 114
1053
+ 115
1054
+ 116
1055
+ 117
1056
+ 118
1057
+ 119
1058
+ 120
1059
+ 121
1060
+ 122
1061
+ 123
1062
+ 124
1063
+ 125
1064
+ 126
1065
+ 127
1066
+ 128
1067
+ 129
1068
+ 130
1069
+ 131
1070
+ 132
1071
+ 133
1072
+ 134
1073
+ 135
1074
+ 136
1075
+ 137
1076
+ 138
1077
+ 139
1078
+ 140
1079
+ 141
1080
+ 142
1081
+ 143
1082
+ 144
1083
+ 145
1084
+ 146
1085
+ 147
1086
+ 148
1087
+ 149
1088
+ 150
1089
+ 151
1090
+ 152
1091
+ 153
1092
+ 154
1093
+ 155
1094
+ 156
1095
+ 157
1096
+ 158
1097
+ 159
1098
+ 160
1099
+ 161
1100
+ 162
1101
+ 163
1102
+ 164
1103
+ 165
1104
+ 166</pre>
585
1105
  </td>
586
1106
  <td>
587
- <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 16</span>
1107
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 17</span>
1108
+
1109
+ <span class='kw'>class</span> <span class='const'>I18n</span>
1110
+ <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:locale</span>
1111
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:root</span><span class='comma'>,</span> <span class='symbol'>:path</span><span class='comma'>,</span> <span class='symbol'>:backend</span>
588
1112
 
589
- <span class='kw'>module</span> <span class='const'>I18n</span>
590
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:i18n_locale</span>
591
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:i18n_root</span>
592
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:i18n_locales_path</span>
1113
+ <span class='comment'># The default locale for new instances.
1114
+ </span> <span class='id identifier rubyid_mattr_accessor'>mattr_accessor</span> <span class='symbol'>:default_locale</span>
593
1115
 
594
- <span class='comment'># Setup all I18n translations.
1116
+ <span class='comment'># Returns the singleton instance of the settings.
595
1117
  </span> <span class='comment'>#
1118
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for translations. Default is the current system locale.
596
1119
  </span> <span class='comment'># @param root [Symbol] The root level of the translation.
597
1120
  </span> <span class='comment'># @param path [String] The path where the translations are stored.
598
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n_setup'>i18n_setup</span><span class='lparen'>(</span><span class='id identifier rubyid_root'>root</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
599
- <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_enforce_available_locales'>enforce_available_locales</span> <span class='op'>=</span> <span class='kw'>true</span>
600
- <span class='ivar'>@i18n_root</span> <span class='op'>=</span> <span class='id identifier rubyid_root'>root</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
601
- <span class='ivar'>@i18n_locales_path</span> <span class='op'>=</span> <span class='id identifier rubyid_path'>path</span>
1121
+ </span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
1122
+ </span> <span class='comment'># @return [I18n] The singleton instance of the i18n.
1123
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='symbol'>:lazier</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>force:</span> <span class='kw'>false</span><span class='rparen'>)</span>
1124
+ <span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
1125
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='id identifier rubyid_root'>root</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1126
+ <span class='kw'>end</span>
1127
+
1128
+ <span class='comment'># Creates a new I18n object.
1129
+ </span> <span class='comment'>#
1130
+ </span> <span class='comment'># @param locale [Symbol] The locale to use. Defaults to the current locale.
1131
+ </span> <span class='comment'># @param root [Symbol] The root level of the translation.
1132
+ </span> <span class='comment'># @param path [String] The path where the translations are stored.
1133
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='symbol'>:lazier</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1134
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>||=</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>ROOT</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/locales</span><span class='tstring_end'>&quot;</span></span>
1135
+ <span class='ivar'>@root</span> <span class='op'>=</span> <span class='id identifier rubyid_root'>root</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
1136
+ <span class='ivar'>@path</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_absolute_path'>absolute_path</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
1137
+
1138
+ <span class='id identifier rubyid_setup_backend'>setup_backend</span>
1139
+
1140
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>||</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_default_locale'>default_locale</span> <span class='op'>||</span> <span class='id identifier rubyid_system_locale'>system_locale</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
602
1141
  <span class='kw'>end</span>
603
1142
 
604
- <span class='comment'># Get the list of available translation for the current locale.
1143
+ <span class='comment'># Reloads all the I18n translations.
1144
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_reload'>reload</span>
1145
+ <span class='comment'># Extract the backend to an attribute
1146
+ </span> <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_backend'>backend</span><span class='period'>.</span><span class='id identifier rubyid_load_translations'>load_translations</span>
1147
+ <span class='kw'>end</span>
1148
+
1149
+ <span class='comment'># Gets the list of available translation for a locale.
605
1150
  </span> <span class='comment'>#
606
- </span> <span class='comment'># @return [R18N::Translation] The translation object.
607
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n'>i18n</span>
608
- <span class='ivar'>@i18n</span> <span class='op'>||=</span> <span class='id identifier rubyid_i18n_load_locale'>i18n_load_locale</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='rparen'>)</span>
1151
+ </span> <span class='comment'># @param locale [Symbol] The locale to list. Defaults to the current locale.
1152
+ </span> <span class='comment'># @return [Hash] The available translations for the specified locale.
1153
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translations'>translations</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1154
+ <span class='id identifier rubyid_locale'>locale</span> <span class='op'>||=</span> <span class='ivar'>@locale</span>
1155
+ <span class='ivar'>@backend</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:translations</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
609
1156
  <span class='kw'>end</span>
610
1157
 
611
- <span class='comment'># Set the current locale for messages.
1158
+ <span class='comment'># Sets the current locale.
612
1159
  </span> <span class='comment'>#
613
- </span> <span class='comment'># @param locale [String|Symbol|nil] The new locale. Default is the current system locale.
614
- </span> <span class='comment'># @return [R18n::Translation] The new translation object.
615
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n='>i18n=</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
616
- <span class='ivar'>@i18n_locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
617
- <span class='ivar'>@i18n</span> <span class='op'>=</span> <span class='id identifier rubyid_i18n_load_locale'>i18n_load_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
1160
+ </span> <span class='comment'># @param value [Symbol] The locale to use for translations. Default is the current system locale.
1161
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_locale='>locale=</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
1162
+ <span class='ivar'>@locale</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
1163
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='ivar'>@locale</span>
618
1164
  <span class='kw'>end</span>
619
1165
 
620
- <span class='id identifier rubyid_private'>private</span>
1166
+ <span class='comment'># Get the list of available translation for a locale.
1167
+ </span> <span class='comment'>#
1168
+ </span> <span class='comment'># @return [Array] The list of available locales.
1169
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_locales'>locales</span>
1170
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_available_locales'>available_locales</span>
1171
+ <span class='kw'>end</span>
621
1172
 
622
- <span class='comment'># Loads a locale for messages.
1173
+ <span class='comment'># Localize a message.
623
1174
  </span> <span class='comment'>#
624
- </span> <span class='comment'># @param locale [Symbol] The new locale. Default is the current system locale.
625
- </span> <span class='comment'># @return [R18n::Translation] The new translation object.
626
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n_load_locale'>i18n_load_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
627
- <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='ivar'>@i18n_locales_path</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
628
- <span class='id identifier rubyid_locales'>locales</span> <span class='op'>=</span> <span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1175
+ </span> <span class='comment'># @param message [String|Symbol] The message to localize.
1176
+ </span> <span class='comment'># @param args [Array] Optional arguments to localize the message.
1177
+ </span> <span class='comment'># @return [String] The localized message.
1178
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
1179
+ <span class='comment'># PI: Ignore reek on this.
1180
+ </span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_root'>root</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>!~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^(\.|::)</span><span class='regexp_end'>/</span></span>
629
1181
 
630
1182
  <span class='kw'>begin</span>
631
- <span class='id identifier rubyid_tokens'>tokens</span> <span class='op'>=</span> <span class='ivar'>@i18n_root</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[:.]</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
632
- <span class='id identifier rubyid_translation'>translation</span> <span class='op'>=</span> <span class='id identifier rubyid_tokens'>tokens</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>R18n</span><span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_a'>a</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='op'>|</span> <span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
633
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span> <span class='kw'>if</span> <span class='id identifier rubyid_translation'>translation</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>R18n</span><span class='op'>::</span><span class='const'>Untranslated</span><span class='rparen'>)</span>
634
- <span class='id identifier rubyid_translation'>translation</span>
635
- <span class='kw'>rescue</span>
636
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>MissingTranslation</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1183
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>**</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='label'>raise:</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
1184
+ <span class='kw'>rescue</span> <span class='op'>::</span><span class='const'>I18n</span><span class='op'>::</span><span class='const'>MissingTranslationData</span>
1185
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>MissingTranslation</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rbracket'>]</span>
637
1186
  <span class='kw'>end</span>
638
1187
  <span class='kw'>end</span>
1188
+ <span class='id identifier rubyid_alias_method'>alias_method</span> <span class='symbol'>:t</span><span class='comma'>,</span> <span class='symbol'>:translate</span>
639
1189
 
640
- <span class='comment'># Validates locales for messages.
1190
+ <span class='comment'># Localize a message in a specific locale.
641
1191
  </span> <span class='comment'>#
642
- </span> <span class='comment'># @param locales [Array] The list of locales to validate. English is added as fallback.
643
- </span> <span class='comment'># @param path [String] The path where look into.
644
- </span> <span class='comment'># @return [Array] The list of valid locales.
645
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
646
- <span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span> <span class='op'>+</span> <span class='lbracket'>[</span><span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LANG</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='const'>R18n</span><span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_system_locale'>system_locale</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>en</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_l'>l</span><span class='op'>|</span> <span class='id identifier rubyid_find_locale_in_path'>find_locale_in_path</span><span class='lparen'>(</span><span class='id identifier rubyid_l'>l</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:to_s</span><span class='rparen'>)</span>
1192
+ </span> <span class='comment'># @param message [String|Symbol] The message to localize.
1193
+ </span> <span class='comment'># @param locale [String|Symbol] The new locale to use for localization.
1194
+ </span> <span class='comment'># @param args [Array] Optional arguments to localize the message.
1195
+ </span> <span class='comment'># @return [String] The localized message.
1196
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translate_in_locale'>translate_in_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
1197
+ <span class='id identifier rubyid_with_locale'>with_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
647
1198
  <span class='kw'>end</span>
1199
+ <span class='id identifier rubyid_alias_method'>alias_method</span> <span class='symbol'>:tl</span><span class='comma'>,</span> <span class='symbol'>:translate_in_locale</span>
648
1200
 
649
- <span class='comment'># Find a locale file in a path.
1201
+ <span class='comment'># Temporary sets a different locale and execute the given block.
650
1202
  </span> <span class='comment'>#
651
- </span> <span class='comment'># @param locale [String] The locale to find.
652
- </span> <span class='comment'># @param path [String] The path where look into.
653
- </span> <span class='comment'># @return [String|nil] The version of the locale found or `nil`, if nothing was found.
654
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_find_locale_in_path'>find_locale_in_path</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
655
- <span class='id identifier rubyid_locale'>locale</span> <span class='op'>?</span> <span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>5</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>2</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_l'>l</span><span class='op'>|</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_path'>path</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_l'>l</span><span class='embexpr_end'>}</span><span class='tstring_content'>.yml</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span> <span class='op'>:</span> <span class='kw'>nil</span>
1203
+ </span> <span class='comment'># @param locale [String|Symbol] The new locale to use for localization.
1204
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_with_locale'>with_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
1205
+ <span class='id identifier rubyid_old_locale'>old_locale</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span>
1206
+
1207
+ <span class='kw'>begin</span>
1208
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
1209
+ <span class='kw'>return</span> <span class='kw'>yield</span>
1210
+ <span class='kw'>ensure</span>
1211
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='id identifier rubyid_old_locale'>old_locale</span>
1212
+ <span class='kw'>end</span>
1213
+ <span class='kw'>end</span>
1214
+
1215
+ <span class='id identifier rubyid_private'>private</span>
1216
+
1217
+ <span class='comment'># :nodoc:
1218
+ </span> <span class='const'>OSX_DETECTION</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>defaults read .GlobalPreferences AppleLanguages | awk &#39;NR==2{gsub(/[ ,]/, \&quot;\&quot;);print}&#39;</span><span class='tstring_end'>&quot;</span></span>
1219
+
1220
+ <span class='comment'># :nodoc:
1221
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale'>system_locale</span>
1222
+ <span class='id identifier rubyid_platform'>platform</span> <span class='op'>=</span> <span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span>
1223
+
1224
+ <span class='kw'>if</span> <span class='lbracket'>[</span><span class='symbol'>:java</span><span class='comma'>,</span> <span class='symbol'>:osx</span><span class='comma'>,</span> <span class='symbol'>:posix</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_platform'>platform</span><span class='rparen'>)</span>
1225
+ <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>system_locale_</span><span class='embexpr_beg'>#{</span><span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1226
+ <span class='kw'>else</span>
1227
+ <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='const'>RuntimeError</span><span class='rparen'>)</span>
1228
+ <span class='kw'>end</span>
1229
+ <span class='kw'>rescue</span>
1230
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>en</span><span class='tstring_end'>&quot;</span></span>
1231
+ <span class='kw'>end</span>
1232
+
1233
+ <span class='comment'># :nodoc:
1234
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_java'>system_locale_java</span>
1235
+ <span class='const'>Java</span><span class='period'>.</span><span class='id identifier rubyid_java'>java</span><span class='period'>.</span><span class='id identifier rubyid_util'>util</span><span class='period'>.</span><span class='const'>Locale</span><span class='period'>.</span><span class='id identifier rubyid_getDefault'>getDefault</span><span class='period'>.</span><span class='id identifier rubyid_toString'>toString</span>
1236
+ <span class='kw'>end</span>
1237
+
1238
+ <span class='comment'># :nodoc:
1239
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_osx'>system_locale_osx</span>
1240
+ <span class='backtick'>`</span><span class='embexpr_beg'>#{</span><span class='const'>OSX_DETECTION</span><span class='embexpr_end'>}</span><span class='tstring_end'>`</span></span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
1241
+ <span class='kw'>end</span>
1242
+
1243
+ <span class='comment'># :nodoc:
1244
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_posix'>system_locale_posix</span>
1245
+ <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LANG</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1246
+ <span class='kw'>end</span>
1247
+
1248
+ <span class='comment'># :nodoc:
1249
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_setup_backend'>setup_backend</span>
1250
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_enforce_available_locales'>enforce_available_locales</span> <span class='op'>=</span> <span class='kw'>true</span>
1251
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_load_path'>load_path</span> <span class='op'>+=</span> <span class='const'>Dir</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@path</span><span class='embexpr_end'>}</span><span class='tstring_content'>/*.yml</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1252
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_load_path'>load_path</span><span class='period'>.</span><span class='id identifier rubyid_uniq!'>uniq!</span>
1253
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_exception_handler'>exception_handler</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>TranslationExceptionHandler</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1254
+ <span class='id identifier rubyid_reload'>reload</span>
1255
+
1256
+ <span class='ivar'>@backend</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_backend'>backend</span>
656
1257
  <span class='kw'>end</span>
657
1258
  <span class='kw'>end</span></pre>
658
1259
  </td>
@@ -663,9 +1264,9 @@
663
1264
 
664
1265
  <span id=""></span>
665
1266
  <div class="method_details ">
666
- <h3 class="signature " id="i18n_root-instance_method">
1267
+ <h3 class="signature " id="path-instance_method">
667
1268
 
668
- - (<tt>Symbol</tt>) <strong>i18n_root</strong> <span class="extras">(readonly)</span>
1269
+ - (<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span></tt>) <strong>path</strong> <span class="extras">(readonly)</span>
669
1270
 
670
1271
 
671
1272
 
@@ -673,7 +1274,7 @@
673
1274
 
674
1275
  </h3><div class="docstring">
675
1276
  <div class="discussion">
676
- <p>Returns The root level of the translation.</p>
1277
+ <p>Returns The path where the translations are stored.</p>
677
1278
 
678
1279
 
679
1280
  </div>
@@ -686,12 +1287,12 @@
686
1287
  <li>
687
1288
 
688
1289
 
689
- <span class='type'>(<tt>Symbol</tt>)</span>
1290
+ <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span></tt>)</span>
690
1291
 
691
1292
 
692
1293
 
693
1294
  &mdash;
694
- <div class='inline'><p>The root level of the translation.</p>
1295
+ <div class='inline'><p>The path where the translations are stored.</p>
695
1296
  </div>
696
1297
 
697
1298
  </li>
@@ -704,7 +1305,6 @@
704
1305
  <pre class="lines">
705
1306
 
706
1307
 
707
- 16
708
1308
  17
709
1309
  18
710
1310
  19
@@ -772,78 +1372,241 @@
772
1372
  81
773
1373
  82
774
1374
  83
775
- 84</pre>
1375
+ 84
1376
+ 85
1377
+ 86
1378
+ 87
1379
+ 88
1380
+ 89
1381
+ 90
1382
+ 91
1383
+ 92
1384
+ 93
1385
+ 94
1386
+ 95
1387
+ 96
1388
+ 97
1389
+ 98
1390
+ 99
1391
+ 100
1392
+ 101
1393
+ 102
1394
+ 103
1395
+ 104
1396
+ 105
1397
+ 106
1398
+ 107
1399
+ 108
1400
+ 109
1401
+ 110
1402
+ 111
1403
+ 112
1404
+ 113
1405
+ 114
1406
+ 115
1407
+ 116
1408
+ 117
1409
+ 118
1410
+ 119
1411
+ 120
1412
+ 121
1413
+ 122
1414
+ 123
1415
+ 124
1416
+ 125
1417
+ 126
1418
+ 127
1419
+ 128
1420
+ 129
1421
+ 130
1422
+ 131
1423
+ 132
1424
+ 133
1425
+ 134
1426
+ 135
1427
+ 136
1428
+ 137
1429
+ 138
1430
+ 139
1431
+ 140
1432
+ 141
1433
+ 142
1434
+ 143
1435
+ 144
1436
+ 145
1437
+ 146
1438
+ 147
1439
+ 148
1440
+ 149
1441
+ 150
1442
+ 151
1443
+ 152
1444
+ 153
1445
+ 154
1446
+ 155
1447
+ 156
1448
+ 157
1449
+ 158
1450
+ 159
1451
+ 160
1452
+ 161
1453
+ 162
1454
+ 163
1455
+ 164
1456
+ 165
1457
+ 166</pre>
776
1458
  </td>
777
1459
  <td>
778
- <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 16</span>
1460
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 17</span>
1461
+
1462
+ <span class='kw'>class</span> <span class='const'>I18n</span>
1463
+ <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:locale</span>
1464
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:root</span><span class='comma'>,</span> <span class='symbol'>:path</span><span class='comma'>,</span> <span class='symbol'>:backend</span>
779
1465
 
780
- <span class='kw'>module</span> <span class='const'>I18n</span>
781
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:i18n_locale</span>
782
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:i18n_root</span>
783
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:i18n_locales_path</span>
1466
+ <span class='comment'># The default locale for new instances.
1467
+ </span> <span class='id identifier rubyid_mattr_accessor'>mattr_accessor</span> <span class='symbol'>:default_locale</span>
784
1468
 
785
- <span class='comment'># Setup all I18n translations.
1469
+ <span class='comment'># Returns the singleton instance of the settings.
786
1470
  </span> <span class='comment'>#
1471
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for translations. Default is the current system locale.
787
1472
  </span> <span class='comment'># @param root [Symbol] The root level of the translation.
788
1473
  </span> <span class='comment'># @param path [String] The path where the translations are stored.
789
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n_setup'>i18n_setup</span><span class='lparen'>(</span><span class='id identifier rubyid_root'>root</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
790
- <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_enforce_available_locales'>enforce_available_locales</span> <span class='op'>=</span> <span class='kw'>true</span>
791
- <span class='ivar'>@i18n_root</span> <span class='op'>=</span> <span class='id identifier rubyid_root'>root</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
792
- <span class='ivar'>@i18n_locales_path</span> <span class='op'>=</span> <span class='id identifier rubyid_path'>path</span>
1474
+ </span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
1475
+ </span> <span class='comment'># @return [I18n] The singleton instance of the i18n.
1476
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='symbol'>:lazier</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>force:</span> <span class='kw'>false</span><span class='rparen'>)</span>
1477
+ <span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
1478
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='id identifier rubyid_root'>root</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1479
+ <span class='kw'>end</span>
1480
+
1481
+ <span class='comment'># Creates a new I18n object.
1482
+ </span> <span class='comment'>#
1483
+ </span> <span class='comment'># @param locale [Symbol] The locale to use. Defaults to the current locale.
1484
+ </span> <span class='comment'># @param root [Symbol] The root level of the translation.
1485
+ </span> <span class='comment'># @param path [String] The path where the translations are stored.
1486
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='symbol'>:lazier</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1487
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>||=</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>ROOT</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/locales</span><span class='tstring_end'>&quot;</span></span>
1488
+ <span class='ivar'>@root</span> <span class='op'>=</span> <span class='id identifier rubyid_root'>root</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
1489
+ <span class='ivar'>@path</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_absolute_path'>absolute_path</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
1490
+
1491
+ <span class='id identifier rubyid_setup_backend'>setup_backend</span>
1492
+
1493
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>||</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_default_locale'>default_locale</span> <span class='op'>||</span> <span class='id identifier rubyid_system_locale'>system_locale</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
793
1494
  <span class='kw'>end</span>
794
1495
 
795
- <span class='comment'># Get the list of available translation for the current locale.
1496
+ <span class='comment'># Reloads all the I18n translations.
1497
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_reload'>reload</span>
1498
+ <span class='comment'># Extract the backend to an attribute
1499
+ </span> <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_backend'>backend</span><span class='period'>.</span><span class='id identifier rubyid_load_translations'>load_translations</span>
1500
+ <span class='kw'>end</span>
1501
+
1502
+ <span class='comment'># Gets the list of available translation for a locale.
796
1503
  </span> <span class='comment'>#
797
- </span> <span class='comment'># @return [R18N::Translation] The translation object.
798
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n'>i18n</span>
799
- <span class='ivar'>@i18n</span> <span class='op'>||=</span> <span class='id identifier rubyid_i18n_load_locale'>i18n_load_locale</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='rparen'>)</span>
1504
+ </span> <span class='comment'># @param locale [Symbol] The locale to list. Defaults to the current locale.
1505
+ </span> <span class='comment'># @return [Hash] The available translations for the specified locale.
1506
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translations'>translations</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1507
+ <span class='id identifier rubyid_locale'>locale</span> <span class='op'>||=</span> <span class='ivar'>@locale</span>
1508
+ <span class='ivar'>@backend</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:translations</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
800
1509
  <span class='kw'>end</span>
801
1510
 
802
- <span class='comment'># Set the current locale for messages.
1511
+ <span class='comment'># Sets the current locale.
803
1512
  </span> <span class='comment'>#
804
- </span> <span class='comment'># @param locale [String|Symbol|nil] The new locale. Default is the current system locale.
805
- </span> <span class='comment'># @return [R18n::Translation] The new translation object.
806
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n='>i18n=</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
807
- <span class='ivar'>@i18n_locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
808
- <span class='ivar'>@i18n</span> <span class='op'>=</span> <span class='id identifier rubyid_i18n_load_locale'>i18n_load_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
1513
+ </span> <span class='comment'># @param value [Symbol] The locale to use for translations. Default is the current system locale.
1514
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_locale='>locale=</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
1515
+ <span class='ivar'>@locale</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
1516
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='ivar'>@locale</span>
809
1517
  <span class='kw'>end</span>
810
1518
 
811
- <span class='id identifier rubyid_private'>private</span>
1519
+ <span class='comment'># Get the list of available translation for a locale.
1520
+ </span> <span class='comment'>#
1521
+ </span> <span class='comment'># @return [Array] The list of available locales.
1522
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_locales'>locales</span>
1523
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_available_locales'>available_locales</span>
1524
+ <span class='kw'>end</span>
812
1525
 
813
- <span class='comment'># Loads a locale for messages.
1526
+ <span class='comment'># Localize a message.
814
1527
  </span> <span class='comment'>#
815
- </span> <span class='comment'># @param locale [Symbol] The new locale. Default is the current system locale.
816
- </span> <span class='comment'># @return [R18n::Translation] The new translation object.
817
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_i18n_load_locale'>i18n_load_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
818
- <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='ivar'>@i18n_locales_path</span> <span class='op'>||</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
819
- <span class='id identifier rubyid_locales'>locales</span> <span class='op'>=</span> <span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1528
+ </span> <span class='comment'># @param message [String|Symbol] The message to localize.
1529
+ </span> <span class='comment'># @param args [Array] Optional arguments to localize the message.
1530
+ </span> <span class='comment'># @return [String] The localized message.
1531
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
1532
+ <span class='comment'># PI: Ignore reek on this.
1533
+ </span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_root'>root</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>!~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^(\.|::)</span><span class='regexp_end'>/</span></span>
820
1534
 
821
1535
  <span class='kw'>begin</span>
822
- <span class='id identifier rubyid_tokens'>tokens</span> <span class='op'>=</span> <span class='ivar'>@i18n_root</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[:.]</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
823
- <span class='id identifier rubyid_translation'>translation</span> <span class='op'>=</span> <span class='id identifier rubyid_tokens'>tokens</span><span class='period'>.</span><span class='id identifier rubyid_reduce'>reduce</span><span class='lparen'>(</span><span class='const'>R18n</span><span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_t'>t</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_a'>a</span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='op'>|</span> <span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
824
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span> <span class='kw'>if</span> <span class='id identifier rubyid_translation'>translation</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>R18n</span><span class='op'>::</span><span class='const'>Untranslated</span><span class='rparen'>)</span>
825
- <span class='id identifier rubyid_translation'>translation</span>
826
- <span class='kw'>rescue</span>
827
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>MissingTranslation</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1536
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>**</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='label'>raise:</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
1537
+ <span class='kw'>rescue</span> <span class='op'>::</span><span class='const'>I18n</span><span class='op'>::</span><span class='const'>MissingTranslationData</span>
1538
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>MissingTranslation</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rbracket'>]</span>
828
1539
  <span class='kw'>end</span>
829
1540
  <span class='kw'>end</span>
1541
+ <span class='id identifier rubyid_alias_method'>alias_method</span> <span class='symbol'>:t</span><span class='comma'>,</span> <span class='symbol'>:translate</span>
830
1542
 
831
- <span class='comment'># Validates locales for messages.
1543
+ <span class='comment'># Localize a message in a specific locale.
832
1544
  </span> <span class='comment'>#
833
- </span> <span class='comment'># @param locales [Array] The list of locales to validate. English is added as fallback.
834
- </span> <span class='comment'># @param path [String] The path where look into.
835
- </span> <span class='comment'># @return [Array] The list of valid locales.
836
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_validate_locales'>validate_locales</span><span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
837
- <span class='lparen'>(</span><span class='id identifier rubyid_locales'>locales</span> <span class='op'>+</span> <span class='lbracket'>[</span><span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LANG</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='const'>R18n</span><span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_system_locale'>system_locale</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>en</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_l'>l</span><span class='op'>|</span> <span class='id identifier rubyid_find_locale_in_path'>find_locale_in_path</span><span class='lparen'>(</span><span class='id identifier rubyid_l'>l</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:to_s</span><span class='rparen'>)</span>
1545
+ </span> <span class='comment'># @param message [String|Symbol] The message to localize.
1546
+ </span> <span class='comment'># @param locale [String|Symbol] The new locale to use for localization.
1547
+ </span> <span class='comment'># @param args [Array] Optional arguments to localize the message.
1548
+ </span> <span class='comment'># @return [String] The localized message.
1549
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translate_in_locale'>translate_in_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
1550
+ <span class='id identifier rubyid_with_locale'>with_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
838
1551
  <span class='kw'>end</span>
1552
+ <span class='id identifier rubyid_alias_method'>alias_method</span> <span class='symbol'>:tl</span><span class='comma'>,</span> <span class='symbol'>:translate_in_locale</span>
839
1553
 
840
- <span class='comment'># Find a locale file in a path.
1554
+ <span class='comment'># Temporary sets a different locale and execute the given block.
841
1555
  </span> <span class='comment'>#
842
- </span> <span class='comment'># @param locale [String] The locale to find.
843
- </span> <span class='comment'># @param path [String] The path where look into.
844
- </span> <span class='comment'># @return [String|nil] The version of the locale found or `nil`, if nothing was found.
845
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_find_locale_in_path'>find_locale_in_path</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
846
- <span class='id identifier rubyid_locale'>locale</span> <span class='op'>?</span> <span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>5</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>2</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_l'>l</span><span class='op'>|</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_path'>path</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_l'>l</span><span class='embexpr_end'>}</span><span class='tstring_content'>.yml</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span> <span class='op'>:</span> <span class='kw'>nil</span>
1556
+ </span> <span class='comment'># @param locale [String|Symbol] The new locale to use for localization.
1557
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_with_locale'>with_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
1558
+ <span class='id identifier rubyid_old_locale'>old_locale</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span>
1559
+
1560
+ <span class='kw'>begin</span>
1561
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
1562
+ <span class='kw'>return</span> <span class='kw'>yield</span>
1563
+ <span class='kw'>ensure</span>
1564
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='id identifier rubyid_old_locale'>old_locale</span>
1565
+ <span class='kw'>end</span>
1566
+ <span class='kw'>end</span>
1567
+
1568
+ <span class='id identifier rubyid_private'>private</span>
1569
+
1570
+ <span class='comment'># :nodoc:
1571
+ </span> <span class='const'>OSX_DETECTION</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>defaults read .GlobalPreferences AppleLanguages | awk &#39;NR==2{gsub(/[ ,]/, \&quot;\&quot;);print}&#39;</span><span class='tstring_end'>&quot;</span></span>
1572
+
1573
+ <span class='comment'># :nodoc:
1574
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale'>system_locale</span>
1575
+ <span class='id identifier rubyid_platform'>platform</span> <span class='op'>=</span> <span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span>
1576
+
1577
+ <span class='kw'>if</span> <span class='lbracket'>[</span><span class='symbol'>:java</span><span class='comma'>,</span> <span class='symbol'>:osx</span><span class='comma'>,</span> <span class='symbol'>:posix</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_platform'>platform</span><span class='rparen'>)</span>
1578
+ <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>system_locale_</span><span class='embexpr_beg'>#{</span><span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1579
+ <span class='kw'>else</span>
1580
+ <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='const'>RuntimeError</span><span class='rparen'>)</span>
1581
+ <span class='kw'>end</span>
1582
+ <span class='kw'>rescue</span>
1583
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>en</span><span class='tstring_end'>&quot;</span></span>
1584
+ <span class='kw'>end</span>
1585
+
1586
+ <span class='comment'># :nodoc:
1587
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_java'>system_locale_java</span>
1588
+ <span class='const'>Java</span><span class='period'>.</span><span class='id identifier rubyid_java'>java</span><span class='period'>.</span><span class='id identifier rubyid_util'>util</span><span class='period'>.</span><span class='const'>Locale</span><span class='period'>.</span><span class='id identifier rubyid_getDefault'>getDefault</span><span class='period'>.</span><span class='id identifier rubyid_toString'>toString</span>
1589
+ <span class='kw'>end</span>
1590
+
1591
+ <span class='comment'># :nodoc:
1592
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_osx'>system_locale_osx</span>
1593
+ <span class='backtick'>`</span><span class='embexpr_beg'>#{</span><span class='const'>OSX_DETECTION</span><span class='embexpr_end'>}</span><span class='tstring_end'>`</span></span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
1594
+ <span class='kw'>end</span>
1595
+
1596
+ <span class='comment'># :nodoc:
1597
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_posix'>system_locale_posix</span>
1598
+ <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LANG</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1599
+ <span class='kw'>end</span>
1600
+
1601
+ <span class='comment'># :nodoc:
1602
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_setup_backend'>setup_backend</span>
1603
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_enforce_available_locales'>enforce_available_locales</span> <span class='op'>=</span> <span class='kw'>true</span>
1604
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_load_path'>load_path</span> <span class='op'>+=</span> <span class='const'>Dir</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@path</span><span class='embexpr_end'>}</span><span class='tstring_content'>/*.yml</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1605
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_load_path'>load_path</span><span class='period'>.</span><span class='id identifier rubyid_uniq!'>uniq!</span>
1606
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_exception_handler'>exception_handler</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>TranslationExceptionHandler</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1607
+ <span class='id identifier rubyid_reload'>reload</span>
1608
+
1609
+ <span class='ivar'>@backend</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_backend'>backend</span>
847
1610
  <span class='kw'>end</span>
848
1611
  <span class='kw'>end</span></pre>
849
1612
  </td>
@@ -851,17 +1614,12 @@
851
1614
  </table>
852
1615
  </div>
853
1616
 
854
- </div>
855
-
856
-
857
- <div id="instance_method_details" class="method_details_list">
858
- <h2>Instance Method Details</h2>
859
-
860
-
861
- <div class="method_details first">
862
- <h3 class="signature first" id="i18n-instance_method">
1617
+
1618
+ <span id=""></span>
1619
+ <div class="method_details ">
1620
+ <h3 class="signature " id="root-instance_method">
863
1621
 
864
- - (<tt>R18N::Translation</tt>) <strong>i18n</strong>
1622
+ - (<tt>Symbol</tt>) <strong>root</strong> <span class="extras">(readonly)</span>
865
1623
 
866
1624
 
867
1625
 
@@ -869,7 +1627,7 @@
869
1627
 
870
1628
  </h3><div class="docstring">
871
1629
  <div class="discussion">
872
- <p>Get the list of available translation for the current locale.</p>
1630
+ <p>Returns The root level of the translation.</p>
873
1631
 
874
1632
 
875
1633
  </div>
@@ -882,12 +1640,12 @@
882
1640
  <li>
883
1641
 
884
1642
 
885
- <span class='type'>(<tt>R18N::Translation</tt>)</span>
1643
+ <span class='type'>(<tt>Symbol</tt>)</span>
886
1644
 
887
1645
 
888
1646
 
889
1647
  &mdash;
890
- <div class='inline'><p>The translation object.</p>
1648
+ <div class='inline'><p>The root level of the translation.</p>
891
1649
  </div>
892
1650
 
893
1651
  </li>
@@ -900,25 +1658,326 @@
900
1658
  <pre class="lines">
901
1659
 
902
1660
 
1661
+ 17
1662
+ 18
1663
+ 19
1664
+ 20
1665
+ 21
1666
+ 22
1667
+ 23
1668
+ 24
1669
+ 25
1670
+ 26
1671
+ 27
1672
+ 28
1673
+ 29
1674
+ 30
1675
+ 31
1676
+ 32
1677
+ 33
903
1678
  34
904
1679
  35
905
- 36</pre>
1680
+ 36
1681
+ 37
1682
+ 38
1683
+ 39
1684
+ 40
1685
+ 41
1686
+ 42
1687
+ 43
1688
+ 44
1689
+ 45
1690
+ 46
1691
+ 47
1692
+ 48
1693
+ 49
1694
+ 50
1695
+ 51
1696
+ 52
1697
+ 53
1698
+ 54
1699
+ 55
1700
+ 56
1701
+ 57
1702
+ 58
1703
+ 59
1704
+ 60
1705
+ 61
1706
+ 62
1707
+ 63
1708
+ 64
1709
+ 65
1710
+ 66
1711
+ 67
1712
+ 68
1713
+ 69
1714
+ 70
1715
+ 71
1716
+ 72
1717
+ 73
1718
+ 74
1719
+ 75
1720
+ 76
1721
+ 77
1722
+ 78
1723
+ 79
1724
+ 80
1725
+ 81
1726
+ 82
1727
+ 83
1728
+ 84
1729
+ 85
1730
+ 86
1731
+ 87
1732
+ 88
1733
+ 89
1734
+ 90
1735
+ 91
1736
+ 92
1737
+ 93
1738
+ 94
1739
+ 95
1740
+ 96
1741
+ 97
1742
+ 98
1743
+ 99
1744
+ 100
1745
+ 101
1746
+ 102
1747
+ 103
1748
+ 104
1749
+ 105
1750
+ 106
1751
+ 107
1752
+ 108
1753
+ 109
1754
+ 110
1755
+ 111
1756
+ 112
1757
+ 113
1758
+ 114
1759
+ 115
1760
+ 116
1761
+ 117
1762
+ 118
1763
+ 119
1764
+ 120
1765
+ 121
1766
+ 122
1767
+ 123
1768
+ 124
1769
+ 125
1770
+ 126
1771
+ 127
1772
+ 128
1773
+ 129
1774
+ 130
1775
+ 131
1776
+ 132
1777
+ 133
1778
+ 134
1779
+ 135
1780
+ 136
1781
+ 137
1782
+ 138
1783
+ 139
1784
+ 140
1785
+ 141
1786
+ 142
1787
+ 143
1788
+ 144
1789
+ 145
1790
+ 146
1791
+ 147
1792
+ 148
1793
+ 149
1794
+ 150
1795
+ 151
1796
+ 152
1797
+ 153
1798
+ 154
1799
+ 155
1800
+ 156
1801
+ 157
1802
+ 158
1803
+ 159
1804
+ 160
1805
+ 161
1806
+ 162
1807
+ 163
1808
+ 164
1809
+ 165
1810
+ 166</pre>
906
1811
  </td>
907
1812
  <td>
908
- <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 34</span>
1813
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 17</span>
1814
+
1815
+ <span class='kw'>class</span> <span class='const'>I18n</span>
1816
+ <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:locale</span>
1817
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:root</span><span class='comma'>,</span> <span class='symbol'>:path</span><span class='comma'>,</span> <span class='symbol'>:backend</span>
1818
+
1819
+ <span class='comment'># The default locale for new instances.
1820
+ </span> <span class='id identifier rubyid_mattr_accessor'>mattr_accessor</span> <span class='symbol'>:default_locale</span>
1821
+
1822
+ <span class='comment'># Returns the singleton instance of the settings.
1823
+ </span> <span class='comment'>#
1824
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for translations. Default is the current system locale.
1825
+ </span> <span class='comment'># @param root [Symbol] The root level of the translation.
1826
+ </span> <span class='comment'># @param path [String] The path where the translations are stored.
1827
+ </span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
1828
+ </span> <span class='comment'># @return [I18n] The singleton instance of the i18n.
1829
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='symbol'>:lazier</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>force:</span> <span class='kw'>false</span><span class='rparen'>)</span>
1830
+ <span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
1831
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='id identifier rubyid_root'>root</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1832
+ <span class='kw'>end</span>
1833
+
1834
+ <span class='comment'># Creates a new I18n object.
1835
+ </span> <span class='comment'>#
1836
+ </span> <span class='comment'># @param locale [Symbol] The locale to use. Defaults to the current locale.
1837
+ </span> <span class='comment'># @param root [Symbol] The root level of the translation.
1838
+ </span> <span class='comment'># @param path [String] The path where the translations are stored.
1839
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='symbol'>:lazier</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1840
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>||=</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>ROOT</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/locales</span><span class='tstring_end'>&quot;</span></span>
1841
+ <span class='ivar'>@root</span> <span class='op'>=</span> <span class='id identifier rubyid_root'>root</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
1842
+ <span class='ivar'>@path</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_absolute_path'>absolute_path</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
1843
+
1844
+ <span class='id identifier rubyid_setup_backend'>setup_backend</span>
909
1845
 
910
- <span class='kw'>def</span> <span class='id identifier rubyid_i18n'>i18n</span>
911
- <span class='ivar'>@i18n</span> <span class='op'>||=</span> <span class='id identifier rubyid_i18n_load_locale'>i18n_load_locale</span><span class='lparen'>(</span><span class='kw'>nil</span><span class='rparen'>)</span>
1846
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>||</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_default_locale'>default_locale</span> <span class='op'>||</span> <span class='id identifier rubyid_system_locale'>system_locale</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
1847
+ <span class='kw'>end</span>
1848
+
1849
+ <span class='comment'># Reloads all the I18n translations.
1850
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_reload'>reload</span>
1851
+ <span class='comment'># Extract the backend to an attribute
1852
+ </span> <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_backend'>backend</span><span class='period'>.</span><span class='id identifier rubyid_load_translations'>load_translations</span>
1853
+ <span class='kw'>end</span>
1854
+
1855
+ <span class='comment'># Gets the list of available translation for a locale.
1856
+ </span> <span class='comment'>#
1857
+ </span> <span class='comment'># @param locale [Symbol] The locale to list. Defaults to the current locale.
1858
+ </span> <span class='comment'># @return [Hash] The available translations for the specified locale.
1859
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translations'>translations</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1860
+ <span class='id identifier rubyid_locale'>locale</span> <span class='op'>||=</span> <span class='ivar'>@locale</span>
1861
+ <span class='ivar'>@backend</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:translations</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
1862
+ <span class='kw'>end</span>
1863
+
1864
+ <span class='comment'># Sets the current locale.
1865
+ </span> <span class='comment'>#
1866
+ </span> <span class='comment'># @param value [Symbol] The locale to use for translations. Default is the current system locale.
1867
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_locale='>locale=</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
1868
+ <span class='ivar'>@locale</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
1869
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='ivar'>@locale</span>
1870
+ <span class='kw'>end</span>
1871
+
1872
+ <span class='comment'># Get the list of available translation for a locale.
1873
+ </span> <span class='comment'>#
1874
+ </span> <span class='comment'># @return [Array] The list of available locales.
1875
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_locales'>locales</span>
1876
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_available_locales'>available_locales</span>
1877
+ <span class='kw'>end</span>
1878
+
1879
+ <span class='comment'># Localize a message.
1880
+ </span> <span class='comment'>#
1881
+ </span> <span class='comment'># @param message [String|Symbol] The message to localize.
1882
+ </span> <span class='comment'># @param args [Array] Optional arguments to localize the message.
1883
+ </span> <span class='comment'># @return [String] The localized message.
1884
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
1885
+ <span class='comment'># PI: Ignore reek on this.
1886
+ </span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_root'>root</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>!~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^(\.|::)</span><span class='regexp_end'>/</span></span>
1887
+
1888
+ <span class='kw'>begin</span>
1889
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>**</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='label'>raise:</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
1890
+ <span class='kw'>rescue</span> <span class='op'>::</span><span class='const'>I18n</span><span class='op'>::</span><span class='const'>MissingTranslationData</span>
1891
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>MissingTranslation</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rbracket'>]</span>
1892
+ <span class='kw'>end</span>
1893
+ <span class='kw'>end</span>
1894
+ <span class='id identifier rubyid_alias_method'>alias_method</span> <span class='symbol'>:t</span><span class='comma'>,</span> <span class='symbol'>:translate</span>
1895
+
1896
+ <span class='comment'># Localize a message in a specific locale.
1897
+ </span> <span class='comment'>#
1898
+ </span> <span class='comment'># @param message [String|Symbol] The message to localize.
1899
+ </span> <span class='comment'># @param locale [String|Symbol] The new locale to use for localization.
1900
+ </span> <span class='comment'># @param args [Array] Optional arguments to localize the message.
1901
+ </span> <span class='comment'># @return [String] The localized message.
1902
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_translate_in_locale'>translate_in_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
1903
+ <span class='id identifier rubyid_with_locale'>with_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
1904
+ <span class='kw'>end</span>
1905
+ <span class='id identifier rubyid_alias_method'>alias_method</span> <span class='symbol'>:tl</span><span class='comma'>,</span> <span class='symbol'>:translate_in_locale</span>
1906
+
1907
+ <span class='comment'># Temporary sets a different locale and execute the given block.
1908
+ </span> <span class='comment'>#
1909
+ </span> <span class='comment'># @param locale [String|Symbol] The new locale to use for localization.
1910
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_with_locale'>with_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
1911
+ <span class='id identifier rubyid_old_locale'>old_locale</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span>
1912
+
1913
+ <span class='kw'>begin</span>
1914
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
1915
+ <span class='kw'>return</span> <span class='kw'>yield</span>
1916
+ <span class='kw'>ensure</span>
1917
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='id identifier rubyid_old_locale'>old_locale</span>
1918
+ <span class='kw'>end</span>
1919
+ <span class='kw'>end</span>
1920
+
1921
+ <span class='id identifier rubyid_private'>private</span>
1922
+
1923
+ <span class='comment'># :nodoc:
1924
+ </span> <span class='const'>OSX_DETECTION</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>defaults read .GlobalPreferences AppleLanguages | awk &#39;NR==2{gsub(/[ ,]/, \&quot;\&quot;);print}&#39;</span><span class='tstring_end'>&quot;</span></span>
1925
+
1926
+ <span class='comment'># :nodoc:
1927
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale'>system_locale</span>
1928
+ <span class='id identifier rubyid_platform'>platform</span> <span class='op'>=</span> <span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span>
1929
+
1930
+ <span class='kw'>if</span> <span class='lbracket'>[</span><span class='symbol'>:java</span><span class='comma'>,</span> <span class='symbol'>:osx</span><span class='comma'>,</span> <span class='symbol'>:posix</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_platform'>platform</span><span class='rparen'>)</span>
1931
+ <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>system_locale_</span><span class='embexpr_beg'>#{</span><span class='const'>Lazier</span><span class='period'>.</span><span class='id identifier rubyid_platform'>platform</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1932
+ <span class='kw'>else</span>
1933
+ <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='const'>RuntimeError</span><span class='rparen'>)</span>
1934
+ <span class='kw'>end</span>
1935
+ <span class='kw'>rescue</span>
1936
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>en</span><span class='tstring_end'>&quot;</span></span>
1937
+ <span class='kw'>end</span>
1938
+
1939
+ <span class='comment'># :nodoc:
1940
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_java'>system_locale_java</span>
1941
+ <span class='const'>Java</span><span class='period'>.</span><span class='id identifier rubyid_java'>java</span><span class='period'>.</span><span class='id identifier rubyid_util'>util</span><span class='period'>.</span><span class='const'>Locale</span><span class='period'>.</span><span class='id identifier rubyid_getDefault'>getDefault</span><span class='period'>.</span><span class='id identifier rubyid_toString'>toString</span>
1942
+ <span class='kw'>end</span>
1943
+
1944
+ <span class='comment'># :nodoc:
1945
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_osx'>system_locale_osx</span>
1946
+ <span class='backtick'>`</span><span class='embexpr_beg'>#{</span><span class='const'>OSX_DETECTION</span><span class='embexpr_end'>}</span><span class='tstring_end'>`</span></span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
1947
+ <span class='kw'>end</span>
1948
+
1949
+ <span class='comment'># :nodoc:
1950
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_system_locale_posix'>system_locale_posix</span>
1951
+ <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>LANG</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1952
+ <span class='kw'>end</span>
1953
+
1954
+ <span class='comment'># :nodoc:
1955
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_setup_backend'>setup_backend</span>
1956
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_enforce_available_locales'>enforce_available_locales</span> <span class='op'>=</span> <span class='kw'>true</span>
1957
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_load_path'>load_path</span> <span class='op'>+=</span> <span class='const'>Dir</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@path</span><span class='embexpr_end'>}</span><span class='tstring_content'>/*.yml</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1958
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_load_path'>load_path</span><span class='period'>.</span><span class='id identifier rubyid_uniq!'>uniq!</span>
1959
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_exception_handler'>exception_handler</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>TranslationExceptionHandler</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1960
+ <span class='id identifier rubyid_reload'>reload</span>
1961
+
1962
+ <span class='ivar'>@backend</span> <span class='op'>=</span> <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_backend'>backend</span>
1963
+ <span class='kw'>end</span>
912
1964
  <span class='kw'>end</span></pre>
913
1965
  </td>
914
1966
  </tr>
915
1967
  </table>
916
1968
  </div>
917
1969
 
918
- <div class="method_details ">
919
- <h3 class="signature " id="i18n=-instance_method">
1970
+ </div>
1971
+
1972
+
1973
+ <div id="class_method_details" class="method_details_list">
1974
+ <h2>Class Method Details</h2>
1975
+
1976
+
1977
+ <div class="method_details first">
1978
+ <h3 class="signature first" id="instance-class_method">
920
1979
 
921
- - (<tt>R18n::Translation</tt>) <strong>i18n=</strong>(locale)
1980
+ + (<tt><span class='object_link'><a href="" title="Lazier::I18n (class)">I18n</a></span></tt>) <strong>instance</strong>(locale = nil, root: :lazier, path: nil, force: false)
922
1981
 
923
1982
 
924
1983
 
@@ -926,7 +1985,7 @@
926
1985
 
927
1986
  </h3><div class="docstring">
928
1987
  <div class="discussion">
929
- <p>Set the current locale for messages.</p>
1988
+ <p>Returns the singleton instance of the settings.</p>
930
1989
 
931
1990
 
932
1991
  </div>
@@ -940,35 +1999,82 @@
940
1999
  <span class='name'>locale</span>
941
2000
 
942
2001
 
943
- <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span>|Symbol|nil</tt>)</span>
2002
+ <span class='type'>(<tt>Symbol</tt>)</span>
2003
+
944
2004
 
2005
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
945
2006
 
946
2007
 
947
2008
  &mdash;
948
- <div class='inline'><p>The new locale. Default is the current system locale.</p>
2009
+ <div class='inline'><p>The locale to use for translations. Default is the current system locale.</p>
949
2010
  </div>
950
2011
 
951
2012
  </li>
952
2013
 
953
- </ul>
954
-
955
- <p class="tag_title">Returns:</p>
956
- <ul class="return">
957
-
958
2014
  <li>
959
2015
 
2016
+ <span class='name'>root</span>
2017
+
960
2018
 
961
- <span class='type'>(<tt>R18n::Translation</tt>)</span>
2019
+ <span class='type'>(<tt>Symbol</tt>)</span>
962
2020
 
963
2021
 
964
2022
 
965
2023
  &mdash;
966
- <div class='inline'><p>The new translation object.</p>
2024
+ <div class='inline'><p>The root level of the translation.</p>
967
2025
  </div>
968
2026
 
969
2027
  </li>
970
2028
 
971
- </ul>
2029
+ <li>
2030
+
2031
+ <span class='name'>path</span>
2032
+
2033
+
2034
+ <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span></tt>)</span>
2035
+
2036
+
2037
+
2038
+ &mdash;
2039
+ <div class='inline'><p>The path where the translations are stored.</p>
2040
+ </div>
2041
+
2042
+ </li>
2043
+
2044
+ <li>
2045
+
2046
+ <span class='name'>force</span>
2047
+
2048
+
2049
+ <span class='type'>(<tt><span class='object_link'><a href="Boolean.html" title="Lazier::Boolean (module)">Boolean</a></span></tt>)</span>
2050
+
2051
+
2052
+
2053
+ &mdash;
2054
+ <div class='inline'><p>If to force recreation of the instance.</p>
2055
+ </div>
2056
+
2057
+ </li>
2058
+
2059
+ </ul>
2060
+
2061
+ <p class="tag_title">Returns:</p>
2062
+ <ul class="return">
2063
+
2064
+ <li>
2065
+
2066
+
2067
+ <span class='type'>(<tt><span class='object_link'><a href="" title="Lazier::I18n (class)">I18n</a></span></tt>)</span>
2068
+
2069
+
2070
+
2071
+ &mdash;
2072
+ <div class='inline'><p>The singleton instance of the i18n.</p>
2073
+ </div>
2074
+
2075
+ </li>
2076
+
2077
+ </ul>
972
2078
 
973
2079
  </div><table class="source_code">
974
2080
  <tr>
@@ -976,17 +2082,80 @@
976
2082
  <pre class="lines">
977
2083
 
978
2084
 
979
- 42
980
- 43
981
- 44
982
- 45</pre>
2085
+ 31
2086
+ 32
2087
+ 33
2088
+ 34</pre>
2089
+ </td>
2090
+ <td>
2091
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 31</span>
2092
+
2093
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='symbol'>:lazier</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>force:</span> <span class='kw'>false</span><span class='rparen'>)</span>
2094
+ <span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
2095
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='label'>root:</span> <span class='id identifier rubyid_root'>root</span><span class='comma'>,</span> <span class='label'>path:</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
2096
+ <span class='kw'>end</span></pre>
2097
+ </td>
2098
+ </tr>
2099
+ </table>
2100
+ </div>
2101
+
2102
+ </div>
2103
+
2104
+ <div id="instance_method_details" class="method_details_list">
2105
+ <h2>Instance Method Details</h2>
2106
+
2107
+
2108
+ <div class="method_details first">
2109
+ <h3 class="signature first" id="locales-instance_method">
2110
+
2111
+ - (<tt>Array</tt>) <strong>locales</strong>
2112
+
2113
+
2114
+
2115
+
2116
+
2117
+ </h3><div class="docstring">
2118
+ <div class="discussion">
2119
+ <p>Get the list of available translation for a locale.</p>
2120
+
2121
+
2122
+ </div>
2123
+ </div>
2124
+ <div class="tags">
2125
+
2126
+ <p class="tag_title">Returns:</p>
2127
+ <ul class="return">
2128
+
2129
+ <li>
2130
+
2131
+
2132
+ <span class='type'>(<tt>Array</tt>)</span>
2133
+
2134
+
2135
+
2136
+ &mdash;
2137
+ <div class='inline'><p>The list of available locales.</p>
2138
+ </div>
2139
+
2140
+ </li>
2141
+
2142
+ </ul>
2143
+
2144
+ </div><table class="source_code">
2145
+ <tr>
2146
+ <td>
2147
+ <pre class="lines">
2148
+
2149
+
2150
+ 77
2151
+ 78
2152
+ 79</pre>
983
2153
  </td>
984
2154
  <td>
985
- <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 42</span>
2155
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 77</span>
986
2156
 
987
- <span class='kw'>def</span> <span class='id identifier rubyid_i18n='>i18n=</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
988
- <span class='ivar'>@i18n_locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
989
- <span class='ivar'>@i18n</span> <span class='op'>=</span> <span class='id identifier rubyid_i18n_load_locale'>i18n_load_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
2157
+ <span class='kw'>def</span> <span class='id identifier rubyid_locales'>locales</span>
2158
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_available_locales'>available_locales</span>
990
2159
  <span class='kw'>end</span></pre>
991
2160
  </td>
992
2161
  </tr>
@@ -994,9 +2163,9 @@
994
2163
  </div>
995
2164
 
996
2165
  <div class="method_details ">
997
- <h3 class="signature " id="i18n_setup-instance_method">
2166
+ <h3 class="signature " id="reload-instance_method">
998
2167
 
999
- - (<tt><span class='object_link'><a href="Object.html" title="Lazier::Object (module)">Object</a></span></tt>) <strong>i18n_setup</strong>(root, path)
2168
+ - (<tt><span class='object_link'><a href="Object.html" title="Lazier::Object (module)">Object</a></span></tt>) <strong>reload</strong>
1000
2169
 
1001
2170
 
1002
2171
 
@@ -1004,7 +2173,53 @@
1004
2173
 
1005
2174
  </h3><div class="docstring">
1006
2175
  <div class="discussion">
1007
- <p>Setup all I18n translations.</p>
2176
+ <p>Reloads all the I18n translations.</p>
2177
+
2178
+
2179
+ </div>
2180
+ </div>
2181
+ <div class="tags">
2182
+
2183
+
2184
+ </div><table class="source_code">
2185
+ <tr>
2186
+ <td>
2187
+ <pre class="lines">
2188
+
2189
+
2190
+ 52
2191
+ 53
2192
+ 54
2193
+ 55</pre>
2194
+ </td>
2195
+ <td>
2196
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 52</span>
2197
+
2198
+ <span class='kw'>def</span> <span class='id identifier rubyid_reload'>reload</span>
2199
+ <span class='comment'># Extract the backend to an attribute
2200
+ </span> <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_backend'>backend</span><span class='period'>.</span><span class='id identifier rubyid_load_translations'>load_translations</span>
2201
+ <span class='kw'>end</span></pre>
2202
+ </td>
2203
+ </tr>
2204
+ </table>
2205
+ </div>
2206
+
2207
+ <div class="method_details ">
2208
+ <h3 class="signature " id="translate-instance_method">
2209
+
2210
+ - (<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span></tt>) <strong>translate</strong>(message, **args)
2211
+
2212
+
2213
+
2214
+ <span class="aliases">Also known as:
2215
+ <span class="names"><span id='t-instance_method'>t</span></span>
2216
+ </span>
2217
+
2218
+
2219
+
2220
+ </h3><div class="docstring">
2221
+ <div class="discussion">
2222
+ <p>Localize a message.</p>
1008
2223
 
1009
2224
 
1010
2225
  </div>
@@ -1015,22 +2230,40 @@
1015
2230
 
1016
2231
  <li>
1017
2232
 
1018
- <span class='name'>root</span>
2233
+ <span class='name'>message</span>
1019
2234
 
1020
2235
 
1021
- <span class='type'>(<tt>Symbol</tt>)</span>
2236
+ <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span>|Symbol</tt>)</span>
1022
2237
 
1023
2238
 
1024
2239
 
1025
2240
  &mdash;
1026
- <div class='inline'><p>The root level of the translation.</p>
2241
+ <div class='inline'><p>The message to localize.</p>
1027
2242
  </div>
1028
2243
 
1029
2244
  </li>
1030
2245
 
1031
2246
  <li>
1032
2247
 
1033
- <span class='name'>path</span>
2248
+ <span class='name'>args</span>
2249
+
2250
+
2251
+ <span class='type'>(<tt>Array</tt>)</span>
2252
+
2253
+
2254
+
2255
+ &mdash;
2256
+ <div class='inline'><p>Optional arguments to localize the message.</p>
2257
+ </div>
2258
+
2259
+ </li>
2260
+
2261
+ </ul>
2262
+
2263
+ <p class="tag_title">Returns:</p>
2264
+ <ul class="return">
2265
+
2266
+ <li>
1034
2267
 
1035
2268
 
1036
2269
  <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span></tt>)</span>
@@ -1038,13 +2271,136 @@
1038
2271
 
1039
2272
 
1040
2273
  &mdash;
1041
- <div class='inline'><p>The path where the translations are stored.</p>
2274
+ <div class='inline'><p>The localized message.</p>
2275
+ </div>
2276
+
2277
+ </li>
2278
+
2279
+ </ul>
2280
+
2281
+ </div><table class="source_code">
2282
+ <tr>
2283
+ <td>
2284
+ <pre class="lines">
2285
+
2286
+
2287
+ 86
2288
+ 87
2289
+ 88
2290
+ 89
2291
+ 90
2292
+ 91
2293
+ 92
2294
+ 93
2295
+ 94
2296
+ 95</pre>
2297
+ </td>
2298
+ <td>
2299
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 86</span>
2300
+
2301
+ <span class='kw'>def</span> <span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
2302
+ <span class='comment'># PI: Ignore reek on this.
2303
+ </span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_root'>root</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>!~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^(\.|::)</span><span class='regexp_end'>/</span></span>
2304
+
2305
+ <span class='kw'>begin</span>
2306
+ <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>**</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='label'>raise:</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
2307
+ <span class='kw'>rescue</span> <span class='op'>::</span><span class='const'>I18n</span><span class='op'>::</span><span class='const'>MissingTranslationData</span>
2308
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>MissingTranslation</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='rbracket'>]</span>
2309
+ <span class='kw'>end</span>
2310
+ <span class='kw'>end</span></pre>
2311
+ </td>
2312
+ </tr>
2313
+ </table>
2314
+ </div>
2315
+
2316
+ <div class="method_details ">
2317
+ <h3 class="signature " id="translate_in_locale-instance_method">
2318
+
2319
+ - (<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span></tt>) <strong>translate_in_locale</strong>(locale, message, *args)
2320
+
2321
+
2322
+
2323
+ <span class="aliases">Also known as:
2324
+ <span class="names"><span id='tl-instance_method'>tl</span></span>
2325
+ </span>
2326
+
2327
+
2328
+
2329
+ </h3><div class="docstring">
2330
+ <div class="discussion">
2331
+ <p>Localize a message in a specific locale.</p>
2332
+
2333
+
2334
+ </div>
2335
+ </div>
2336
+ <div class="tags">
2337
+ <p class="tag_title">Parameters:</p>
2338
+ <ul class="param">
2339
+
2340
+ <li>
2341
+
2342
+ <span class='name'>message</span>
2343
+
2344
+
2345
+ <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span>|Symbol</tt>)</span>
2346
+
2347
+
2348
+
2349
+ &mdash;
2350
+ <div class='inline'><p>The message to localize.</p>
2351
+ </div>
2352
+
2353
+ </li>
2354
+
2355
+ <li>
2356
+
2357
+ <span class='name'>locale</span>
2358
+
2359
+
2360
+ <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span>|Symbol</tt>)</span>
2361
+
2362
+
2363
+
2364
+ &mdash;
2365
+ <div class='inline'><p>The new locale to use for localization.</p>
2366
+ </div>
2367
+
2368
+ </li>
2369
+
2370
+ <li>
2371
+
2372
+ <span class='name'>args</span>
2373
+
2374
+
2375
+ <span class='type'>(<tt>Array</tt>)</span>
2376
+
2377
+
2378
+
2379
+ &mdash;
2380
+ <div class='inline'><p>Optional arguments to localize the message.</p>
1042
2381
  </div>
1043
2382
 
1044
2383
  </li>
1045
2384
 
1046
2385
  </ul>
1047
2386
 
2387
+ <p class="tag_title">Returns:</p>
2388
+ <ul class="return">
2389
+
2390
+ <li>
2391
+
2392
+
2393
+ <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span></tt>)</span>
2394
+
2395
+
2396
+
2397
+ &mdash;
2398
+ <div class='inline'><p>The localized message.</p>
2399
+ </div>
2400
+
2401
+ </li>
2402
+
2403
+ </ul>
1048
2404
 
1049
2405
  </div><table class="source_code">
1050
2406
  <tr>
@@ -1052,19 +2408,168 @@
1052
2408
  <pre class="lines">
1053
2409
 
1054
2410
 
1055
- 25
1056
- 26
1057
- 27
1058
- 28
1059
- 29</pre>
2411
+ 104
2412
+ 105
2413
+ 106</pre>
2414
+ </td>
2415
+ <td>
2416
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 104</span>
2417
+
2418
+ <span class='kw'>def</span> <span class='id identifier rubyid_translate_in_locale'>translate_in_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span>
2419
+ <span class='id identifier rubyid_with_locale'>with_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_translate'>translate</span><span class='lparen'>(</span><span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
2420
+ <span class='kw'>end</span></pre>
2421
+ </td>
2422
+ </tr>
2423
+ </table>
2424
+ </div>
2425
+
2426
+ <div class="method_details ">
2427
+ <h3 class="signature " id="translations-instance_method">
2428
+
2429
+ - (<tt><span class='object_link'><a href="Hash.html" title="Lazier::Hash (module)">Hash</a></span></tt>) <strong>translations</strong>(locale = nil)
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+ </h3><div class="docstring">
2436
+ <div class="discussion">
2437
+ <p>Gets the list of available translation for a locale.</p>
2438
+
2439
+
2440
+ </div>
2441
+ </div>
2442
+ <div class="tags">
2443
+ <p class="tag_title">Parameters:</p>
2444
+ <ul class="param">
2445
+
2446
+ <li>
2447
+
2448
+ <span class='name'>locale</span>
2449
+
2450
+
2451
+ <span class='type'>(<tt>Symbol</tt>)</span>
2452
+
2453
+
2454
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
2455
+
2456
+
2457
+ &mdash;
2458
+ <div class='inline'><p>The locale to list. Defaults to the current locale.</p>
2459
+ </div>
2460
+
2461
+ </li>
2462
+
2463
+ </ul>
2464
+
2465
+ <p class="tag_title">Returns:</p>
2466
+ <ul class="return">
2467
+
2468
+ <li>
2469
+
2470
+
2471
+ <span class='type'>(<tt><span class='object_link'><a href="Hash.html" title="Lazier::Hash (module)">Hash</a></span></tt>)</span>
2472
+
2473
+
2474
+
2475
+ &mdash;
2476
+ <div class='inline'><p>The available translations for the specified locale.</p>
2477
+ </div>
2478
+
2479
+ </li>
2480
+
2481
+ </ul>
2482
+
2483
+ </div><table class="source_code">
2484
+ <tr>
2485
+ <td>
2486
+ <pre class="lines">
2487
+
2488
+
2489
+ 61
2490
+ 62
2491
+ 63
2492
+ 64</pre>
1060
2493
  </td>
1061
2494
  <td>
1062
- <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 25</span>
2495
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 61</span>
1063
2496
 
1064
- <span class='kw'>def</span> <span class='id identifier rubyid_i18n_setup'>i18n_setup</span><span class='lparen'>(</span><span class='id identifier rubyid_root'>root</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1065
- <span class='op'>::</span><span class='const'>I18n</span><span class='period'>.</span><span class='id identifier rubyid_enforce_available_locales'>enforce_available_locales</span> <span class='op'>=</span> <span class='kw'>true</span>
1066
- <span class='ivar'>@i18n_root</span> <span class='op'>=</span> <span class='id identifier rubyid_root'>root</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
1067
- <span class='ivar'>@i18n_locales_path</span> <span class='op'>=</span> <span class='id identifier rubyid_path'>path</span>
2497
+ <span class='kw'>def</span> <span class='id identifier rubyid_translations'>translations</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
2498
+ <span class='id identifier rubyid_locale'>locale</span> <span class='op'>||=</span> <span class='ivar'>@locale</span>
2499
+ <span class='ivar'>@backend</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:translations</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='id identifier rubyid_locale'>locale</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
2500
+ <span class='kw'>end</span></pre>
2501
+ </td>
2502
+ </tr>
2503
+ </table>
2504
+ </div>
2505
+
2506
+ <div class="method_details ">
2507
+ <h3 class="signature " id="with_locale-instance_method">
2508
+
2509
+ - (<tt><span class='object_link'><a href="Object.html" title="Lazier::Object (module)">Object</a></span></tt>) <strong>with_locale</strong>(locale)
2510
+
2511
+
2512
+
2513
+
2514
+
2515
+ </h3><div class="docstring">
2516
+ <div class="discussion">
2517
+ <p>Temporary sets a different locale and execute the given block.</p>
2518
+
2519
+
2520
+ </div>
2521
+ </div>
2522
+ <div class="tags">
2523
+ <p class="tag_title">Parameters:</p>
2524
+ <ul class="param">
2525
+
2526
+ <li>
2527
+
2528
+ <span class='name'>locale</span>
2529
+
2530
+
2531
+ <span class='type'>(<tt><span class='object_link'><a href="String.html" title="Lazier::String (module)">String</a></span>|Symbol</tt>)</span>
2532
+
2533
+
2534
+
2535
+ &mdash;
2536
+ <div class='inline'><p>The new locale to use for localization.</p>
2537
+ </div>
2538
+
2539
+ </li>
2540
+
2541
+ </ul>
2542
+
2543
+
2544
+ </div><table class="source_code">
2545
+ <tr>
2546
+ <td>
2547
+ <pre class="lines">
2548
+
2549
+
2550
+ 112
2551
+ 113
2552
+ 114
2553
+ 115
2554
+ 116
2555
+ 117
2556
+ 118
2557
+ 119
2558
+ 120
2559
+ 121</pre>
2560
+ </td>
2561
+ <td>
2562
+ <pre class="code"><span class="info file"># File 'lib/lazier/i18n.rb', line 112</span>
2563
+
2564
+ <span class='kw'>def</span> <span class='id identifier rubyid_with_locale'>with_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
2565
+ <span class='id identifier rubyid_old_locale'>old_locale</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span>
2566
+
2567
+ <span class='kw'>begin</span>
2568
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
2569
+ <span class='kw'>return</span> <span class='kw'>yield</span>
2570
+ <span class='kw'>ensure</span>
2571
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='id identifier rubyid_old_locale'>old_locale</span>
2572
+ <span class='kw'>end</span>
1068
2573
  <span class='kw'>end</span></pre>
1069
2574
  </td>
1070
2575
  </tr>
@@ -1076,7 +2581,7 @@
1076
2581
  </div>
1077
2582
 
1078
2583
  <div id="footer">
1079
- Generated on Thu Jun 19 11:49:04 2014 by
2584
+ Generated on Sun Jun 1 15:50:06 2014 by
1080
2585
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1081
2586
  0.8.7.4 (ruby-2.1.2).
1082
2587
  </div>