grosser-gettext 2.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 (406) hide show
  1. data/ChangeLog +2014 -0
  2. data/README.rdoc +172 -0
  3. data/Rakefile +192 -0
  4. data/bin/rgettext +24 -0
  5. data/bin/rmsgfmt +24 -0
  6. data/bin/rmsgmerge +24 -0
  7. data/gettext.gemspec +39 -0
  8. data/lib/gettext.rb +263 -0
  9. data/lib/gettext/cgi.rb +40 -0
  10. data/lib/gettext/class_info.rb +55 -0
  11. data/lib/gettext/core_ext/iconv.rb +109 -0
  12. data/lib/gettext/core_ext/string.rb +63 -0
  13. data/lib/gettext/mofile.rb +320 -0
  14. data/lib/gettext/parser/erb.rb +50 -0
  15. data/lib/gettext/parser/glade.rb +99 -0
  16. data/lib/gettext/parser/ruby.rb +170 -0
  17. data/lib/gettext/poparser.rb +332 -0
  18. data/lib/gettext/textdomain.rb +225 -0
  19. data/lib/gettext/textdomain_manager.rb +218 -0
  20. data/lib/gettext/tools.rb +177 -0
  21. data/lib/gettext/tools/rgettext.rb +275 -0
  22. data/lib/gettext/tools/rmsgfmt.rb +84 -0
  23. data/lib/gettext/tools/rmsgmerge.rb +505 -0
  24. data/lib/gettext/utils.rb +39 -0
  25. data/lib/gettext/version.rb +12 -0
  26. data/po/bg/rgettext.po +150 -0
  27. data/po/bs/rgettext.po +151 -0
  28. data/po/ca/rgettext.po +149 -0
  29. data/po/cs/rgettext.po +152 -0
  30. data/po/de/#rails.po# +175 -0
  31. data/po/de/rgettext.po +157 -0
  32. data/po/el/rgettext.po +148 -0
  33. data/po/eo/rgettext.po +149 -0
  34. data/po/es/rgettext.po +150 -0
  35. data/po/et/rgettext.po +147 -0
  36. data/po/fr/rgettext.po +153 -0
  37. data/po/hr/rgettext.po +151 -0
  38. data/po/hu/rgettext.po +149 -0
  39. data/po/it/rgettext.po +150 -0
  40. data/po/ja/rails.po.old +150 -0
  41. data/po/ja/rgettext.po +149 -0
  42. data/po/ko/rgettext.po +149 -0
  43. data/po/lv/rgettext.po +150 -0
  44. data/po/nb/rgettext.po +151 -0
  45. data/po/nl/rgettext.po +150 -0
  46. data/po/pt_BR/rgettext.po +152 -0
  47. data/po/rgettext.pot +141 -0
  48. data/po/ru/rgettext.po +151 -0
  49. data/po/sr/rgettext.po +150 -0
  50. data/po/sv/rgettext.po +143 -0
  51. data/po/ua/rgettext.po +155 -0
  52. data/po/vi/rgettext.po +148 -0
  53. data/po/zh/rgettext.po +149 -0
  54. data/po/zh_TW/rgettext.po +148 -0
  55. data/samples/README +16 -0
  56. data/samples/cgi/README +43 -0
  57. data/samples/cgi/Rakefile +27 -0
  58. data/samples/cgi/cookie.cgi +64 -0
  59. data/samples/cgi/gettext.css +116 -0
  60. data/samples/cgi/helloerb.rhtml +28 -0
  61. data/samples/cgi/helloerb1.cgi +58 -0
  62. data/samples/cgi/helloerb2.cgi +51 -0
  63. data/samples/cgi/hellolib.rb +20 -0
  64. data/samples/cgi/http.rb +51 -0
  65. data/samples/cgi/index.cgi +111 -0
  66. data/samples/cgi/other.rhtml +20 -0
  67. data/samples/cgi/po/bg/helloerb1.po +59 -0
  68. data/samples/cgi/po/bg/helloerb2.po +51 -0
  69. data/samples/cgi/po/bg/hellolib.po +23 -0
  70. data/samples/cgi/po/bg/main.po +83 -0
  71. data/samples/cgi/po/bs/helloerb1.po +59 -0
  72. data/samples/cgi/po/bs/helloerb2.po +51 -0
  73. data/samples/cgi/po/bs/hellolib.po +23 -0
  74. data/samples/cgi/po/bs/main.po +83 -0
  75. data/samples/cgi/po/ca/helloerb1.po +59 -0
  76. data/samples/cgi/po/ca/helloerb2.po +51 -0
  77. data/samples/cgi/po/ca/hellolib.po +23 -0
  78. data/samples/cgi/po/ca/main.po +83 -0
  79. data/samples/cgi/po/cs/helloerb1.po +61 -0
  80. data/samples/cgi/po/cs/helloerb2.po +52 -0
  81. data/samples/cgi/po/cs/hellolib.po +25 -0
  82. data/samples/cgi/po/cs/main.po +85 -0
  83. data/samples/cgi/po/de/helloerb1.po +61 -0
  84. data/samples/cgi/po/de/helloerb2.po +52 -0
  85. data/samples/cgi/po/de/hellolib.po +24 -0
  86. data/samples/cgi/po/de/main.po +86 -0
  87. data/samples/cgi/po/el/helloerb1.po +60 -0
  88. data/samples/cgi/po/el/helloerb2.po +51 -0
  89. data/samples/cgi/po/el/hellolib.po +23 -0
  90. data/samples/cgi/po/el/main.po +84 -0
  91. data/samples/cgi/po/eo/helloerb1.po +60 -0
  92. data/samples/cgi/po/eo/helloerb2.po +52 -0
  93. data/samples/cgi/po/eo/hellolib.po +24 -0
  94. data/samples/cgi/po/eo/main.po +84 -0
  95. data/samples/cgi/po/es/helloerb1.po +59 -0
  96. data/samples/cgi/po/es/helloerb2.po +50 -0
  97. data/samples/cgi/po/es/hellolib.po +22 -0
  98. data/samples/cgi/po/es/main.po +83 -0
  99. data/samples/cgi/po/fr/helloerb1.po +59 -0
  100. data/samples/cgi/po/fr/helloerb2.po +51 -0
  101. data/samples/cgi/po/fr/hellolib.po +22 -0
  102. data/samples/cgi/po/fr/main.po +85 -0
  103. data/samples/cgi/po/helloerb1.pot +60 -0
  104. data/samples/cgi/po/helloerb2.pot +52 -0
  105. data/samples/cgi/po/hellolib.pot +24 -0
  106. data/samples/cgi/po/hr/helloerb1.po +59 -0
  107. data/samples/cgi/po/hr/helloerb2.po +51 -0
  108. data/samples/cgi/po/hr/hellolib.po +23 -0
  109. data/samples/cgi/po/hr/main.po +83 -0
  110. data/samples/cgi/po/hu/helloerb1.po +59 -0
  111. data/samples/cgi/po/hu/helloerb2.po +51 -0
  112. data/samples/cgi/po/hu/hellolib.po +23 -0
  113. data/samples/cgi/po/hu/main.po +82 -0
  114. data/samples/cgi/po/it/helloerb1.po +60 -0
  115. data/samples/cgi/po/it/helloerb2.po +52 -0
  116. data/samples/cgi/po/it/hellolib.po +24 -0
  117. data/samples/cgi/po/it/main.po +84 -0
  118. data/samples/cgi/po/ja/helloerb1.po +60 -0
  119. data/samples/cgi/po/ja/helloerb2.po +52 -0
  120. data/samples/cgi/po/ja/hellolib.po +24 -0
  121. data/samples/cgi/po/ja/main.po +85 -0
  122. data/samples/cgi/po/ko/helloerb1.po +59 -0
  123. data/samples/cgi/po/ko/helloerb2.po +51 -0
  124. data/samples/cgi/po/ko/hellolib.po +23 -0
  125. data/samples/cgi/po/ko/main.po +84 -0
  126. data/samples/cgi/po/lv/helloerb1.po +65 -0
  127. data/samples/cgi/po/lv/helloerb2.po +52 -0
  128. data/samples/cgi/po/lv/hellolib.po +24 -0
  129. data/samples/cgi/po/lv/main.po +77 -0
  130. data/samples/cgi/po/main.pot +80 -0
  131. data/samples/cgi/po/nb/helloerb1.po +60 -0
  132. data/samples/cgi/po/nb/helloerb2.po +52 -0
  133. data/samples/cgi/po/nb/hellolib.po +24 -0
  134. data/samples/cgi/po/nb/main.po +84 -0
  135. data/samples/cgi/po/nl/helloerb1.po +61 -0
  136. data/samples/cgi/po/nl/helloerb2.po +52 -0
  137. data/samples/cgi/po/nl/hellolib.po +24 -0
  138. data/samples/cgi/po/nl/main.po +86 -0
  139. data/samples/cgi/po/pt_BR/helloerb1.po +59 -0
  140. data/samples/cgi/po/pt_BR/helloerb2.po +51 -0
  141. data/samples/cgi/po/pt_BR/hellolib.po +23 -0
  142. data/samples/cgi/po/pt_BR/main.po +84 -0
  143. data/samples/cgi/po/ru/helloerb1.po +58 -0
  144. data/samples/cgi/po/ru/helloerb2.po +50 -0
  145. data/samples/cgi/po/ru/hellolib.po +22 -0
  146. data/samples/cgi/po/ru/main.po +82 -0
  147. data/samples/cgi/po/sr/helloerb1.po +60 -0
  148. data/samples/cgi/po/sr/helloerb2.po +52 -0
  149. data/samples/cgi/po/sr/hellolib.po +24 -0
  150. data/samples/cgi/po/sr/main.po +80 -0
  151. data/samples/cgi/po/ua/helloerb1.po +62 -0
  152. data/samples/cgi/po/ua/helloerb2.po +54 -0
  153. data/samples/cgi/po/ua/hellolib.po +26 -0
  154. data/samples/cgi/po/ua/main.po +84 -0
  155. data/samples/cgi/po/vi/helloerb1.po +65 -0
  156. data/samples/cgi/po/vi/helloerb2.po +52 -0
  157. data/samples/cgi/po/vi/hellolib.po +24 -0
  158. data/samples/cgi/po/vi/main.po +77 -0
  159. data/samples/cgi/po/zh/helloerb1.po +60 -0
  160. data/samples/cgi/po/zh/helloerb2.po +52 -0
  161. data/samples/cgi/po/zh/hellolib.po +24 -0
  162. data/samples/cgi/po/zh/main.po +80 -0
  163. data/samples/cgi/po/zh_TW/helloerb1.po +67 -0
  164. data/samples/cgi/po/zh_TW/helloerb2.po +54 -0
  165. data/samples/cgi/po/zh_TW/hellolib.po +26 -0
  166. data/samples/cgi/po/zh_TW/main.po +79 -0
  167. data/samples/hello.rb +36 -0
  168. data/samples/hello2.rb +23 -0
  169. data/samples/hello_glade2.glade +70 -0
  170. data/samples/hello_glade2.rb +25 -0
  171. data/samples/hello_gtk2.rb +27 -0
  172. data/samples/hello_noop.rb +31 -0
  173. data/samples/hello_plural.rb +26 -0
  174. data/samples/hello_tk.rb +19 -0
  175. data/samples/makemo.rb +4 -0
  176. data/samples/po/bg/hello.po +24 -0
  177. data/samples/po/bg/hello2.po +31 -0
  178. data/samples/po/bg/hello_glade2.po +31 -0
  179. data/samples/po/bg/hello_gtk.po +23 -0
  180. data/samples/po/bg/hello_noop.po +27 -0
  181. data/samples/po/bg/hello_plural.po +25 -0
  182. data/samples/po/bg/hello_tk.po +23 -0
  183. data/samples/po/bs/hello.po +23 -0
  184. data/samples/po/bs/hello2.po +31 -0
  185. data/samples/po/bs/hello_glade2.po +31 -0
  186. data/samples/po/bs/hello_gtk.po +23 -0
  187. data/samples/po/bs/hello_noop.po +27 -0
  188. data/samples/po/bs/hello_plural.po +26 -0
  189. data/samples/po/bs/hello_tk.po +23 -0
  190. data/samples/po/ca/hello.po +23 -0
  191. data/samples/po/ca/hello2.po +31 -0
  192. data/samples/po/ca/hello_glade2.po +31 -0
  193. data/samples/po/ca/hello_gtk.po +23 -0
  194. data/samples/po/ca/hello_noop.po +27 -0
  195. data/samples/po/ca/hello_plural.po +25 -0
  196. data/samples/po/ca/hello_tk.po +23 -0
  197. data/samples/po/cs/hello.po +23 -0
  198. data/samples/po/cs/hello2.po +31 -0
  199. data/samples/po/cs/hello_glade2.po +37 -0
  200. data/samples/po/cs/hello_gtk.po +23 -0
  201. data/samples/po/cs/hello_noop.po +27 -0
  202. data/samples/po/cs/hello_plural.po +26 -0
  203. data/samples/po/cs/hello_tk.po +23 -0
  204. data/samples/po/de/hello.po +20 -0
  205. data/samples/po/de/hello2.po +28 -0
  206. data/samples/po/de/hello_glade2.po +27 -0
  207. data/samples/po/de/hello_gtk.po +20 -0
  208. data/samples/po/de/hello_noop.po +24 -0
  209. data/samples/po/de/hello_plural.po +25 -0
  210. data/samples/po/de/hello_tk.po +20 -0
  211. data/samples/po/el/hello.po +23 -0
  212. data/samples/po/el/hello2.po +31 -0
  213. data/samples/po/el/hello_glade2.po +31 -0
  214. data/samples/po/el/hello_gtk.po +22 -0
  215. data/samples/po/el/hello_noop.po +27 -0
  216. data/samples/po/el/hello_plural.po +25 -0
  217. data/samples/po/el/hello_tk.po +23 -0
  218. data/samples/po/eo/hello.po +23 -0
  219. data/samples/po/eo/hello2.po +31 -0
  220. data/samples/po/eo/hello_glade2.po +32 -0
  221. data/samples/po/eo/hello_gtk.po +23 -0
  222. data/samples/po/eo/hello_noop.po +27 -0
  223. data/samples/po/eo/hello_plural.po +26 -0
  224. data/samples/po/eo/hello_tk.po +24 -0
  225. data/samples/po/es/hello.po +21 -0
  226. data/samples/po/es/hello2.po +28 -0
  227. data/samples/po/es/hello_glade2.po +28 -0
  228. data/samples/po/es/hello_gtk.po +20 -0
  229. data/samples/po/es/hello_noop.po +24 -0
  230. data/samples/po/es/hello_plural.po +23 -0
  231. data/samples/po/es/hello_tk.po +20 -0
  232. data/samples/po/fr/hello.po +18 -0
  233. data/samples/po/fr/hello2.po +26 -0
  234. data/samples/po/fr/hello_glade2.po +27 -0
  235. data/samples/po/fr/hello_gtk.po +18 -0
  236. data/samples/po/fr/hello_noop.po +22 -0
  237. data/samples/po/fr/hello_plural.po +21 -0
  238. data/samples/po/fr/hello_tk.po +18 -0
  239. data/samples/po/hello.pot +23 -0
  240. data/samples/po/hello2.pot +31 -0
  241. data/samples/po/hello_glade2.pot +32 -0
  242. data/samples/po/hello_gtk.pot +23 -0
  243. data/samples/po/hello_noop.pot +27 -0
  244. data/samples/po/hello_plural.pot +26 -0
  245. data/samples/po/hello_tk.pot +24 -0
  246. data/samples/po/hr/hello.po +23 -0
  247. data/samples/po/hr/hello2.po +31 -0
  248. data/samples/po/hr/hello_glade2.po +31 -0
  249. data/samples/po/hr/hello_gtk.po +23 -0
  250. data/samples/po/hr/hello_noop.po +27 -0
  251. data/samples/po/hr/hello_plural.po +26 -0
  252. data/samples/po/hr/hello_tk.po +23 -0
  253. data/samples/po/hu/hello.po +22 -0
  254. data/samples/po/hu/hello2.po +30 -0
  255. data/samples/po/hu/hello_glade2.po +31 -0
  256. data/samples/po/hu/hello_gtk.po +22 -0
  257. data/samples/po/hu/hello_noop.po +26 -0
  258. data/samples/po/hu/hello_plural.po +25 -0
  259. data/samples/po/hu/hello_tk.po +23 -0
  260. data/samples/po/it/hello.po +20 -0
  261. data/samples/po/it/hello2.po +28 -0
  262. data/samples/po/it/hello_glade2.po +28 -0
  263. data/samples/po/it/hello_gtk.po +21 -0
  264. data/samples/po/it/hello_noop.po +24 -0
  265. data/samples/po/it/hello_plural.po +23 -0
  266. data/samples/po/it/hello_tk.po +21 -0
  267. data/samples/po/ja/hello.po +20 -0
  268. data/samples/po/ja/hello2.po +28 -0
  269. data/samples/po/ja/hello_glade2.po +26 -0
  270. data/samples/po/ja/hello_gtk.po +19 -0
  271. data/samples/po/ja/hello_noop.po +23 -0
  272. data/samples/po/ja/hello_plural.po +21 -0
  273. data/samples/po/ja/hello_tk.po +19 -0
  274. data/samples/po/ko/hello.po +18 -0
  275. data/samples/po/ko/hello2.po +26 -0
  276. data/samples/po/ko/hello_glade2.po +29 -0
  277. data/samples/po/ko/hello_gtk.po +18 -0
  278. data/samples/po/ko/hello_noop.po +22 -0
  279. data/samples/po/ko/hello_plural.po +25 -0
  280. data/samples/po/ko/hello_tk.po +19 -0
  281. data/samples/po/lv/hello.po +24 -0
  282. data/samples/po/lv/hello2.po +32 -0
  283. data/samples/po/lv/hello_glade2.po +38 -0
  284. data/samples/po/lv/hello_gtk.po +24 -0
  285. data/samples/po/lv/hello_noop.po +28 -0
  286. data/samples/po/lv/hello_plural.po +26 -0
  287. data/samples/po/lv/hello_tk.po +24 -0
  288. data/samples/po/nb/hello.po +23 -0
  289. data/samples/po/nb/hello2.po +31 -0
  290. data/samples/po/nb/hello_glade2.po +31 -0
  291. data/samples/po/nb/hello_gtk.po +23 -0
  292. data/samples/po/nb/hello_noop.po +27 -0
  293. data/samples/po/nb/hello_plural.po +26 -0
  294. data/samples/po/nb/hello_tk.po +24 -0
  295. data/samples/po/nl/hello.po +24 -0
  296. data/samples/po/nl/hello2.po +32 -0
  297. data/samples/po/nl/hello_glade2.po +31 -0
  298. data/samples/po/nl/hello_gtk.po +24 -0
  299. data/samples/po/nl/hello_noop.po +28 -0
  300. data/samples/po/nl/hello_plural.po +25 -0
  301. data/samples/po/nl/hello_tk.po +24 -0
  302. data/samples/po/pt_BR/hello.po +21 -0
  303. data/samples/po/pt_BR/hello2.po +29 -0
  304. data/samples/po/pt_BR/hello_glade2.po +29 -0
  305. data/samples/po/pt_BR/hello_gtk.po +21 -0
  306. data/samples/po/pt_BR/hello_noop.po +25 -0
  307. data/samples/po/pt_BR/hello_plural.po +23 -0
  308. data/samples/po/pt_BR/hello_tk.po +21 -0
  309. data/samples/po/ru/hello.po +22 -0
  310. data/samples/po/ru/hello2.po +30 -0
  311. data/samples/po/ru/hello_glade2.po +30 -0
  312. data/samples/po/ru/hello_gtk.po +22 -0
  313. data/samples/po/ru/hello_noop.po +26 -0
  314. data/samples/po/ru/hello_plural.po +28 -0
  315. data/samples/po/ru/hello_tk.po +22 -0
  316. data/samples/po/sr/hello.po +22 -0
  317. data/samples/po/sr/hello2.po +30 -0
  318. data/samples/po/sr/hello_glade2.po +32 -0
  319. data/samples/po/sr/hello_gtk.po +22 -0
  320. data/samples/po/sr/hello_noop.po +26 -0
  321. data/samples/po/sr/hello_plural.po +26 -0
  322. data/samples/po/sr/hello_tk.po +24 -0
  323. data/samples/po/sv/hello.po +20 -0
  324. data/samples/po/sv/hello2.po +28 -0
  325. data/samples/po/sv/hello_glade2.po +28 -0
  326. data/samples/po/sv/hello_gtk.po +20 -0
  327. data/samples/po/sv/hello_noop.po +24 -0
  328. data/samples/po/sv/hello_plural.po +23 -0
  329. data/samples/po/sv/hello_tk.po +20 -0
  330. data/samples/po/test.rb +11 -0
  331. data/samples/po/ua/hello.po +22 -0
  332. data/samples/po/ua/hello2.po +30 -0
  333. data/samples/po/ua/hello_glade2.po +34 -0
  334. data/samples/po/ua/hello_gtk.po +22 -0
  335. data/samples/po/ua/hello_noop.po +26 -0
  336. data/samples/po/ua/hello_plural.po +29 -0
  337. data/samples/po/ua/hello_tk.po +26 -0
  338. data/samples/po/vi/hello.po +23 -0
  339. data/samples/po/vi/hello2.po +31 -0
  340. data/samples/po/vi/hello_glade2.po +38 -0
  341. data/samples/po/vi/hello_gtk.po +23 -0
  342. data/samples/po/vi/hello_noop.po +27 -0
  343. data/samples/po/vi/hello_plural.po +26 -0
  344. data/samples/po/vi/hello_tk.po +24 -0
  345. data/samples/po/zh/hello.po +23 -0
  346. data/samples/po/zh/hello2.po +31 -0
  347. data/samples/po/zh/hello_glade2.po +31 -0
  348. data/samples/po/zh/hello_gtk.po +23 -0
  349. data/samples/po/zh/hello_noop.po +27 -0
  350. data/samples/po/zh/hello_plural.po +25 -0
  351. data/samples/po/zh/hello_tk.po +23 -0
  352. data/samples/po/zh_TW/hello.po +26 -0
  353. data/samples/po/zh_TW/hello2.po +34 -0
  354. data/samples/po/zh_TW/hello_glade2.po +40 -0
  355. data/samples/po/zh_TW/hello_gtk.po +25 -0
  356. data/samples/po/zh_TW/hello_noop.po +30 -0
  357. data/samples/po/zh_TW/hello_plural.po +28 -0
  358. data/samples/po/zh_TW/hello_tk.po +26 -0
  359. data/src/poparser.ry +198 -0
  360. data/test/README +1 -0
  361. data/test/Rakefile +19 -0
  362. data/test/po/cr/plural.po +23 -0
  363. data/test/po/da/plural.po +22 -0
  364. data/test/po/da/plural_error.po +21 -0
  365. data/test/po/fr/plural.po +28 -0
  366. data/test/po/fr/plural_error.po +20 -0
  367. data/test/po/fr/test1.po +23 -0
  368. data/test/po/fr/test2.po +19 -0
  369. data/test/po/fr/test6.po +23 -0
  370. data/test/po/ir/plural.po +23 -0
  371. data/test/po/ja/npgettext.po +46 -0
  372. data/test/po/ja/nsgettext.po +65 -0
  373. data/test/po/ja/pgettext.po +41 -0
  374. data/test/po/ja/plural.po +28 -0
  375. data/test/po/ja/plural_error.po +20 -0
  376. data/test/po/ja/rubyparser.po +43 -0
  377. data/test/po/ja/sgettext.po +47 -0
  378. data/test/po/ja/test1.po +23 -0
  379. data/test/po/ja/test2.po +19 -0
  380. data/test/po/ja/test6.po +23 -0
  381. data/test/po/la/plural.po +23 -0
  382. data/test/po/la/plural_error.po +21 -0
  383. data/test/po/li/plural.po +23 -0
  384. data/test/po/po/plural.po +23 -0
  385. data/test/po/sl/plural.po +24 -0
  386. data/test/test_class_info.rb +80 -0
  387. data/test/test_gettext.rb +274 -0
  388. data/test/test_parser.rb +113 -0
  389. data/test/test_string.rb +14 -0
  390. data/test/test_textdomain.rb +25 -0
  391. data/test/test_textdomain_multi.rb +69 -0
  392. data/test/test_textdomain_toplevel.rb +42 -0
  393. data/test/testlib/N_.rb +66 -0
  394. data/test/testlib/erb.rhtml +15 -0
  395. data/test/testlib/erb.rxml +16 -0
  396. data/test/testlib/gettext.rb +96 -0
  397. data/test/testlib/gladeparser.glade +183 -0
  398. data/test/testlib/helper.rb +11 -0
  399. data/test/testlib/multi_textdomain.rb +119 -0
  400. data/test/testlib/ngettext.rb +74 -0
  401. data/test/testlib/npgettext.rb +31 -0
  402. data/test/testlib/nsgettext.rb +42 -0
  403. data/test/testlib/pgettext.rb +31 -0
  404. data/test/testlib/sgettext.rb +46 -0
  405. data/test/testlib/simple.rb +14 -0
  406. metadata +509 -0
data/po/vi/rgettext.po ADDED
@@ -0,0 +1,148 @@
1
+ #
2
+ # a po-file for Ruby-GetText-Package
3
+ #
4
+ # Copyright (C) 2004-2008 Masao Mutoh
5
+ #
6
+ # This file is distributed under the same license as the Ruby-GetText-Package.
7
+ #
8
+ # Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007,2008.
9
+ #
10
+ msgid ""
11
+ msgstr ""
12
+ "Project-Id-Version: ruby-gettext 1.93.0\n"
13
+ "POT-Creation-Date: 2008-10-07 00:13+0900\n"
14
+ "PO-Revision-Date: 2008-07-13 21:28+0900\n"
15
+ "Last-Translator: Ngoc Dao <ngocdaothanh@gmail.com>\n"
16
+ "Language-Team: Vietnamese\n"
17
+ "MIME-Version: 1.0\n"
18
+ "Content-Type: text/plain; charset=UTF-8\n"
19
+ "Content-Transfer-Encoding: 8bit\n"
20
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21
+
22
+ #: lib/gettext/utils.rb:68
23
+ msgid ""
24
+ "`%{cmd}' may not be found. \n"
25
+ "Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
26
+ msgstr ""
27
+
28
+ #: lib/gettext/utils.rb:80
29
+ msgid "Failed to merge with %{defpo}"
30
+ msgstr "Không thể trộn với %{defpo}"
31
+
32
+ #: lib/gettext/utils.rb:81
33
+ msgid "New .pot was copied to %{failed_filename}"
34
+ msgstr "Tập tin .pot mới đã được copy thành %{failed_filename}"
35
+
36
+ #: lib/gettext/utils.rb:82
37
+ msgid "Check these po/pot-files. It may have syntax errors or something wrong."
38
+ msgstr ""
39
+ "Hãy kiểm tra những tập tin po/pot này. Có thể do có lỗi cú pháp hay gì đó."
40
+
41
+ #: lib/gettext/rgettext.rb:43
42
+ msgid "'%{klass}' is ignored."
43
+ msgstr "'%{klass}' đã được bỏ qua."
44
+
45
+ #: lib/gettext/rgettext.rb:189
46
+ msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
47
+ msgstr "Cách sử dụng: %s input.rb [-r parser.rb] [-o output.pot]"
48
+
49
+ #: lib/gettext/rgettext.rb:191
50
+ msgid "Extract translatable strings from given input files."
51
+ msgstr "Trích chuỗi cần dịch từ những tập tin đầu vào."
52
+
53
+ #: lib/gettext/rgettext.rb:193 lib/gettext/rmsgfmt.rb:51
54
+ #: lib/gettext/rmsgmerge.rb:408
55
+ msgid "Specific options:"
56
+ msgstr "Tùy chọn cụ thể:"
57
+
58
+ #: lib/gettext/rgettext.rb:195 lib/gettext/rmsgfmt.rb:53
59
+ #: lib/gettext/rmsgmerge.rb:410
60
+ msgid "write output to specified file"
61
+ msgstr "ghi ra tập tin được chỉ định"
62
+
63
+ #: lib/gettext/rgettext.rb:199
64
+ msgid "File '%s' already exists."
65
+ msgstr "Tập tin '%s' đã tồn tại."
66
+
67
+ #: lib/gettext/rgettext.rb:204
68
+ msgid "require the library before executing rgettext"
69
+ msgstr "require thư viện trước khi chạy rgettext"
70
+
71
+ #: lib/gettext/rgettext.rb:208
72
+ msgid "run in debugging mode"
73
+ msgstr "chạy trong chế độ debug"
74
+
75
+ #: lib/gettext/rgettext.rb:212 lib/gettext/rmsgfmt.rb:57
76
+ #: lib/gettext/rmsgmerge.rb:421
77
+ msgid "display version information and exit"
78
+ msgstr "hiện thông tin về phiên bản rồi thoát"
79
+
80
+ #: lib/gettext/rgettext.rb:236 lib/gettext/rmsgfmt.rb:31
81
+ msgid "no input files"
82
+ msgstr "không có tập tin đầu vào"
83
+
84
+ #: lib/gettext/rmsgfmt.rb:47
85
+ msgid "Usage: %s input.po [-o output.mo]"
86
+ msgstr "Cách sử dụng: %s input.po [-o output.mo]"
87
+
88
+ #: lib/gettext/rmsgfmt.rb:49
89
+ msgid "Generate binary message catalog from textual translation description."
90
+ msgstr "Sinh message catalog nhị phân từ chuỗi văn bản."
91
+
92
+ #: lib/gettext/rmsgmerge.rb:403
93
+ msgid "Usage: %s def.po ref.pot [-o output.pot]"
94
+ msgstr "Cách sử dụng: %s def.po ref.pot [-o output.pot]"
95
+
96
+ #: lib/gettext/rmsgmerge.rb:406
97
+ msgid ""
98
+ "Merges two Uniforum style .po files together. The def.po file is an existing "
99
+ "PO file with translations. The ref.pot file is the last created PO file with "
100
+ "up-to-date source references. ref.pot is generally created by rgettext."
101
+ msgstr ""
102
+ "Trộn hai tập tin .po kiểu Uniforum. Tập tin def.po là tập tin đã tồn tại PO "
103
+ "có chứa lời dịch. Tập tin ref.pot là tập tin PO được tạo ra lần trước có "
104
+ "chứa tham chiếu mới nhất. ref.pot thường do rgettext tạo ra."
105
+
106
+ #: lib/gettext/rmsgmerge.rb:447
107
+ msgid "definition po is not given."
108
+ msgstr "tập tin định nghĩa po đã không được chỉ định."
109
+
110
+ #: lib/gettext/rmsgmerge.rb:449
111
+ msgid "reference pot is not given."
112
+ msgstr "tập tin tham chiếu pot đã không được chỉ định."
113
+
114
+ #: lib/gettext/parser/glade.rb:74
115
+ msgid "`%{file}' is not glade-2.0 format."
116
+ msgstr "`%{file}' không có định dạng là glade-2.0."
117
+
118
+ #: lib/gettext/parser/active_record.rb:39
119
+ msgid "'%{file}' is not found."
120
+ msgstr "Không tìm thấy '%{file}'."
121
+
122
+ #: lib/gettext/parser/active_record.rb:80
123
+ msgid "Ignored '%{file}'. Solve dependencies first."
124
+ msgstr "Bỏ qua '%{file}'. Hãy giải quyết dependency trước."
125
+
126
+ #: lib/gettext/parser/active_record.rb:104
127
+ msgid "No database is available."
128
+ msgstr "Không có cơ sở dữ liệu."
129
+
130
+ #: lib/gettext/parser/active_record.rb:140
131
+ msgid "rubygems are not found."
132
+ msgstr "Không tìm thấy rubygems."
133
+
134
+ #: lib/gettext.rb:417
135
+ msgid "3rd parmeter is wrong: value = %{number}"
136
+ msgstr "Tham số thứ 3 sai: giá trị = %{number}"
137
+
138
+ #: lib/gettext.rb:607
139
+ msgid "XX"
140
+ msgstr ""
141
+
142
+ #: src/poparser.ry:38 src/poparser.ry:55
143
+ msgid "Warning: fuzzy message was ignored.\n"
144
+ msgstr "Cảnh báo: fuzzy message đã bị bỏ qua.\n"
145
+
146
+ #: src/poparser.ry:148
147
+ msgid "Warning: obsolete msgid exists.\n"
148
+ msgstr "Cảnh báo: tồn tại obsolete msgid.\n"
data/po/zh/rgettext.po ADDED
@@ -0,0 +1,149 @@
1
+ # translation of rgettext.po to Simplified Chinese
2
+ #
3
+ # a po-file for Ruby-GetText-Package
4
+ #
5
+ # Copyright (C) 2006-2008 Masao Mutoh
6
+ #
7
+ # This file is distributed under the same license as the Ruby-GetText-Package.
8
+ #
9
+ # Yang Bob <bob.yang.dev at gmail.com>, 2006-2008.
10
+ # Yingfeng <blogyingfeng at gmail.com>, 2006.
11
+ #
12
+ msgid ""
13
+ msgstr ""
14
+ "Project-Id-Version: ruby-gettext 1.93.0\n"
15
+ "POT-Creation-Date: 2008-10-07 00:13+0900\n"
16
+ "PO-Revision-Date: 2006-04-15 13:11+0300\n"
17
+ "Last-Translator: Yang Bob <bob.yang.dev at gmail.com>\n"
18
+ "Language-Team: Simplified Chinese\n"
19
+ "MIME-Version: 1.0\n"
20
+ "Content-Type: text/plain; charset=UTF-8\n"
21
+ "Content-Transfer-Encoding: 8bit\n"
22
+ "Plural-Forms: nplurals=1; plural=0;\n"
23
+ "X-Generator: KBabel 1.9.1\n"
24
+
25
+ #: lib/gettext/utils.rb:68
26
+ msgid ""
27
+ "`%{cmd}' may not be found. \n"
28
+ "Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
29
+ msgstr ""
30
+
31
+ #: lib/gettext/utils.rb:80
32
+ msgid "Failed to merge with %{defpo}"
33
+ msgstr "不能与 %{defpo} 合并"
34
+
35
+ #: lib/gettext/utils.rb:81
36
+ msgid "New .pot was copied to %{failed_filename}"
37
+ msgstr "新的 .pot 被复制到 %{failed_filename} 去了"
38
+
39
+ #: lib/gettext/utils.rb:82
40
+ msgid "Check these po/pot-files. It may have syntax errors or something wrong."
41
+ msgstr "检查这些 po/pot-文件。它们可能有语法或者其他错误。"
42
+
43
+ #: lib/gettext/rgettext.rb:43
44
+ msgid "'%{klass}' is ignored."
45
+ msgstr "'%{klass}'被忽略。"
46
+
47
+ #: lib/gettext/rgettext.rb:189
48
+ msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
49
+ msgstr "使用方法:%s input.rb [-r parser.rb] [-o output.pot]"
50
+
51
+ #: lib/gettext/rgettext.rb:191
52
+ msgid "Extract translatable strings from given input files."
53
+ msgstr "从给定输入文件中提取翻译字符串。"
54
+
55
+ #: lib/gettext/rgettext.rb:193 lib/gettext/rmsgfmt.rb:51
56
+ #: lib/gettext/rmsgmerge.rb:408
57
+ msgid "Specific options:"
58
+ msgstr "具体选项:"
59
+
60
+ #: lib/gettext/rgettext.rb:195 lib/gettext/rmsgfmt.rb:53
61
+ #: lib/gettext/rmsgmerge.rb:410
62
+ msgid "write output to specified file"
63
+ msgstr "输出到指定文件"
64
+
65
+ #: lib/gettext/rgettext.rb:199
66
+ msgid "File '%s' already exists."
67
+ msgstr "文件'%s'已经存在。"
68
+
69
+ #: lib/gettext/rgettext.rb:204
70
+ msgid "require the library before executing rgettext"
71
+ msgstr "在执行 rgettext 之前需要一个库"
72
+
73
+ #: lib/gettext/rgettext.rb:208
74
+ msgid "run in debugging mode"
75
+ msgstr "运行于调试模式"
76
+
77
+ #: lib/gettext/rgettext.rb:212 lib/gettext/rmsgfmt.rb:57
78
+ #: lib/gettext/rmsgmerge.rb:421
79
+ msgid "display version information and exit"
80
+ msgstr "显示版本信息并退出"
81
+
82
+ #: lib/gettext/rgettext.rb:236 lib/gettext/rmsgfmt.rb:31
83
+ msgid "no input files"
84
+ msgstr "没有输入文件"
85
+
86
+ #: lib/gettext/rmsgfmt.rb:47
87
+ msgid "Usage: %s input.po [-o output.mo]"
88
+ msgstr "使用方法: %s input.po [-o output.mo]"
89
+
90
+ #: lib/gettext/rmsgfmt.rb:49
91
+ msgid "Generate binary message catalog from textual translation description."
92
+ msgstr "从文本叙述翻译生成二进制信息目录。"
93
+
94
+ #: lib/gettext/rmsgmerge.rb:403
95
+ msgid "Usage: %s def.po ref.pot [-o output.pot]"
96
+ msgstr "使用方法:%s def.po ref.pot [-o output.pot]"
97
+
98
+ #: lib/gettext/rmsgmerge.rb:406
99
+ msgid ""
100
+ "Merges two Uniforum style .po files together. The def.po file is an existing "
101
+ "PO file with translations. The ref.pot file is the last created PO file with "
102
+ "up-to-date source references. ref.pot is generally created by rgettext."
103
+ msgstr ""
104
+ "合并两个同样形式的 po 文件, def.po 是原來有翻译的文件,ref.pot 是经过原始码"
105
+ "更新过的新文件,ref.pot 一般是由 rgettext 建立的。"
106
+
107
+ #: lib/gettext/rmsgmerge.rb:447
108
+ msgid "definition po is not given."
109
+ msgstr "po的定义未给出。"
110
+
111
+ #: lib/gettext/rmsgmerge.rb:449
112
+ msgid "reference pot is not given."
113
+ msgstr "参考pot未指定。"
114
+
115
+ #: lib/gettext/parser/glade.rb:74
116
+ msgid "`%{file}' is not glade-2.0 format."
117
+ msgstr "`%{file}'不是glade-2.0格式。"
118
+
119
+ #: lib/gettext/parser/active_record.rb:39
120
+ msgid "'%{file}' is not found."
121
+ msgstr "'%{file}'未找到。"
122
+
123
+ #: lib/gettext/parser/active_record.rb:80
124
+ msgid "Ignored '%{file}'. Solve dependencies first."
125
+ msgstr "'%{file}'被忽略,请先解决依赖关系。"
126
+
127
+ #: lib/gettext/parser/active_record.rb:104
128
+ msgid "No database is available."
129
+ msgstr "没有可用的数据库。"
130
+
131
+ #: lib/gettext/parser/active_record.rb:140
132
+ msgid "rubygems are not found."
133
+ msgstr "未找到rubygems"
134
+
135
+ #: lib/gettext.rb:417
136
+ msgid "3rd parmeter is wrong: value = %{number}"
137
+ msgstr "第三个参数错误:value = %{number}"
138
+
139
+ #: lib/gettext.rb:607
140
+ msgid "XX"
141
+ msgstr ""
142
+
143
+ #: src/poparser.ry:38 src/poparser.ry:55
144
+ msgid "Warning: fuzzy message was ignored.\n"
145
+ msgstr "警告:不明确信息(fuzzy message)已被忽略。"
146
+
147
+ #: src/poparser.ry:148
148
+ msgid "Warning: obsolete msgid exists.\n"
149
+ msgstr "警告:存在过期的msgid。"
@@ -0,0 +1,148 @@
1
+ #
2
+ # a po-file for Ruby-GetText-Package
3
+ #
4
+ # Copyright (C) 2004-2008 Masao Mutoh
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # Yang Bob <bob.yang.dev at gmail.com>, 2006-2008.
8
+ # LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
9
+ #
10
+ msgid ""
11
+ msgstr ""
12
+ "Project-Id-Version: ruby-gettext 1.93.0\n"
13
+ "POT-Creation-Date: 2008-10-07 00:13+0900\n"
14
+ "PO-Revision-Date: 2006-08-21 09:39+0800\n"
15
+ "Last-Translator: Yang Bob <bob.yang.dev at gmail.com>\n"
16
+ "Language-Team: zh_TW <xmarsh at gmail.com>\n"
17
+ "MIME-Version: 1.0\n"
18
+ "Content-Type: text/plain; charset=UTF-8\n"
19
+ "Content-Transfer-Encoding: 8bit\n"
20
+ "Plural-Forms: nplurals=1; plural=0;\n"
21
+ "X-Poedit-Language: Chinese\n"
22
+ "X-Poedit-Country: TAIWAN\n"
23
+
24
+ #: lib/gettext/utils.rb:68
25
+ msgid ""
26
+ "`%{cmd}' may not be found. \n"
27
+ "Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
28
+ msgstr ""
29
+
30
+ #: lib/gettext/utils.rb:80
31
+ msgid "Failed to merge with %{defpo}"
32
+ msgstr "不能與 %{defpo} 合併"
33
+
34
+ #: lib/gettext/utils.rb:81
35
+ msgid "New .pot was copied to %{failed_filename}"
36
+ msgstr "新的 .pot 被复制為 %{failed_filename} 了"
37
+
38
+ #: lib/gettext/utils.rb:82
39
+ msgid "Check these po/pot-files. It may have syntax errors or something wrong."
40
+ msgstr "檢査这些 po/pot-文件。它们可能有語法或者其他錯誤。"
41
+
42
+ #: lib/gettext/rgettext.rb:43
43
+ msgid "'%{klass}' is ignored."
44
+ msgstr "'%{klass}' 忽略"
45
+
46
+ #: lib/gettext/rgettext.rb:189
47
+ msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
48
+ msgstr "使用: %s input.rb [-r parser.rb] [-o output.pot]"
49
+
50
+ #: lib/gettext/rgettext.rb:191
51
+ msgid "Extract translatable strings from given input files."
52
+ msgstr "從輸入檔中取出翻譯字串"
53
+
54
+ #: lib/gettext/rgettext.rb:193 lib/gettext/rmsgfmt.rb:51
55
+ #: lib/gettext/rmsgmerge.rb:408
56
+ msgid "Specific options:"
57
+ msgstr "特殊選項:"
58
+
59
+ #: lib/gettext/rgettext.rb:195 lib/gettext/rmsgfmt.rb:53
60
+ #: lib/gettext/rmsgmerge.rb:410
61
+ msgid "write output to specified file"
62
+ msgstr "輸出到指定檔案"
63
+
64
+ #: lib/gettext/rgettext.rb:199
65
+ msgid "File '%s' already exists."
66
+ msgstr "檔案 '%s' 已經存在"
67
+
68
+ #: lib/gettext/rgettext.rb:204
69
+ msgid "require the library before executing rgettext"
70
+ msgstr "在執行 rgettext 之前需要一個庫"
71
+
72
+ #: lib/gettext/rgettext.rb:208
73
+ msgid "run in debugging mode"
74
+ msgstr "執行除錯模式"
75
+
76
+ #: lib/gettext/rgettext.rb:212 lib/gettext/rmsgfmt.rb:57
77
+ #: lib/gettext/rmsgmerge.rb:421
78
+ msgid "display version information and exit"
79
+ msgstr "秀出版本資訊後退出"
80
+
81
+ #: lib/gettext/rgettext.rb:236 lib/gettext/rmsgfmt.rb:31
82
+ msgid "no input files"
83
+ msgstr "無輸入檔"
84
+
85
+ #: lib/gettext/rmsgfmt.rb:47
86
+ msgid "Usage: %s input.po [-o output.mo]"
87
+ msgstr "使用: %s input.po [-o output.mo]"
88
+
89
+ #: lib/gettext/rmsgfmt.rb:49
90
+ msgid "Generate binary message catalog from textual translation description."
91
+ msgstr "從textual translation description產生二進位訊息 catalog"
92
+
93
+ #: lib/gettext/rmsgmerge.rb:403
94
+ msgid "Usage: %s def.po ref.pot [-o output.pot]"
95
+ msgstr "使用: %s def.po ref.pot [-o output.pot]"
96
+
97
+ #: lib/gettext/rmsgmerge.rb:406
98
+ msgid ""
99
+ "Merges two Uniforum style .po files together. The def.po file is an existing "
100
+ "PO file with translations. The ref.pot file is the last created PO file with "
101
+ "up-to-date source references. ref.pot is generally created by rgettext."
102
+ msgstr ""
103
+ "合併兩同樣形式的 po 檔, def.po 檔是原來有翻譯的檔案,ref.pot 檔是經過原始碼"
104
+ "更新過的新檔,ref.pot 一般是由rgettext 建立。"
105
+
106
+ #: lib/gettext/rmsgmerge.rb:447
107
+ msgid "definition po is not given."
108
+ msgstr "沒有指定PO檔"
109
+
110
+ #: lib/gettext/rmsgmerge.rb:449
111
+ msgid "reference pot is not given."
112
+ msgstr "沒指定參考pot檔"
113
+
114
+ #: lib/gettext/parser/glade.rb:74
115
+ msgid "`%{file}' is not glade-2.0 format."
116
+ msgstr "`%{file}' 不是 glade-2.0 格式"
117
+
118
+ #: lib/gettext/parser/active_record.rb:39
119
+ msgid "'%{file}' is not found."
120
+ msgstr "'%{file}' 找不到"
121
+
122
+ #: lib/gettext/parser/active_record.rb:80
123
+ msgid "Ignored '%{file}'. Solve dependencies first."
124
+ msgstr "忽略檔案 '%{file}'. 先解決相依問題。"
125
+
126
+ #: lib/gettext/parser/active_record.rb:104
127
+ msgid "No database is available."
128
+ msgstr "無資料庫可用"
129
+
130
+ #: lib/gettext/parser/active_record.rb:140
131
+ msgid "rubygems are not found."
132
+ msgstr "找不到 rubygems"
133
+
134
+ #: lib/gettext.rb:417
135
+ msgid "3rd parmeter is wrong: value = %{number}"
136
+ msgstr "第三个参数錯誤:value = %{number}"
137
+
138
+ #: lib/gettext.rb:607
139
+ msgid "XX"
140
+ msgstr ""
141
+
142
+ #: src/poparser.ry:38 src/poparser.ry:55
143
+ msgid "Warning: fuzzy message was ignored.\n"
144
+ msgstr "警告: fuzzy 訊息被忽略\n"
145
+
146
+ #: src/poparser.ry:148
147
+ msgid "Warning: obsolete msgid exists.\n"
148
+ msgstr "警告: 存在過時的 msgid.\n"
data/samples/README ADDED
@@ -0,0 +1,16 @@
1
+ Sample scripts for Ruby-GetText-Package.
2
+
3
+ $ruby makemo.rb
4
+ $ruby sample_script.rb
5
+
6
+ hello.rb - Basic sample
7
+ hello2.rb - Basic sample2 (using printf)
8
+ hello_noop.rb - N_ sample
9
+ hello_plural.rb - n_ sample
10
+ hello_gtk.rb - Ruby/GTK2 sample
11
+ hello_tk.rb - Ruby/TK sample
12
+ hello_glade2.rb - Ruby/Glade2 sample
13
+
14
+ makemo.rb - Create mo files from po files.
15
+
16
+ cgi/* - CGI/ERB sample (See cgi/README)