gettext 1.10.0 → 1.90.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 (327) hide show
  1. data/ChangeLog +156 -2
  2. data/NEWS +28 -0
  3. data/README +128 -138
  4. data/Rakefile +83 -43
  5. data/data/locale/es/LC_MESSAGES/rails.mo +0 -0
  6. data/data/locale/hu/LC_MESSAGES/rails.mo +0 -0
  7. data/data/locale/hu/LC_MESSAGES/rgettext.mo +0 -0
  8. data/data/locale/ua/LC_MESSAGES/rails.mo +0 -0
  9. data/data/locale/ua/LC_MESSAGES/rgettext.mo +0 -0
  10. data/doc/classes/ActiveRecord/Base.html +360 -0
  11. data/doc/classes/ActiveRecord/ConnectionAdapters/Column.html +182 -0
  12. data/doc/classes/ActiveRecord/Migration.html +118 -0
  13. data/doc/classes/GetText.html +1790 -0
  14. data/doc/classes/GetText/ActiveRecordParser.html +236 -0
  15. data/doc/classes/GetText/Container.html +119 -0
  16. data/doc/classes/GetText/ErbContainer.html +223 -0
  17. data/doc/classes/GetText/ErbParser.html +156 -0
  18. data/doc/classes/GetText/GladeParser.html +133 -0
  19. data/doc/classes/GetText/NoboundTextDomainError.html +119 -0
  20. data/doc/classes/GetText/PoParser.html +169 -0
  21. data/doc/classes/GetText/Rails.html +293 -0
  22. data/doc/classes/GetText/RubyParser.html +123 -0
  23. data/doc/classes/GetText/TextDomain.html +572 -0
  24. data/doc/classes/GetText/TextDomainManager.html +443 -0
  25. data/doc/classes/Iconv.html +257 -0
  26. data/doc/classes/Iconv/Failure.html +105 -0
  27. data/doc/classes/Iconv/IllegalSequence.html +118 -0
  28. data/doc/classes/Iconv/InvalidCharacter.html +118 -0
  29. data/doc/classes/Iconv/InvalidEncoding.html +118 -0
  30. data/doc/classes/Locale.html +839 -0
  31. data/doc/classes/Locale/Object.html +799 -0
  32. data/doc/classes/Locale/SystemBase.html +271 -0
  33. data/doc/classes/Locale/SystemCGI.html +312 -0
  34. data/doc/classes/Locale/SystemJRuby.html +112 -0
  35. data/doc/classes/Locale/SystemPosix.html +113 -0
  36. data/doc/classes/Locale/SystemWin32.html +182 -0
  37. data/doc/classes/MOFile.html +678 -0
  38. data/doc/classes/MOFile/InvalidFormat.html +111 -0
  39. data/doc/classes/Module.html +158 -0
  40. data/doc/classes/String.html +225 -0
  41. data/doc/created.rid +1 -0
  42. data/doc/files/ChangeLog.html +2355 -0
  43. data/doc/files/README.html +510 -0
  44. data/doc/files/lib/gettext/active_record_rb.html +110 -0
  45. data/doc/files/lib/gettext/cgi_rb.html +110 -0
  46. data/doc/files/lib/gettext/container_rb.html +108 -0
  47. data/doc/files/lib/gettext/erb_rb.html +109 -0
  48. data/doc/files/lib/gettext/iconv_rb.html +109 -0
  49. data/doc/files/lib/gettext/mo_rb.html +108 -0
  50. data/doc/files/lib/gettext/parser/active_record_rb.html +119 -0
  51. data/doc/files/lib/gettext/parser/erb_rb.html +109 -0
  52. data/doc/files/lib/gettext/parser/glade_rb.html +109 -0
  53. data/doc/files/lib/gettext/parser/ruby_rb.html +110 -0
  54. data/doc/files/lib/gettext/poparser_rb.html +108 -0
  55. data/doc/files/lib/gettext/rails_compat_rb.html +108 -0
  56. data/doc/files/lib/gettext/rails_rb.html +112 -0
  57. data/doc/files/lib/gettext/rgettext_rb.html +110 -0
  58. data/doc/files/lib/gettext/rmsgfmt_rb.html +112 -0
  59. data/doc/files/lib/gettext/rmsgmerge_rb.html +112 -0
  60. data/doc/files/lib/gettext/string_rb.html +101 -0
  61. data/doc/files/lib/gettext/textdomain_rb.html +109 -0
  62. data/doc/files/lib/gettext/textdomainmanager_rb.html +109 -0
  63. data/doc/files/lib/gettext/utils_rb.html +111 -0
  64. data/doc/files/lib/gettext/version_rb.html +101 -0
  65. data/doc/files/lib/gettext_rb.html +113 -0
  66. data/doc/files/lib/locale/base_rb.html +101 -0
  67. data/doc/files/lib/locale/cgi_rb.html +108 -0
  68. data/doc/files/lib/locale/jruby_rb.html +110 -0
  69. data/doc/files/lib/locale/object_rb.html +101 -0
  70. data/doc/files/lib/locale/posix_rb.html +108 -0
  71. data/doc/files/lib/locale/win32_rb.html +110 -0
  72. data/doc/files/lib/locale/win32_table_rb.html +101 -0
  73. data/doc/files/lib/locale_rb.html +111 -0
  74. data/doc/fr_class_index.html +57 -0
  75. data/doc/fr_file_index.html +58 -0
  76. data/doc/fr_method_index.html +155 -0
  77. data/doc/index.html +24 -0
  78. data/doc/rdoc-style.css +208 -0
  79. data/lib/gettext.rb +102 -50
  80. data/lib/gettext/cgi.rb +2 -27
  81. data/lib/gettext/iconv.rb +76 -62
  82. data/lib/gettext/mo.rb +3 -3
  83. data/lib/gettext/parser/erb.rb +2 -2
  84. data/lib/gettext/rails.rb +69 -48
  85. data/lib/gettext/rgettext.rb +2 -2
  86. data/lib/gettext/rmsgmerge.rb +2 -2
  87. data/lib/gettext/string.rb +9 -5
  88. data/lib/gettext/textdomain.rb +3 -3
  89. data/lib/gettext/textdomainmanager.rb +5 -5
  90. data/lib/gettext/utils.rb +4 -3
  91. data/lib/gettext/version.rb +1 -1
  92. data/lib/{gettext/locale.rb → locale.rb} +11 -58
  93. data/lib/locale/base.rb +60 -0
  94. data/lib/{gettext/locale_cgi.rb → locale/cgi.rb} +30 -28
  95. data/lib/locale/jruby.rb +36 -0
  96. data/lib/{gettext/locale_object.rb → locale/object.rb} +78 -24
  97. data/lib/locale/posix.rb +22 -0
  98. data/lib/locale/win32.rb +48 -0
  99. data/lib/{gettext/locale_table_win32.rb → locale/win32_table.rb} +3 -2
  100. data/po/es/rails.po +1 -2
  101. data/po/hu/rails.po +139 -0
  102. data/po/hu/rgettext.po +126 -0
  103. data/po/ja/rails.po +5 -5
  104. data/po/ua/rails.po +150 -0
  105. data/po/ua/rgettext.po +132 -0
  106. data/pre-setup.rb +2 -4
  107. data/samples/cgi/cookie.cgi +1 -0
  108. data/samples/cgi/helloerb1.cgi +6 -3
  109. data/samples/cgi/helloerb2.cgi +6 -3
  110. data/samples/cgi/http.rb +3 -7
  111. data/samples/cgi/index.cgi +2 -1
  112. data/samples/cgi/locale/hu/LC_MESSAGES/helloerb1.mo +0 -0
  113. data/samples/cgi/locale/hu/LC_MESSAGES/helloerb2.mo +0 -0
  114. data/samples/cgi/locale/hu/LC_MESSAGES/hellolib.mo +0 -0
  115. data/samples/cgi/locale/hu/LC_MESSAGES/main.mo +0 -0
  116. data/samples/cgi/locale/ua/LC_MESSAGES/helloerb1.mo +0 -0
  117. data/samples/cgi/locale/ua/LC_MESSAGES/helloerb2.mo +0 -0
  118. data/samples/cgi/locale/ua/LC_MESSAGES/hellolib.mo +0 -0
  119. data/samples/cgi/locale/ua/LC_MESSAGES/main.mo +0 -0
  120. data/samples/cgi/po/hu/helloerb1.po +59 -0
  121. data/samples/cgi/po/hu/helloerb2.po +51 -0
  122. data/samples/cgi/po/hu/hellolib.po +23 -0
  123. data/samples/cgi/po/hu/main.po +82 -0
  124. data/samples/cgi/po/ua/helloerb1.po +62 -0
  125. data/samples/cgi/po/ua/helloerb2.po +54 -0
  126. data/samples/cgi/po/ua/hellolib.po +26 -0
  127. data/samples/cgi/po/ua/main.po +84 -0
  128. data/samples/locale/hu/LC_MESSAGES/hello.mo +0 -0
  129. data/samples/locale/hu/LC_MESSAGES/hello2.mo +0 -0
  130. data/samples/locale/hu/LC_MESSAGES/hello_noop.mo +0 -0
  131. data/samples/locale/hu/LC_MESSAGES/hello_plural.mo +0 -0
  132. data/samples/locale/hu/LC_MESSAGES/helloglade2.mo +0 -0
  133. data/samples/locale/hu/LC_MESSAGES/hellogtk.mo +0 -0
  134. data/samples/locale/hu/LC_MESSAGES/hellotk.mo +0 -0
  135. data/samples/locale/ua/LC_MESSAGES/hello.mo +0 -0
  136. data/samples/locale/ua/LC_MESSAGES/hello2.mo +0 -0
  137. data/samples/locale/ua/LC_MESSAGES/hello_noop.mo +0 -0
  138. data/samples/locale/ua/LC_MESSAGES/hello_plural.mo +0 -0
  139. data/samples/locale/ua/LC_MESSAGES/helloglade2.mo +0 -0
  140. data/samples/locale/ua/LC_MESSAGES/hellogtk.mo +0 -0
  141. data/samples/locale/ua/LC_MESSAGES/hellotk.mo +0 -0
  142. data/samples/po/hu/hello.po +22 -0
  143. data/samples/po/hu/hello2.po +30 -0
  144. data/samples/po/hu/hello_noop.po +26 -0
  145. data/samples/po/hu/hello_plural.po +25 -0
  146. data/samples/po/hu/helloglade2.po +31 -0
  147. data/samples/po/hu/hellogtk.po +22 -0
  148. data/samples/po/hu/hellotk.po +23 -0
  149. data/samples/po/ua/hello.po +22 -0
  150. data/samples/po/ua/hello2.po +30 -0
  151. data/samples/po/ua/hello_noop.po +26 -0
  152. data/samples/po/ua/hello_plural.po +29 -0
  153. data/samples/po/ua/helloglade2.po +34 -0
  154. data/samples/po/ua/hellogtk.po +22 -0
  155. data/samples/po/ua/hellotk.po +26 -0
  156. data/samples/rails/README +15 -31
  157. data/samples/rails/Rakefile +1 -1
  158. data/samples/rails/app/controllers/application.rb +11 -4
  159. data/samples/rails/app/controllers/articles_controller.rb +96 -0
  160. data/samples/rails/app/helpers/application_helper.rb +1 -1
  161. data/samples/rails/app/helpers/{blog_helper.rb → articles_helper.rb} +6 -7
  162. data/samples/rails/app/views/articles/edit.html.erb +18 -0
  163. data/samples/rails/app/views/articles/index.html.erb +17 -0
  164. data/samples/rails/app/views/articles/new.html.erb +16 -0
  165. data/samples/rails/app/views/articles/show.html.erb +6 -0
  166. data/samples/rails/app/views/layouts/articles.html.erb +26 -0
  167. data/samples/rails/config/boot.rb +104 -13
  168. data/samples/rails/config/database.yml +24 -21
  169. data/samples/rails/config/environment.rb +35 -30
  170. data/samples/rails/config/environments/development.rb +5 -6
  171. data/samples/rails/config/environments/production.rb +2 -3
  172. data/samples/rails/config/environments/test.rb +5 -2
  173. data/samples/rails/config/initializers/inflections.rb +10 -0
  174. data/samples/rails/config/initializers/mime_types.rb +5 -0
  175. data/samples/rails/config/routes.rb +30 -11
  176. data/samples/rails/db/migrate/001_create_articles.rb +14 -0
  177. data/samples/rails/db/schema.rb +16 -5
  178. data/samples/rails/lib/tasks/gettext.rake +2 -2
  179. data/samples/rails/locale/bs/LC_MESSAGES/blog.mo +0 -0
  180. data/samples/rails/locale/ca/LC_MESSAGES/blog.mo +0 -0
  181. data/samples/rails/locale/cs/LC_MESSAGES/blog.mo +0 -0
  182. data/samples/rails/locale/de/LC_MESSAGES/blog.mo +0 -0
  183. data/samples/rails/locale/el/LC_MESSAGES/blog.mo +0 -0
  184. data/samples/rails/locale/en/LC_MESSAGES/blog.mo +0 -0
  185. data/samples/rails/locale/eo/LC_MESSAGES/blog.mo +0 -0
  186. data/samples/rails/locale/es/LC_MESSAGES/blog.mo +0 -0
  187. data/samples/rails/locale/fr/LC_MESSAGES/blog.mo +0 -0
  188. data/samples/rails/locale/hr/LC_MESSAGES/blog.mo +0 -0
  189. data/samples/rails/locale/hu/LC_MESSAGES/blog.mo +0 -0
  190. data/samples/rails/locale/it/LC_MESSAGES/blog.mo +0 -0
  191. data/samples/rails/locale/ja/LC_MESSAGES/blog.mo +0 -0
  192. data/samples/rails/locale/ko/LC_MESSAGES/blog.mo +0 -0
  193. data/samples/rails/locale/nb/LC_MESSAGES/blog.mo +0 -0
  194. data/samples/rails/locale/nl/LC_MESSAGES/blog.mo +0 -0
  195. data/samples/rails/locale/pt_BR/LC_MESSAGES/blog.mo +0 -0
  196. data/samples/rails/locale/ru/LC_MESSAGES/blog.mo +0 -0
  197. data/samples/rails/locale/ua/LC_MESSAGES/blog.mo +0 -0
  198. data/samples/rails/locale/vi/LC_MESSAGES/blog.mo +0 -0
  199. data/samples/rails/locale/zh/LC_MESSAGES/blog.mo +0 -0
  200. data/samples/rails/locale/zh_TW/LC_MESSAGES/blog.mo +0 -0
  201. data/samples/rails/po/blog.pot +24 -24
  202. data/samples/rails/po/bs/blog.po +29 -29
  203. data/samples/rails/po/ca/blog.po +27 -27
  204. data/samples/rails/po/cs/blog.po +27 -27
  205. data/samples/rails/po/de/blog.po +27 -27
  206. data/samples/rails/po/el/blog.po +27 -27
  207. data/samples/rails/po/en/blog.po +24 -24
  208. data/samples/rails/po/eo/blog.po +27 -27
  209. data/samples/rails/po/es/blog.po +27 -27
  210. data/samples/rails/po/fr/blog.po +27 -27
  211. data/samples/rails/po/hr/blog.po +29 -29
  212. data/samples/rails/po/hu/blog.po +105 -0
  213. data/samples/rails/po/it/blog.po +27 -27
  214. data/samples/rails/po/ja/blog.po +27 -27
  215. data/samples/rails/po/ko/blog.po +27 -27
  216. data/samples/rails/po/nb/blog.po +26 -27
  217. data/samples/rails/po/nl/blog.po +27 -27
  218. data/samples/rails/po/pt_BR/blog.po +27 -27
  219. data/samples/rails/po/ru/blog.po +27 -27
  220. data/samples/rails/po/ua/blog.po +108 -0
  221. data/samples/rails/po/vi/blog.po +26 -31
  222. data/samples/rails/po/zh/blog.po +27 -27
  223. data/samples/rails/po/zh_TW/blog.po +27 -27
  224. data/samples/rails/public/404.html +27 -5
  225. data/samples/rails/public/422.html +30 -0
  226. data/samples/rails/public/500.html +27 -5
  227. data/samples/rails/public/index.html +6 -6
  228. data/samples/rails/public/javascripts/application.js +2 -0
  229. data/samples/rails/public/javascripts/controls.js +532 -319
  230. data/samples/rails/public/javascripts/dragdrop.js +521 -133
  231. data/samples/rails/public/javascripts/effects.js +708 -442
  232. data/samples/rails/public/javascripts/prototype.js +3393 -953
  233. data/samples/rails/public/stylesheets/blog.css +4 -0
  234. data/samples/rails/public/stylesheets/scaffold.css +5 -5
  235. data/samples/rails/test/functional/articles_controller_test.rb +51 -0
  236. data/samples/rails/test/test_helper.rb +31 -19
  237. data/samples/rails/test/unit/article_test.rb +2 -9
  238. data/samples/rails/vendor/plugins/gettext/init.rb +5 -3
  239. data/samples/rails/vendor/plugins/gettext/lib/gettext_plugin.rb +9 -10
  240. data/samples/rails/vendor/plugins/gettext/locale/eo/LC_MESSAGES/gettext_plugin.mo +0 -0
  241. data/samples/rails/vendor/plugins/gettext/locale/hu/LC_MESSAGES/gettext_plugin.mo +0 -0
  242. data/samples/rails/vendor/plugins/gettext/locale/ua/LC_MESSAGES/gettext_plugin.mo +0 -0
  243. data/samples/rails/vendor/plugins/gettext/po/eo/gettext_plugin.po +28 -0
  244. data/samples/rails/vendor/plugins/gettext/po/hu/gettext_plugin.po +27 -0
  245. data/samples/rails/vendor/plugins/gettext/po/ua/gettext_plugin.po +30 -0
  246. data/test/Rakefile +2 -1
  247. data/test/benchmark.rb +28 -0
  248. data/test/fixtures/topic.rb +15 -0
  249. data/test/rails/Rakefile +2 -1
  250. data/test/rails/app/controllers/articles_controller.rb +1 -1
  251. data/test/rails/app/controllers/users_controller.rb +10 -0
  252. data/test/rails/app/models/user.rb +2 -1
  253. data/test/rails/app/views/articles/{_form.rhtml → _form.html.erb} +0 -0
  254. data/test/rails/app/views/articles/active_form_error.html.erb +1 -0
  255. data/test/rails/app/views/articles/change_title_error_messages_for.html.erb +21 -0
  256. data/test/rails/app/views/articles/{edit.rhtml → edit.html.erb} +0 -0
  257. data/test/rails/app/views/articles/{list.rhtml → list.html.erb} +0 -3
  258. data/test/rails/app/views/articles/{list_fr.rhtml → list_fr.html.erb} +0 -0
  259. data/test/rails/app/views/articles/{multi_error_messages_for.rhtml → multi_error_messages_for.html.erb} +0 -0
  260. data/test/rails/app/views/articles/{new.rhtml → new.html.erb} +0 -0
  261. data/test/rails/app/views/articles/{show.rhtml → show.html.erb} +0 -0
  262. data/test/rails/app/views/layouts/{application.rhtml → application.html.erb} +0 -0
  263. data/test/rails/app/views/layouts/{mailer.rhtml → mailer.html.erb} +0 -0
  264. data/test/rails/app/views/layouts/users.html.erb +13 -0
  265. data/test/rails/app/views/users/custom_error_message.html.erb +13 -0
  266. data/test/rails/app/views/users/custom_error_message_fr.html.erb +13 -0
  267. data/test/rails/config/environment.rb +6 -1
  268. data/test/rails/config/environments/development.rb +0 -3
  269. data/test/rails/db/schema.rb +17 -10
  270. data/test/rails/locale/ja/LC_MESSAGES/rails_test.mo +0 -0
  271. data/test/rails/log/development.log +136 -29
  272. data/test/rails/log/test.log +2002 -128
  273. data/test/rails/po/ja/rails_test.po +68 -61
  274. data/test/rails/po/rails_test.pot +57 -55
  275. data/test/rails/test/fixtures/users.yml +5 -0
  276. data/test/rails/test/functional/articles_controller_test.rb +6 -1
  277. data/test/rails/test/functional/users_controller_test.rb +65 -0
  278. data/test/rails/test/result/en/custom_error_message.html +83 -0
  279. data/test/rails/test/result/en/custom_error_message_with_plural.html +83 -0
  280. data/test/rails/test/result/en/list.html +0 -3
  281. data/test/rails/test/result/en/multi_error_messages_for.html +1 -1
  282. data/test/rails/test/result/fr/custom_error_message.html +83 -0
  283. data/test/rails/test/result/fr/custom_error_message_with_plural.html +83 -0
  284. data/test/rails/test/result/ja/custom_error_message.html +83 -0
  285. data/test/rails/test/result/ja/custom_error_message_with_plural.html +83 -0
  286. data/test/rails/test/result/ja/list.html +0 -3
  287. data/test/rails/test/result/ja/multi_error_messages_for.html +1 -1
  288. data/test/test.sh +5 -7
  289. data/test/{gettext_test_active_record.rb → test_active_record.rb} +20 -10
  290. data/test/{gettext_test_cgi.rb → test_cgi.rb} +0 -0
  291. data/test/{gettext_test.rb → test_gettext.rb} +91 -9
  292. data/test/test_java.sh +12 -0
  293. data/test/{gettext_test_locale.rb → test_locale.rb} +3 -8
  294. data/test/{gettext_test_multi_textdomain.rb → test_multi_textdomain.rb} +2 -2
  295. data/test/{gettext_test_parser.rb → test_parser.rb} +77 -77
  296. data/test/{gettext_test_rails.rb → test_rails.rb} +0 -0
  297. data/test/{gettext_test_rails_caching.rb → test_rails_caching.rb} +16 -2
  298. data/test/{gettext_test_string.rb → test_string.rb} +1 -0
  299. data/test/{test_rubyparser_N.rb → testlib/N_.rb} +0 -0
  300. data/test/testlib/erb.rhtml +15 -0
  301. data/test/testlib/erb.rxml +16 -0
  302. data/test/{test_rubyparser.rb → testlib/gettext.rb} +0 -0
  303. data/test/testlib/gladeparser.glade +183 -0
  304. data/test/{test_rubyparser_n_.rb → testlib/ngettext.rb} +0 -0
  305. data/test/{test_nsgettext.rb → testlib/nsgettext.rb} +0 -0
  306. data/test/{test_sgettext.rb → testlib/sgettext.rb} +0 -0
  307. data/test/{testlib1.rb → testlib/testlib1.rb} +0 -0
  308. data/test/{testlib2.rb → testlib/testlib2.rb} +1 -1
  309. data/test/{testlib3.rb → testlib/testlib3.rb} +0 -0
  310. data/test/{testlib4.rb → testlib/testlib4.rb} +1 -1
  311. data/test/{testlib5.rb → testlib/testlib5.rb} +0 -0
  312. data/test/{testlib6.rb → testlib/testlib6.rb} +0 -0
  313. metadata +1374 -1171
  314. data/ext/gettext/extconf.rb +0 -20
  315. data/ext/gettext/locale_system.c +0 -83
  316. data/lib/gettext/locale_posix.rb +0 -82
  317. data/lib/gettext/locale_win32.rb +0 -82
  318. data/samples/cgi/ruby.bat +0 -4
  319. data/samples/rails/app/controllers/blog_controller.rb +0 -58
  320. data/samples/rails/app/views/blog/_form.rhtml +0 -25
  321. data/samples/rails/app/views/blog/edit.rhtml +0 -22
  322. data/samples/rails/app/views/blog/list.rhtml +0 -29
  323. data/samples/rails/app/views/blog/new.rhtml +0 -21
  324. data/samples/rails/app/views/blog/show.rhtml +0 -18
  325. data/samples/rails/app/views/layouts/blog.rhtml +0 -36
  326. data/samples/rails/test/functional/blog_controller_test.rb +0 -98
  327. data/test/gettext_runner.rb +0 -22
@@ -0,0 +1,60 @@
1
+ =begin
2
+ locale/posix.rb
3
+
4
+ Copyright (C) 2002-2007 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ $Id: base.rb,v 1.1 2007/11/08 16:57:49 mutoh Exp $
10
+ =end
11
+
12
+
13
+ module Locale
14
+ # Locale::SystemBase module. This module overrides from other concrete modules.
15
+ # This is a low-level class. Application shouldn't use this directly.
16
+ module SystemBase
17
+ @@default_locale = Locale::Object.new("C", nil, "UTF-8")
18
+
19
+ def default_locale # :nodoc:
20
+ @@default_locale
21
+ end
22
+
23
+ # Gets the charset of the locale.
24
+ # * locale: Locale::Object
25
+ # * Returns the charset of the locale
26
+ def get_charset(locale)
27
+ locale.charset || @@default_locale.charset
28
+ end
29
+
30
+ # Gets the system locale using setlocale and nl_langinfo.
31
+ # * Returns the system locale (Locale::Object).
32
+ def locale_from_env
33
+ locale = nil
34
+ # At least one environment valiables should be set on *nix system.
35
+ [ENV["LC_ALL"], ENV["LC_MESSAGES"], ENV["LANG"]].each do |loc|
36
+ if loc != nil and loc.size > 0
37
+ locale = Locale::Object.new(loc)
38
+ locale.charset ||= get_charset(locale)
39
+ break
40
+ end
41
+ end
42
+ locale
43
+ end
44
+
45
+ # Gets the system locale.
46
+ # * Returns the system locale (Locale::Object)
47
+ def system
48
+ locale_from_env || default_locale
49
+ end
50
+
51
+ # Gets the charset of the locale.
52
+ # * locale: Locale::Object
53
+ # * Returns: the charset of the locale
54
+ def charset
55
+ # locale parameter is ignored now.
56
+ system.charset
57
+ end
58
+ end
59
+ end
60
+
@@ -1,19 +1,22 @@
1
1
  =begin
2
- locale_cgi.rb
2
+ locale/cgi.rb
3
3
 
4
- Copyright (C) 2002-2006 Masao Mutoh
4
+ Copyright (C) 2002-2007 Masao Mutoh
5
5
 
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
8
8
 
9
- $Id: locale_cgi.rb,v 1.7 2006/12/14 16:35:57 mutoh Exp $
9
+ $Id: cgi.rb,v 1.2 2007/11/08 16:44:22 mutoh Exp $
10
10
  =end
11
11
 
12
+ require 'locale/base'
12
13
 
13
14
  module Locale
14
15
  # Locale::System module for CGI.
15
16
  # This is a low-level class. Application shouldn't use this directly.
16
17
  module SystemCGI
18
+ extend SystemBase
19
+
17
20
  @@default_locale = Locale::Object.new("en", nil, "UTF-8")
18
21
  @@cgi = nil
19
22
 
@@ -23,7 +26,7 @@ module Locale
23
26
  def system
24
27
  return @@default_locale unless @@cgi
25
28
  cgi_ = cgi
26
- if ret = cgi_["lang"] and ret.size > 0
29
+ if cgi_.has_key?("lang") and ret = cgi_["lang"] and ret.size > 0
27
30
  elsif ret = cgi_.cookies["lang"][0]
28
31
  elsif lang = cgi_.accept_language and lang.size > 0
29
32
  num = lang.index(/;|,/)
@@ -43,12 +46,6 @@ module Locale
43
46
  Locale::Object.new(ret, nil, codeset)
44
47
  end
45
48
 
46
- # Gets the charset of the locale.
47
- # * locale: Locale::Object
48
- # * Returns: the charset of the locale
49
- def get_charset(locale)
50
- locale.charset ? locale.charset : @@default_locale.charset
51
- end
52
49
 
53
50
  # Sets a CGI object.
54
51
  # * cgi_: CGI object
@@ -73,23 +70,6 @@ module Locale
73
70
  @@cgi
74
71
  end
75
72
 
76
- # Sets a default locale. en.UTF-8 is the default value if not set.
77
- # * locale: Locale::Object object. You can't set nil.
78
- # * Returns: self
79
- def set_default_locale(locale)
80
- raise "Wrong parameter: #{locale}" if locale.nil?
81
- @@default_locale = locale
82
- self
83
- end
84
-
85
- # Sets a default locale. en.UTF-8 is the default value if not set.
86
- # * locale: Locale::Object
87
- # * Returns: locale
88
- def default_locale=(locale)
89
- set_default_locale(locale)
90
- locale
91
- end
92
-
93
73
  # Gets the default Locale::Object.
94
74
  # * Returns: the default locale
95
75
  def default_locale
@@ -97,5 +77,27 @@ module Locale
97
77
  end
98
78
  end
99
79
  @@locale_system_module = SystemCGI
100
- end
101
80
 
81
+ module_function
82
+ # Sets a CGI object.
83
+ # * cgi_: CGI object
84
+ # * Returns: self
85
+ def set_cgi(cgi_)
86
+ @@locale_system_module.set_cgi(cgi_)
87
+ self
88
+ end
89
+
90
+ # Sets a CGI object.
91
+ # * cgi_: CGI object
92
+ # * Returns: cgi_
93
+ def cgi=(cgi_)
94
+ set_cgi(cgi_)
95
+ cgi_
96
+ end
97
+
98
+ # Gets the CGI object. If it is nil, returns new CGI object.
99
+ # * Returns: the CGI object
100
+ def cgi
101
+ @@locale_system_module.cgi
102
+ end
103
+ end
@@ -0,0 +1,36 @@
1
+ =begin
2
+ locale/jruby.rb
3
+
4
+ Copyright (C) 2007 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ $Id: jruby.rb,v 1.2 2007/11/08 16:44:22 mutoh Exp $
10
+ =end
11
+
12
+ require 'locale/base'
13
+ require 'java'
14
+
15
+ module Locale
16
+ # Locale::SystemJRuby module for JRuby
17
+ # This is a low-level class. Application shouldn't use this directly.
18
+ module SystemJRuby
19
+ extend SystemBase
20
+
21
+ if java.lang.System.getProperties['os.name'].downcase =~ /windows/
22
+ require 'locale/win32_table'
23
+
24
+ extend SystemWin32Table
25
+ end
26
+
27
+ module_function
28
+ def default_locale #:nodoc:
29
+ locale = java.util.Locale.getDefault
30
+ charset = java.nio.charset.Charset.defaultCharset.name
31
+ Locale::Object.new(locale, nil, charset)
32
+ end
33
+ end
34
+ @@locale_system_module = SystemJRuby
35
+ end
36
+
@@ -1,18 +1,58 @@
1
1
  =begin
2
- locale_object.rb - Locale::Object
2
+ locale/object.rb - Locale::Object
3
3
 
4
- Copyright (C) 2006 Masao Mutoh
4
+ Copyright (C) 2006,2007 Masao Mutoh
5
5
 
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
8
8
 
9
- $Id: locale_object.rb,v 1.10 2006/09/10 15:08:32 mutoh Exp $
9
+ $Id: object.rb,v 1.3 2008/01/27 10:58:10 mutoh Exp $
10
10
  =end
11
11
 
12
12
 
13
13
  module Locale
14
14
  class Object
15
- attr_accessor :language, :country, :charset, :script, :variant, :modifier, :orig_str
15
+ attr_reader :language, :country, :charset, :script, :variant, :modifier, :orig_str
16
+
17
+ # Set the language. e.g.) ja, en, fr, ...
18
+ def language=(val)
19
+ @language = val
20
+ clear
21
+ end
22
+
23
+ # Set the country. e.g.) JP, US, FR, ...
24
+ def country=(val)
25
+ @country = val
26
+ clear
27
+ end
28
+
29
+ # Set the charset. e.g.) UTF-8, EUC-JP, Shift_JIS
30
+ def charset=(val)
31
+ @charset = val
32
+ clear
33
+ end
34
+
35
+ # Set the script. e.g.) Latn
36
+ def script=(val)
37
+ @script = val
38
+ clear
39
+ end
40
+
41
+ # Set the variant. e.g.) Hant
42
+ def variant=(val)
43
+ @variant = val
44
+ clear
45
+ end
46
+
47
+ # Set the modifier. e.g.) curreny=DDM
48
+ def modifier=(val)
49
+ @modifier = val
50
+ clear
51
+ end
52
+
53
+ # A fallback locale. With GetText, you don't need to set English(en,C,POSIX)
54
+ # by yourself because English is used as the last fallback locale anytime.
55
+ attr_accessor :fallback
16
56
 
17
57
  # Parse POSIX or RFC 3066 style locale name to Array.
18
58
  #
@@ -112,38 +152,56 @@ module Locale
112
152
  self.class.parse(language_or_locale_name)
113
153
  @country = country if country
114
154
  @charset = charset if charset
155
+ @fallback = nil
156
+ clear
157
+ end
158
+
159
+ def clear
160
+ @posix = nil
161
+ @iso3066 = nil
162
+ @win = nil
163
+ @general = nil
164
+ @hash = "#{self.class}:#{to_general}.#{@charset}@#{@modifier}".hash
115
165
  end
116
166
 
117
167
  # Returns the locale as POSIX format(but charset is ignored). (e.g.) "ja_JP"
118
168
  def to_posix
119
- ret = @language
120
- ret += "_#{@country}" if @country
121
- ret
169
+ return @posix if @posix
170
+ @posix = @language.dup
171
+
172
+ @posix << "_#{@country}" if @country
173
+ @posix
122
174
  end
123
175
 
124
176
  # Returns the locale as ISO3066 format. (e.g.) "ja-JP"
125
177
  def to_iso3066
126
- ret = @language
127
- ret += "-#{@country}" if @country
128
- ret
178
+ return @iso3066 if @iso3066
179
+
180
+ @iso3066 = @language.dup
181
+ @iso3066 << "-#{@country}" if @country
182
+ @iso3066
129
183
  end
130
184
 
131
185
  # Returns the locale as Win32 format. (e.g.) "az-AZ-Latn".
132
186
  #
133
187
  # This is used to find the charset from locale table.
134
188
  def to_win
135
- ret = @language
136
- ret += "-#{@country}" if @country
137
- ret += "-#{@script}" if @script
138
- ret
189
+ return @win if @win
190
+
191
+ @win = @language.dup
192
+ @win << "-#{@country}" if @country
193
+ @win << "-#{@script}" if @script
194
+ @win
139
195
  end
140
196
 
141
197
  # Returns the locale as 'ruby' general format. (e.g.) "az_AZ_Latn"
142
198
  def to_general
143
- ret = @language
144
- ret += "_#{@country}" if @country
145
- ret += "_#{@script}" if @script
146
- ret
199
+ return @general if @general
200
+
201
+ @general = @language.dup
202
+ @general << "_#{@country}" if @country
203
+ @general << "_#{@script}" if @script
204
+ @general
147
205
  end
148
206
 
149
207
  # Gets the locale informations as an Array.
@@ -159,11 +217,7 @@ module Locale
159
217
  end
160
218
 
161
219
  def ==(other) #:nodoc:
162
- other != nil and
163
- @language == other.language and @country == other.country and
164
- @charset == other.charset and @script == other.script and
165
- @variant == other.variant and @modifier == other.modifier and
166
- @charset == other.charset
220
+ other != nil and @hash == other.hash
167
221
  end
168
222
 
169
223
  def eql?(other) #:nodoc:
@@ -171,7 +225,7 @@ module Locale
171
225
  end
172
226
 
173
227
  def hash #:nodoc:
174
- "#{self.class}:#{to_general}.#{@charset}@#{modifier}".hash
228
+ @hash
175
229
  end
176
230
  alias :to_s :to_posix
177
231
  alias :to_str :to_posix
@@ -0,0 +1,22 @@
1
+ =begin
2
+ locale/posix.rb
3
+
4
+ Copyright (C) 2002-2007 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ $Id: posix.rb,v 1.2 2007/11/08 16:44:22 mutoh Exp $
10
+ =end
11
+
12
+ require 'locale/base'
13
+
14
+ module Locale
15
+ # Locale::SystemPosix module for Posix OS (Unix)
16
+ # This is a low-level class. Application shouldn't use this directly.
17
+ module SystemPosix
18
+ extend SystemBase
19
+ end
20
+ @@locale_system_module = SystemPosix
21
+ end
22
+
@@ -0,0 +1,48 @@
1
+ =begin
2
+ locale/win32.rb
3
+
4
+ Copyright (C) 2002-2008 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ $Id: win32.rb,v 1.4 2008/02/02 16:47:40 mutoh Exp $
10
+ =end
11
+
12
+ require 'locale/base'
13
+ require 'locale/win32_table'
14
+ require 'dl/win32'
15
+
16
+ module Locale
17
+ # Locale::SystemWin32 module for win32.
18
+ # This is a low-level class. Application shouldn't use this directly.
19
+ module SystemWin32
20
+ extend SystemBase
21
+
22
+ @@default_locale = Locale::Object.new("en", nil, "CP1252")
23
+ @@win32 = Win32API.new("kernel32.dll", "GetUserDefaultLangID", nil, "i")
24
+
25
+ module_function
26
+
27
+ # Gets the Win32 charset of the locale.
28
+ # * locale: Locale::Object
29
+ # * Returns the charset of the locale
30
+ def get_charset(locale)
31
+ loc = LocaleTable.find{|v| v[1] == locale.to_win}
32
+ loc = LocaleTable.find{|v| v[1] =~ /^#{locale.language}-/} unless loc
33
+ loc ? loc[2] : "CP1252"
34
+ end
35
+
36
+ def default_locale #:nodoc:
37
+ lang = LocaleTable.assoc(@@win32.call)
38
+ if lang
39
+ ret = Locale::Object.new(lang[1], nil, lang[2])
40
+ else
41
+ ret = @@default_locale
42
+ end
43
+ ret
44
+ end
45
+ end
46
+ @@locale_system_module = SystemWin32
47
+ end
48
+
@@ -1,16 +1,17 @@
1
1
  =begin
2
2
  locale_table_win32.rb - Locale table for win32
3
3
 
4
- Copyright (C) 2002-2006 Masao Mutoh <mutoh@highway.ne.jp>
4
+ Copyright (C) 2002-2008 Masao Mutoh <mutoh@highway.ne.jp>
5
5
 
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
8
8
 
9
- $Id: locale_table_win32.rb,v 1.5 2006/06/11 15:36:20 mutoh Exp $
9
+ $Id: win32_table.rb,v 1.3 2008/02/02 16:47:40 mutoh Exp $
10
10
  =end
11
11
 
12
12
  module Locale
13
13
  module SystemWin32
14
+
14
15
  #LangID, locale name, code page
15
16
  LocaleTable = [
16
17
  [0x0000, "en", "CP1252"],
data/po/es/rails.po CHANGED
@@ -51,9 +51,8 @@ msgid "less than a minute"
51
51
  msgstr "menos de un minuto"
52
52
 
53
53
  #: lib/gettext/rails.rb:383
54
- #, fuzzy
55
54
  msgid "about 1 month"
56
- msgstr "cerca de 1 hora"
55
+ msgstr "cerca de 1 minuto"
57
56
 
58
57
  #: lib/gettext/rails.rb:384
59
58
  #, fuzzy