ofm_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 (384) hide show
  1. data/ChangeLog +78 -0
  2. data/README.rdoc +245 -0
  3. data/Rakefile +234 -0
  4. data/bin/rgettext +23 -0
  5. data/bin/rmsgfmt +22 -0
  6. data/bin/rmsgmerge +22 -0
  7. data/gettext.gemspec +40 -0
  8. data/lib/gettext/cgi.rb +39 -0
  9. data/lib/gettext/core_ext/iconv.rb +110 -0
  10. data/lib/gettext/core_ext/string.rb +86 -0
  11. data/lib/gettext/parser/erb.rb +5 -0
  12. data/lib/gettext/parser/glade.rb +5 -0
  13. data/lib/gettext/parser/ruby.rb +172 -0
  14. data/lib/gettext/tools/rgettext.rb +251 -0
  15. data/lib/gettext/tools/rmsgfmt.rb +86 -0
  16. data/lib/gettext/tools/rmsgmerge.rb +500 -0
  17. data/lib/gettext/tools.rb +197 -0
  18. data/lib/gettext/utils.rb +39 -0
  19. data/lib/gettext/version.rb +12 -0
  20. data/lib/gettext.rb +312 -0
  21. data/po/bg/rgettext.po +139 -0
  22. data/po/bs/rgettext.po +139 -0
  23. data/po/ca/rgettext.po +138 -0
  24. data/po/cs/rgettext.po +140 -0
  25. data/po/de/rgettext.po +146 -0
  26. data/po/el/rgettext.po +137 -0
  27. data/po/eo/rgettext.po +138 -0
  28. data/po/es/rgettext.po +139 -0
  29. data/po/et/rgettext.po +136 -0
  30. data/po/fr/rgettext.po +142 -0
  31. data/po/hr/rgettext.po +139 -0
  32. data/po/hu/rgettext.po +138 -0
  33. data/po/it/rgettext.po +138 -0
  34. data/po/ja/rgettext.po +140 -0
  35. data/po/ko/rgettext.po +137 -0
  36. data/po/lv/rgettext.po +139 -0
  37. data/po/nb/rgettext.po +140 -0
  38. data/po/nl/rgettext.po +138 -0
  39. data/po/pt_BR/rgettext.po +141 -0
  40. data/po/rgettext.pot +129 -0
  41. data/po/ru/rgettext.po +140 -0
  42. data/po/sr/rgettext.po +139 -0
  43. data/po/sv/rgettext.po +131 -0
  44. data/po/vi/rgettext.po +137 -0
  45. data/po/zh/rgettext.po +138 -0
  46. data/po/zh_TW/rgettext.po +137 -0
  47. data/samples/README +16 -0
  48. data/samples/cgi/README +43 -0
  49. data/samples/cgi/Rakefile +27 -0
  50. data/samples/cgi/cookie.cgi +64 -0
  51. data/samples/cgi/gettext.css +116 -0
  52. data/samples/cgi/helloerb.rhtml +28 -0
  53. data/samples/cgi/helloerb1.cgi +58 -0
  54. data/samples/cgi/helloerb2.cgi +51 -0
  55. data/samples/cgi/hellolib.rb +18 -0
  56. data/samples/cgi/http.rb +49 -0
  57. data/samples/cgi/index.cgi +111 -0
  58. data/samples/cgi/other.rhtml +20 -0
  59. data/samples/cgi/po/bg/helloerb1.po +59 -0
  60. data/samples/cgi/po/bg/helloerb2.po +51 -0
  61. data/samples/cgi/po/bg/hellolib.po +23 -0
  62. data/samples/cgi/po/bg/main.po +83 -0
  63. data/samples/cgi/po/bs/helloerb1.po +59 -0
  64. data/samples/cgi/po/bs/helloerb2.po +51 -0
  65. data/samples/cgi/po/bs/hellolib.po +23 -0
  66. data/samples/cgi/po/bs/main.po +83 -0
  67. data/samples/cgi/po/ca/helloerb1.po +59 -0
  68. data/samples/cgi/po/ca/helloerb2.po +51 -0
  69. data/samples/cgi/po/ca/hellolib.po +23 -0
  70. data/samples/cgi/po/ca/main.po +83 -0
  71. data/samples/cgi/po/cs/helloerb1.po +61 -0
  72. data/samples/cgi/po/cs/helloerb2.po +52 -0
  73. data/samples/cgi/po/cs/hellolib.po +25 -0
  74. data/samples/cgi/po/cs/main.po +85 -0
  75. data/samples/cgi/po/de/helloerb1.po +61 -0
  76. data/samples/cgi/po/de/helloerb2.po +52 -0
  77. data/samples/cgi/po/de/hellolib.po +24 -0
  78. data/samples/cgi/po/de/main.po +86 -0
  79. data/samples/cgi/po/el/helloerb1.po +60 -0
  80. data/samples/cgi/po/el/helloerb2.po +51 -0
  81. data/samples/cgi/po/el/hellolib.po +23 -0
  82. data/samples/cgi/po/el/main.po +84 -0
  83. data/samples/cgi/po/eo/helloerb1.po +60 -0
  84. data/samples/cgi/po/eo/helloerb2.po +52 -0
  85. data/samples/cgi/po/eo/hellolib.po +24 -0
  86. data/samples/cgi/po/eo/main.po +84 -0
  87. data/samples/cgi/po/es/helloerb1.po +59 -0
  88. data/samples/cgi/po/es/helloerb2.po +50 -0
  89. data/samples/cgi/po/es/hellolib.po +22 -0
  90. data/samples/cgi/po/es/main.po +83 -0
  91. data/samples/cgi/po/fr/helloerb1.po +59 -0
  92. data/samples/cgi/po/fr/helloerb2.po +51 -0
  93. data/samples/cgi/po/fr/hellolib.po +22 -0
  94. data/samples/cgi/po/fr/main.po +85 -0
  95. data/samples/cgi/po/helloerb1.pot +60 -0
  96. data/samples/cgi/po/helloerb2.pot +52 -0
  97. data/samples/cgi/po/hellolib.pot +24 -0
  98. data/samples/cgi/po/hr/helloerb1.po +59 -0
  99. data/samples/cgi/po/hr/helloerb2.po +51 -0
  100. data/samples/cgi/po/hr/hellolib.po +23 -0
  101. data/samples/cgi/po/hr/main.po +83 -0
  102. data/samples/cgi/po/hu/helloerb1.po +59 -0
  103. data/samples/cgi/po/hu/helloerb2.po +51 -0
  104. data/samples/cgi/po/hu/hellolib.po +23 -0
  105. data/samples/cgi/po/hu/main.po +82 -0
  106. data/samples/cgi/po/it/helloerb1.po +60 -0
  107. data/samples/cgi/po/it/helloerb2.po +52 -0
  108. data/samples/cgi/po/it/hellolib.po +24 -0
  109. data/samples/cgi/po/it/main.po +84 -0
  110. data/samples/cgi/po/ja/helloerb1.po +60 -0
  111. data/samples/cgi/po/ja/helloerb2.po +52 -0
  112. data/samples/cgi/po/ja/hellolib.po +24 -0
  113. data/samples/cgi/po/ja/main.po +85 -0
  114. data/samples/cgi/po/ko/helloerb1.po +59 -0
  115. data/samples/cgi/po/ko/helloerb2.po +51 -0
  116. data/samples/cgi/po/ko/hellolib.po +23 -0
  117. data/samples/cgi/po/ko/main.po +84 -0
  118. data/samples/cgi/po/lv/helloerb1.po +65 -0
  119. data/samples/cgi/po/lv/helloerb2.po +52 -0
  120. data/samples/cgi/po/lv/hellolib.po +24 -0
  121. data/samples/cgi/po/lv/main.po +77 -0
  122. data/samples/cgi/po/main.pot +80 -0
  123. data/samples/cgi/po/nb/helloerb1.po +60 -0
  124. data/samples/cgi/po/nb/helloerb2.po +52 -0
  125. data/samples/cgi/po/nb/hellolib.po +24 -0
  126. data/samples/cgi/po/nb/main.po +84 -0
  127. data/samples/cgi/po/nl/helloerb1.po +61 -0
  128. data/samples/cgi/po/nl/helloerb2.po +52 -0
  129. data/samples/cgi/po/nl/hellolib.po +24 -0
  130. data/samples/cgi/po/nl/main.po +86 -0
  131. data/samples/cgi/po/pt_BR/helloerb1.po +59 -0
  132. data/samples/cgi/po/pt_BR/helloerb2.po +51 -0
  133. data/samples/cgi/po/pt_BR/hellolib.po +23 -0
  134. data/samples/cgi/po/pt_BR/main.po +84 -0
  135. data/samples/cgi/po/ru/helloerb1.po +58 -0
  136. data/samples/cgi/po/ru/helloerb2.po +50 -0
  137. data/samples/cgi/po/ru/hellolib.po +22 -0
  138. data/samples/cgi/po/ru/main.po +82 -0
  139. data/samples/cgi/po/sr/helloerb1.po +60 -0
  140. data/samples/cgi/po/sr/helloerb2.po +52 -0
  141. data/samples/cgi/po/sr/hellolib.po +24 -0
  142. data/samples/cgi/po/sr/main.po +80 -0
  143. data/samples/cgi/po/vi/helloerb1.po +65 -0
  144. data/samples/cgi/po/vi/helloerb2.po +52 -0
  145. data/samples/cgi/po/vi/hellolib.po +24 -0
  146. data/samples/cgi/po/vi/main.po +77 -0
  147. data/samples/cgi/po/zh/helloerb1.po +60 -0
  148. data/samples/cgi/po/zh/helloerb2.po +52 -0
  149. data/samples/cgi/po/zh/hellolib.po +24 -0
  150. data/samples/cgi/po/zh/main.po +80 -0
  151. data/samples/cgi/po/zh_TW/helloerb1.po +67 -0
  152. data/samples/cgi/po/zh_TW/helloerb2.po +54 -0
  153. data/samples/cgi/po/zh_TW/hellolib.po +26 -0
  154. data/samples/cgi/po/zh_TW/main.po +79 -0
  155. data/samples/hello.rb +36 -0
  156. data/samples/hello2.rb +23 -0
  157. data/samples/hello_glade2.glade +70 -0
  158. data/samples/hello_glade2.rb +25 -0
  159. data/samples/hello_gtk2.rb +27 -0
  160. data/samples/hello_noop.rb +31 -0
  161. data/samples/hello_plural.rb +26 -0
  162. data/samples/hello_tk.rb +19 -0
  163. data/samples/makemo.rb +6 -0
  164. data/samples/po/bg/hello.po +24 -0
  165. data/samples/po/bg/hello2.po +31 -0
  166. data/samples/po/bg/hello_glade2.po +31 -0
  167. data/samples/po/bg/hello_gtk.po +23 -0
  168. data/samples/po/bg/hello_noop.po +27 -0
  169. data/samples/po/bg/hello_plural.po +25 -0
  170. data/samples/po/bg/hello_tk.po +23 -0
  171. data/samples/po/bs/hello.po +23 -0
  172. data/samples/po/bs/hello2.po +31 -0
  173. data/samples/po/bs/hello_glade2.po +31 -0
  174. data/samples/po/bs/hello_gtk.po +23 -0
  175. data/samples/po/bs/hello_noop.po +27 -0
  176. data/samples/po/bs/hello_plural.po +26 -0
  177. data/samples/po/bs/hello_tk.po +23 -0
  178. data/samples/po/ca/hello.po +23 -0
  179. data/samples/po/ca/hello2.po +31 -0
  180. data/samples/po/ca/hello_glade2.po +31 -0
  181. data/samples/po/ca/hello_gtk.po +23 -0
  182. data/samples/po/ca/hello_noop.po +27 -0
  183. data/samples/po/ca/hello_plural.po +25 -0
  184. data/samples/po/ca/hello_tk.po +23 -0
  185. data/samples/po/cs/hello.po +23 -0
  186. data/samples/po/cs/hello2.po +31 -0
  187. data/samples/po/cs/hello_glade2.po +37 -0
  188. data/samples/po/cs/hello_gtk.po +23 -0
  189. data/samples/po/cs/hello_noop.po +27 -0
  190. data/samples/po/cs/hello_plural.po +26 -0
  191. data/samples/po/cs/hello_tk.po +23 -0
  192. data/samples/po/de/hello.po +20 -0
  193. data/samples/po/de/hello2.po +28 -0
  194. data/samples/po/de/hello_glade2.po +27 -0
  195. data/samples/po/de/hello_gtk.po +20 -0
  196. data/samples/po/de/hello_noop.po +24 -0
  197. data/samples/po/de/hello_plural.po +25 -0
  198. data/samples/po/de/hello_tk.po +20 -0
  199. data/samples/po/el/hello.po +23 -0
  200. data/samples/po/el/hello2.po +31 -0
  201. data/samples/po/el/hello_glade2.po +31 -0
  202. data/samples/po/el/hello_gtk.po +22 -0
  203. data/samples/po/el/hello_noop.po +27 -0
  204. data/samples/po/el/hello_plural.po +25 -0
  205. data/samples/po/el/hello_tk.po +23 -0
  206. data/samples/po/eo/hello.po +23 -0
  207. data/samples/po/eo/hello2.po +31 -0
  208. data/samples/po/eo/hello_glade2.po +32 -0
  209. data/samples/po/eo/hello_gtk.po +23 -0
  210. data/samples/po/eo/hello_noop.po +27 -0
  211. data/samples/po/eo/hello_plural.po +26 -0
  212. data/samples/po/eo/hello_tk.po +24 -0
  213. data/samples/po/es/hello.po +21 -0
  214. data/samples/po/es/hello2.po +28 -0
  215. data/samples/po/es/hello_glade2.po +28 -0
  216. data/samples/po/es/hello_gtk.po +20 -0
  217. data/samples/po/es/hello_noop.po +24 -0
  218. data/samples/po/es/hello_plural.po +23 -0
  219. data/samples/po/es/hello_tk.po +20 -0
  220. data/samples/po/fr/hello.po +18 -0
  221. data/samples/po/fr/hello2.po +26 -0
  222. data/samples/po/fr/hello_glade2.po +27 -0
  223. data/samples/po/fr/hello_gtk.po +18 -0
  224. data/samples/po/fr/hello_noop.po +22 -0
  225. data/samples/po/fr/hello_plural.po +21 -0
  226. data/samples/po/fr/hello_tk.po +18 -0
  227. data/samples/po/hello.pot +23 -0
  228. data/samples/po/hello2.pot +31 -0
  229. data/samples/po/hello_glade2.pot +32 -0
  230. data/samples/po/hello_gtk.pot +23 -0
  231. data/samples/po/hello_noop.pot +27 -0
  232. data/samples/po/hello_plural.pot +26 -0
  233. data/samples/po/hello_tk.pot +24 -0
  234. data/samples/po/hr/hello.po +23 -0
  235. data/samples/po/hr/hello2.po +31 -0
  236. data/samples/po/hr/hello_glade2.po +31 -0
  237. data/samples/po/hr/hello_gtk.po +23 -0
  238. data/samples/po/hr/hello_noop.po +27 -0
  239. data/samples/po/hr/hello_plural.po +26 -0
  240. data/samples/po/hr/hello_tk.po +23 -0
  241. data/samples/po/hu/hello.po +22 -0
  242. data/samples/po/hu/hello2.po +30 -0
  243. data/samples/po/hu/hello_glade2.po +31 -0
  244. data/samples/po/hu/hello_gtk.po +22 -0
  245. data/samples/po/hu/hello_noop.po +26 -0
  246. data/samples/po/hu/hello_plural.po +25 -0
  247. data/samples/po/hu/hello_tk.po +23 -0
  248. data/samples/po/it/hello.po +20 -0
  249. data/samples/po/it/hello2.po +28 -0
  250. data/samples/po/it/hello_glade2.po +28 -0
  251. data/samples/po/it/hello_gtk.po +21 -0
  252. data/samples/po/it/hello_noop.po +24 -0
  253. data/samples/po/it/hello_plural.po +23 -0
  254. data/samples/po/it/hello_tk.po +21 -0
  255. data/samples/po/ja/hello.po +20 -0
  256. data/samples/po/ja/hello2.po +28 -0
  257. data/samples/po/ja/hello_glade2.po +26 -0
  258. data/samples/po/ja/hello_gtk.po +19 -0
  259. data/samples/po/ja/hello_noop.po +23 -0
  260. data/samples/po/ja/hello_plural.po +21 -0
  261. data/samples/po/ja/hello_tk.po +19 -0
  262. data/samples/po/ko/hello.po +18 -0
  263. data/samples/po/ko/hello2.po +26 -0
  264. data/samples/po/ko/hello_glade2.po +29 -0
  265. data/samples/po/ko/hello_gtk.po +18 -0
  266. data/samples/po/ko/hello_noop.po +22 -0
  267. data/samples/po/ko/hello_plural.po +25 -0
  268. data/samples/po/ko/hello_tk.po +19 -0
  269. data/samples/po/lv/hello.po +24 -0
  270. data/samples/po/lv/hello2.po +32 -0
  271. data/samples/po/lv/hello_glade2.po +38 -0
  272. data/samples/po/lv/hello_gtk.po +24 -0
  273. data/samples/po/lv/hello_noop.po +28 -0
  274. data/samples/po/lv/hello_plural.po +26 -0
  275. data/samples/po/lv/hello_tk.po +24 -0
  276. data/samples/po/nb/hello.po +23 -0
  277. data/samples/po/nb/hello2.po +31 -0
  278. data/samples/po/nb/hello_glade2.po +31 -0
  279. data/samples/po/nb/hello_gtk.po +23 -0
  280. data/samples/po/nb/hello_noop.po +27 -0
  281. data/samples/po/nb/hello_plural.po +26 -0
  282. data/samples/po/nb/hello_tk.po +24 -0
  283. data/samples/po/nl/hello.po +24 -0
  284. data/samples/po/nl/hello2.po +32 -0
  285. data/samples/po/nl/hello_glade2.po +31 -0
  286. data/samples/po/nl/hello_gtk.po +24 -0
  287. data/samples/po/nl/hello_noop.po +28 -0
  288. data/samples/po/nl/hello_plural.po +25 -0
  289. data/samples/po/nl/hello_tk.po +24 -0
  290. data/samples/po/pt_BR/hello.po +21 -0
  291. data/samples/po/pt_BR/hello2.po +29 -0
  292. data/samples/po/pt_BR/hello_glade2.po +29 -0
  293. data/samples/po/pt_BR/hello_gtk.po +21 -0
  294. data/samples/po/pt_BR/hello_noop.po +25 -0
  295. data/samples/po/pt_BR/hello_plural.po +23 -0
  296. data/samples/po/pt_BR/hello_tk.po +21 -0
  297. data/samples/po/ru/hello.po +22 -0
  298. data/samples/po/ru/hello2.po +30 -0
  299. data/samples/po/ru/hello_glade2.po +30 -0
  300. data/samples/po/ru/hello_gtk.po +22 -0
  301. data/samples/po/ru/hello_noop.po +26 -0
  302. data/samples/po/ru/hello_plural.po +28 -0
  303. data/samples/po/ru/hello_tk.po +22 -0
  304. data/samples/po/sr/hello.po +22 -0
  305. data/samples/po/sr/hello2.po +30 -0
  306. data/samples/po/sr/hello_glade2.po +32 -0
  307. data/samples/po/sr/hello_gtk.po +22 -0
  308. data/samples/po/sr/hello_noop.po +26 -0
  309. data/samples/po/sr/hello_plural.po +26 -0
  310. data/samples/po/sr/hello_tk.po +24 -0
  311. data/samples/po/sv/hello.po +20 -0
  312. data/samples/po/sv/hello2.po +28 -0
  313. data/samples/po/sv/hello_glade2.po +28 -0
  314. data/samples/po/sv/hello_gtk.po +20 -0
  315. data/samples/po/sv/hello_noop.po +24 -0
  316. data/samples/po/sv/hello_plural.po +23 -0
  317. data/samples/po/sv/hello_tk.po +20 -0
  318. data/samples/po/test.rb +13 -0
  319. data/samples/po/vi/hello.po +23 -0
  320. data/samples/po/vi/hello2.po +31 -0
  321. data/samples/po/vi/hello_glade2.po +38 -0
  322. data/samples/po/vi/hello_gtk.po +23 -0
  323. data/samples/po/vi/hello_noop.po +27 -0
  324. data/samples/po/vi/hello_plural.po +26 -0
  325. data/samples/po/vi/hello_tk.po +24 -0
  326. data/samples/po/zh/hello.po +23 -0
  327. data/samples/po/zh/hello2.po +31 -0
  328. data/samples/po/zh/hello_glade2.po +31 -0
  329. data/samples/po/zh/hello_gtk.po +23 -0
  330. data/samples/po/zh/hello_noop.po +27 -0
  331. data/samples/po/zh/hello_plural.po +25 -0
  332. data/samples/po/zh/hello_tk.po +23 -0
  333. data/samples/po/zh_TW/hello.po +26 -0
  334. data/samples/po/zh_TW/hello2.po +34 -0
  335. data/samples/po/zh_TW/hello_glade2.po +40 -0
  336. data/samples/po/zh_TW/hello_gtk.po +25 -0
  337. data/samples/po/zh_TW/hello_noop.po +30 -0
  338. data/samples/po/zh_TW/hello_plural.po +28 -0
  339. data/samples/po/zh_TW/hello_tk.po +26 -0
  340. data/src/poparser.ry +217 -0
  341. data/test/README +1 -0
  342. data/test/Rakefile +17 -0
  343. data/test/po/cr/plural.po +23 -0
  344. data/test/po/da/plural.po +22 -0
  345. data/test/po/da/plural_error.po +22 -0
  346. data/test/po/fr/plural.po +28 -0
  347. data/test/po/fr/plural_error.po +20 -0
  348. data/test/po/fr/test1.po +23 -0
  349. data/test/po/fr/test2.po +19 -0
  350. data/test/po/ir/plural.po +23 -0
  351. data/test/po/ja/npgettext.po +46 -0
  352. data/test/po/ja/nsgettext.po +65 -0
  353. data/test/po/ja/pgettext.po +41 -0
  354. data/test/po/ja/plural.po +28 -0
  355. data/test/po/ja/plural_error.po +20 -0
  356. data/test/po/ja/rubyparser.po +43 -0
  357. data/test/po/ja/sgettext.po +47 -0
  358. data/test/po/ja/test1.po +23 -0
  359. data/test/po/ja/test2.po +19 -0
  360. data/test/po/la/plural.po +23 -0
  361. data/test/po/la/plural_error.po +21 -0
  362. data/test/po/li/plural.po +23 -0
  363. data/test/po/po/plural.po +23 -0
  364. data/test/po/sl/plural.po +24 -0
  365. data/test/test_class_info.rb +88 -0
  366. data/test/test_gettext.rb +322 -0
  367. data/test/test_parser.rb +160 -0
  368. data/test/test_string.rb +67 -0
  369. data/test/test_textdomain_multi.rb +82 -0
  370. data/test/test_textdomain_toplevel.rb +44 -0
  371. data/test/testlib/N_.rb +68 -0
  372. data/test/testlib/erb.rhtml +15 -0
  373. data/test/testlib/erb.rxml +16 -0
  374. data/test/testlib/gettext.rb +115 -0
  375. data/test/testlib/gladeparser.glade +183 -0
  376. data/test/testlib/helper.rb +13 -0
  377. data/test/testlib/multi_textdomain.rb +133 -0
  378. data/test/testlib/ngettext.rb +81 -0
  379. data/test/testlib/npgettext.rb +33 -0
  380. data/test/testlib/nsgettext.rb +44 -0
  381. data/test/testlib/pgettext.rb +38 -0
  382. data/test/testlib/sgettext.rb +48 -0
  383. data/test/testlib/simple.rb +16 -0
  384. metadata +475 -0
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+
3
+ =begin
4
+ utils.rb - Utility functions
5
+
6
+ Copyright (C) 2005,2006 Masao Mutoh
7
+
8
+ You may redistribute it and/or modify it under the same
9
+ license terms as Ruby or LGPL.
10
+ =end
11
+
12
+ require 'gettext/tools'
13
+
14
+ warn "'gettext/utils.rb' is deprecated. Use gettext/tools.rb."
15
+
16
+ module GetText
17
+
18
+ alias :create_mofiles_org :create_mofiles #:nodoc:
19
+ alias :update_pofiles_org :update_pofiles #:nodoc:
20
+
21
+
22
+ # Deprecated. Use gettext/tools instead.
23
+ def create_mofiles(verbose = false,
24
+ podir = "./po", targetdir = "./data/locale",
25
+ targetpath_rule = "%s/LC_MESSAGES") # :nodoc:
26
+ warn "'gettext/utils.rb' is deprecated. Use gettext/tools.rb."
27
+ create_mofiles_org(:verbose => verbose,
28
+ :po_root => podir,
29
+ :mo_root => targetdir,
30
+ :mo_root_rule => targetpath_rule)
31
+ end
32
+
33
+ # Deprecated. Use gettext/tools instead.
34
+ def update_pofiles(textdomain, files, app_version, po_root = "po", refpot = "tmp.pot") # :nodoc:
35
+ warn "'gettext/utils.rb' is deprecated. Use gettext/tools.rb."
36
+ options = {:po_root => po_root}
37
+ update_pofiles_org(textdomain, files, app_version, options)
38
+ end
39
+ end
@@ -0,0 +1,12 @@
1
+ #! /usr/bin/ruby
2
+ =begin
3
+ version - version information of Ruby-GetText-Package
4
+
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 or LGPL.
9
+ =end
10
+ module GetText
11
+ VERSION = "2.1.0"
12
+ end
data/lib/gettext.rb ADDED
@@ -0,0 +1,312 @@
1
+ # encoding: utf-8
2
+
3
+ =begin
4
+ gettext.rb - GetText module
5
+
6
+ Copyright (C) 2001-2010 Masao Mutoh
7
+ Copyright (C) 2001-2003 Masahiro Sakai
8
+
9
+ Masao Mutoh <mutomasa at gmail.com>
10
+ Masahiro Sakai <s01397ms@sfc.keio.ac.jp>
11
+
12
+ You may redistribute it and/or modify it under the same
13
+ license terms as Ruby or LGPL.
14
+ =end
15
+
16
+ if Object.constants.include? "Gem"
17
+ begin
18
+ begin
19
+ gem 'locale', '>=2.0.5'
20
+ rescue Gem::LoadError
21
+ end
22
+ rescue NoMethodError
23
+ else LoadError
24
+ end
25
+ end
26
+
27
+ require 'locale'
28
+ raise "Install locale as gem or uninstall old gettext" unless Locale.respond_to? :candidates
29
+
30
+ require 'gettext/version'
31
+ require 'gettext/runtime/textdomain_manager'
32
+
33
+ module GetText
34
+ # If the textdomain isn't bound when calling GetText.textdomain, this error is raised.
35
+ class NoboundTextDomainError < RuntimeError
36
+ def initialize(domainname)
37
+ @domainname = domainname
38
+ end
39
+ def message
40
+ "#{@domainname} is not bound."
41
+ end
42
+ end
43
+
44
+ extend self
45
+
46
+ def self.included(mod) #:nodoc:
47
+ mod.extend self
48
+ end
49
+
50
+ # bindtextdomain(domainname, options = {})
51
+ #
52
+ # Bind a textdomain(%{path}/%{locale}/LC_MESSAGES/%{domainname}.mo) to
53
+ # your program.
54
+ # Normally, the texdomain scope becomes the class/module(and parent
55
+ # classes/included modules).
56
+ #
57
+ # * domainname: the textdomain name.
58
+ # * options: options as an Hash.
59
+ # * :path - the path to the mo-files. When the value is nil, it will search default paths such as
60
+ # /usr/share/locale, /usr/local/share/locale)
61
+ # * :output_charset - The output charset. Same with GetText.set_output_charset. Usually, L10n
62
+ # library doesn't use this option. Application may use this once.
63
+ # * Returns: the GetText::TextDomainManager.
64
+ #
65
+ def bindtextdomain(domainname, *options)
66
+ bindtextdomain_to(self, domainname, *options)
67
+ end
68
+
69
+ # Includes GetText module and bind a textdomain to a class.
70
+ # * klass: the target ruby class.
71
+ # * domainname: the textdomain name.
72
+ # * options: options as an Hash. See GetText.bindtextdomain.
73
+ def bindtextdomain_to(klass, domainname, *options)
74
+ if options[0].kind_of? Hash
75
+ opts = options[0]
76
+ else
77
+ # for backward compatibility.
78
+ opts = {}
79
+ opts[:path] = options[0] if options[0]
80
+ opts[:output_charset] = options[2] if options[2]
81
+ end
82
+ unless (klass.kind_of? GetText or klass.include? GetText)
83
+ klass.__send__(:include, GetText)
84
+ end
85
+ TextDomainManager.bind_to(klass, domainname, opts)
86
+ end
87
+
88
+ # Binds a existed textdomain to your program.
89
+ # This is the same function with GetText.bindtextdomain but simpler(and faster) than bindtextdomain.
90
+ # Note that you need to call GetText.bindtextdomain first. If the domainname hasn't bound yet,
91
+ # raises GetText::NoboundTextDomainError.
92
+ # * domainname: a textdomain name.
93
+ # * Returns: the GetText::TextDomainManager.
94
+ def textdomain(domainname) #:nodoc:
95
+ textdomain_to(self, domainname)
96
+ end
97
+
98
+ # Includes GetText module and bind an exsited textdomain to a class.
99
+ # See textdomain for more detail.
100
+ # * klass: the target ruby class.
101
+ # * domainname: the textdomain name.
102
+
103
+ def textdomain_to(klass, domainname) #:nodoc:
104
+ domain = TextDomainManager.textdomain_pool(domainname)
105
+ raise NoboundTextDomainError.new(domainname) unless domain
106
+ bindtextdomain_to(klass, domainname)
107
+ end
108
+
109
+ # call-seq:
110
+ # gettext(msgid)
111
+ # _(msgid)
112
+ #
113
+ # Translates msgid and return the message.
114
+ # This doesn't make a copy of the message.
115
+ #
116
+ # You need to use String#dup if you want to modify the return value
117
+ # with destructive functions.
118
+ #
119
+ # (e.g.1) _("Hello ").dup << "world"
120
+ #
121
+ # But e.g.1 should be rewrite to:
122
+ #
123
+ # (e.g.2) _("Hello %{val}") % {:val => "world"}
124
+ #
125
+ # Because the translator may want to change the position of "world".
126
+ #
127
+ # * msgid: the message id.
128
+ # * Returns: localized text by msgid. If there are not binded mo-file, it will return msgid.
129
+ def gettext(msgid)
130
+ TextDomainManager.translate_singluar_message(self, msgid)
131
+ end
132
+
133
+ # call-seq:
134
+ # sgettext(msgid, div = '|')
135
+ # s_(msgid, div = '|')
136
+ #
137
+ # Translates msgid, but if there are no localized text,
138
+ # it returns a last part of msgid separeted "div".
139
+ #
140
+ # * msgid: the message id.
141
+ # * separator: separator or nil for no seperation.
142
+ # * Returns: the localized text by msgid. If there are no localized text,
143
+ # it returns a last part of the msgid separeted by "seperator".
144
+ # <tt>Movie|Location -> Location</tt>
145
+ # See: http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC151
146
+ def sgettext(msgid, seperator = "|")
147
+ TextDomainManager.translate_singluar_message(self, msgid, seperator)
148
+ end
149
+
150
+ # call-seq:
151
+ # pgettext(msgctxt, msgid)
152
+ # p_(msgctxt, msgid)
153
+ #
154
+ # Translates msgid with msgctxt. This methods is similer with s_().
155
+ # e.g.) p_("File", "New") == s_("File|New")
156
+ # p_("File", "Open") == s_("File|Open")
157
+ #
158
+ # * msgctxt: the message context.
159
+ # * msgid: the message id.
160
+ # * Returns: the localized text by msgid. If there are no localized text,
161
+ # it returns msgid.
162
+ # See: http://www.gnu.org/software/autoconf/manual/gettext/Contexts.html
163
+ def pgettext(msgctxt, msgid)
164
+ TextDomainManager.translate_singluar_message(self, "#{msgctxt}\004#{msgid}", "\004")
165
+ end
166
+
167
+ # call-seq:
168
+ # ngettext(msgid, msgid_plural, n)
169
+ # ngettext(msgids, n) # msgids = [msgid, msgid_plural]
170
+ # n_(msgid, msgid_plural, n)
171
+ # n_(msgids, n) # msgids = [msgid, msgid_plural]
172
+ #
173
+ # The ngettext is similar to the gettext function as it finds the message catalogs in the same way.
174
+ # But it takes two extra arguments for plural form.
175
+ #
176
+ # * msgid: the singular form.
177
+ # * msgid_plural: the plural form.
178
+ # * n: a number used to determine the plural form.
179
+ # * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
180
+ # "plural-rule" is defined in po-file.
181
+ def ngettext(msgid, msgid_plural, n = nil)
182
+ TextDomainManager.translate_plural_message(self, msgid, msgid_plural, n)
183
+ end
184
+
185
+ # call-seq:
186
+ # nsgettext(msgid, msgid_plural, n, div = "|")
187
+ # nsgettext(msgids, n, div = "|") # msgids = [msgid, msgid_plural]
188
+ # ns_(msgid, msgid_plural, n, div = "|")
189
+ # ns_(msgids, n, div = "|") # msgids = [msgid, msgid_plural]
190
+ #
191
+ # The nsgettext is similar to the ngettext.
192
+ # But if there are no localized text,
193
+ # it returns a last part of msgid separeted "div".
194
+ #
195
+ # * msgid: the singular form with "div". (e.g. "Special|An apple")
196
+ # * msgid_plural: the plural form. (e.g. "%{num} Apples")
197
+ # * n: a number used to determine the plural form.
198
+ # * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
199
+ # "plural-rule" is defined in po-file.
200
+ def nsgettext(msgid, msgid_plural, n="|", seperator = "|")
201
+ TextDomainManager.translate_plural_message(self, msgid, msgid_plural, n, seperator)
202
+ end
203
+
204
+ # call-seq:
205
+ # npgettext(msgctxt, msgid, msgid_plural, n)
206
+ # npgettext(msgctxt, msgids, n) # msgids = [msgid, msgid_plural]
207
+ # np_(msgctxt, msgid, msgid_plural, n)
208
+ # np_(msgctxt, msgids, n) # msgids = [msgid, msgid_plural]
209
+ #
210
+ # The npgettext is similar to the nsgettext function.
211
+ # e.g.) np_("Special", "An apple", "%{num} Apples", num) == ns_("Special|An apple", "%{num} Apples", num)
212
+ # * msgctxt: the message context.
213
+ # * msgid: the singular form.
214
+ # * msgid_plural: the plural form.
215
+ # * n: a number used to determine the plural form.
216
+ # * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
217
+ # "plural-rule" is defined in po-file.
218
+ def npgettext(msgctxt, msgids, arg2 = nil, arg3 = nil)
219
+ if msgids.kind_of?(Array)
220
+ msgid = msgids[0]
221
+ msgid_ctxt = "#{msgctxt}\004#{msgid}"
222
+ msgid_plural = msgids[1]
223
+ opt1 = arg2
224
+ opt2 = arg3
225
+ else
226
+ msgid = msgids
227
+ msgid_ctxt = "#{msgctxt}\004#{msgid}"
228
+ msgid_plural = arg2
229
+ opt1 = arg3
230
+ opt2 = nil
231
+ end
232
+
233
+ msgstr = TextDomainManager.translate_plural_message(self, msgid_ctxt, msgid_plural, opt1, opt2)
234
+ if msgstr == msgid_ctxt
235
+ msgid
236
+ else
237
+ msgstr
238
+ end
239
+ end
240
+
241
+ # makes dynamic translation messages readable for the gettext parser.
242
+ # <tt>_(fruit)</tt> cannot be understood by the gettext parser. To help the parser find all your translations,
243
+ # you can add <tt>fruit = N_("Apple")</tt> which does not translate, but tells the parser: "Apple" needs translation.
244
+ # * msgid: the message id.
245
+ # * Returns: msgid.
246
+ def N_(msgid)
247
+ msgid
248
+ end
249
+
250
+ # This is same function as N_ but for ngettext.
251
+ # * msgid: the message id.
252
+ # * msgid_plural: the plural message id.
253
+ # * Returns: msgid.
254
+ def Nn_(msgid, msgid_plural)
255
+ [msgid, msgid_plural]
256
+ end
257
+
258
+ # Sets charset(String) such as "euc-jp", "sjis", "CP932", "utf-8", ...
259
+ # You shouldn't use this in your own Libraries.
260
+ # * charset: an output_charset
261
+ # * Returns: self
262
+ def set_output_charset(charset)
263
+ TextDomainManager.output_charset = charset
264
+ self
265
+ end
266
+
267
+ # Gets the current output_charset which is set using GetText.set_output_charset.
268
+ # * Returns: output_charset.
269
+ def output_charset
270
+ TextDomainManager.output_charset
271
+ end
272
+
273
+ # Set the locale. This value forces the locale whole the programs.
274
+ # This method calls Locale.set_app_language_tags, Locale.default, Locale.current.
275
+ # Use Locale methods if you need to handle locales more flexible.
276
+ def set_locale(lang)
277
+ Locale.set_app_language_tags(lang)
278
+ Locale.default = lang
279
+ Locale.current = lang
280
+ end
281
+
282
+ # Set the locale to the current thread.
283
+ # Note that if #set_locale is set, this value is ignored.
284
+ # If you need, set_locale(nil); set_current_locale(lang)
285
+ def set_current_locale(lang)
286
+ Locale.current = lang
287
+ end
288
+
289
+ def locale
290
+ Locale.current[0]
291
+ end
292
+
293
+ alias :locale= :set_locale #:nodoc:
294
+ alias :current_locale= :set_current_locale #:nodoc:
295
+ alias :_ :gettext #:nodoc:
296
+ alias :n_ :ngettext #:nodoc:
297
+ alias :s_ :sgettext #:nodoc:
298
+ alias :ns_ :nsgettext #:nodoc:
299
+ alias :np_ :npgettext #:nodoc:
300
+
301
+ alias :output_charset= :set_output_charset #:nodoc:
302
+
303
+ unless defined? XX
304
+ # This is the workaround to conflict p_ methods with the xx("double x") library.
305
+ # http://rubyforge.org/projects/codeforpeople/
306
+ alias :p_ :pgettext #:nodoc:
307
+ end
308
+
309
+ # for backward compatibility
310
+ alias :set_locale_all :set_locale #:nodoc:
311
+ alias :setlocale :set_locale #:nodoc:
312
+ end
data/po/bg/rgettext.po ADDED
@@ -0,0 +1,139 @@
1
+ #
2
+ # a po-file for Ruby-GetText-Package
3
+ #
4
+ # Copyright (C) 2004-2006 Masao Mutoh
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
8
+ #
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: ruby-gettext 2.1.0\n"
12
+ "POT-Creation-Date: 2010-06-25 01:16+0900\n"
13
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
+ "Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
15
+ "Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
16
+ "MIME-Version: 1.0\n"
17
+ "Content-Type: text/plain; charset=UTF-8\n"
18
+ "Content-Transfer-Encoding: 8bit\n"
19
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
+
21
+ #: lib/gettext/tools/rmsgmerge.rb:402
22
+ msgid "Usage: %s def.po ref.pot [-o output.pot]"
23
+ msgstr "Употреба: %s def.po ref.pot [-o output.pot]"
24
+
25
+ #: lib/gettext/tools/rmsgmerge.rb:405
26
+ msgid ""
27
+ "Merges two Uniforum style .po files together. The def.po file is an existing "
28
+ "PO file with translations. The ref.pot file is the last created PO file with "
29
+ "up-to-date source references. ref.pot is generally created by rgettext."
30
+ msgstr ""
31
+ "Слива два Uniforum .pо файла. def.po е съществуващ PO файл с преводи. ref."
32
+ "pot е пресен PO файл с актуални референции към кода. ref.pot обикновено е "
33
+ "създаден от rgettext."
34
+
35
+ #: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:176
36
+ #: lib/gettext/tools/rmsgfmt.rb:50
37
+ msgid "Specific options:"
38
+ msgstr "Специфични опции:"
39
+
40
+ #: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:178
41
+ #: lib/gettext/tools/rmsgfmt.rb:52
42
+ msgid "write output to specified file"
43
+ msgstr "изходът беше записан в зададения файл"
44
+
45
+ #: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:195
46
+ #: lib/gettext/tools/rmsgfmt.rb:56
47
+ msgid "display version information and exit"
48
+ msgstr "показване на версията и изход"
49
+
50
+ #: lib/gettext/tools/rmsgmerge.rb:446
51
+ msgid "definition po is not given."
52
+ msgstr "съществуващия po не е зададен."
53
+
54
+ #: lib/gettext/tools/rmsgmerge.rb:448
55
+ msgid "reference pot is not given."
56
+ msgstr "pot с референциите не е зададен."
57
+
58
+ #: lib/gettext/tools/parser/glade.rb:73
59
+ msgid "`%{file}' is not glade-2.0 format."
60
+ msgstr "`%{file}' не е във формат glade-2.0."
61
+
62
+ #: lib/gettext/tools/rgettext.rb:40
63
+ msgid "'%{klass}' is ignored."
64
+ msgstr "'%{klass}' беше игнориран."
65
+
66
+ #: lib/gettext/tools/rgettext.rb:161
67
+ msgid "Error parsing %{path}"
68
+ msgstr ""
69
+
70
+ #: lib/gettext/tools/rgettext.rb:172
71
+ msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
72
+ msgstr "Употреба: %s input.rb [-r parser.rb] [-o output.pot] "
73
+
74
+ #: lib/gettext/tools/rgettext.rb:174
75
+ msgid "Extract translatable strings from given input files."
76
+ msgstr "Извличане на преводните низове от зададените файлове."
77
+
78
+ #: lib/gettext/tools/rgettext.rb:182
79
+ msgid "File '%s' already exists."
80
+ msgstr "Файлът '%s' съществува."
81
+
82
+ #: lib/gettext/tools/rgettext.rb:187
83
+ msgid "require the library before executing rgettext"
84
+ msgstr "заредете библиотеката с require преди да изпълните rgettext"
85
+
86
+ #: lib/gettext/tools/rgettext.rb:191
87
+ msgid "run in debugging mode"
88
+ msgstr "изпълнение в режим на дебъгване"
89
+
90
+ #: lib/gettext/tools/rgettext.rb:218 lib/gettext/tools/rmsgfmt.rb:29
91
+ msgid "no input files"
92
+ msgstr "няма зададени файлове"
93
+
94
+ #: lib/gettext/tools/rmsgfmt.rb:46
95
+ msgid "Usage: %s input.po [-o output.mo]"
96
+ msgstr "Употреба: %s input.po [-o output.mo]"
97
+
98
+ #: lib/gettext/tools/rmsgfmt.rb:48
99
+ msgid "Generate binary message catalog from textual translation description."
100
+ msgstr "Генериране на двоични файлове с преводите от текстовите описания."
101
+
102
+ #: lib/gettext/tools.rb:68
103
+ msgid "Failed to merge with %{defpo}"
104
+ msgstr "Пропадна сливането с %{defpo}"
105
+
106
+ #: lib/gettext/tools.rb:69
107
+ msgid "New .pot was copied to %{failed_filename}"
108
+ msgstr "Новия .pot беше копиран като %{failed_filename}"
109
+
110
+ #: lib/gettext/tools.rb:70
111
+ msgid "Check these po/pot-files. It may have syntax errors or something wrong."
112
+ msgstr ""
113
+ "Проверете тези po/pot файлове. Може да имат синтактични грешки или нещо "
114
+ "друго."
115
+
116
+ #: lib/gettext/tools.rb:173
117
+ msgid ""
118
+ "`%{cmd}' can not be found. \n"
119
+ "Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
120
+ msgstr ""
121
+
122
+ #: lib/gettext/runtime/textdomain_manager.rb:147
123
+ #, fuzzy
124
+ msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
125
+ msgstr "Третият параметър е грешен: value = %{number}"
126
+
127
+ #: lib/gettext/runtime/textdomain_manager.rb:153
128
+ msgid "ngettext: 3rd parameter should be a number, not nil."
129
+ msgstr ""
130
+
131
+ #: src/poparser.ry:38 src/poparser.ry:55
132
+ msgid "Warning: fuzzy message was ignored.\n"
133
+ msgstr "Предупреждение: беше игнорирано неточно съобщение"
134
+
135
+ #: src/poparser.ry:148
136
+ msgid "Warning: obsolete msgid exists.\n"
137
+ msgstr ""
138
+ "Предупреждение: има несъществуващи вече msgid\n"
139
+ "."
data/po/bs/rgettext.po ADDED
@@ -0,0 +1,139 @@
1
+ # translation of rgettext.po to Bosnian
2
+ #
3
+ # a po-file for Ruby-GetText-Package
4
+ #
5
+ # Copyright (C) 2004-2006 Masao Mutoh
6
+ # This file is distributed under the same license as the Ruby-GetText-Package.
7
+ #
8
+ # Sanjin Sehic <saserr@gmail.com>, 2007.
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: ruby-gettext 2.1.0\n"
12
+ "POT-Creation-Date: 2010-06-25 01:16+0900\n"
13
+ "PO-Revision-Date: 2007-03-17 16:19+0100\n"
14
+ "Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
15
+ "Language-Team: Bosnian <saserr@gmail.com>\n"
16
+ "MIME-Version: 1.0\n"
17
+ "Content-Type: text/plain; charset=UTF-8\n"
18
+ "Content-Transfer-Encoding: 8bit\n"
19
+ "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
20
+ "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
21
+ "X-Generator: KBabel 1.11.4\n"
22
+
23
+ #: lib/gettext/tools/rmsgmerge.rb:402
24
+ msgid "Usage: %s def.po ref.pot [-o output.pot]"
25
+ msgstr "Korištenje: %s def.po ref.pot [-o izlaz.pot]"
26
+
27
+ #: lib/gettext/tools/rmsgmerge.rb:405
28
+ msgid ""
29
+ "Merges two Uniforum style .po files together. The def.po file is an existing "
30
+ "PO file with translations. The ref.pot file is the last created PO file with "
31
+ "up-to-date source references. ref.pot is generally created by rgettext."
32
+ msgstr ""
33
+ "Spaja dvije Uniforum style .po datoteke skupa. def.po datoteka je već "
34
+ "postojeća PO datoteka sa prevodima. ref.pot je zadnja napravljena PO "
35
+ "datoteka sa najnovijim referencama koda. ref.pot je najčešće napravljen sa "
36
+ "rgettext."
37
+
38
+ #: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:176
39
+ #: lib/gettext/tools/rmsgfmt.rb:50
40
+ msgid "Specific options:"
41
+ msgstr "Specifične opcije:"
42
+
43
+ #: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:178
44
+ #: lib/gettext/tools/rmsgfmt.rb:52
45
+ msgid "write output to specified file"
46
+ msgstr "zapiši izlaz u specifičnu datoteku"
47
+
48
+ #: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:195
49
+ #: lib/gettext/tools/rmsgfmt.rb:56
50
+ msgid "display version information and exit"
51
+ msgstr "prikaži informaciju o verziji i završi"
52
+
53
+ #: lib/gettext/tools/rmsgmerge.rb:446
54
+ msgid "definition po is not given."
55
+ msgstr "definicijski po nije dat."
56
+
57
+ #: lib/gettext/tools/rmsgmerge.rb:448
58
+ msgid "reference pot is not given."
59
+ msgstr "referencni po nije dat."
60
+
61
+ #: lib/gettext/tools/parser/glade.rb:73
62
+ msgid "`%{file}' is not glade-2.0 format."
63
+ msgstr "'%{file}' nije glade-2.0 format."
64
+
65
+ #: lib/gettext/tools/rgettext.rb:40
66
+ msgid "'%{klass}' is ignored."
67
+ msgstr "%{klass} je ignorisan."
68
+
69
+ #: lib/gettext/tools/rgettext.rb:161
70
+ msgid "Error parsing %{path}"
71
+ msgstr ""
72
+
73
+ #: lib/gettext/tools/rgettext.rb:172
74
+ msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
75
+ msgstr "Korištenje: %s ulaz.rb [-r parser.rb] [-o izlaz.pot]"
76
+
77
+ #: lib/gettext/tools/rgettext.rb:174
78
+ msgid "Extract translatable strings from given input files."
79
+ msgstr "Izvadi niske za prevođenje iz date ulazne datoteke."
80
+
81
+ #: lib/gettext/tools/rgettext.rb:182
82
+ msgid "File '%s' already exists."
83
+ msgstr "Datoteka '%s' već postoji."
84
+
85
+ #: lib/gettext/tools/rgettext.rb:187
86
+ msgid "require the library before executing rgettext"
87
+ msgstr "zahtjevaj biblioteku prije izvršavanja rgettext-a"
88
+
89
+ #: lib/gettext/tools/rgettext.rb:191
90
+ msgid "run in debugging mode"
91
+ msgstr "pokreni u modu za nalaženje grešaka"
92
+
93
+ #: lib/gettext/tools/rgettext.rb:218 lib/gettext/tools/rmsgfmt.rb:29
94
+ msgid "no input files"
95
+ msgstr "nema ulaznih datoteka"
96
+
97
+ #: lib/gettext/tools/rmsgfmt.rb:46
98
+ msgid "Usage: %s input.po [-o output.mo]"
99
+ msgstr "Korištenje: %s ulaz.po [-o izlaz.mo]"
100
+
101
+ #: lib/gettext/tools/rmsgfmt.rb:48
102
+ msgid "Generate binary message catalog from textual translation description."
103
+ msgstr "Generiši binarni katalog poruka iz tekstualnog opisa prevoda"
104
+
105
+ #: lib/gettext/tools.rb:68
106
+ #, fuzzy
107
+ msgid "Failed to merge with %{defpo}"
108
+ msgstr "Spajanje sa %{defpo} nije uspjelo - nastavljam dalje!"
109
+
110
+ #: lib/gettext/tools.rb:69
111
+ #, fuzzy
112
+ msgid "New .pot was copied to %{failed_filename}"
113
+ msgstr "Molim da provjerite novi .pot u %{failed_filename}"
114
+
115
+ #: lib/gettext/tools.rb:70
116
+ msgid "Check these po/pot-files. It may have syntax errors or something wrong."
117
+ msgstr ""
118
+
119
+ #: lib/gettext/tools.rb:173
120
+ msgid ""
121
+ "`%{cmd}' can not be found. \n"
122
+ "Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
123
+ msgstr ""
124
+
125
+ #: lib/gettext/runtime/textdomain_manager.rb:147
126
+ msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
127
+ msgstr ""
128
+
129
+ #: lib/gettext/runtime/textdomain_manager.rb:153
130
+ msgid "ngettext: 3rd parameter should be a number, not nil."
131
+ msgstr ""
132
+
133
+ #: src/poparser.ry:38 src/poparser.ry:55
134
+ msgid "Warning: fuzzy message was ignored.\n"
135
+ msgstr "Upozorenje: čudna poruka je ignorisana.\n"
136
+
137
+ #: src/poparser.ry:148
138
+ msgid "Warning: obsolete msgid exists.\n"
139
+ msgstr "Upozorenje: nekorišteni msgid postoji.\n"