gettext 2.2.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
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)