experteer-gettext 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (424) hide show
  1. data/COPYING +55 -0
  2. data/ChangeLog +57 -0
  3. data/ChangeLog-1 +2016 -0
  4. data/NEWS-1 +414 -0
  5. data/README.rdoc +251 -0
  6. data/Rakefile +260 -0
  7. data/VERSION +2 -0
  8. data/bin/rgettext +24 -0
  9. data/bin/rmsgfmt +24 -0
  10. data/bin/rmsgmerge +24 -0
  11. data/gettext.gemspec +494 -0
  12. data/lib/gettext/cgi.rb +39 -0
  13. data/lib/gettext/class_info.rb +67 -0
  14. data/lib/gettext/core_ext/iconv.rb +112 -0
  15. data/lib/gettext/core_ext/string.rb +84 -0
  16. data/lib/gettext/locale_path.rb +123 -0
  17. data/lib/gettext/mofile.rb +330 -0
  18. data/lib/gettext/parser/erb.rb +54 -0
  19. data/lib/gettext/parser/glade.rb +100 -0
  20. data/lib/gettext/parser/ruby.rb +193 -0
  21. data/lib/gettext/poparser.rb +355 -0
  22. data/lib/gettext/textdomain.rb +179 -0
  23. data/lib/gettext/textdomain_group.rb +24 -0
  24. data/lib/gettext/textdomain_manager.rb +212 -0
  25. data/lib/gettext/tools/rgettext.rb +236 -0
  26. data/lib/gettext/tools/rmsgfmt.rb +84 -0
  27. data/lib/gettext/tools/rmsgmerge.rb +498 -0
  28. data/lib/gettext/tools.rb +195 -0
  29. data/lib/gettext/translation_target.rb +93 -0
  30. data/lib/gettext/utils.rb +37 -0
  31. data/lib/gettext/version.rb +12 -0
  32. data/lib/gettext.rb +312 -0
  33. data/po/bg/rgettext.po +130 -0
  34. data/po/bs/rgettext.po +131 -0
  35. data/po/ca/rgettext.po +129 -0
  36. data/po/cs/rgettext.po +132 -0
  37. data/po/de/rgettext.po +137 -0
  38. data/po/el/rgettext.po +128 -0
  39. data/po/eo/rgettext.po +129 -0
  40. data/po/es/rgettext.po +130 -0
  41. data/po/et/rgettext.po +127 -0
  42. data/po/fr/rgettext.po +133 -0
  43. data/po/hr/rgettext.po +131 -0
  44. data/po/hu/rgettext.po +129 -0
  45. data/po/it/rgettext.po +130 -0
  46. data/po/ja/rgettext.po +129 -0
  47. data/po/ko/rgettext.po +129 -0
  48. data/po/lv/rgettext.po +130 -0
  49. data/po/nb/rgettext.po +131 -0
  50. data/po/nl/rgettext.po +130 -0
  51. data/po/pt_BR/rgettext.po +132 -0
  52. data/po/rgettext.pot +121 -0
  53. data/po/ru/rgettext.po +131 -0
  54. data/po/sr/rgettext.po +130 -0
  55. data/po/sv/rgettext.po +123 -0
  56. data/po/ua/rgettext.po +134 -0
  57. data/po/vi/rgettext.po +128 -0
  58. data/po/zh/rgettext.po +129 -0
  59. data/po/zh_TW/rgettext.po +128 -0
  60. data/samples/README +16 -0
  61. data/samples/cgi/README +43 -0
  62. data/samples/cgi/Rakefile +27 -0
  63. data/samples/cgi/cookie.cgi +64 -0
  64. data/samples/cgi/gettext.css +116 -0
  65. data/samples/cgi/helloerb.rhtml +28 -0
  66. data/samples/cgi/helloerb1.cgi +58 -0
  67. data/samples/cgi/helloerb2.cgi +51 -0
  68. data/samples/cgi/hellolib.rb +20 -0
  69. data/samples/cgi/http.rb +51 -0
  70. data/samples/cgi/index.cgi +111 -0
  71. data/samples/cgi/other.rhtml +20 -0
  72. data/samples/cgi/po/bg/helloerb1.po +59 -0
  73. data/samples/cgi/po/bg/helloerb2.po +51 -0
  74. data/samples/cgi/po/bg/hellolib.po +23 -0
  75. data/samples/cgi/po/bg/main.po +83 -0
  76. data/samples/cgi/po/bs/helloerb1.po +59 -0
  77. data/samples/cgi/po/bs/helloerb2.po +51 -0
  78. data/samples/cgi/po/bs/hellolib.po +23 -0
  79. data/samples/cgi/po/bs/main.po +83 -0
  80. data/samples/cgi/po/ca/helloerb1.po +59 -0
  81. data/samples/cgi/po/ca/helloerb2.po +51 -0
  82. data/samples/cgi/po/ca/hellolib.po +23 -0
  83. data/samples/cgi/po/ca/main.po +83 -0
  84. data/samples/cgi/po/cs/helloerb1.po +61 -0
  85. data/samples/cgi/po/cs/helloerb2.po +52 -0
  86. data/samples/cgi/po/cs/hellolib.po +25 -0
  87. data/samples/cgi/po/cs/main.po +85 -0
  88. data/samples/cgi/po/de/helloerb1.po +61 -0
  89. data/samples/cgi/po/de/helloerb2.po +52 -0
  90. data/samples/cgi/po/de/hellolib.po +24 -0
  91. data/samples/cgi/po/de/main.po +86 -0
  92. data/samples/cgi/po/el/helloerb1.po +60 -0
  93. data/samples/cgi/po/el/helloerb2.po +51 -0
  94. data/samples/cgi/po/el/hellolib.po +23 -0
  95. data/samples/cgi/po/el/main.po +84 -0
  96. data/samples/cgi/po/eo/helloerb1.po +60 -0
  97. data/samples/cgi/po/eo/helloerb2.po +52 -0
  98. data/samples/cgi/po/eo/hellolib.po +24 -0
  99. data/samples/cgi/po/eo/main.po +84 -0
  100. data/samples/cgi/po/es/helloerb1.po +59 -0
  101. data/samples/cgi/po/es/helloerb2.po +50 -0
  102. data/samples/cgi/po/es/hellolib.po +22 -0
  103. data/samples/cgi/po/es/main.po +83 -0
  104. data/samples/cgi/po/fr/helloerb1.po +59 -0
  105. data/samples/cgi/po/fr/helloerb2.po +51 -0
  106. data/samples/cgi/po/fr/hellolib.po +22 -0
  107. data/samples/cgi/po/fr/main.po +85 -0
  108. data/samples/cgi/po/helloerb1.pot +60 -0
  109. data/samples/cgi/po/helloerb2.pot +52 -0
  110. data/samples/cgi/po/hellolib.pot +24 -0
  111. data/samples/cgi/po/hr/helloerb1.po +59 -0
  112. data/samples/cgi/po/hr/helloerb2.po +51 -0
  113. data/samples/cgi/po/hr/hellolib.po +23 -0
  114. data/samples/cgi/po/hr/main.po +83 -0
  115. data/samples/cgi/po/hu/helloerb1.po +59 -0
  116. data/samples/cgi/po/hu/helloerb2.po +51 -0
  117. data/samples/cgi/po/hu/hellolib.po +23 -0
  118. data/samples/cgi/po/hu/main.po +82 -0
  119. data/samples/cgi/po/it/helloerb1.po +60 -0
  120. data/samples/cgi/po/it/helloerb2.po +52 -0
  121. data/samples/cgi/po/it/hellolib.po +24 -0
  122. data/samples/cgi/po/it/main.po +84 -0
  123. data/samples/cgi/po/ja/helloerb1.po +60 -0
  124. data/samples/cgi/po/ja/helloerb2.po +52 -0
  125. data/samples/cgi/po/ja/hellolib.po +24 -0
  126. data/samples/cgi/po/ja/main.po +85 -0
  127. data/samples/cgi/po/ko/helloerb1.po +59 -0
  128. data/samples/cgi/po/ko/helloerb2.po +51 -0
  129. data/samples/cgi/po/ko/hellolib.po +23 -0
  130. data/samples/cgi/po/ko/main.po +84 -0
  131. data/samples/cgi/po/lv/helloerb1.po +65 -0
  132. data/samples/cgi/po/lv/helloerb2.po +52 -0
  133. data/samples/cgi/po/lv/hellolib.po +24 -0
  134. data/samples/cgi/po/lv/main.po +77 -0
  135. data/samples/cgi/po/main.pot +80 -0
  136. data/samples/cgi/po/nb/helloerb1.po +60 -0
  137. data/samples/cgi/po/nb/helloerb2.po +52 -0
  138. data/samples/cgi/po/nb/hellolib.po +24 -0
  139. data/samples/cgi/po/nb/main.po +84 -0
  140. data/samples/cgi/po/nl/helloerb1.po +61 -0
  141. data/samples/cgi/po/nl/helloerb2.po +52 -0
  142. data/samples/cgi/po/nl/hellolib.po +24 -0
  143. data/samples/cgi/po/nl/main.po +86 -0
  144. data/samples/cgi/po/pt_BR/helloerb1.po +59 -0
  145. data/samples/cgi/po/pt_BR/helloerb2.po +51 -0
  146. data/samples/cgi/po/pt_BR/hellolib.po +23 -0
  147. data/samples/cgi/po/pt_BR/main.po +84 -0
  148. data/samples/cgi/po/ru/helloerb1.po +58 -0
  149. data/samples/cgi/po/ru/helloerb2.po +50 -0
  150. data/samples/cgi/po/ru/hellolib.po +22 -0
  151. data/samples/cgi/po/ru/main.po +82 -0
  152. data/samples/cgi/po/sr/helloerb1.po +60 -0
  153. data/samples/cgi/po/sr/helloerb2.po +52 -0
  154. data/samples/cgi/po/sr/hellolib.po +24 -0
  155. data/samples/cgi/po/sr/main.po +80 -0
  156. data/samples/cgi/po/ua/helloerb1.po +62 -0
  157. data/samples/cgi/po/ua/helloerb2.po +54 -0
  158. data/samples/cgi/po/ua/hellolib.po +26 -0
  159. data/samples/cgi/po/ua/main.po +84 -0
  160. data/samples/cgi/po/vi/helloerb1.po +65 -0
  161. data/samples/cgi/po/vi/helloerb2.po +52 -0
  162. data/samples/cgi/po/vi/hellolib.po +24 -0
  163. data/samples/cgi/po/vi/main.po +77 -0
  164. data/samples/cgi/po/zh/helloerb1.po +60 -0
  165. data/samples/cgi/po/zh/helloerb2.po +52 -0
  166. data/samples/cgi/po/zh/hellolib.po +24 -0
  167. data/samples/cgi/po/zh/main.po +80 -0
  168. data/samples/cgi/po/zh_TW/helloerb1.po +67 -0
  169. data/samples/cgi/po/zh_TW/helloerb2.po +54 -0
  170. data/samples/cgi/po/zh_TW/hellolib.po +26 -0
  171. data/samples/cgi/po/zh_TW/main.po +79 -0
  172. data/samples/hello.rb +36 -0
  173. data/samples/hello2.rb +23 -0
  174. data/samples/hello_glade2.glade +70 -0
  175. data/samples/hello_glade2.rb +25 -0
  176. data/samples/hello_gtk2.rb +27 -0
  177. data/samples/hello_noop.rb +31 -0
  178. data/samples/hello_plural.rb +26 -0
  179. data/samples/hello_tk.rb +19 -0
  180. data/samples/makemo.rb +4 -0
  181. data/samples/po/bg/hello.po +24 -0
  182. data/samples/po/bg/hello2.po +31 -0
  183. data/samples/po/bg/hello_glade2.po +31 -0
  184. data/samples/po/bg/hello_gtk.po +23 -0
  185. data/samples/po/bg/hello_noop.po +27 -0
  186. data/samples/po/bg/hello_plural.po +25 -0
  187. data/samples/po/bg/hello_tk.po +23 -0
  188. data/samples/po/bs/hello.po +23 -0
  189. data/samples/po/bs/hello2.po +31 -0
  190. data/samples/po/bs/hello_glade2.po +31 -0
  191. data/samples/po/bs/hello_gtk.po +23 -0
  192. data/samples/po/bs/hello_noop.po +27 -0
  193. data/samples/po/bs/hello_plural.po +26 -0
  194. data/samples/po/bs/hello_tk.po +23 -0
  195. data/samples/po/ca/hello.po +23 -0
  196. data/samples/po/ca/hello2.po +31 -0
  197. data/samples/po/ca/hello_glade2.po +31 -0
  198. data/samples/po/ca/hello_gtk.po +23 -0
  199. data/samples/po/ca/hello_noop.po +27 -0
  200. data/samples/po/ca/hello_plural.po +25 -0
  201. data/samples/po/ca/hello_tk.po +23 -0
  202. data/samples/po/cs/hello.po +23 -0
  203. data/samples/po/cs/hello2.po +31 -0
  204. data/samples/po/cs/hello_glade2.po +37 -0
  205. data/samples/po/cs/hello_gtk.po +23 -0
  206. data/samples/po/cs/hello_noop.po +27 -0
  207. data/samples/po/cs/hello_plural.po +26 -0
  208. data/samples/po/cs/hello_tk.po +23 -0
  209. data/samples/po/de/hello.po +20 -0
  210. data/samples/po/de/hello2.po +28 -0
  211. data/samples/po/de/hello_glade2.po +27 -0
  212. data/samples/po/de/hello_gtk.po +20 -0
  213. data/samples/po/de/hello_noop.po +24 -0
  214. data/samples/po/de/hello_plural.po +25 -0
  215. data/samples/po/de/hello_tk.po +20 -0
  216. data/samples/po/el/hello.po +23 -0
  217. data/samples/po/el/hello2.po +31 -0
  218. data/samples/po/el/hello_glade2.po +31 -0
  219. data/samples/po/el/hello_gtk.po +22 -0
  220. data/samples/po/el/hello_noop.po +27 -0
  221. data/samples/po/el/hello_plural.po +25 -0
  222. data/samples/po/el/hello_tk.po +23 -0
  223. data/samples/po/eo/hello.po +23 -0
  224. data/samples/po/eo/hello2.po +31 -0
  225. data/samples/po/eo/hello_glade2.po +32 -0
  226. data/samples/po/eo/hello_gtk.po +23 -0
  227. data/samples/po/eo/hello_noop.po +27 -0
  228. data/samples/po/eo/hello_plural.po +26 -0
  229. data/samples/po/eo/hello_tk.po +24 -0
  230. data/samples/po/es/hello.po +21 -0
  231. data/samples/po/es/hello2.po +28 -0
  232. data/samples/po/es/hello_glade2.po +28 -0
  233. data/samples/po/es/hello_gtk.po +20 -0
  234. data/samples/po/es/hello_noop.po +24 -0
  235. data/samples/po/es/hello_plural.po +23 -0
  236. data/samples/po/es/hello_tk.po +20 -0
  237. data/samples/po/fr/hello.po +18 -0
  238. data/samples/po/fr/hello2.po +26 -0
  239. data/samples/po/fr/hello_glade2.po +27 -0
  240. data/samples/po/fr/hello_gtk.po +18 -0
  241. data/samples/po/fr/hello_noop.po +22 -0
  242. data/samples/po/fr/hello_plural.po +21 -0
  243. data/samples/po/fr/hello_tk.po +18 -0
  244. data/samples/po/hello.pot +23 -0
  245. data/samples/po/hello2.pot +31 -0
  246. data/samples/po/hello_glade2.pot +32 -0
  247. data/samples/po/hello_gtk.pot +23 -0
  248. data/samples/po/hello_noop.pot +27 -0
  249. data/samples/po/hello_plural.pot +26 -0
  250. data/samples/po/hello_tk.pot +24 -0
  251. data/samples/po/hr/hello.po +23 -0
  252. data/samples/po/hr/hello2.po +31 -0
  253. data/samples/po/hr/hello_glade2.po +31 -0
  254. data/samples/po/hr/hello_gtk.po +23 -0
  255. data/samples/po/hr/hello_noop.po +27 -0
  256. data/samples/po/hr/hello_plural.po +26 -0
  257. data/samples/po/hr/hello_tk.po +23 -0
  258. data/samples/po/hu/hello.po +22 -0
  259. data/samples/po/hu/hello2.po +30 -0
  260. data/samples/po/hu/hello_glade2.po +31 -0
  261. data/samples/po/hu/hello_gtk.po +22 -0
  262. data/samples/po/hu/hello_noop.po +26 -0
  263. data/samples/po/hu/hello_plural.po +25 -0
  264. data/samples/po/hu/hello_tk.po +23 -0
  265. data/samples/po/it/hello.po +20 -0
  266. data/samples/po/it/hello2.po +28 -0
  267. data/samples/po/it/hello_glade2.po +28 -0
  268. data/samples/po/it/hello_gtk.po +21 -0
  269. data/samples/po/it/hello_noop.po +24 -0
  270. data/samples/po/it/hello_plural.po +23 -0
  271. data/samples/po/it/hello_tk.po +21 -0
  272. data/samples/po/ja/hello.po +20 -0
  273. data/samples/po/ja/hello2.po +28 -0
  274. data/samples/po/ja/hello_glade2.po +26 -0
  275. data/samples/po/ja/hello_gtk.po +19 -0
  276. data/samples/po/ja/hello_noop.po +23 -0
  277. data/samples/po/ja/hello_plural.po +21 -0
  278. data/samples/po/ja/hello_tk.po +19 -0
  279. data/samples/po/ko/hello.po +18 -0
  280. data/samples/po/ko/hello2.po +26 -0
  281. data/samples/po/ko/hello_glade2.po +29 -0
  282. data/samples/po/ko/hello_gtk.po +18 -0
  283. data/samples/po/ko/hello_noop.po +22 -0
  284. data/samples/po/ko/hello_plural.po +25 -0
  285. data/samples/po/ko/hello_tk.po +19 -0
  286. data/samples/po/lv/hello.po +24 -0
  287. data/samples/po/lv/hello2.po +32 -0
  288. data/samples/po/lv/hello_glade2.po +38 -0
  289. data/samples/po/lv/hello_gtk.po +24 -0
  290. data/samples/po/lv/hello_noop.po +28 -0
  291. data/samples/po/lv/hello_plural.po +26 -0
  292. data/samples/po/lv/hello_tk.po +24 -0
  293. data/samples/po/nb/hello.po +23 -0
  294. data/samples/po/nb/hello2.po +31 -0
  295. data/samples/po/nb/hello_glade2.po +31 -0
  296. data/samples/po/nb/hello_gtk.po +23 -0
  297. data/samples/po/nb/hello_noop.po +27 -0
  298. data/samples/po/nb/hello_plural.po +26 -0
  299. data/samples/po/nb/hello_tk.po +24 -0
  300. data/samples/po/nl/hello.po +24 -0
  301. data/samples/po/nl/hello2.po +32 -0
  302. data/samples/po/nl/hello_glade2.po +31 -0
  303. data/samples/po/nl/hello_gtk.po +24 -0
  304. data/samples/po/nl/hello_noop.po +28 -0
  305. data/samples/po/nl/hello_plural.po +25 -0
  306. data/samples/po/nl/hello_tk.po +24 -0
  307. data/samples/po/pt_BR/hello.po +21 -0
  308. data/samples/po/pt_BR/hello2.po +29 -0
  309. data/samples/po/pt_BR/hello_glade2.po +29 -0
  310. data/samples/po/pt_BR/hello_gtk.po +21 -0
  311. data/samples/po/pt_BR/hello_noop.po +25 -0
  312. data/samples/po/pt_BR/hello_plural.po +23 -0
  313. data/samples/po/pt_BR/hello_tk.po +21 -0
  314. data/samples/po/ru/hello.po +22 -0
  315. data/samples/po/ru/hello2.po +30 -0
  316. data/samples/po/ru/hello_glade2.po +30 -0
  317. data/samples/po/ru/hello_gtk.po +22 -0
  318. data/samples/po/ru/hello_noop.po +26 -0
  319. data/samples/po/ru/hello_plural.po +28 -0
  320. data/samples/po/ru/hello_tk.po +22 -0
  321. data/samples/po/sr/hello.po +22 -0
  322. data/samples/po/sr/hello2.po +30 -0
  323. data/samples/po/sr/hello_glade2.po +32 -0
  324. data/samples/po/sr/hello_gtk.po +22 -0
  325. data/samples/po/sr/hello_noop.po +26 -0
  326. data/samples/po/sr/hello_plural.po +26 -0
  327. data/samples/po/sr/hello_tk.po +24 -0
  328. data/samples/po/sv/hello.po +20 -0
  329. data/samples/po/sv/hello2.po +28 -0
  330. data/samples/po/sv/hello_glade2.po +28 -0
  331. data/samples/po/sv/hello_gtk.po +20 -0
  332. data/samples/po/sv/hello_noop.po +24 -0
  333. data/samples/po/sv/hello_plural.po +23 -0
  334. data/samples/po/sv/hello_tk.po +20 -0
  335. data/samples/po/test.rb +11 -0
  336. data/samples/po/ua/hello.po +22 -0
  337. data/samples/po/ua/hello2.po +30 -0
  338. data/samples/po/ua/hello_glade2.po +34 -0
  339. data/samples/po/ua/hello_gtk.po +22 -0
  340. data/samples/po/ua/hello_noop.po +26 -0
  341. data/samples/po/ua/hello_plural.po +29 -0
  342. data/samples/po/ua/hello_tk.po +26 -0
  343. data/samples/po/vi/hello.po +23 -0
  344. data/samples/po/vi/hello2.po +31 -0
  345. data/samples/po/vi/hello_glade2.po +38 -0
  346. data/samples/po/vi/hello_gtk.po +23 -0
  347. data/samples/po/vi/hello_noop.po +27 -0
  348. data/samples/po/vi/hello_plural.po +26 -0
  349. data/samples/po/vi/hello_tk.po +24 -0
  350. data/samples/po/zh/hello.po +23 -0
  351. data/samples/po/zh/hello2.po +31 -0
  352. data/samples/po/zh/hello_glade2.po +31 -0
  353. data/samples/po/zh/hello_gtk.po +23 -0
  354. data/samples/po/zh/hello_noop.po +27 -0
  355. data/samples/po/zh/hello_plural.po +25 -0
  356. data/samples/po/zh/hello_tk.po +23 -0
  357. data/samples/po/zh_TW/hello.po +26 -0
  358. data/samples/po/zh_TW/hello2.po +34 -0
  359. data/samples/po/zh_TW/hello_glade2.po +40 -0
  360. data/samples/po/zh_TW/hello_gtk.po +25 -0
  361. data/samples/po/zh_TW/hello_noop.po +30 -0
  362. data/samples/po/zh_TW/hello_plural.po +28 -0
  363. data/samples/po/zh_TW/hello_tk.po +26 -0
  364. data/test/README +1 -0
  365. data/test/Rakefile +17 -0
  366. data/test/po/cr/plural.po +23 -0
  367. data/test/po/da/plural.po +22 -0
  368. data/test/po/da/plural_error.po +22 -0
  369. data/test/po/fr/plural.po +28 -0
  370. data/test/po/fr/plural_error.po +20 -0
  371. data/test/po/fr/test1.po +23 -0
  372. data/test/po/fr/test2.po +19 -0
  373. data/test/po/ir/plural.po +23 -0
  374. data/test/po/ja/npgettext.po +46 -0
  375. data/test/po/ja/nsgettext.po +65 -0
  376. data/test/po/ja/pgettext.po +41 -0
  377. data/test/po/ja/plural.po +28 -0
  378. data/test/po/ja/plural_error.po +20 -0
  379. data/test/po/ja/rubyparser.po +43 -0
  380. data/test/po/ja/sgettext.po +47 -0
  381. data/test/po/ja/test1.po +23 -0
  382. data/test/po/ja/test2.po +19 -0
  383. data/test/po/ja/test3.po +19 -0
  384. data/test/po/la/plural.po +23 -0
  385. data/test/po/la/plural_error.po +21 -0
  386. data/test/po/li/plural.po +23 -0
  387. data/test/po/li/plural_error.po +27 -0
  388. data/test/po/po/plural.po +23 -0
  389. data/test/po/sl/plural.po +24 -0
  390. data/test/test_class_info.rb +83 -0
  391. data/test/test_gettext.rb +311 -0
  392. data/test/test_locale_path.rb +50 -0
  393. data/test/test_parser.rb +157 -0
  394. data/test/test_po_generation.rb +20 -0
  395. data/test/test_string.rb +65 -0
  396. data/test/test_textdomain_bind.rb +37 -0
  397. data/test/test_textdomain_multi.rb +80 -0
  398. data/test/test_textdomain_toplevel.rb +42 -0
  399. data/test/test_thread.rb +41 -0
  400. data/test/test_translation_target.rb +29 -0
  401. data/test/testlib/N_.rb +66 -0
  402. data/test/testlib/erb.rhtml +15 -0
  403. data/test/testlib/erb.rxml +16 -0
  404. data/test/testlib/gettext.rb +113 -0
  405. data/test/testlib/gladeparser.glade +183 -0
  406. data/test/testlib/helper.rb +11 -0
  407. data/test/testlib/multi_textdomain.rb +131 -0
  408. data/test/testlib/ngettext.rb +79 -0
  409. data/test/testlib/npgettext.rb +31 -0
  410. data/test/testlib/nsgettext.rb +42 -0
  411. data/test/testlib/pgettext.rb +36 -0
  412. data/test/testlib/sgettext.rb +46 -0
  413. data/test/testlib/simple.rb +14 -0
  414. data/test/tools/files/app.pot +0 -0
  415. data/test/tools/files/de/app.po +0 -0
  416. data/test/tools/files/en/app.po +0 -0
  417. data/test/tools/files/en/test.po +21 -0
  418. data/test/tools/files/simple_1.po +2 -0
  419. data/test/tools/files/simple_2.po +2 -0
  420. data/test/tools/files/simple_translation.rb +1 -0
  421. data/test/tools/files/version.po +7 -0
  422. data/test/tools/test.pot +21 -0
  423. data/test/tools/test_tools.rb +61 -0
  424. metadata +510 -0
data/gettext.gemspec ADDED
@@ -0,0 +1,494 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
+ # -*- encoding: utf-8 -*-
5
+
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = %q{gettext}
9
+ s.version = "2.0.4"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.authors = ["Masao Mutoh"]
13
+ s.date = %q{2009-09-08}
14
+ s.description = %q{ Ruby-GetText-Package is a GNU GetText-like program for Ruby.
15
+ The catalog file(po-file) is same format with GNU GetText.
16
+ So you can use GNU GetText tools for maintaining.
17
+ }
18
+ s.email = %q{mutomasa at gmail.com}
19
+ s.executables = ["rgettext", "rmsgfmt", "rmsgmerge"]
20
+ s.extra_rdoc_files = [
21
+ "ChangeLog",
22
+ "ChangeLog-1",
23
+ "README.rdoc"
24
+ ]
25
+ s.files = [
26
+ "COPYING",
27
+ "ChangeLog",
28
+ "ChangeLog-1",
29
+ "NEWS-1",
30
+ "README.rdoc",
31
+ "Rakefile",
32
+ "VERSION",
33
+ "bin/rgettext",
34
+ "bin/rmsgfmt",
35
+ "bin/rmsgmerge",
36
+ "gettext.gemspec",
37
+ "lib/gettext.rb",
38
+ "lib/gettext/cgi.rb",
39
+ "lib/gettext/class_info.rb",
40
+ "lib/gettext/core_ext/iconv.rb",
41
+ "lib/gettext/core_ext/string.rb",
42
+ "lib/gettext/locale_path.rb",
43
+ "lib/gettext/mofile.rb",
44
+ "lib/gettext/parser/erb.rb",
45
+ "lib/gettext/parser/glade.rb",
46
+ "lib/gettext/parser/ruby.rb",
47
+ "lib/gettext/poparser.rb",
48
+ "lib/gettext/textdomain.rb",
49
+ "lib/gettext/textdomain_group.rb",
50
+ "lib/gettext/textdomain_manager.rb",
51
+ "lib/gettext/tools.rb",
52
+ "lib/gettext/tools/rgettext.rb",
53
+ "lib/gettext/tools/rmsgfmt.rb",
54
+ "lib/gettext/tools/rmsgmerge.rb",
55
+ "lib/gettext/translation_target.rb",
56
+ "lib/gettext/utils.rb",
57
+ "lib/gettext/version.rb",
58
+ "po/bg/rgettext.po",
59
+ "po/bs/rgettext.po",
60
+ "po/ca/rgettext.po",
61
+ "po/cs/rgettext.po",
62
+ "po/de/rgettext.po",
63
+ "po/el/rgettext.po",
64
+ "po/eo/rgettext.po",
65
+ "po/es/rgettext.po",
66
+ "po/et/rgettext.po",
67
+ "po/fr/rgettext.po",
68
+ "po/hr/rgettext.po",
69
+ "po/hu/rgettext.po",
70
+ "po/it/rgettext.po",
71
+ "po/ja/rgettext.po",
72
+ "po/ko/rgettext.po",
73
+ "po/lv/rgettext.po",
74
+ "po/nb/rgettext.po",
75
+ "po/nl/rgettext.po",
76
+ "po/pt_BR/rgettext.po",
77
+ "po/rgettext.pot",
78
+ "po/ru/rgettext.po",
79
+ "po/sr/rgettext.po",
80
+ "po/sv/rgettext.po",
81
+ "po/ua/rgettext.po",
82
+ "po/vi/rgettext.po",
83
+ "po/zh/rgettext.po",
84
+ "po/zh_TW/rgettext.po",
85
+ "samples/README",
86
+ "samples/cgi/README",
87
+ "samples/cgi/Rakefile",
88
+ "samples/cgi/cookie.cgi",
89
+ "samples/cgi/gettext.css",
90
+ "samples/cgi/helloerb.rhtml",
91
+ "samples/cgi/helloerb1.cgi",
92
+ "samples/cgi/helloerb2.cgi",
93
+ "samples/cgi/hellolib.rb",
94
+ "samples/cgi/http.rb",
95
+ "samples/cgi/index.cgi",
96
+ "samples/cgi/other.rhtml",
97
+ "samples/cgi/po/bg/helloerb1.po",
98
+ "samples/cgi/po/bg/helloerb2.po",
99
+ "samples/cgi/po/bg/hellolib.po",
100
+ "samples/cgi/po/bg/main.po",
101
+ "samples/cgi/po/bs/helloerb1.po",
102
+ "samples/cgi/po/bs/helloerb2.po",
103
+ "samples/cgi/po/bs/hellolib.po",
104
+ "samples/cgi/po/bs/main.po",
105
+ "samples/cgi/po/ca/helloerb1.po",
106
+ "samples/cgi/po/ca/helloerb2.po",
107
+ "samples/cgi/po/ca/hellolib.po",
108
+ "samples/cgi/po/ca/main.po",
109
+ "samples/cgi/po/cs/helloerb1.po",
110
+ "samples/cgi/po/cs/helloerb2.po",
111
+ "samples/cgi/po/cs/hellolib.po",
112
+ "samples/cgi/po/cs/main.po",
113
+ "samples/cgi/po/de/helloerb1.po",
114
+ "samples/cgi/po/de/helloerb2.po",
115
+ "samples/cgi/po/de/hellolib.po",
116
+ "samples/cgi/po/de/main.po",
117
+ "samples/cgi/po/el/helloerb1.po",
118
+ "samples/cgi/po/el/helloerb2.po",
119
+ "samples/cgi/po/el/hellolib.po",
120
+ "samples/cgi/po/el/main.po",
121
+ "samples/cgi/po/eo/helloerb1.po",
122
+ "samples/cgi/po/eo/helloerb2.po",
123
+ "samples/cgi/po/eo/hellolib.po",
124
+ "samples/cgi/po/eo/main.po",
125
+ "samples/cgi/po/es/helloerb1.po",
126
+ "samples/cgi/po/es/helloerb2.po",
127
+ "samples/cgi/po/es/hellolib.po",
128
+ "samples/cgi/po/es/main.po",
129
+ "samples/cgi/po/fr/helloerb1.po",
130
+ "samples/cgi/po/fr/helloerb2.po",
131
+ "samples/cgi/po/fr/hellolib.po",
132
+ "samples/cgi/po/fr/main.po",
133
+ "samples/cgi/po/helloerb1.pot",
134
+ "samples/cgi/po/helloerb2.pot",
135
+ "samples/cgi/po/hellolib.pot",
136
+ "samples/cgi/po/hr/helloerb1.po",
137
+ "samples/cgi/po/hr/helloerb2.po",
138
+ "samples/cgi/po/hr/hellolib.po",
139
+ "samples/cgi/po/hr/main.po",
140
+ "samples/cgi/po/hu/helloerb1.po",
141
+ "samples/cgi/po/hu/helloerb2.po",
142
+ "samples/cgi/po/hu/hellolib.po",
143
+ "samples/cgi/po/hu/main.po",
144
+ "samples/cgi/po/it/helloerb1.po",
145
+ "samples/cgi/po/it/helloerb2.po",
146
+ "samples/cgi/po/it/hellolib.po",
147
+ "samples/cgi/po/it/main.po",
148
+ "samples/cgi/po/ja/helloerb1.po",
149
+ "samples/cgi/po/ja/helloerb2.po",
150
+ "samples/cgi/po/ja/hellolib.po",
151
+ "samples/cgi/po/ja/main.po",
152
+ "samples/cgi/po/ko/helloerb1.po",
153
+ "samples/cgi/po/ko/helloerb2.po",
154
+ "samples/cgi/po/ko/hellolib.po",
155
+ "samples/cgi/po/ko/main.po",
156
+ "samples/cgi/po/lv/helloerb1.po",
157
+ "samples/cgi/po/lv/helloerb2.po",
158
+ "samples/cgi/po/lv/hellolib.po",
159
+ "samples/cgi/po/lv/main.po",
160
+ "samples/cgi/po/main.pot",
161
+ "samples/cgi/po/nb/helloerb1.po",
162
+ "samples/cgi/po/nb/helloerb2.po",
163
+ "samples/cgi/po/nb/hellolib.po",
164
+ "samples/cgi/po/nb/main.po",
165
+ "samples/cgi/po/nl/helloerb1.po",
166
+ "samples/cgi/po/nl/helloerb2.po",
167
+ "samples/cgi/po/nl/hellolib.po",
168
+ "samples/cgi/po/nl/main.po",
169
+ "samples/cgi/po/pt_BR/helloerb1.po",
170
+ "samples/cgi/po/pt_BR/helloerb2.po",
171
+ "samples/cgi/po/pt_BR/hellolib.po",
172
+ "samples/cgi/po/pt_BR/main.po",
173
+ "samples/cgi/po/ru/helloerb1.po",
174
+ "samples/cgi/po/ru/helloerb2.po",
175
+ "samples/cgi/po/ru/hellolib.po",
176
+ "samples/cgi/po/ru/main.po",
177
+ "samples/cgi/po/sr/helloerb1.po",
178
+ "samples/cgi/po/sr/helloerb2.po",
179
+ "samples/cgi/po/sr/hellolib.po",
180
+ "samples/cgi/po/sr/main.po",
181
+ "samples/cgi/po/ua/helloerb1.po",
182
+ "samples/cgi/po/ua/helloerb2.po",
183
+ "samples/cgi/po/ua/hellolib.po",
184
+ "samples/cgi/po/ua/main.po",
185
+ "samples/cgi/po/vi/helloerb1.po",
186
+ "samples/cgi/po/vi/helloerb2.po",
187
+ "samples/cgi/po/vi/hellolib.po",
188
+ "samples/cgi/po/vi/main.po",
189
+ "samples/cgi/po/zh/helloerb1.po",
190
+ "samples/cgi/po/zh/helloerb2.po",
191
+ "samples/cgi/po/zh/hellolib.po",
192
+ "samples/cgi/po/zh/main.po",
193
+ "samples/cgi/po/zh_TW/helloerb1.po",
194
+ "samples/cgi/po/zh_TW/helloerb2.po",
195
+ "samples/cgi/po/zh_TW/hellolib.po",
196
+ "samples/cgi/po/zh_TW/main.po",
197
+ "samples/hello.rb",
198
+ "samples/hello2.rb",
199
+ "samples/hello_glade2.glade",
200
+ "samples/hello_glade2.rb",
201
+ "samples/hello_gtk2.rb",
202
+ "samples/hello_noop.rb",
203
+ "samples/hello_plural.rb",
204
+ "samples/hello_tk.rb",
205
+ "samples/makemo.rb",
206
+ "samples/po/bg/hello.po",
207
+ "samples/po/bg/hello2.po",
208
+ "samples/po/bg/hello_glade2.po",
209
+ "samples/po/bg/hello_gtk.po",
210
+ "samples/po/bg/hello_noop.po",
211
+ "samples/po/bg/hello_plural.po",
212
+ "samples/po/bg/hello_tk.po",
213
+ "samples/po/bs/hello.po",
214
+ "samples/po/bs/hello2.po",
215
+ "samples/po/bs/hello_glade2.po",
216
+ "samples/po/bs/hello_gtk.po",
217
+ "samples/po/bs/hello_noop.po",
218
+ "samples/po/bs/hello_plural.po",
219
+ "samples/po/bs/hello_tk.po",
220
+ "samples/po/ca/hello.po",
221
+ "samples/po/ca/hello2.po",
222
+ "samples/po/ca/hello_glade2.po",
223
+ "samples/po/ca/hello_gtk.po",
224
+ "samples/po/ca/hello_noop.po",
225
+ "samples/po/ca/hello_plural.po",
226
+ "samples/po/ca/hello_tk.po",
227
+ "samples/po/cs/hello.po",
228
+ "samples/po/cs/hello2.po",
229
+ "samples/po/cs/hello_glade2.po",
230
+ "samples/po/cs/hello_gtk.po",
231
+ "samples/po/cs/hello_noop.po",
232
+ "samples/po/cs/hello_plural.po",
233
+ "samples/po/cs/hello_tk.po",
234
+ "samples/po/de/hello.po",
235
+ "samples/po/de/hello2.po",
236
+ "samples/po/de/hello_glade2.po",
237
+ "samples/po/de/hello_gtk.po",
238
+ "samples/po/de/hello_noop.po",
239
+ "samples/po/de/hello_plural.po",
240
+ "samples/po/de/hello_tk.po",
241
+ "samples/po/el/hello.po",
242
+ "samples/po/el/hello2.po",
243
+ "samples/po/el/hello_glade2.po",
244
+ "samples/po/el/hello_gtk.po",
245
+ "samples/po/el/hello_noop.po",
246
+ "samples/po/el/hello_plural.po",
247
+ "samples/po/el/hello_tk.po",
248
+ "samples/po/eo/hello.po",
249
+ "samples/po/eo/hello2.po",
250
+ "samples/po/eo/hello_glade2.po",
251
+ "samples/po/eo/hello_gtk.po",
252
+ "samples/po/eo/hello_noop.po",
253
+ "samples/po/eo/hello_plural.po",
254
+ "samples/po/eo/hello_tk.po",
255
+ "samples/po/es/hello.po",
256
+ "samples/po/es/hello2.po",
257
+ "samples/po/es/hello_glade2.po",
258
+ "samples/po/es/hello_gtk.po",
259
+ "samples/po/es/hello_noop.po",
260
+ "samples/po/es/hello_plural.po",
261
+ "samples/po/es/hello_tk.po",
262
+ "samples/po/fr/hello.po",
263
+ "samples/po/fr/hello2.po",
264
+ "samples/po/fr/hello_glade2.po",
265
+ "samples/po/fr/hello_gtk.po",
266
+ "samples/po/fr/hello_noop.po",
267
+ "samples/po/fr/hello_plural.po",
268
+ "samples/po/fr/hello_tk.po",
269
+ "samples/po/hello.pot",
270
+ "samples/po/hello2.pot",
271
+ "samples/po/hello_glade2.pot",
272
+ "samples/po/hello_gtk.pot",
273
+ "samples/po/hello_noop.pot",
274
+ "samples/po/hello_plural.pot",
275
+ "samples/po/hello_tk.pot",
276
+ "samples/po/hr/hello.po",
277
+ "samples/po/hr/hello2.po",
278
+ "samples/po/hr/hello_glade2.po",
279
+ "samples/po/hr/hello_gtk.po",
280
+ "samples/po/hr/hello_noop.po",
281
+ "samples/po/hr/hello_plural.po",
282
+ "samples/po/hr/hello_tk.po",
283
+ "samples/po/hu/hello.po",
284
+ "samples/po/hu/hello2.po",
285
+ "samples/po/hu/hello_glade2.po",
286
+ "samples/po/hu/hello_gtk.po",
287
+ "samples/po/hu/hello_noop.po",
288
+ "samples/po/hu/hello_plural.po",
289
+ "samples/po/hu/hello_tk.po",
290
+ "samples/po/it/hello.po",
291
+ "samples/po/it/hello2.po",
292
+ "samples/po/it/hello_glade2.po",
293
+ "samples/po/it/hello_gtk.po",
294
+ "samples/po/it/hello_noop.po",
295
+ "samples/po/it/hello_plural.po",
296
+ "samples/po/it/hello_tk.po",
297
+ "samples/po/ja/hello.po",
298
+ "samples/po/ja/hello2.po",
299
+ "samples/po/ja/hello_glade2.po",
300
+ "samples/po/ja/hello_gtk.po",
301
+ "samples/po/ja/hello_noop.po",
302
+ "samples/po/ja/hello_plural.po",
303
+ "samples/po/ja/hello_tk.po",
304
+ "samples/po/ko/hello.po",
305
+ "samples/po/ko/hello2.po",
306
+ "samples/po/ko/hello_glade2.po",
307
+ "samples/po/ko/hello_gtk.po",
308
+ "samples/po/ko/hello_noop.po",
309
+ "samples/po/ko/hello_plural.po",
310
+ "samples/po/ko/hello_tk.po",
311
+ "samples/po/lv/hello.po",
312
+ "samples/po/lv/hello2.po",
313
+ "samples/po/lv/hello_glade2.po",
314
+ "samples/po/lv/hello_gtk.po",
315
+ "samples/po/lv/hello_noop.po",
316
+ "samples/po/lv/hello_plural.po",
317
+ "samples/po/lv/hello_tk.po",
318
+ "samples/po/nb/hello.po",
319
+ "samples/po/nb/hello2.po",
320
+ "samples/po/nb/hello_glade2.po",
321
+ "samples/po/nb/hello_gtk.po",
322
+ "samples/po/nb/hello_noop.po",
323
+ "samples/po/nb/hello_plural.po",
324
+ "samples/po/nb/hello_tk.po",
325
+ "samples/po/nl/hello.po",
326
+ "samples/po/nl/hello2.po",
327
+ "samples/po/nl/hello_glade2.po",
328
+ "samples/po/nl/hello_gtk.po",
329
+ "samples/po/nl/hello_noop.po",
330
+ "samples/po/nl/hello_plural.po",
331
+ "samples/po/nl/hello_tk.po",
332
+ "samples/po/pt_BR/hello.po",
333
+ "samples/po/pt_BR/hello2.po",
334
+ "samples/po/pt_BR/hello_glade2.po",
335
+ "samples/po/pt_BR/hello_gtk.po",
336
+ "samples/po/pt_BR/hello_noop.po",
337
+ "samples/po/pt_BR/hello_plural.po",
338
+ "samples/po/pt_BR/hello_tk.po",
339
+ "samples/po/ru/hello.po",
340
+ "samples/po/ru/hello2.po",
341
+ "samples/po/ru/hello_glade2.po",
342
+ "samples/po/ru/hello_gtk.po",
343
+ "samples/po/ru/hello_noop.po",
344
+ "samples/po/ru/hello_plural.po",
345
+ "samples/po/ru/hello_tk.po",
346
+ "samples/po/sr/hello.po",
347
+ "samples/po/sr/hello2.po",
348
+ "samples/po/sr/hello_glade2.po",
349
+ "samples/po/sr/hello_gtk.po",
350
+ "samples/po/sr/hello_noop.po",
351
+ "samples/po/sr/hello_plural.po",
352
+ "samples/po/sr/hello_tk.po",
353
+ "samples/po/sv/hello.po",
354
+ "samples/po/sv/hello2.po",
355
+ "samples/po/sv/hello_glade2.po",
356
+ "samples/po/sv/hello_gtk.po",
357
+ "samples/po/sv/hello_noop.po",
358
+ "samples/po/sv/hello_plural.po",
359
+ "samples/po/sv/hello_tk.po",
360
+ "samples/po/test.rb",
361
+ "samples/po/ua/hello.po",
362
+ "samples/po/ua/hello2.po",
363
+ "samples/po/ua/hello_glade2.po",
364
+ "samples/po/ua/hello_gtk.po",
365
+ "samples/po/ua/hello_noop.po",
366
+ "samples/po/ua/hello_plural.po",
367
+ "samples/po/ua/hello_tk.po",
368
+ "samples/po/vi/hello.po",
369
+ "samples/po/vi/hello2.po",
370
+ "samples/po/vi/hello_glade2.po",
371
+ "samples/po/vi/hello_gtk.po",
372
+ "samples/po/vi/hello_noop.po",
373
+ "samples/po/vi/hello_plural.po",
374
+ "samples/po/vi/hello_tk.po",
375
+ "samples/po/zh/hello.po",
376
+ "samples/po/zh/hello2.po",
377
+ "samples/po/zh/hello_glade2.po",
378
+ "samples/po/zh/hello_gtk.po",
379
+ "samples/po/zh/hello_noop.po",
380
+ "samples/po/zh/hello_plural.po",
381
+ "samples/po/zh/hello_tk.po",
382
+ "samples/po/zh_TW/hello.po",
383
+ "samples/po/zh_TW/hello2.po",
384
+ "samples/po/zh_TW/hello_glade2.po",
385
+ "samples/po/zh_TW/hello_gtk.po",
386
+ "samples/po/zh_TW/hello_noop.po",
387
+ "samples/po/zh_TW/hello_plural.po",
388
+ "samples/po/zh_TW/hello_tk.po",
389
+ "test/README",
390
+ "test/Rakefile",
391
+ "test/po/cr/plural.po",
392
+ "test/po/da/plural.po",
393
+ "test/po/da/plural_error.po",
394
+ "test/po/fr/plural.po",
395
+ "test/po/fr/plural_error.po",
396
+ "test/po/fr/test1.po",
397
+ "test/po/fr/test2.po",
398
+ "test/po/ir/plural.po",
399
+ "test/po/ja/npgettext.po",
400
+ "test/po/ja/nsgettext.po",
401
+ "test/po/ja/pgettext.po",
402
+ "test/po/ja/plural.po",
403
+ "test/po/ja/plural_error.po",
404
+ "test/po/ja/rubyparser.po",
405
+ "test/po/ja/sgettext.po",
406
+ "test/po/ja/test1.po",
407
+ "test/po/ja/test2.po",
408
+ "test/po/ja/test3.po",
409
+ "test/po/la/plural.po",
410
+ "test/po/la/plural_error.po",
411
+ "test/po/li/plural.po",
412
+ "test/po/li/plural_error.po",
413
+ "test/po/po/plural.po",
414
+ "test/po/sl/plural.po",
415
+ "test/test_class_info.rb",
416
+ "test/test_gettext.rb",
417
+ "test/test_locale_path.rb",
418
+ "test/test_parser.rb",
419
+ "test/test_po_generation.rb",
420
+ "test/test_string.rb",
421
+ "test/test_textdomain_bind.rb",
422
+ "test/test_textdomain_multi.rb",
423
+ "test/test_textdomain_toplevel.rb",
424
+ "test/test_thread.rb",
425
+ "test/test_translation_target.rb",
426
+ "test/testlib/N_.rb",
427
+ "test/testlib/erb.rhtml",
428
+ "test/testlib/erb.rxml",
429
+ "test/testlib/gettext.rb",
430
+ "test/testlib/gladeparser.glade",
431
+ "test/testlib/helper.rb",
432
+ "test/testlib/multi_textdomain.rb",
433
+ "test/testlib/ngettext.rb",
434
+ "test/testlib/npgettext.rb",
435
+ "test/testlib/nsgettext.rb",
436
+ "test/testlib/pgettext.rb",
437
+ "test/testlib/sgettext.rb",
438
+ "test/testlib/simple.rb",
439
+ "test/tools/files/app.pot",
440
+ "test/tools/files/de/app.po",
441
+ "test/tools/files/en/app.po",
442
+ "test/tools/files/en/test.po",
443
+ "test/tools/files/simple_1.po",
444
+ "test/tools/files/simple_2.po",
445
+ "test/tools/files/simple_translation.rb",
446
+ "test/tools/files/version.po",
447
+ "test/tools/test.pot",
448
+ "test/tools/test_tools.rb"
449
+ ]
450
+ s.homepage = %q{http://gettext.rubyforge.org/}
451
+ s.rdoc_options = ["--charset=UTF-8"]
452
+ s.require_paths = ["lib"]
453
+ s.rubyforge_project = %q{gettext}
454
+ s.rubygems_version = %q{1.3.5}
455
+ s.summary = %q{Ruby-GetText-Package is a library and tools to localize messages.}
456
+ s.test_files = [
457
+ "test/test_thread.rb",
458
+ "test/testlib/N_.rb",
459
+ "test/testlib/sgettext.rb",
460
+ "test/testlib/ngettext.rb",
461
+ "test/testlib/multi_textdomain.rb",
462
+ "test/testlib/npgettext.rb",
463
+ "test/testlib/simple.rb",
464
+ "test/testlib/helper.rb",
465
+ "test/testlib/nsgettext.rb",
466
+ "test/testlib/pgettext.rb",
467
+ "test/testlib/gettext.rb",
468
+ "test/test_string.rb",
469
+ "test/test_class_info.rb",
470
+ "test/test_locale_path.rb",
471
+ "test/test_textdomain_bind.rb",
472
+ "test/test_gettext.rb",
473
+ "test/tools/files/simple_translation.rb",
474
+ "test/tools/test_tools.rb",
475
+ "test/test_parser.rb",
476
+ "test/test_translation_target.rb",
477
+ "test/test_po_generation.rb",
478
+ "test/test_textdomain_multi.rb",
479
+ "test/test_textdomain_toplevel.rb"
480
+ ]
481
+
482
+ if s.respond_to? :specification_version then
483
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
484
+ s.specification_version = 3
485
+
486
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
487
+ s.add_runtime_dependency(%q<locale>, [">= 2.0.4"])
488
+ else
489
+ s.add_dependency(%q<locale>, [">= 2.0.4"])
490
+ end
491
+ else
492
+ s.add_dependency(%q<locale>, [">= 2.0.4"])
493
+ end
494
+ end
@@ -0,0 +1,39 @@
1
+ =begin
2
+ gettext/cgi.rb - GetText for CGI
3
+
4
+ Copyright (C) 2005-2009 Masao Mutoh
5
+
6
+ You may redistribute it and/or modify it under the same
7
+ license terms as Ruby.
8
+
9
+ $Id$
10
+ =end
11
+
12
+ require 'cgi'
13
+ require 'gettext'
14
+
15
+ Locale.init(:driver => :cgi)
16
+
17
+ module GetText
18
+
19
+ # Sets a CGI object. This methods is appeared when requiring "gettext/cgi".
20
+ # * cgi_: CGI object
21
+ # * Returns: self
22
+ def set_cgi(cgi_)
23
+ Locale.set_cgi(cgi_)
24
+ end
25
+
26
+ # Same as GetText.set_cgi. This methods is appeared when requiring "gettext/cgi".
27
+ # * cgi_: CGI object
28
+ # * Returns: cgi_
29
+ def cgi=(cgi_)
30
+ set_cgi(cgi_)
31
+ cgi_
32
+ end
33
+
34
+ # Gets the CGI object. If it is nil, returns new CGI object. This methods is appeared when requiring "gettext/cgi".
35
+ # * Returns: the CGI object
36
+ def cgi
37
+ Locale.cgi
38
+ end
39
+ end
@@ -0,0 +1,67 @@
1
+ require 'locale/util/memoizable'
2
+
3
+ module GetText
4
+ # For normalize/finding the related classes/modules.
5
+ # This is used for realizing the scope of TextDomain.
6
+ # (see: http://www.yotabanana.com/hiki/ruby-gettext-scope.html)
7
+ module ClassInfo
8
+ extend self
9
+ include Locale::Util::Memoizable
10
+
11
+ # normalize the class name
12
+ # klass should kind of the class, not object.
13
+ def normalize_class(klass)
14
+ ret = (klass.kind_of? Module) ? klass : klass.class
15
+ if ret.name =~ /^\#<|^$/ or ret == GetText
16
+ ret = Object
17
+ end
18
+ ret
19
+ end
20
+
21
+ def root_ancestors # :nodoc:
22
+ Object.ancestors
23
+ end
24
+ memoize :root_ancestors
25
+
26
+ # Internal method for related_classes.
27
+ def related_classes_internal(klass, all_classes = [], analyzed_classes = [] )
28
+ ret = []
29
+ klass = normalize_class(klass)
30
+
31
+ return [Object] if root_ancestors.include? klass
32
+
33
+ ary = klass.name.split(/::/)
34
+ while(v = ary.shift)
35
+ ret.unshift(((ret.size == 0) ? Object.const_get(v) : ret[0].const_get(v)))
36
+ end
37
+ ret -= analyzed_classes
38
+ if ret.size > 1
39
+ ret += related_classes_internal(ret[1], all_classes, analyzed_classes)
40
+ ret.uniq!
41
+ end
42
+ analyzed_classes << klass unless analyzed_classes.include? klass
43
+
44
+ klass.ancestors[1..-1].each do |a|
45
+ ret += related_classes_internal(a, all_classes, analyzed_classes)
46
+ ret.uniq!
47
+ end
48
+
49
+ if all_classes.size > 0
50
+ (ret & all_classes).uniq
51
+ else
52
+ ret.uniq
53
+ end
54
+ end
55
+
56
+ # Returns the classes which related to klass
57
+ # (klass's ancestors, included modules and nested modules)
58
+ def related_classes(klass, all_classes = [])
59
+ ret = related_classes_internal(klass, all_classes)
60
+ unless ret.include? Object
61
+ ret += [Object]
62
+ end
63
+ ret
64
+ end
65
+ memoize :related_classes
66
+ end
67
+ end