gettext 1.10.0 → 1.90.0

Sign up to get free protection for your applications and to get access to all the features.
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