gettext 1.93.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (881) hide show
  1. data/ChangeLog +16 -1941
  2. data/ChangeLog-1 +2016 -0
  3. data/{NEWS → NEWS-1} +2 -0
  4. data/README.rdoc +251 -0
  5. data/Rakefile +46 -57
  6. data/bin/rgettext +1 -1
  7. data/bin/rmsgfmt +2 -2
  8. data/bin/rmsgmerge +3 -3
  9. data/data/locale/bg/LC_MESSAGES/rgettext.mo +0 -0
  10. data/data/locale/bs/LC_MESSAGES/rgettext.mo +0 -0
  11. data/data/locale/ca/LC_MESSAGES/rgettext.mo +0 -0
  12. data/data/locale/cs/LC_MESSAGES/rgettext.mo +0 -0
  13. data/data/locale/de/LC_MESSAGES/rgettext.mo +0 -0
  14. data/data/locale/el/LC_MESSAGES/rgettext.mo +0 -0
  15. data/data/locale/eo/LC_MESSAGES/rgettext.mo +0 -0
  16. data/data/locale/es/LC_MESSAGES/rgettext.mo +0 -0
  17. data/data/locale/et/LC_MESSAGES/rgettext.mo +0 -0
  18. data/data/locale/fr/LC_MESSAGES/rgettext.mo +0 -0
  19. data/data/locale/hr/LC_MESSAGES/rgettext.mo +0 -0
  20. data/data/locale/hu/LC_MESSAGES/rgettext.mo +0 -0
  21. data/data/locale/it/LC_MESSAGES/rgettext.mo +0 -0
  22. data/data/locale/ja/LC_MESSAGES/rgettext.mo +0 -0
  23. data/data/locale/ko/LC_MESSAGES/rgettext.mo +0 -0
  24. data/data/locale/lv/LC_MESSAGES/rgettext.mo +0 -0
  25. data/data/locale/nb/LC_MESSAGES/rgettext.mo +0 -0
  26. data/data/locale/nl/LC_MESSAGES/rgettext.mo +0 -0
  27. data/data/locale/pt_BR/LC_MESSAGES/rgettext.mo +0 -0
  28. data/data/locale/ru/LC_MESSAGES/rgettext.mo +0 -0
  29. data/data/locale/sr/LC_MESSAGES/rgettext.mo +0 -0
  30. data/data/locale/sv/LC_MESSAGES/rgettext.mo +0 -0
  31. data/data/locale/ua/LC_MESSAGES/rgettext.mo +0 -0
  32. data/data/locale/vi/LC_MESSAGES/rgettext.mo +0 -0
  33. data/data/locale/zh/LC_MESSAGES/rgettext.mo +0 -0
  34. data/data/locale/zh_TW/LC_MESSAGES/rgettext.mo +0 -0
  35. data/gettext.gemspec +40 -0
  36. data/lib/gettext.rb +101 -431
  37. data/lib/gettext/cgi.rb +4 -4
  38. data/lib/gettext/class_info.rb +54 -0
  39. data/lib/gettext/{iconv.rb → core_ext/iconv.rb} +1 -0
  40. data/lib/gettext/{string.rb → core_ext/string.rb} +12 -8
  41. data/lib/gettext/locale_path.rb +107 -0
  42. data/lib/gettext/mofile.rb +314 -0
  43. data/lib/gettext/parser/erb.rb +2 -1
  44. data/lib/gettext/parser/glade.rb +2 -1
  45. data/lib/gettext/parser/ruby.rb +66 -63
  46. data/lib/gettext/poparser.rb +3 -3
  47. data/lib/gettext/textdomain.rb +97 -171
  48. data/lib/gettext/textdomain_manager.rb +224 -0
  49. data/lib/gettext/tools.rb +195 -0
  50. data/lib/gettext/{rgettext.rb → tools/rgettext.rb} +74 -77
  51. data/lib/gettext/{rmsgfmt.rb → tools/rmsgfmt.rb} +12 -26
  52. data/lib/gettext/{rmsgmerge.rb → tools/rmsgmerge.rb} +3 -6
  53. data/lib/gettext/utils.rb +18 -135
  54. data/lib/gettext/version.rb +2 -2
  55. data/po/bg/rgettext.po +84 -88
  56. data/po/bs/rgettext.po +86 -90
  57. data/po/ca/rgettext.po +85 -88
  58. data/po/cs/rgettext.po +86 -90
  59. data/po/de/{rails.po → #rails.po#} +17 -16
  60. data/po/de/rgettext.po +84 -88
  61. data/po/el/rgettext.po +85 -89
  62. data/po/eo/rgettext.po +85 -89
  63. data/po/es/rgettext.po +84 -88
  64. data/po/et/rgettext.po +84 -88
  65. data/po/fr/rgettext.po +84 -88
  66. data/po/hr/rgettext.po +86 -90
  67. data/po/hu/rgettext.po +84 -88
  68. data/po/it/rgettext.po +82 -86
  69. data/po/ja/rails.po.old +150 -0
  70. data/po/ja/rgettext.po +84 -88
  71. data/po/ko/rgettext.po +86 -90
  72. data/po/lv/rgettext.po +84 -88
  73. data/po/nb/rgettext.po +84 -88
  74. data/po/nl/rgettext.po +86 -90
  75. data/po/pt_BR/rgettext.po +84 -88
  76. data/po/rgettext.pot +54 -70
  77. data/po/ru/rgettext.po +84 -88
  78. data/po/sr/rgettext.po +84 -88
  79. data/po/sv/rgettext.po +57 -73
  80. data/po/ua/rgettext.po +85 -89
  81. data/po/vi/rgettext.po +84 -88
  82. data/po/zh/rgettext.po +83 -87
  83. data/po/zh_TW/rgettext.po +83 -87
  84. data/samples/README +4 -8
  85. data/samples/cgi/Rakefile +2 -2
  86. data/samples/cgi/cookie.cgi +1 -0
  87. data/samples/cgi/helloerb1.cgi +8 -4
  88. data/samples/cgi/helloerb2.cgi +6 -4
  89. data/samples/cgi/hellolib.rb +1 -2
  90. data/samples/cgi/index.cgi +1 -0
  91. data/samples/cgi/locale/bg/LC_MESSAGES/hellolib.mo +0 -0
  92. data/samples/cgi/locale/bs/LC_MESSAGES/hellolib.mo +0 -0
  93. data/samples/cgi/locale/ca/LC_MESSAGES/hellolib.mo +0 -0
  94. data/samples/cgi/locale/cs/LC_MESSAGES/hellolib.mo +0 -0
  95. data/samples/cgi/locale/de/LC_MESSAGES/hellolib.mo +0 -0
  96. data/samples/cgi/locale/el/LC_MESSAGES/hellolib.mo +0 -0
  97. data/samples/cgi/locale/eo/LC_MESSAGES/hellolib.mo +0 -0
  98. data/samples/cgi/locale/es/LC_MESSAGES/hellolib.mo +0 -0
  99. data/samples/cgi/locale/fr/LC_MESSAGES/hellolib.mo +0 -0
  100. data/samples/cgi/locale/hr/LC_MESSAGES/hellolib.mo +0 -0
  101. data/samples/cgi/locale/hu/LC_MESSAGES/hellolib.mo +0 -0
  102. data/samples/cgi/locale/it/LC_MESSAGES/hellolib.mo +0 -0
  103. data/samples/cgi/locale/ja/LC_MESSAGES/helloerb1.mo +0 -0
  104. data/samples/cgi/locale/ja/LC_MESSAGES/helloerb2.mo +0 -0
  105. data/samples/cgi/locale/ja/LC_MESSAGES/hellolib.mo +0 -0
  106. data/samples/cgi/locale/ja/LC_MESSAGES/main.mo +0 -0
  107. data/samples/cgi/locale/ko/LC_MESSAGES/helloerb1.mo +0 -0
  108. data/samples/cgi/locale/ko/LC_MESSAGES/hellolib.mo +0 -0
  109. data/samples/cgi/locale/lv/LC_MESSAGES/hellolib.mo +0 -0
  110. data/samples/cgi/locale/nb/LC_MESSAGES/hellolib.mo +0 -0
  111. data/samples/cgi/locale/nl/LC_MESSAGES/hellolib.mo +0 -0
  112. data/samples/cgi/locale/pt_BR/LC_MESSAGES/hellolib.mo +0 -0
  113. data/samples/cgi/locale/ru/LC_MESSAGES/hellolib.mo +0 -0
  114. data/samples/cgi/locale/sr/LC_MESSAGES/hellolib.mo +0 -0
  115. data/samples/cgi/locale/ua/LC_MESSAGES/hellolib.mo +0 -0
  116. data/samples/cgi/locale/vi/LC_MESSAGES/hellolib.mo +0 -0
  117. data/samples/cgi/locale/zh/LC_MESSAGES/hellolib.mo +0 -0
  118. data/samples/cgi/locale/zh_TW/LC_MESSAGES/hellolib.mo +0 -0
  119. data/samples/cgi/po/ja/helloerb1.po +2 -2
  120. data/samples/cgi/po/ja/helloerb2.po +2 -2
  121. data/samples/cgi/po/ja/hellolib.po +2 -2
  122. data/samples/cgi/po/ja/main.po +2 -2
  123. data/samples/hello.rb +4 -3
  124. data/samples/hello2.rb +2 -1
  125. data/samples/{helloglade2.glade → hello_glade2.glade} +0 -0
  126. data/samples/{helloglade2.rb → hello_glade2.rb} +5 -4
  127. data/samples/{hellogtk2.rb → hello_gtk2.rb} +3 -3
  128. data/samples/hello_noop.rb +2 -1
  129. data/samples/hello_plural.rb +2 -1
  130. data/samples/{hellotk.rb → hello_tk.rb} +3 -2
  131. data/samples/locale/bg/LC_MESSAGES/hello.mo +0 -0
  132. data/samples/locale/bg/LC_MESSAGES/hello2.mo +0 -0
  133. data/samples/locale/bg/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  134. data/samples/locale/bg/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  135. data/samples/locale/bg/LC_MESSAGES/hello_plural.mo +0 -0
  136. data/samples/locale/bg/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  137. data/samples/locale/bs/LC_MESSAGES/hello.mo +0 -0
  138. data/samples/locale/bs/LC_MESSAGES/hello2.mo +0 -0
  139. data/samples/locale/bs/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  140. data/samples/locale/bs/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  141. data/samples/locale/bs/LC_MESSAGES/hello_plural.mo +0 -0
  142. data/samples/locale/bs/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  143. data/samples/locale/ca/LC_MESSAGES/hello.mo +0 -0
  144. data/samples/locale/ca/LC_MESSAGES/hello2.mo +0 -0
  145. data/samples/locale/ca/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  146. data/samples/locale/ca/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  147. data/samples/locale/ca/LC_MESSAGES/hello_plural.mo +0 -0
  148. data/samples/locale/ca/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  149. data/samples/locale/cs/LC_MESSAGES/hello.mo +0 -0
  150. data/samples/locale/cs/LC_MESSAGES/hello2.mo +0 -0
  151. data/samples/locale/cs/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  152. data/samples/locale/cs/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  153. data/samples/locale/cs/LC_MESSAGES/hello_plural.mo +0 -0
  154. data/samples/locale/cs/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  155. data/samples/locale/de/LC_MESSAGES/hello.mo +0 -0
  156. data/samples/locale/de/LC_MESSAGES/hello2.mo +0 -0
  157. data/samples/locale/de/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  158. data/samples/locale/de/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  159. data/samples/locale/de/LC_MESSAGES/hello_plural.mo +0 -0
  160. data/samples/locale/de/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  161. data/samples/locale/el/LC_MESSAGES/hello.mo +0 -0
  162. data/samples/locale/el/LC_MESSAGES/hello2.mo +0 -0
  163. data/samples/locale/el/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  164. data/samples/locale/el/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  165. data/samples/locale/el/LC_MESSAGES/hello_plural.mo +0 -0
  166. data/samples/locale/el/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  167. data/samples/locale/eo/LC_MESSAGES/hello.mo +0 -0
  168. data/samples/locale/eo/LC_MESSAGES/hello2.mo +0 -0
  169. data/samples/locale/eo/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  170. data/samples/locale/eo/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  171. data/samples/locale/eo/LC_MESSAGES/hello_plural.mo +0 -0
  172. data/samples/locale/eo/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  173. data/samples/locale/es/LC_MESSAGES/hello.mo +0 -0
  174. data/samples/locale/es/LC_MESSAGES/hello2.mo +0 -0
  175. data/samples/locale/es/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  176. data/samples/locale/es/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  177. data/samples/locale/es/LC_MESSAGES/hello_plural.mo +0 -0
  178. data/samples/locale/es/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  179. data/samples/locale/fr/LC_MESSAGES/hello.mo +0 -0
  180. data/samples/locale/fr/LC_MESSAGES/hello2.mo +0 -0
  181. data/samples/locale/fr/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  182. data/samples/locale/fr/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  183. data/samples/locale/fr/LC_MESSAGES/hello_plural.mo +0 -0
  184. data/samples/locale/fr/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  185. data/samples/locale/hr/LC_MESSAGES/hello.mo +0 -0
  186. data/samples/locale/hr/LC_MESSAGES/hello2.mo +0 -0
  187. data/samples/locale/hr/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  188. data/samples/locale/hr/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  189. data/samples/locale/hr/LC_MESSAGES/hello_plural.mo +0 -0
  190. data/samples/locale/hr/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  191. data/samples/locale/hu/LC_MESSAGES/hello.mo +0 -0
  192. data/samples/locale/hu/LC_MESSAGES/hello2.mo +0 -0
  193. data/samples/locale/hu/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  194. data/samples/locale/hu/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  195. data/samples/locale/hu/LC_MESSAGES/hello_plural.mo +0 -0
  196. data/samples/locale/hu/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  197. data/samples/locale/it/LC_MESSAGES/hello.mo +0 -0
  198. data/samples/locale/it/LC_MESSAGES/hello2.mo +0 -0
  199. data/samples/locale/it/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  200. data/samples/locale/it/LC_MESSAGES/{hellotk.mo → hello_gtk.mo} +0 -0
  201. data/samples/locale/it/LC_MESSAGES/hello_plural.mo +0 -0
  202. data/samples/locale/it/LC_MESSAGES/{hellogtk.mo → hello_tk.mo} +0 -0
  203. data/samples/locale/ja/LC_MESSAGES/hello.mo +0 -0
  204. data/samples/locale/ja/LC_MESSAGES/hello2.mo +0 -0
  205. data/samples/locale/ja/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  206. data/samples/locale/ja/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  207. data/samples/locale/ja/LC_MESSAGES/hello_plural.mo +0 -0
  208. data/samples/locale/ja/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  209. data/samples/locale/ko/LC_MESSAGES/hello.mo +0 -0
  210. data/samples/locale/ko/LC_MESSAGES/hello2.mo +0 -0
  211. data/samples/locale/ko/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  212. data/samples/locale/ko/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  213. data/samples/locale/ko/LC_MESSAGES/hello_plural.mo +0 -0
  214. data/samples/locale/ko/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  215. data/samples/locale/lv/LC_MESSAGES/hello.mo +0 -0
  216. data/samples/locale/lv/LC_MESSAGES/hello2.mo +0 -0
  217. data/samples/locale/lv/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  218. data/samples/locale/lv/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  219. data/samples/locale/lv/LC_MESSAGES/hello_plural.mo +0 -0
  220. data/samples/locale/lv/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  221. data/samples/locale/nb/LC_MESSAGES/hello.mo +0 -0
  222. data/samples/locale/nb/LC_MESSAGES/hello2.mo +0 -0
  223. data/samples/locale/nb/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  224. data/samples/locale/nb/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  225. data/samples/locale/nb/LC_MESSAGES/hello_plural.mo +0 -0
  226. data/samples/locale/nb/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  227. data/samples/locale/nl/LC_MESSAGES/hello.mo +0 -0
  228. data/samples/locale/nl/LC_MESSAGES/hello2.mo +0 -0
  229. data/samples/locale/nl/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  230. data/samples/locale/nl/LC_MESSAGES/{hellotk.mo → hello_gtk.mo} +0 -0
  231. data/samples/locale/nl/LC_MESSAGES/hello_plural.mo +0 -0
  232. data/samples/locale/nl/LC_MESSAGES/{hellogtk.mo → hello_tk.mo} +0 -0
  233. data/samples/locale/pt_BR/LC_MESSAGES/hello.mo +0 -0
  234. data/samples/locale/pt_BR/LC_MESSAGES/hello2.mo +0 -0
  235. data/samples/locale/pt_BR/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  236. data/samples/locale/pt_BR/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  237. data/samples/locale/pt_BR/LC_MESSAGES/hello_plural.mo +0 -0
  238. data/samples/locale/pt_BR/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  239. data/samples/locale/ru/LC_MESSAGES/hello.mo +0 -0
  240. data/samples/locale/ru/LC_MESSAGES/hello2.mo +0 -0
  241. data/samples/locale/ru/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  242. data/samples/locale/ru/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  243. data/samples/locale/ru/LC_MESSAGES/hello_plural.mo +0 -0
  244. data/samples/locale/ru/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  245. data/samples/locale/sr/LC_MESSAGES/hello.mo +0 -0
  246. data/samples/locale/sr/LC_MESSAGES/hello2.mo +0 -0
  247. data/samples/locale/sr/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  248. data/samples/locale/sr/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  249. data/samples/locale/sr/LC_MESSAGES/hello_plural.mo +0 -0
  250. data/samples/locale/sr/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  251. data/samples/locale/sv/LC_MESSAGES/hello.mo +0 -0
  252. data/samples/locale/sv/LC_MESSAGES/hello2.mo +0 -0
  253. data/samples/locale/sv/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  254. data/samples/locale/sv/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  255. data/samples/locale/sv/LC_MESSAGES/hello_plural.mo +0 -0
  256. data/samples/locale/sv/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  257. data/samples/locale/ua/LC_MESSAGES/hello.mo +0 -0
  258. data/samples/locale/ua/LC_MESSAGES/hello2.mo +0 -0
  259. data/samples/locale/ua/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  260. data/samples/locale/ua/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  261. data/samples/locale/ua/LC_MESSAGES/hello_plural.mo +0 -0
  262. data/samples/locale/ua/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  263. data/samples/locale/vi/LC_MESSAGES/hello.mo +0 -0
  264. data/samples/locale/vi/LC_MESSAGES/hello2.mo +0 -0
  265. data/samples/locale/vi/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  266. data/samples/locale/vi/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  267. data/samples/locale/vi/LC_MESSAGES/hello_plural.mo +0 -0
  268. data/samples/locale/vi/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  269. data/samples/locale/zh/LC_MESSAGES/hello.mo +0 -0
  270. data/samples/locale/zh/LC_MESSAGES/hello2.mo +0 -0
  271. data/samples/locale/zh/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  272. data/samples/locale/zh/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  273. data/samples/locale/zh/LC_MESSAGES/hello_plural.mo +0 -0
  274. data/samples/locale/zh/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  275. data/samples/locale/zh_TW/LC_MESSAGES/hello.mo +0 -0
  276. data/samples/locale/zh_TW/LC_MESSAGES/hello2.mo +0 -0
  277. data/samples/locale/zh_TW/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
  278. data/samples/locale/zh_TW/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
  279. data/samples/locale/zh_TW/LC_MESSAGES/hello_plural.mo +0 -0
  280. data/samples/locale/zh_TW/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
  281. data/samples/makemo.rb +3 -2
  282. data/samples/po/bg/{helloglade2.po → hello_glade2.po} +4 -4
  283. data/samples/po/bg/{hellogtk.po → hello_gtk.po} +1 -1
  284. data/samples/po/bg/{hellotk.po → hello_tk.po} +2 -2
  285. data/samples/po/bs/{helloglade2.po → hello_glade2.po} +6 -6
  286. data/samples/po/bs/{hellogtk.po → hello_gtk.po} +3 -3
  287. data/samples/po/bs/{hellotk.po → hello_tk.po} +4 -4
  288. data/samples/po/ca/{helloglade2.po → hello_glade2.po} +4 -4
  289. data/samples/po/ca/{hellogtk.po → hello_gtk.po} +1 -1
  290. data/samples/po/ca/{hellotk.po → hello_tk.po} +2 -2
  291. data/samples/po/cs/hello.po +1 -1
  292. data/samples/po/cs/hello2.po +1 -1
  293. data/samples/po/cs/{helloglade2.po → hello_glade2.po} +3 -3
  294. data/samples/po/cs/{hellogtk.po → hello_gtk.po} +2 -2
  295. data/samples/po/cs/hello_noop.po +1 -1
  296. data/samples/po/cs/{hellotk.po → hello_tk.po} +2 -2
  297. data/samples/po/de/hello.po +1 -1
  298. data/samples/po/de/hello2.po +1 -1
  299. data/samples/po/de/{helloglade2.po → hello_glade2.po} +3 -3
  300. data/samples/po/de/{hellogtk.po → hello_gtk.po} +2 -2
  301. data/samples/po/de/hello_noop.po +1 -1
  302. data/samples/po/de/{hellotk.po → hello_tk.po} +2 -2
  303. data/samples/po/el/hello.po +1 -1
  304. data/samples/po/el/{helloglade2.po → hello_glade2.po} +4 -4
  305. data/samples/po/el/{hellogtk.po → hello_gtk.po} +1 -1
  306. data/samples/po/el/{hellotk.po → hello_tk.po} +2 -2
  307. data/samples/po/eo/{helloglade2.po → hello_glade2.po} +4 -4
  308. data/samples/po/eo/{hellogtk.po → hello_gtk.po} +1 -1
  309. data/samples/po/eo/{hellotk.po → hello_tk.po} +2 -2
  310. data/samples/po/es/{helloglade2.po → hello_glade2.po} +4 -4
  311. data/samples/po/es/{hellogtk.po → hello_gtk.po} +2 -2
  312. data/samples/po/es/{hellotk.po → hello_tk.po} +2 -2
  313. data/samples/po/fr/{helloglade2.po → hello_glade2.po} +4 -4
  314. data/samples/po/fr/{hellogtk.po → hello_gtk.po} +2 -2
  315. data/samples/po/fr/{hellotk.po → hello_tk.po} +2 -2
  316. data/samples/po/{helloglade2.pot → hello_glade2.pot} +4 -4
  317. data/samples/po/{hellogtk.pot → hello_gtk.pot} +1 -1
  318. data/samples/po/{hellotk.pot → hello_tk.pot} +2 -2
  319. data/samples/po/hr/{helloglade2.po → hello_glade2.po} +6 -6
  320. data/samples/po/hr/{hellogtk.po → hello_gtk.po} +3 -3
  321. data/samples/po/hr/{hellotk.po → hello_tk.po} +4 -4
  322. data/samples/po/hu/{helloglade2.po → hello_glade2.po} +4 -4
  323. data/samples/po/hu/{hellogtk.po → hello_gtk.po} +1 -1
  324. data/samples/po/hu/{hellotk.po → hello_tk.po} +2 -2
  325. data/samples/po/it/hello.po +1 -1
  326. data/samples/po/it/hello2.po +1 -1
  327. data/samples/po/it/{helloglade2.po → hello_glade2.po} +4 -4
  328. data/samples/po/it/{hellogtk.po → hello_gtk.po} +2 -2
  329. data/samples/po/it/hello_noop.po +1 -1
  330. data/samples/po/it/{hellotk.po → hello_tk.po} +2 -2
  331. data/samples/po/ja/{helloglade2.po → hello_glade2.po} +4 -4
  332. data/samples/po/ja/{hellogtk.po → hello_gtk.po} +2 -2
  333. data/samples/po/ja/{hellotk.po → hello_tk.po} +2 -2
  334. data/samples/po/ko/hello.po +1 -1
  335. data/samples/po/ko/hello2.po +1 -1
  336. data/samples/po/ko/{helloglade2.po → hello_glade2.po} +3 -3
  337. data/samples/po/ko/{hellogtk.po → hello_gtk.po} +2 -2
  338. data/samples/po/ko/hello_noop.po +1 -1
  339. data/samples/po/ko/{hellotk.po → hello_tk.po} +1 -1
  340. data/samples/po/lv/{helloglade2.po → hello_glade2.po} +4 -4
  341. data/samples/po/lv/{hellogtk.po → hello_gtk.po} +1 -1
  342. data/samples/po/lv/{hellotk.po → hello_tk.po} +2 -2
  343. data/samples/po/nb/{helloglade2.po → hello_glade2.po} +5 -6
  344. data/samples/po/nb/{hellogtk.po → hello_gtk.po} +1 -1
  345. data/samples/po/nb/{hellotk.po → hello_tk.po} +2 -2
  346. data/samples/po/nl/hello.po +1 -1
  347. data/samples/po/nl/hello2.po +1 -1
  348. data/samples/po/nl/{helloglade2.po → hello_glade2.po} +5 -5
  349. data/samples/po/nl/{hellogtk.po → hello_gtk.po} +2 -2
  350. data/samples/po/nl/hello_noop.po +1 -1
  351. data/samples/po/nl/hello_plural.po +1 -1
  352. data/samples/po/nl/{hellotk.po → hello_tk.po} +2 -2
  353. data/samples/po/pt_BR/{helloglade2.po → hello_glade2.po} +4 -4
  354. data/samples/po/pt_BR/{hellogtk.po → hello_gtk.po} +1 -1
  355. data/samples/po/pt_BR/{hellotk.po → hello_tk.po} +0 -0
  356. data/samples/po/ru/{helloglade2.po → hello_glade2.po} +5 -5
  357. data/samples/po/ru/{hellogtk.po → hello_gtk.po} +3 -3
  358. data/samples/po/ru/{hellotk.po → hello_tk.po} +3 -3
  359. data/samples/po/sr/{helloglade2.po → hello_glade2.po} +4 -4
  360. data/samples/po/sr/{hellogtk.po → hello_gtk.po} +1 -1
  361. data/samples/po/sr/{hellotk.po → hello_tk.po} +2 -2
  362. data/samples/po/sv/{helloglade2.po → hello_glade2.po} +4 -4
  363. data/samples/po/sv/{hellogtk.po → hello_gtk.po} +1 -1
  364. data/samples/po/sv/{hellotk.po → hello_tk.po} +2 -2
  365. data/samples/po/test.rb +11 -0
  366. data/samples/po/ua/{helloglade2.po → hello_glade2.po} +4 -4
  367. data/samples/po/ua/{hellogtk.po → hello_gtk.po} +1 -1
  368. data/samples/po/ua/{hellotk.po → hello_tk.po} +2 -2
  369. data/samples/po/vi/{helloglade2.po → hello_glade2.po} +4 -4
  370. data/samples/po/vi/{hellogtk.po → hello_gtk.po} +1 -1
  371. data/samples/po/vi/{hellotk.po → hello_tk.po} +2 -2
  372. data/samples/po/zh/{helloglade2.po → hello_glade2.po} +4 -4
  373. data/samples/po/zh/{hellogtk.po → hello_gtk.po} +2 -2
  374. data/samples/po/zh/{hellotk.po → hello_tk.po} +2 -2
  375. data/samples/po/zh_TW/{helloglade2.po → hello_glade2.po} +4 -4
  376. data/samples/po/zh_TW/{hellogtk.po → hello_gtk.po} +1 -1
  377. data/samples/po/zh_TW/{hellotk.po → hello_tk.po} +2 -2
  378. data/src/poparser.ry +1 -1
  379. data/test/README +1 -18
  380. data/test/Rakefile +14 -41
  381. data/test/locale/cr/LC_MESSAGES/plural.mo +0 -0
  382. data/test/locale/da/LC_MESSAGES/plural.mo +0 -0
  383. data/test/locale/da/LC_MESSAGES/plural_error.mo +0 -0
  384. data/test/locale/fr/LC_MESSAGES/plural_error.mo +0 -0
  385. data/test/locale/fr/LC_MESSAGES/test1.mo +0 -0
  386. data/test/locale/fr/LC_MESSAGES/test2.mo +0 -0
  387. data/test/locale/fr/LC_MESSAGES/test6.mo +0 -0
  388. data/test/locale/ir/LC_MESSAGES/plural.mo +0 -0
  389. data/test/locale/ja/LC_MESSAGES/npgettext.mo +0 -0
  390. data/test/locale/ja/LC_MESSAGES/{test_nsgettext.mo → nsgettext.mo} +0 -0
  391. data/test/locale/ja/LC_MESSAGES/{test_pgettext.mo → pgettext.mo} +0 -0
  392. data/test/locale/ja/LC_MESSAGES/plural_error.mo +0 -0
  393. data/test/locale/ja/LC_MESSAGES/{test_rubyparser.mo → rubyparser.mo} +0 -0
  394. data/test/locale/ja/LC_MESSAGES/{test_sgettext.mo → sgettext.mo} +0 -0
  395. data/test/locale/ja/LC_MESSAGES/test2.mo +0 -0
  396. data/test/locale/la/LC_MESSAGES/plural.mo +0 -0
  397. data/test/locale/la/LC_MESSAGES/plural_error.mo +0 -0
  398. data/test/locale/li/LC_MESSAGES/plural.mo +0 -0
  399. data/test/locale/po/LC_MESSAGES/plural.mo +0 -0
  400. data/test/locale/sl/LC_MESSAGES/plural.mo +0 -0
  401. data/test/po/fr/test1.po +3 -3
  402. data/test/po/fr/test6.po +1 -1
  403. data/test/po/ja/{test_npgettext.po → npgettext.po} +2 -2
  404. data/test/po/ja/{test_nsgettext.po → nsgettext.po} +8 -8
  405. data/test/po/ja/{test_pgettext.po → pgettext.po} +2 -2
  406. data/test/po/ja/{test_rubyparser.po → rubyparser.po} +0 -0
  407. data/test/po/ja/{test_sgettext.po → sgettext.po} +8 -8
  408. data/test/po/ja/test1.po +2 -2
  409. data/test/test_class_info.rb +80 -0
  410. data/test/test_gettext.rb +118 -257
  411. data/test/test_locale_path.rb +37 -0
  412. data/test/test_parser.rb +6 -105
  413. data/test/test_string.rb +1 -2
  414. data/test/test_textdomain_bind.rb +37 -0
  415. data/test/test_textdomain_multi.rb +69 -0
  416. data/test/test_textdomain_toplevel.rb +42 -0
  417. data/test/test_thread.rb +39 -0
  418. data/test/testlib/N_.rb +1 -1
  419. data/test/testlib/erb.rhtml +1 -1
  420. data/test/testlib/erb.rxml +1 -1
  421. data/test/testlib/gettext.rb +1 -1
  422. data/test/testlib/helper.rb +11 -0
  423. data/test/testlib/multi_textdomain.rb +119 -0
  424. data/test/testlib/ngettext.rb +1 -1
  425. data/test/testlib/npgettext.rb +1 -3
  426. data/test/testlib/nsgettext.rb +1 -3
  427. data/test/testlib/pgettext.rb +1 -3
  428. data/test/testlib/sgettext.rb +1 -3
  429. data/test/testlib/{testlib1.rb → simple.rb} +3 -4
  430. data/{samples/rails/public/favicon.ico → test/tools/files/app.pot} +0 -0
  431. data/test/{rails/public/favicon.ico → tools/files/de/app.po} +0 -0
  432. data/test/tools/files/en/app.po +0 -0
  433. data/test/tools/files/en/test.po +21 -0
  434. data/test/tools/files/simple_1.po +2 -0
  435. data/test/tools/files/simple_2.po +2 -0
  436. data/test/tools/files/simple_translation.rb +1 -0
  437. data/test/tools/files/version.po +7 -0
  438. data/test/tools/test.pot +21 -0
  439. data/test/tools/test_tools.rb +61 -0
  440. metadata +224 -853
  441. data/README +0 -177
  442. data/data/locale/bg/LC_MESSAGES/rails.mo +0 -0
  443. data/data/locale/bs/LC_MESSAGES/rails.mo +0 -0
  444. data/data/locale/ca/LC_MESSAGES/rails.mo +0 -0
  445. data/data/locale/cs/LC_MESSAGES/rails.mo +0 -0
  446. data/data/locale/de/LC_MESSAGES/rails.mo +0 -0
  447. data/data/locale/el/LC_MESSAGES/rails.mo +0 -0
  448. data/data/locale/eo/LC_MESSAGES/rails.mo +0 -0
  449. data/data/locale/es/LC_MESSAGES/rails.mo +0 -0
  450. data/data/locale/et/LC_MESSAGES/rails.mo +0 -0
  451. data/data/locale/fr/LC_MESSAGES/rails.mo +0 -0
  452. data/data/locale/hr/LC_MESSAGES/rails.mo +0 -0
  453. data/data/locale/hu/LC_MESSAGES/rails.mo +0 -0
  454. data/data/locale/it/LC_MESSAGES/rails.mo +0 -0
  455. data/data/locale/ja/LC_MESSAGES/rails.mo +0 -0
  456. data/data/locale/ko/LC_MESSAGES/rails.mo +0 -0
  457. data/data/locale/lv/LC_MESSAGES/rails.mo +0 -0
  458. data/data/locale/nb/LC_MESSAGES/rails.mo +0 -0
  459. data/data/locale/nl/LC_MESSAGES/rails.mo +0 -0
  460. data/data/locale/pt_BR/LC_MESSAGES/rails.mo +0 -0
  461. data/data/locale/ru/LC_MESSAGES/rails.mo +0 -0
  462. data/data/locale/sr/LC_MESSAGES/rails.mo +0 -0
  463. data/data/locale/ua/LC_MESSAGES/rails.mo +0 -0
  464. data/data/locale/vi/LC_MESSAGES/rails.mo +0 -0
  465. data/data/locale/zh/LC_MESSAGES/rails.mo +0 -0
  466. data/data/locale/zh_TW/LC_MESSAGES/rails.mo +0 -0
  467. data/doc/classes/ActionView/Helpers/FormBuilder.html +0 -154
  468. data/doc/classes/ActionView/TemplateFinder.html +0 -152
  469. data/doc/classes/ActiveRecord/Base.html +0 -360
  470. data/doc/classes/ActiveRecord/ConnectionAdapters/Column.html +0 -182
  471. data/doc/classes/ActiveRecord/Migration.html +0 -118
  472. data/doc/classes/GetText.html +0 -2003
  473. data/doc/classes/GetText/ActiveRecordParser.html +0 -236
  474. data/doc/classes/GetText/Container.html +0 -119
  475. data/doc/classes/GetText/ErbContainer.html +0 -223
  476. data/doc/classes/GetText/ErbParser.html +0 -156
  477. data/doc/classes/GetText/GladeParser.html +0 -133
  478. data/doc/classes/GetText/NoboundTextDomainError.html +0 -119
  479. data/doc/classes/GetText/PoParser.html +0 -169
  480. data/doc/classes/GetText/Rails.html +0 -293
  481. data/doc/classes/GetText/RubyParser.html +0 -133
  482. data/doc/classes/GetText/TextDomain.html +0 -572
  483. data/doc/classes/GetText/TextDomainManager.html +0 -443
  484. data/doc/classes/Iconv.html +0 -257
  485. data/doc/classes/Iconv/Failure.html +0 -105
  486. data/doc/classes/Iconv/IllegalSequence.html +0 -118
  487. data/doc/classes/Iconv/InvalidCharacter.html +0 -118
  488. data/doc/classes/Iconv/InvalidEncoding.html +0 -118
  489. data/doc/classes/Locale.html +0 -840
  490. data/doc/classes/Locale/Object.html +0 -803
  491. data/doc/classes/Locale/SystemBase.html +0 -271
  492. data/doc/classes/Locale/SystemCGI.html +0 -312
  493. data/doc/classes/Locale/SystemJRuby.html +0 -112
  494. data/doc/classes/Locale/SystemPosix.html +0 -163
  495. data/doc/classes/Locale/SystemWin32.html +0 -167
  496. data/doc/classes/Locale/SystemWin32Table.html +0 -123
  497. data/doc/classes/MOFile.html +0 -695
  498. data/doc/classes/MOFile/HeaderRev1.html +0 -150
  499. data/doc/classes/MOFile/InvalidFormat.html +0 -111
  500. data/doc/classes/Module.html +0 -158
  501. data/doc/classes/String.html +0 -225
  502. data/doc/created.rid +0 -1
  503. data/doc/files/ChangeLog.html +0 -2623
  504. data/doc/files/README.html +0 -531
  505. data/doc/files/lib/gettext/active_record_rb.html +0 -110
  506. data/doc/files/lib/gettext/cgi_rb.html +0 -110
  507. data/doc/files/lib/gettext/container_rb.html +0 -108
  508. data/doc/files/lib/gettext/erb_rb.html +0 -109
  509. data/doc/files/lib/gettext/iconv_rb.html +0 -109
  510. data/doc/files/lib/gettext/mo_rb.html +0 -109
  511. data/doc/files/lib/gettext/parser/active_record_rb.html +0 -119
  512. data/doc/files/lib/gettext/parser/erb_rb.html +0 -109
  513. data/doc/files/lib/gettext/parser/glade_rb.html +0 -109
  514. data/doc/files/lib/gettext/parser/ruby_rb.html +0 -110
  515. data/doc/files/lib/gettext/poparser_rb.html +0 -108
  516. data/doc/files/lib/gettext/rails_compat_rb.html +0 -108
  517. data/doc/files/lib/gettext/rails_rb.html +0 -112
  518. data/doc/files/lib/gettext/rgettext_rb.html +0 -110
  519. data/doc/files/lib/gettext/rmsgfmt_rb.html +0 -113
  520. data/doc/files/lib/gettext/rmsgmerge_rb.html +0 -112
  521. data/doc/files/lib/gettext/string_rb.html +0 -101
  522. data/doc/files/lib/gettext/textdomain_rb.html +0 -109
  523. data/doc/files/lib/gettext/textdomainmanager_rb.html +0 -109
  524. data/doc/files/lib/gettext/utils_rb.html +0 -111
  525. data/doc/files/lib/gettext/version_rb.html +0 -101
  526. data/doc/files/lib/gettext_rb.html +0 -113
  527. data/doc/files/lib/locale/base_rb.html +0 -101
  528. data/doc/files/lib/locale/cgi_rb.html +0 -108
  529. data/doc/files/lib/locale/jruby_rb.html +0 -110
  530. data/doc/files/lib/locale/object_rb.html +0 -101
  531. data/doc/files/lib/locale/posix_rb.html +0 -108
  532. data/doc/files/lib/locale/win32_rb.html +0 -110
  533. data/doc/files/lib/locale/win32_table_rb.html +0 -101
  534. data/doc/files/lib/locale_rb.html +0 -111
  535. data/doc/fr_class_index.html +0 -61
  536. data/doc/fr_file_index.html +0 -58
  537. data/doc/fr_method_index.html +0 -163
  538. data/doc/index.html +0 -24
  539. data/doc/rdoc-style.css +0 -208
  540. data/lib/gettext/active_record.rb +0 -357
  541. data/lib/gettext/container.rb +0 -19
  542. data/lib/gettext/erb.rb +0 -56
  543. data/lib/gettext/mo.rb +0 -320
  544. data/lib/gettext/parser/active_record.rb +0 -184
  545. data/lib/gettext/rails.rb +0 -547
  546. data/lib/gettext/rails_compat.rb +0 -16
  547. data/lib/gettext/textdomainmanager.rb +0 -103
  548. data/lib/locale.rb +0 -183
  549. data/lib/locale/base.rb +0 -60
  550. data/lib/locale/cgi.rb +0 -103
  551. data/lib/locale/jruby.rb +0 -36
  552. data/lib/locale/object.rb +0 -237
  553. data/lib/locale/posix.rb +0 -36
  554. data/lib/locale/win32.rb +0 -49
  555. data/lib/locale/win32_table.rb +0 -235
  556. data/po/bg/rails.po +0 -169
  557. data/po/bs/rails.po +0 -185
  558. data/po/ca/rails.po +0 -170
  559. data/po/cs/rails.po +0 -189
  560. data/po/el/rails.po +0 -169
  561. data/po/eo/rails.po +0 -170
  562. data/po/es/rails.po +0 -170
  563. data/po/et/rails.po +0 -170
  564. data/po/fr/rails.po +0 -174
  565. data/po/hr/rails.po +0 -186
  566. data/po/hu/rails.po +0 -170
  567. data/po/it/rails.po +0 -176
  568. data/po/ja/rails.po +0 -170
  569. data/po/ko/rails.po +0 -174
  570. data/po/lv/rails.po +0 -175
  571. data/po/nb/rails.po +0 -171
  572. data/po/nl/rails.po +0 -178
  573. data/po/pt_BR/rails.po +0 -171
  574. data/po/rails.pot +0 -170
  575. data/po/ru/rails.po +0 -178
  576. data/po/sr/rails.po +0 -178
  577. data/po/ua/rails.po +0 -184
  578. data/po/vi/rails.po +0 -170
  579. data/po/zh/rails.po +0 -166
  580. data/po/zh_TW/rails.po +0 -166
  581. data/post-setup.rb +0 -17
  582. data/pre-setup.rb +0 -20
  583. data/samples/hello_textdomain.rb +0 -21
  584. data/samples/hellogtk.rb +0 -27
  585. data/samples/rails/README +0 -73
  586. data/samples/rails/Rakefile +0 -10
  587. data/samples/rails/app/controllers/application.rb +0 -40
  588. data/samples/rails/app/controllers/articles_controller.rb +0 -96
  589. data/samples/rails/app/helpers/application_helper.rb +0 -3
  590. data/samples/rails/app/helpers/articles_helper.rb +0 -60
  591. data/samples/rails/app/models/article.rb +0 -16
  592. data/samples/rails/app/views/articles/edit.html.erb +0 -21
  593. data/samples/rails/app/views/articles/index.html.erb +0 -17
  594. data/samples/rails/app/views/articles/new.html.erb +0 -19
  595. data/samples/rails/app/views/articles/show.html.erb +0 -6
  596. data/samples/rails/app/views/layouts/articles.html.erb +0 -26
  597. data/samples/rails/config/boot.rb +0 -109
  598. data/samples/rails/config/database.yml +0 -47
  599. data/samples/rails/config/environment.rb +0 -60
  600. data/samples/rails/config/environments/development.rb +0 -18
  601. data/samples/rails/config/environments/production.rb +0 -18
  602. data/samples/rails/config/environments/test.rb +0 -22
  603. data/samples/rails/config/initializers/inflections.rb +0 -10
  604. data/samples/rails/config/initializers/mime_types.rb +0 -5
  605. data/samples/rails/config/routes.rb +0 -38
  606. data/samples/rails/db/migrate/001_create_articles.rb +0 -14
  607. data/samples/rails/db/schema.rb +0 -20
  608. data/samples/rails/lib/tasks/gettext.rake +0 -16
  609. data/samples/rails/locale/bg/LC_MESSAGES/blog.mo +0 -0
  610. data/samples/rails/locale/bs/LC_MESSAGES/blog.mo +0 -0
  611. data/samples/rails/locale/ca/LC_MESSAGES/blog.mo +0 -0
  612. data/samples/rails/locale/cs/LC_MESSAGES/blog.mo +0 -0
  613. data/samples/rails/locale/de/LC_MESSAGES/blog.mo +0 -0
  614. data/samples/rails/locale/el/LC_MESSAGES/blog.mo +0 -0
  615. data/samples/rails/locale/en/LC_MESSAGES/blog.mo +0 -0
  616. data/samples/rails/locale/eo/LC_MESSAGES/blog.mo +0 -0
  617. data/samples/rails/locale/es/LC_MESSAGES/blog.mo +0 -0
  618. data/samples/rails/locale/fr/LC_MESSAGES/blog.mo +0 -0
  619. data/samples/rails/locale/hr/LC_MESSAGES/blog.mo +0 -0
  620. data/samples/rails/locale/hu/LC_MESSAGES/blog.mo +0 -0
  621. data/samples/rails/locale/it/LC_MESSAGES/blog.mo +0 -0
  622. data/samples/rails/locale/ja/LC_MESSAGES/blog.mo +0 -0
  623. data/samples/rails/locale/ko/LC_MESSAGES/blog.mo +0 -0
  624. data/samples/rails/locale/lv/LC_MESSAGES/blog.mo +0 -0
  625. data/samples/rails/locale/nb/LC_MESSAGES/blog.mo +0 -0
  626. data/samples/rails/locale/nl/LC_MESSAGES/blog.mo +0 -0
  627. data/samples/rails/locale/pt_BR/LC_MESSAGES/blog.mo +0 -0
  628. data/samples/rails/locale/ru/LC_MESSAGES/blog.mo +0 -0
  629. data/samples/rails/locale/sr/LC_MESSAGES/blog.mo +0 -0
  630. data/samples/rails/locale/ua/LC_MESSAGES/blog.mo +0 -0
  631. data/samples/rails/locale/vi/LC_MESSAGES/blog.mo +0 -0
  632. data/samples/rails/locale/zh/LC_MESSAGES/blog.mo +0 -0
  633. data/samples/rails/locale/zh_TW/LC_MESSAGES/blog.mo +0 -0
  634. data/samples/rails/po/bg/blog.po +0 -101
  635. data/samples/rails/po/blog.pot +0 -102
  636. data/samples/rails/po/bs/blog.po +0 -103
  637. data/samples/rails/po/ca/blog.po +0 -101
  638. data/samples/rails/po/cs/blog.po +0 -104
  639. data/samples/rails/po/de/blog.po +0 -104
  640. data/samples/rails/po/el/blog.po +0 -102
  641. data/samples/rails/po/en/blog.po +0 -103
  642. data/samples/rails/po/eo/blog.po +0 -102
  643. data/samples/rails/po/es/blog.po +0 -101
  644. data/samples/rails/po/fr/blog.po +0 -102
  645. data/samples/rails/po/hr/blog.po +0 -102
  646. data/samples/rails/po/hu/blog.po +0 -101
  647. data/samples/rails/po/it/blog.po +0 -102
  648. data/samples/rails/po/ja/blog.po +0 -101
  649. data/samples/rails/po/ko/blog.po +0 -102
  650. data/samples/rails/po/lv/blog.po +0 -103
  651. data/samples/rails/po/nb/blog.po +0 -102
  652. data/samples/rails/po/nl/blog.po +0 -102
  653. data/samples/rails/po/pt_BR/blog.po +0 -102
  654. data/samples/rails/po/ru/blog.po +0 -102
  655. data/samples/rails/po/sr/blog.po +0 -103
  656. data/samples/rails/po/ua/blog.po +0 -105
  657. data/samples/rails/po/vi/blog.po +0 -102
  658. data/samples/rails/po/zh/blog.po +0 -101
  659. data/samples/rails/po/zh_TW/blog.po +0 -103
  660. data/samples/rails/public/404.html +0 -30
  661. data/samples/rails/public/422.html +0 -30
  662. data/samples/rails/public/500.html +0 -30
  663. data/samples/rails/public/dispatch.cgi +0 -10
  664. data/samples/rails/public/dispatch.fcgi +0 -24
  665. data/samples/rails/public/dispatch.rb +0 -10
  666. data/samples/rails/public/images/rails.png +0 -0
  667. data/samples/rails/public/index.html +0 -277
  668. data/samples/rails/public/javascripts/application.js +0 -2
  669. data/samples/rails/public/javascripts/controls.js +0 -963
  670. data/samples/rails/public/javascripts/dragdrop.js +0 -972
  671. data/samples/rails/public/javascripts/effects.js +0 -1120
  672. data/samples/rails/public/javascripts/prototype.js +0 -4225
  673. data/samples/rails/public/robots.txt +0 -1
  674. data/samples/rails/public/stylesheets/blog.css +0 -136
  675. data/samples/rails/public/stylesheets/scaffold.css +0 -74
  676. data/samples/rails/script/about +0 -3
  677. data/samples/rails/script/breakpointer +0 -3
  678. data/samples/rails/script/console +0 -3
  679. data/samples/rails/script/destroy +0 -3
  680. data/samples/rails/script/generate +0 -3
  681. data/samples/rails/script/performance/benchmarker +0 -3
  682. data/samples/rails/script/performance/profiler +0 -3
  683. data/samples/rails/script/plugin +0 -3
  684. data/samples/rails/script/process/reaper +0 -3
  685. data/samples/rails/script/process/spawner +0 -3
  686. data/samples/rails/script/process/spinner +0 -3
  687. data/samples/rails/script/runner +0 -3
  688. data/samples/rails/script/server +0 -3
  689. data/samples/rails/test/fixtures/articles.yml +0 -5
  690. data/samples/rails/test/functional/articles_controller_test.rb +0 -51
  691. data/samples/rails/test/test_helper.rb +0 -38
  692. data/samples/rails/test/unit/article_test.rb +0 -7
  693. data/samples/rails/vendor/plugins/gettext/README +0 -17
  694. data/samples/rails/vendor/plugins/gettext/Rakefile +0 -17
  695. data/samples/rails/vendor/plugins/gettext/init.rb +0 -21
  696. data/samples/rails/vendor/plugins/gettext/lib/gettext_plugin.rb +0 -33
  697. data/samples/rails/vendor/plugins/gettext/locale/bg/LC_MESSAGES/gettext_plugin.mo +0 -0
  698. data/samples/rails/vendor/plugins/gettext/locale/bs/LC_MESSAGES/gettext_plugin.mo +0 -0
  699. data/samples/rails/vendor/plugins/gettext/locale/ca/LC_MESSAGES/gettext_plugin.mo +0 -0
  700. data/samples/rails/vendor/plugins/gettext/locale/cs/LC_MESSAGES/gettext_plugin.mo +0 -0
  701. data/samples/rails/vendor/plugins/gettext/locale/de/LC_MESSAGES/gettext_plugin.mo +0 -0
  702. data/samples/rails/vendor/plugins/gettext/locale/el/LC_MESSAGES/gettext_plugin.mo +0 -0
  703. data/samples/rails/vendor/plugins/gettext/locale/eo/LC_MESSAGES/gettext_plugin.mo +0 -0
  704. data/samples/rails/vendor/plugins/gettext/locale/es/LC_MESSAGES/gettext_plugin.mo +0 -0
  705. data/samples/rails/vendor/plugins/gettext/locale/fr/LC_MESSAGES/gettext_plugin.mo +0 -0
  706. data/samples/rails/vendor/plugins/gettext/locale/hr/LC_MESSAGES/gettext_plugin.mo +0 -0
  707. data/samples/rails/vendor/plugins/gettext/locale/hu/LC_MESSAGES/gettext_plugin.mo +0 -0
  708. data/samples/rails/vendor/plugins/gettext/locale/it/LC_MESSAGES/gettext_plugin.mo +0 -0
  709. data/samples/rails/vendor/plugins/gettext/locale/ja/LC_MESSAGES/gettext_plugin.mo +0 -0
  710. data/samples/rails/vendor/plugins/gettext/locale/ko/LC_MESSAGES/gettext_plugin.mo +0 -0
  711. data/samples/rails/vendor/plugins/gettext/locale/lv/LC_MESSAGES/gettext_plugin.mo +0 -0
  712. data/samples/rails/vendor/plugins/gettext/locale/nb/LC_MESSAGES/gettext_plugin.mo +0 -0
  713. data/samples/rails/vendor/plugins/gettext/locale/nl/LC_MESSAGES/gettext_plugin.mo +0 -0
  714. data/samples/rails/vendor/plugins/gettext/locale/pt_BR/LC_MESSAGES/gettext_plugin.mo +0 -0
  715. data/samples/rails/vendor/plugins/gettext/locale/ru/LC_MESSAGES/gettext_plugin.mo +0 -0
  716. data/samples/rails/vendor/plugins/gettext/locale/sr/LC_MESSAGES/gettext_plugin.mo +0 -0
  717. data/samples/rails/vendor/plugins/gettext/locale/ua/LC_MESSAGES/gettext_plugin.mo +0 -0
  718. data/samples/rails/vendor/plugins/gettext/locale/vi/LC_MESSAGES/gettext_plugin.mo +0 -0
  719. data/samples/rails/vendor/plugins/gettext/locale/zh/LC_MESSAGES/gettext_plugin.mo +0 -0
  720. data/samples/rails/vendor/plugins/gettext/locale/zh_TW/LC_MESSAGES/gettext_plugin.mo +0 -0
  721. data/samples/rails/vendor/plugins/gettext/po/bg/gettext_plugin.po +0 -27
  722. data/samples/rails/vendor/plugins/gettext/po/bs/gettext_plugin.po +0 -27
  723. data/samples/rails/vendor/plugins/gettext/po/ca/gettext_plugin.po +0 -27
  724. data/samples/rails/vendor/plugins/gettext/po/cs/gettext_plugin.po +0 -29
  725. data/samples/rails/vendor/plugins/gettext/po/de/gettext_plugin.po +0 -29
  726. data/samples/rails/vendor/plugins/gettext/po/el/gettext_plugin.po +0 -27
  727. data/samples/rails/vendor/plugins/gettext/po/eo/gettext_plugin.po +0 -28
  728. data/samples/rails/vendor/plugins/gettext/po/es/gettext_plugin.po +0 -28
  729. data/samples/rails/vendor/plugins/gettext/po/fr/gettext_plugin.po +0 -27
  730. data/samples/rails/vendor/plugins/gettext/po/gettext_plugin.pot +0 -28
  731. data/samples/rails/vendor/plugins/gettext/po/hr/gettext_plugin.po +0 -27
  732. data/samples/rails/vendor/plugins/gettext/po/hu/gettext_plugin.po +0 -27
  733. data/samples/rails/vendor/plugins/gettext/po/it/gettext_plugin.po +0 -27
  734. data/samples/rails/vendor/plugins/gettext/po/ja/gettext_plugin.po +0 -28
  735. data/samples/rails/vendor/plugins/gettext/po/ko/gettext_plugin.po +0 -27
  736. data/samples/rails/vendor/plugins/gettext/po/lv/gettext_plugin.po +0 -28
  737. data/samples/rails/vendor/plugins/gettext/po/nb/gettext_plugin.po +0 -29
  738. data/samples/rails/vendor/plugins/gettext/po/nl/gettext_plugin.po +0 -28
  739. data/samples/rails/vendor/plugins/gettext/po/pt_BR/gettext_plugin.po +0 -27
  740. data/samples/rails/vendor/plugins/gettext/po/ru/gettext_plugin.po +0 -25
  741. data/samples/rails/vendor/plugins/gettext/po/sr/gettext_plugin.po +0 -28
  742. data/samples/rails/vendor/plugins/gettext/po/ua/gettext_plugin.po +0 -30
  743. data/samples/rails/vendor/plugins/gettext/po/vi/gettext_plugin.po +0 -27
  744. data/samples/rails/vendor/plugins/gettext/po/zh/gettext_plugin.po +0 -27
  745. data/samples/rails/vendor/plugins/gettext/po/zh_TW/gettext_plugin.po +0 -29
  746. data/setup.rb +0 -1585
  747. data/test/benchmark.rb +0 -28
  748. data/test/db/mysql.drop.sql +0 -5
  749. data/test/db/mysql.sql +0 -57
  750. data/test/fixtures/book.rb +0 -3
  751. data/test/fixtures/developer.rb +0 -5
  752. data/test/fixtures/developers.yml +0 -21
  753. data/test/fixtures/inept_wizard.rb +0 -3
  754. data/test/fixtures/people.yml +0 -6
  755. data/test/fixtures/reply.rb +0 -40
  756. data/test/fixtures/topic.rb +0 -68
  757. data/test/fixtures/topics.yml +0 -22
  758. data/test/fixtures/user.rb +0 -3
  759. data/test/fixtures/wizard.rb +0 -5
  760. data/test/locale/ja/LC_MESSAGES/active_record.mo +0 -0
  761. data/test/locale/ja/LC_MESSAGES/test_npgettext.mo +0 -0
  762. data/test/po/active_record.pot +0 -393
  763. data/test/po/ja/active_record.po +0 -392
  764. data/test/rails/README +0 -5
  765. data/test/rails/Rakefile +0 -36
  766. data/test/rails/app/controllers/application.rb +0 -8
  767. data/test/rails/app/controllers/articles_controller.rb +0 -61
  768. data/test/rails/app/controllers/mailer_controller.rb +0 -19
  769. data/test/rails/app/controllers/users_controller.rb +0 -11
  770. data/test/rails/app/helpers/application_helper.rb +0 -3
  771. data/test/rails/app/helpers/articles_helper.rb +0 -2
  772. data/test/rails/app/helpers/mailer_helper.rb +0 -2
  773. data/test/rails/app/models/article.rb +0 -5
  774. data/test/rails/app/models/mailer.rb +0 -38
  775. data/test/rails/app/models/user.rb +0 -4
  776. data/test/rails/app/views/articles/_form.html.erb +0 -13
  777. data/test/rails/app/views/articles/_form_fr.html.erb +0 -1
  778. data/test/rails/app/views/articles/active_form_error.html.erb +0 -1
  779. data/test/rails/app/views/articles/change_title_error_messages_for.html.erb +0 -21
  780. data/test/rails/app/views/articles/edit.html.erb +0 -9
  781. data/test/rails/app/views/articles/list.html.erb +0 -27
  782. data/test/rails/app/views/articles/list_fr.html.erb +0 -1
  783. data/test/rails/app/views/articles/multi_error_messages_for.html.erb +0 -19
  784. data/test/rails/app/views/articles/new.html.erb +0 -8
  785. data/test/rails/app/views/articles/show.html.erb +0 -29
  786. data/test/rails/app/views/layouts/application.html.erb +0 -14
  787. data/test/rails/app/views/layouts/mailer.html.erb +0 -20
  788. data/test/rails/app/views/layouts/users.html.erb +0 -13
  789. data/test/rails/app/views/mailer/coverpage.rhtml +0 -6
  790. data/test/rails/app/views/mailer/coverpage_fr.rhtml +0 -6
  791. data/test/rails/app/views/mailer/singlepart.rhtml +0 -3
  792. data/test/rails/app/views/mailer/singlepart_fr.rhtml +0 -3
  793. data/test/rails/app/views/users/custom_error_message.html.erb +0 -13
  794. data/test/rails/app/views/users/custom_error_message_fr.html.erb +0 -13
  795. data/test/rails/config/boot.rb +0 -109
  796. data/test/rails/config/database.yml +0 -36
  797. data/test/rails/config/environment.rb +0 -70
  798. data/test/rails/config/environments/development.rb +0 -18
  799. data/test/rails/config/environments/production.rb +0 -18
  800. data/test/rails/config/environments/test.rb +0 -19
  801. data/test/rails/config/routes.rb +0 -23
  802. data/test/rails/db/schema.rb +0 -34
  803. data/test/rails/po/ja/rails_test.po +0 -149
  804. data/test/rails/po/rails_test.pot +0 -149
  805. data/test/rails/public/404.html +0 -30
  806. data/test/rails/public/500.html +0 -30
  807. data/test/rails/public/dispatch.cgi +0 -10
  808. data/test/rails/public/dispatch.fcgi +0 -24
  809. data/test/rails/public/dispatch.rb +0 -10
  810. data/test/rails/public/images/rails.png +0 -0
  811. data/test/rails/public/index.html +0 -277
  812. data/test/rails/public/javascripts/application.js +0 -2
  813. data/test/rails/public/javascripts/controls.js +0 -963
  814. data/test/rails/public/javascripts/dragdrop.js +0 -972
  815. data/test/rails/public/javascripts/effects.js +0 -1120
  816. data/test/rails/public/javascripts/prototype.js +0 -4225
  817. data/test/rails/public/robots.txt +0 -1
  818. data/test/rails/public/stylesheets/scaffold.css +0 -74
  819. data/test/rails/script/about +0 -3
  820. data/test/rails/script/breakpointer +0 -3
  821. data/test/rails/script/console +0 -3
  822. data/test/rails/script/destroy +0 -3
  823. data/test/rails/script/generate +0 -3
  824. data/test/rails/script/performance/benchmarker +0 -3
  825. data/test/rails/script/performance/profiler +0 -3
  826. data/test/rails/script/plugin +0 -3
  827. data/test/rails/script/process/inspector +0 -3
  828. data/test/rails/script/process/reaper +0 -3
  829. data/test/rails/script/process/spawner +0 -3
  830. data/test/rails/script/runner +0 -3
  831. data/test/rails/script/server +0 -3
  832. data/test/rails/test/fixtures/articles.yml +0 -11
  833. data/test/rails/test/fixtures/users.yml +0 -5
  834. data/test/rails/test/functional/articles_controller_test.rb +0 -119
  835. data/test/rails/test/functional/mailer_controller_test.rb +0 -95
  836. data/test/rails/test/functional/users_controller_test.rb +0 -65
  837. data/test/rails/test/integration/general_stories_test.rb +0 -58
  838. data/test/rails/test/result/en/create_error.html +0 -95
  839. data/test/rails/test/result/en/custom_error_message.html +0 -83
  840. data/test/rails/test/result/en/custom_error_message_with_plural.html +0 -83
  841. data/test/rails/test/result/en/list.html +0 -62
  842. data/test/rails/test/result/en/multi_error_messages_for.html +0 -153
  843. data/test/rails/test/result/en/multipart.html +0 -67
  844. data/test/rails/test/result/en/new.html +0 -95
  845. data/test/rails/test/result/en/show.html +0 -51
  846. data/test/rails/test/result/en/singlepart.html +0 -10
  847. data/test/rails/test/result/fr/custom_error_message.html +0 -83
  848. data/test/rails/test/result/fr/custom_error_message_with_plural.html +0 -83
  849. data/test/rails/test/result/fr/list.html +0 -15
  850. data/test/rails/test/result/fr/multipart.html +0 -67
  851. data/test/rails/test/result/fr/new.html +0 -23
  852. data/test/rails/test/result/fr/singlepart.html +0 -10
  853. data/test/rails/test/result/ja/create_error.html +0 -95
  854. data/test/rails/test/result/ja/custom_error_message.html +0 -83
  855. data/test/rails/test/result/ja/custom_error_message_with_plural.html +0 -83
  856. data/test/rails/test/result/ja/list.html +0 -62
  857. data/test/rails/test/result/ja/multi_error_messages_for.html +0 -153
  858. data/test/rails/test/result/ja/multipart.html +0 -67
  859. data/test/rails/test/result/ja/new.html +0 -95
  860. data/test/rails/test/result/ja/show.html +0 -51
  861. data/test/rails/test/result/ja/singlepart.html +0 -10
  862. data/test/rails/test/test_helper.rb +0 -28
  863. data/test/rails/test/unit/article_test.rb +0 -18
  864. data/test/test.bat +0 -2
  865. data/test/test.sh +0 -13
  866. data/test/test_active_record.rb +0 -2606
  867. data/test/test_cgi.rb +0 -91
  868. data/test/test_erb.rhtml +0 -15
  869. data/test/test_erb.rxml +0 -16
  870. data/test/test_gettext_toplevel.rb +0 -44
  871. data/test/test_gladeparser.glade +0 -183
  872. data/test/test_java.sh +0 -12
  873. data/test/test_locale.rb +0 -250
  874. data/test/test_multi_textdomain.rb +0 -49
  875. data/test/test_rails.rb +0 -45
  876. data/test/test_rails_caching.rb +0 -232
  877. data/test/testlib/testlib2.rb +0 -11
  878. data/test/testlib/testlib3.rb +0 -12
  879. data/test/testlib/testlib4.rb +0 -11
  880. data/test/testlib/testlib5.rb +0 -70
  881. data/test/testlib/testlib6.rb +0 -19
@@ -14,11 +14,12 @@ require 'gettext/parser/ruby.rb'
14
14
 
15
15
  module GetText
16
16
  module ErbParser
17
+ extend self
18
+
17
19
  @config = {
18
20
  :extnames => ['.rhtml', '.erb']
19
21
  }
20
22
 
21
- module_function
22
23
  # Sets some preferences to parse ERB files.
23
24
  # * config: a Hash of the config. It can takes some values below:
24
25
  # * :extnames: An Array of target files extension. Default is [".rhtml"].
@@ -15,12 +15,13 @@ require 'gettext'
15
15
  module GetText
16
16
  module GladeParser
17
17
  extend GetText
18
+ extend self
19
+
18
20
  bindtextdomain("rgettext")
19
21
 
20
22
  TARGET1 = /<property.*translatable="yes">(.*)/
21
23
  TARGET2 = /(.*)<\/property>/
22
24
 
23
- module_function
24
25
  def parse(file, targets = []) # :nodoc:
25
26
  lines = IO.readlines(file)
26
27
  parse_lines(file, lines, targets)
@@ -9,7 +9,7 @@
9
9
  You may redistribute it and/or modify it under the same
10
10
  license terms as Ruby.
11
11
 
12
- $Id: ruby.rb,v 1.12 2008/08/06 17:35:52 mutoh Exp $
12
+ $Id: ruby.rb,v 1.13 2008/12/01 14:30:30 mutoh Exp $
13
13
  =end
14
14
 
15
15
  require 'irb/ruby-lex.rb'
@@ -32,11 +32,11 @@ class RubyLexX < RubyLex # :nodoc: all
32
32
  if @here_header
33
33
  s = s.sub(/\A.*?\n/, '').sub(/^.*\n\Z/, '')
34
34
  else
35
- begin
36
- s = eval(s)
37
- rescue Exception
38
- # Do nothing.
39
- end
35
+ begin
36
+ s = eval(s)
37
+ rescue Exception
38
+ # Do nothing.
39
+ end
40
40
  end
41
41
 
42
42
  tk.value = s
@@ -61,12 +61,13 @@ end
61
61
 
62
62
  module GetText
63
63
  module RubyParser
64
+ extend self
65
+
64
66
  ID = ['gettext', '_', 'N_', 'sgettext', 's_']
65
67
  PLURAL_ID = ['ngettext', 'n_', 'Nn_', 'ns_', 'nsgettext']
66
68
  MSGCTXT_ID = ['pgettext', 'p_']
67
69
  MSGCTXT_PLURAL_ID = ['npgettext', 'np_']
68
70
 
69
- module_function
70
71
  def parse(file, targets = []) # :nodoc:
71
72
  lines = IO.readlines(file)
72
73
  parse_lines(file, lines, targets)
@@ -84,64 +85,67 @@ module GetText
84
85
  line_no = nil
85
86
  tk = nil
86
87
  begin
87
- rl.parse do |tk|
88
- case tk
89
- when RubyToken::TkIDENTIFIER, RubyToken::TkCONSTANT
90
- if ID.include?(tk.name)
91
- target = :normal
92
- elsif PLURAL_ID.include?(tk.name)
93
- target = :plural
94
- elsif MSGCTXT_ID.include?(tk.name)
95
- target = :msgctxt
96
- elsif MSGCTXT_PLURAL_ID.include?(tk.name)
97
- target = :msgctxt_plural
98
- else
99
- target = nil
100
- end
101
- line_no = tk.line_no.to_s
102
- when RubyToken::TkSTRING
103
- if target
104
- if msgid
105
- msgid += tk.value
106
- else
107
- msgid = tk.value
108
- end
109
- end
110
- when RubyToken::TkPLUS, RubyToken::TkNL
111
- #do nothing
112
- when RubyToken::TkCOMMA
113
- if msgid
114
- if target == :plural
115
- msgid += "\000"
116
- elsif target == :msgctxt
117
- msgid += "\004"
118
- elsif target == :msgctxt_plural
119
- msgid += "\004"
120
- target = :plural
121
- else
122
- target = :normal
123
- end
124
- end
125
- else
126
- if msgid
127
- key_existed = targets.assoc(msgid.gsub(/\n/, '\n'))
128
- if key_existed
129
- targets[targets.index(key_existed)] = key_existed <<
130
- file_name + ":" + line_no
131
- else
132
- targets << [msgid.gsub(/\n/, '\n'), file_name + ":" + line_no]
133
- end
134
- msgid = nil
135
- target = nil
136
- end
137
- end
138
- targets
139
- end
88
+ rl.parse do |tk|
89
+ case tk
90
+ when RubyToken::TkIDENTIFIER, RubyToken::TkCONSTANT
91
+ if ID.include?(tk.name)
92
+ target = :normal
93
+ elsif PLURAL_ID.include?(tk.name)
94
+ target = :plural
95
+ elsif MSGCTXT_ID.include?(tk.name)
96
+ target = :msgctxt
97
+ elsif MSGCTXT_PLURAL_ID.include?(tk.name)
98
+ target = :msgctxt_plural
99
+ else
100
+ target = nil
101
+ end
102
+ line_no = tk.line_no.to_s
103
+ when RubyToken::TkSTRING
104
+ if target
105
+ if msgid
106
+ msgid += tk.value
107
+ else
108
+ msgid = tk.value
109
+ end
110
+ end
111
+ when RubyToken::TkPLUS, RubyToken::TkNL
112
+ #do nothing
113
+ when RubyToken::TkCOMMA
114
+ if msgid
115
+ case target
116
+ when :plural
117
+ msgid += "\000"
118
+ target = :normal
119
+ when :msgctxt
120
+ msgid += "\004"
121
+ target = :normal
122
+ when :msgctxt_plural
123
+ msgid += "\004"
124
+ target = :plural
125
+ else
126
+ target = :normal
127
+ end
128
+ end
129
+ else
130
+ if msgid
131
+ key_existed = targets.assoc(msgid.gsub(/\n/, '\n'))
132
+ if key_existed
133
+ targets[targets.index(key_existed)] = key_existed <<
134
+ file_name + ":" + line_no
135
+ else
136
+ targets << [msgid.gsub(/\n/, '\n'), file_name + ":" + line_no]
137
+ end
138
+ msgid = nil
139
+ target = nil
140
+ end
141
+ end
142
+ targets
143
+ end
140
144
  rescue
141
- $stderr.print "\n\nError: #{$!.inspect} "
145
+ $stderr.print "\n\nError: #{$!.inspect} "
142
146
  $stderr.print " in #{file_name}:#{tk.line_no}\n\t #{lines[tk.line_no - 1]}" if tk
143
147
  $stderr.print "\n"
144
- exit
148
+ exit 1
145
149
  end
146
150
  targets
147
151
  end
@@ -149,7 +153,6 @@ module GetText
149
153
  def target?(file) # :nodoc:
150
154
  true # always true, as default parser.
151
155
  end
152
-
153
156
  end
154
157
  end
155
158
 
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  poparser.rb - Generate a .mo
3
3
 
4
- Copyright (C) 2003-2005 Masao Mutoh <mutoh@highway.ne.jp>
4
+ Copyright (C) 2003-2009 Masao Mutoh <mutomasa at gmail.com>
5
5
 
6
6
  You may redistribute it and/or modify it under the same
7
7
  license terms as Ruby.
@@ -20,7 +20,7 @@ module GetText
20
20
 
21
21
  class PoParser < Racc::Parser
22
22
 
23
- module_eval <<'..end src/poparser.ry modeval..ida6d91c8151', 'src/poparser.ry', 108
23
+ module_eval <<'..end src/poparser.ry modeval..id7a99570e05', 'src/poparser.ry', 108
24
24
  include GetText
25
25
  GetText.bindtextdomain("rgettext")
26
26
 
@@ -111,7 +111,7 @@ module_eval <<'..end src/poparser.ry modeval..ida6d91c8151', 'src/poparser.ry',
111
111
  end
112
112
 
113
113
 
114
- ..end src/poparser.ry modeval..ida6d91c8151
114
+ ..end src/poparser.ry modeval..id7a99570e05
115
115
 
116
116
  ##### racc 1.4.5 generates ###
117
117
 
@@ -1,131 +1,100 @@
1
1
  =begin
2
2
  textdomain.rb - GetText::Textdomain
3
3
 
4
- Copyright (C) 2001-2008 Masao Mutoh
4
+ Copyright (C) 2001-2009 Masao Mutoh
5
5
  Copyright (C) 2001-2003 Masahiro Sakai
6
6
 
7
7
  Masahiro Sakai <s01397ms@sfc.keio.ac.jp>
8
- Masao Mutoh <mutoh@highway.ne.jp>
8
+ Masao Mutoh <mutomasa at gmail.com>
9
9
 
10
10
  You may redistribute it and/or modify it under the same
11
11
  license terms as Ruby.
12
12
 
13
- $Id: textdomain.rb,v 1.24 2008/03/31 06:26:47 mutoh Exp $
13
+ $Id$
14
14
  =end
15
15
 
16
- require 'gettext/string'
17
- require 'rbconfig'
16
+ require 'gettext/core_ext/string'
17
+ require 'gettext/mofile'
18
+ require 'gettext/locale_path'
18
19
 
19
20
  module GetText
20
- # GetText::TextDomain class manages mo-files of a textdomain.
21
- #
21
+ # GetText::TextDomain class manages mo-files of a textdomain.
22
+ #
22
23
  # Usually, you don't need to use this class directly.
23
24
  #
24
25
  # Notice: This class is unstable. APIs will be changed.
25
26
  class TextDomain
26
27
 
27
- GEM_PATH_RE = /(.*)\/lib$/ # :nodoc:
28
-
29
- attr_reader :current_locale
30
- attr_reader :locale_paths
31
- attr_reader :current_mo
28
+ attr_reader :output_charset
29
+ attr_reader :mofiles
32
30
  attr_reader :name
33
31
 
34
- @@check_mo = false
35
- # Check mo-file is modified or not, and if mo-file is modified,
36
- # reload mo-file again. This is effective in debug mode.
37
- # Default is false. If $DEBUG is true, mo-file is checked even if
38
- # this value is false.
39
- # * Returns: true if "check mo" mode.
40
- def self.check_mo?
41
- @@check_mo
32
+ @@cached = ! $DEBUG
33
+ # Cache the mo-file or not.
34
+ # Default is true. If $DEBUG is set then false.
35
+ def self.cached?
36
+ @@cached
42
37
  end
43
38
 
44
- # Sets to check mo-file or not. See GetText::TextDoman.check_mo? for more details.
45
- # * val: true if "check mo" mode.
46
- # * Returns: val
47
- def self.check_mo=(val)
48
- @@check_mo = val
39
+ # Set to cache the mo-file or not.
40
+ # * val: true if cached, otherwise false.
41
+ def self.cached=(val)
42
+ @@cached = val
49
43
  end
50
- # The default locale paths.
51
- CONFIG_PREFIX = Config::CONFIG['prefix'].gsub(/\/local/, "")
52
- DEFAULT_LOCALE_PATHS = [
53
- "#{Config::CONFIG['datadir']}/locale/%{locale}/LC_MESSAGES/%{name}.mo",
54
- "#{Config::CONFIG['datadir'].gsub(/\/local/, "")}/locale/%{locale}/LC_MESSAGES/%{name}.mo",
55
- "#{CONFIG_PREFIX}/share/locale/%{locale}/LC_MESSAGES/%{name}.mo",
56
- "#{CONFIG_PREFIX}/local/share/locale/%{locale}/LC_MESSAGES/%{name}.mo"
57
- ].uniq
58
44
 
59
45
  # Add default locale path. Usually you should use GetText.add_default_locale_path instead.
60
- # * path: a new locale path. (e.g.) "/usr/share/locale/%{locale}/LC_MESSAGES/%{name}.mo"
46
+ # * path: a new locale path. (e.g.) "/usr/share/locale/%{lang}/LC_MESSAGES/%{name}.mo"
61
47
  # ('locale' => "ja_JP", 'name' => "textdomain")
62
48
  # * Returns: the new DEFAULT_LOCALE_PATHS
63
49
  def self.add_default_locale_path(path)
64
- DEFAULT_LOCALE_PATHS.unshift(path)
50
+ warn "Deprecated. Use GetText::LocalePath.add_default_rule instead."
51
+ LocalePath.add_default_rule(path)
65
52
  end
66
53
 
67
54
  # Creates a new GetText::TextDomain.
68
55
  # * name: the textdomain name.
69
- # * topdir: the locale path ("%{topdir}/%{locale}/LC_MESSAGES/%{name}.mo").
70
- # * locale: the Locale::Object or nil.
56
+ # * topdir: the locale path ("%{topdir}/%{lang}/LC_MESSAGES/%{name}.mo") or nil.
57
+ # * output_charset: output charset.
71
58
  # * Returns: a newly created GetText::TextDomain object.
72
- def initialize(name, topdir = nil, locale = nil)
73
- @name, @topdir = name, topdir
74
- @search_files = Array.new
75
-
76
- @locale_paths = []
77
- if ENV["GETTEXT_PATH"]
78
- ENV["GETTEXT_PATH"].split(/,/).each {|i|
79
- @locale_paths += ["#{i}/%{locale}/LC_MESSAGES/%{name}.mo", "#{i}/%{locale}/%{name}.mo"]
80
- }
81
- elsif @topdir
82
- @locale_paths += ["#{@topdir}/%{locale}/LC_MESSAGES/%{name}.mo", "#{@topdir}/%{locale}/%{name}.mo"]
83
- end
59
+ def initialize(name, topdir = nil, output_charset = nil)
60
+ @name, @output_charset = name, output_charset
84
61
 
85
- unless @topdir
86
- @locale_paths += DEFAULT_LOCALE_PATHS
87
-
88
- if defined? Gem
89
- $:.each do |path|
90
- if GEM_PATH_RE =~ path
91
- @locale_paths += [
92
- "#{$1}/data/locale/%{locale}/LC_MESSAGES/%{name}.mo",
93
- "#{$1}/data/locale/%{locale}/%{name}.mo",
94
- "#{$1}/locale/%{locale}/%{name}.mo"]
95
- end
96
- end
97
- end
98
- end
99
-
100
- @mofiles = Hash.new
101
- set_locale(locale)
62
+ @locale_path = LocalePath.new(@name, topdir)
63
+ @mofiles = {}
102
64
  end
103
65
 
104
- # Sets a new Locale::Object.
105
- # * locale: a Locale::Object
106
- # * reload: true if the mo-file is reloaded forcely
107
- # * Returns: self
108
- def set_locale(locale, reload = false)
109
- @current_locale = locale
110
- load_mo(reload)
111
- self
112
- end
113
-
114
- # Gets the translated string.
66
+ # Translates the translated string.
67
+ # * lang: Locale::Tag::Simple's subclass.
115
68
  # * msgid: the original message.
116
- # * Returns: the translated string or nil if not found.
117
- def gettext(msgid)
69
+ # * Returns: the translated string or nil.
70
+ def translate_singluar_message(lang, msgid)
118
71
  return "" if msgid == "" or msgid.nil?
119
- return nil unless @current_mo
120
- if @current_mo[msgid] and (@current_mo[msgid].size > 0)
121
- @current_mo[msgid]
72
+
73
+ lang_key = lang.to_s
74
+
75
+ mofile = nil
76
+ if self.class.cached?
77
+ mofile = @mofiles[lang_key]
78
+ end
79
+ unless mofile
80
+ mofile = load_mo(lang)
81
+ end
82
+
83
+ if (! mofile) or (mofile ==:empty)
84
+ return nil
85
+ end
86
+
87
+ msgstr = mofile[msgid]
88
+ if msgstr and (msgstr.size > 0)
89
+ msgstr
122
90
  elsif msgid.include?("\000")
91
+ # Check "aaa\000bbb" and show warning but return the singluar part.
123
92
  ret = nil
124
93
  msgid_single = msgid.split("\000")[0]
125
- @current_mo.each{|key, val|
94
+ mofile.each{|key, val|
126
95
  if key =~ /^#{Regexp.quote(msgid_single)}\000/
127
- # Usually, this is not caused to make po-files from rgettext.
128
- warn %Q[Warning: n_("#{msgid_single}", "#{msgid.split("\000")[1]}") and n_("#{key.gsub(/\000/, '", "')}") are duplicated.] if $DEBUG
96
+ # Usually, this is not caused to make po-files from rgettext.
97
+ warn %Q[Warning: n_("#{msgid_single}", "#{msgid.split("\000")[1]}") and n_("#{key.gsub(/\000/, '", "')}") are duplicated.]
129
98
  ret = val
130
99
  break
131
100
  end
@@ -133,9 +102,9 @@ module GetText
133
102
  ret
134
103
  else
135
104
  ret = nil
136
- @current_mo.each{|key, val|
105
+ mofile.each{|key, val|
137
106
  if key =~ /^#{Regexp.quote(msgid)}\000/
138
- ret = val.split("\000")[0]
107
+ ret = val.split("\000")[0]
139
108
  break
140
109
  end
141
110
  }
@@ -143,45 +112,21 @@ module GetText
143
112
  end
144
113
  end
145
114
 
146
- # Gets the translated string. (Deprecated. Don't call this method directly)
147
- # * msgid: the original message(single).
148
- # * msgid: the original message(plural).
149
- # * n: the number
150
- # * Returns: the translated string or nil if not found.
151
- def ngettext(msgid, msgid_plural, n)
152
- key = msgid + "\000" + msgid_plural
153
- msg = gettext(key)
154
- if ! msg
155
- nil # do nothing.
156
- elsif msg == key
157
- msg = n == 1 ? msgid : msgid_plural
158
- elsif msg.include?("\000")
159
- ary = msg.split("\000")
160
- if @current_mo
161
- plural = eval(@current_mo.plural)
162
- if plural.kind_of?(Numeric)
163
- msg = ary[plural]
164
- else
165
- msg = plural ? ary[1] : ary[0]
166
- end
167
- else
168
- msg = n == 1 ? ary[0] : ary[1]
169
- end
170
- end
171
- msg
172
- end
173
-
174
- def ngettext_data(msgid, msgid_plural) #:nodoc:
115
+ # Translates the translated string.
116
+ # * lang: Locale::Tag::Simple's subclass.
117
+ # * msgid: the original message.
118
+ # * msgid_plural: the original message(plural).
119
+ # * Returns: the translated string as an Array ([[msgstr1, msgstr2, ...], cond]) or nil.
120
+ def translate_plural_message(lang, msgid, msgid_plural) #:nodoc:
175
121
  key = msgid + "\000" + msgid_plural
176
- msg = gettext(key)
122
+ msg = translate_singluar_message(lang, key)
177
123
  ret = nil
178
124
  if ! msg
179
125
  ret = nil
180
- elsif msg == key
181
- ret = nil
182
126
  elsif msg.include?("\000")
183
127
  # [[msgstr[0], msgstr[1], msgstr[2],...], cond]
184
- cond = @current_mo ? @current_mo.plural : nil
128
+ mofile = @mofiles[lang.to_posix.to_s]
129
+ cond = (mofile and mofile != :empty) ? mofile.plural : nil
185
130
  cond ||= "n != 1"
186
131
  ret = [msg.split("\000"), cond]
187
132
  else
@@ -190,62 +135,43 @@ module GetText
190
135
  ret
191
136
  end
192
137
 
193
- # Compare this object has the same name, topdir and locale.
194
- # * name: the textdomain name
195
- # * topdir: the top directory of mo files or nil.
196
- # * locale: the Locale::Object or nil.
197
- # * Returns: true if this object has all of the same name, topdir and locale.
198
- def same_property?(name, topdir, locale)
199
- @name == name and @topdir == topdir and @current_locale == locale
138
+ # Clear cached mofiles.
139
+ def clear
140
+ @mofiles = {}
200
141
  end
201
-
142
+
143
+ # Set output_charset.
144
+ # * charset: output charset.
145
+ def output_charset=(charset)
146
+ @output_charset = charset
147
+ clear
148
+ end
149
+
202
150
  private
203
- def load_mo(reload = false)
204
- @current_mo = nil
205
- return nil unless @current_locale
206
-
207
- unless reload
208
- @current_mo = @mofiles[@current_locale]
209
- if @current_mo
210
- if @current_mo == :empty
211
- @current_mo = nil
212
- return nil unless (@@check_mo or $DEBUG)
213
- elsif (@@check_mo or $DEBUG)
214
- @current_mo.update!
215
- return @current_mo
216
- else
217
- return @current_mo
218
- end
151
+ # Load a mo-file from the file.
152
+ # lang is the subclass of Locale::Tag::Simple.
153
+ def load_mo(lang)
154
+ lang = lang.to_posix unless lang.kind_of? Locale::Tag::Posix
155
+ lang_key = lang.to_s
156
+
157
+ mofile = @mofiles[lang_key]
158
+ if mofile
159
+ if mofile == :empty
160
+ return :empty
161
+ elsif ! self.class.cached?
162
+ mofile.update!
219
163
  end
164
+ return mofile
220
165
  end
221
- locales = [@current_locale.orig_str, @current_locale.to_posix, @current_locale.language].uniq
222
- matched = false
223
- @locale_paths.each do |dir|
224
- locales.each{|locale|
225
- fname = dir % {:locale => locale, :name => @name}
226
- if $DEBUG
227
- @search_files << fname unless @search_files.include?(fname)
228
- end
229
- if File.exist?(fname)
230
- $stderr.puts "GetText::TextDomain#load_mo: mo file is #{fname}" if $DEBUG
231
- @current_mo = MOFile.open(fname, @current_locale.charset)
232
- @mofiles[@current_locale] = @current_mo
233
- matched = true
234
- break
235
- end
236
- }
237
- break if matched
238
- end
239
- unless @current_mo
240
- @mofiles[@current_locale] = :empty
241
- if $DEBUG
242
- $stderr.puts "MO file is not found in"
243
- @search_files.each do |v|
244
- $stderr.puts " #{v}"
245
- end
246
- end
166
+
167
+ path = @locale_path.current_path(lang)
168
+
169
+ if path
170
+ charset = @output_charset || lang.charset || Locale.charset || "UTF-8"
171
+ @mofiles[lang_key] = MOFile.open(path, charset)
172
+ else
173
+ @mofiles[lang_key] = :empty
247
174
  end
248
- @current_mo
249
175
  end
250
176
  end
251
177
  end