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
data/bin/rgettext ADDED
@@ -0,0 +1,22 @@
1
+ #! /usr/bin/ruby
2
+ =begin
3
+ rgettext - ruby version of xgettext
4
+
5
+ Copyright (C) 2005 Masao Mutoh
6
+
7
+ You may redistribute it and/or modify it under the same
8
+ license terms as Ruby.
9
+ =end
10
+
11
+ begin
12
+ require 'gettext/rgettext'
13
+ rescue LoadError
14
+ begin
15
+ require 'rubygems'
16
+ require_gem 'gettext/rgettext'
17
+ rescue LoadError
18
+ raise 'Ruby-GetText-Package are not installed.'
19
+ end
20
+ end
21
+
22
+ GetText.rgettext
data/bin/rmsgfmt ADDED
@@ -0,0 +1,22 @@
1
+ #! /usr/bin/ruby
2
+ =begin
3
+ rgettext - ruby version of xgettext
4
+
5
+ Copyright (C) 2005 Masao Mutoh
6
+
7
+ You may redistribute it and/or modify it under the same
8
+ license terms as Ruby.
9
+ =end
10
+
11
+ begin
12
+ require 'gettext/rmsgfmt'
13
+ rescue LoadError
14
+ begin
15
+ require 'rubygems'
16
+ require_gem 'gettext/rmsgfmt'
17
+ rescue LoadError
18
+ raise 'Ruby-GetText-Package are not installed.'
19
+ end
20
+ end
21
+
22
+ GetText.rmsgfmt
@@ -0,0 +1,3 @@
1
+ MANIFEST
2
+ _locale.c
3
+ extconf.rb
@@ -0,0 +1,86 @@
1
+ /* -*- c-file-style: "ruby"; tab-width: 4 -*-
2
+ *
3
+ * Copyright (C) 2002-2005 Masao Mutoh
4
+ *
5
+ * You may redistribute it and/or modify it under the same
6
+ * license terms as Ruby.
7
+ *
8
+ * $Id: _locale.c,v 1.2 2005/08/20 17:05:34 mutoh Exp $
9
+ */
10
+
11
+ #include "ruby.h"
12
+
13
+ #if defined HAVE_WINDOWS_H
14
+ # include <windows.h>
15
+ #else
16
+ # if defined HAVE_SETLOCALE
17
+ # include <locale.h>
18
+ # endif
19
+ # if defined HAVE_NL_LANGINFO
20
+ # include <langinfo.h>
21
+ # endif
22
+ #endif
23
+ #ifndef StringValuePtr
24
+ #define StringValuePtr(s) STR2CSTR(s)
25
+ #endif
26
+
27
+ #if defined HAVE_WINDOWS_H
28
+ static VALUE
29
+ gt_locale_id_win32(self)
30
+ VALUE self;
31
+ {
32
+ int lcid, pri_id, sub_id;
33
+ lcid = GetUserDefaultLangID();
34
+ pri_id = lcid & 0x3ff;
35
+ sub_id = lcid >> 10;
36
+ return rb_assoc_new(INT2FIX(pri_id), INT2FIX(sub_id));
37
+ }
38
+ #endif
39
+ static VALUE
40
+ gt_setlocale(self, type, locale)
41
+ VALUE self, type, locale;
42
+ {
43
+ # if defined HAVE_SETLOCALE
44
+ char* ret = setlocale(NUM2INT(type),
45
+ NIL_P(locale) ? NULL : StringValuePtr(locale));
46
+ return ret == NULL ? rb_str_new2("C") : rb_str_new2(ret);
47
+ # else
48
+ return rb_str_new2("C");
49
+ # endif
50
+ }
51
+
52
+ static VALUE
53
+ gt_codeset(self)
54
+ VALUE self;
55
+ {
56
+ #if defined HAVE_WINDOWS_H
57
+ char buf[2 + 10 + 1];
58
+ sprintf (buf, "CP%u", GetACP ());
59
+ return rb_str_new2(buf);
60
+ #elif defined HAVE_NL_LANGINFO
61
+ return rb_str_new2(nl_langinfo(CODESET));
62
+ #else
63
+ return rb_str_new2("UTF-8");
64
+ #endif
65
+ }
66
+
67
+ void Init__locale()
68
+ {
69
+ VALUE mLocale = rb_define_module("Locale");
70
+
71
+ #if defined HAVE_WINDOWS_H
72
+ rb_define_module_function(mLocale, "__locale_id", gt_locale_id_win32, 0);
73
+ #endif
74
+ rb_define_module_function(mLocale, "set", gt_setlocale, 2);
75
+ rb_define_module_function(mLocale, "codeset", gt_codeset, 0);
76
+ # if defined HAVE_SETLOCALE
77
+ rb_define_const(mLocale, "ALL", INT2NUM(LC_ALL));
78
+ rb_define_const(mLocale, "COLLATE", INT2NUM(LC_COLLATE));
79
+ rb_define_const(mLocale, "CTYPE", INT2NUM(LC_CTYPE));
80
+ rb_define_const(mLocale, "MESSAGES", INT2NUM(LC_MESSAGES));
81
+ rb_define_const(mLocale, "MONETARY", INT2NUM(LC_MONETARY));
82
+ rb_define_const(mLocale, "NUMERIC", INT2NUM(LC_NUMERIC));
83
+ rb_define_const(mLocale, "TIME", INT2NUM(LC_TIME));
84
+ #endif
85
+
86
+ }
@@ -0,0 +1,20 @@
1
+ =begin
2
+ extconf.rb
3
+
4
+ Copyright (C) 2002,2003 Masao Mutoh <mutoh@highway.ne.jp>
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ $Id: extconf.rb,v 1.1.1.1 2005/08/13 02:38:09 mutoh Exp $
10
+ =end
11
+
12
+ require 'mkmf'
13
+
14
+ if RUBY_PLATFORM =~ /cygwin|mingw|mswin32|bccwin32/
15
+ have_header 'windows.h'
16
+ else
17
+ have_func 'setlocale'
18
+ have_func 'nl_langinfo'
19
+ end
20
+ create_makefile '_locale'
data/lib/gettext.rb ADDED
@@ -0,0 +1,127 @@
1
+ =begin
2
+ gettext.rb - GetText module
3
+
4
+ Copyright (C) 2001-2005 Masao Mutoh
5
+ Copyright (C) 2001-2003 Masahiro Sakai
6
+
7
+ Masao Mutoh <mutoh@highway.ne.jp>
8
+ Masahiro Sakai <s01397ms@sfc.keio.ac.jp>
9
+
10
+ You may redistribute it and/or modify it under the same
11
+ license terms as Ruby.
12
+
13
+ $Id: gettext.rb,v 1.2 2005/08/20 17:05:34 mutoh Exp $
14
+ =end
15
+
16
+ require 'rbconfig'
17
+ require 'gettext/version'
18
+ require 'gettext/mo'
19
+ require 'gettext/locale'
20
+ require 'gettext/textdomain'
21
+
22
+ module GetText
23
+ class NoboundTextDomainError < RuntimeError
24
+ end
25
+
26
+ @@__textdomain = Hash.new
27
+ @@__textdomain_key = Hash.new
28
+
29
+ @@output_charset = nil
30
+
31
+ def bindtextdomain(domainname, path = nil, locale = nil, charset = nil)
32
+ locale ||= Locale.get
33
+ if @@output_charset
34
+ charset = @@output_charset
35
+ else
36
+ charset ||= ENV["OUTPUT_CHARSET"] ? ENV["OUTPUT_CHARSET"] : Locale.codeset
37
+ @@output_charset = charset
38
+ end
39
+ src = callersrc
40
+ $stderr.print "bind the domain '#{domainname}' to '#{src}'. charset is #{charset}\n" if $DEBUG
41
+ textdomain = @@__textdomain[src]
42
+ unless textdomain
43
+ textdomain = @@__textdomain_key[domainname]
44
+ @@__textdomain[src] = textdomain
45
+ end
46
+ if ! textdomain or ! textdomain.same_property?(domainname, path, locale, charset)
47
+ textdomain = TextDomain.new(domainname, path, locale, charset)
48
+ @@__textdomain_key[domainname] = textdomain
49
+ @@__textdomain[src] = textdomain
50
+ end
51
+ @@__textdomain[src]
52
+ end
53
+
54
+ def textdomain(domainname)
55
+ src = callersrc
56
+ textdomain = @@__textdomain_key[domainname]
57
+ raise NoboundTextDomainError, "#{domainname} is not bound." unless textdomain
58
+ @@__textdomain[src] = textdomain
59
+ $stderr.print "Use the domain '#{domainname}' to '#{src}'. charset is #{textdomain.charset}\n" if $DEBUG
60
+ @@__textdomain[src]
61
+ end
62
+
63
+ def gettext(msgid)
64
+ textdomain = @@__textdomain[callersrc]
65
+ textdomain ? textdomain.gettext(msgid) : msgid
66
+ end
67
+
68
+ def ngettext(msgid, msgid_plural, n)
69
+ textdomain = @@__textdomain[callersrc]
70
+ textdomain ? textdomain.ngettext(msgid, msgid_plural, n) : msgid
71
+ end
72
+
73
+ def N_(msgid)
74
+ msgid
75
+ end
76
+
77
+ def sgettext(msgid, div = '|')
78
+ textdomain = @@__textdomain[callersrc]
79
+ if textdomain
80
+ msg = textdomain.gettext(msgid)
81
+ else
82
+ msg = msgid
83
+ end
84
+ if msg == msgid
85
+ if index = msg.rindex(div)
86
+ msg = msg[(index + 1)..-1]
87
+ end
88
+ end
89
+ msg
90
+ end
91
+
92
+ def callersrc
93
+ caller(2)[0].sub(/:\d+(?::in \`\S+\')?\Z/, '')
94
+ end
95
+
96
+ def locale=(locale)
97
+ textdomain = @@__textdomain[callersrc]
98
+ textdomain.set_locale(locale) if textdomain
99
+ locale
100
+ end
101
+
102
+ def output_charset=(charset)
103
+ @@output_charset = charset
104
+ end
105
+
106
+ def output_charset
107
+ @@output_charset
108
+ end
109
+
110
+ def charset=(cs)
111
+ textdomain = @@__textdomain[callersrc]
112
+ textdomain.set_charset(cs) if textdomain
113
+ end
114
+
115
+ alias :setlocale :locale=
116
+ alias :set_locale :locale=
117
+ alias :set_output_charset :output_charset=
118
+ alias :_ :gettext
119
+ alias :n_ :ngettext
120
+ alias :s_ :sgettext
121
+
122
+ module_function :bindtextdomain, :textdomain,
123
+ :N_, :gettext, :_, :ngettext, :n_,
124
+ :sgettext, :s_, :callersrc,
125
+ :setlocale, :set_locale, :locale=, :charset=,
126
+ :set_output_charset, :output_charset=, :output_charset
127
+ end
@@ -0,0 +1,83 @@
1
+ =begin
2
+ gettext/cgi.rb - GetText for CGI
3
+
4
+ Copyright (C) 2005 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ $Id: cgi.rb,v 1.2 2005/08/27 18:52:20 mutoh Exp $
10
+ =end
11
+
12
+ require 'cgi'
13
+ require 'gettext'
14
+
15
+ module Locale
16
+ alias :orig_get :get
17
+
18
+ @@cgi = nil
19
+
20
+ module_function
21
+ def cgi=(cgi)
22
+ @@cgi = cgi
23
+ end
24
+
25
+ def cgi
26
+ @@cgi = CGI.new unless @@cgi
27
+ @@cgi
28
+ end
29
+
30
+ def get
31
+ @@cgi = CGI.new unless @@cgi
32
+ if ret = @@cgi["lang"] and ret.size > 0
33
+ $stderr.print "query_string: lang = #{ret}\n" if $DEBUG
34
+ elsif ret = @@cgi.cookies["lang"][0]
35
+ print "cookie: lang = #{ret}\n" if $DEBUG
36
+ elsif lang = @@cgi.accept_language
37
+ $stderr.print "accept lanaugage: lang = #{lang}\n" if $DEBUG
38
+
39
+ lang = lang.split(',').first.split('-') rescue []
40
+ language = lang[0]
41
+ dialect = lang[1]
42
+ language = language ? language.downcase : 'en' # default is en
43
+ dialect = dialect ? "_#{dialect.upcase}" : ""
44
+ ret = "#{language}#{dialect}"
45
+ else
46
+ ret = "en"
47
+ end
48
+ $stderr.print "Locale.get = #{ret}\n" if $DEBUG
49
+ ret
50
+ end
51
+
52
+ def codeset
53
+ @@cgi = CGI.new unless @@cgi
54
+ codesets = @@cgi.accept_charset
55
+ if codesets
56
+ ary = codesets.split(',')
57
+ ary[0]
58
+ else
59
+ "UTF-8"
60
+ end
61
+ end
62
+
63
+ alias :charset :codeset
64
+ alias :set_cgi :cgi=
65
+
66
+ module_function :charset, :set_cgi
67
+ end
68
+
69
+ module GetText
70
+ def cgi=(cgi)
71
+ @cgi = cgi
72
+ Locale.cgi = cgi
73
+ end
74
+
75
+ def cgi
76
+ @cgi = Locale.cgi unless @cgi
77
+ @cgi
78
+ end
79
+
80
+ alias :set_cgi :cgi=
81
+
82
+ module_function :cgi=, :set_cgi, :cgi
83
+ end
@@ -0,0 +1,30 @@
1
+ =begin
2
+ gettext/erb.rb - Class-based container module for GetText
3
+
4
+ Copyright (C) 2005 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ $Id: container.rb,v 1.3 2005/08/22 17:24:33 mutoh Exp $
10
+ =end
11
+
12
+ require 'gettext'
13
+
14
+ module GetText
15
+ module Container
16
+ include GetText
17
+
18
+ alias :_bindtextdomain :bindtextdomain
19
+
20
+ def bindtextdomain(domainname, path = nil, locale = nil, charset = nil)
21
+ @gettext_container_domainname = domainname
22
+ _bindtextdomain(domainname, path, locale, charset)
23
+ end
24
+
25
+ def callersrc
26
+ @gettext_container_domainname
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,28 @@
1
+ =begin
2
+ gettext/erb.rb - GetText for ERB
3
+
4
+ Copyright (C) 2005 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ $Id: erb.rb,v 1.1.1.1 2005/08/13 02:38:09 mutoh Exp $
10
+ =end
11
+
12
+ require 'erb'
13
+ require 'gettext/container'
14
+
15
+ module GetText
16
+ module ErbContainer
17
+ include Container
18
+
19
+ def eval_src(rhtml)
20
+ erb = ERB.new(rhtml).src
21
+ eval(erb, binding)
22
+ end
23
+
24
+ def eval_file(rhtmlpath)
25
+ eval_src(IO.read(rhtmlpath))
26
+ end
27
+ end
28
+ end