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,37 @@
1
+ # application.rb - a sample script for Ruby on Rails
2
+ #
3
+ # Copyright (C) 2005 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as Ruby-GetText-Package.
6
+
7
+ # Require 'gettext/rails' first.
8
+ require 'gettext/rails'
9
+
10
+ # lang_helper is sample helper. It has its own textdomain(lang_helper).
11
+ # (See vendor/lang_helper.rb).
12
+ require 'lang_helper'
13
+
14
+ class ApplicationController < ActionController::Base
15
+ # for lang_helper.
16
+ helper LangHelper
17
+ include LangHelper
18
+
19
+ # Initialize GetText and Content-Type.
20
+ # You need to call this once a request from WWW browser.
21
+ # You can select the scope of the textdomain.
22
+ # 1. If you call bindtextdomain in ApplicationControler,
23
+ # The textdomain apply whole your application.
24
+ # 2. If you call bindtextdomain in each controllers
25
+ # (In this sample, blog_controller.rb is applicable)
26
+ # The textdomains are applied to each controllers/views.
27
+ before_filter :init_gettext
28
+ def init_gettext
29
+ # The locale is set automatically or use Cookie value, parameter "lang".
30
+ bindtextdomain("blog", request.cgi) #You need to pass CGI object first.
31
+
32
+ # Or set locale forcely.
33
+ #bindtextdomain("blog", request.cgi, "ja")
34
+
35
+ @headers["Content-Type"] = "text/html; charset=UTF-8"
36
+ end
37
+ end
@@ -0,0 +1,62 @@
1
+ # blog_controller.rb - a sample script for Ruby on Rails
2
+ #
3
+ # Copyright (C) 2005 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as Ruby-GetText-Package.
6
+
7
+ class BlogController < ApplicationController
8
+ # If you want to have textdomains each as controllers.
9
+ # You need to bind textdomain here.
10
+
11
+ #before_filter :init_gettext
12
+ #def init_gettext
13
+ # bindtextdomain("blog", request.cgi) #You need to pass CGI object first.
14
+ # @headers["Content-Type"] = "text/html; charset=UTF-8"
15
+ #end
16
+
17
+ def index
18
+ list
19
+ render :action => 'list'
20
+ end
21
+
22
+ def list
23
+ @articles = Article.find(:all, :order => 'lastupdate desc, id desc')
24
+ end
25
+
26
+ def show
27
+ @article = Article.find(params[:id])
28
+ end
29
+
30
+ def new
31
+ @article = Article.new
32
+ end
33
+
34
+ def create
35
+ @article = Article.new(params[:article])
36
+ if @article.save
37
+ flash[:notice] = _('Article was successfully created.')
38
+ redirect_to :action => 'list'
39
+ else
40
+ render :action => 'new'
41
+ end
42
+ end
43
+
44
+ def edit
45
+ @article = Article.find(params[:id])
46
+ end
47
+
48
+ def update
49
+ @article = Article.find(params[:id])
50
+ if @article.update_attributes(params[:article])
51
+ flash[:notice] = _('Article was successfully updated.')
52
+ redirect_to :action => 'show', :id => @article
53
+ else
54
+ render :action => 'edit'
55
+ end
56
+ end
57
+
58
+ def destroy
59
+ Article.find(params[:id]).destroy
60
+ redirect_to :action => 'list'
61
+ end
62
+ end
@@ -0,0 +1,3 @@
1
+ # The methods added to this helper will be available to all templates in the application.
2
+ module ApplicationHelper
3
+ end
@@ -0,0 +1,61 @@
1
+ # blog_helper.rb - a sample script for Ruby on Rails
2
+ #
3
+ # Copyright (C) 2005 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as Ruby-GetText-Package.
6
+
7
+ #
8
+ # BlogHelper is bound a textdomain which is bound in application.rb or
9
+ # blog_controller.rb.
10
+ # So you don't need to call bindtextdomain here.
11
+ #
12
+
13
+ module BlogHelper
14
+ def show_article(article, show_link = true)
15
+ ret = %Q[
16
+ <h2>#{article["title"]} (#{article["lastupdate"]})</h2>
17
+ <pre>#{article["description"]}</pre>
18
+ ]
19
+ if show_link
20
+ ret += %Q[<p style="text-align:right;margin-right:3em">#{link_to(_("Show"), :action => 'show', :id => article)}</p>]
21
+ end
22
+ ret
23
+ end
24
+
25
+ def show_list(articles)
26
+ ret = ""
27
+ articles.each_with_index do |article, index|
28
+ ret << %Q[<li>#{article["lastupdate"]}: #{link_to((h article["title"]), :action => 'show', :id => article)}</li>]
29
+ break if index > 9
30
+ end
31
+ ret
32
+ end
33
+
34
+ def show_navigation
35
+ articles = BlogController.new.list
36
+ %Q[
37
+ <div class="navigation">
38
+ <img src="http://web.rubyonrails.com/images/rails_logo_remix.gif" />
39
+ <div class="window">
40
+ #{show_language}
41
+ </div>
42
+ <div class="window">
43
+ <h4>] + _("Ruby Links") + %Q[</h4>
44
+ <dl>
45
+ <li><a href="http://www.ruby-lang.org/">Ruby</a></li>
46
+ <li><a href="http://rubyforge.org/projects/gettext/">Ruby-GetText-Package</a></li>
47
+ <li><a href="http://wiki.rubyonrails.com/">Ruby on Rails Wiki</a></li>
48
+ </dl>
49
+ </div>
50
+ <div class="window">
51
+ <h4>] + _("Old articles") + %Q[</h4>
52
+ <p>
53
+ <dl>
54
+ #{show_list(articles)}
55
+ </dl>
56
+ </p>
57
+ </div>
58
+ </div>
59
+ ]
60
+ end
61
+ end
@@ -0,0 +1,2 @@
1
+ class Article < ActiveRecord::Base
2
+ end
@@ -0,0 +1,25 @@
1
+ <%
2
+ # _form.rhtml - a sample script for Ruby on Rails
3
+ #
4
+ # Copyright (C) 2005 Masao Mutoh
5
+ #
6
+ # This file is distributed under the same license as Ruby-GetText-Package.
7
+
8
+ # Views are bound a textdomain which is bound in application.rb or
9
+ # blog_controller.rb.
10
+ # So you don't need to call bindtextdomain here.
11
+ %>
12
+
13
+ <%= error_messages_for 'article' %>
14
+
15
+ <!--[form:article]-->
16
+ <p><label for="article_lastupdate"><%= _("Lastupdate") %></label><br/>
17
+ <%= date_select 'article', 'lastupdate', :use_month_numbers => true %></p>
18
+ <p><label for="article_title"><%= _("Title") %></label><br/>
19
+ <%= text_field 'article', 'title' %></p>
20
+
21
+ <p><label for="article_description"><%= _("Description") %></label><br/>
22
+ <%= text_area 'article', 'description' %></p>
23
+
24
+ <!--[eoform:article]-->
25
+
@@ -0,0 +1,22 @@
1
+ <%
2
+ # edit.rhtml - a sample script for Ruby on Rails
3
+ #
4
+ # Copyright (C) 2005 Masao Mutoh
5
+ #
6
+ # This file is distributed under the same license as Ruby-GetText-Package.
7
+
8
+ # Views are bound a textdomain which is bound in application.rb or
9
+ # blog_controller.rb.
10
+ # So you don't need to call bindtextdomain here.
11
+ %>
12
+ <h1><%= _('Editing article') %></h1>
13
+
14
+ <%= start_form_tag :action => 'update', :id => @article %>
15
+ <%= render_partial 'form' %>
16
+ <p><%= submit_tag _('Edit') %></p>
17
+ <%= end_form_tag %>
18
+ <p>
19
+ <%= link_to _('Show'), :action => 'show', :id => @article %> |
20
+ <%= link_to _('Destroy'), {:action => 'destroy', :id => @article}, :confirm => _('Are you sure?') %> |
21
+ <%= link_to _('Back'), :action => 'list' %>
22
+ </p>
@@ -0,0 +1,30 @@
1
+ <%
2
+ # list.rhtml - a sample script for Ruby on Rails
3
+ #
4
+ # Copyright (C) 2005 Masao Mutoh
5
+ #
6
+ # This file is distributed under the same license as Ruby-GetText-Package.
7
+
8
+ # Views are bound a textdomain which is bound in application.rb or
9
+ # blog_controller.rb.
10
+ # So you don't need to call bindtextdomain here.
11
+ %>
12
+
13
+ <h1><%= _("GetText Sample Blog on RoR") %></h1>
14
+ <p style="text-align:right">
15
+ <%= link_to _('New article'), :action => 'new' %>
16
+ </p>
17
+ <% if @articles.size == 0 %>
18
+ <p><%= _("No articles were found.") %></p>
19
+ <% else %>
20
+ <%
21
+ @articles.each_with_index do |article, index|
22
+ %>
23
+ <%= show_article(article) %>
24
+ <%
25
+ break if index > 1
26
+ end
27
+ %>
28
+ <% end %>
29
+
30
+
@@ -0,0 +1,21 @@
1
+ <%
2
+ # new.rhtml - a sample script for Ruby on Rails
3
+ #
4
+ # Copyright (C) 2005 Masao Mutoh
5
+ #
6
+ # This file is distributed under the same license as Ruby-GetText-Package.
7
+
8
+ # Views are bound a textdomain which is bound in application.rb or
9
+ # blog_controller.rb.
10
+ # So you don't need to call bindtextdomain here.
11
+ %>
12
+
13
+ <h1><%= _('New article') %></h1>
14
+
15
+ <%= start_form_tag :action => 'create' %>
16
+ <%= render_partial 'form' %>
17
+ <p><%= submit_tag _('Create') %></p>
18
+ <%= end_form_tag %>
19
+ <p>
20
+ <%= link_to _('Back'), :action => 'list' %>
21
+ </p>
@@ -0,0 +1,18 @@
1
+ <%
2
+ # show.rhtml - a sample script for Ruby on Rails
3
+ #
4
+ # Copyright (C) 2005 Masao Mutoh
5
+ #
6
+ # This file is distributed under the same license as Ruby-GetText-Package.
7
+
8
+ # Views are bound a textdomain which is bound in application.rb or
9
+ # blog_controller.rb.
10
+ # So you don't need to call bindtextdomain here.
11
+ %>
12
+
13
+ <h1><%= _("GetText Sample Blog on RoR") %></h1>
14
+ <%= show_article(@article, false) %>
15
+ <p>
16
+ <%= link_to _('Edit'), :action => 'edit', :id => @article %> |
17
+ <%= link_to _('Back'), :action => 'list' %>
18
+ </p>
@@ -0,0 +1,36 @@
1
+ <%
2
+ # blog.rhtml - a sample script for Ruby on Rails
3
+ #
4
+ # Copyright (C) 2005 Masao Mutoh
5
+ #
6
+ # This file is distributed under the same license as Ruby-GetText-Package.
7
+
8
+ # Views are bound a textdomain which is bound in application.rb or
9
+ # blog_controller.rb.
10
+ # So you don't need to call bindtextdomain here.
11
+ %>
12
+ <html>
13
+ <head>
14
+ <title><%= _('GetText Sample Blog on RoR') %></title>
15
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
16
+ <%= stylesheet_link_tag 'scaffold' %>
17
+ <%= stylesheet_link_tag 'blog' %>
18
+ </head>
19
+ <body>
20
+ <div class="main">
21
+ <% if flash[:notice] %>
22
+ <p class="notice"><%= flash[:notice] %></p>
23
+ <% end %>
24
+
25
+ <%= @content_for_layout %>
26
+
27
+ <div class="copyright">
28
+ Copyright (C) 2005 Masao Mutoh
29
+ </div>
30
+
31
+ </div>
32
+
33
+ <%= show_navigation %>
34
+
35
+ </body>
36
+ </html>
@@ -0,0 +1,32 @@
1
+ development:
2
+ adapter: mysql
3
+ socket: /var/lib/mysql/mysql.sock
4
+ # socket: /tmp/mysql.sock
5
+ database: blog
6
+ host: localhost
7
+ username: root
8
+ password:
9
+
10
+ #development:
11
+ # adapter: postgresql
12
+ # database: blog
13
+ # host: localhost
14
+ # username: mutoh
15
+ # password:
16
+
17
+ # Warning: The database defined as 'test' will be erased and
18
+ # re-generated from your development database when you run 'rake'.
19
+ # Do not set this db to the same as development or production.
20
+ test:
21
+ adapter: mysql
22
+ database: rails_test
23
+ host: localhost
24
+ username: root
25
+ password:
26
+
27
+ production:
28
+ adapter: mysql
29
+ database: rails_production
30
+ host: localhost
31
+ username: root
32
+ password:
@@ -0,0 +1,88 @@
1
+ # Load the Rails framework and configure your application.
2
+ # You can include your own configuration at the end of this file.
3
+ #
4
+ # Be sure to restart your webserver when you modify this file.
5
+
6
+ $KCODE = "u"
7
+
8
+ # The path to the root directory of your application.
9
+ RAILS_ROOT = File.join(File.dirname(__FILE__), '..')
10
+
11
+ # The environment your application is currently running. Don't set
12
+ # this here; put it in your webserver's configuration as the RAILS_ENV
13
+ # environment variable instead.
14
+ #
15
+ # See config/environments/*.rb for environment-specific configuration.
16
+ RAILS_ENV = ENV['RAILS_ENV'] || 'development'
17
+
18
+
19
+ # Load the Rails framework. Mock classes for testing come first.
20
+ ADDITIONAL_LOAD_PATHS = ["#{RAILS_ROOT}/test/mocks/#{RAILS_ENV}"]
21
+
22
+ # Then model subdirectories.
23
+ ADDITIONAL_LOAD_PATHS.concat(Dir["#{RAILS_ROOT}/app/models/[_a-z]*"])
24
+ ADDITIONAL_LOAD_PATHS.concat(Dir["#{RAILS_ROOT}/components/[_a-z]*"])
25
+
26
+ # Followed by the standard includes.
27
+ ADDITIONAL_LOAD_PATHS.concat %w(
28
+ app
29
+ app/models
30
+ app/controllers
31
+ app/helpers
32
+ app/apis
33
+ components
34
+ config
35
+ lib
36
+ vendor
37
+ vendor/rails/railties
38
+ vendor/rails/railties/lib
39
+ vendor/rails/actionpack/lib
40
+ vendor/rails/activesupport/lib
41
+ vendor/rails/activerecord/lib
42
+ vendor/rails/actionmailer/lib
43
+ vendor/rails/actionwebservice/lib
44
+ ).map { |dir| "#{RAILS_ROOT}/#{dir}" }.select { |dir| File.directory?(dir) }
45
+
46
+ # Prepend to $LOAD_PATH
47
+ ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) }
48
+
49
+ # Require Rails libraries.
50
+ require 'rubygems' unless File.directory?("#{RAILS_ROOT}/vendor/rails")
51
+
52
+ require 'active_support'
53
+ require 'active_record'
54
+ require 'action_controller'
55
+ require 'action_mailer'
56
+ require 'action_web_service'
57
+
58
+ # Environment-specific configuration.
59
+ require_dependency "environments/#{RAILS_ENV}"
60
+ ActiveRecord::Base.configurations = File.open("#{RAILS_ROOT}/config/database.yml") { |f| YAML::load(f) }
61
+ ActiveRecord::Base.establish_connection
62
+
63
+
64
+ # Configure defaults if the included environment did not.
65
+ begin
66
+ RAILS_DEFAULT_LOGGER = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log")
67
+ RAILS_DEFAULT_LOGGER.level = (RAILS_ENV == 'production' ? Logger::INFO : Logger::DEBUG)
68
+ rescue StandardError
69
+ RAILS_DEFAULT_LOGGER = Logger.new(STDERR)
70
+ RAILS_DEFAULT_LOGGER.level = Logger::WARN
71
+ RAILS_DEFAULT_LOGGER.warn(
72
+ "Rails Error: Unable to access log file. Please ensure that log/#{RAILS_ENV}.log exists and is chmod 0666. " +
73
+ "The log level has been raised to WARN and the output directed to STDERR until the problem is fixed."
74
+ )
75
+ end
76
+
77
+ [ActiveRecord, ActionController, ActionMailer].each { |mod| mod::Base.logger ||= RAILS_DEFAULT_LOGGER }
78
+ [ActionController, ActionMailer].each { |mod| mod::Base.template_root ||= "#{RAILS_ROOT}/app/views/" }
79
+
80
+ # Set up routes.
81
+ ActionController::Routing::Routes.reload
82
+
83
+ Controllers = Dependencies::LoadingModule.root(
84
+ File.join(RAILS_ROOT, 'app', 'controllers'),
85
+ File.join(RAILS_ROOT, 'components')
86
+ )
87
+
88
+ # Include your app's configuration here: