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
@@ -130,3 +130,7 @@ p.notice {
130
130
  border-width: 1px;
131
131
  border-color: #cca;
132
132
  }
133
+
134
+ li {
135
+ margin-left: 1em;
136
+ }
@@ -22,7 +22,7 @@ a:hover { color: #fff; background-color:#000; }
22
22
  display: table;
23
23
  }
24
24
 
25
- #ErrorExplanation {
25
+ #errorExplanation {
26
26
  width: 400px;
27
27
  border: 2px solid red;
28
28
  padding: 7px;
@@ -31,7 +31,7 @@ a:hover { color: #fff; background-color:#000; }
31
31
  background-color: #f0f0f0;
32
32
  }
33
33
 
34
- #ErrorExplanation h2 {
34
+ #errorExplanation h2 {
35
35
  text-align: left;
36
36
  font-weight: bold;
37
37
  padding: 5px 5px 5px 15px;
@@ -41,13 +41,13 @@ a:hover { color: #fff; background-color:#000; }
41
41
  color: #fff;
42
42
  }
43
43
 
44
- #ErrorExplanation p {
44
+ #errorExplanation p {
45
45
  color: #333;
46
46
  margin-bottom: 0;
47
47
  padding: 5px;
48
48
  }
49
49
 
50
- #ErrorExplanation ul li {
50
+ #errorExplanation ul li {
51
51
  font-size: 12px;
52
52
  list-style: square;
53
53
  }
@@ -62,7 +62,7 @@ div.progressBar {
62
62
 
63
63
  div.progressBar div.border {
64
64
  background-color: #fff;
65
- border: 1px solid grey;
65
+ border: 1px solid gray;
66
66
  width: 100%;
67
67
  }
68
68
 
@@ -0,0 +1,51 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class ArticlesControllerTest < ActionController::TestCase
4
+ def test_should_get_index
5
+ get :index
6
+ assert_response :success
7
+ assert_not_nil assigns(:articles)
8
+ end
9
+
10
+ def test_should_get_new
11
+ get :new
12
+ assert_response :success
13
+ end
14
+
15
+ def test_should_create_article
16
+ assert_difference('Article.count') do
17
+ post :create, :article => {
18
+ "title"=>"aaaaaaaaaa",
19
+ "lastupdate"=> Time.now,
20
+ "description"=>"aaaaaaaaaa" }
21
+ end
22
+
23
+ assert_redirected_to article_path(assigns(:article))
24
+ end
25
+
26
+ def test_should_show_article
27
+ get :show, :id => 1
28
+ assert_response :success
29
+ end
30
+
31
+ def test_should_get_edit
32
+ get :edit, :id => 1
33
+ assert_response :success
34
+ end
35
+
36
+ def test_should_update_article
37
+ put :update, :id => 1, :article => {
38
+ "title"=>"aaaaaaaaaa",
39
+ "lastupdate"=> Time.now,
40
+ "description"=>"aaaaaaaaaa" }
41
+ assert_redirected_to article_path(assigns(:article))
42
+ end
43
+
44
+ def test_should_destroy_article
45
+ assert_difference('Article.count', -1) do
46
+ delete :destroy, :id => 1
47
+ end
48
+
49
+ assert_redirected_to articles_path
50
+ end
51
+ end
@@ -1,26 +1,38 @@
1
1
  ENV["RAILS_ENV"] = "test"
2
-
3
- # Expand the path to environment so that Ruby does not load it multiple times
4
- # File.expand_path can be removed if Ruby 1.9 is in use.
5
2
  require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
6
- require 'application'
7
-
8
- require 'test/unit'
9
- require 'active_record/fixtures'
10
- require 'action_controller/test_process'
11
- require 'action_web_service/test_invoke'
12
- require 'breakpoint'
13
-
14
- Test::Unit::TestCase.fixture_path = File.dirname(__FILE__) + "/fixtures/"
3
+ require 'test_help'
15
4
 
16
5
  class Test::Unit::TestCase
17
- # Turn these on to use transactional fixtures with table_name(:fixture_name) instantiation of fixtures
18
- # self.use_transactional_fixtures = true
19
- # self.use_instantiated_fixtures = false
6
+ # Transactional fixtures accelerate your tests by wrapping each test method
7
+ # in a transaction that's rolled back on completion. This ensures that the
8
+ # test database remains unchanged so your fixtures don't have to be reloaded
9
+ # between every test method. Fewer database queries means faster tests.
10
+ #
11
+ # Read Mike Clark's excellent walkthrough at
12
+ # http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
13
+ #
14
+ # Every Active Record database supports transactions except MyISAM tables
15
+ # in MySQL. Turn off transactional fixtures in this case; however, if you
16
+ # don't care one way or the other, switching from MyISAM to InnoDB tables
17
+ # is recommended.
18
+ #
19
+ # The only drawback to using transactional fixtures is when you actually
20
+ # need to test transactions. Since your test is bracketed by a transaction,
21
+ # any transactions started in your code will be automatically rolled back.
22
+ self.use_transactional_fixtures = true
23
+
24
+ # Instantiated fixtures are slow, but give you @david where otherwise you
25
+ # would need people(:david). If you don't want to migrate your existing
26
+ # test cases which use the @david style and don't mind the speed hit (each
27
+ # instantiated fixtures translates to a database query per test method),
28
+ # then set this back to true.
29
+ self.use_instantiated_fixtures = false
20
30
 
21
- def create_fixtures(*table_names)
22
- Fixtures.create_fixtures(File.dirname(__FILE__) + "/fixtures", table_names)
23
- end
31
+ # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
32
+ #
33
+ # Note: You'll currently still have to declare fixtures explicitly in integration tests
34
+ # -- they do not yet inherit this setting
35
+ fixtures :all
24
36
 
25
37
  # Add more helper methods to be used by all tests here...
26
- end
38
+ end
@@ -1,14 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/../test_helper'
2
-
3
- class ArticleTest < Test::Unit::TestCase
4
- fixtures :articles
5
-
6
- def setup
7
- @article = Article.find(1)
8
- end
9
-
2
+ class ArticleTest < ActiveSupport::TestCase
10
3
  # Replace this with your real tests.
11
4
  def test_truth
12
- assert_kind_of Article, @article
5
+ assert_kind_of Article, Article.find(1)
13
6
  end
14
7
  end
@@ -1,15 +1,14 @@
1
1
  # init.rb - a sample script for Ruby on Rails
2
2
  #
3
- # Copyright (C) 2005 Masao Mutoh
3
+ # Copyright (C) 2005-2008 Masao Mutoh
4
4
  #
5
5
  # This file is distributed under the same license as Ruby-GetText-Package.
6
6
 
7
7
  require 'gettext_plugin'
8
8
 
9
- class ActionController::Base
9
+ ActionController::Base.class_eval do
10
10
  include LangHelper
11
11
  helper LangHelper
12
-
13
12
  before_filter{ |controller|
14
13
  if controller.params["action"] == "cookie_locale"
15
14
  controller.cookie_locale
@@ -17,3 +16,6 @@ class ActionController::Base
17
16
  }
18
17
  end
19
18
 
19
+ ActionView::Base.class_eval do
20
+ include LangHelper
21
+ end
@@ -1,6 +1,6 @@
1
1
  # gettext_plugin.rb - a sample script for Ruby on Rails
2
2
  #
3
- # Copyright (C) 2005,2006 Masao Mutoh
3
+ # Copyright (C) 2005-2007 Masao Mutoh
4
4
  #
5
5
  # This file is distributed under the same license as Ruby-GetText-Package.
6
6
 
@@ -10,14 +10,12 @@ module LangHelper
10
10
  include GetText::Rails
11
11
 
12
12
  bindtextdomain("gettext_plugin", :path => File.join(RAILS_ROOT, "vendor/plugins/gettext/locale"))
13
-
13
+
14
14
  def show_language
15
- langs = ["en"] + Dir.glob(File.join(RAILS_ROOT,"locale/*")).collect{|item| File.basename(item)}
16
- langs.delete("CVS")
17
- langs.uniq!
15
+ langs = available_locales.sort
18
16
  ret = "<h4>" + _("Select locale") + "</h4>"
19
- langs.sort.each_with_index do |lang, i|
20
- ret << link_to("[#{lang}]", :action => "cookie_locale", :lang => lang)
17
+ langs.each_with_index do |lang, i|
18
+ ret << link_to("[#{lang}]", :action => "cookie_locale", :id => lang)
21
19
  if ((i + 1) % 6 == 0)
22
20
  ret << "<br/>"
23
21
  end
@@ -26,9 +24,10 @@ module LangHelper
26
24
  end
27
25
 
28
26
  def cookie_locale
29
- cookies["lang"] = params["lang"]
30
- flash[:notice] = _('Cookie &quot;lang&quot; is set: %s') % params["lang"]
31
- redirect_to :action => 'list'
27
+ cookies["lang"] = params["id"]
28
+ set_locale params["id"]
29
+ flash[:notice] = _('Cookie &quot;lang&quot; is set: %s') % params["id"]
30
+ redirect_to :action => 'index'
32
31
  end
33
32
  end
34
33
 
@@ -0,0 +1,28 @@
1
+ # GetText Sample Blog on RoR.
2
+ #
3
+ # Copyright (C) 2005 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # Malte Milatz <malte@gmx-topmail.de>, 2006.
8
+ #
9
+ #, fuzzy
10
+ msgid ""
11
+ msgstr ""
12
+ "Project-Id-Version: gettext_plugin 1.2.0\n"
13
+ "POT-Creation-Date: 2006-05-31 02:06+0900\n"
14
+ "PO-Revision-Date: 2005-08-27 23:23+0900\n"
15
+ "Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
16
+ "Language-Team: Esperanto\n"
17
+ "MIME-Version: 1.0\n"
18
+ "Content-Type: text/plain; charset=UTF-8\n"
19
+ "Content-Transfer-Encoding: 8bit\n"
20
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21
+
22
+ #: lib/gettext_plugin.rb:18
23
+ msgid "Select locale"
24
+ msgstr "Elekti lokaĵaron"
25
+
26
+ #: lib/gettext_plugin.rb:30
27
+ msgid "Cookie &quot;lang&quot; is set: %s"
28
+ msgstr "Kuketo &quot;lang&quot; estas: %s"
@@ -0,0 +1,27 @@
1
+ # GetText Sample Blog on RoR.
2
+ #
3
+ # Copyright (C) 2005 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # Tamás Tompa <tompata at gmail.com>, 2008.
8
+ #
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: gettext_plugin 1.2.0\n"
12
+ "POT-Creation-Date: 2006-05-31 02:06+0900\n"
13
+ "PO-Revision-Date: 2008-01-15 00:00+0900\n"
14
+ "Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
15
+ "Language-Team: Hungarian\n"
16
+ "MIME-Version: 1.0\n"
17
+ "Content-Type: text/plain; charset=UTF-8\n"
18
+ "Content-Transfer-Encoding: 8bit\n"
19
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
+
21
+ #: lib/gettext_plugin.rb:18
22
+ msgid "Select locale"
23
+ msgstr "Locale választás"
24
+
25
+ #: lib/gettext_plugin.rb:30
26
+ msgid "Cookie &quot;lang&quot; is set: %s"
27
+ msgstr "&quot;Nyelvi&quot; Cookie beállítva: %s"
@@ -0,0 +1,30 @@
1
+ # GetText Sample Blog on RoR.
2
+ #
3
+ # Copyright (C) 2005 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # Alex Rootoff <rootoff at pisem.net>, 2007.
8
+ #
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: gettext_plugin 1.2.0\n"
12
+ "POT-Creation-Date: 2006-05-31 02:06+0900\n"
13
+ "PO-Revision-Date: 2007-12-23 13:59+0200\n"
14
+ "Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
15
+ "Language-Team: Ukrainian\n"
16
+ "MIME-Version: 1.0\n"
17
+ "Content-Type: text/plain; charset=UTF-8\n"
18
+ "Content-Transfer-Encoding: 8bit\n"
19
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
20
+ "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
21
+ "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
22
+ "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
23
+
24
+ #: lib/gettext_plugin.rb:18
25
+ msgid "Select locale"
26
+ msgstr "Оберіть локаль"
27
+
28
+ #: lib/gettext_plugin.rb:30
29
+ msgid "Cookie &quot;lang&quot; is set: %s"
30
+ msgstr "Cookie &quot;lang&quot; встановлено: %s"
data/test/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ $:.unshift "../lib"
1
2
  require 'gettext/utils'
2
3
 
3
4
  desc "Create mo files"
@@ -41,6 +42,6 @@ task :updatepo do
41
42
  ["fixtures/developer.rb",
42
43
  "fixtures/topic.rb",
43
44
  "fixtures/reply.rb",
44
- "gettext_test_active_record.rb"],
45
+ "test_active_record.rb"],
45
46
  "active_record 1.0.0")
46
47
  end
data/test/benchmark.rb ADDED
@@ -0,0 +1,28 @@
1
+ require 'benchmark'
2
+ require 'gettext'
3
+
4
+ include GetText
5
+ Benchmark.bm(18){|x|
6
+ x.report("bindtextdomain"){ 50000.times{|i|
7
+ bindtextdomain "test1"
8
+ } }
9
+ x.report("set_locale"){ 50000.times{|i|
10
+ set_locale "ja_JP.UTF-8"
11
+ } }
12
+ set_locale "ja_JP.UTF-8"
13
+ x.report("_() ja found"){ 50000.times{|i|
14
+ _("language")
15
+ } }
16
+ x.report("_() ja not found"){ 50000.times{|i|
17
+ _("language2")
18
+ } }
19
+ set_locale "en"
20
+ x.report("_() en found"){ 50000.times{|i|
21
+ _("language")
22
+ } }
23
+ x.report("_() ja not found"){ 50000.times{|i|
24
+ _("language2")
25
+ } }
26
+
27
+ }
28
+
@@ -11,8 +11,17 @@ class Topic < ActiveRecord::Base
11
11
  def parent
12
12
  Topic.find(parent_id)
13
13
  end
14
+
15
+ def topic_id
16
+ id
17
+ end
14
18
 
15
19
  protected
20
+ def approved=(val)
21
+ @custom_approved = val
22
+ write_attribute(:approved, val)
23
+ end
24
+
16
25
  def default_written_on
17
26
  self.written_on = Time.now unless attribute_present?("written_on")
18
27
  end
@@ -20,4 +29,10 @@ class Topic < ActiveRecord::Base
20
29
  def destroy_children
21
30
  self.class.delete_all "parent_id = #{id}"
22
31
  end
32
+
33
+ def after_initialize
34
+ if self.new_record?
35
+ self.author_email_address = 'test@test.com'
36
+ end
37
+ end
23
38
  end
data/test/rails/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  # Add your own tasks in files placed in lib/tasks ending in .rake,
2
2
  # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
3
 
4
+ $:.unshift "../../lib"
4
5
  require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5
6
 
6
7
  require 'rake'
@@ -30,6 +31,6 @@ end
30
31
  desc "Update pot/po files to match new version."
31
32
  task :updatepo do
32
33
  require 'gettext/utils'
33
- GetText.update_pofiles("rails_test", Dir.glob("{app,lib}/**/*.{rb,rhtml}"),
34
+ GetText.update_pofiles("rails_test", Dir.glob("{app,lib}/**/*.{rb,rhtml,erb}"),
34
35
  "rails_test 1.2.0")
35
36
  end
@@ -9,7 +9,7 @@ class ArticlesController < ApplicationController
9
9
  :redirect_to => { :action => :list }
10
10
 
11
11
  def list
12
- @article_pages, @articles = paginate :articles, :per_page => 10
12
+ @articles = Article.find(:all)
13
13
  end
14
14
 
15
15
  def show
@@ -0,0 +1,10 @@
1
+ class UsersController < ApplicationController
2
+ def custom_error_message
3
+ @user = User.new
4
+ @user.name = "foo"
5
+ unless params[:plural]
6
+ @user.lastupdate = "2007-01-01"
7
+ end
8
+ @user.valid?
9
+ end
10
+ end