gettext_rails 2.0.0

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