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
data/po/zh/rgettext.po ADDED
@@ -0,0 +1,129 @@
1
+ # translation of rgettext.po to Simplified Chinese
2
+ #
3
+ # a po-file for Ruby-GetText-Package
4
+ #
5
+ # Copyright (C) 2006-2008 Masao Mutoh
6
+ #
7
+ # This file is distributed under the same license as the Ruby-GetText-Package.
8
+ #
9
+ # Yang Bob <bob.yang.dev at gmail.com>, 2006-2008.
10
+ # Yingfeng <blogyingfeng at gmail.com>, 2006.
11
+ #
12
+ msgid ""
13
+ msgstr ""
14
+ "Project-Id-Version: ruby-gettext 2.0.4\n"
15
+ "POT-Creation-Date: 2009-09-08 08:25+0200\n"
16
+ "PO-Revision-Date: 2006-04-15 13:11+0300\n"
17
+ "Last-Translator: Yang Bob <bob.yang.dev at gmail.com>\n"
18
+ "Language-Team: Simplified Chinese\n"
19
+ "MIME-Version: 1.0\n"
20
+ "Content-Type: text/plain; charset=UTF-8\n"
21
+ "Content-Transfer-Encoding: 8bit\n"
22
+ "Plural-Forms: nplurals=1; plural=0;\n"
23
+ "X-Generator: KBabel 1.9.1\n"
24
+
25
+ #: lib/gettext/textdomain_manager.rb:148
26
+ msgid "3rd parmeter is wrong: value = %{number}"
27
+ msgstr "第三个参数错误:value = %{number}"
28
+
29
+ #: lib/gettext/parser/glade.rb:75
30
+ msgid "`%{file}' is not glade-2.0 format."
31
+ msgstr "`%{file}'不是glade-2.0格式。"
32
+
33
+ #: lib/gettext/tools/rmsgfmt.rb:29 lib/gettext/tools/rgettext.rb:202
34
+ msgid "no input files"
35
+ msgstr "没有输入文件"
36
+
37
+ #: lib/gettext/tools/rmsgfmt.rb:46
38
+ msgid "Usage: %s input.po [-o output.mo]"
39
+ msgstr "使用方法: %s input.po [-o output.mo]"
40
+
41
+ #: lib/gettext/tools/rmsgfmt.rb:48
42
+ msgid "Generate binary message catalog from textual translation description."
43
+ msgstr "从文本叙述翻译生成二进制信息目录。"
44
+
45
+ #: lib/gettext/tools/rmsgfmt.rb:50 lib/gettext/tools/rgettext.rb:159
46
+ #: lib/gettext/tools/rmsgmerge.rb:407
47
+ msgid "Specific options:"
48
+ msgstr "具体选项:"
49
+
50
+ #: lib/gettext/tools/rmsgfmt.rb:52 lib/gettext/tools/rgettext.rb:161
51
+ #: lib/gettext/tools/rmsgmerge.rb:409
52
+ msgid "write output to specified file"
53
+ msgstr "输出到指定文件"
54
+
55
+ #: lib/gettext/tools/rmsgfmt.rb:56 lib/gettext/tools/rgettext.rb:178
56
+ #: lib/gettext/tools/rmsgmerge.rb:420
57
+ msgid "display version information and exit"
58
+ msgstr "显示版本信息并退出"
59
+
60
+ #: lib/gettext/tools/rgettext.rb:43
61
+ msgid "'%{klass}' is ignored."
62
+ msgstr "'%{klass}'被忽略。"
63
+
64
+ #: lib/gettext/tools/rgettext.rb:155
65
+ msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
66
+ msgstr "使用方法:%s input.rb [-r parser.rb] [-o output.pot]"
67
+
68
+ #: lib/gettext/tools/rgettext.rb:157
69
+ msgid "Extract translatable strings from given input files."
70
+ msgstr "从给定输入文件中提取翻译字符串。"
71
+
72
+ #: lib/gettext/tools/rgettext.rb:165
73
+ msgid "File '%s' already exists."
74
+ msgstr "文件'%s'已经存在。"
75
+
76
+ #: lib/gettext/tools/rgettext.rb:170
77
+ msgid "require the library before executing rgettext"
78
+ msgstr "在执行 rgettext 之前需要一个库"
79
+
80
+ #: lib/gettext/tools/rgettext.rb:174
81
+ msgid "run in debugging mode"
82
+ msgstr "运行于调试模式"
83
+
84
+ #: lib/gettext/tools/rmsgmerge.rb:402
85
+ msgid "Usage: %s def.po ref.pot [-o output.pot]"
86
+ msgstr "使用方法:%s def.po ref.pot [-o output.pot]"
87
+
88
+ #: lib/gettext/tools/rmsgmerge.rb:405
89
+ msgid ""
90
+ "Merges two Uniforum style .po files together. The def.po file is an existing "
91
+ "PO file with translations. The ref.pot file is the last created PO file with "
92
+ "up-to-date source references. ref.pot is generally created by rgettext."
93
+ msgstr ""
94
+ "合并两个同样形式的 po 文件, def.po 是原來有翻译的文件,ref.pot 是经过原始码"
95
+ "更新过的新文件,ref.pot 一般是由 rgettext 建立的。"
96
+
97
+ #: lib/gettext/tools/rmsgmerge.rb:446
98
+ msgid "definition po is not given."
99
+ msgstr "po的定义未给出。"
100
+
101
+ #: lib/gettext/tools/rmsgmerge.rb:448
102
+ msgid "reference pot is not given."
103
+ msgstr "参考pot未指定。"
104
+
105
+ #: lib/gettext/tools.rb:68
106
+ msgid "Failed to merge with %{defpo}"
107
+ msgstr "不能与 %{defpo} 合并"
108
+
109
+ #: lib/gettext/tools.rb:69
110
+ msgid "New .pot was copied to %{failed_filename}"
111
+ msgstr "新的 .pot 被复制到 %{failed_filename} 去了"
112
+
113
+ #: lib/gettext/tools.rb:70
114
+ msgid "Check these po/pot-files. It may have syntax errors or something wrong."
115
+ msgstr "检查这些 po/pot-文件。它们可能有语法或者其他错误。"
116
+
117
+ #: lib/gettext/tools.rb:173
118
+ msgid ""
119
+ "`%{cmd}' can not be found. \n"
120
+ "Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
121
+ msgstr ""
122
+
123
+ #: src/poparser.ry:38 src/poparser.ry:55
124
+ msgid "Warning: fuzzy message was ignored.\n"
125
+ msgstr "警告:不明确信息(fuzzy message)已被忽略。"
126
+
127
+ #: src/poparser.ry:148
128
+ msgid "Warning: obsolete msgid exists.\n"
129
+ msgstr "警告:存在过期的msgid。"
@@ -0,0 +1,128 @@
1
+ #
2
+ # a po-file for Ruby-GetText-Package
3
+ #
4
+ # Copyright (C) 2004-2008 Masao Mutoh
5
+ # This file is distributed under the same license as the Ruby-GetText-Package.
6
+ #
7
+ # Yang Bob <bob.yang.dev at gmail.com>, 2006-2008.
8
+ # LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
9
+ #
10
+ msgid ""
11
+ msgstr ""
12
+ "Project-Id-Version: ruby-gettext 2.0.4\n"
13
+ "POT-Creation-Date: 2009-09-08 08:25+0200\n"
14
+ "PO-Revision-Date: 2006-08-21 09:39+0800\n"
15
+ "Last-Translator: Yang Bob <bob.yang.dev at gmail.com>\n"
16
+ "Language-Team: zh_TW <xmarsh at gmail.com>\n"
17
+ "MIME-Version: 1.0\n"
18
+ "Content-Type: text/plain; charset=UTF-8\n"
19
+ "Content-Transfer-Encoding: 8bit\n"
20
+ "Plural-Forms: nplurals=1; plural=0;\n"
21
+ "X-Poedit-Language: Chinese\n"
22
+ "X-Poedit-Country: TAIWAN\n"
23
+
24
+ #: lib/gettext/textdomain_manager.rb:148
25
+ msgid "3rd parmeter is wrong: value = %{number}"
26
+ msgstr "第三个参数錯誤:value = %{number}"
27
+
28
+ #: lib/gettext/parser/glade.rb:75
29
+ msgid "`%{file}' is not glade-2.0 format."
30
+ msgstr "`%{file}' 不是 glade-2.0 格式"
31
+
32
+ #: lib/gettext/tools/rmsgfmt.rb:29 lib/gettext/tools/rgettext.rb:202
33
+ msgid "no input files"
34
+ msgstr "無輸入檔"
35
+
36
+ #: lib/gettext/tools/rmsgfmt.rb:46
37
+ msgid "Usage: %s input.po [-o output.mo]"
38
+ msgstr "使用: %s input.po [-o output.mo]"
39
+
40
+ #: lib/gettext/tools/rmsgfmt.rb:48
41
+ msgid "Generate binary message catalog from textual translation description."
42
+ msgstr "從textual translation description產生二進位訊息 catalog"
43
+
44
+ #: lib/gettext/tools/rmsgfmt.rb:50 lib/gettext/tools/rgettext.rb:159
45
+ #: lib/gettext/tools/rmsgmerge.rb:407
46
+ msgid "Specific options:"
47
+ msgstr "特殊選項:"
48
+
49
+ #: lib/gettext/tools/rmsgfmt.rb:52 lib/gettext/tools/rgettext.rb:161
50
+ #: lib/gettext/tools/rmsgmerge.rb:409
51
+ msgid "write output to specified file"
52
+ msgstr "輸出到指定檔案"
53
+
54
+ #: lib/gettext/tools/rmsgfmt.rb:56 lib/gettext/tools/rgettext.rb:178
55
+ #: lib/gettext/tools/rmsgmerge.rb:420
56
+ msgid "display version information and exit"
57
+ msgstr "秀出版本資訊後退出"
58
+
59
+ #: lib/gettext/tools/rgettext.rb:43
60
+ msgid "'%{klass}' is ignored."
61
+ msgstr "'%{klass}' 忽略"
62
+
63
+ #: lib/gettext/tools/rgettext.rb:155
64
+ msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
65
+ msgstr "使用: %s input.rb [-r parser.rb] [-o output.pot]"
66
+
67
+ #: lib/gettext/tools/rgettext.rb:157
68
+ msgid "Extract translatable strings from given input files."
69
+ msgstr "從輸入檔中取出翻譯字串"
70
+
71
+ #: lib/gettext/tools/rgettext.rb:165
72
+ msgid "File '%s' already exists."
73
+ msgstr "檔案 '%s' 已經存在"
74
+
75
+ #: lib/gettext/tools/rgettext.rb:170
76
+ msgid "require the library before executing rgettext"
77
+ msgstr "在執行 rgettext 之前需要一個庫"
78
+
79
+ #: lib/gettext/tools/rgettext.rb:174
80
+ msgid "run in debugging mode"
81
+ msgstr "執行除錯模式"
82
+
83
+ #: lib/gettext/tools/rmsgmerge.rb:402
84
+ msgid "Usage: %s def.po ref.pot [-o output.pot]"
85
+ msgstr "使用: %s def.po ref.pot [-o output.pot]"
86
+
87
+ #: lib/gettext/tools/rmsgmerge.rb:405
88
+ msgid ""
89
+ "Merges two Uniforum style .po files together. The def.po file is an existing "
90
+ "PO file with translations. The ref.pot file is the last created PO file with "
91
+ "up-to-date source references. ref.pot is generally created by rgettext."
92
+ msgstr ""
93
+ "合併兩同樣形式的 po 檔, def.po 檔是原來有翻譯的檔案,ref.pot 檔是經過原始碼"
94
+ "更新過的新檔,ref.pot 一般是由rgettext 建立。"
95
+
96
+ #: lib/gettext/tools/rmsgmerge.rb:446
97
+ msgid "definition po is not given."
98
+ msgstr "沒有指定PO檔"
99
+
100
+ #: lib/gettext/tools/rmsgmerge.rb:448
101
+ msgid "reference pot is not given."
102
+ msgstr "沒指定參考pot檔"
103
+
104
+ #: lib/gettext/tools.rb:68
105
+ msgid "Failed to merge with %{defpo}"
106
+ msgstr "不能與 %{defpo} 合併"
107
+
108
+ #: lib/gettext/tools.rb:69
109
+ msgid "New .pot was copied to %{failed_filename}"
110
+ msgstr "新的 .pot 被复制為 %{failed_filename} 了"
111
+
112
+ #: lib/gettext/tools.rb:70
113
+ msgid "Check these po/pot-files. It may have syntax errors or something wrong."
114
+ msgstr "檢査这些 po/pot-文件。它们可能有語法或者其他錯誤。"
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
+ #: src/poparser.ry:38 src/poparser.ry:55
123
+ msgid "Warning: fuzzy message was ignored.\n"
124
+ msgstr "警告: fuzzy 訊息被忽略\n"
125
+
126
+ #: src/poparser.ry:148
127
+ msgid "Warning: obsolete msgid exists.\n"
128
+ msgstr "警告: 存在過時的 msgid.\n"
data/samples/README ADDED
@@ -0,0 +1,16 @@
1
+ Sample scripts for Ruby-GetText-Package.
2
+
3
+ $ruby makemo.rb
4
+ $ruby sample_script.rb
5
+
6
+ hello.rb - Basic sample
7
+ hello2.rb - Basic sample2 (using printf)
8
+ hello_noop.rb - N_ sample
9
+ hello_plural.rb - n_ sample
10
+ hello_gtk.rb - Ruby/GTK2 sample
11
+ hello_tk.rb - Ruby/TK sample
12
+ hello_glade2.rb - Ruby/Glade2 sample
13
+
14
+ makemo.rb - Create mo files from po files.
15
+
16
+ cgi/* - CGI/ERB sample (See cgi/README)
@@ -0,0 +1,43 @@
1
+ Sample script for CGI/ERB and Ruby-GetText-Package.
2
+
3
+ At first, create mo file once:
4
+ $ rake
5
+
6
+ # You need 'rake' to execute it.
7
+
8
+ (One click ruby installer for Windonws user only)
9
+ Edit ruby.bat to fit your environment. If you don't have GTK,
10
+ removes 'set PATH=c:\gtk\bin' line.
11
+
12
+ Then run the http server.
13
+ $ ruby http.rb
14
+
15
+ Access the http server from WWW browser:
16
+
17
+ http://localhost:10080/
18
+ http://localhost:10080/1
19
+ http://localhost:10080/2
20
+
21
+ or
22
+
23
+ If you want to set locale(lang) forcely, then:
24
+
25
+ http://localhost:10080/?lang=ja
26
+ http://localhost:10080/1?lang=ja
27
+ http://localhost:10080/2?lang=ja
28
+ #ja is a target locale in this sample.
29
+
30
+ http.rb - an http server for samples using WEBrick
31
+ Rakefile - a Rakefile to create mo files from po files.
32
+
33
+ index.cgi - a sample menu (CGI sample) - textdomain: main
34
+ cookie.cgi - a sample menu (CGI sample) - textdomain: main
35
+ helloerb1.cgi - an ERB/CGI sample (UTF-8) - textdomain: helloerb1
36
+ helloerb2.cgi - an ERB/CGI sample (Auto-Detect) - textdomain: helloerb2
37
+
38
+ helloerb.rhtml - an ERB file (used from both of helloerb1/helloerb2)
39
+ other.rhtml - an ERB file (used from helloerb1)
40
+
41
+ hellolib.rb - a smple library called from helloerb.rhtml which have an
42
+ independent textdomain: hellolib
43
+ ruby.bat - Execute ruby interpreter on Win32.
@@ -0,0 +1,27 @@
1
+ task :default => [:makemo]
2
+
3
+ require 'gettext/tools'
4
+
5
+ desc "Create *.mo from *.po"
6
+ task :makemo do
7
+ GetText.create_mofiles(:mo_root => "locale")
8
+ end
9
+
10
+ desc "Update pot/po files to match new version."
11
+ task :updatepo do
12
+ =begin
13
+ GetText.update_pofiles("helloerb1",
14
+ ["helloerb1.cgi", "helloerb.rhtml", "other.rhtml"],
15
+ "cgi-sample 1.1.1")
16
+ GetText.update_pofiles("helloerb2",
17
+ ["helloerb2.cgi", "helloerb.rhtml"],
18
+ "cgi-sample 1.1.1")
19
+ GetText.update_pofiles("hellolib",
20
+ ["hellolib.rb"],
21
+ "cgi-sample 1.1.1")
22
+ =end
23
+ GetText.update_pofiles("main",
24
+ ["index.cgi", "cookie.cgi"],
25
+ "cgi-sample 1.1.1")
26
+ end
27
+
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env ruby
2
+ =begin
3
+ cookie.cgi - Set a selected locale to the cookie of WWW Browser.
4
+
5
+ Set UTF-8 forcely as output charset.
6
+
7
+ Recommanded to set UTF-8 forcely because some web browser
8
+ doesn't send HTTP_ACCEPT_CHARSET correctly.
9
+
10
+ Copyright (C) 2005 Masao Mutoh
11
+
12
+ You may redistribute it and/or modify it under the same
13
+ license terms as Ruby.
14
+ =end
15
+ $:.insert(0, "../../lib")
16
+
17
+ # gettext/cgi support CGI.
18
+ begin
19
+ require 'rubygems'
20
+ rescue LoadError
21
+ end
22
+
23
+ require 'gettext/cgi'
24
+
25
+ include GetText
26
+
27
+ # Configure GetText first.
28
+ set_output_charset("UTF-8")
29
+ set_cgi(CGI.new)
30
+ bindtextdomain("main", "locale")
31
+
32
+ lang = GetText.cgi['lang']
33
+ lang = "en" unless lang.size > 0
34
+
35
+ #
36
+ # CGI part
37
+ #
38
+ print "Set-Cookie:lang=#{lang}\n"
39
+ print "Content-type:text/html; charset=UTF-8\n\n"
40
+
41
+ puts %Q[
42
+ <head>
43
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
44
+ <link rel="stylesheet" type="text/css" href="gettext.css" media="all">
45
+ <title>]
46
+ puts _("Sample script for CGI/ERB and Ruby-GetText-Package")
47
+ puts %Q[</title>
48
+ </head>
49
+ <body>
50
+ ]
51
+
52
+ puts "<h1>" + _("Set [%s] as the cookie of your WWW Browser.") % lang + "</h1>"
53
+
54
+ puts %Q[</h1>
55
+ <p><a href="/">]
56
+ puts _("Back")
57
+ puts %Q[</a></p>
58
+ <div style="text-align:right">
59
+ <p>Copyright (C) 2005 Masao Mutoh</p>
60
+ </div>
61
+ </body>
62
+ </html>
63
+ ]
64
+
@@ -0,0 +1,116 @@
1
+ /*
2
+ CSS for Ruby-GetText-Package
3
+ by Masao Mutoh.
4
+ */
5
+
6
+ body {
7
+ margin: 0px;
8
+ padding: 0px;
9
+ color: #000;
10
+ background-color: #fff;
11
+ font-size: 90%;
12
+ font-family: Times, Sans-Serif;
13
+ line-height: 1.5em;
14
+ }
15
+
16
+ h1 {
17
+ color: #002288;
18
+ text-align: left;
19
+ clear: both;
20
+ padding:0.4em;
21
+ font-weight: bold;
22
+ font-size: 1.8em;
23
+ padding-left:0.5em;
24
+ padding-right:10px;
25
+ margin-top: 10px;
26
+ margin-left: 20px;
27
+ margin-bottom:1em;
28
+ margin-right:5px;
29
+ border: solid thin;
30
+ border-left: solid;
31
+ border-color: #9999ff;
32
+ border-top-width: 0px;
33
+ border-right-width: 0px;
34
+ border-bottom-width: 1px;
35
+ border-left-width: 15px;
36
+ }
37
+ h2 {
38
+ margin: 0px;
39
+ font-size: large;
40
+ font-weight: bold;
41
+ font-size: 1.4em;
42
+ padding: 0.3em;
43
+ padding-left:0.5em;
44
+ padding-right:10px;
45
+ margin-top: 1em;
46
+ margin-left: 1.5em;
47
+ margin-right: 10px;
48
+ margin-bottom:0.8em;
49
+ border: solid thin;
50
+ border-left: solid;
51
+ border-color: #9999ff;
52
+ border-top-width: 0px;
53
+ border-right-width: 0px;
54
+ border-bottom-width: 1px;
55
+ border-left-width: 15px;
56
+
57
+ }
58
+
59
+ h3 {
60
+ margin:1em;
61
+ margin-bottom: 0.5em;
62
+ margin-top: 1.5em;
63
+ margin-left: 2em;
64
+ margin-right: 24px;
65
+ padding: 0.1em;
66
+ padding-top: 0;
67
+ padding-left: 0.7em;
68
+ font-size: 1.2em;
69
+ border-style: dashed;
70
+ border-width: 0px 0px 1px 1px;
71
+ border-color: #ddddff;
72
+ }
73
+
74
+ p {
75
+ padding-left: 1em;
76
+ padding-right: 1em;
77
+ margin-top: 0px;
78
+ margin-left: 1.5em;
79
+ margin-right: 1em;
80
+ margin-bottom: 0.5em;
81
+ }
82
+
83
+ ol, ul {
84
+ margin-top: 0.2em;
85
+ margin-left: 3em;
86
+ padding-left: 1.5em;
87
+ }
88
+
89
+ li {
90
+ margin-top: 0.2em;
91
+ margin-left: 0em;
92
+ padding-left: 0em;
93
+ line-height: 1.2em;
94
+ }
95
+
96
+ .locale {
97
+ margin: 2em;
98
+ padding: 1em;
99
+ border-style: solid;
100
+ border-width: 1px 1px 1px 1px;
101
+ border-color: #ddddff;
102
+ }
103
+
104
+ pre {
105
+ margin: 2em;
106
+ padding: 1em;
107
+ border-style: solid;
108
+ border-width: 1px 1px 1px 1px;
109
+ border-color: #ddddff;
110
+ background-color: #eeffee;
111
+ }
112
+
113
+ .copyright {
114
+ text-align: right;
115
+ padding: 2em;
116
+ }
@@ -0,0 +1,28 @@
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="content-type" content="text/html; charset=<%= GetText.output_charset %>">
4
+ <link rel="stylesheet" type="text/css" href="gettext.css" media="all">
5
+ <title><%= _("Sample script for CGI/ERB and Ruby-GetText-Package") %></title>
6
+ </head>
7
+ <body>
8
+ <%
9
+ require 'hellolib'
10
+ require 'cgi'
11
+ lib = HelloLib.new
12
+ %>
13
+ <h1><%= _("Hello World") %> - <%= @domainname %></h1>
14
+ <p><%= description %></p>
15
+ <div class="locale">
16
+ <p><%= _("locale") %>: <%= Locale.get %></p>
17
+ <p><%= _("output_charset") %>: <%= GetText.output_charset %></p>
18
+ <p><%= _("QUERY_STRING") %>: <%= cgi.query_string %></p>
19
+ </div>
20
+ <p><%= _("Call a library method which has another textdomain.") %></p>
21
+ <div class="locale"><%= lib.hello %></div>
22
+ <p><a href="/"><%= _("Back") %></a></p>
23
+
24
+ <div class="copyright">
25
+ Copyright (C) 2005 Masao Mutoh
26
+ </div>
27
+ </body>
28
+ </html>
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env ruby
2
+ =begin
3
+ helloerb1.cgi - Sample script for CGI/ERB
4
+
5
+ Set UTF-8 forcely as output charset.
6
+
7
+ Recommanded to set UTF-8 forcely because some web browser
8
+ doesn't send HTTP_ACCEPT_CHARSET correctly.
9
+
10
+ Copyright (C) 2005-2009 Masao Mutoh
11
+
12
+ You may redistribute it and/or modify it under the same
13
+ license terms as Ruby.
14
+ =end
15
+ $:.insert(0, "../../lib")
16
+
17
+ begin
18
+ require 'rubygems'
19
+ rescue LoadError
20
+ end
21
+
22
+ require 'erb'
23
+ require 'gettext/cgi'
24
+
25
+ class SimpleContainer1
26
+ include GetText
27
+
28
+
29
+ def initialize(domainname, domainpath, cgi)
30
+ set_cgi(cgi)
31
+ bindtextdomain(domainname, :path => domainpath)
32
+ @domainname = domainname
33
+ end
34
+
35
+ def description
36
+ _("Sample script for CGI/ERB (UTF-8).")
37
+ end
38
+
39
+ def to_html(path)
40
+ erb = ERB.new(IO.read(path)).src
41
+ eval(erb, binding)
42
+ end
43
+ end
44
+
45
+
46
+ GetText.output_charset = "UTF-8"
47
+
48
+ print "Content-type:text/html; charset=UTF-8\n\n"
49
+
50
+ cgi = CGI.new
51
+
52
+ con = SimpleContainer1.new("helloerb1", "locale", cgi)
53
+
54
+ if GetText.cgi["other"] == "true"
55
+ print con.to_html("other.rhtml")
56
+ else
57
+ print con.to_html("helloerb.rhtml")
58
+ end
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env ruby
2
+ =begin
3
+ helloerb2.cgi - Sample script for CGI/ERB
4
+
5
+ Set locale/charset automaticaly.
6
+ (from HTTP_ACCEPT_LANGUAGE, HTTP_ACCEPT_CHARSET sended by web browser).
7
+
8
+ Recommanded to set UTF-8 forcely because some web browser
9
+ doesn't send HTTP_ACCEPT_CHARSET correctly.(See helloerb.cgi)
10
+
11
+ Copyright (C) 2005 Masao Mutoh
12
+
13
+ You may redistribute it and/or modify it under the same
14
+ license terms as Ruby.
15
+ =end
16
+ $:.insert(0, "../../lib")
17
+
18
+ begin
19
+ require 'rubygems'
20
+ rescue LoadError
21
+ end
22
+
23
+ require 'gettext/cgi'
24
+ require 'erb'
25
+
26
+ class SimpleContainer2
27
+ include GetText
28
+
29
+ def initialize(domainname, domainpath)
30
+ bindtextdomain(domainname, :path => domainpath)
31
+ @domainname = domainname
32
+ end
33
+
34
+ def description
35
+ _("Sample script for CGI/ERB (Auto-Detect charset).")
36
+ end
37
+
38
+ def to_html(path)
39
+ erb = ERB.new(IO.read(path)).src
40
+ eval(erb, binding)
41
+ end
42
+ end
43
+
44
+ cgi = CGI.new
45
+ GetText.set_cgi(cgi)
46
+
47
+ print "Content-type:text/html; charset=#{Locale.charset}\n\n"
48
+
49
+ con = SimpleContainer2.new("helloerb2", "locale")
50
+
51
+ print con.to_html("helloerb.rhtml")
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/ruby
2
+ # hellolib.rb
3
+ #
4
+ # Copyright (C) 2005 Masao Mutoh
5
+ #
6
+ # This file is distributed under the same
7
+ # license as Ruby-GetText-Package.
8
+ #
9
+ # $Id: hellolib.rb,v 1.1.1.1 2005/08/13 02:38:08 mutoh Exp $
10
+ #
11
+
12
+ require 'gettext'
13
+
14
+ class HelloLib
15
+ include GetText
16
+ bindtextdomain("hellolib", "locale")
17
+ def hello
18
+ _("This message is from hellolib.")
19
+ end
20
+ end