gettext 1.90.0 → 1.91.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 (224) hide show
  1. data/ChangeLog +45 -0
  2. data/NEWS +22 -0
  3. data/README +5 -3
  4. data/Rakefile +4 -2
  5. data/bin/rgettext +2 -2
  6. data/bin/rmsgfmt +2 -2
  7. data/bin/rmsgmerge +2 -2
  8. data/data/locale/bs/LC_MESSAGES/rails.mo +0 -0
  9. data/data/locale/bs/LC_MESSAGES/rgettext.mo +0 -0
  10. data/data/locale/ca/LC_MESSAGES/rails.mo +0 -0
  11. data/data/locale/ca/LC_MESSAGES/rgettext.mo +0 -0
  12. data/data/locale/cs/LC_MESSAGES/rails.mo +0 -0
  13. data/data/locale/cs/LC_MESSAGES/rgettext.mo +0 -0
  14. data/data/locale/de/LC_MESSAGES/rails.mo +0 -0
  15. data/data/locale/de/LC_MESSAGES/rgettext.mo +0 -0
  16. data/data/locale/el/LC_MESSAGES/rails.mo +0 -0
  17. data/data/locale/el/LC_MESSAGES/rgettext.mo +0 -0
  18. data/data/locale/eo/LC_MESSAGES/rails.mo +0 -0
  19. data/data/locale/eo/LC_MESSAGES/rgettext.mo +0 -0
  20. data/data/locale/es/LC_MESSAGES/rails.mo +0 -0
  21. data/data/locale/es/LC_MESSAGES/rgettext.mo +0 -0
  22. data/data/locale/et/LC_MESSAGES/rails.mo +0 -0
  23. data/data/locale/fr/LC_MESSAGES/rails.mo +0 -0
  24. data/data/locale/fr/LC_MESSAGES/rgettext.mo +0 -0
  25. data/data/locale/hr/LC_MESSAGES/rails.mo +0 -0
  26. data/data/locale/hr/LC_MESSAGES/rgettext.mo +0 -0
  27. data/data/locale/hu/LC_MESSAGES/rails.mo +0 -0
  28. data/data/locale/hu/LC_MESSAGES/rgettext.mo +0 -0
  29. data/data/locale/it/LC_MESSAGES/rails.mo +0 -0
  30. data/data/locale/it/LC_MESSAGES/rgettext.mo +0 -0
  31. data/data/locale/ja/LC_MESSAGES/rails.mo +0 -0
  32. data/data/locale/ja/LC_MESSAGES/rgettext.mo +0 -0
  33. data/data/locale/ko/LC_MESSAGES/rails.mo +0 -0
  34. data/data/locale/ko/LC_MESSAGES/rgettext.mo +0 -0
  35. data/data/locale/nb/LC_MESSAGES/rails.mo +0 -0
  36. data/data/locale/nb/LC_MESSAGES/rgettext.mo +0 -0
  37. data/data/locale/nl/LC_MESSAGES/rails.mo +0 -0
  38. data/data/locale/nl/LC_MESSAGES/rgettext.mo +0 -0
  39. data/data/locale/pt_BR/LC_MESSAGES/rails.mo +0 -0
  40. data/data/locale/pt_BR/LC_MESSAGES/rgettext.mo +0 -0
  41. data/data/locale/ru/LC_MESSAGES/rails.mo +0 -0
  42. data/data/locale/ru/LC_MESSAGES/rgettext.mo +0 -0
  43. data/data/locale/sr/LC_MESSAGES/rails.mo +0 -0
  44. data/data/locale/sr/LC_MESSAGES/rgettext.mo +0 -0
  45. data/data/locale/sv/LC_MESSAGES/rgettext.mo +0 -0
  46. data/data/locale/ua/LC_MESSAGES/rails.mo +0 -0
  47. data/data/locale/ua/LC_MESSAGES/rgettext.mo +0 -0
  48. data/data/locale/vi/LC_MESSAGES/rails.mo +0 -0
  49. data/data/locale/vi/LC_MESSAGES/rgettext.mo +0 -0
  50. data/data/locale/zh/LC_MESSAGES/rails.mo +0 -0
  51. data/data/locale/zh/LC_MESSAGES/rgettext.mo +0 -0
  52. data/data/locale/zh_TW/LC_MESSAGES/rails.mo +0 -0
  53. data/data/locale/zh_TW/LC_MESSAGES/rgettext.mo +0 -0
  54. data/doc/classes/ActionView/Helpers/FormBuilder.html +154 -0
  55. data/doc/classes/ActiveRecord/Base.html +47 -47
  56. data/doc/classes/ActiveRecord/ConnectionAdapters/Column.html +6 -6
  57. data/doc/classes/GetText.html +379 -327
  58. data/doc/classes/GetText/ActiveRecordParser.html +12 -12
  59. data/doc/classes/GetText/ErbContainer.html +12 -12
  60. data/doc/classes/GetText/ErbParser.html +6 -6
  61. data/doc/classes/GetText/PoParser.html +6 -6
  62. data/doc/classes/GetText/Rails.html +20 -20
  63. data/doc/classes/GetText/TextDomain.html +68 -68
  64. data/doc/classes/GetText/TextDomainManager.html +54 -54
  65. data/doc/classes/Locale.html +152 -151
  66. data/doc/classes/Locale/Object.html +92 -92
  67. data/doc/classes/Locale/SystemBase.html +32 -32
  68. data/doc/classes/Locale/SystemCGI.html +31 -31
  69. data/doc/classes/Locale/SystemWin32.html +19 -34
  70. data/doc/classes/Locale/SystemWin32Table.html +123 -0
  71. data/doc/classes/MOFile.html +28 -29
  72. data/doc/created.rid +1 -1
  73. data/doc/files/ChangeLog.html +60 -1
  74. data/doc/files/README.html +11 -4
  75. data/doc/files/lib/gettext/active_record_rb.html +1 -1
  76. data/doc/files/lib/gettext/cgi_rb.html +1 -1
  77. data/doc/files/lib/gettext/container_rb.html +1 -1
  78. data/doc/files/lib/gettext/erb_rb.html +1 -1
  79. data/doc/files/lib/gettext/iconv_rb.html +1 -1
  80. data/doc/files/lib/gettext/mo_rb.html +2 -1
  81. data/doc/files/lib/gettext/parser/active_record_rb.html +1 -1
  82. data/doc/files/lib/gettext/parser/erb_rb.html +1 -1
  83. data/doc/files/lib/gettext/parser/glade_rb.html +1 -1
  84. data/doc/files/lib/gettext/parser/ruby_rb.html +1 -1
  85. data/doc/files/lib/gettext/poparser_rb.html +1 -1
  86. data/doc/files/lib/gettext/rails_compat_rb.html +1 -1
  87. data/doc/files/lib/gettext/rails_rb.html +1 -1
  88. data/doc/files/lib/gettext/rgettext_rb.html +1 -1
  89. data/doc/files/lib/gettext/rmsgfmt_rb.html +1 -1
  90. data/doc/files/lib/gettext/rmsgmerge_rb.html +1 -1
  91. data/doc/files/lib/gettext/string_rb.html +1 -1
  92. data/doc/files/lib/gettext/textdomain_rb.html +1 -1
  93. data/doc/files/lib/gettext/textdomainmanager_rb.html +1 -1
  94. data/doc/files/lib/gettext/utils_rb.html +1 -1
  95. data/doc/files/lib/gettext/version_rb.html +1 -1
  96. data/doc/files/lib/gettext_rb.html +1 -1
  97. data/doc/files/lib/locale/base_rb.html +1 -1
  98. data/doc/files/lib/locale/cgi_rb.html +1 -1
  99. data/doc/files/lib/locale/jruby_rb.html +1 -1
  100. data/doc/files/lib/locale/object_rb.html +1 -1
  101. data/doc/files/lib/locale/posix_rb.html +1 -1
  102. data/doc/files/lib/locale/win32_rb.html +1 -1
  103. data/doc/files/lib/locale/win32_table_rb.html +1 -1
  104. data/doc/files/lib/locale_rb.html +1 -1
  105. data/doc/fr_class_index.html +2 -0
  106. data/doc/fr_method_index.html +83 -81
  107. data/lib/gettext.rb +46 -21
  108. data/lib/gettext/active_record.rb +5 -5
  109. data/lib/gettext/mo.rb +4 -4
  110. data/lib/gettext/rails.rb +15 -3
  111. data/lib/gettext/textdomain.rb +44 -41
  112. data/lib/gettext/utils.rb +8 -1
  113. data/lib/gettext/version.rb +2 -2
  114. data/lib/locale/jruby.rb +3 -3
  115. data/lib/locale/win32.rb +2 -1
  116. data/lib/locale/win32_table.rb +2 -2
  117. data/po/bs/rails.po +39 -37
  118. data/po/bs/rgettext.po +63 -53
  119. data/po/ca/rails.po +39 -36
  120. data/po/ca/rgettext.po +64 -54
  121. data/po/cs/rails.po +39 -35
  122. data/po/cs/rgettext.po +63 -53
  123. data/po/de/rails.po +38 -36
  124. data/po/de/rgettext.po +67 -57
  125. data/po/el/rails.po +42 -39
  126. data/po/el/rgettext.po +63 -53
  127. data/po/eo/rails.po +39 -37
  128. data/po/eo/rgettext.po +63 -53
  129. data/po/es/rails.po +38 -35
  130. data/po/es/rgettext.po +64 -54
  131. data/po/et/rails.po +38 -36
  132. data/po/fr/rails.po +39 -37
  133. data/po/fr/rgettext.po +65 -56
  134. data/po/hr/rails.po +40 -37
  135. data/po/hr/rgettext.po +63 -53
  136. data/po/hu/rails.po +38 -35
  137. data/po/hu/rgettext.po +64 -54
  138. data/po/it/rails.po +34 -32
  139. data/po/it/rgettext.po +62 -54
  140. data/po/ja/rails.po +42 -40
  141. data/po/ja/rgettext.po +64 -54
  142. data/po/ko/rails.po +38 -36
  143. data/po/ko/rgettext.po +64 -54
  144. data/po/nb/rails.po +37 -32
  145. data/po/nb/rgettext.po +62 -52
  146. data/po/nl/rails.po +39 -38
  147. data/po/nl/rgettext.po +64 -54
  148. data/po/pt_BR/rails.po +38 -36
  149. data/po/pt_BR/rgettext.po +63 -53
  150. data/po/rails.pot +41 -39
  151. data/po/rgettext.pot +55 -47
  152. data/po/ru/rails.po +41 -37
  153. data/po/ru/rgettext.po +63 -53
  154. data/po/sr/rails.po +149 -0
  155. data/po/sr/rgettext.po +135 -0
  156. data/po/sv/rgettext.po +60 -52
  157. data/po/ua/rails.po +39 -37
  158. data/po/ua/rgettext.po +67 -57
  159. data/po/vi/rails.po +39 -37
  160. data/po/vi/rgettext.po +61 -51
  161. data/po/zh/rails.po +37 -36
  162. data/po/zh/rgettext.po +66 -56
  163. data/po/zh_TW/rails.po +37 -36
  164. data/po/zh_TW/rgettext.po +64 -54
  165. data/samples/cgi/locale/sr/LC_MESSAGES/helloerb1.mo +0 -0
  166. data/samples/cgi/locale/sr/LC_MESSAGES/helloerb2.mo +0 -0
  167. data/samples/cgi/locale/sr/LC_MESSAGES/hellolib.mo +0 -0
  168. data/samples/cgi/locale/sr/LC_MESSAGES/main.mo +0 -0
  169. data/samples/cgi/po/sr/helloerb1.po +60 -0
  170. data/samples/cgi/po/sr/helloerb2.po +52 -0
  171. data/samples/cgi/po/sr/hellolib.po +24 -0
  172. data/samples/cgi/po/sr/main.po +80 -0
  173. data/samples/locale/hu/LC_MESSAGES/hellogtk.mo +0 -0
  174. data/samples/locale/it/LC_MESSAGES/hello2.mo +0 -0
  175. data/samples/locale/sr/LC_MESSAGES/hello.mo +0 -0
  176. data/samples/locale/sr/LC_MESSAGES/hello2.mo +0 -0
  177. data/samples/locale/sr/LC_MESSAGES/hello_noop.mo +0 -0
  178. data/samples/locale/sr/LC_MESSAGES/hello_plural.mo +0 -0
  179. data/samples/locale/sr/LC_MESSAGES/helloglade2.mo +0 -0
  180. data/samples/locale/sr/LC_MESSAGES/hellogtk.mo +0 -0
  181. data/samples/locale/sr/LC_MESSAGES/hellotk.mo +0 -0
  182. data/samples/locale/zh/LC_MESSAGES/helloglade2.mo +0 -0
  183. data/samples/locale/zh/LC_MESSAGES/hellotk.mo +0 -0
  184. data/samples/po/hu/hellogtk.po +3 -3
  185. data/samples/po/it/hello2.po +1 -1
  186. data/samples/po/sr/hello.po +22 -0
  187. data/samples/po/sr/hello2.po +30 -0
  188. data/samples/po/sr/hello_noop.po +26 -0
  189. data/samples/po/sr/hello_plural.po +26 -0
  190. data/samples/po/sr/helloglade2.po +32 -0
  191. data/samples/po/sr/hellogtk.po +22 -0
  192. data/samples/po/sr/hellotk.po +24 -0
  193. data/samples/po/zh/helloglade2.po +1 -1
  194. data/samples/po/zh/hellotk.po +1 -1
  195. data/samples/rails/app/views/articles/edit.html.erb +3 -0
  196. data/samples/rails/app/views/articles/new.html.erb +3 -0
  197. data/samples/rails/config/database.yml +9 -4
  198. data/samples/rails/locale/sr/LC_MESSAGES/blog.mo +0 -0
  199. data/samples/rails/po/sr/blog.po +106 -0
  200. data/samples/rails/vendor/plugins/gettext/locale/sr/LC_MESSAGES/gettext_plugin.mo +0 -0
  201. data/samples/rails/vendor/plugins/gettext/po/sr/gettext_plugin.po +28 -0
  202. data/test/locale/fr/LC_MESSAGES/test2.mo +0 -0
  203. data/test/locale/ja/LC_MESSAGES/test2.mo +0 -0
  204. data/test/po/fr/test2.po +1 -1
  205. data/test/po/ja/test2.po +1 -1
  206. data/test/rails/app/views/articles/show.html.erb +1 -0
  207. data/test/rails/config/environment.rb +1 -1
  208. data/test/rails/test/functional/articles_controller_test.rb +2 -2
  209. data/test/rails/test/functional/mailer_controller_test.rb +3 -1
  210. data/test/rails/test/functional/users_controller_test.rb +1 -1
  211. data/test/rails/test/result/en/custom_error_message_with_plural.html +4 -4
  212. data/test/rails/test/result/en/show.html +1 -0
  213. data/test/rails/test/result/fr/custom_error_message_with_plural.html +4 -4
  214. data/test/rails/test/result/ja/custom_error_message_with_plural.html +4 -4
  215. data/test/rails/test/result/ja/show.html +2 -1
  216. data/test/test.sh +1 -0
  217. data/test/test_active_record.rb +4 -4
  218. data/test/test_gettext.rb +10 -10
  219. data/test/test_gettext_toplevel.rb +44 -0
  220. data/test/test_locale.rb +1 -19
  221. metadata +93 -42
  222. data/test/rails/locale/ja/LC_MESSAGES/rails_test.mo +0 -0
  223. data/test/rails/log/development.log +0 -136
  224. data/test/rails/log/test.log +0 -2203
@@ -20,6 +20,7 @@
20
20
  <div id="index">
21
21
  <h1 class="section-bar">Classes</h1>
22
22
  <div id="index-entries">
23
+ <a href="classes/ActionView/Helpers/FormBuilder.html">ActionView::Helpers::FormBuilder</a><br />
23
24
  <a href="classes/ActiveRecord/Base.html">ActiveRecord::Base</a><br />
24
25
  <a href="classes/ActiveRecord/ConnectionAdapters/Column.html">ActiveRecord::ConnectionAdapters::Column</a><br />
25
26
  <a href="classes/ActiveRecord/Migration.html">ActiveRecord::Migration</a><br />
@@ -47,6 +48,7 @@
47
48
  <a href="classes/Locale/SystemJRuby.html">Locale::SystemJRuby</a><br />
48
49
  <a href="classes/Locale/SystemPosix.html">Locale::SystemPosix</a><br />
49
50
  <a href="classes/Locale/SystemWin32.html">Locale::SystemWin32</a><br />
51
+ <a href="classes/Locale/SystemWin32Table.html">Locale::SystemWin32Table</a><br />
50
52
  <a href="classes/MOFile.html">MOFile</a><br />
51
53
  <a href="classes/MOFile/InvalidFormat.html">MOFile::InvalidFormat</a><br />
52
54
  <a href="classes/Module.html">Module</a><br />
@@ -23,132 +23,134 @@
23
23
  <a href="classes/String.html#M000017">% (String)</a><br />
24
24
  <a href="classes/GetText.html#M000037">N_ (GetText)</a><br />
25
25
  <a href="classes/GetText.html#M000038">Nn_ (GetText)</a><br />
26
- <a href="classes/GetText.html#M000050">_ (GetText)</a><br />
27
- <a href="classes/GetText/PoParser.html#M000078">_reduce_none (GetText::PoParser)</a><br />
28
- <a href="classes/GetText/TextDomain.html#M000072">add_default_locale_path (GetText::TextDomain)</a><br />
26
+ <a href="classes/GetText.html#M000051">_ (GetText)</a><br />
27
+ <a href="classes/GetText/PoParser.html#M000079">_reduce_none (GetText::PoParser)</a><br />
29
28
  <a href="classes/GetText.html#M000047">add_default_locale_path (GetText)</a><br />
30
- <a href="classes/GetText/TextDomainManager.html#M000067">add_textdomain (GetText::TextDomainManager)</a><br />
29
+ <a href="classes/GetText/TextDomain.html#M000073">add_default_locale_path (GetText::TextDomain)</a><br />
30
+ <a href="classes/GetText/TextDomainManager.html#M000068">add_textdomain (GetText::TextDomainManager)</a><br />
31
31
  <a href="classes/Module.html#M000016">alias_method_chain (Module)</a><br />
32
- <a href="classes/GetText/Rails.html#M000059">available_locales (GetText::Rails)</a><br />
32
+ <a href="classes/GetText/Rails.html#M000060">available_locales (GetText::Rails)</a><br />
33
+ <a href="classes/GetText/Rails.html#M000059">bindtextdomain (GetText::Rails)</a><br />
33
34
  <a href="classes/GetText.html#M000030">bindtextdomain (GetText)</a><br />
34
- <a href="classes/GetText/Rails.html#M000058">bindtextdomain (GetText::Rails)</a><br />
35
35
  <a href="classes/GetText.html#M000031">bindtextdomain_to (GetText)</a><br />
36
36
  <a href="classes/GetText.html#M000027">cached= (GetText)</a><br />
37
37
  <a href="classes/GetText.html#M000028">cached? (GetText)</a><br />
38
- <a href="classes/Locale/SystemCGI.html#M000104">cgi (Locale::SystemCGI)</a><br />
38
+ <a href="classes/Locale/SystemCGI.html#M000105">cgi (Locale::SystemCGI)</a><br />
39
39
  <a href="classes/GetText.html#M000025">cgi (GetText)</a><br />
40
- <a href="classes/Locale.html#M000081">cgi (Locale)</a><br />
41
- <a href="classes/Locale.html#M000080">cgi= (Locale)</a><br />
42
- <a href="classes/Locale/SystemCGI.html#M000103">cgi= (Locale::SystemCGI)</a><br />
40
+ <a href="classes/Locale.html#M000082">cgi (Locale)</a><br />
41
+ <a href="classes/Locale/SystemCGI.html#M000104">cgi= (Locale::SystemCGI)</a><br />
42
+ <a href="classes/Locale.html#M000081">cgi= (Locale)</a><br />
43
43
  <a href="classes/GetText.html#M000024">cgi= (GetText)</a><br />
44
- <a href="classes/Locale.html#M000092">charset (Locale)</a><br />
45
- <a href="classes/Locale/SystemBase.html#M000099">charset (Locale::SystemBase)</a><br />
46
- <a href="classes/Locale/Object.html#M000108">charset= (Locale::Object)</a><br />
47
- <a href="classes/GetText/TextDomain.html#M000071">check_mo= (GetText::TextDomain)</a><br />
48
- <a href="classes/GetText/TextDomain.html#M000070">check_mo? (GetText::TextDomain)</a><br />
49
- <a href="classes/Locale.html#M000094">clear (Locale)</a><br />
50
- <a href="classes/Locale/Object.html#M000114">clear (Locale::Object)</a><br />
44
+ <a href="classes/Locale.html#M000093">charset (Locale)</a><br />
45
+ <a href="classes/Locale/SystemBase.html#M000100">charset (Locale::SystemBase)</a><br />
46
+ <a href="classes/Locale/Object.html#M000109">charset= (Locale::Object)</a><br />
47
+ <a href="classes/GetText/TextDomain.html#M000072">check_mo= (GetText::TextDomain)</a><br />
48
+ <a href="classes/GetText/TextDomain.html#M000071">check_mo? (GetText::TextDomain)</a><br />
49
+ <a href="classes/Locale/Object.html#M000115">clear (Locale::Object)</a><br />
50
+ <a href="classes/Locale.html#M000095">clear (Locale)</a><br />
51
51
  <a href="classes/GetText.html#M000029">clear_cache (GetText)</a><br />
52
- <a href="classes/Locale.html#M000091">codeset (Locale)</a><br />
53
- <a href="classes/ActiveRecord/Base.html#M000127">columns_with_gettext (ActiveRecord::Base)</a><br />
52
+ <a href="classes/Locale.html#M000092">codeset (Locale)</a><br />
53
+ <a href="classes/ActiveRecord/Base.html#M000128">columns_with_gettext (ActiveRecord::Base)</a><br />
54
54
  <a href="classes/Iconv.html#M000001">conv (Iconv)</a><br />
55
55
  <a href="classes/Iconv.html#M000002">conv (Iconv)</a><br />
56
- <a href="classes/Locale/Object.html#M000107">country= (Locale::Object)</a><br />
56
+ <a href="classes/Locale/Object.html#M000108">country= (Locale::Object)</a><br />
57
57
  <a href="classes/GetText.html#M000019">create_mofiles (GetText)</a><br />
58
- <a href="classes/Locale.html#M000086">current (Locale)</a><br />
59
- <a href="classes/Locale.html#M000088">current= (Locale)</a><br />
60
- <a href="classes/Locale.html#M000093">current_charset (Locale)</a><br />
58
+ <a href="classes/Locale.html#M000087">current (Locale)</a><br />
59
+ <a href="classes/Locale.html#M000089">current= (Locale)</a><br />
60
+ <a href="classes/Locale.html#M000094">current_charset (Locale)</a><br />
61
61
  <a href="classes/GetText.html#M000048">current_textdomain_info (GetText)</a><br />
62
- <a href="classes/Locale.html#M000085">default (Locale)</a><br />
63
- <a href="classes/Locale.html#M000083">default= (Locale)</a><br />
64
- <a href="classes/Locale/SystemCGI.html#M000105">default_locale (Locale::SystemCGI)</a><br />
65
- <a href="classes/GetText/TextDomainManager.html#M000068">each (GetText::TextDomainManager)</a><br />
66
- <a href="classes/GetText/TextDomainManager.html#M000064">each_all (GetText::TextDomainManager)</a><br />
67
- <a href="classes/GetText/ErbContainer.html#M000055">eval_file (GetText::ErbContainer)</a><br />
68
- <a href="classes/GetText/ErbContainer.html#M000054">eval_src (GetText::ErbContainer)</a><br />
69
- <a href="classes/Locale.html#M000090">get (Locale)</a><br />
70
- <a href="classes/Locale/SystemWin32.html#M000100">get_charset (Locale::SystemWin32)</a><br />
71
- <a href="classes/Locale/SystemBase.html#M000096">get_charset (Locale::SystemBase)</a><br />
72
- <a href="classes/GetText/TextDomain.html#M000075">gettext (GetText::TextDomain)</a><br />
62
+ <a href="classes/Locale.html#M000086">default (Locale)</a><br />
63
+ <a href="classes/Locale.html#M000084">default= (Locale)</a><br />
64
+ <a href="classes/Locale/SystemCGI.html#M000106">default_locale (Locale::SystemCGI)</a><br />
65
+ <a href="classes/GetText/TextDomainManager.html#M000069">each (GetText::TextDomainManager)</a><br />
66
+ <a href="classes/GetText/TextDomainManager.html#M000065">each_all (GetText::TextDomainManager)</a><br />
67
+ <a href="classes/GetText/ErbContainer.html#M000056">eval_file (GetText::ErbContainer)</a><br />
68
+ <a href="classes/GetText/ErbContainer.html#M000055">eval_src (GetText::ErbContainer)</a><br />
69
+ <a href="classes/Locale.html#M000091">get (Locale)</a><br />
70
+ <a href="classes/Locale/SystemBase.html#M000097">get_charset (Locale::SystemBase)</a><br />
71
+ <a href="classes/Locale/SystemWin32.html#M000101">get_charset (Locale::SystemWin32)</a><br />
72
+ <a href="classes/GetText/TextDomain.html#M000076">gettext (GetText::TextDomain)</a><br />
73
73
  <a href="classes/GetText.html#M000034">gettext (GetText)</a><br />
74
74
  <a href="classes/MOFile.html#M000011">hash_string (MOFile)</a><br />
75
- <a href="classes/ActiveRecord/ConnectionAdapters/Column.html#M000122">human_name_with_gettext (ActiveRecord::ConnectionAdapters::Column)</a><br />
75
+ <a href="classes/ActiveRecord/ConnectionAdapters/Column.html#M000123">human_name_with_gettext (ActiveRecord::ConnectionAdapters::Column)</a><br />
76
76
  <a href="classes/Iconv.html#M000003">iconv (Iconv)</a><br />
77
- <a href="classes/GetText/ErbParser.html#M000061">init (GetText::ErbParser)</a><br />
78
- <a href="classes/GetText/ActiveRecordParser.html#M000056">init (GetText::ActiveRecordParser)</a><br />
79
- <a href="classes/Locale/Object.html#M000106">language= (Locale::Object)</a><br />
77
+ <a href="classes/GetText/ErbParser.html#M000062">init (GetText::ErbParser)</a><br />
78
+ <a href="classes/GetText/ActiveRecordParser.html#M000057">init (GetText::ActiveRecordParser)</a><br />
79
+ <a href="classes/ActionView/Helpers/FormBuilder.html#M000131">label_with_gettext (ActionView::Helpers::FormBuilder)</a><br />
80
+ <a href="classes/Locale/Object.html#M000107">language= (Locale::Object)</a><br />
80
81
  <a href="classes/MOFile.html#M000007">load (MOFile)</a><br />
81
82
  <a href="classes/MOFile.html#M000013">load_from_file (MOFile)</a><br />
82
83
  <a href="classes/MOFile.html#M000008">load_from_stream (MOFile)</a><br />
83
84
  <a href="classes/GetText.html#M000046">locale (GetText)</a><br />
84
85
  <a href="classes/GetText.html#M000042">locale= (GetText)</a><br />
85
- <a href="classes/Locale/SystemBase.html#M000097">locale_from_env (Locale::SystemBase)</a><br />
86
- <a href="classes/Locale/Object.html#M000111">modifier= (Locale::Object)</a><br />
86
+ <a href="classes/Locale/SystemBase.html#M000098">locale_from_env (Locale::SystemBase)</a><br />
87
+ <a href="classes/Locale/Object.html#M000112">modifier= (Locale::Object)</a><br />
87
88
  <a href="classes/GetText.html#M000018">msgmerge (GetText)</a><br />
88
- <a href="classes/GetText.html#M000051">n_ (GetText)</a><br />
89
- <a href="classes/GetText/TextDomainManager.html#M000066">new (GetText::TextDomainManager)</a><br />
90
- <a href="classes/Locale/Object.html#M000113">new (Locale::Object)</a><br />
89
+ <a href="classes/GetText.html#M000052">n_ (GetText)</a><br />
90
+ <a href="classes/Locale/Object.html#M000114">new (Locale::Object)</a><br />
91
+ <a href="classes/GetText/TextDomain.html#M000074">new (GetText::TextDomain)</a><br />
92
+ <a href="classes/GetText/TextDomainManager.html#M000067">new (GetText::TextDomainManager)</a><br />
91
93
  <a href="classes/MOFile.html#M000005">new (MOFile)</a><br />
92
- <a href="classes/GetText/TextDomain.html#M000073">new (GetText::TextDomain)</a><br />
93
94
  <a href="classes/MOFile.html#M000010">next_prime (MOFile)</a><br />
94
- <a href="classes/GetText/TextDomain.html#M000076">ngettext (GetText::TextDomain)</a><br />
95
+ <a href="classes/GetText/TextDomain.html#M000077">ngettext (GetText::TextDomain)</a><br />
95
96
  <a href="classes/GetText.html#M000036">ngettext (GetText)</a><br />
96
- <a href="classes/GetText/Rails.html#M000060">normalized_locale (GetText::Rails)</a><br />
97
- <a href="classes/GetText.html#M000053">ns_ (GetText)</a><br />
97
+ <a href="classes/GetText/Rails.html#M000061">normalized_locale (GetText::Rails)</a><br />
98
+ <a href="classes/GetText.html#M000054">ns_ (GetText)</a><br />
98
99
  <a href="classes/GetText.html#M000039">nsgettext (GetText)</a><br />
99
100
  <a href="classes/MOFile.html#M000004">open (MOFile)</a><br />
100
- <a href="classes/GetText/TextDomainManager.html#M000063">output_charset (GetText::TextDomainManager)</a><br />
101
+ <a href="classes/GetText/TextDomainManager.html#M000064">output_charset (GetText::TextDomainManager)</a><br />
101
102
  <a href="classes/GetText.html#M000045">output_charset (GetText)</a><br />
102
- <a href="classes/GetText/TextDomainManager.html#M000062">output_charset= (GetText::TextDomainManager)</a><br />
103
103
  <a href="classes/GetText.html#M000044">output_charset= (GetText)</a><br />
104
- <a href="classes/Locale/Object.html#M000112">parse (Locale::Object)</a><br />
104
+ <a href="classes/GetText/TextDomainManager.html#M000063">output_charset= (GetText::TextDomainManager)</a><br />
105
+ <a href="classes/Locale/Object.html#M000113">parse (Locale::Object)</a><br />
105
106
  <a href="classes/MOFile.html#M000009">prime? (MOFile)</a><br />
107
+ <a href="classes/GetText.html#M000049">remove_all_textdomains (GetText)</a><br />
106
108
  <a href="classes/GetText.html#M000021">rgettext (GetText)</a><br />
107
109
  <a href="classes/GetText.html#M000022">rmsgfmt (GetText)</a><br />
108
110
  <a href="classes/GetText.html#M000026">rmsgmerge (GetText)</a><br />
109
- <a href="classes/GetText.html#M000052">s_ (GetText)</a><br />
110
- <a href="classes/GetText/TextDomain.html#M000077">same_property? (GetText::TextDomain)</a><br />
111
+ <a href="classes/GetText.html#M000053">s_ (GetText)</a><br />
112
+ <a href="classes/GetText/TextDomain.html#M000078">same_property? (GetText::TextDomain)</a><br />
111
113
  <a href="classes/MOFile.html#M000014">save_to_file (MOFile)</a><br />
112
114
  <a href="classes/MOFile.html#M000012">save_to_stream (MOFile)</a><br />
113
- <a href="classes/Locale/Object.html#M000109">script= (Locale::Object)</a><br />
114
- <a href="classes/Locale.html#M000089">set (Locale)</a><br />
115
- <a href="classes/Locale/SystemCGI.html#M000102">set_cgi (Locale::SystemCGI)</a><br />
115
+ <a href="classes/Locale/Object.html#M000110">script= (Locale::Object)</a><br />
116
+ <a href="classes/Locale.html#M000090">set (Locale)</a><br />
116
117
  <a href="classes/GetText.html#M000023">set_cgi (GetText)</a><br />
117
- <a href="classes/Locale.html#M000079">set_cgi (Locale)</a><br />
118
+ <a href="classes/Locale.html#M000080">set_cgi (Locale)</a><br />
119
+ <a href="classes/Locale/SystemCGI.html#M000103">set_cgi (Locale::SystemCGI)</a><br />
118
120
  <a href="classes/MOFile.html#M000015">set_comment (MOFile)</a><br />
119
- <a href="classes/Locale.html#M000087">set_current (Locale)</a><br />
120
- <a href="classes/Locale.html#M000082">set_default (Locale)</a><br />
121
- <a href="classes/ActiveRecord/Base.html#M000129">set_error_message_explanation (ActiveRecord::Base)</a><br />
122
- <a href="classes/ActiveRecord/Base.html#M000128">set_error_message_title (ActiveRecord::Base)</a><br />
121
+ <a href="classes/Locale.html#M000088">set_current (Locale)</a><br />
122
+ <a href="classes/Locale.html#M000083">set_default (Locale)</a><br />
123
+ <a href="classes/ActiveRecord/Base.html#M000130">set_error_message_explanation (ActiveRecord::Base)</a><br />
124
+ <a href="classes/ActiveRecord/Base.html#M000129">set_error_message_title (ActiveRecord::Base)</a><br />
123
125
  <a href="classes/GetText.html#M000040">set_locale (GetText)</a><br />
124
- <a href="classes/GetText/TextDomainManager.html#M000069">set_locale (GetText::TextDomainManager)</a><br />
125
- <a href="classes/GetText/TextDomain.html#M000074">set_locale (GetText::TextDomain)</a><br />
126
+ <a href="classes/GetText/TextDomainManager.html#M000070">set_locale (GetText::TextDomainManager)</a><br />
127
+ <a href="classes/GetText/TextDomain.html#M000075">set_locale (GetText::TextDomain)</a><br />
126
128
  <a href="classes/GetText.html#M000041">set_locale_all (GetText)</a><br />
127
129
  <a href="classes/GetText.html#M000043">set_output_charset (GetText)</a><br />
128
- <a href="classes/GetText.html#M000049">setlocale (GetText)</a><br />
130
+ <a href="classes/GetText.html#M000050">setlocale (GetText)</a><br />
129
131
  <a href="classes/GetText.html#M000035">sgettext (GetText)</a><br />
130
- <a href="classes/Locale.html#M000084">system (Locale)</a><br />
131
- <a href="classes/Locale/SystemCGI.html#M000101">system (Locale::SystemCGI)</a><br />
132
- <a href="classes/Locale/SystemBase.html#M000098">system (Locale::SystemBase)</a><br />
133
- <a href="classes/Locale.html#M000095">system_module (Locale)</a><br />
132
+ <a href="classes/Locale/SystemCGI.html#M000102">system (Locale::SystemCGI)</a><br />
133
+ <a href="classes/Locale.html#M000085">system (Locale)</a><br />
134
+ <a href="classes/Locale/SystemBase.html#M000099">system (Locale::SystemBase)</a><br />
135
+ <a href="classes/Locale.html#M000096">system_module (Locale)</a><br />
134
136
  <a href="classes/GetText.html#M000032">textdomain (GetText)</a><br />
135
- <a href="classes/GetText/TextDomainManager.html#M000065">textdomain (GetText::TextDomainManager)</a><br />
137
+ <a href="classes/GetText/TextDomainManager.html#M000066">textdomain (GetText::TextDomainManager)</a><br />
136
138
  <a href="classes/GetText.html#M000033">textdomain_to (GetText)</a><br />
137
- <a href="classes/Locale/Object.html#M000119">to_a (Locale::Object)</a><br />
138
- <a href="classes/Locale/Object.html#M000118">to_general (Locale::Object)</a><br />
139
- <a href="classes/Locale/Object.html#M000116">to_iso3066 (Locale::Object)</a><br />
140
- <a href="classes/Locale/Object.html#M000115">to_posix (Locale::Object)</a><br />
141
- <a href="classes/Locale/Object.html#M000120">to_s (Locale::Object)</a><br />
142
- <a href="classes/Locale/Object.html#M000121">to_str (Locale::Object)</a><br />
143
- <a href="classes/Locale/Object.html#M000117">to_win (Locale::Object)</a><br />
144
- <a href="classes/ActiveRecord/Base.html#M000125">untranslate (ActiveRecord::Base)</a><br />
145
- <a href="classes/ActiveRecord/Base.html#M000126">untranslate? (ActiveRecord::Base)</a><br />
146
- <a href="classes/ActiveRecord/Base.html#M000123">untranslate_all (ActiveRecord::Base)</a><br />
147
- <a href="classes/ActiveRecord/Base.html#M000124">untranslate_all? (ActiveRecord::Base)</a><br />
148
- <a href="classes/GetText/ActiveRecordParser.html#M000057">untranslate_column? (GetText::ActiveRecordParser)</a><br />
139
+ <a href="classes/Locale/Object.html#M000120">to_a (Locale::Object)</a><br />
140
+ <a href="classes/Locale/Object.html#M000119">to_general (Locale::Object)</a><br />
141
+ <a href="classes/Locale/Object.html#M000117">to_iso3066 (Locale::Object)</a><br />
142
+ <a href="classes/Locale/Object.html#M000116">to_posix (Locale::Object)</a><br />
143
+ <a href="classes/Locale/Object.html#M000121">to_s (Locale::Object)</a><br />
144
+ <a href="classes/Locale/Object.html#M000122">to_str (Locale::Object)</a><br />
145
+ <a href="classes/Locale/Object.html#M000118">to_win (Locale::Object)</a><br />
146
+ <a href="classes/ActiveRecord/Base.html#M000126">untranslate (ActiveRecord::Base)</a><br />
147
+ <a href="classes/ActiveRecord/Base.html#M000127">untranslate? (ActiveRecord::Base)</a><br />
148
+ <a href="classes/ActiveRecord/Base.html#M000124">untranslate_all (ActiveRecord::Base)</a><br />
149
+ <a href="classes/ActiveRecord/Base.html#M000125">untranslate_all? (ActiveRecord::Base)</a><br />
150
+ <a href="classes/GetText/ActiveRecordParser.html#M000058">untranslate_column? (GetText::ActiveRecordParser)</a><br />
149
151
  <a href="classes/MOFile.html#M000006">update! (MOFile)</a><br />
150
152
  <a href="classes/GetText.html#M000020">update_pofiles (GetText)</a><br />
151
- <a href="classes/Locale/Object.html#M000110">variant= (Locale::Object)</a><br />
153
+ <a href="classes/Locale/Object.html#M000111">variant= (Locale::Object)</a><br />
152
154
  </div>
153
155
  </div>
154
156
  </body>
data/lib/gettext.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  gettext.rb - GetText module
3
3
 
4
- Copyright (C) 2001-2007 Masao Mutoh
4
+ Copyright (C) 2001-2008 Masao Mutoh
5
5
  Copyright (C) 2001-2003 Masahiro Sakai
6
6
 
7
7
  Masao Mutoh <mutoh@highway.ne.jp>
@@ -10,7 +10,7 @@
10
10
  You may redistribute it and/or modify it under the same
11
11
  license terms as Ruby.
12
12
 
13
- $Id: gettext.rb,v 1.37 2008/01/29 16:30:29 mutoh Exp $
13
+ $Id: gettext.rb,v 1.40 2008/05/05 17:38:38 mutoh Exp $
14
14
  =end
15
15
 
16
16
  require 'rbconfig'
@@ -29,6 +29,9 @@ module GetText
29
29
  mod.extend self
30
30
  end
31
31
 
32
+ # Max cached object_ids includes dead objects.
33
+ CACHE_BOUND_TARGET_MAX_SIZE = 50000 #:nodoc:
34
+
32
35
  @@__cached = ! $DEBUG
33
36
 
34
37
  # Set the value whether cache messages or not.
@@ -55,7 +58,7 @@ module GetText
55
58
  @@__cache_bound_targets = {}
56
59
  end
57
60
 
58
- @@__textdomainmanagers = Hash.new
61
+ @@__textdomainmanagers = {}
59
62
 
60
63
  # call-seq:
61
64
  # bindtextdomain(domainname, options = {})
@@ -170,8 +173,9 @@ module GetText
170
173
  @@__cache_target_classes = {}
171
174
 
172
175
  def find_targets(klass) #:nodoc:
176
+ id = klass.object_id
173
177
  if cached?
174
- return @@__cache_target_classes[klass] if @@__cache_target_classes[klass]
178
+ return @@__cache_target_classes[id] if @@__cache_target_classes[id]
175
179
  end
176
180
  unless (klass.kind_of? Class or klass.kind_of? Module)
177
181
  klass = klass.class
@@ -184,42 +188,44 @@ module GetText
184
188
  target = v
185
189
  else
186
190
  target = eval(v)
187
- return [GetText] unless (target = eval(v)) # For anonymous module
191
+ return [Object] unless (target = eval(v)) # For anonymous module
188
192
  end
189
193
  else
190
194
  target = ret[0].const_get(v)
191
195
  end
192
196
  ret.unshift(target) if target
193
197
  end
194
- @@__cache_target_classes[klass] = ret.size > 0 ? ret : [klass]
198
+ @@__cache_target_classes[id] = ret.size > 0 ? ret : [klass]
195
199
  end
196
200
 
197
201
  @@__cache_bound_target = {}
198
202
 
199
203
  def bound_target(klass = self) # :nodoc:
204
+ id = klass.object_id
200
205
  if cached?
201
- if @@__cache_bound_target[klass]
202
- return @@__cache_bound_target[klass]
203
- end
206
+ tgt = @@__cache_bound_target[id]
207
+ return tgt if tgt
204
208
  end
205
209
 
206
- ret = nil
207
- if klass.kind_of? Class or klass.kind_of? Module
208
- ret = klass
209
- else
210
- ret = klass.class
210
+ ret = (klass.kind_of? Module) ? klass : klass.class
211
+ if ret.name =~ /^\#<|^$/ or ret == GetText
212
+ #GC for dead object_ids.
213
+ ret = Object
214
+ if @@__cache_bound_target.size > CACHE_BOUND_TARGET_MAX_SIZE
215
+ @@__cache_bound_target.clear
216
+ end
211
217
  end
212
- ret = GetText if ret.name =~ /^\#<|^$/
213
- @@__cache_bound_target[klass] = ret
218
+ @@__cache_bound_target[id] = ret
214
219
  ret
215
220
  end
216
221
 
217
222
  @@__cache_bound_targets = {}
218
223
 
219
224
  def bound_targets(klass) # :nodoc:
225
+ id = klass.object_id
220
226
  if cached?
221
- if @@__cache_bound_targets[klass]
222
- return @@__cache_bound_targets[klass]
227
+ if @@__cache_bound_targets[id]
228
+ return @@__cache_bound_targets[id]
223
229
  end
224
230
  end
225
231
  ret = []
@@ -228,7 +234,7 @@ module GetText
228
234
  while(v = ary.shift)
229
235
  ret.unshift(((ret.size == 0) ? eval(v) : ret[0].const_get(v)))
230
236
  end
231
- @@__cache_bound_targets[klass] = ((ret + klass.ancestors + [GetText]) & @@__textdomainmanagers.keys).uniq
237
+ @@__cache_bound_targets[id] = ((ret + klass.ancestors + [Object]) & @@__textdomainmanagers.keys).uniq
232
238
  end
233
239
 
234
240
  @@__cache_msgids = {}
@@ -238,6 +244,19 @@ module GetText
238
244
  # _(msgid)
239
245
  #
240
246
  # Translates msgid and return the message.
247
+ # This doesn't make a copy of the message.
248
+ #
249
+ # You need to use String#dup if you want to modify the return value
250
+ # with destructive functions.
251
+ #
252
+ # (e.g.1) _("Hello ").dup << "world"
253
+ #
254
+ # But e.g.1 should be rewrite to:
255
+ #
256
+ # (e.g.2) _("Hello %{val}") % {:val => "world"}
257
+ #
258
+ # Because the translator may want to change the position of "world".
259
+ #
241
260
  # * msgid: the message id.
242
261
  # * Returns: localized text by msgid. If there are not binded mo-file, it will return msgid.
243
262
  def gettext(msgid)
@@ -520,14 +539,20 @@ module GetText
520
539
  }
521
540
  end
522
541
 
542
+ # for testing.
543
+ def remove_all_textdomains
544
+ clear_cache
545
+ @@__textdomainmanagers = {}
546
+ end
547
+
523
548
  alias :setlocale :locale= #:nodoc:
524
549
  alias :_ :gettext #:nodoc:
525
550
  alias :n_ :ngettext #:nodoc:
526
551
  alias :s_ :sgettext #:nodoc:
527
552
  alias :ns_ :nsgettext #:nodoc:
528
553
 
529
- module_function :bindtextdomain, :textdomain, :each_textdomain, :cached=, :cached?, :clear_cache,
554
+ module_function :bindtextdomain, :textdomain, :each_textdomain, :cached=, :cached?, :clear_cache,
530
555
  :N_, :gettext, :_, :ngettext, :n_, :sgettext, :s_, :nsgettext, :ns_, :bound_target, :bound_targets, :find_targets,
531
556
  :setlocale, :set_locale, :locale=, :set_locale_all, :locale,
532
- :set_output_charset, :output_charset=, :output_charset, :current_textdomain_info
557
+ :set_output_charset, :output_charset=, :output_charset, :current_textdomain_info, :remove_all_textdomains
533
558
  end
@@ -6,7 +6,7 @@
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
8
8
 
9
- $Id: active_record.rb,v 1.21 2007/07/04 15:51:30 mutoh Exp $
9
+ $Id: active_record.rb,v 1.22 2008/05/05 14:31:06 mutoh Exp $
10
10
  =end
11
11
  require 'gettext'
12
12
  require 'active_record'
@@ -98,10 +98,10 @@ module ActiveRecord #:nodoc:
98
98
  # Very ugly but...
99
99
  def validates_length_of_with_gettext(*attrs) #:nodoc:
100
100
  if attrs.last.is_a?(Hash)
101
- msg = attrs.last[:message] || attrs.last[:too_long] || attrs.last[:too_short] || attrs.last[:wrong_length]
102
- if msg
103
- @@custom_error_messages_d[msg] = /\A#{Regexp.escape(msg).sub(/%d/, '(\d+)')}\Z/
104
- end
101
+ [:message, :too_long, :too_short, :wrong_length].each do |msg_sym|
102
+ msg = attrs.last[msg_sym]
103
+ @@custom_error_messages_d[msg] = /\A#{Regexp.escape(msg).sub(/%d/, '(\d+)')}\Z/ if msg
104
+ end
105
105
  end
106
106
  validates_size_of(*attrs)
107
107
  end
data/lib/gettext/mo.rb CHANGED
@@ -12,10 +12,11 @@
12
12
  of Ruby. License of Ruby is included with Ruby distribution in
13
13
  the file "README".
14
14
 
15
- $Id: mo.rb,v 1.8 2007/11/10 02:51:21 mutoh Exp $
15
+ $Id: mo.rb,v 1.9 2008/03/22 04:43:32 mutoh Exp $
16
16
  =end
17
17
 
18
18
  require 'gettext/iconv'
19
+ require 'stringio'
19
20
 
20
21
  class MOFile < Hash
21
22
  class InvalidFormat < RuntimeError; end;
@@ -58,15 +59,14 @@ class MOFile < Hash
58
59
  end
59
60
 
60
61
  def load(arg)
61
- case arg
62
- when String
62
+ if arg.kind_of? String
63
63
  begin
64
64
  st = File.stat(arg)
65
65
  @last_modified = [st.ctime, st.mtime]
66
66
  rescue Exception
67
67
  end
68
68
  load_from_file(arg)
69
- when IO
69
+ else
70
70
  load_from_stream(arg)
71
71
  end
72
72
  @filename = arg
data/lib/gettext/rails.rb CHANGED
@@ -6,7 +6,7 @@
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
8
8
 
9
- $Id: rails.rb,v 1.72 2008/01/29 16:30:29 mutoh Exp $
9
+ $Id: rails.rb,v 1.75 2008/05/11 11:37:34 mutoh Exp $
10
10
  =end
11
11
 
12
12
  require 'gettext/cgi'
@@ -228,6 +228,7 @@ module ActionController #:nodoc:
228
228
  textdomain_to(ActionView::Base, domainname) if defined? ActionView::Base
229
229
  textdomain_to(ApplicationHelper, domainname) if defined? ApplicationHelper
230
230
  textdomain_to(ActionMailer::Base, domainname) if defined? ActionMailer::Base
231
+ textdomain_to(ActionView::Helpers, domainname) if defined? ActionView::Helpers
231
232
  end
232
233
 
233
234
  # Gets the textdomain name and path of this controller which is set
@@ -285,6 +286,16 @@ module ActionView #:nodoc:
285
286
  end
286
287
 
287
288
  module Helpers #:nodoc:
289
+ class FormBuilder
290
+ include GetText
291
+
292
+ def label_with_gettext(method, text = nil, options = {})
293
+ text ||= s_("#{@object.class}|#{method.to_s.humanize}")
294
+ @template.label(@object_name, method, text, options.merge(:object => @object))
295
+ end
296
+ alias_method_chain :label, :gettext
297
+ end
298
+
288
299
  module ActiveRecordHelper #:nodoc: all
289
300
  module L10n
290
301
  # Separate namespace for textdomain
@@ -402,18 +413,19 @@ module ActionView #:nodoc:
402
413
  # This is FAKE constant. The messages are found by rgettext as the msgid.
403
414
  MESSAGESS = [N_('less than 5 seconds'), N_('less than 10 seconds'), N_('less than 20 seconds'),
404
415
  N_('half a minute'), N_('less than a minute'), N_('about 1 month'),
405
- N_('about 1 year'), N_('over 2 years')]
416
+ N_('about 1 year')]
406
417
  NMINUTES = [/^(\d+) minutes?$/, Nn_('1 minute', '%{num} minutes')]
407
418
  NHOURS = [/^about (\d+) hours?$/, Nn_('about 1 hour', 'about %{num} hours')]
408
419
  NDAYS = [/^(\d+) days?$/, Nn_('1 day', '%{num} days')]
409
420
  NMONTHS = [/^(\d+) months?$/, Nn_('1 month', '%{num} months')]
421
+ NYEARS = [/^over (\d+) years?$/, Nn_('over 1 year', 'over %{num} years')]
410
422
 
411
423
  def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false)
412
424
  textdomain("rails")
413
425
 
414
426
  msg = distance_of_time_in_words_without_locale(from_time, to_time, include_seconds)
415
427
  match = false
416
- [NMINUTES, NHOURS, NDAYS, NMONTHS].each do |regexp, nn|
428
+ [NMINUTES, NHOURS, NDAYS, NMONTHS, NYEARS].each do |regexp, nn|
417
429
  if regexp =~ msg
418
430
  match = true
419
431
  msg = n_(nn, $1.to_i) % {:num => $1}