gettext_rails 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. data/COPYING +55 -0
  2. data/ChangeLog +4 -0
  3. data/README.rdoc +173 -0
  4. data/Rakefile +113 -0
  5. data/data/locale/bg/LC_MESSAGES/gettext_rails.mo +0 -0
  6. data/data/locale/bs/LC_MESSAGES/gettext_rails.mo +0 -0
  7. data/data/locale/ca/LC_MESSAGES/gettext_rails.mo +0 -0
  8. data/data/locale/cs/LC_MESSAGES/gettext_rails.mo +0 -0
  9. data/data/locale/de/LC_MESSAGES/gettext_rails.mo +0 -0
  10. data/data/locale/el/LC_MESSAGES/gettext_rails.mo +0 -0
  11. data/data/locale/eo/LC_MESSAGES/gettext_rails.mo +0 -0
  12. data/data/locale/es/LC_MESSAGES/gettext_rails.mo +0 -0
  13. data/data/locale/et/LC_MESSAGES/gettext_rails.mo +0 -0
  14. data/data/locale/fr/LC_MESSAGES/gettext_rails.mo +0 -0
  15. data/data/locale/hr/LC_MESSAGES/gettext_rails.mo +0 -0
  16. data/data/locale/hu/LC_MESSAGES/gettext_rails.mo +0 -0
  17. data/data/locale/it/LC_MESSAGES/gettext_rails.mo +0 -0
  18. data/data/locale/ja/LC_MESSAGES/gettext_rails.mo +0 -0
  19. data/data/locale/ko/LC_MESSAGES/gettext_rails.mo +0 -0
  20. data/data/locale/lv/LC_MESSAGES/gettext_rails.mo +0 -0
  21. data/data/locale/nb/LC_MESSAGES/gettext_rails.mo +0 -0
  22. data/data/locale/nl/LC_MESSAGES/gettext_rails.mo +0 -0
  23. data/data/locale/pt_BR/LC_MESSAGES/gettext_rails.mo +0 -0
  24. data/data/locale/ru/LC_MESSAGES/gettext_rails.mo +0 -0
  25. data/data/locale/sr/LC_MESSAGES/gettext_rails.mo +0 -0
  26. data/data/locale/ua/LC_MESSAGES/gettext_rails.mo +0 -0
  27. data/data/locale/vi/LC_MESSAGES/gettext_rails.mo +0 -0
  28. data/data/locale/zh/LC_MESSAGES/gettext_rails.mo +0 -0
  29. data/data/locale/zh_TW/LC_MESSAGES/gettext_rails.mo +0 -0
  30. data/lib/gettext_rails.rb +33 -0
  31. data/lib/gettext_rails/action_controller.rb +104 -0
  32. data/lib/gettext_rails/action_mailer.rb +45 -0
  33. data/lib/gettext_rails/action_view.rb +16 -0
  34. data/lib/gettext_rails/action_view/active_record_helper.rb +109 -0
  35. data/lib/gettext_rails/action_view/date_helper.rb +48 -0
  36. data/lib/gettext_rails/action_view/form_builder.rb +26 -0
  37. data/lib/gettext_rails/tools.rb +22 -0
  38. data/lib/gettext_rails/version.rb +14 -0
  39. data/po/bg/gettext_rails.po +89 -0
  40. data/po/bs/gettext_rails.po +98 -0
  41. data/po/ca/gettext_rails.po +90 -0
  42. data/po/cs/gettext_rails.po +102 -0
  43. data/po/de/gettext_rails.po +94 -0
  44. data/po/el/gettext_rails.po +89 -0
  45. data/po/eo/gettext_rails.po +90 -0
  46. data/po/es/gettext_rails.po +90 -0
  47. data/po/et/gettext_rails.po +90 -0
  48. data/po/fr/gettext_rails.po +94 -0
  49. data/po/gettext_rails.pot +87 -0
  50. data/po/hr/gettext_rails.po +99 -0
  51. data/po/hu/gettext_rails.po +90 -0
  52. data/po/it/gettext_rails.po +89 -0
  53. data/po/ja/gettext_rails.po +90 -0
  54. data/po/ko/gettext_rails.po +87 -0
  55. data/po/lv/gettext_rails.po +95 -0
  56. data/po/nb/gettext_rails.po +91 -0
  57. data/po/nl/gettext_rails.po +91 -0
  58. data/po/pt_BR/gettext_rails.po +91 -0
  59. data/po/ru/gettext_rails.po +98 -0
  60. data/po/sr/gettext_rails.po +98 -0
  61. data/po/test.rb +11 -0
  62. data/po/ua/gettext_rails.po +104 -0
  63. data/po/vi/gettext_rails.po +90 -0
  64. data/po/zh/gettext_rails.po +86 -0
  65. data/po/zh_TW/gettext_rails.po +86 -0
  66. data/replace.rb +21 -0
  67. data/sample/README +80 -0
  68. data/sample/Rakefile +11 -0
  69. data/sample/app/controllers/application_controller.rb +37 -0
  70. data/sample/app/controllers/articles_controller.rb +97 -0
  71. data/sample/app/helpers/application_helper.rb +3 -0
  72. data/sample/app/helpers/articles_helper.rb +60 -0
  73. data/sample/app/models/article.rb +16 -0
  74. data/sample/app/views/articles/edit.html.erb +22 -0
  75. data/sample/app/views/articles/index.html.erb +18 -0
  76. data/sample/app/views/articles/new.html.erb +20 -0
  77. data/sample/app/views/articles/show.html.erb +7 -0
  78. data/sample/app/views/layouts/articles.html.erb +27 -0
  79. data/sample/config/boot.rb +109 -0
  80. data/sample/config/database.yml +22 -0
  81. data/sample/config/environment.rb +45 -0
  82. data/sample/config/environments/development.rb +17 -0
  83. data/sample/config/environments/production.rb +27 -0
  84. data/sample/config/environments/test.rb +27 -0
  85. data/sample/config/initializers/backtrace_silencers.rb +7 -0
  86. data/sample/config/initializers/inflections.rb +10 -0
  87. data/sample/config/initializers/mime_types.rb +5 -0
  88. data/sample/config/initializers/new_rails_defaults.rb +19 -0
  89. data/sample/config/initializers/session_store.rb +15 -0
  90. data/sample/config/routes.rb +45 -0
  91. data/sample/db/development.sqlite3 +0 -0
  92. data/sample/db/production.sqlite3 +0 -0
  93. data/sample/db/schema.rb +19 -0
  94. data/sample/db/test.sqlite3 +0 -0
  95. data/sample/doc/README_FOR_APP +2 -0
  96. data/sample/lib/tasks/gettext.rake +13 -0
  97. data/sample/locale/bg/LC_MESSAGES/blog.mo +0 -0
  98. data/sample/locale/bs/LC_MESSAGES/blog.mo +0 -0
  99. data/sample/locale/ca/LC_MESSAGES/blog.mo +0 -0
  100. data/sample/locale/cs/LC_MESSAGES/blog.mo +0 -0
  101. data/sample/locale/de/LC_MESSAGES/blog.mo +0 -0
  102. data/sample/locale/el/LC_MESSAGES/blog.mo +0 -0
  103. data/sample/locale/en/LC_MESSAGES/blog.mo +0 -0
  104. data/sample/locale/eo/LC_MESSAGES/blog.mo +0 -0
  105. data/sample/locale/es/LC_MESSAGES/blog.mo +0 -0
  106. data/sample/locale/fr/LC_MESSAGES/blog.mo +0 -0
  107. data/sample/locale/hr/LC_MESSAGES/blog.mo +0 -0
  108. data/sample/locale/hu/LC_MESSAGES/blog.mo +0 -0
  109. data/sample/locale/it/LC_MESSAGES/blog.mo +0 -0
  110. data/sample/locale/ja/LC_MESSAGES/blog.mo +0 -0
  111. data/sample/locale/ko/LC_MESSAGES/blog.mo +0 -0
  112. data/sample/locale/lv/LC_MESSAGES/blog.mo +0 -0
  113. data/sample/locale/nb/LC_MESSAGES/blog.mo +0 -0
  114. data/sample/locale/nl/LC_MESSAGES/blog.mo +0 -0
  115. data/sample/locale/pt_BR/LC_MESSAGES/blog.mo +0 -0
  116. data/sample/locale/ru/LC_MESSAGES/blog.mo +0 -0
  117. data/sample/locale/sr/LC_MESSAGES/blog.mo +0 -0
  118. data/sample/locale/ua/LC_MESSAGES/blog.mo +0 -0
  119. data/sample/locale/vi/LC_MESSAGES/blog.mo +0 -0
  120. data/sample/locale/zh/LC_MESSAGES/blog.mo +0 -0
  121. data/sample/locale/zh_TW/LC_MESSAGES/blog.mo +0 -0
  122. data/sample/log/development.log +635 -0
  123. data/sample/log/production.log +79475 -0
  124. data/sample/log/test.log +1592 -0
  125. data/sample/po/bg/blog.po +101 -0
  126. data/sample/po/blog.pot +102 -0
  127. data/sample/po/bs/blog.po +103 -0
  128. data/sample/po/ca/blog.po +101 -0
  129. data/sample/po/cs/blog.po +104 -0
  130. data/sample/po/de/blog.po +104 -0
  131. data/sample/po/el/blog.po +102 -0
  132. data/sample/po/en/blog.po +103 -0
  133. data/sample/po/eo/blog.po +102 -0
  134. data/sample/po/eo/tmp.patch +21 -0
  135. data/sample/po/es/blog.po +101 -0
  136. data/sample/po/fr/blog.po +102 -0
  137. data/sample/po/hr/blog.po +102 -0
  138. data/sample/po/hu/blog.po +101 -0
  139. data/sample/po/it/blog.po +102 -0
  140. data/sample/po/ja/blog.po +101 -0
  141. data/sample/po/ko/blog.po +102 -0
  142. data/sample/po/lv/blog.po +103 -0
  143. data/sample/po/nb/blog.po +102 -0
  144. data/sample/po/nl/blog.po +102 -0
  145. data/sample/po/pt_BR/blog.po +102 -0
  146. data/sample/po/ru/blog.po +102 -0
  147. data/sample/po/sr/blog.po +103 -0
  148. data/sample/po/ua/blog.po +105 -0
  149. data/sample/po/vi/blog.po +102 -0
  150. data/sample/po/zh/blog.po +101 -0
  151. data/sample/po/zh_TW/blog.po +103 -0
  152. data/sample/public/404.html +30 -0
  153. data/sample/public/422.html +30 -0
  154. data/sample/public/500.html +33 -0
  155. data/sample/public/favicon.ico +0 -0
  156. data/sample/public/images/rails.png +0 -0
  157. data/sample/public/index.html +275 -0
  158. data/sample/public/javascripts/application.js +2 -0
  159. data/sample/public/javascripts/controls.js +963 -0
  160. data/sample/public/javascripts/dragdrop.js +973 -0
  161. data/sample/public/javascripts/effects.js +1128 -0
  162. data/sample/public/javascripts/prototype.js +4320 -0
  163. data/sample/public/robots.txt +5 -0
  164. data/sample/public/stylesheets/blog.css +136 -0
  165. data/sample/public/stylesheets/scaffold.css +54 -0
  166. data/sample/script/about +4 -0
  167. data/sample/script/console +3 -0
  168. data/sample/script/dbconsole +3 -0
  169. data/sample/script/destroy +3 -0
  170. data/sample/script/generate +3 -0
  171. data/sample/script/performance/benchmarker +3 -0
  172. data/sample/script/performance/profiler +3 -0
  173. data/sample/script/plugin +3 -0
  174. data/sample/script/runner +3 -0
  175. data/sample/script/server +3 -0
  176. data/sample/test/fixtures/articles.yml +11 -0
  177. data/sample/test/functional/articles_controller_test.rb +45 -0
  178. data/sample/test/performance/browsing_test.rb +9 -0
  179. data/sample/test/result/en/list.html +69 -0
  180. data/sample/test/test_helper.rb +38 -0
  181. data/sample/test/unit/article_test.rb +8 -0
  182. data/sample/test/unit/helpers/articles_helper_test.rb +4 -0
  183. data/sample/vendor/plugins/lang_helper/README +17 -0
  184. data/sample/vendor/plugins/lang_helper/Rakefile +17 -0
  185. data/sample/vendor/plugins/lang_helper/init.rb +21 -0
  186. data/sample/vendor/plugins/lang_helper/lib/lang_helper.rb +32 -0
  187. data/sample/vendor/plugins/lang_helper/locale/bg/LC_MESSAGES/lang_helper.mo +0 -0
  188. data/sample/vendor/plugins/lang_helper/locale/bs/LC_MESSAGES/lang_helper.mo +0 -0
  189. data/sample/vendor/plugins/lang_helper/locale/ca/LC_MESSAGES/lang_helper.mo +0 -0
  190. data/sample/vendor/plugins/lang_helper/locale/cs/LC_MESSAGES/lang_helper.mo +0 -0
  191. data/sample/vendor/plugins/lang_helper/locale/de/LC_MESSAGES/lang_helper.mo +0 -0
  192. data/sample/vendor/plugins/lang_helper/locale/el/LC_MESSAGES/lang_helper.mo +0 -0
  193. data/sample/vendor/plugins/lang_helper/locale/eo/LC_MESSAGES/lang_helper.mo +0 -0
  194. data/sample/vendor/plugins/lang_helper/locale/es/LC_MESSAGES/lang_helper.mo +0 -0
  195. data/sample/vendor/plugins/lang_helper/locale/fr/LC_MESSAGES/lang_helper.mo +0 -0
  196. data/sample/vendor/plugins/lang_helper/locale/hr/LC_MESSAGES/lang_helper.mo +0 -0
  197. data/sample/vendor/plugins/lang_helper/locale/hu/LC_MESSAGES/lang_helper.mo +0 -0
  198. data/sample/vendor/plugins/lang_helper/locale/it/LC_MESSAGES/lang_helper.mo +0 -0
  199. data/sample/vendor/plugins/lang_helper/locale/ja/LC_MESSAGES/lang_helper.mo +0 -0
  200. data/sample/vendor/plugins/lang_helper/locale/ko/LC_MESSAGES/lang_helper.mo +0 -0
  201. data/sample/vendor/plugins/lang_helper/locale/lv/LC_MESSAGES/lang_helper.mo +0 -0
  202. data/sample/vendor/plugins/lang_helper/locale/nb/LC_MESSAGES/lang_helper.mo +0 -0
  203. data/sample/vendor/plugins/lang_helper/locale/nl/LC_MESSAGES/lang_helper.mo +0 -0
  204. data/sample/vendor/plugins/lang_helper/locale/pt_BR/LC_MESSAGES/lang_helper.mo +0 -0
  205. data/sample/vendor/plugins/lang_helper/locale/ru/LC_MESSAGES/lang_helper.mo +0 -0
  206. data/sample/vendor/plugins/lang_helper/locale/sr/LC_MESSAGES/lang_helper.mo +0 -0
  207. data/sample/vendor/plugins/lang_helper/locale/ua/LC_MESSAGES/lang_helper.mo +0 -0
  208. data/sample/vendor/plugins/lang_helper/locale/vi/LC_MESSAGES/lang_helper.mo +0 -0
  209. data/sample/vendor/plugins/lang_helper/locale/zh/LC_MESSAGES/lang_helper.mo +0 -0
  210. data/sample/vendor/plugins/lang_helper/locale/zh_TW/LC_MESSAGES/lang_helper.mo +0 -0
  211. data/sample/vendor/plugins/lang_helper/po/bg/lang_helper.po +27 -0
  212. data/sample/vendor/plugins/lang_helper/po/bs/lang_helper.po +27 -0
  213. data/sample/vendor/plugins/lang_helper/po/ca/lang_helper.po +27 -0
  214. data/sample/vendor/plugins/lang_helper/po/cs/lang_helper.po +29 -0
  215. data/sample/vendor/plugins/lang_helper/po/de/lang_helper.po +29 -0
  216. data/sample/vendor/plugins/lang_helper/po/el/lang_helper.po +27 -0
  217. data/sample/vendor/plugins/lang_helper/po/eo/lang_helper.po +28 -0
  218. data/sample/vendor/plugins/lang_helper/po/es/lang_helper.po +28 -0
  219. data/sample/vendor/plugins/lang_helper/po/fr/lang_helper.po +27 -0
  220. data/sample/vendor/plugins/lang_helper/po/hr/lang_helper.po +27 -0
  221. data/sample/vendor/plugins/lang_helper/po/hu/lang_helper.po +27 -0
  222. data/sample/vendor/plugins/lang_helper/po/it/lang_helper.po +27 -0
  223. data/sample/vendor/plugins/lang_helper/po/ja/lang_helper.po +28 -0
  224. data/sample/vendor/plugins/lang_helper/po/ko/lang_helper.po +27 -0
  225. data/sample/vendor/plugins/lang_helper/po/lang_helper.pot +28 -0
  226. data/sample/vendor/plugins/lang_helper/po/lv/lang_helper.po +28 -0
  227. data/sample/vendor/plugins/lang_helper/po/nb/lang_helper.po +29 -0
  228. data/sample/vendor/plugins/lang_helper/po/nl/lang_helper.po +28 -0
  229. data/sample/vendor/plugins/lang_helper/po/pt_BR/lang_helper.po +27 -0
  230. data/sample/vendor/plugins/lang_helper/po/ru/lang_helper.po +25 -0
  231. data/sample/vendor/plugins/lang_helper/po/sr/lang_helper.po +28 -0
  232. data/sample/vendor/plugins/lang_helper/po/ua/lang_helper.po +30 -0
  233. data/sample/vendor/plugins/lang_helper/po/vi/lang_helper.po +27 -0
  234. data/sample/vendor/plugins/lang_helper/po/zh/lang_helper.po +27 -0
  235. data/sample/vendor/plugins/lang_helper/po/zh_TW/lang_helper.po +29 -0
  236. data/test/README +6 -0
  237. data/test/Rakefile +27 -0
  238. data/test/app/controllers/application_controller.rb +18 -0
  239. data/test/app/controllers/articles_controller.rb +114 -0
  240. data/test/app/controllers/mailers_controller.rb +18 -0
  241. data/test/app/controllers/users_controller.rb +19 -0
  242. data/test/app/helpers/application_helper.rb +3 -0
  243. data/test/app/helpers/articles_helper.rb +2 -0
  244. data/test/app/models/article.rb +9 -0
  245. data/test/app/models/human_resources/resume.rb +3 -0
  246. data/test/app/models/mailer.rb +38 -0
  247. data/test/app/models/user.rb +4 -0
  248. data/test/app/models/user_observer.rb +7 -0
  249. data/test/app/views/articles/_form.html.erb +13 -0
  250. data/test/app/views/articles/_form_fr.html.erb +1 -0
  251. data/test/app/views/articles/active_form_error.html.erb +1 -0
  252. data/test/app/views/articles/change_title_error_messages_for.html.erb +15 -0
  253. data/test/app/views/articles/edit.html.erb +9 -0
  254. data/test/app/views/articles/list.html.erb +25 -0
  255. data/test/app/views/articles/list_fr.html.erb +1 -0
  256. data/test/app/views/articles/multi_error_messages_for.html.erb +19 -0
  257. data/test/app/views/articles/new.html.erb +8 -0
  258. data/test/app/views/articles/show.html.erb +9 -0
  259. data/test/app/views/layouts/application.html.erb +16 -0
  260. data/test/app/views/layouts/mailers.html.erb +20 -0
  261. data/test/app/views/layouts/users.html.erb +14 -0
  262. data/test/app/views/mailer/coverpage.html.erb +6 -0
  263. data/test/app/views/mailer/coverpage_fr.html.erb +6 -0
  264. data/test/app/views/mailer/index.html.erb +1 -0
  265. data/test/app/views/mailer/singlepart.html.erb +3 -0
  266. data/test/app/views/mailer/singlepart_fr.html.erb +3 -0
  267. data/test/app/views/users/custom_error_message.html.erb +13 -0
  268. data/test/app/views/users/custom_error_message_fr.html.erb +13 -0
  269. data/test/app/views/users/distance_of_time_in_words.html.erb +18 -0
  270. data/test/config/boot.rb +109 -0
  271. data/test/config/database.yml +22 -0
  272. data/test/config/environment.rb +45 -0
  273. data/test/config/environments/development.rb +17 -0
  274. data/test/config/environments/production.rb +27 -0
  275. data/test/config/environments/test.rb +27 -0
  276. data/test/config/initializers/backtrace_silencers.rb +7 -0
  277. data/test/config/initializers/inflections.rb +10 -0
  278. data/test/config/initializers/mime_types.rb +5 -0
  279. data/test/config/initializers/new_rails_defaults.rb +19 -0
  280. data/test/config/initializers/session_store.rb +15 -0
  281. data/test/config/routes.rb +13 -0
  282. data/test/db/development.sqlite3 +0 -0
  283. data/test/db/schema.rb +45 -0
  284. data/test/db/test.sqlite3 +0 -0
  285. data/test/doc/README_FOR_APP +2 -0
  286. data/test/locale/ja/LC_MESSAGES/rails_test.mo +0 -0
  287. data/test/log/development.log +1284 -0
  288. data/test/log/test.log +5595 -0
  289. data/test/po/ja/rails_test.po +206 -0
  290. data/test/po/rails_test.pot +206 -0
  291. data/test/public/404.html +30 -0
  292. data/test/public/422.html +30 -0
  293. data/test/public/500.html +33 -0
  294. data/test/public/favicon.ico +0 -0
  295. data/test/public/images/rails.png +0 -0
  296. data/test/public/index.html +28 -0
  297. data/test/public/javascripts/application.js +2 -0
  298. data/test/public/javascripts/controls.js +963 -0
  299. data/test/public/javascripts/dragdrop.js +973 -0
  300. data/test/public/javascripts/effects.js +1128 -0
  301. data/test/public/javascripts/prototype.js +4320 -0
  302. data/test/public/robots.txt +5 -0
  303. data/test/public/stylesheets/blog.css +136 -0
  304. data/test/public/stylesheets/scaffold.css +54 -0
  305. data/test/script/about +4 -0
  306. data/test/script/console +3 -0
  307. data/test/script/dbconsole +3 -0
  308. data/test/script/destroy +3 -0
  309. data/test/script/generate +3 -0
  310. data/test/script/performance/benchmarker +3 -0
  311. data/test/script/performance/profiler +3 -0
  312. data/test/script/plugin +3 -0
  313. data/test/script/runner +3 -0
  314. data/test/script/server +3 -0
  315. data/test/test/fixtures/articles.yml +13 -0
  316. data/test/test/functional/articles_controller_test.rb +97 -0
  317. data/test/test/functional/mailers_controller_test.rb +54 -0
  318. data/test/test/functional/users_controller_test.rb +47 -0
  319. data/test/test/performance/browsing_test.rb +9 -0
  320. data/test/test/result/en/change_title_error_messages_for.html +89 -0
  321. data/test/test/result/en/create_error.html +97 -0
  322. data/test/test/result/en/custom_error_message.html +84 -0
  323. data/test/test/result/en/custom_error_message_with_plural.html +84 -0
  324. data/test/test/result/en/distance_of_time_in_words.html +32 -0
  325. data/test/test/result/en/list.html +62 -0
  326. data/test/test/result/en/multi_error_messages_for.html +155 -0
  327. data/test/test/result/en/multipart.html +175 -0
  328. data/test/test/result/en/new.html +97 -0
  329. data/test/test/result/en/show.html +33 -0
  330. data/test/test/result/en/singlepart.html +10 -0
  331. data/test/test/result/fr/custom_error_message.html +84 -0
  332. data/test/test/result/fr/custom_error_message_with_plural.html +84 -0
  333. data/test/test/result/fr/distance_of_time_in_words.html +32 -0
  334. data/test/test/result/fr/list.html +17 -0
  335. data/test/test/result/fr/multipart.html +175 -0
  336. data/test/test/result/fr/new.html +25 -0
  337. data/test/test/result/fr/singlepart.html +10 -0
  338. data/test/test/result/ja/change_title_error_messages_for.html +89 -0
  339. data/test/test/result/ja/create_error.html +97 -0
  340. data/test/test/result/ja/custom_error_message.html +84 -0
  341. data/test/test/result/ja/custom_error_message_with_plural.html +84 -0
  342. data/test/test/result/ja/distance_of_time_in_words.html +32 -0
  343. data/test/test/result/ja/list.html +62 -0
  344. data/test/test/result/ja/multi_error_messages_for.html +155 -0
  345. data/test/test/result/ja/multipart.html +175 -0
  346. data/test/test/result/ja/new.html +97 -0
  347. data/test/test/result/ja/show.html +33 -0
  348. data/test/test/result/ja/singlepart.html +10 -0
  349. data/test/test/test_helper.rb +83 -0
  350. data/test/test/unit/article_test.rb +8 -0
  351. data/test/test/unit/helpers/articles_helper_test.rb +4 -0
  352. metadata +754 -0
data/COPYING ADDED
@@ -0,0 +1,55 @@
1
+ You can redistribute this program and/or modify it under either the terms of
2
+ the LGPL (see the file LGPL), or the conditions below:
3
+
4
+ 1. You may make and give away verbatim copies of the source form of the
5
+ software without restriction, provided that you duplicate all of the
6
+ original copyright notices and associated disclaimers.
7
+
8
+ 2. You may modify your copy of the software in any way, provided that
9
+ you do at least ONE of the following:
10
+
11
+ a) place your modifications in the Public Domain or otherwise
12
+ make them Freely Available, such as by posting said
13
+ modifications to Usenet or an equivalent medium, or by allowing
14
+ the author to include your modifications in the software.
15
+
16
+ b) use the modified software only within your corporation or
17
+ organization.
18
+
19
+ c) rename any non-standard executables so the names do not conflict
20
+ with standard executables, which must also be provided.
21
+
22
+ d) make other distribution arrangements with the author.
23
+
24
+ 3. You may distribute the software in object code or executable
25
+ form, provided that you do at least ONE of the following:
26
+
27
+ a) distribute the executables and library files of the software,
28
+ together with instructions (in the manual page or equivalent)
29
+ on where to get the original distribution.
30
+
31
+ b) accompany the distribution with the machine-readable source of
32
+ the software.
33
+
34
+ c) give non-standard executables non-standard names, with
35
+ instructions on where to get the original software distribution.
36
+
37
+ d) make other distribution arrangements with the author.
38
+
39
+ 4. You may modify and include the part of the software into any other
40
+ software (possibly commercial). But some files in the distribution
41
+ are not written by the author, so that they are not under these terms.
42
+
43
+ For the list of those files and their copying conditions, see the
44
+ file LEGAL.
45
+
46
+ 5. The scripts and library files supplied as input to or produced as
47
+ output from the software do not automatically fall under the
48
+ copyright of the software, but belong to whomever generated them,
49
+ and may be sold commercially, and may be aggregated with this
50
+ software.
51
+
52
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
53
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
54
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
55
+ PURPOSE.
data/ChangeLog ADDED
@@ -0,0 +1,4 @@
1
+ = gettext_rails-2.0.0 (2009-03-22)
2
+
3
+ * Support Rails-2.3.2.
4
+ * Work with other I18n backends.
data/README.rdoc ADDED
@@ -0,0 +1,173 @@
1
+ = gettext_rails
2
+
3
+ gettext_rails provides the localization for Ruby on Rails-2.3 or later
4
+ using Ruby-GetText-Package.
5
+
6
+ * Autodetect client locale using locale/locale_rails.
7
+ * Easy maintainance of translations to use powerful tools for gettext family.
8
+ * Model translation using gettext_activerecord.
9
+ * Localization for some helpers.
10
+ * Works with other Rails I18n backend.
11
+ * Note that gettext_rails is not the one of I18n backend.
12
+ * Thread safe.
13
+
14
+ == Website
15
+ * homepage[http://www.yotabanana.com/hiki/ruby-gettext.html]
16
+ * on rubyforge[http://gettext/rubyforge.org/]
17
+ * on github[http://github.com/mutoh/gettext_rails/tree/master]
18
+
19
+ == Requirements
20
+ * {Ruby 1.8.3 or later}[http://www.ruby-lang.org]
21
+ * {Rubygems}[http://www.rubygems.org/]
22
+ * {locale gem}[http://rubyforge.org/projects/locale/]
23
+ * {locale_rails gem}[http://rubyforge.org/projects/locale_rails/]
24
+ * {gettext gem}[http://rubyforge.org/projects/gettext/]
25
+ * {gettext_activerecord gem}[http://rubyforge.org/projects/gettext/]
26
+ * {gettext_rails gem}[http://rubyforge.org/projects/gettext/]
27
+
28
+ == Install
29
+ #Uninstall old gettext if exists.
30
+ (sudo/su on POSIX system)
31
+ gem uninstall gettext
32
+
33
+ #from github (edge/unstable)
34
+ (sudo/su on POSIX system)
35
+ gem install gettext
36
+ gem install gettext_activerecord
37
+ gem install gettext_rails
38
+ gem install mutoh-gettext_rails -s http://gems.github.com/
39
+
40
+ #from rubyforge (stable)
41
+ (sudo/su on POSIX system)
42
+ gem install gettext
43
+ gem install gettext_activerecord
44
+ gem install gettext_rails
45
+
46
+ == Usage
47
+ See sample direcotries for more details.
48
+
49
+ ==== Rakefile
50
+ require 'rubygems'
51
+
52
+ desc "Create mo files"
53
+ task :makemo do
54
+ require 'gettext_rails/tools'
55
+ GetText.create_mofiles
56
+ end
57
+
58
+ task :updatepo do
59
+ require 'gettext_rails/tools'
60
+ # Need to access DB to find Model table/column names.
61
+ # Use config/database.yml which is the same style with rails.
62
+ GetText.update_pofiles("sample_rails", ["topic.rb"], "sample_rails 1.0.0")
63
+ end
64
+
65
+ ==== config/environment.rb
66
+ Rails::Initializer.run do |config|
67
+ :
68
+ :
69
+ config.gem "locale_rails"
70
+ config.gem "gettext_activerecord"
71
+ config.gem "gettext_rails"
72
+ end
73
+
74
+ ==== application_controller.rb
75
+ class ApplicationController < ActionController::Base
76
+ init_gettext "blog" # replace "blog" to your textdomain name.
77
+ end
78
+
79
+ ==== Then ...
80
+ $ rake updatepo
81
+ $ cd po
82
+ $ mkdir ja
83
+ $ msginit -l ja_JP.UTF-8 -i blog.pot -o ja/sample.po
84
+ $ Edit ja/sample.po
85
+ $ cd ../../
86
+ $ rake makemo
87
+ $ ruby sample.rb
88
+
89
+ See {Ruby-GetText-Package HOWTO for Ruby on Rails}[http://www.yotabanana.com/hiki/ruby-gettext-howto-rails.html] for more details.
90
+
91
+ == Support matrix
92
+ * gettext_rails-2.0.0 - rails-2.3.2
93
+
94
+ == License
95
+ This program is licenced under the same licence as Ruby.
96
+ (See the file 'COPYING'.)
97
+
98
+ * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
99
+ == Translators
100
+ * Bosnian(bs) - Sanjin Sehic <saserr at gmail.com>
101
+ * Bulgarian(bg) - Sava Chankov <sava.chankov at gmail.com>
102
+ * Catalan(ca) - Ramon Salvadó <rsalvado at gnuine.com>
103
+ * Chinese(Simplified)(zh_CN)
104
+ * Yang Bob <bob.yang.dev at gmail.com> (current)
105
+ * Yingfeng <blogyingfeng at gmail.com>
106
+ * Chinese(Traditional)(zh_TW)
107
+ * Yang Bob <bob.yang.dev at gmail.com> (current)
108
+ * LIN CHUNG-YI <xmarsh at gmail.com>
109
+ * Croatian(hr) - Sanjin Sehic <saserr at gmail.com>
110
+ * Czech(cs) - Karel Miarka <kajism at yahoo.com>
111
+ * Dutch(nl) - Menno Jonkers <ruby-gettext at jonkers.com>
112
+ * Esperanto(eo) - Malte Milatz <malte at gmx-topmail.de>
113
+ * Estonian(et) - Erkki Eilonen <erkki at itech.ee>
114
+ * French(fr)
115
+ * Vincent Isambart <vincent.isambart at gmail.com> (current)
116
+ * David Sulc <davidsulc at gmail.com>
117
+ * David Sulc <davidsulc at gmail.com>
118
+ * Laurent Sansonetti <laurent.sansonetti at gmail.com>
119
+ * German(de)
120
+ * Patrick Lenz <patrick at limited-overload.de> (current)
121
+ * Detlef Reichl <detlef.reichl at gmx.org>
122
+ * Sven Herzberg <herzi at abi02.de>
123
+ * Sascha Ebach <se at digitale-wertschoepfung.de>
124
+ * Greek(el) - Vassilis Rizopoulos <damphyr at gmx.net>
125
+ * Hungarian(hu) - Tamás Tompa <tompata at gmail.com>
126
+ * Italian(it)
127
+ * Marco Lazzeri <marco.lazzeri at gmail.com>
128
+ * Gabriele Renzi <surrender_it at yahoo.it>
129
+ * Japanese(ja) - Masao Mutoh <mutomasa at gmail.com>
130
+ * Korean(ko) - Gyoung-Yoon Noh <nohmad at gmail.com>
131
+ * Latvian(lv) - Aivars Akots <aivars.akots at gmail.com>
132
+ * Norwegian(nb) - Runar Ingebrigtsen <runar at mopo.no>
133
+ * Portuguese(Brazil)(pt_BR)
134
+ * Antonio S. de A. Terceiro <terceiro at softwarelivre.org> (current)
135
+ * Joao Pedrosa <joaopedrosa at gmail.com>
136
+ * Russian(ru) - Yuri Kozlov <kozlov.y at gmail.com>
137
+ * Serbian(sr) - Slobodan Paunović" <slobodan.paunovic at gmail.com>
138
+ * Spanish(es)
139
+ * David Espada <davinci at escomposlinux.org> (current)
140
+ * David Moreno Garza <damog at damog.net>
141
+ * Ukrainian(ua) - Alex Rootoff <rootoff at pisem.net>
142
+ * Vietnamese(vi) - Ngoc Dao Thanh <ngocdaothanh at gmail.com>
143
+
144
+ == Status of translations
145
+ * Bosnian(bs) - 1.90.0 (old)
146
+ * Bulgarian(bg) - 2.0.0
147
+ * Catalan(ca) - 2.0.0
148
+ * Croatian(hr) - 1.90.0 (old)
149
+ * Chinese(zh_CN) - 2.0.0
150
+ * Chinese(zh_TW) - 2.0.0
151
+ * Czech(cs) - 1.9.0 (old)
152
+ * Dutch(nl) - 1.90.0 (old)
153
+ * English(default) - 1.90.0 (old)
154
+ * Esperanto(eo) - 2.0.0
155
+ * Estonian(et) - 2.0.0
156
+ * French(fr) - 2.0.0
157
+ * German(de) - 2.0.0
158
+ * Greek(el) - 2.0.0
159
+ * Hungarian(hu) - 2.0.0
160
+ * Italian(it) - 1.6.0 (old)
161
+ * Japanese(ja) - 2.0.0
162
+ * Korean(ko) - 1.9.0 (old)
163
+ * Latvian(lv) - 2.0.0
164
+ * Norwegian(nb) - 2.0.0
165
+ * Portuguese(Brazil)(pt_BR) - 2.0.0
166
+ * Russian(ru) - 2.0.0
167
+ * Serbian(sr) - 1.91.0 (old)
168
+ * Spanish(es) - 2.0.0
169
+ * Ukrainian(ua) - 2.0.0
170
+ * Vietnamese(vi) - 2.0.0
171
+
172
+ == Maintainer
173
+ Masao Mutoh <mutomasa at gmail.com>
data/Rakefile ADDED
@@ -0,0 +1,113 @@
1
+ #
2
+ # Rakefile for gettext_rails.
3
+ #
4
+ # Use setup.rb or gem for installation.
5
+ # You don't need to use this file directly.
6
+ #
7
+ # Copyright(c) 2009 Masao Mutoh
8
+ #
9
+ # This program is licenced under the same licence as Ruby.
10
+ #
11
+
12
+ #make lib and paralel gettext checkout available
13
+ $LOAD_PATH.unshift "./lib"
14
+ gettext_path = File.join(ENV["GETTEXT_PATH"] || "../gettext/", "lib")
15
+ $LOAD_PATH.unshift gettext_path
16
+
17
+ require 'rubygems'
18
+ require 'rake'
19
+ require 'rake/packagetask'
20
+ require 'rake/gempackagetask'
21
+ require 'rake/rdoctask'
22
+
23
+ gettext_path = File.join(ENV["GETTEXT_PATH"] || "../gettext/", "lib")
24
+ $LOAD_PATH.unshift gettext_path
25
+
26
+ require 'gettext_rails/version'
27
+
28
+ PKG_VERSION = GetTextRails::VERSION
29
+
30
+ task :default => [:makemo]
31
+
32
+ ############################################################
33
+ # Manage po/mo files
34
+ ############################################################
35
+ desc "Create *.mo from *.po"
36
+ task :makemo do
37
+ $stderr.puts "Create active_record mo files."
38
+ require 'gettext/tools'
39
+ GetText.create_mofiles
40
+
41
+ $stderr.puts "Create sample mo files."
42
+ GetText.create_mofiles(:po_root => "sample/po",
43
+ :mo_root => "sample/locale")
44
+
45
+ $stderr.puts "Create samples/rails plugin mo files."
46
+ GetText.create_mofiles(:po_root => "sample/vendor/plugins/lang_helper/po",
47
+ :mo_root => "sample/vendor/plugins/lang_helper/locale")
48
+ end
49
+
50
+ desc "Update pot/po files to match new version."
51
+ task :updatepo do
52
+ require 'gettext/tools'
53
+
54
+ GetText.update_pofiles("gettext_rails",
55
+ Dir.glob("lib/**/*.rb"),
56
+ "gettext_rails #{PKG_VERSION}")
57
+
58
+ end
59
+
60
+ ############################################################
61
+ # Package tasks
62
+ ############################################################
63
+
64
+ desc "Create gem and tar.gz"
65
+ spec = Gem::Specification.new do |s|
66
+ s.name = 'gettext_rails'
67
+ s.version = PKG_VERSION
68
+ s.summary = 'Localization support for Ruby on Rails(>=2.3) by Ruby-GetText-Package.'
69
+ s.author = 'Masao Mutoh'
70
+ s.email = 'mutomasa at gmail.com'
71
+ s.homepage = 'http://gettext.rubyforge.org/'
72
+ s.rubyforge_project = "gettext"
73
+ s.files = FileList['**/*'].to_a.select{|v| v !~ /pkg|git/}
74
+ s.add_dependency('gettext_activerecord', '>= 2.0.0')
75
+ s.add_dependency('locale_rails', '>= 2.0.0')
76
+ s.add_dependency('rails', '>= 2.3.2')
77
+ s.require_path = 'lib'
78
+ s.has_rdoc = true
79
+ s.description = 'Localization support for Ruby on Rails(>=2.3.2) by Ruby-GetText-Package.'
80
+ end
81
+
82
+ Rake::GemPackageTask.new(spec) do |p|
83
+ p.gem_spec = spec
84
+ p.need_tar_gz = false
85
+ p.need_zip = false
86
+ end
87
+
88
+ ############################################################
89
+ # Misc tasks
90
+ ############################################################
91
+
92
+ Rake::RDocTask.new { |rdoc|
93
+ allison = `allison --path`.chop
94
+ rdoc.rdoc_dir = 'doc'
95
+ rdoc.title = "gettext_rails API Reference"
96
+ rdoc.options << '--line-numbers' << '--inline-source'
97
+ rdoc.rdoc_files.include('README', 'ChangeLog')
98
+ rdoc.rdoc_files.include('lib/**/*.rb')
99
+ rdoc.template = allison if allison.size > 0
100
+ }
101
+
102
+ desc "Publish the release files to RubyForge."
103
+ task :release => [ :package ] do
104
+ require 'rubyforge'
105
+
106
+ rubyforge = RubyForge.new
107
+ rubyforge.configure
108
+ rubyforge.login
109
+ rubyforge.add_release("gettext", "gettext_rails",
110
+ PKG_VERSION,
111
+ "pkg/gettext_rails-#{PKG_VERSION}.gem")
112
+ end
113
+
@@ -0,0 +1,33 @@
1
+ =begin
2
+ gettext_rails.rb- GetText for "Ruby on Rails"
3
+
4
+ Copyright (C) 2005-2009 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ Original: gettext/lib/rails.rb from Ruby-GetText-Package-1.93.0
10
+
11
+ $Id$
12
+ =end
13
+
14
+ require 'gettext_rails/action_controller.rb'
15
+ require 'gettext_rails/action_view.rb'
16
+ require 'gettext_rails/action_mailer.rb'
17
+ require 'gettext_rails/version.rb'
18
+
19
+ begin
20
+ Rails::Info.property("GetText version") do
21
+ GetText::VERSION
22
+ end
23
+ Rails::Info.property("GetText for Rails version") do
24
+ GetTextRails::VERSION
25
+ end
26
+ rescue Exception
27
+ $stderr.puts "GetText's Rails::Info is not found." if $DEBUG
28
+ end
29
+
30
+ if ::RAILS_ENV == "development"
31
+ GetText::TextDomainManager.cached = false
32
+ end
33
+
@@ -0,0 +1,104 @@
1
+ =begin
2
+ gettext_rails/action_controller.rb - GetText for ActionController.
3
+
4
+ Copyright (C) 2005-2009 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ Original: gettext/lib/rails.rb from Ruby-GetText-Package-1.93.0
10
+
11
+ $Id$
12
+ =end
13
+ require 'gettext/cgi'
14
+ require 'locale_rails'
15
+ require 'action_controller'
16
+
17
+ module ActionController #:nodoc:
18
+ class Base
19
+ include GetText
20
+
21
+ # Append a block which is called before initializing gettext on the each WWW request.
22
+ #
23
+ # (e.g.)
24
+ # class ApplicationController < ActionController::Base
25
+ # before_init_gettext{|controller|
26
+ # cookies = controller.cookies
27
+ # if (cookies["lang"].nil? or cookies["lang"].empty?)
28
+ # GetText.locale = "zh_CN"
29
+ # else
30
+ # GetText.locale = cookies["lang"]
31
+ # end
32
+ # }
33
+ # init_gettext "myapp"
34
+ # # ...
35
+ # end
36
+ def self.before_init_gettext(*filters, &block)
37
+ before_init_locale(*filters, &block)
38
+ end
39
+
40
+ # Append a block which is called after initializing gettext on the each WWW request.
41
+ #
42
+ # The GetText.locale is set the locale which bound to the textdomains
43
+ # when gettext is initialized.
44
+ #
45
+ # (e.g.)
46
+ # class ApplicationController < ActionController::Base
47
+ # after_init_gettext {|controller|
48
+ # L10nClass.new(GetText.locale)
49
+ # }
50
+ # init_gettext "foo"
51
+ # # ...
52
+ # end
53
+ def self.after_init_gettext(*filters, &block)
54
+ after_init_locale(*filters, &block)
55
+ end
56
+
57
+ # Bind a 'textdomain' to all of the controllers/views/models. Call this instead of GetText.bindtextdomain.
58
+ # * textdomain: the textdomain
59
+ # * options: options as a Hash.
60
+ # * :charset - the output charset. Default is "UTF-8"
61
+ # * :locale_path - the path to locale directory. Default is {RAILS_ROOT}/locale or {plugin root directory}/locale.
62
+ #
63
+ # locale is searched the order by params["lang"] > "lang" value of QUERY_STRING >
64
+ # "lang" value of Cookie > HTTP_ACCEPT_LANGUAGE value > Default locale(en).
65
+ # And the charset is set order by "the argument of bindtextdomain" > HTTP_ACCEPT_CHARSET > Default charset(UTF-8).
66
+ # Refer Ruby-Locale for more details.
67
+ #
68
+ # If you want to separate the textdomain each controllers, you need to call this function in the each controllers.
69
+ #
70
+ # app/controller/blog_controller.rb:
71
+ # class BlogController < ApplicationController
72
+ # init_gettext "blog"
73
+ # :
74
+ # end
75
+ def self.init_gettext(domainname, options = {})
76
+ opt = {:charset => "UTF-8"}.merge(options)
77
+
78
+ set_output_charset(opt[:charset])
79
+ locale_path = opt[:locale_path]
80
+ unless locale_path
81
+ cal = caller[0]
82
+ if cal =~ /app.controllers/
83
+ # Don't use RAILS_ROOT first, for RailsEngines.
84
+ locale_path = File.join(cal.split(/app.controllers/)[0] + "locale")
85
+ else
86
+ locale_path = File.join(RAILS_ROOT, "locale")
87
+ end
88
+ end
89
+
90
+ bindtextdomain(domainname, {:path => locale_path})
91
+
92
+ if defined? ActiveRecord::Base
93
+ textdomain_to(ActiveRecord::Base, domainname)
94
+ textdomain_to(ActiveRecord::Validations, domainname)
95
+ end
96
+ textdomain_to(ActionView::Base, domainname) if defined? ActionView::Base
97
+ textdomain_to(ApplicationHelper, domainname) if defined? ApplicationHelper
98
+ textdomain_to(ActionMailer::Base, domainname) if defined? ActionMailer::Base
99
+ textdomain_to(ActionView::Helpers, domainname) if defined? ActionView::Helpers
100
+ end
101
+
102
+ end
103
+
104
+ end