lazier 3.5.7 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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>