gettext 2.2.1 → 2.3.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 (500) hide show
  1. data/COPYING +2 -1
  2. data/README.rdoc +9 -9
  3. data/Rakefile +94 -149
  4. data/bin/rmsgfmt +23 -20
  5. data/bin/rmsginit +29 -0
  6. data/bin/rmsgmerge +22 -20
  7. data/bin/rxgettext +24 -0
  8. data/doc/text/news.md +60 -0
  9. data/gettext.gemspec +7 -4
  10. data/lib/gettext.rb +3 -3
  11. data/lib/gettext/core_ext/string.rb +2 -1
  12. data/lib/gettext/runtime/locale_path.rb +6 -4
  13. data/lib/gettext/runtime/textdomain.rb +14 -8
  14. data/lib/gettext/runtime/textdomain_manager.rb +3 -3
  15. data/lib/gettext/task.rb +203 -0
  16. data/lib/gettext/tools.rb +33 -24
  17. data/lib/gettext/tools/msgfmt.rb +104 -0
  18. data/lib/gettext/tools/msginit.rb +363 -0
  19. data/lib/gettext/tools/msgmerge.rb +510 -0
  20. data/lib/gettext/tools/parser/ruby.rb +12 -17
  21. data/lib/gettext/tools/pomessage.rb +37 -4
  22. data/lib/gettext/tools/poparser.rb +27 -24
  23. data/lib/gettext/tools/xgettext.rb +327 -0
  24. data/lib/gettext/version.rb +2 -2
  25. data/po/bg/rgettext.po +2 -2
  26. data/po/bs/rgettext.po +2 -2
  27. data/po/ca/rgettext.po +2 -2
  28. data/po/cs/rgettext.po +2 -2
  29. data/po/de/gettext.po +668 -0
  30. data/po/de/gettext.po.bak +589 -0
  31. data/po/de/rgettext.po +2 -2
  32. data/po/el/gettext.po +571 -0
  33. data/po/el/rgettext.po +2 -2
  34. data/po/eo/rgettext.po +2 -2
  35. data/po/es/rgettext.po +2 -2
  36. data/po/et/rgettext.po +2 -2
  37. data/po/fr/gettext.po +589 -0
  38. data/po/fr/rgettext.po +2 -2
  39. data/po/gettext.pot +638 -0
  40. data/po/gettext.pot~ +638 -0
  41. data/po/hr/rgettext.po +2 -2
  42. data/po/hu/rgettext.po +2 -2
  43. data/po/it/gettext.po +589 -0
  44. data/po/it/rgettext.po +2 -2
  45. data/po/ja/gettext.po +591 -0
  46. data/po/ja/rgettext.po +112 -69
  47. data/po/ko/rgettext.po +2 -2
  48. data/po/lv/rgettext.po +2 -2
  49. data/po/nb/rgettext.po +2 -2
  50. data/po/nl/rgettext.po +2 -2
  51. data/po/pt_BR/rgettext.po +2 -2
  52. data/po/ru/rgettext.po +2 -2
  53. data/po/sr/rgettext.po +2 -2
  54. data/po/sv/rgettext.po +2 -2
  55. data/po/uk/gettext.po +571 -0
  56. data/po/uk/rgettext.po +2 -2
  57. data/po/vi/rgettext.po +2 -2
  58. data/po/zh/rgettext.po +2 -2
  59. data/po/zh_TW/rgettext.po +2 -2
  60. data/samples/README +2 -4
  61. data/samples/cgi/README +1 -1
  62. data/samples/cgi/cookie.cgi +1 -1
  63. data/samples/cgi/gettext.css +1 -1
  64. data/samples/cgi/helloerb.rhtml +1 -1
  65. data/samples/cgi/hellolib.rb +1 -1
  66. data/samples/cgi/http.rb +2 -2
  67. data/samples/cgi/index.cgi +1 -1
  68. data/samples/cgi/locale/bg/LC_MESSAGES/helloerb1.mo +0 -0
  69. data/samples/cgi/locale/bg/LC_MESSAGES/helloerb2.mo +0 -0
  70. data/samples/cgi/locale/bg/LC_MESSAGES/main.mo +0 -0
  71. data/samples/cgi/locale/bs/LC_MESSAGES/helloerb1.mo +0 -0
  72. data/samples/cgi/locale/bs/LC_MESSAGES/helloerb2.mo +0 -0
  73. data/samples/cgi/locale/bs/LC_MESSAGES/main.mo +0 -0
  74. data/samples/cgi/locale/ca/LC_MESSAGES/helloerb1.mo +0 -0
  75. data/samples/cgi/locale/ca/LC_MESSAGES/helloerb2.mo +0 -0
  76. data/samples/cgi/locale/ca/LC_MESSAGES/main.mo +0 -0
  77. data/samples/cgi/locale/cs/LC_MESSAGES/helloerb1.mo +0 -0
  78. data/samples/cgi/locale/cs/LC_MESSAGES/helloerb2.mo +0 -0
  79. data/samples/cgi/locale/cs/LC_MESSAGES/main.mo +0 -0
  80. data/samples/cgi/locale/de/LC_MESSAGES/helloerb1.mo +0 -0
  81. data/samples/cgi/locale/de/LC_MESSAGES/helloerb2.mo +0 -0
  82. data/samples/cgi/locale/de/LC_MESSAGES/main.mo +0 -0
  83. data/samples/cgi/locale/el/LC_MESSAGES/helloerb1.mo +0 -0
  84. data/samples/cgi/locale/el/LC_MESSAGES/helloerb2.mo +0 -0
  85. data/samples/cgi/locale/el/LC_MESSAGES/main.mo +0 -0
  86. data/samples/cgi/locale/eo/LC_MESSAGES/helloerb1.mo +0 -0
  87. data/samples/cgi/locale/eo/LC_MESSAGES/helloerb2.mo +0 -0
  88. data/samples/cgi/locale/eo/LC_MESSAGES/main.mo +0 -0
  89. data/samples/cgi/locale/es/LC_MESSAGES/helloerb1.mo +0 -0
  90. data/samples/cgi/locale/es/LC_MESSAGES/helloerb2.mo +0 -0
  91. data/samples/cgi/locale/es/LC_MESSAGES/main.mo +0 -0
  92. data/samples/cgi/locale/fr/LC_MESSAGES/helloerb1.mo +0 -0
  93. data/samples/cgi/locale/fr/LC_MESSAGES/helloerb2.mo +0 -0
  94. data/samples/cgi/locale/fr/LC_MESSAGES/main.mo +0 -0
  95. data/samples/cgi/locale/hr/LC_MESSAGES/helloerb1.mo +0 -0
  96. data/samples/cgi/locale/hr/LC_MESSAGES/helloerb2.mo +0 -0
  97. data/samples/cgi/locale/hr/LC_MESSAGES/main.mo +0 -0
  98. data/samples/cgi/locale/hu/LC_MESSAGES/helloerb1.mo +0 -0
  99. data/samples/cgi/locale/hu/LC_MESSAGES/helloerb2.mo +0 -0
  100. data/samples/cgi/locale/hu/LC_MESSAGES/main.mo +0 -0
  101. data/samples/cgi/locale/it/LC_MESSAGES/helloerb1.mo +0 -0
  102. data/samples/cgi/locale/it/LC_MESSAGES/helloerb2.mo +0 -0
  103. data/samples/cgi/locale/it/LC_MESSAGES/main.mo +0 -0
  104. data/samples/cgi/locale/ja/LC_MESSAGES/helloerb1.mo +0 -0
  105. data/samples/cgi/locale/ja/LC_MESSAGES/helloerb2.mo +0 -0
  106. data/samples/cgi/locale/ja/LC_MESSAGES/main.mo +0 -0
  107. data/samples/cgi/locale/ko/LC_MESSAGES/helloerb1.mo +0 -0
  108. data/samples/cgi/locale/ko/LC_MESSAGES/helloerb2.mo +0 -0
  109. data/samples/cgi/locale/ko/LC_MESSAGES/main.mo +0 -0
  110. data/samples/cgi/locale/lv/LC_MESSAGES/helloerb1.mo +0 -0
  111. data/samples/cgi/locale/lv/LC_MESSAGES/helloerb2.mo +0 -0
  112. data/samples/cgi/locale/lv/LC_MESSAGES/main.mo +0 -0
  113. data/samples/cgi/locale/nb/LC_MESSAGES/helloerb1.mo +0 -0
  114. data/samples/cgi/locale/nb/LC_MESSAGES/helloerb2.mo +0 -0
  115. data/samples/cgi/locale/nb/LC_MESSAGES/main.mo +0 -0
  116. data/samples/cgi/locale/nl/LC_MESSAGES/helloerb1.mo +0 -0
  117. data/samples/cgi/locale/nl/LC_MESSAGES/helloerb2.mo +0 -0
  118. data/samples/cgi/locale/nl/LC_MESSAGES/main.mo +0 -0
  119. data/samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb1.mo +0 -0
  120. data/samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb2.mo +0 -0
  121. data/samples/cgi/locale/pt_BR/LC_MESSAGES/main.mo +0 -0
  122. data/samples/cgi/locale/ru/LC_MESSAGES/helloerb1.mo +0 -0
  123. data/samples/cgi/locale/ru/LC_MESSAGES/helloerb2.mo +0 -0
  124. data/samples/cgi/locale/ru/LC_MESSAGES/main.mo +0 -0
  125. data/samples/cgi/locale/sr/LC_MESSAGES/helloerb1.mo +0 -0
  126. data/samples/cgi/locale/sr/LC_MESSAGES/helloerb2.mo +0 -0
  127. data/samples/cgi/locale/sr/LC_MESSAGES/main.mo +0 -0
  128. data/samples/cgi/locale/uk/LC_MESSAGES/helloerb1.mo +0 -0
  129. data/samples/cgi/locale/uk/LC_MESSAGES/helloerb2.mo +0 -0
  130. data/samples/cgi/locale/uk/LC_MESSAGES/main.mo +0 -0
  131. data/samples/cgi/locale/vi/LC_MESSAGES/helloerb1.mo +0 -0
  132. data/samples/cgi/locale/vi/LC_MESSAGES/helloerb2.mo +0 -0
  133. data/samples/cgi/locale/vi/LC_MESSAGES/main.mo +0 -0
  134. data/samples/cgi/locale/zh/LC_MESSAGES/helloerb1.mo +0 -0
  135. data/samples/cgi/locale/zh/LC_MESSAGES/helloerb2.mo +0 -0
  136. data/samples/cgi/locale/zh/LC_MESSAGES/main.mo +0 -0
  137. data/samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb1.mo +0 -0
  138. data/samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb2.mo +0 -0
  139. data/samples/cgi/locale/zh_TW/LC_MESSAGES/main.mo +0 -0
  140. data/samples/cgi/other.rhtml +1 -1
  141. data/samples/cgi/po/bg/helloerb1.po +4 -4
  142. data/samples/cgi/po/bg/helloerb2.po +4 -4
  143. data/samples/cgi/po/bg/hellolib.po +2 -2
  144. data/samples/cgi/po/bg/main.po +4 -4
  145. data/samples/cgi/po/bs/helloerb1.po +3 -3
  146. data/samples/cgi/po/bs/helloerb2.po +3 -3
  147. data/samples/cgi/po/bs/hellolib.po +2 -2
  148. data/samples/cgi/po/bs/main.po +3 -3
  149. data/samples/cgi/po/ca/helloerb1.po +4 -4
  150. data/samples/cgi/po/ca/helloerb2.po +4 -4
  151. data/samples/cgi/po/ca/hellolib.po +2 -2
  152. data/samples/cgi/po/ca/main.po +4 -4
  153. data/samples/cgi/po/cs/helloerb1.po +4 -4
  154. data/samples/cgi/po/cs/helloerb2.po +4 -4
  155. data/samples/cgi/po/cs/hellolib.po +2 -2
  156. data/samples/cgi/po/cs/main.po +4 -4
  157. data/samples/cgi/po/de/helloerb1.po +3 -3
  158. data/samples/cgi/po/de/helloerb2.po +3 -3
  159. data/samples/cgi/po/de/hellolib.po +2 -2
  160. data/samples/cgi/po/de/main.po +3 -3
  161. data/samples/cgi/po/el/helloerb1.po +3 -3
  162. data/samples/cgi/po/el/helloerb2.po +3 -3
  163. data/samples/cgi/po/el/hellolib.po +2 -2
  164. data/samples/cgi/po/el/main.po +3 -3
  165. data/samples/cgi/po/eo/helloerb1.po +3 -3
  166. data/samples/cgi/po/eo/helloerb2.po +3 -3
  167. data/samples/cgi/po/eo/hellolib.po +2 -2
  168. data/samples/cgi/po/eo/main.po +3 -3
  169. data/samples/cgi/po/es/helloerb1.po +4 -4
  170. data/samples/cgi/po/es/helloerb2.po +4 -4
  171. data/samples/cgi/po/es/hellolib.po +2 -2
  172. data/samples/cgi/po/es/main.po +4 -4
  173. data/samples/cgi/po/fr/helloerb1.po +4 -4
  174. data/samples/cgi/po/fr/helloerb2.po +4 -4
  175. data/samples/cgi/po/fr/hellolib.po +2 -2
  176. data/samples/cgi/po/fr/main.po +4 -4
  177. data/samples/cgi/po/hr/helloerb1.po +3 -3
  178. data/samples/cgi/po/hr/helloerb2.po +3 -3
  179. data/samples/cgi/po/hr/hellolib.po +2 -2
  180. data/samples/cgi/po/hr/main.po +3 -3
  181. data/samples/cgi/po/hu/helloerb1.po +4 -4
  182. data/samples/cgi/po/hu/helloerb2.po +4 -4
  183. data/samples/cgi/po/hu/hellolib.po +2 -2
  184. data/samples/cgi/po/hu/main.po +4 -4
  185. data/samples/cgi/po/it/helloerb1.po +3 -3
  186. data/samples/cgi/po/it/helloerb2.po +3 -3
  187. data/samples/cgi/po/it/hellolib.po +2 -2
  188. data/samples/cgi/po/it/main.po +3 -3
  189. data/samples/cgi/po/ja/helloerb1.po +4 -4
  190. data/samples/cgi/po/ja/helloerb2.po +4 -4
  191. data/samples/cgi/po/ja/hellolib.po +2 -2
  192. data/samples/cgi/po/ja/main.po +3 -3
  193. data/samples/cgi/po/ko/helloerb1.po +3 -3
  194. data/samples/cgi/po/ko/helloerb2.po +3 -3
  195. data/samples/cgi/po/ko/hellolib.po +2 -2
  196. data/samples/cgi/po/ko/main.po +3 -3
  197. data/samples/cgi/po/lv/helloerb1.po +4 -4
  198. data/samples/cgi/po/lv/helloerb2.po +4 -4
  199. data/samples/cgi/po/lv/hellolib.po +2 -2
  200. data/samples/cgi/po/lv/main.po +4 -4
  201. data/samples/cgi/po/nb/helloerb1.po +3 -3
  202. data/samples/cgi/po/nb/helloerb2.po +3 -3
  203. data/samples/cgi/po/nb/hellolib.po +2 -2
  204. data/samples/cgi/po/nb/main.po +3 -3
  205. data/samples/cgi/po/nl/helloerb1.po +4 -4
  206. data/samples/cgi/po/nl/helloerb2.po +4 -4
  207. data/samples/cgi/po/nl/hellolib.po +2 -2
  208. data/samples/cgi/po/nl/main.po +4 -4
  209. data/samples/cgi/po/pt_BR/helloerb1.po +4 -4
  210. data/samples/cgi/po/pt_BR/helloerb2.po +4 -4
  211. data/samples/cgi/po/pt_BR/hellolib.po +2 -2
  212. data/samples/cgi/po/pt_BR/main.po +4 -4
  213. data/samples/cgi/po/ru/helloerb1.po +4 -4
  214. data/samples/cgi/po/ru/helloerb2.po +4 -4
  215. data/samples/cgi/po/ru/hellolib.po +2 -2
  216. data/samples/cgi/po/ru/main.po +4 -4
  217. data/samples/cgi/po/sr/helloerb1.po +4 -4
  218. data/samples/cgi/po/sr/helloerb2.po +4 -4
  219. data/samples/cgi/po/sr/hellolib.po +2 -2
  220. data/samples/cgi/po/sr/main.po +4 -4
  221. data/samples/cgi/po/uk/helloerb1.po +4 -4
  222. data/samples/cgi/po/uk/helloerb2.po +4 -4
  223. data/samples/cgi/po/uk/hellolib.po +2 -2
  224. data/samples/cgi/po/uk/main.po +4 -4
  225. data/samples/cgi/po/vi/helloerb1.po +3 -3
  226. data/samples/cgi/po/vi/helloerb2.po +3 -3
  227. data/samples/cgi/po/vi/hellolib.po +2 -2
  228. data/samples/cgi/po/vi/main.po +3 -3
  229. data/samples/cgi/po/zh/helloerb1.po +4 -4
  230. data/samples/cgi/po/zh/helloerb2.po +4 -4
  231. data/samples/cgi/po/zh/hellolib.po +2 -2
  232. data/samples/cgi/po/zh/main.po +4 -4
  233. data/samples/cgi/po/zh_TW/helloerb1.po +4 -4
  234. data/samples/cgi/po/zh_TW/helloerb2.po +4 -4
  235. data/samples/cgi/po/zh_TW/hellolib.po +2 -2
  236. data/samples/cgi/po/zh_TW/main.po +4 -4
  237. data/samples/hello.rb +1 -1
  238. data/samples/hello2.rb +1 -1
  239. data/samples/hello_glade2.rb +1 -1
  240. data/samples/hello_gtk2.rb +2 -2
  241. data/samples/hello_noop.rb +1 -1
  242. data/samples/hello_plural.rb +1 -1
  243. data/samples/hello_tk.rb +1 -1
  244. data/samples/locale/bg/LC_MESSAGES/hello_gtk2.mo +0 -0
  245. data/samples/locale/bs/LC_MESSAGES/hello_gtk2.mo +0 -0
  246. data/samples/locale/ca/LC_MESSAGES/hello_gtk2.mo +0 -0
  247. data/samples/locale/cs/LC_MESSAGES/hello_gtk2.mo +0 -0
  248. data/samples/locale/de/LC_MESSAGES/hello_gtk2.mo +0 -0
  249. data/samples/locale/el/LC_MESSAGES/hello_gtk2.mo +0 -0
  250. data/samples/locale/eo/LC_MESSAGES/hello_gtk2.mo +0 -0
  251. data/samples/locale/es/LC_MESSAGES/hello_gtk2.mo +0 -0
  252. data/samples/locale/fr/LC_MESSAGES/hello_gtk2.mo +0 -0
  253. data/samples/locale/hr/LC_MESSAGES/hello_gtk2.mo +0 -0
  254. data/samples/locale/hu/LC_MESSAGES/hello_gtk2.mo +0 -0
  255. data/samples/locale/it/LC_MESSAGES/hello_gtk2.mo +0 -0
  256. data/samples/locale/ja/LC_MESSAGES/hello_gtk2.mo +0 -0
  257. data/samples/locale/ko/LC_MESSAGES/hello_gtk2.mo +0 -0
  258. data/samples/locale/lv/LC_MESSAGES/hello_gtk2.mo +0 -0
  259. data/samples/locale/nb/LC_MESSAGES/hello_gtk2.mo +0 -0
  260. data/samples/locale/nl/LC_MESSAGES/hello_gtk2.mo +0 -0
  261. data/samples/locale/pt_BR/LC_MESSAGES/hello_gtk2.mo +0 -0
  262. data/samples/locale/ru/LC_MESSAGES/hello_gtk2.mo +0 -0
  263. data/samples/locale/sr/LC_MESSAGES/hello_gtk2.mo +0 -0
  264. data/samples/locale/sv/LC_MESSAGES/hello_gtk2.mo +0 -0
  265. data/samples/locale/uk/LC_MESSAGES/hello_gtk2.mo +0 -0
  266. data/samples/locale/vi/LC_MESSAGES/hello_gtk2.mo +0 -0
  267. data/samples/locale/zh/LC_MESSAGES/hello_gtk2.mo +0 -0
  268. data/samples/locale/zh_TW/LC_MESSAGES/hello_gtk2.mo +0 -0
  269. data/samples/po/bg/hello.po +2 -2
  270. data/samples/po/bg/hello2.po +1 -1
  271. data/samples/po/bg/hello_glade2.po +1 -1
  272. data/samples/po/bg/{hello_gtk.po → hello_gtk2.po} +1 -1
  273. data/samples/po/bg/hello_noop.po +1 -1
  274. data/samples/po/bg/hello_plural.po +1 -1
  275. data/samples/po/bg/hello_tk.po +1 -1
  276. data/samples/po/bs/hello.po +2 -2
  277. data/samples/po/bs/hello2.po +1 -1
  278. data/samples/po/bs/hello_glade2.po +1 -1
  279. data/samples/po/bs/{hello_gtk.po → hello_gtk2.po} +1 -1
  280. data/samples/po/bs/hello_noop.po +1 -1
  281. data/samples/po/bs/hello_plural.po +1 -1
  282. data/samples/po/bs/hello_tk.po +1 -1
  283. data/samples/po/ca/hello.po +2 -2
  284. data/samples/po/ca/hello2.po +1 -1
  285. data/samples/po/ca/hello_glade2.po +1 -1
  286. data/samples/po/ca/{hello_gtk.po → hello_gtk2.po} +1 -1
  287. data/samples/po/ca/hello_noop.po +1 -1
  288. data/samples/po/ca/hello_plural.po +1 -1
  289. data/samples/po/ca/hello_tk.po +1 -1
  290. data/samples/po/cs/hello.po +1 -1
  291. data/samples/po/cs/hello_glade2.po +1 -1
  292. data/samples/po/cs/{hello_gtk.po → hello_gtk2.po} +0 -0
  293. data/samples/po/cs/hello_plural.po +1 -1
  294. data/samples/po/de/hello.po +1 -1
  295. data/samples/po/de/{hello_gtk.po → hello_gtk2.po} +0 -0
  296. data/samples/po/de/hello_plural.po +1 -1
  297. data/samples/po/el/hello.po +2 -2
  298. data/samples/po/el/hello2.po +1 -1
  299. data/samples/po/el/hello_glade2.po +1 -1
  300. data/samples/po/el/{hello_gtk.po → hello_gtk2.po} +1 -1
  301. data/samples/po/el/hello_noop.po +1 -1
  302. data/samples/po/el/hello_plural.po +1 -1
  303. data/samples/po/el/hello_tk.po +1 -1
  304. data/samples/po/eo/hello.po +2 -2
  305. data/samples/po/eo/hello2.po +1 -1
  306. data/samples/po/eo/hello_glade2.po +1 -1
  307. data/samples/po/eo/{hello_gtk.po → hello_gtk2.po} +1 -1
  308. data/samples/po/eo/hello_noop.po +1 -1
  309. data/samples/po/eo/hello_plural.po +1 -1
  310. data/samples/po/eo/hello_tk.po +1 -1
  311. data/samples/po/es/{hello_gtk.po → hello_gtk2.po} +0 -0
  312. data/samples/po/fr/{hello_gtk.po → hello_gtk2.po} +0 -0
  313. data/samples/po/hello.pot +13 -13
  314. data/samples/po/hello2.pot +17 -17
  315. data/samples/po/hello_glade2.pot +12 -13
  316. data/{test/pot/backslash.pot → samples/po/hello_gtk2.pot} +8 -6
  317. data/samples/po/hello_noop.pot +13 -13
  318. data/samples/po/hello_plural.pot +14 -15
  319. data/samples/po/hello_tk.pot +9 -10
  320. data/samples/po/hr/hello.po +2 -2
  321. data/samples/po/hr/hello2.po +1 -1
  322. data/samples/po/hr/hello_glade2.po +1 -1
  323. data/samples/po/hr/{hello_gtk.po → hello_gtk2.po} +1 -1
  324. data/samples/po/hr/hello_noop.po +1 -1
  325. data/samples/po/hr/hello_plural.po +1 -1
  326. data/samples/po/hr/hello_tk.po +1 -1
  327. data/samples/po/hu/hello.po +2 -2
  328. data/samples/po/hu/hello2.po +1 -1
  329. data/samples/po/hu/hello_glade2.po +1 -1
  330. data/samples/po/hu/{hello_gtk.po → hello_gtk2.po} +1 -1
  331. data/samples/po/hu/hello_noop.po +1 -1
  332. data/samples/po/hu/hello_plural.po +1 -1
  333. data/samples/po/hu/hello_tk.po +1 -1
  334. data/samples/po/it/hello.po +1 -1
  335. data/samples/po/it/{hello_gtk.po → hello_gtk2.po} +0 -0
  336. data/samples/po/ja/{hello_gtk.po → hello_gtk2.po} +0 -0
  337. data/samples/po/ko/{hello_gtk.po → hello_gtk2.po} +0 -0
  338. data/samples/po/ko/hello_plural.po +1 -1
  339. data/samples/po/lv/hello.po +2 -2
  340. data/samples/po/lv/hello2.po +1 -1
  341. data/samples/po/lv/hello_glade2.po +1 -1
  342. data/samples/po/lv/{hello_gtk.po → hello_gtk2.po} +1 -1
  343. data/samples/po/lv/hello_noop.po +1 -1
  344. data/samples/po/lv/hello_plural.po +1 -1
  345. data/samples/po/lv/hello_tk.po +1 -1
  346. data/samples/po/nb/hello.po +2 -2
  347. data/samples/po/nb/hello2.po +1 -1
  348. data/samples/po/nb/hello_glade2.po +1 -1
  349. data/samples/po/nb/{hello_gtk.po → hello_gtk2.po} +1 -1
  350. data/samples/po/nb/hello_noop.po +1 -1
  351. data/samples/po/nb/hello_plural.po +1 -1
  352. data/samples/po/nb/hello_tk.po +1 -1
  353. data/samples/po/nl/hello.po +2 -2
  354. data/samples/po/nl/hello2.po +1 -1
  355. data/samples/po/nl/hello_glade2.po +1 -1
  356. data/samples/po/nl/{hello_gtk.po → hello_gtk2.po} +1 -1
  357. data/samples/po/nl/hello_noop.po +1 -1
  358. data/samples/po/nl/hello_plural.po +1 -1
  359. data/samples/po/nl/hello_tk.po +1 -1
  360. data/samples/po/pt_BR/{hello_gtk.po → hello_gtk2.po} +0 -0
  361. data/samples/po/ru/hello.po +2 -2
  362. data/samples/po/ru/hello2.po +1 -1
  363. data/samples/po/ru/hello_glade2.po +1 -1
  364. data/samples/po/ru/{hello_gtk.po → hello_gtk2.po} +1 -1
  365. data/samples/po/ru/hello_noop.po +1 -1
  366. data/samples/po/ru/hello_plural.po +1 -1
  367. data/samples/po/ru/hello_tk.po +1 -1
  368. data/samples/po/sr/hello.po +2 -2
  369. data/samples/po/sr/hello2.po +1 -1
  370. data/samples/po/sr/hello_glade2.po +1 -1
  371. data/samples/po/sr/{hello_gtk.po → hello_gtk2.po} +1 -1
  372. data/samples/po/sr/hello_noop.po +1 -1
  373. data/samples/po/sr/hello_plural.po +1 -1
  374. data/samples/po/sr/hello_tk.po +1 -1
  375. data/samples/po/sv/{hello_gtk.po → hello_gtk2.po} +0 -0
  376. data/samples/po/uk/hello.po +2 -2
  377. data/samples/po/uk/hello2.po +1 -1
  378. data/samples/po/uk/hello_glade2.po +1 -1
  379. data/samples/po/uk/{hello_gtk.po → hello_gtk2.po} +1 -1
  380. data/samples/po/uk/hello_noop.po +1 -1
  381. data/samples/po/uk/hello_plural.po +1 -1
  382. data/samples/po/uk/hello_tk.po +1 -1
  383. data/samples/po/vi/hello.po +2 -2
  384. data/samples/po/vi/hello2.po +1 -1
  385. data/samples/po/vi/hello_glade2.po +1 -1
  386. data/samples/po/vi/{hello_gtk.po → hello_gtk2.po} +1 -1
  387. data/samples/po/vi/hello_noop.po +1 -1
  388. data/samples/po/vi/hello_plural.po +1 -1
  389. data/samples/po/vi/hello_tk.po +1 -1
  390. data/samples/po/zh/hello.po +2 -2
  391. data/samples/po/zh/hello2.po +1 -1
  392. data/samples/po/zh/hello_glade2.po +1 -1
  393. data/samples/po/zh/{hello_gtk.po → hello_gtk2.po} +1 -1
  394. data/samples/po/zh/hello_noop.po +1 -1
  395. data/samples/po/zh/hello_plural.po +1 -1
  396. data/samples/po/zh/hello_tk.po +1 -1
  397. data/samples/po/zh_TW/hello.po +2 -2
  398. data/samples/po/zh_TW/hello2.po +1 -1
  399. data/samples/po/zh_TW/hello_glade2.po +1 -1
  400. data/samples/po/zh_TW/{hello_gtk.po → hello_gtk2.po} +1 -1
  401. data/samples/po/zh_TW/hello_noop.po +1 -1
  402. data/samples/po/zh_TW/hello_plural.po +1 -1
  403. data/samples/po/zh_TW/hello_tk.po +1 -1
  404. data/src/poparser.ry +18 -14
  405. data/test/{testlib → fixtures}/N_.rb +0 -0
  406. data/test/{testlib/gettext.rb → fixtures/_.rb} +27 -1
  407. data/test/fixtures/_/one_line.rb +32 -0
  408. data/test/fixtures/backslash.rb +29 -0
  409. data/test/{testlib → fixtures}/erb.rhtml +0 -0
  410. data/test/{testlib → fixtures}/erb.rxml +0 -0
  411. data/test/{testlib → fixtures}/gladeparser.glade +0 -0
  412. data/test/{testlib → fixtures}/multi_textdomain.rb +0 -0
  413. data/test/{testlib/ngettext.rb → fixtures/n_.rb} +20 -1
  414. data/test/{testlib → fixtures}/non_ascii.rb +0 -0
  415. data/test/fixtures/np_.rb +51 -0
  416. data/test/{testlib/nsgettext.rb → fixtures/ns_.rb} +20 -2
  417. data/test/fixtures/ns_/custom.rb +32 -0
  418. data/test/fixtures/p_.rb +57 -0
  419. data/test/fixtures/s_.rb +66 -0
  420. data/test/fixtures/s_/custom.rb +32 -0
  421. data/test/{testlib → fixtures}/simple.rb +0 -0
  422. data/test/gettext-test-utils.rb +44 -0
  423. data/test/locale/ja/LC_MESSAGES/_.mo +0 -0
  424. data/test/locale/ja/LC_MESSAGES/backslash.mo +0 -0
  425. data/test/locale/ja/LC_MESSAGES/np_.mo +0 -0
  426. data/test/locale/ja/LC_MESSAGES/ns_.mo +0 -0
  427. data/test/locale/ja/LC_MESSAGES/p_.mo +0 -0
  428. data/test/locale/ja/LC_MESSAGES/s_.mo +0 -0
  429. data/test/parser/test_ruby.rb +121 -0
  430. data/test/po/_.pot +109 -0
  431. data/test/{pot/sgettext.pot → po/backslash.pot} +10 -4
  432. data/test/po/ja/_.po +114 -0
  433. data/test/po/ja/backslash.po +3 -3
  434. data/test/po/ja/non_ascii.po +1 -1
  435. data/test/po/ja/{npgettext.po → np_.po} +6 -6
  436. data/test/po/ja/{nsgettext.po → ns_.po} +16 -10
  437. data/test/po/ja/{pgettext.po → p_.po} +5 -5
  438. data/test/po/ja/{sgettext.po → s_.po} +0 -0
  439. data/test/{pot → po}/non_ascii.pot +7 -5
  440. data/test/{pot/npgettext.pot → po/np_.pot} +10 -9
  441. data/test/{pot/nsgettext.pot → po/ns_.pot} +20 -12
  442. data/test/{pot/pgettext.pot → po/p_.pot} +12 -10
  443. data/test/po/s_.pot +55 -0
  444. data/test/run-test.rb +5 -0
  445. data/test/test_class_info.rb +0 -1
  446. data/test/test_gettext.rb +49 -12
  447. data/test/test_locale_path.rb +1 -4
  448. data/test/test_mofile.rb +0 -1
  449. data/test/test_parser.rb +119 -88
  450. data/test/test_po_generation.rb +32 -9
  451. data/test/{test_pomessage.rb → test_po_message.rb} +18 -1
  452. data/test/test_po_parser.rb +117 -0
  453. data/test/test_string.rb +0 -2
  454. data/test/test_textdomain_bind.rb +0 -2
  455. data/test/test_textdomain_multi.rb +1 -2
  456. data/test/test_textdomain_toplevel.rb +0 -1
  457. data/test/test_thread.rb +0 -1
  458. data/test/tools/test_msginit.rb +351 -0
  459. data/test/tools/test_msgmerge.rb +202 -0
  460. data/test/tools/test_tools.rb +0 -2
  461. data/test/tools/test_xgettext.rb +154 -0
  462. metadata +822 -753
  463. data/bin/rgettext +0 -23
  464. data/data/locale/bg/LC_MESSAGES/rgettext.mo +0 -0
  465. data/data/locale/bs/LC_MESSAGES/rgettext.mo +0 -0
  466. data/data/locale/ca/LC_MESSAGES/rgettext.mo +0 -0
  467. data/data/locale/cs/LC_MESSAGES/rgettext.mo +0 -0
  468. data/data/locale/de/LC_MESSAGES/rgettext.mo +0 -0
  469. data/data/locale/el/LC_MESSAGES/rgettext.mo +0 -0
  470. data/data/locale/eo/LC_MESSAGES/rgettext.mo +0 -0
  471. data/data/locale/es/LC_MESSAGES/rgettext.mo +0 -0
  472. data/data/locale/et/LC_MESSAGES/rgettext.mo +0 -0
  473. data/data/locale/fr/LC_MESSAGES/rgettext.mo +0 -0
  474. data/data/locale/hr/LC_MESSAGES/rgettext.mo +0 -0
  475. data/data/locale/hu/LC_MESSAGES/rgettext.mo +0 -0
  476. data/data/locale/it/LC_MESSAGES/rgettext.mo +0 -0
  477. data/data/locale/ja/LC_MESSAGES/rgettext.mo +0 -0
  478. data/data/locale/ko/LC_MESSAGES/rgettext.mo +0 -0
  479. data/data/locale/lv/LC_MESSAGES/rgettext.mo +0 -0
  480. data/data/locale/nb/LC_MESSAGES/rgettext.mo +0 -0
  481. data/data/locale/nl/LC_MESSAGES/rgettext.mo +0 -0
  482. data/data/locale/pt_BR/LC_MESSAGES/rgettext.mo +0 -0
  483. data/data/locale/ru/LC_MESSAGES/rgettext.mo +0 -0
  484. data/data/locale/sr/LC_MESSAGES/rgettext.mo +0 -0
  485. data/data/locale/sv/LC_MESSAGES/rgettext.mo +0 -0
  486. data/data/locale/uk/LC_MESSAGES/rgettext.mo +0 -0
  487. data/data/locale/vi/LC_MESSAGES/rgettext.mo +0 -0
  488. data/data/locale/zh/LC_MESSAGES/rgettext.mo +0 -0
  489. data/data/locale/zh_TW/LC_MESSAGES/rgettext.mo +0 -0
  490. data/lib/gettext/tools/rgettext.rb +0 -251
  491. data/lib/gettext/tools/rmsgfmt.rb +0 -86
  492. data/lib/gettext/tools/rmsgmerge.rb +0 -500
  493. data/samples/makemo.rb +0 -6
  494. data/samples/po/hello_gtk.pot +0 -23
  495. data/samples/po/test.rb +0 -13
  496. data/test/testlib/backslash.rb +0 -12
  497. data/test/testlib/helper.rb +0 -13
  498. data/test/testlib/npgettext.rb +0 -33
  499. data/test/testlib/pgettext.rb +0 -38
  500. data/test/testlib/sgettext.rb +0 -48
data/COPYING CHANGED
@@ -1,4 +1,5 @@
1
- Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
1
+ gettext is copyrighted free software. See README.rdoc for
2
+ authors.
2
3
  You can redistribute it and/or modify it under either the terms of the GPL
3
4
  version 2 (see the file GPL), or the conditions below:
4
5
 
data/README.rdoc CHANGED
@@ -1,8 +1,12 @@
1
- = gettext - Ruby-GetText-Package
1
+ = gettext - gettext for Ruby
2
2
 
3
- Ruby-GetText-Package is a Localization(L10n) library and tool
3
+ Gettext gem is a pure Ruby Localization(L10n) library and tool
4
4
  which is modeled after the GNU gettext package.
5
5
 
6
+ This library was called as "Ruby-GetText-Package". Since 2.3.0, this
7
+ library is called just "gettext". You can call this library as
8
+ "gettext gem" or "Ruby gettext" to distinguish from GNU gettext.
9
+
6
10
  This library translates original messages to localized
7
11
  messages using client-side locale information(environment
8
12
  variable or CGI variable).
@@ -25,7 +29,7 @@ Rails / ActiveRecord specific code now lives in locale_rails[http://github.com/m
25
29
  returns translated messages of the current thread's locale.
26
30
 
27
31
  * Tools to find message IDs
28
- * Extract message IDs to po-files using rgettext from
32
+ * Extract message IDs to po-files using rxgettext from
29
33
  * ruby scripts
30
34
  * glade-2 XML file(.glade)
31
35
  * ERB file(.rhtml, .erb)
@@ -35,7 +39,7 @@ Rails / ActiveRecord specific code now lives in locale_rails[http://github.com/m
35
39
  * rmsgfmt creates a mo-file from a po-file.
36
40
  The mo-file is compatible to GNU gettext(msgfmt).
37
41
 
38
- * Using rgettext/rmsgfmt as Rake tasks
42
+ * Using rxgettext/rmsgfmt as Rake tasks
39
43
 
40
44
  * textdomain's scope is adapt to ruby class/module mechanism.
41
45
  * A class/module can have plural textdomains.
@@ -154,14 +158,10 @@ LGPL(Lesser General Public License: http://www.gnu.org/licenses/lgpl-3.0.txt).
154
158
  * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
155
159
  * Copyright (C) 2001,2002 Masahiro Sakai <s01397ms at sfc.keio.ac.jp>
156
160
 
157
- * rgettext
161
+ * rxgettext
158
162
  * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
159
163
  * Copyright (C) 2001,2002 Yasushi Shoji <yashi at atmark-techno.com>
160
164
 
161
- * setup.rb
162
- * Copyright (C) 2000-2005 Minero Aoki <aamine at loveruby.net>
163
- * This file is released under LGPL. See the top of the install.rb.
164
-
165
165
  * Others
166
166
  * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
167
167
 
data/Rakefile CHANGED
@@ -1,35 +1,41 @@
1
1
  # -*- ruby -*-
2
2
  #
3
- # Rakefile for Ruby-GetText-Package
3
+ # Rakefile for gettext
4
4
  #
5
- # This file maintains Ruby-GetText-Package.
5
+ # This file maintains gettext.
6
6
  #
7
7
  # Use setup.rb or gem for installation.
8
8
  # You don't need to use this file directly.
9
9
  #
10
10
  # Copyright(c) 2005-2009 Masao Mutoh
11
11
  # Copyright(c) 2012 Kouhei Sutou <kou@clear-code.com>
12
+ # Copyright(c) 2012 Haruka Yoshihara <yoshihara@clear-code.com>
12
13
  # This program is licenced under the same licence as Ruby.
13
- #
14
14
 
15
- $:.unshift "./lib"
15
+ base_dir = File.expand_path(File.dirname(__FILE__))
16
+ $LOAD_PATH.unshift(File.join(base_dir, 'lib'))
16
17
 
17
18
  require "tempfile"
18
- require 'rake'
19
- require 'rubygems'
20
- require "yard/rake/yardoc_task"
21
- require 'gettext/version'
22
-
19
+ require "rake"
20
+ require "rubygems"
21
+ require "yard"
22
+ require "gettext/version"
23
+ require "gettext/tools"
24
+ require "gettext/task"
23
25
  require "bundler/gem_helper"
26
+
24
27
  class Bundler::GemHelper
25
28
  undef_method :version_tag
26
29
  def version_tag
27
30
  version
28
31
  end
29
32
  end
30
- Bundler::GemHelper.install_tasks
31
33
 
32
- PKG_VERSION = GetText::VERSION
34
+ helper = Bundler::GemHelper.new(base_dir)
35
+ helper.install
36
+ spec = helper.gemspec
37
+
38
+ task :default => :test
33
39
 
34
40
  ############################################################
35
41
  # GetText tasks for developing
@@ -65,159 +71,98 @@ EOH
65
71
  $stderr.puts "Create #{poparser_rb_path}."
66
72
  end
67
73
 
68
-
69
- desc "Create *.mo from *.po"
70
- task :makemo do
71
- require 'gettext/tools'
72
- GetText.create_mofiles
73
-
74
- $stderr.puts "Create samples mo files."
75
- GetText.create_mofiles(
76
- :po_root => "samples/po", :mo_root => "samples/locale")
77
-
78
- $stderr.puts "Create samples/cgi mo files."
79
- GetText.create_mofiles(
80
- :po_root => "samples/cgi/po", :mo_root => "samples/cgi/locale")
81
-
82
- $stderr.puts "Create test mo files."
83
- GetText.create_mofiles(
84
- :po_root => "test/po", :mo_root => "test/locale")
74
+ desc "Run all tests"
75
+ task :test => "test:prepare" do
76
+ options = ARGV - Rake.application.top_level_tasks
77
+ ruby "test/run-test.rb", *options
85
78
  end
86
79
 
87
- desc "Update pot/po files to match new version."
88
- task :updatepo do
89
- begin
90
- require 'gettext'
91
- require 'gettext/tools/poparser'
92
- require 'gettext/tools'
93
- rescue LoadError
94
- puts "gettext/tools/poparser was not found."
95
- end
96
-
97
- #lib/gettext/*.rb -> rgettext.po
98
- GetText.update_pofiles("rgettext",
99
- Dir.glob("lib/**/*.rb") + ["src/poparser.ry"],
100
- "ruby-gettext #{GetText::VERSION}")
80
+ namespace :test do
81
+ desc "Prepare test environment"
82
+ task :prepare => ["test:gettext", "samples:gettext"]
101
83
  end
102
84
 
103
- desc "Gather the newest po files. (for me)"
104
- task :gatherpo => [:updatepo] do
105
- mkdir_p "pofiles/original" unless FileTest.exist? "pofiles/original"
106
- Dir.glob("**/*.pot").each do |f|
107
- unless /^(pofiles|test)/ =~ f
108
- copy f, "pofiles/original/"
109
- end
110
- end
111
- Dir.glob("**/*.po").each do |f|
112
- unless /^(pofiles|test)/ =~ f
113
- lang = /po\/([^\/]*)\/(.*.po)/.match(f).to_a[1]
114
- mkdir_p "pofiles/#{lang}" unless FileTest.exist? "pofiles/#{lang}"
115
- copy f, "pofiles/#{lang}/"
116
- Dir.glob("pofiles/original/*.pot").each do |f|
117
- newpo = "pofiles/#{lang}/#{File.basename(f, ".pot")}.po"
118
- copy f, newpo unless FileTest.exist? newpo
119
- end
120
- end
85
+ GetText::Task.new(spec)
86
+ Dir.glob("samples/*.rb") do |target|
87
+ domain = File.basename(target, ".*")
88
+ GetText::Task.new(spec) do |task|
89
+ task.domain = domain
90
+ task.namespace_prefix = "samples:#{domain}"
91
+ task.po_base_directory = "samples/po"
92
+ task.mo_base_directory = "samples"
93
+ task.files = Dir.glob(target.gsub(/\..*\z/, ".*"))
121
94
  end
95
+ task "samples:gettext" => "samples:#{domain}:gettext"
122
96
  end
123
-
124
- def mv_pofiles(src_dir, target_dir, lang)
125
- target = File.join(target_dir, lang)
126
- unless File.exist?(target)
127
- mkdir_p target
128
- sh "cvs add #{target}"
129
- end
130
- cvs_add_targets = ""
131
- Dir.glob(File.join(target_dir, "ja/*.po")).sort.each do |f|
132
- srcfile = File.join(src_dir, File.basename(f))
133
- if File.exist?(srcfile)
134
- unless File.exist?(File.join(target, File.basename(f)))
135
- cvs_add_targets << File.join(target, File.basename(f)) + " "
136
- end
137
- mv srcfile, target, :verbose => true
138
- else
139
- puts "mv #{srcfile} #{target}/ -- skipped"
140
- end
141
- end
142
- sh "cvs add #{cvs_add_targets}" if cvs_add_targets.size > 0
97
+ desc "Update *.mo for samples"
98
+ task "samples:gettext"
99
+
100
+ [
101
+ ["main", Dir.glob("samples/cgi/{index.cgi,cookie.cgi}")],
102
+ ["helloerb1", Dir.glob("samples/cgi/helloerb1.cgi")],
103
+ ["helloerb2", Dir.glob("samples/cgi/helloerb2.cgi")],
104
+ ["hellolib", Dir.glob("samples/cgi/hellolib.rb")],
105
+ ].each do |domain, files|
106
+ GetText::Task.new(spec) do |task|
107
+ task.domain = domain
108
+ task.namespace_prefix = "samples:cgi:#{domain}"
109
+ task.po_base_directory = "samples/cgi/po"
110
+ task.mo_base_directory = "samples/cgi"
111
+ task.files = files
112
+ end
113
+ task "samples:cgi:gettext" => "samples:cgi:#{domain}:gettext"
143
114
  end
144
-
145
- desc "Deploy localized pofiles to current source tree. (for me)"
146
- task :deploypo do
147
- srcdir = ENV["SRCDIR"] ||= File.join(ENV["HOME"], "pofiles")
148
- lang = ENV["LOCALE"]
149
- unless lang
150
- puts "USAGE: rake deploypo [SRCDIR=#{ENV["HOME"]}/pofiles] LOCALE=ja"
151
- exit
152
- end
153
- puts "SRCDIR = #{srcdir}, LOCALE = #{lang}"
154
-
155
- mv_pofiles(srcdir, "po", lang)
156
- mv_pofiles(srcdir, "samples/cgi/po", lang)
157
- mv_pofiles(srcdir, "samples/po", lang)
115
+ desc "Updates *.mo for CGI samples"
116
+ task "samples:cgi:gettext"
117
+
118
+ task "samples:gettext" => "samples:cgi:gettext"
119
+
120
+ ["backslash", "non_ascii", "np_", "p_"].each do |domain|
121
+ GetText::Task.new(spec) do |task|
122
+ task.domain = domain
123
+ task.namespace_prefix = "test:#{domain}"
124
+ task.po_base_directory = "test/po"
125
+ task.mo_base_directory = "test"
126
+ task.files = ["test/fixtures/#{domain}.rb"]
127
+ task.locales = ["ja"]
128
+ end
129
+ task "test:gettext" => "test:#{domain}:gettext"
158
130
  end
159
131
 
160
-
161
- task :package => [:makemo]
162
-
163
- namespace :test do
164
- namespace :pot do
165
- pot_base_dir = "test/pot"
166
- directory pot_base_dir
167
-
168
- pot_paths = []
169
- ruby_base_paths = [
170
- "non_ascii", "npgettext", "nsgettext",
171
- "pgettext", "backslash",
172
- ]
173
- ruby_paths = Dir.glob("test/testlib/{#{ruby_base_paths.join(',')}}.rb")
174
- ruby_paths.each do |ruby_path|
175
- pot_base_path = File.basename(ruby_path).sub(/\.rb\z/, ".pot")
176
- pot_path = "#{pot_base_dir}/#{pot_base_path}"
177
- pot_paths << pot_path
178
- file pot_path => [pot_base_dir, ruby_path] do
179
- require "gettext/tools"
180
- GetText.rgettext(ruby_path, pot_path)
181
- end
182
- end
183
-
184
- desc "Update pot files for testing"
185
- task :update => pot_paths
132
+ ["_", "s_", "ns_"].each do |domain|
133
+ GetText::Task.new(spec) do |task|
134
+ task.domain = domain
135
+ task.namespace_prefix = "test:#{domain}"
136
+ task.po_base_directory = "test/po"
137
+ task.mo_base_directory = "test"
138
+ task.files = ["test/fixtures/#{domain}.rb"]
139
+ task.files += Dir.glob("test/fixtures/#{domain}/*.rb")
140
+ task.locales = ["ja"]
186
141
  end
142
+ task "test:gettext" => "test:#{domain}:gettext"
143
+ end
187
144
 
188
- namespace :mo do
189
- mo_paths = []
190
- language_paths = Dir.glob("test/po/*")
191
- language_paths.each do |language_path|
192
- language = File.basename(language_path)
193
- po_paths = Dir.glob("#{language_path}/*.po")
194
- po_paths.each do |po_path|
195
- mo_base_path = File.basename(po_path).sub(/\.po\z/, ".mo")
196
- mo_path = "test/locale/#{language}/LC_MESSAGES/#{mo_base_path}"
197
- mo_paths << mo_path
198
- file mo_path => [po_path, poparser_rb_path] do
199
- require "gettext/tools"
200
- GetText.rmsgfmt(po_path, mo_path)
201
- end
202
- end
145
+ po_only_domains = [
146
+ "plural", "plural_error", "rubyparser", "test1", "test2", "test3"
147
+ ]
148
+ po_only_domains.each do |domain|
149
+ GetText::Task.new(spec) do |task|
150
+ task.domain = domain
151
+ task.namespace_prefix = "test:#{domain}"
152
+ task.po_base_directory = "test/po"
153
+ task.mo_base_directory = "test"
154
+ task.files = []
155
+ task.locales = Dir.glob("test/po/*/#{domain}.po").collect do |po|
156
+ File.basename(File.dirname(po))
203
157
  end
204
-
205
- desc "Update mo files for testing"
206
- task :update => mo_paths
207
158
  end
208
-
209
- desc "Prepare test environment"
210
- task :prepare => "test:mo:update"
159
+ task "test:gettext" => "test:#{domain}:gettext"
211
160
  end
161
+ desc "Update *.mo for test"
162
+ task "test:gettext"
212
163
 
213
- desc 'Run all tests'
214
- task :test => "test:prepare" do
215
- options = ARGV - Rake.application.top_level_tasks
216
- ruby "test/run-test.rb", *options
217
- end
164
+
165
+ task :package => [:gettext]
218
166
 
219
167
  YARD::Rake::YardocTask.new do |t|
220
168
  end
221
-
222
- desc "Setup Ruby-GetText-Package. (for setup.rb)"
223
- task :setup => [:makemo]
data/bin/rmsgfmt CHANGED
@@ -1,22 +1,25 @@
1
- #! /usr/bin/ruby
2
- =begin
3
- rgettext - ruby version of xgettext
1
+ #! /usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # Copyright (C) 2012 Kouhei Sutou <kou@clear-code.com>
5
+ # Copyright (C) 2012 Haruka Yoshihara <yoshihara@clear-code.com>
6
+ # Copyright (C) 2005-2009 Masao Mutoh
7
+ #
8
+ # License: Ruby's or LGPL
9
+ #
10
+ # This library is free software: you can redistribute it and/or modify
11
+ # it under the terms of the GNU Lesser General Public License as published by
12
+ # the Free Software Foundation, either version 3 of the License, or
13
+ # (at your option) any later version.
14
+ #
15
+ # This library is distributed in the hope that it will be useful,
16
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
+ # GNU Lesser General Public License for more details.
19
+ #
20
+ # You should have received a copy of the GNU Lesser General Public License
21
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
4
22
 
5
- Copyright (C) 2005-2009 Masao Mutoh
6
-
7
- You may redistribute it and/or modify it under the same
8
- license terms as Ruby.
9
- =end
23
+ require "gettext/tools/msgfmt"
10
24
 
11
- begin
12
- require 'gettext/tools/rmsgfmt'
13
- rescue LoadError
14
- begin
15
- require 'rubygems'
16
- require 'gettext/tools/rmsgfmt'
17
- rescue LoadError
18
- raise 'Ruby-GetText-Package are not installed.'
19
- end
20
- end
21
-
22
- GetText.rmsgfmt
25
+ GetText::Tools::MsgFmt.run(*ARGV)
data/bin/rmsginit ADDED
@@ -0,0 +1,29 @@
1
+ #! /usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # Copyright (C) 2012 Kouhei Sutou <kou@clear-code.com>
5
+ # Copyright (C) 2012 Haruka Yoshihara <yoshihara@clear-code.com>
6
+ #
7
+ # License: Ruby's or LGPL
8
+ #
9
+ # This library is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU Lesser General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This library is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU Lesser General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU Lesser General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+
22
+ require "gettext/tools/msginit"
23
+
24
+ begin
25
+ GetText::Tools::MsgInit.run(*ARGV)
26
+ rescue GetText::Tools::MsgInit::Error
27
+ puts($!.message)
28
+ exit(false)
29
+ end
data/bin/rmsgmerge CHANGED
@@ -1,22 +1,24 @@
1
- #! /usr/bin/ruby
2
- =begin
3
- rmsgmerge - ruby version of msgmerge
1
+ #! /usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # Copyright (C) 2012 Kouhei Sutou <kou@clear-code.com>
5
+ # Copyright (C) 2005-2009 Masao Mutoh
6
+ #
7
+ # License: Ruby's or LGPL
8
+ #
9
+ # This library is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU Lesser General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This library is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU Lesser General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU Lesser General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
4
21
 
5
- Copyright (C) 2005-2009 Masao Mutoh
6
-
7
- You may redistribute it and/or modify it under the same
8
- license terms as Ruby.
9
- =end
22
+ require "gettext/tools/msgmerge"
10
23
 
11
- begin
12
- require 'gettext/tools/rmsgmerge'
13
- rescue LoadError
14
- begin
15
- require 'rubygems'
16
- require 'gettext/tools/rmsgmerge'
17
- rescue LoadError
18
- raise 'Ruby-GetText-Package are not installed.'
19
- end
20
- end
21
-
22
- GetText.rmsgmerge
24
+ GetText::Tools::MsgMerge.run(*ARGV)