gettext 1.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 (384) hide show
  1. data/COPYING +55 -0
  2. data/COPYING.ja +51 -0
  3. data/ChangeLog +492 -0
  4. data/NEWS +99 -0
  5. data/README +112 -0
  6. data/README.ja +115 -0
  7. data/Rakefile +170 -0
  8. data/bin/rgettext +22 -0
  9. data/bin/rmsgfmt +22 -0
  10. data/data/locale/de/LC_MESSAGES/rgettext.mo +0 -0
  11. data/data/locale/de/LC_MESSAGES/rmsgfmt.mo +0 -0
  12. data/data/locale/es/LC_MESSAGES/rgettext.mo +0 -0
  13. data/data/locale/es/LC_MESSAGES/rmsgfmt.mo +0 -0
  14. data/data/locale/fr/LC_MESSAGES/rgettext.mo +0 -0
  15. data/data/locale/fr/LC_MESSAGES/rmsgfmt.mo +0 -0
  16. data/data/locale/it/LC_MESSAGES/rgettext.mo +0 -0
  17. data/data/locale/it/LC_MESSAGES/rmsgfmt.mo +0 -0
  18. data/data/locale/ja/LC_MESSAGES/rgettext.mo +0 -0
  19. data/data/locale/ja/LC_MESSAGES/rmsgfmt.mo +0 -0
  20. data/data/locale/ko/LC_MESSAGES/rgettext.mo +0 -0
  21. data/data/locale/ko/LC_MESSAGES/rmsgfmt.mo +0 -0
  22. data/data/locale/pt_BR/LC_MESSAGES/rgettext.mo +0 -0
  23. data/data/locale/pt_BR/LC_MESSAGES/rmsgfmt.mo +0 -0
  24. data/data/locale/sv/LC_MESSAGES/rgettext.mo +0 -0
  25. data/data/locale/sv/LC_MESSAGES/rmsgfmt.mo +0 -0
  26. data/ext/gettext/gettext/MANIFEST +3 -0
  27. data/ext/gettext/gettext/_locale.c +86 -0
  28. data/ext/gettext/gettext/extconf.rb +20 -0
  29. data/lib/gettext.rb +127 -0
  30. data/lib/gettext/cgi.rb +83 -0
  31. data/lib/gettext/container.rb +30 -0
  32. data/lib/gettext/erb.rb +28 -0
  33. data/lib/gettext/iconv.rb +80 -0
  34. data/lib/gettext/locale.rb +71 -0
  35. data/lib/gettext/locale_default.rb +35 -0
  36. data/lib/gettext/locale_table_win32.rb +192 -0
  37. data/lib/gettext/locale_win32.rb +35 -0
  38. data/lib/gettext/mo.rb +262 -0
  39. data/lib/gettext/parser/erb.rb +34 -0
  40. data/lib/gettext/parser/glade.rb +98 -0
  41. data/lib/gettext/parser/ruby.rb +211 -0
  42. data/lib/gettext/rails.rb +40 -0
  43. data/lib/gettext/rgettext.rb +181 -0
  44. data/lib/gettext/rmsgfmt.rb +363 -0
  45. data/lib/gettext/textdomain.rb +168 -0
  46. data/lib/gettext/version.rb +12 -0
  47. data/po/de/rgettext.po +49 -0
  48. data/po/de/rmsgfmt.po +45 -0
  49. data/po/es/rgettext.po +47 -0
  50. data/po/es/rmsgfmt.po +43 -0
  51. data/po/fr/rgettext.po +47 -0
  52. data/po/fr/rmsgfmt.po +43 -0
  53. data/po/it/rgettext.po +47 -0
  54. data/po/it/rmsgfmt.po +44 -0
  55. data/po/ja/rgettext.po +49 -0
  56. data/po/ja/rmsgfmt.po +43 -0
  57. data/po/ko/rgettext.po +46 -0
  58. data/po/ko/rmsgfmt.po +40 -0
  59. data/po/pt_BR/rgettext.po +47 -0
  60. data/po/pt_BR/rmsgfmt.po +42 -0
  61. data/po/rgettext.pot +45 -0
  62. data/po/rmsgfmt.pot +40 -0
  63. data/po/sv/rgettext.po +48 -0
  64. data/po/sv/rmsgfmt.po +43 -0
  65. data/post-setup.rb +12 -0
  66. data/pre-setup.rb +12 -0
  67. data/samples/README +20 -0
  68. data/samples/cgi/README +43 -0
  69. data/samples/cgi/Rakefile +9 -0
  70. data/samples/cgi/cookie.cgi +57 -0
  71. data/samples/cgi/gettext.css +116 -0
  72. data/samples/cgi/helloerb.rhtml +27 -0
  73. data/samples/cgi/helloerb1.cgi +47 -0
  74. data/samples/cgi/helloerb2.cgi +41 -0
  75. data/samples/cgi/hellolib.rb +21 -0
  76. data/samples/cgi/http.rb +54 -0
  77. data/samples/cgi/index.cgi +104 -0
  78. data/samples/cgi/locale/de/LC_MESSAGES/helloerb1.mo +0 -0
  79. data/samples/cgi/locale/de/LC_MESSAGES/helloerb2.mo +0 -0
  80. data/samples/cgi/locale/de/LC_MESSAGES/hellolib.mo +0 -0
  81. data/samples/cgi/locale/de/LC_MESSAGES/main.mo +0 -0
  82. data/samples/cgi/locale/es/LC_MESSAGES/helloerb1.mo +0 -0
  83. data/samples/cgi/locale/es/LC_MESSAGES/helloerb2.mo +0 -0
  84. data/samples/cgi/locale/es/LC_MESSAGES/hellolib.mo +0 -0
  85. data/samples/cgi/locale/es/LC_MESSAGES/main.mo +0 -0
  86. data/samples/cgi/locale/fr/LC_MESSAGES/helloerb1.mo +0 -0
  87. data/samples/cgi/locale/fr/LC_MESSAGES/helloerb2.mo +0 -0
  88. data/samples/cgi/locale/fr/LC_MESSAGES/hellolib.mo +0 -0
  89. data/samples/cgi/locale/fr/LC_MESSAGES/main.mo +0 -0
  90. data/samples/cgi/locale/it/LC_MESSAGES/helloerb1.mo +0 -0
  91. data/samples/cgi/locale/it/LC_MESSAGES/helloerb2.mo +0 -0
  92. data/samples/cgi/locale/it/LC_MESSAGES/hellolib.mo +0 -0
  93. data/samples/cgi/locale/it/LC_MESSAGES/main.mo +0 -0
  94. data/samples/cgi/locale/ja/LC_MESSAGES/helloerb1.mo +0 -0
  95. data/samples/cgi/locale/ja/LC_MESSAGES/helloerb2.mo +0 -0
  96. data/samples/cgi/locale/ja/LC_MESSAGES/hellolib.mo +0 -0
  97. data/samples/cgi/locale/ja/LC_MESSAGES/main.mo +0 -0
  98. data/samples/cgi/locale/ko/LC_MESSAGES/helloerb1.mo +0 -0
  99. data/samples/cgi/locale/ko/LC_MESSAGES/helloerb2.mo +0 -0
  100. data/samples/cgi/locale/ko/LC_MESSAGES/hellolib.mo +0 -0
  101. data/samples/cgi/locale/ko/LC_MESSAGES/main.mo +0 -0
  102. data/samples/cgi/other.rhtml +20 -0
  103. data/samples/cgi/po/de/helloerb1.po +60 -0
  104. data/samples/cgi/po/de/helloerb2.po +52 -0
  105. data/samples/cgi/po/de/hellolib.po +23 -0
  106. data/samples/cgi/po/de/main.po +76 -0
  107. data/samples/cgi/po/es/helloerb1.po +59 -0
  108. data/samples/cgi/po/es/helloerb2.po +50 -0
  109. data/samples/cgi/po/es/hellolib.po +22 -0
  110. data/samples/cgi/po/es/main.po +74 -0
  111. data/samples/cgi/po/fr/helloerb1.po +59 -0
  112. data/samples/cgi/po/fr/helloerb2.po +51 -0
  113. data/samples/cgi/po/fr/hellolib.po +22 -0
  114. data/samples/cgi/po/fr/main.po +75 -0
  115. data/samples/cgi/po/helloerb1.pot +60 -0
  116. data/samples/cgi/po/helloerb2.pot +52 -0
  117. data/samples/cgi/po/hellolib.pot +23 -0
  118. data/samples/cgi/po/it/helloerb1.po +61 -0
  119. data/samples/cgi/po/it/helloerb2.po +52 -0
  120. data/samples/cgi/po/it/hellolib.po +24 -0
  121. data/samples/cgi/po/it/main.po +76 -0
  122. data/samples/cgi/po/ja/helloerb1.po +59 -0
  123. data/samples/cgi/po/ja/helloerb2.po +52 -0
  124. data/samples/cgi/po/ja/hellolib.po +23 -0
  125. data/samples/cgi/po/ja/main.po +76 -0
  126. data/samples/cgi/po/ko/helloerb1.po +58 -0
  127. data/samples/cgi/po/ko/helloerb2.po +52 -0
  128. data/samples/cgi/po/ko/hellolib.po +22 -0
  129. data/samples/cgi/po/ko/main.po +74 -0
  130. data/samples/cgi/po/main.pot +76 -0
  131. data/samples/cgi/ruby.bat +4 -0
  132. data/samples/hello.rb +12 -0
  133. data/samples/hello2.rb +15 -0
  134. data/samples/hello_noop.rb +18 -0
  135. data/samples/hello_plural.rb +15 -0
  136. data/samples/hello_textdomain.rb +12 -0
  137. data/samples/helloglade2.glade +70 -0
  138. data/samples/helloglade2.rb +24 -0
  139. data/samples/hellogtk.rb +26 -0
  140. data/samples/hellogtk2.rb +28 -0
  141. data/samples/hellotk.rb +18 -0
  142. data/samples/locale/de/LC_MESSAGES/hello.mo +0 -0
  143. data/samples/locale/de/LC_MESSAGES/hello2.mo +0 -0
  144. data/samples/locale/de/LC_MESSAGES/hello_noop.mo +0 -0
  145. data/samples/locale/de/LC_MESSAGES/hello_plural.mo +0 -0
  146. data/samples/locale/de/LC_MESSAGES/helloglade2.mo +0 -0
  147. data/samples/locale/de/LC_MESSAGES/hellogtk.mo +0 -0
  148. data/samples/locale/de/LC_MESSAGES/hellotk.mo +0 -0
  149. data/samples/locale/es/LC_MESSAGES/hello.mo +0 -0
  150. data/samples/locale/es/LC_MESSAGES/hello2.mo +0 -0
  151. data/samples/locale/es/LC_MESSAGES/hello_noop.mo +0 -0
  152. data/samples/locale/es/LC_MESSAGES/hello_plural.mo +0 -0
  153. data/samples/locale/es/LC_MESSAGES/helloglade2.mo +0 -0
  154. data/samples/locale/es/LC_MESSAGES/hellogtk.mo +0 -0
  155. data/samples/locale/es/LC_MESSAGES/hellotk.mo +0 -0
  156. data/samples/locale/fr/LC_MESSAGES/hello.mo +0 -0
  157. data/samples/locale/fr/LC_MESSAGES/hello2.mo +0 -0
  158. data/samples/locale/fr/LC_MESSAGES/hello_noop.mo +0 -0
  159. data/samples/locale/fr/LC_MESSAGES/hello_plural.mo +0 -0
  160. data/samples/locale/fr/LC_MESSAGES/helloglade2.mo +0 -0
  161. data/samples/locale/fr/LC_MESSAGES/hellogtk.mo +0 -0
  162. data/samples/locale/fr/LC_MESSAGES/hellotk.mo +0 -0
  163. data/samples/locale/it/LC_MESSAGES/hello.mo +0 -0
  164. data/samples/locale/it/LC_MESSAGES/hello2.mo +0 -0
  165. data/samples/locale/it/LC_MESSAGES/hello_noop.mo +0 -0
  166. data/samples/locale/it/LC_MESSAGES/hello_plural.mo +0 -0
  167. data/samples/locale/it/LC_MESSAGES/helloglade2.mo +0 -0
  168. data/samples/locale/it/LC_MESSAGES/hellogtk.mo +0 -0
  169. data/samples/locale/it/LC_MESSAGES/hellotk.mo +0 -0
  170. data/samples/locale/ja/LC_MESSAGES/hello.mo +0 -0
  171. data/samples/locale/ja/LC_MESSAGES/hello2.mo +0 -0
  172. data/samples/locale/ja/LC_MESSAGES/hello_noop.mo +0 -0
  173. data/samples/locale/ja/LC_MESSAGES/hello_plural.mo +0 -0
  174. data/samples/locale/ja/LC_MESSAGES/helloglade2.mo +0 -0
  175. data/samples/locale/ja/LC_MESSAGES/hellogtk.mo +0 -0
  176. data/samples/locale/ja/LC_MESSAGES/hellotk.mo +0 -0
  177. data/samples/locale/ko/LC_MESSAGES/hello.mo +0 -0
  178. data/samples/locale/ko/LC_MESSAGES/hello2.mo +0 -0
  179. data/samples/locale/ko/LC_MESSAGES/hello_noop.mo +0 -0
  180. data/samples/locale/ko/LC_MESSAGES/hello_plural.mo +0 -0
  181. data/samples/locale/ko/LC_MESSAGES/helloglade2.mo +0 -0
  182. data/samples/locale/ko/LC_MESSAGES/hellogtk.mo +0 -0
  183. data/samples/locale/ko/LC_MESSAGES/hellotk.mo +0 -0
  184. data/samples/locale/pt_BR/LC_MESSAGES/hello.mo +0 -0
  185. data/samples/locale/pt_BR/LC_MESSAGES/hello2.mo +0 -0
  186. data/samples/locale/pt_BR/LC_MESSAGES/hello_noop.mo +0 -0
  187. data/samples/locale/pt_BR/LC_MESSAGES/hello_plural.mo +0 -0
  188. data/samples/locale/pt_BR/LC_MESSAGES/helloglade2.mo +0 -0
  189. data/samples/locale/pt_BR/LC_MESSAGES/hellogtk.mo +0 -0
  190. data/samples/locale/pt_BR/LC_MESSAGES/hellotk.mo +0 -0
  191. data/samples/locale/sv/LC_MESSAGES/hello.mo +0 -0
  192. data/samples/locale/sv/LC_MESSAGES/hello2.mo +0 -0
  193. data/samples/locale/sv/LC_MESSAGES/hello_noop.mo +0 -0
  194. data/samples/locale/sv/LC_MESSAGES/hello_plural.mo +0 -0
  195. data/samples/locale/sv/LC_MESSAGES/helloglade2.mo +0 -0
  196. data/samples/locale/sv/LC_MESSAGES/hellogtk.mo +0 -0
  197. data/samples/locale/sv/LC_MESSAGES/hellotk.mo +0 -0
  198. data/samples/makemo.rb +3 -0
  199. data/samples/po/de/hello.po +20 -0
  200. data/samples/po/de/hello2.po +28 -0
  201. data/samples/po/de/hello_noop.po +24 -0
  202. data/samples/po/de/hello_plural.po +22 -0
  203. data/samples/po/de/helloglade2.po +27 -0
  204. data/samples/po/de/hellogtk.po +20 -0
  205. data/samples/po/de/hellotk.po +20 -0
  206. data/samples/po/es/hello.po +21 -0
  207. data/samples/po/es/hello2.po +28 -0
  208. data/samples/po/es/hello_noop.po +24 -0
  209. data/samples/po/es/hello_plural.po +23 -0
  210. data/samples/po/es/helloglade2.po +28 -0
  211. data/samples/po/es/hellogtk.po +20 -0
  212. data/samples/po/es/hellotk.po +20 -0
  213. data/samples/po/fr/hello.po +18 -0
  214. data/samples/po/fr/hello2.po +26 -0
  215. data/samples/po/fr/hello_noop.po +22 -0
  216. data/samples/po/fr/hello_plural.po +21 -0
  217. data/samples/po/fr/helloglade2.po +27 -0
  218. data/samples/po/fr/hellogtk.po +18 -0
  219. data/samples/po/fr/hellotk.po +18 -0
  220. data/samples/po/hello.pot +20 -0
  221. data/samples/po/hello2.pot +28 -0
  222. data/samples/po/hello_noop.pot +24 -0
  223. data/samples/po/hello_plural.pot +22 -0
  224. data/samples/po/helloglade2.pot +27 -0
  225. data/samples/po/hellogtk.pot +20 -0
  226. data/samples/po/hellotk.pot +20 -0
  227. data/samples/po/it/hello.po +20 -0
  228. data/samples/po/it/hello2.po +28 -0
  229. data/samples/po/it/hello_noop.po +24 -0
  230. data/samples/po/it/hello_plural.po +24 -0
  231. data/samples/po/it/helloglade2.po +28 -0
  232. data/samples/po/it/hellogtk.po +21 -0
  233. data/samples/po/it/hellotk.po +21 -0
  234. data/samples/po/ja/hello.po +20 -0
  235. data/samples/po/ja/hello2.po +28 -0
  236. data/samples/po/ja/hello_noop.po +23 -0
  237. data/samples/po/ja/hello_plural.po +22 -0
  238. data/samples/po/ja/helloglade2.po +26 -0
  239. data/samples/po/ja/hellogtk.po +19 -0
  240. data/samples/po/ja/hellotk.po +19 -0
  241. data/samples/po/ko/hello.po +19 -0
  242. data/samples/po/ko/hello2.po +27 -0
  243. data/samples/po/ko/hello_noop.po +23 -0
  244. data/samples/po/ko/hello_plural.po +23 -0
  245. data/samples/po/ko/helloglade2.po +29 -0
  246. data/samples/po/ko/hellogtk.po +19 -0
  247. data/samples/po/ko/hellotk.po +20 -0
  248. data/samples/po/pt_BR/hello.po +20 -0
  249. data/samples/po/pt_BR/hello2.po +28 -0
  250. data/samples/po/pt_BR/hello_noop.po +24 -0
  251. data/samples/po/pt_BR/hello_plural.po +23 -0
  252. data/samples/po/pt_BR/helloglade2.po +28 -0
  253. data/samples/po/pt_BR/hellogtk.po +20 -0
  254. data/samples/po/pt_BR/hellotk.po +20 -0
  255. data/samples/po/sv/hello.po +20 -0
  256. data/samples/po/sv/hello2.po +28 -0
  257. data/samples/po/sv/hello_noop.po +24 -0
  258. data/samples/po/sv/hello_plural.po +23 -0
  259. data/samples/po/sv/helloglade2.po +28 -0
  260. data/samples/po/sv/hellogtk.po +20 -0
  261. data/samples/po/sv/hellotk.po +20 -0
  262. data/samples/rails/README +79 -0
  263. data/samples/rails/Rakefile +212 -0
  264. data/samples/rails/app/controllers/application.rb +37 -0
  265. data/samples/rails/app/controllers/blog_controller.rb +62 -0
  266. data/samples/rails/app/helpers/application_helper.rb +3 -0
  267. data/samples/rails/app/helpers/blog_helper.rb +61 -0
  268. data/samples/rails/app/models/article.rb +2 -0
  269. data/samples/rails/app/views/blog/_form.rhtml +25 -0
  270. data/samples/rails/app/views/blog/edit.rhtml +22 -0
  271. data/samples/rails/app/views/blog/list.rhtml +30 -0
  272. data/samples/rails/app/views/blog/new.rhtml +21 -0
  273. data/samples/rails/app/views/blog/show.rhtml +18 -0
  274. data/samples/rails/app/views/layouts/blog.rhtml +36 -0
  275. data/samples/rails/config/database.yml +32 -0
  276. data/samples/rails/config/environment.rb +88 -0
  277. data/samples/rails/config/environments/development.rb +14 -0
  278. data/samples/rails/config/environments/production.rb +8 -0
  279. data/samples/rails/config/environments/test.rb +17 -0
  280. data/samples/rails/config/routes.rb +19 -0
  281. data/samples/rails/db/mysql.sql +8 -0
  282. data/samples/rails/db/postgresql.sql +7 -0
  283. data/samples/rails/locale/de/LC_MESSAGES/blog.mo +0 -0
  284. data/samples/rails/locale/de/LC_MESSAGES/lang_helper.mo +0 -0
  285. data/samples/rails/locale/es/LC_MESSAGES/blog.mo +0 -0
  286. data/samples/rails/locale/es/LC_MESSAGES/lang_helper.mo +0 -0
  287. data/samples/rails/locale/fr/LC_MESSAGES/blog.mo +0 -0
  288. data/samples/rails/locale/fr/LC_MESSAGES/lang_helper.mo +0 -0
  289. data/samples/rails/locale/ja/LC_MESSAGES/blog.mo +0 -0
  290. data/samples/rails/locale/ja/LC_MESSAGES/lang_helper.mo +0 -0
  291. data/samples/rails/locale/ko/LC_MESSAGES/blog.mo +0 -0
  292. data/samples/rails/locale/ko/LC_MESSAGES/lang_helper.mo +0 -0
  293. data/samples/rails/po/blog.pot +90 -0
  294. data/samples/rails/po/de/blog.po +91 -0
  295. data/samples/rails/po/de/lang_helper.po +28 -0
  296. data/samples/rails/po/es/blog.po +90 -0
  297. data/samples/rails/po/es/lang_helper.po +28 -0
  298. data/samples/rails/po/fr/blog.po +89 -0
  299. data/samples/rails/po/fr/lang_helper.po +27 -0
  300. data/samples/rails/po/ja/blog.po +89 -0
  301. data/samples/rails/po/ja/lang_helper.po +28 -0
  302. data/samples/rails/po/ko/blog.po +87 -0
  303. data/samples/rails/po/ko/lang_helper.po +26 -0
  304. data/samples/rails/po/lang_helper.pot +28 -0
  305. data/samples/rails/public/404.html +8 -0
  306. data/samples/rails/public/500.html +8 -0
  307. data/samples/rails/public/dispatch.cgi +10 -0
  308. data/samples/rails/public/dispatch.fcgi +24 -0
  309. data/samples/rails/public/dispatch.rb +10 -0
  310. data/samples/rails/public/favicon.ico +0 -0
  311. data/samples/rails/public/index.html +78 -0
  312. data/samples/rails/public/javascripts/controls.js +446 -0
  313. data/samples/rails/public/javascripts/dragdrop.js +537 -0
  314. data/samples/rails/public/javascripts/effects.js +612 -0
  315. data/samples/rails/public/javascripts/prototype.js +1038 -0
  316. data/samples/rails/public/stylesheets/blog.css +132 -0
  317. data/samples/rails/public/stylesheets/scaffold.css +74 -0
  318. data/samples/rails/script/benchmarker +19 -0
  319. data/samples/rails/script/breakpointer +4 -0
  320. data/samples/rails/script/console +23 -0
  321. data/samples/rails/script/destroy +7 -0
  322. data/samples/rails/script/generate +7 -0
  323. data/samples/rails/script/profiler +34 -0
  324. data/samples/rails/script/runner +29 -0
  325. data/samples/rails/script/server +49 -0
  326. data/samples/rails/test/fixtures/articles.yml +5 -0
  327. data/samples/rails/test/functional/blog_controller_test.rb +88 -0
  328. data/samples/rails/test/test_helper.rb +26 -0
  329. data/samples/rails/test/unit/article_test.rb +14 -0
  330. data/samples/rails/vendor/lang_helper.rb +49 -0
  331. data/setup.rb +1360 -0
  332. data/src/rmsgfmt.ry +233 -0
  333. data/test/README +10 -0
  334. data/test/gettext_runner.rb +18 -0
  335. data/test/gettext_test.rb +202 -0
  336. data/test/gettext_test_parser.rb +80 -0
  337. data/test/locale/cr/LC_MESSAGES/plural.mo +0 -0
  338. data/test/locale/da/LC_MESSAGES/plural.mo +0 -0
  339. data/test/locale/da/LC_MESSAGES/plural_error.mo +0 -0
  340. data/test/locale/fr/LC_MESSAGES/plural.mo +0 -0
  341. data/test/locale/fr/LC_MESSAGES/plural_error.mo +0 -0
  342. data/test/locale/fr/LC_MESSAGES/test1.mo +0 -0
  343. data/test/locale/fr/LC_MESSAGES/test2.mo +0 -0
  344. data/test/locale/ir/LC_MESSAGES/plural.mo +0 -0
  345. data/test/locale/ja/LC_MESSAGES/plural.mo +0 -0
  346. data/test/locale/ja/LC_MESSAGES/plural_error.mo +0 -0
  347. data/test/locale/ja/LC_MESSAGES/test1.mo +0 -0
  348. data/test/locale/ja/LC_MESSAGES/test2.mo +0 -0
  349. data/test/locale/ja/LC_MESSAGES/test_rubyparser.mo +0 -0
  350. data/test/locale/ja/LC_MESSAGES/test_sgettext.mo +0 -0
  351. data/test/locale/la/LC_MESSAGES/plural.mo +0 -0
  352. data/test/locale/li/LC_MESSAGES/plural.mo +0 -0
  353. data/test/locale/po/LC_MESSAGES/plural.mo +0 -0
  354. data/test/locale/sl/LC_MESSAGES/plural.mo +0 -0
  355. data/test/po/cr/plural.po +23 -0
  356. data/test/po/da/plural.po +22 -0
  357. data/test/po/da/plural_error.po +20 -0
  358. data/test/po/fr/plural.po +22 -0
  359. data/test/po/fr/plural_error.po +19 -0
  360. data/test/po/fr/test1.po +23 -0
  361. data/test/po/fr/test2.po +19 -0
  362. data/test/po/ir/plural.po +23 -0
  363. data/test/po/ja/plural.po +22 -0
  364. data/test/po/ja/plural_error.po +20 -0
  365. data/test/po/ja/test1.po +23 -0
  366. data/test/po/ja/test2.po +19 -0
  367. data/test/po/ja/test_rubyparser.po +43 -0
  368. data/test/po/ja/test_sgettext.po +47 -0
  369. data/test/po/la/plural.po +23 -0
  370. data/test/po/li/plural.po +23 -0
  371. data/test/po/po/plural.po +23 -0
  372. data/test/po/sl/plural.po +24 -0
  373. data/test/test.sh +7 -0
  374. data/test/test_erb.rhtml +15 -0
  375. data/test/test_gladeparser.glade +183 -0
  376. data/test/test_rubyparser.rb +77 -0
  377. data/test/test_rubyparser_N.rb +66 -0
  378. data/test/test_rubyparser_n.rb +64 -0
  379. data/test/test_sgettext.rb +48 -0
  380. data/test/testlib1.rb +20 -0
  381. data/test/testlib2.rb +11 -0
  382. data/test/testlib3.rb +12 -0
  383. data/test/testlib4.rb +11 -0
  384. metadata +580 -0
@@ -0,0 +1,23 @@
1
+ # hello_plural.po - sample for GetText.n_().
2
+ #
3
+ # Copyright (C) 2002-2004 Masao Mutoh
4
+ #
5
+ # Joao Pedrosa <joaopedrosa@gmail.com>, 2004.
6
+ #
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: ruby-gettext 0.8.0\n"
10
+ "POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
11
+ "PO-Revision-Date: 2004-11-04 23:19-0300\n"
12
+ "Last-Translator: Joao Pedrosa\n"
13
+ "Language-Team: Portuguese(Brazil)\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
18
+
19
+ #: hello_plural.rb:11
20
+ msgid "There is an apple.\n"
21
+ msgid_plural "There are %d apples.\n"
22
+ msgstr[0] "Existe uma maçã.\n"
23
+ msgstr[1] "Existem %d maçãs.\n"
@@ -0,0 +1,28 @@
1
+ # helloglade2.po - sample for Ruby/Libglade2
2
+ #
3
+ # Copyright (C) 2004 Masao Mutoh
4
+ #
5
+ # Joao Pedrosa <joaopedrosa@gmail.com>, 2004.
6
+ #
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: ruby-gettext 0.8.0\n"
10
+ "POT-Creation-Date: 2004-07-03 23:38+0900\n"
11
+ "PO-Revision-Date: 2004-11-04 23:19-0300\n"
12
+ "Last-Translator: Joao Pedrosa\n"
13
+ "Language-Team: Portuguese(Brazil)\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+
18
+ #: helloglade2.glade:8
19
+ msgid "window1"
20
+ msgstr "Janela1"
21
+
22
+ #: helloglade2.glade:29
23
+ msgid "first line\nsecond line\nthird line"
24
+ msgstr "primeira linha\nsegunda linha\nterceira linha"
25
+
26
+ #: helloglade2.glade:53
27
+ msgid "<Hello world>"
28
+ msgstr "<Olá, mundo>"
@@ -0,0 +1,20 @@
1
+ # hellgtk.po - sample for Ruby/GTK
2
+ #
3
+ # Copyright (C) 2001-2004 Masao Mutoh
4
+ #
5
+ # Joao Pedrosa <joaopedrosa@gmail.com>, 2004.
6
+ #
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: ruby-gettext 0.8.0\n"
10
+ "POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
11
+ "PO-Revision-Date: 2004-11-04 23:19-0300\n"
12
+ "Last-Translator: Joao Pedrosa\n"
13
+ "Language-Team: Portuguese(Brazil)\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+
18
+ #: ../hellogtk.rb:14
19
+ msgid "hello, gtk world"
20
+ msgstr "Olá, mundo de gtk"
@@ -0,0 +1,20 @@
1
+ # helltk.po - sample for Ruby/GTK
2
+ #
3
+ # Copyright (C) 2001-2004 Masao Mutoh
4
+ #
5
+ # Joao Pedrosa <joaopedrosa@gmail.com>, 2004.
6
+ #
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: ruby-gettext 0.8.0\n"
10
+ "POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
11
+ "PO-Revision-Date: 2004-11-04 23:19-0300\n"
12
+ "Last-Translator: Joao Pedrosa\n"
13
+ "Language-Team: Portuguese(Brazil)\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+
18
+ #: ../hellogtk.rb:14
19
+ msgid "hello, gtk world"
20
+ msgstr "Olá, mundo de gtk"
@@ -0,0 +1,20 @@
1
+ # hello.po - sample for GetText._()
2
+ #
3
+ # Copyright (C) 2001-2004 Masao Mutoh
4
+ #
5
+ # Nikolai Weibull, 2004
6
+ #
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: ruby-gettext 0.8.0\n"
10
+ "POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
11
+ "PO-Revision-Date: 2004-11-04 20:49+0100\n"
12
+ "Last-Translator: Nikolai Weibull\n"
13
+ "Language-Team: Swedish\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+
18
+ #: ../hello.rb:7
19
+ msgid "Hello World\n"
20
+ msgstr "Hej, världen\n"
@@ -0,0 +1,28 @@
1
+ # hello2.po - sample for GetText._()
2
+ #
3
+ # Copyright (C) 2002-2004 Masao Mutoh
4
+ #
5
+ # Nikolai Weibull, 2004
6
+
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: ruby-gettext 0.8.0\n"
10
+ "POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
11
+ "PO-Revision-Date: 2004-11-04 20:49+0100\n"
12
+ "Last-Translator: Nikolai Weibull\n"
13
+ "Language-Team: Swedish\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+
18
+ #: hello2.rb:9
19
+ msgid "World"
20
+ msgstr "världen"
21
+
22
+ #: hello2.rb:8
23
+ msgid "One is %d\n"
24
+ msgstr "Ett är %d\n"
25
+
26
+ #: hello2.rb:9
27
+ msgid "Hello %s\n"
28
+ msgstr "Hej, %s\n"
@@ -0,0 +1,24 @@
1
+ # hello_noop.po - sample for GetText.N_().
2
+ #
3
+ # Copyright (C) 2002-2004 Masao Mutoh
4
+ #
5
+ # Nikolai Weibull, 2004
6
+
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: ruby-gettext 0.8.0\n"
10
+ "POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
11
+ "PO-Revision-Date: 2004-11-04 20:49+0100\n"
12
+ "Last-Translator: Nikolai Weibull\n"
13
+ "Language-Team: Swedish\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+
18
+ #: hello_noop.rb:8
19
+ msgid "Hello World"
20
+ msgstr "Hej, världen"
21
+
22
+ #: hello_noop.rb:8
23
+ msgid "Hello World2"
24
+ msgstr "Hej, världen2"
@@ -0,0 +1,23 @@
1
+ # hello_plural.po - sample for GetText.n_().
2
+ #
3
+ # Copyright (C) 2002-2004 Masao Mutoh
4
+ #
5
+ # Nikolai Weibull, 2004
6
+
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: ruby-gettext 0.8.0\n"
10
+ "POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
11
+ "PO-Revision-Date: 2004-11-04 20:49+0100\n"
12
+ "Last-Translator: Nikolai Weibull\n"
13
+ "Language-Team: Swedish\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
18
+
19
+ #: hello_plural.rb:11
20
+ msgid "There is an apple.\n"
21
+ msgid_plural "There are %d apples.\n"
22
+ msgstr[0] "Det finns ett äpple.\n"
23
+ msgstr[1] "Det finns %d äpplen.\n"
@@ -0,0 +1,28 @@
1
+ # helloglade2.po - sample for Ruby/Libglade2
2
+ #
3
+ # Copyright (C) 2004 Masao Mutoh
4
+ #
5
+ # Nikolai Weibull, 2004
6
+
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: ruby-gettext 0.8.0\n"
10
+ "POT-Creation-Date: 2004-07-03 23:38+0900\n"
11
+ "PO-Revision-Date: 2004-11-04 20:49+0100\n"
12
+ "Last-Translator: Nikolai Weibull\n"
13
+ "Language-Team: Swedish\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+
18
+ #: helloglade2.glade:8
19
+ msgid "window1"
20
+ msgstr "fönster1"
21
+
22
+ #: helloglade2.glade:29
23
+ msgid "first line\nsecond line\nthird line"
24
+ msgstr "första raden\nandra raden\ntredje raden"
25
+
26
+ #: helloglade2.glade:53
27
+ msgid "<Hello world>"
28
+ msgstr "<Hej, världen>"
@@ -0,0 +1,20 @@
1
+ # hellgtk.po - sample for Ruby/GTK
2
+ #
3
+ # Copyright (C) 2001-2004 Masao Mutoh
4
+ #
5
+ # Nikolai Weibull, 2004
6
+
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: ruby-gettext 0.8.0\n"
10
+ "POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
11
+ "PO-Revision-Date: 2004-11-04 20:49+0100\n"
12
+ "Last-Translator: Nikolai Weibull\n"
13
+ "Language-Team: Swedish\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+
18
+ #: ../hellogtk.rb:14
19
+ msgid "hello, gtk world"
20
+ msgstr "hej, gtk-världen"
@@ -0,0 +1,20 @@
1
+ # hellotk.po - sample for Ruby/TK
2
+ #
3
+ # Copyright (C) 2004 Masao Mutoh
4
+ #
5
+ # Nikolai Weibull, 2004
6
+
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: ruby-gettext 0.8.0\n"
10
+ "POT-Creation-Date: 2004-11-05 21:38+0900\n"
11
+ "PO-Revision-Date: 2004-11-05 20:49+0100\n"
12
+ "Last-Translator: Nikolai Weibull\n"
13
+ "Language-Team: Swedish\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+
18
+ #: hellotk.rb:10
19
+ msgid "hello, tk world"
20
+ msgstr "hej, tk-världen"
@@ -0,0 +1,79 @@
1
+ Ruby-GetText Sample blog for Ruby on Rails and Ruby-GetText-Package.
2
+
3
+ Requirement
4
+ -----------
5
+ * ruby-1.8.2
6
+ * rails-0.13.0
7
+ * rake
8
+ * mysql
9
+
10
+ Installation
11
+ ------------
12
+ 1. Setup rails and mysql, Ruby-GetText-Package.
13
+ 2. Create DB and a table
14
+ * using db/mysql.sql.
15
+ a) $ mysqladmin -u <root> create blog
16
+ b) $ mysql -u <root> blog < db/mysql.sql
17
+ * using db/postgresql.sql.
18
+ a) $ su - postgres
19
+ b) $ createdb blog
20
+ c) $ psql blog < db/postgresql.sql
21
+ 3. Edit config/database.xml
22
+ 4. Create mofiles using rake.
23
+ $ rake makemo
24
+
25
+ 5. (One click ruby installer for Windonws user only)
26
+ On command prompt:
27
+
28
+ > set PATH=c:\ruby\bin;%PATH%
29
+ (If you have GTK+ and Ruby/GTK2)
30
+ > set PATH=c:\gtk\bin;%PATH%
31
+
32
+ 6. Then run the http server.
33
+ $ ruby script/server
34
+
35
+ Access the http server from WWW browser:
36
+
37
+ http://localhost:3000/blog
38
+
39
+
40
+ Files
41
+ -----
42
+
43
+ * Rakefile
44
+ - a Rakefile generated by rails.
45
+ Add ":makemo" task which create mo files from po files.
46
+
47
+ * app/controllers/application.rb
48
+ - Bind a textdomain to your application.
49
+ This is the most important file in this sample.
50
+
51
+ * app/controllers/blog_controller.rb
52
+ - This is the main controller which localized.
53
+
54
+ * app/helpers/blog_helper.rb
55
+ - a helper which localized.
56
+
57
+ * app/views/**/*.rhtml
58
+ - Localized rhtml files.
59
+
60
+ * vendor/lang_helper.rb
61
+ - a "Vendor helper". It has its own textdomain.
62
+
63
+ * public/stylesheets/blog.css
64
+ - a CSS file for this sample.
65
+
66
+ * po/* (blog.po[t]/lang_helper.po[t])
67
+ - Catalog files which translators edit. They are convert to
68
+ mofiles by "rake makemo".
69
+ - blog.po[t] is for blog_controller and its views.
70
+ - lang_helper.po[t] is for lang_helper.
71
+
72
+ * db/mysql.sql
73
+ - a sql to create a database table for mysql.
74
+
75
+ * db/postgresql.sql
76
+ - a sql to create a database table for postgresql.
77
+
78
+ * others
79
+ - Generated by rails and I've not touched them.
@@ -0,0 +1,212 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+
5
+ $VERBOSE = nil
6
+ TEST_CHANGES_SINCE = Time.now - 600
7
+
8
+ desc "Run all the tests on a fresh test database"
9
+ task :default => [ :test_units, :test_functional ]
10
+
11
+
12
+ desc 'Require application environment.'
13
+ task :environment do
14
+ unless defined? RAILS_ROOT
15
+ require File.dirname(__FILE__) + '/config/environment'
16
+ end
17
+ end
18
+
19
+ desc "Generate API documentation, show coding stats"
20
+ task :doc => [ :appdoc, :stats ]
21
+
22
+
23
+ # Look up tests for recently modified sources.
24
+ def recent_tests(source_pattern, test_path, touched_since = 10.minutes.ago)
25
+ FileList[source_pattern].map do |path|
26
+ if File.mtime(path) > touched_since
27
+ test = "#{test_path}/#{File.basename(path, '.rb')}_test.rb"
28
+ test if File.exists?(test)
29
+ end
30
+ end.compact
31
+ end
32
+
33
+ desc 'Test recent changes.'
34
+ Rake::TestTask.new(:recent => [ :clone_structure_to_test ]) do |t|
35
+ since = TEST_CHANGES_SINCE
36
+ touched = FileList['test/**/*_test.rb'].select { |path| File.mtime(path) > since } +
37
+ recent_tests('app/models/*.rb', 'test/unit', since) +
38
+ recent_tests('app/controllers/*.rb', 'test/functional', since)
39
+
40
+ t.libs << 'test'
41
+ t.verbose = true
42
+ t.test_files = touched.uniq
43
+ end
44
+ task :test_recent => [ :clone_structure_to_test ]
45
+
46
+ desc "Run the unit tests in test/unit"
47
+ Rake::TestTask.new("test_units") { |t|
48
+ t.libs << "test"
49
+ t.pattern = 'test/unit/**/*_test.rb'
50
+ t.verbose = true
51
+ }
52
+ task :test_units => [ :clone_structure_to_test ]
53
+
54
+ desc "Run the functional tests in test/functional"
55
+ Rake::TestTask.new("test_functional") { |t|
56
+ t.libs << "test"
57
+ t.pattern = 'test/functional/**/*_test.rb'
58
+ t.verbose = true
59
+ }
60
+ task :test_functional => [ :clone_structure_to_test ]
61
+
62
+ desc "Generate documentation for the application"
63
+ Rake::RDocTask.new("appdoc") { |rdoc|
64
+ rdoc.rdoc_dir = 'doc/app'
65
+ rdoc.title = "Rails Application Documentation"
66
+ rdoc.options << '--line-numbers --inline-source'
67
+ rdoc.rdoc_files.include('doc/README_FOR_APP')
68
+ rdoc.rdoc_files.include('app/**/*.rb')
69
+ }
70
+
71
+ desc "Generate documentation for the Rails framework"
72
+ Rake::RDocTask.new("apidoc") { |rdoc|
73
+ rdoc.rdoc_dir = 'doc/api'
74
+ rdoc.template = "#{ENV['template']}.rb" if ENV['template']
75
+ rdoc.title = "Rails Framework Documentation"
76
+ rdoc.options << '--line-numbers --inline-source'
77
+ rdoc.rdoc_files.include('README')
78
+ rdoc.rdoc_files.include('CHANGELOG')
79
+ rdoc.rdoc_files.include('vendor/rails/railties/CHANGELOG')
80
+ rdoc.rdoc_files.include('vendor/rails/railties/MIT-LICENSE')
81
+ rdoc.rdoc_files.include('vendor/rails/activerecord/README')
82
+ rdoc.rdoc_files.include('vendor/rails/activerecord/CHANGELOG')
83
+ rdoc.rdoc_files.include('vendor/rails/activerecord/lib/active_record/**/*.rb')
84
+ rdoc.rdoc_files.exclude('vendor/rails/activerecord/lib/active_record/vendor/*')
85
+ rdoc.rdoc_files.include('vendor/rails/actionpack/README')
86
+ rdoc.rdoc_files.include('vendor/rails/actionpack/CHANGELOG')
87
+ rdoc.rdoc_files.include('vendor/rails/actionpack/lib/action_controller/**/*.rb')
88
+ rdoc.rdoc_files.include('vendor/rails/actionpack/lib/action_view/**/*.rb')
89
+ rdoc.rdoc_files.include('vendor/rails/actionmailer/README')
90
+ rdoc.rdoc_files.include('vendor/rails/actionmailer/CHANGELOG')
91
+ rdoc.rdoc_files.include('vendor/rails/actionmailer/lib/action_mailer/base.rb')
92
+ rdoc.rdoc_files.include('vendor/rails/actionwebservice/README')
93
+ rdoc.rdoc_files.include('vendor/rails/actionwebservice/CHANGELOG')
94
+ rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service.rb')
95
+ rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/*.rb')
96
+ rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/api/*.rb')
97
+ rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/client/*.rb')
98
+ rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/container/*.rb')
99
+ rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/dispatcher/*.rb')
100
+ rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/protocol/*.rb')
101
+ rdoc.rdoc_files.include('vendor/rails/actionwebservice/lib/action_web_service/support/*.rb')
102
+ rdoc.rdoc_files.include('vendor/rails/activesupport/README')
103
+ rdoc.rdoc_files.include('vendor/rails/activesupport/CHANGELOG')
104
+ rdoc.rdoc_files.include('vendor/rails/activesupport/lib/active_support/**/*.rb')
105
+ }
106
+
107
+ desc "Report code statistics (KLOCs, etc) from the application"
108
+ task :stats => [ :environment ] do
109
+ require 'code_statistics'
110
+ CodeStatistics.new(
111
+ ["Helpers", "app/helpers"],
112
+ ["Controllers", "app/controllers"],
113
+ ["APIs", "app/apis"],
114
+ ["Components", "components"],
115
+ ["Functionals", "test/functional"],
116
+ ["Models", "app/models"],
117
+ ["Units", "test/unit"]
118
+ ).to_s
119
+ end
120
+
121
+ desc "Recreate the test databases from the development structure"
122
+ task :clone_structure_to_test => [ :db_structure_dump, :purge_test_database ] do
123
+ abcs = ActiveRecord::Base.configurations
124
+ case abcs["test"]["adapter"]
125
+ when "mysql"
126
+ ActiveRecord::Base.establish_connection(:test)
127
+ ActiveRecord::Base.connection.execute('SET foreign_key_checks = 0')
128
+ IO.readlines("db/#{RAILS_ENV}_structure.sql").join.split("\n\n").each do |table|
129
+ ActiveRecord::Base.connection.execute(table)
130
+ end
131
+ when "postgresql"
132
+ ENV['PGHOST'] = abcs["test"]["host"] if abcs["test"]["host"]
133
+ ENV['PGPORT'] = abcs["test"]["port"].to_s if abcs["test"]["port"]
134
+ ENV['PGPASSWORD'] = abcs["test"]["password"].to_s if abcs["test"]["password"]
135
+ `psql -U "#{abcs["test"]["username"]}" -f db/#{RAILS_ENV}_structure.sql #{abcs["test"]["database"]}`
136
+ when "sqlite", "sqlite3"
137
+ `#{abcs[RAILS_ENV]["adapter"]} #{abcs["test"]["dbfile"]} < db/#{RAILS_ENV}_structure.sql`
138
+ when "sqlserver"
139
+ `osql -E -S #{abcs["test"]["host"]} -d #{abcs["test"]["database"]} -i db\\#{RAILS_ENV}_structure.sql`
140
+ else
141
+ raise "Unknown database adapter '#{abcs["test"]["adapter"]}'"
142
+ end
143
+ end
144
+
145
+ desc "Dump the database structure to a SQL file"
146
+ task :db_structure_dump => :environment do
147
+ abcs = ActiveRecord::Base.configurations
148
+ case abcs[RAILS_ENV]["adapter"]
149
+ when "mysql"
150
+ ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
151
+ File.open("db/#{RAILS_ENV}_structure.sql", "w+") { |f| f << ActiveRecord::Base.connection.structure_dump }
152
+ when "postgresql"
153
+ ENV['PGHOST'] = abcs[RAILS_ENV]["host"] if abcs[RAILS_ENV]["host"]
154
+ ENV['PGPORT'] = abcs[RAILS_ENV]["port"].to_s if abcs[RAILS_ENV]["port"]
155
+ ENV['PGPASSWORD'] = abcs[RAILS_ENV]["password"].to_s if abcs[RAILS_ENV]["password"]
156
+ `pg_dump -U "#{abcs[RAILS_ENV]["username"]}" -s -x -O -f db/#{RAILS_ENV}_structure.sql #{abcs[RAILS_ENV]["database"]}`
157
+ when "sqlite", "sqlite3"
158
+ `#{abcs[RAILS_ENV]["adapter"]} #{abcs[RAILS_ENV]["dbfile"]} .schema > db/#{RAILS_ENV}_structure.sql`
159
+ when "sqlserver"
160
+ `scptxfr /s #{abcs[RAILS_ENV]["host"]} /d #{abcs[RAILS_ENV]["database"]} /I /f db\\#{RAILS_ENV}_structure.sql /q /A /r`
161
+ `scptxfr /s #{abcs[RAILS_ENV]["host"]} /d #{abcs[RAILS_ENV]["database"]} /I /F db\ /q /A /r`
162
+ else
163
+ raise "Unknown database adapter '#{abcs["test"]["adapter"]}'"
164
+ end
165
+ end
166
+
167
+ desc "Empty the test database"
168
+ task :purge_test_database => :environment do
169
+ abcs = ActiveRecord::Base.configurations
170
+ case abcs["test"]["adapter"]
171
+ when "mysql"
172
+ ActiveRecord::Base.establish_connection(:test)
173
+ ActiveRecord::Base.connection.recreate_database(abcs["test"]["database"])
174
+ when "postgresql"
175
+ ENV['PGHOST'] = abcs["test"]["host"] if abcs["test"]["host"]
176
+ ENV['PGPORT'] = abcs["test"]["port"].to_s if abcs["test"]["port"]
177
+ ENV['PGPASSWORD'] = abcs["test"]["password"].to_s if abcs["test"]["password"]
178
+ `dropdb -U "#{abcs["test"]["username"]}" #{abcs["test"]["database"]}`
179
+ `createdb -T template0 -U "#{abcs["test"]["username"]}" #{abcs["test"]["database"]}`
180
+ when "sqlite","sqlite3"
181
+ File.delete(abcs["test"]["dbfile"]) if File.exist?(abcs["test"]["dbfile"])
182
+ when "sqlserver"
183
+ dropfkscript = "#{abcs["test"]["host"]}.#{abcs["test"]["database"]}.DP1".gsub(/\\/,'-')
184
+ `osql -E -S #{abcs["test"]["host"]} -d #{abcs["test"]["database"]} -i db\\#{dropfkscript}`
185
+ `osql -E -S #{abcs["test"]["host"]} -d #{abcs["test"]["database"]} -i db\\#{RAILS_ENV}_structure.sql`
186
+ else
187
+ raise "Unknown database adapter '#{abcs["test"]["adapter"]}'"
188
+ end
189
+ end
190
+
191
+ desc "Clears all *.log files in log/"
192
+ task :clear_logs => :environment do
193
+ FileList["log/*.log"].each do |log_file|
194
+ f = File.open(log_file, "w")
195
+ f.close
196
+ end
197
+ end
198
+
199
+ desc "Migrate the database according to the migrate scripts in db/migrate (only supported on PG/MySQL). A specific version can be targetted with VERSION=x"
200
+ task :migrate => :environment do
201
+ ActiveRecord::Migrator.migrate(File.dirname(__FILE__) + '/db/migrate/', ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
202
+ end
203
+
204
+ #
205
+ # Added for Ruby-GetText-Package
206
+ #
207
+ require 'gettext/rmsgfmt'
208
+ desc "Create mo-files for L10n"
209
+ task :makemo do
210
+ GetText.create_mofiles(true, "po", "locale")
211
+ end
212
+