experteer-gettext 2.0.4

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 (424) hide show
  1. data/COPYING +55 -0
  2. data/ChangeLog +57 -0
  3. data/ChangeLog-1 +2016 -0
  4. data/NEWS-1 +414 -0
  5. data/README.rdoc +251 -0
  6. data/Rakefile +260 -0
  7. data/VERSION +2 -0
  8. data/bin/rgettext +24 -0
  9. data/bin/rmsgfmt +24 -0
  10. data/bin/rmsgmerge +24 -0
  11. data/gettext.gemspec +494 -0
  12. data/lib/gettext/cgi.rb +39 -0
  13. data/lib/gettext/class_info.rb +67 -0
  14. data/lib/gettext/core_ext/iconv.rb +112 -0
  15. data/lib/gettext/core_ext/string.rb +84 -0
  16. data/lib/gettext/locale_path.rb +123 -0
  17. data/lib/gettext/mofile.rb +330 -0
  18. data/lib/gettext/parser/erb.rb +54 -0
  19. data/lib/gettext/parser/glade.rb +100 -0
  20. data/lib/gettext/parser/ruby.rb +193 -0
  21. data/lib/gettext/poparser.rb +355 -0
  22. data/lib/gettext/textdomain.rb +179 -0
  23. data/lib/gettext/textdomain_group.rb +24 -0
  24. data/lib/gettext/textdomain_manager.rb +212 -0
  25. data/lib/gettext/tools/rgettext.rb +236 -0
  26. data/lib/gettext/tools/rmsgfmt.rb +84 -0
  27. data/lib/gettext/tools/rmsgmerge.rb +498 -0
  28. data/lib/gettext/tools.rb +195 -0
  29. data/lib/gettext/translation_target.rb +93 -0
  30. data/lib/gettext/utils.rb +37 -0
  31. data/lib/gettext/version.rb +12 -0
  32. data/lib/gettext.rb +312 -0
  33. data/po/bg/rgettext.po +130 -0
  34. data/po/bs/rgettext.po +131 -0
  35. data/po/ca/rgettext.po +129 -0
  36. data/po/cs/rgettext.po +132 -0
  37. data/po/de/rgettext.po +137 -0
  38. data/po/el/rgettext.po +128 -0
  39. data/po/eo/rgettext.po +129 -0
  40. data/po/es/rgettext.po +130 -0
  41. data/po/et/rgettext.po +127 -0
  42. data/po/fr/rgettext.po +133 -0
  43. data/po/hr/rgettext.po +131 -0
  44. data/po/hu/rgettext.po +129 -0
  45. data/po/it/rgettext.po +130 -0
  46. data/po/ja/rgettext.po +129 -0
  47. data/po/ko/rgettext.po +129 -0
  48. data/po/lv/rgettext.po +130 -0
  49. data/po/nb/rgettext.po +131 -0
  50. data/po/nl/rgettext.po +130 -0
  51. data/po/pt_BR/rgettext.po +132 -0
  52. data/po/rgettext.pot +121 -0
  53. data/po/ru/rgettext.po +131 -0
  54. data/po/sr/rgettext.po +130 -0
  55. data/po/sv/rgettext.po +123 -0
  56. data/po/ua/rgettext.po +134 -0
  57. data/po/vi/rgettext.po +128 -0
  58. data/po/zh/rgettext.po +129 -0
  59. data/po/zh_TW/rgettext.po +128 -0
  60. data/samples/README +16 -0
  61. data/samples/cgi/README +43 -0
  62. data/samples/cgi/Rakefile +27 -0
  63. data/samples/cgi/cookie.cgi +64 -0
  64. data/samples/cgi/gettext.css +116 -0
  65. data/samples/cgi/helloerb.rhtml +28 -0
  66. data/samples/cgi/helloerb1.cgi +58 -0
  67. data/samples/cgi/helloerb2.cgi +51 -0
  68. data/samples/cgi/hellolib.rb +20 -0
  69. data/samples/cgi/http.rb +51 -0
  70. data/samples/cgi/index.cgi +111 -0
  71. data/samples/cgi/other.rhtml +20 -0
  72. data/samples/cgi/po/bg/helloerb1.po +59 -0
  73. data/samples/cgi/po/bg/helloerb2.po +51 -0
  74. data/samples/cgi/po/bg/hellolib.po +23 -0
  75. data/samples/cgi/po/bg/main.po +83 -0
  76. data/samples/cgi/po/bs/helloerb1.po +59 -0
  77. data/samples/cgi/po/bs/helloerb2.po +51 -0
  78. data/samples/cgi/po/bs/hellolib.po +23 -0
  79. data/samples/cgi/po/bs/main.po +83 -0
  80. data/samples/cgi/po/ca/helloerb1.po +59 -0
  81. data/samples/cgi/po/ca/helloerb2.po +51 -0
  82. data/samples/cgi/po/ca/hellolib.po +23 -0
  83. data/samples/cgi/po/ca/main.po +83 -0
  84. data/samples/cgi/po/cs/helloerb1.po +61 -0
  85. data/samples/cgi/po/cs/helloerb2.po +52 -0
  86. data/samples/cgi/po/cs/hellolib.po +25 -0
  87. data/samples/cgi/po/cs/main.po +85 -0
  88. data/samples/cgi/po/de/helloerb1.po +61 -0
  89. data/samples/cgi/po/de/helloerb2.po +52 -0
  90. data/samples/cgi/po/de/hellolib.po +24 -0
  91. data/samples/cgi/po/de/main.po +86 -0
  92. data/samples/cgi/po/el/helloerb1.po +60 -0
  93. data/samples/cgi/po/el/helloerb2.po +51 -0
  94. data/samples/cgi/po/el/hellolib.po +23 -0
  95. data/samples/cgi/po/el/main.po +84 -0
  96. data/samples/cgi/po/eo/helloerb1.po +60 -0
  97. data/samples/cgi/po/eo/helloerb2.po +52 -0
  98. data/samples/cgi/po/eo/hellolib.po +24 -0
  99. data/samples/cgi/po/eo/main.po +84 -0
  100. data/samples/cgi/po/es/helloerb1.po +59 -0
  101. data/samples/cgi/po/es/helloerb2.po +50 -0
  102. data/samples/cgi/po/es/hellolib.po +22 -0
  103. data/samples/cgi/po/es/main.po +83 -0
  104. data/samples/cgi/po/fr/helloerb1.po +59 -0
  105. data/samples/cgi/po/fr/helloerb2.po +51 -0
  106. data/samples/cgi/po/fr/hellolib.po +22 -0
  107. data/samples/cgi/po/fr/main.po +85 -0
  108. data/samples/cgi/po/helloerb1.pot +60 -0
  109. data/samples/cgi/po/helloerb2.pot +52 -0
  110. data/samples/cgi/po/hellolib.pot +24 -0
  111. data/samples/cgi/po/hr/helloerb1.po +59 -0
  112. data/samples/cgi/po/hr/helloerb2.po +51 -0
  113. data/samples/cgi/po/hr/hellolib.po +23 -0
  114. data/samples/cgi/po/hr/main.po +83 -0
  115. data/samples/cgi/po/hu/helloerb1.po +59 -0
  116. data/samples/cgi/po/hu/helloerb2.po +51 -0
  117. data/samples/cgi/po/hu/hellolib.po +23 -0
  118. data/samples/cgi/po/hu/main.po +82 -0
  119. data/samples/cgi/po/it/helloerb1.po +60 -0
  120. data/samples/cgi/po/it/helloerb2.po +52 -0
  121. data/samples/cgi/po/it/hellolib.po +24 -0
  122. data/samples/cgi/po/it/main.po +84 -0
  123. data/samples/cgi/po/ja/helloerb1.po +60 -0
  124. data/samples/cgi/po/ja/helloerb2.po +52 -0
  125. data/samples/cgi/po/ja/hellolib.po +24 -0
  126. data/samples/cgi/po/ja/main.po +85 -0
  127. data/samples/cgi/po/ko/helloerb1.po +59 -0
  128. data/samples/cgi/po/ko/helloerb2.po +51 -0
  129. data/samples/cgi/po/ko/hellolib.po +23 -0
  130. data/samples/cgi/po/ko/main.po +84 -0
  131. data/samples/cgi/po/lv/helloerb1.po +65 -0
  132. data/samples/cgi/po/lv/helloerb2.po +52 -0
  133. data/samples/cgi/po/lv/hellolib.po +24 -0
  134. data/samples/cgi/po/lv/main.po +77 -0
  135. data/samples/cgi/po/main.pot +80 -0
  136. data/samples/cgi/po/nb/helloerb1.po +60 -0
  137. data/samples/cgi/po/nb/helloerb2.po +52 -0
  138. data/samples/cgi/po/nb/hellolib.po +24 -0
  139. data/samples/cgi/po/nb/main.po +84 -0
  140. data/samples/cgi/po/nl/helloerb1.po +61 -0
  141. data/samples/cgi/po/nl/helloerb2.po +52 -0
  142. data/samples/cgi/po/nl/hellolib.po +24 -0
  143. data/samples/cgi/po/nl/main.po +86 -0
  144. data/samples/cgi/po/pt_BR/helloerb1.po +59 -0
  145. data/samples/cgi/po/pt_BR/helloerb2.po +51 -0
  146. data/samples/cgi/po/pt_BR/hellolib.po +23 -0
  147. data/samples/cgi/po/pt_BR/main.po +84 -0
  148. data/samples/cgi/po/ru/helloerb1.po +58 -0
  149. data/samples/cgi/po/ru/helloerb2.po +50 -0
  150. data/samples/cgi/po/ru/hellolib.po +22 -0
  151. data/samples/cgi/po/ru/main.po +82 -0
  152. data/samples/cgi/po/sr/helloerb1.po +60 -0
  153. data/samples/cgi/po/sr/helloerb2.po +52 -0
  154. data/samples/cgi/po/sr/hellolib.po +24 -0
  155. data/samples/cgi/po/sr/main.po +80 -0
  156. data/samples/cgi/po/ua/helloerb1.po +62 -0
  157. data/samples/cgi/po/ua/helloerb2.po +54 -0
  158. data/samples/cgi/po/ua/hellolib.po +26 -0
  159. data/samples/cgi/po/ua/main.po +84 -0
  160. data/samples/cgi/po/vi/helloerb1.po +65 -0
  161. data/samples/cgi/po/vi/helloerb2.po +52 -0
  162. data/samples/cgi/po/vi/hellolib.po +24 -0
  163. data/samples/cgi/po/vi/main.po +77 -0
  164. data/samples/cgi/po/zh/helloerb1.po +60 -0
  165. data/samples/cgi/po/zh/helloerb2.po +52 -0
  166. data/samples/cgi/po/zh/hellolib.po +24 -0
  167. data/samples/cgi/po/zh/main.po +80 -0
  168. data/samples/cgi/po/zh_TW/helloerb1.po +67 -0
  169. data/samples/cgi/po/zh_TW/helloerb2.po +54 -0
  170. data/samples/cgi/po/zh_TW/hellolib.po +26 -0
  171. data/samples/cgi/po/zh_TW/main.po +79 -0
  172. data/samples/hello.rb +36 -0
  173. data/samples/hello2.rb +23 -0
  174. data/samples/hello_glade2.glade +70 -0
  175. data/samples/hello_glade2.rb +25 -0
  176. data/samples/hello_gtk2.rb +27 -0
  177. data/samples/hello_noop.rb +31 -0
  178. data/samples/hello_plural.rb +26 -0
  179. data/samples/hello_tk.rb +19 -0
  180. data/samples/makemo.rb +4 -0
  181. data/samples/po/bg/hello.po +24 -0
  182. data/samples/po/bg/hello2.po +31 -0
  183. data/samples/po/bg/hello_glade2.po +31 -0
  184. data/samples/po/bg/hello_gtk.po +23 -0
  185. data/samples/po/bg/hello_noop.po +27 -0
  186. data/samples/po/bg/hello_plural.po +25 -0
  187. data/samples/po/bg/hello_tk.po +23 -0
  188. data/samples/po/bs/hello.po +23 -0
  189. data/samples/po/bs/hello2.po +31 -0
  190. data/samples/po/bs/hello_glade2.po +31 -0
  191. data/samples/po/bs/hello_gtk.po +23 -0
  192. data/samples/po/bs/hello_noop.po +27 -0
  193. data/samples/po/bs/hello_plural.po +26 -0
  194. data/samples/po/bs/hello_tk.po +23 -0
  195. data/samples/po/ca/hello.po +23 -0
  196. data/samples/po/ca/hello2.po +31 -0
  197. data/samples/po/ca/hello_glade2.po +31 -0
  198. data/samples/po/ca/hello_gtk.po +23 -0
  199. data/samples/po/ca/hello_noop.po +27 -0
  200. data/samples/po/ca/hello_plural.po +25 -0
  201. data/samples/po/ca/hello_tk.po +23 -0
  202. data/samples/po/cs/hello.po +23 -0
  203. data/samples/po/cs/hello2.po +31 -0
  204. data/samples/po/cs/hello_glade2.po +37 -0
  205. data/samples/po/cs/hello_gtk.po +23 -0
  206. data/samples/po/cs/hello_noop.po +27 -0
  207. data/samples/po/cs/hello_plural.po +26 -0
  208. data/samples/po/cs/hello_tk.po +23 -0
  209. data/samples/po/de/hello.po +20 -0
  210. data/samples/po/de/hello2.po +28 -0
  211. data/samples/po/de/hello_glade2.po +27 -0
  212. data/samples/po/de/hello_gtk.po +20 -0
  213. data/samples/po/de/hello_noop.po +24 -0
  214. data/samples/po/de/hello_plural.po +25 -0
  215. data/samples/po/de/hello_tk.po +20 -0
  216. data/samples/po/el/hello.po +23 -0
  217. data/samples/po/el/hello2.po +31 -0
  218. data/samples/po/el/hello_glade2.po +31 -0
  219. data/samples/po/el/hello_gtk.po +22 -0
  220. data/samples/po/el/hello_noop.po +27 -0
  221. data/samples/po/el/hello_plural.po +25 -0
  222. data/samples/po/el/hello_tk.po +23 -0
  223. data/samples/po/eo/hello.po +23 -0
  224. data/samples/po/eo/hello2.po +31 -0
  225. data/samples/po/eo/hello_glade2.po +32 -0
  226. data/samples/po/eo/hello_gtk.po +23 -0
  227. data/samples/po/eo/hello_noop.po +27 -0
  228. data/samples/po/eo/hello_plural.po +26 -0
  229. data/samples/po/eo/hello_tk.po +24 -0
  230. data/samples/po/es/hello.po +21 -0
  231. data/samples/po/es/hello2.po +28 -0
  232. data/samples/po/es/hello_glade2.po +28 -0
  233. data/samples/po/es/hello_gtk.po +20 -0
  234. data/samples/po/es/hello_noop.po +24 -0
  235. data/samples/po/es/hello_plural.po +23 -0
  236. data/samples/po/es/hello_tk.po +20 -0
  237. data/samples/po/fr/hello.po +18 -0
  238. data/samples/po/fr/hello2.po +26 -0
  239. data/samples/po/fr/hello_glade2.po +27 -0
  240. data/samples/po/fr/hello_gtk.po +18 -0
  241. data/samples/po/fr/hello_noop.po +22 -0
  242. data/samples/po/fr/hello_plural.po +21 -0
  243. data/samples/po/fr/hello_tk.po +18 -0
  244. data/samples/po/hello.pot +23 -0
  245. data/samples/po/hello2.pot +31 -0
  246. data/samples/po/hello_glade2.pot +32 -0
  247. data/samples/po/hello_gtk.pot +23 -0
  248. data/samples/po/hello_noop.pot +27 -0
  249. data/samples/po/hello_plural.pot +26 -0
  250. data/samples/po/hello_tk.pot +24 -0
  251. data/samples/po/hr/hello.po +23 -0
  252. data/samples/po/hr/hello2.po +31 -0
  253. data/samples/po/hr/hello_glade2.po +31 -0
  254. data/samples/po/hr/hello_gtk.po +23 -0
  255. data/samples/po/hr/hello_noop.po +27 -0
  256. data/samples/po/hr/hello_plural.po +26 -0
  257. data/samples/po/hr/hello_tk.po +23 -0
  258. data/samples/po/hu/hello.po +22 -0
  259. data/samples/po/hu/hello2.po +30 -0
  260. data/samples/po/hu/hello_glade2.po +31 -0
  261. data/samples/po/hu/hello_gtk.po +22 -0
  262. data/samples/po/hu/hello_noop.po +26 -0
  263. data/samples/po/hu/hello_plural.po +25 -0
  264. data/samples/po/hu/hello_tk.po +23 -0
  265. data/samples/po/it/hello.po +20 -0
  266. data/samples/po/it/hello2.po +28 -0
  267. data/samples/po/it/hello_glade2.po +28 -0
  268. data/samples/po/it/hello_gtk.po +21 -0
  269. data/samples/po/it/hello_noop.po +24 -0
  270. data/samples/po/it/hello_plural.po +23 -0
  271. data/samples/po/it/hello_tk.po +21 -0
  272. data/samples/po/ja/hello.po +20 -0
  273. data/samples/po/ja/hello2.po +28 -0
  274. data/samples/po/ja/hello_glade2.po +26 -0
  275. data/samples/po/ja/hello_gtk.po +19 -0
  276. data/samples/po/ja/hello_noop.po +23 -0
  277. data/samples/po/ja/hello_plural.po +21 -0
  278. data/samples/po/ja/hello_tk.po +19 -0
  279. data/samples/po/ko/hello.po +18 -0
  280. data/samples/po/ko/hello2.po +26 -0
  281. data/samples/po/ko/hello_glade2.po +29 -0
  282. data/samples/po/ko/hello_gtk.po +18 -0
  283. data/samples/po/ko/hello_noop.po +22 -0
  284. data/samples/po/ko/hello_plural.po +25 -0
  285. data/samples/po/ko/hello_tk.po +19 -0
  286. data/samples/po/lv/hello.po +24 -0
  287. data/samples/po/lv/hello2.po +32 -0
  288. data/samples/po/lv/hello_glade2.po +38 -0
  289. data/samples/po/lv/hello_gtk.po +24 -0
  290. data/samples/po/lv/hello_noop.po +28 -0
  291. data/samples/po/lv/hello_plural.po +26 -0
  292. data/samples/po/lv/hello_tk.po +24 -0
  293. data/samples/po/nb/hello.po +23 -0
  294. data/samples/po/nb/hello2.po +31 -0
  295. data/samples/po/nb/hello_glade2.po +31 -0
  296. data/samples/po/nb/hello_gtk.po +23 -0
  297. data/samples/po/nb/hello_noop.po +27 -0
  298. data/samples/po/nb/hello_plural.po +26 -0
  299. data/samples/po/nb/hello_tk.po +24 -0
  300. data/samples/po/nl/hello.po +24 -0
  301. data/samples/po/nl/hello2.po +32 -0
  302. data/samples/po/nl/hello_glade2.po +31 -0
  303. data/samples/po/nl/hello_gtk.po +24 -0
  304. data/samples/po/nl/hello_noop.po +28 -0
  305. data/samples/po/nl/hello_plural.po +25 -0
  306. data/samples/po/nl/hello_tk.po +24 -0
  307. data/samples/po/pt_BR/hello.po +21 -0
  308. data/samples/po/pt_BR/hello2.po +29 -0
  309. data/samples/po/pt_BR/hello_glade2.po +29 -0
  310. data/samples/po/pt_BR/hello_gtk.po +21 -0
  311. data/samples/po/pt_BR/hello_noop.po +25 -0
  312. data/samples/po/pt_BR/hello_plural.po +23 -0
  313. data/samples/po/pt_BR/hello_tk.po +21 -0
  314. data/samples/po/ru/hello.po +22 -0
  315. data/samples/po/ru/hello2.po +30 -0
  316. data/samples/po/ru/hello_glade2.po +30 -0
  317. data/samples/po/ru/hello_gtk.po +22 -0
  318. data/samples/po/ru/hello_noop.po +26 -0
  319. data/samples/po/ru/hello_plural.po +28 -0
  320. data/samples/po/ru/hello_tk.po +22 -0
  321. data/samples/po/sr/hello.po +22 -0
  322. data/samples/po/sr/hello2.po +30 -0
  323. data/samples/po/sr/hello_glade2.po +32 -0
  324. data/samples/po/sr/hello_gtk.po +22 -0
  325. data/samples/po/sr/hello_noop.po +26 -0
  326. data/samples/po/sr/hello_plural.po +26 -0
  327. data/samples/po/sr/hello_tk.po +24 -0
  328. data/samples/po/sv/hello.po +20 -0
  329. data/samples/po/sv/hello2.po +28 -0
  330. data/samples/po/sv/hello_glade2.po +28 -0
  331. data/samples/po/sv/hello_gtk.po +20 -0
  332. data/samples/po/sv/hello_noop.po +24 -0
  333. data/samples/po/sv/hello_plural.po +23 -0
  334. data/samples/po/sv/hello_tk.po +20 -0
  335. data/samples/po/test.rb +11 -0
  336. data/samples/po/ua/hello.po +22 -0
  337. data/samples/po/ua/hello2.po +30 -0
  338. data/samples/po/ua/hello_glade2.po +34 -0
  339. data/samples/po/ua/hello_gtk.po +22 -0
  340. data/samples/po/ua/hello_noop.po +26 -0
  341. data/samples/po/ua/hello_plural.po +29 -0
  342. data/samples/po/ua/hello_tk.po +26 -0
  343. data/samples/po/vi/hello.po +23 -0
  344. data/samples/po/vi/hello2.po +31 -0
  345. data/samples/po/vi/hello_glade2.po +38 -0
  346. data/samples/po/vi/hello_gtk.po +23 -0
  347. data/samples/po/vi/hello_noop.po +27 -0
  348. data/samples/po/vi/hello_plural.po +26 -0
  349. data/samples/po/vi/hello_tk.po +24 -0
  350. data/samples/po/zh/hello.po +23 -0
  351. data/samples/po/zh/hello2.po +31 -0
  352. data/samples/po/zh/hello_glade2.po +31 -0
  353. data/samples/po/zh/hello_gtk.po +23 -0
  354. data/samples/po/zh/hello_noop.po +27 -0
  355. data/samples/po/zh/hello_plural.po +25 -0
  356. data/samples/po/zh/hello_tk.po +23 -0
  357. data/samples/po/zh_TW/hello.po +26 -0
  358. data/samples/po/zh_TW/hello2.po +34 -0
  359. data/samples/po/zh_TW/hello_glade2.po +40 -0
  360. data/samples/po/zh_TW/hello_gtk.po +25 -0
  361. data/samples/po/zh_TW/hello_noop.po +30 -0
  362. data/samples/po/zh_TW/hello_plural.po +28 -0
  363. data/samples/po/zh_TW/hello_tk.po +26 -0
  364. data/test/README +1 -0
  365. data/test/Rakefile +17 -0
  366. data/test/po/cr/plural.po +23 -0
  367. data/test/po/da/plural.po +22 -0
  368. data/test/po/da/plural_error.po +22 -0
  369. data/test/po/fr/plural.po +28 -0
  370. data/test/po/fr/plural_error.po +20 -0
  371. data/test/po/fr/test1.po +23 -0
  372. data/test/po/fr/test2.po +19 -0
  373. data/test/po/ir/plural.po +23 -0
  374. data/test/po/ja/npgettext.po +46 -0
  375. data/test/po/ja/nsgettext.po +65 -0
  376. data/test/po/ja/pgettext.po +41 -0
  377. data/test/po/ja/plural.po +28 -0
  378. data/test/po/ja/plural_error.po +20 -0
  379. data/test/po/ja/rubyparser.po +43 -0
  380. data/test/po/ja/sgettext.po +47 -0
  381. data/test/po/ja/test1.po +23 -0
  382. data/test/po/ja/test2.po +19 -0
  383. data/test/po/ja/test3.po +19 -0
  384. data/test/po/la/plural.po +23 -0
  385. data/test/po/la/plural_error.po +21 -0
  386. data/test/po/li/plural.po +23 -0
  387. data/test/po/li/plural_error.po +27 -0
  388. data/test/po/po/plural.po +23 -0
  389. data/test/po/sl/plural.po +24 -0
  390. data/test/test_class_info.rb +83 -0
  391. data/test/test_gettext.rb +311 -0
  392. data/test/test_locale_path.rb +50 -0
  393. data/test/test_parser.rb +157 -0
  394. data/test/test_po_generation.rb +20 -0
  395. data/test/test_string.rb +65 -0
  396. data/test/test_textdomain_bind.rb +37 -0
  397. data/test/test_textdomain_multi.rb +80 -0
  398. data/test/test_textdomain_toplevel.rb +42 -0
  399. data/test/test_thread.rb +41 -0
  400. data/test/test_translation_target.rb +29 -0
  401. data/test/testlib/N_.rb +66 -0
  402. data/test/testlib/erb.rhtml +15 -0
  403. data/test/testlib/erb.rxml +16 -0
  404. data/test/testlib/gettext.rb +113 -0
  405. data/test/testlib/gladeparser.glade +183 -0
  406. data/test/testlib/helper.rb +11 -0
  407. data/test/testlib/multi_textdomain.rb +131 -0
  408. data/test/testlib/ngettext.rb +79 -0
  409. data/test/testlib/npgettext.rb +31 -0
  410. data/test/testlib/nsgettext.rb +42 -0
  411. data/test/testlib/pgettext.rb +36 -0
  412. data/test/testlib/sgettext.rb +46 -0
  413. data/test/testlib/simple.rb +14 -0
  414. data/test/tools/files/app.pot +0 -0
  415. data/test/tools/files/de/app.po +0 -0
  416. data/test/tools/files/en/app.po +0 -0
  417. data/test/tools/files/en/test.po +21 -0
  418. data/test/tools/files/simple_1.po +2 -0
  419. data/test/tools/files/simple_2.po +2 -0
  420. data/test/tools/files/simple_translation.rb +1 -0
  421. data/test/tools/files/version.po +7 -0
  422. data/test/tools/test.pot +21 -0
  423. data/test/tools/test_tools.rb +61 -0
  424. metadata +510 -0
@@ -0,0 +1,52 @@
1
+ # CGI/ERB sample for Ruby-GetText-Package.
2
+ #
3
+ # Copyright (C) 2005,2006 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # Yingfeng <blogyingfeng at gmail.com>, 2006.
8
+ #
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: cgi-sample 1.1.1\n"
12
+ "POT-Creation-Date: 2006-03-04 22:50+0900\n"
13
+ "PO-Revision-Date: 2006-04-15 13:11+0300\n"
14
+ "Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
15
+ "Language-Team: Simplified Chinese\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=1; plural=0;\n"
20
+ "X-Generator: KBabel 1.9.1\n"
21
+
22
+ #: helloerb2.cgi:34
23
+ msgid "Sample script for CGI/ERB (Auto-Detect charset)."
24
+ msgstr "用于CGI/ERB的示例脚本(自动检测字符集)"
25
+
26
+ #: helloerb.rhtml:5
27
+ msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
28
+ msgstr "用于CGI/ERB和Ruby-GetText-Package的示例脚本"
29
+
30
+ #: helloerb.rhtml:12
31
+ msgid "Hello World"
32
+ msgstr "你好世界"
33
+
34
+ #: helloerb.rhtml:15
35
+ msgid "locale"
36
+ msgstr "本地"
37
+
38
+ #: helloerb.rhtml:16
39
+ msgid "output_charset"
40
+ msgstr "输出字符集"
41
+
42
+ #: helloerb.rhtml:17
43
+ msgid "QUERY_STRING"
44
+ msgstr "QUERY_STRING"
45
+
46
+ #: helloerb.rhtml:19
47
+ msgid "Call a library method which has another textdomain."
48
+ msgstr "调用具备其他textdomain的库方法"
49
+
50
+ #: helloerb.rhtml:21
51
+ msgid "Back"
52
+ msgstr "返回"
@@ -0,0 +1,24 @@
1
+ # CGI/ERB sample for Ruby-GetText-Package.
2
+ #
3
+ # Copyright (C) 2005,2006 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # Yingfeng <blogyingfeng at gmail.com>, 2006.
8
+ #
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: cgi-sample 1.1.1\n"
12
+ "POT-Creation-Date: 2006-03-04 22:50+0900\n"
13
+ "PO-Revision-Date: 2006-04-15 13:11+0300\n"
14
+ "Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
15
+ "Language-Team: Simplified Chinese\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=1; plural=0;\n"
20
+ "X-Generator: KBabel 1.9.1\n"
21
+
22
+ #: hellolib.rb:19
23
+ msgid "This message is from hellolib."
24
+ msgstr "本条信息来自hellolib。"
@@ -0,0 +1,80 @@
1
+ # CGI/ERB sample for Ruby-GetText-Package.
2
+ #
3
+ # Copyright (C) 2005,2006 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # Yingfeng <blogyingfeng at gmail.com>, 2006.
8
+ #
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: cgi-sample 1.1.1\n"
12
+ "POT-Creation-Date: 2006-03-04 22:50+0900\n"
13
+ "PO-Revision-Date: 2006-04-15 13:11+0300\n"
14
+ "Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
15
+ "Language-Team: Simplified Chinese\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=1; plural=0;\n"
20
+ "X-Generator: KBabel 1.9.1\n"
21
+
22
+ #: index.cgi:36
23
+ msgid "an ERB/CGI sample (UTF-8)."
24
+ msgstr "一个ERB/CGI例子(UTF-8)。"
25
+
26
+ #: index.cgi:37
27
+ msgid ""
28
+ "an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
29
+ "but has a different rhtml file."
30
+ msgstr "一个ERB/CGI示例(UTF-8)。本示例采用跟示例1相同的容器,但却拥有一个不同的rhtml文件。"
31
+
32
+ #: index.cgi:38
33
+ msgid "an ERB/CGI sample (Auto-Detect charset)."
34
+ msgstr "一个ERB/CGI示例(自动检测字符集)。"
35
+
36
+ #: index.cgi:50 cookie.cgi:44
37
+ msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
38
+ msgstr "用于CGI/ERB和Ruby-GetText-Package的示例脚本"
39
+
40
+ #: index.cgi:55
41
+ msgid "Ruby-GetText CGI sample scripts"
42
+ msgstr "Ruby-GetText CGI示例脚本"
43
+
44
+ #: index.cgi:57
45
+ msgid "Supported Locales:"
46
+ msgstr "目前支持的国家:"
47
+
48
+ #: index.cgi:58
49
+ msgid "Auto-Detect a locale from the WWW browser"
50
+ msgstr "从WWW浏览器自动检测国家"
51
+
52
+ #: index.cgi:66
53
+ msgid "Set locale as a \"lang\" parameter"
54
+ msgstr "用\"lang\"参数设置国家"
55
+
56
+ #: index.cgi:82
57
+ msgid "Set \"lang\" to cookie."
58
+ msgstr "为cookie设置\"lang\""
59
+
60
+ #: index.cgi:83
61
+ msgid ""
62
+ "Click one of the link below, and then click \"Auto-Detect a locale from the "
63
+ "WWW browser\" samples."
64
+ msgstr "点击下面的链接,然后点击\"从WWW浏览器自动检测国家\"例程"
65
+
66
+ #: index.cgi:92
67
+ msgid "Source codes"
68
+ msgstr "源代码"
69
+
70
+ #: index.cgi:103
71
+ msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
72
+ msgstr "index.cgi也是Ruby-GetText用于CGI(不是ERB)的示例脚本。"
73
+
74
+ #: cookie.cgi:50
75
+ msgid "Set [%s] as the cookie of your WWW Browser."
76
+ msgstr "将[%s]设置为您的WWW浏览器的cookie。"
77
+
78
+ #: cookie.cgi:54
79
+ msgid "Back"
80
+ msgstr "返回"
@@ -0,0 +1,67 @@
1
+ # CGI/ERB sample for Ruby-GetText-Package.
2
+ #
3
+ # Copyright (C) 2005,2006 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
8
+ #
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: cgi-sample 1.1.1\n"
12
+ "POT-Creation-Date: 2006-01-07 14:48+0900\n"
13
+ "PO-Revision-Date: 2006-08-18 15:06+0800\n"
14
+ "Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
15
+ "Language-Team: zh_TW <xmarsh at 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=1; plural=0;\n"
20
+ "X-Poedit-Language: Chinese\n"
21
+ "X-Poedit-Country: TAIWAN\n"
22
+
23
+ #: helloerb1.cgi:32
24
+ msgid "Sample script for CGI/ERB (UTF-8)."
25
+ msgstr "CGI/ERB (UTF-8) 範例"
26
+
27
+ #: helloerb.rhtml:5
28
+ #: other.rhtml:5
29
+ msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
30
+ msgstr "CGI/ERB 與 Ruby-GetText-Package 範例"
31
+
32
+ #: helloerb.rhtml:12
33
+ msgid "Hello World"
34
+ msgstr "哈囉世界"
35
+
36
+ #: helloerb.rhtml:15
37
+ #: other.rhtml:11
38
+ msgid "locale"
39
+ msgstr "字集"
40
+
41
+ #: helloerb.rhtml:16
42
+ #: other.rhtml:12
43
+ msgid "output_charset"
44
+ msgstr "output_charset"
45
+
46
+ #: helloerb.rhtml:17
47
+ #: other.rhtml:13
48
+ msgid "QUERY_STRING"
49
+ msgstr "QUERY_STRING"
50
+
51
+ #: helloerb.rhtml:19
52
+ msgid "Call a library method which has another textdomain."
53
+ msgstr "呼叫一個有另外 textdomain 的 library method"
54
+
55
+ #: helloerb.rhtml:21
56
+ #: other.rhtml:15
57
+ msgid "Back"
58
+ msgstr "返回"
59
+
60
+ #: other.rhtml:8
61
+ msgid "Another sample"
62
+ msgstr "另一個範例"
63
+
64
+ #: other.rhtml:9
65
+ msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
66
+ msgstr "這個範例(other.rhtml) 是 helloerb1.cgi 的另一個ERB 檔"
67
+
@@ -0,0 +1,54 @@
1
+ # CGI/ERB sample for Ruby-GetText-Package.
2
+ #
3
+ # Copyright (C) 2005,2006 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
8
+ #
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: cgi-sample 1.1.1\n"
12
+ "POT-Creation-Date: 2006-01-07 14:51+0900\n"
13
+ "PO-Revision-Date: 2006-08-18 15:09+0800\n"
14
+ "Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
15
+ "Language-Team: zh_TW <xmarsh at 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=1; plural=0;\n"
20
+ "X-Poedit-Language: Chinese\n"
21
+ "X-Poedit-Country: TAIWAN\n"
22
+
23
+ #: helloerb2.cgi:34
24
+ msgid "Sample script for CGI/ERB (Auto-Detect charset)."
25
+ msgstr "CGI/ERB 範例 (自動偵測字集)"
26
+
27
+ #: helloerb.rhtml:5
28
+ msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
29
+ msgstr "CGI/ERB 與 Ruby-GetText-Package 範例"
30
+
31
+ #: helloerb.rhtml:12
32
+ msgid "Hello World"
33
+ msgstr "哈囉世界"
34
+
35
+ #: helloerb.rhtml:15
36
+ msgid "locale"
37
+ msgstr "字集"
38
+
39
+ #: helloerb.rhtml:16
40
+ msgid "output_charset"
41
+ msgstr "output_charset"
42
+
43
+ #: helloerb.rhtml:17
44
+ msgid "QUERY_STRING"
45
+ msgstr "QUERY_STRING"
46
+
47
+ #: helloerb.rhtml:19
48
+ msgid "Call a library method which has another textdomain."
49
+ msgstr "Call a library method which has another textdomain."
50
+
51
+ #: helloerb.rhtml:21
52
+ msgid "Back"
53
+ msgstr "返回"
54
+
@@ -0,0 +1,26 @@
1
+ # CGI/ERB sample for Ruby-GetText-Package.
2
+ #
3
+ # Copyright (C) 2005,2006 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
8
+ #
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: cgi-sample 1.1.1\n"
12
+ "POT-Creation-Date: 2006-01-07 14:53+0900\n"
13
+ "PO-Revision-Date: 2006-08-21 09:08+0800\n"
14
+ "Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
15
+ "Language-Team: zh_TW <xmarsh at 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=1; plural=0;\n"
20
+ "X-Poedit-Language: Chinese\n"
21
+ "X-Poedit-Country: TAIWAN\n"
22
+
23
+ #: hellolib.rb:19
24
+ msgid "This message is from hellolib."
25
+ msgstr "這個訊息來自 hellolib"
26
+
@@ -0,0 +1,79 @@
1
+ # CGI/ERB sample for Ruby-GetText-Package.
2
+ #
3
+ # Copyright (C) 2005,2006 Masao Mutoh
4
+ #
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
8
+ #
9
+ msgid ""
10
+ msgstr ""
11
+ "Project-Id-Version: cgi-sample 1.1.1\n"
12
+ "POT-Creation-Date: 2006-01-07 14:55+0900\n"
13
+ "PO-Revision-Date: 2006-08-18 14:43+0800\n"
14
+ "Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
15
+ "Language-Team: zh_TW <xmarsh at 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=1; plural=0;\n"
20
+ "X-Poedit-Language: Chinese\n"
21
+ "X-Poedit-Country: TAIWAN\n"
22
+
23
+ #: index.cgi:36
24
+ msgid "an ERB/CGI sample (UTF-8)."
25
+ msgstr "ERB/CGI 範例 (UTF-8)"
26
+
27
+ #: index.cgi:37
28
+ msgid "an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 but has a different rhtml file."
29
+ msgstr "ERB/CGI 範例 (UTF-8) 該範例使用範例一同樣的 container 只是 rhtml 檔案不同"
30
+
31
+ #: index.cgi:38
32
+ msgid "an ERB/CGI sample (Auto-Detect charset)."
33
+ msgstr "ERB/CGI 範例 (字集自動偵測)"
34
+
35
+ #: index.cgi:50
36
+ #: cookie.cgi:44
37
+ msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
38
+ msgstr "CGI/ERB 與 Ruby-GetText-Package 的範例程式"
39
+
40
+ #: index.cgi:55
41
+ msgid "Ruby-GetText CGI sample scripts"
42
+ msgstr "Ruby-GetText 的 CGI 範例"
43
+
44
+ #: index.cgi:57
45
+ msgid "Supported Locales:"
46
+ msgstr "支援字集:"
47
+
48
+ #: index.cgi:58
49
+ msgid "Auto-Detect a locale from the WWW browser"
50
+ msgstr "自動從瀏覽器判斷字集"
51
+
52
+ #: index.cgi:66
53
+ msgid "Set locale as a \"lang\" parameter"
54
+ msgstr "利用 \"lang\" 參數設定字集"
55
+
56
+ #: index.cgi:82
57
+ msgid "Set \"lang\" to cookie."
58
+ msgstr "設定 \"lang\" 到 cookie."
59
+
60
+ #: index.cgi:83
61
+ msgid "Click one of the link below, and then click \"Auto-Detect a locale from the WWW browser\" samples."
62
+ msgstr "按下面連結再按 \"自動從瀏覽器判斷字集\" 範例"
63
+
64
+ #: index.cgi:92
65
+ msgid "Source codes"
66
+ msgstr "原始碼"
67
+
68
+ #: index.cgi:103
69
+ msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
70
+ msgstr "index.cgi 也是 Ruby-GetText 的 CGI 範例 (非 ERB)"
71
+
72
+ #: cookie.cgi:50
73
+ msgid "Set [%s] as the cookie of your WWW Browser."
74
+ msgstr "設定 [%s] 為瀏覽器的 cookie"
75
+
76
+ #: cookie.cgi:54
77
+ msgid "Back"
78
+ msgstr "返回"
79
+
data/samples/hello.rb ADDED
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/ruby
2
+ # hello.rb - sample for _() and class.
3
+ #
4
+ # Copyright (C) 2001-2006 Masao Mutoh
5
+ # This file is distributed under the same license as Ruby-GetText-Package.
6
+
7
+ require 'rubygems'
8
+ require 'gettext'
9
+
10
+ class HelloWorld
11
+ include GetText
12
+
13
+ bindtextdomain("hello", :path => "locale")
14
+
15
+ def hello
16
+ print _("Hello World\n")
17
+ end
18
+ end
19
+
20
+ if __FILE__ == $0
21
+ a = HelloWorld.new
22
+
23
+ a.hello # Show in your locale
24
+
25
+ old = GetText.locale
26
+ p old.to_s # Show current locale
27
+
28
+ # Change the locale to "en".
29
+ GetText.set_locale_all("en")
30
+ p GetText.locale.to_s
31
+ a.hello # Show in English
32
+
33
+ # Retrive original locale
34
+ GetText.set_locale(old)
35
+ a.hello # Show in your locale
36
+ end
data/samples/hello2.rb ADDED
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/ruby
2
+ # hello2.po - sample for _() and module
3
+ #
4
+ # Copyright (C) 2002-2004 Masao Mutoh
5
+ # This file is distributed under the same license as Ruby-GetText-Package.
6
+
7
+ require 'rubygems'
8
+ require 'gettext'
9
+
10
+ module Hello
11
+ include GetText
12
+
13
+ bindtextdomain("hello2", :path => "locale")
14
+
15
+ module_function
16
+ def hello
17
+ num = 1
18
+ puts _("One is %{num}\n") % {:num => num}
19
+ puts _("Hello %{world}\n") % {:world => _("World")}
20
+ end
21
+ end
22
+
23
+ Hello.hello
@@ -0,0 +1,70 @@
1
+ <?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
2
+ <!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
3
+
4
+ <glade-interface>
5
+ <requires lib="gnome"/>
6
+
7
+ <widget class="GtkWindow" id="window1">
8
+ <property name="visible">True</property>
9
+ <property name="title" translatable="yes">window1</property>
10
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
11
+ <property name="window_position">GTK_WIN_POS_NONE</property>
12
+ <property name="modal">False</property>
13
+ <property name="resizable">True</property>
14
+ <property name="destroy_with_parent">False</property>
15
+ <property name="decorated">True</property>
16
+ <property name="skip_taskbar_hint">False</property>
17
+ <property name="skip_pager_hint">False</property>
18
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
19
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
20
+
21
+ <child>
22
+ <widget class="GtkVBox" id="vbox1">
23
+ <property name="visible">True</property>
24
+ <property name="homogeneous">False</property>
25
+ <property name="spacing">0</property>
26
+
27
+ <child>
28
+ <widget class="GtkLabel" id="label1">
29
+ <property name="visible">True</property>
30
+ <property name="label" translatable="yes">first line
31
+ second line
32
+ third line</property>
33
+ <property name="use_underline">False</property>
34
+ <property name="use_markup">False</property>
35
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
36
+ <property name="wrap">False</property>
37
+ <property name="selectable">False</property>
38
+ <property name="xalign">0.5</property>
39
+ <property name="yalign">0.5</property>
40
+ <property name="xpad">0</property>
41
+ <property name="ypad">0</property>
42
+ </widget>
43
+ <packing>
44
+ <property name="padding">0</property>
45
+ <property name="expand">True</property>
46
+ <property name="fill">False</property>
47
+ </packing>
48
+ </child>
49
+
50
+ <child>
51
+ <widget class="GtkButton" id="button1">
52
+ <property name="visible">True</property>
53
+ <property name="can_focus">True</property>
54
+ <property name="label" translatable="yes">&lt;Hello world&gt;</property>
55
+ <property name="use_underline">True</property>
56
+ <property name="relief">GTK_RELIEF_NORMAL</property>
57
+ <property name="focus_on_click">True</property>
58
+ <signal name="clicked" handler="on_quit" last_modification_time="Sat, 03 Jul 2004 16:35:11 GMT"/>
59
+ </widget>
60
+ <packing>
61
+ <property name="padding">0</property>
62
+ <property name="expand">False</property>
63
+ <property name="fill">False</property>
64
+ </packing>
65
+ </child>
66
+ </widget>
67
+ </child>
68
+ </widget>
69
+
70
+ </glade-interface>
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env ruby
2
+ # hello_glade2.rb - sample for Ruby/Libglade2
3
+ #
4
+ # Copyright (C) 2004-2008 Masao Mutoh
5
+ # This file is distributed under the same license as Ruby-GetText-Package.
6
+
7
+ require 'rubygems'
8
+ require 'libglade2'
9
+
10
+ class HelloLibglade2
11
+ def initialize(path, appname)
12
+ @glade = GladeXML.new(path, nil, appname, "locale") {|handler| method(handler)}
13
+ end
14
+ def on_quit
15
+ puts "Hello world"
16
+ Gtk.main_quit
17
+ end
18
+ end
19
+
20
+ if __FILE__ == $0
21
+ APPNAME = "hello_glade2"
22
+ Gnome::Program.new(APPNAME, "1.0")
23
+ HelloLibglade2.new("hello_glade2.glade", APPNAME)
24
+ Gtk.main
25
+ end
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/ruby
2
+ # hello_gtk2.rb - sample for Ruby/GTK2
3
+ #
4
+ # Copyright (C) 2001-2006 Masao Mutoh
5
+ # This file is distributed under the same license as Ruby-GetText-Package.
6
+
7
+ require 'rubygems'
8
+ require 'gettext'
9
+ require 'gtk2'
10
+
11
+ class LocalizedWindow < Gtk::Window
12
+ include GetText
13
+
14
+ bindtextdomain("hello_gtk", :path => "locale", :output_charset => "utf-8")
15
+
16
+ def initialize
17
+ super
18
+ signal_connect('delete-event') do
19
+ Gtk.main_quit
20
+ end
21
+
22
+ add(Gtk::Label.new(_("hello, gtk world")))
23
+ end
24
+ end
25
+
26
+ LocalizedWindow.new.show_all
27
+ Gtk.main
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/ruby
2
+ # hello_noop.rb - sample for N_() and class.
3
+ #
4
+ # Copyright (C) 2002-2006 Masao Mutoh
5
+ # This file is distributed under the same license as Ruby-GetText-Package.
6
+
7
+ require 'rubygems'
8
+ require 'gettext'
9
+
10
+ class HelloNoop
11
+ include GetText
12
+
13
+ MSGS = [N_("Hello World"), N_("Hello World2")]
14
+
15
+ def initialize
16
+ # You can call bindtextdomain as instance methods.
17
+ # In this case, it initializes(decided the locale lazily)
18
+ # in a instance.
19
+ bindtextdomain("hello_noop", :path => "locale")
20
+ end
21
+
22
+ def hello
23
+ MSGS.each do |msg|
24
+ print _(msg), "\n"
25
+ end
26
+ end
27
+ end
28
+
29
+ hello = HelloNoop.new
30
+
31
+ hello.hello
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/ruby
2
+ # hello_plural.po - sample for n_() and class.
3
+ #
4
+ # Copyright (C) 2002-2006 Masao Mutoh
5
+ # This file is distributed under the same license as Ruby-GetText-Package.
6
+
7
+ require 'rubygems'
8
+ require 'gettext'
9
+
10
+ class HelloPlural
11
+ include GetText
12
+
13
+ def initialize
14
+ bindtextdomain("hello_plural", :path => "locale")
15
+ end
16
+
17
+ def hello
18
+ (0..2).each do |v|
19
+ puts n_("There is an apple.\n", "There are %{num} apples.\n", v) % {:num => v}
20
+ end
21
+ end
22
+ end
23
+
24
+ hello = HelloPlural.new
25
+
26
+ hello.hello
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/ruby
2
+ # hello_tk.rb - sample for Ruby/TK
3
+ #
4
+ # Copyright (C) 2004 Masao Mutoh
5
+ # This file is distributed under the same license as Ruby-GetText-Package.
6
+
7
+ require 'rubygems'
8
+ require 'gettext'
9
+ require 'tk'
10
+
11
+ include GetText
12
+ bindtextdomain("hello_tk", :path => "locale")
13
+
14
+ TkLabel.new {
15
+ text _("hello, tk world")
16
+ pack
17
+ }
18
+
19
+ Tk.mainloop
data/samples/makemo.rb ADDED
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'gettext/tools'
3
+
4
+ GetText.create_mofiles(:mo_root => "locale")
@@ -0,0 +1,24 @@
1
+ # Hello World -- a sample for Ruby-GetText-Package
2
+ #
3
+ # Copyright (C) 2001-2006 Masao Mutoh
4
+ #
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 1.1.1\n"
12
+ "POT-Creation-Date: 2001-12-24 01:30:54+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
+
22
+ #: ../hello.rb:7
23
+ msgid "Hello World\n"
24
+ msgstr "Гепи копеле\n"