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
@@ -1,695 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: MOFile</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">MOFile</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../files/lib/gettext/mo_rb.html">
59
- lib/gettext/mo.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- Hash
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
-
81
-
82
-
83
- </div>
84
-
85
- <div id="method-list">
86
- <h3 class="section-bar">Methods</h3>
87
-
88
- <div class="name-list">
89
- <a href="#M000012">hash_string</a>&nbsp;&nbsp;
90
- <a href="#M000008">load</a>&nbsp;&nbsp;
91
- <a href="#M000014">load_from_file</a>&nbsp;&nbsp;
92
- <a href="#M000009">load_from_stream</a>&nbsp;&nbsp;
93
- <a href="#M000006">new</a>&nbsp;&nbsp;
94
- <a href="#M000011">next_prime</a>&nbsp;&nbsp;
95
- <a href="#M000005">open</a>&nbsp;&nbsp;
96
- <a href="#M000010">prime?</a>&nbsp;&nbsp;
97
- <a href="#M000015">save_to_file</a>&nbsp;&nbsp;
98
- <a href="#M000013">save_to_stream</a>&nbsp;&nbsp;
99
- <a href="#M000016">set_comment</a>&nbsp;&nbsp;
100
- <a href="#M000007">update!</a>&nbsp;&nbsp;
101
- </div>
102
- </div>
103
-
104
- </div>
105
-
106
-
107
- <!-- if includes -->
108
-
109
- <div id="section">
110
-
111
- <div id="class-list">
112
- <h3 class="section-bar">Classes and Modules</h3>
113
-
114
- Class <a href="MOFile/HeaderRev1.html" class="link">MOFile::HeaderRev1</a><br />
115
- Class <a href="MOFile/InvalidFormat.html" class="link">MOFile::InvalidFormat</a><br />
116
-
117
- </div>
118
-
119
- <div id="constants-list">
120
- <h3 class="section-bar">Constants</h3>
121
-
122
- <div class="name-list">
123
- <table summary="Constants">
124
- <tr class="top-aligned-row context-row">
125
- <td class="context-item-name">Header</td>
126
- <td>=</td>
127
- <td class="context-item-value">Struct.new(:magic, :revision, :nstrings, :orig_table_offset, :translated_table_offset, :hash_table_size, :hash_table_offset)</td>
128
- </tr>
129
- <tr class="top-aligned-row context-row">
130
- <td class="context-item-name">MAGIC_BIG_ENDIAN</td>
131
- <td>=</td>
132
- <td class="context-item-value">&quot;\x95\x04\x12\xde&quot;</td>
133
- </tr>
134
- <tr class="top-aligned-row context-row">
135
- <td class="context-item-name">MAGIC_LITTLE_ENDIAN</td>
136
- <td>=</td>
137
- <td class="context-item-value">&quot;\xde\x12\x04\x95&quot;</td>
138
- </tr>
139
- <tr class="top-aligned-row context-row">
140
- <td class="context-item-name">HASHWORDBITS</td>
141
- <td>=</td>
142
- <td class="context-item-value">32</td>
143
- <td width="3em">&nbsp;</td>
144
- <td class="context-item-desc">
145
- From gettext-0.12.1/gettext-runtime/intl/hash-string.h Defines the so
146
- called `hashpjw&#8217; function by P.J. Weinberger [see Aho/Sethi/Ullman,
147
- COMPILERS: Principles, Techniques and Tools, 1986, 1987 Bell Telephone
148
- Laboratories, Inc.]
149
-
150
- </td>
151
- </tr>
152
- </table>
153
- </div>
154
- </div>
155
-
156
-
157
-
158
- <div id="attribute-list">
159
- <h3 class="section-bar">Attributes</h3>
160
-
161
- <div class="name-list">
162
- <table>
163
- <tr class="top-aligned-row context-row">
164
- <td class="context-item-name">charset</td>
165
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
166
- <td class="context-item-desc"></td>
167
- </tr>
168
- <tr class="top-aligned-row context-row">
169
- <td class="context-item-name">filename</td>
170
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
171
- <td class="context-item-desc"></td>
172
- </tr>
173
- <tr class="top-aligned-row context-row">
174
- <td class="context-item-name">last_modified</td>
175
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
176
- <td class="context-item-desc"></td>
177
- </tr>
178
- <tr class="top-aligned-row context-row">
179
- <td class="context-item-name">little_endian</td>
180
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
181
- <td class="context-item-desc"></td>
182
- </tr>
183
- <tr class="top-aligned-row context-row">
184
- <td class="context-item-name">nplurals</td>
185
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
186
- <td class="context-item-desc"></td>
187
- </tr>
188
- <tr class="top-aligned-row context-row">
189
- <td class="context-item-name">path</td>
190
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
191
- <td class="context-item-desc"></td>
192
- </tr>
193
- <tr class="top-aligned-row context-row">
194
- <td class="context-item-name">plural</td>
195
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
196
- <td class="context-item-desc"></td>
197
- </tr>
198
- </table>
199
- </div>
200
- </div>
201
-
202
-
203
-
204
- <!-- if method_list -->
205
- <div id="methods">
206
- <h3 class="section-bar">Public Class methods</h3>
207
-
208
- <div id="method-M000006" class="method-detail">
209
- <a name="M000006"></a>
210
-
211
- <div class="method-heading">
212
- <a href="#M000006" class="method-signature">
213
- <span class="method-name">new</span><span class="method-args">(output_charset = nil)</span>
214
- </a>
215
- </div>
216
-
217
- <div class="method-description">
218
- <p><a class="source-toggle" href="#"
219
- onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
220
- <div class="method-source-code" id="M000006-source">
221
- <pre>
222
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 52</span>
223
- 52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">output_charset</span> = <span class="ruby-keyword kw">nil</span>)
224
- 53: <span class="ruby-ivar">@filename</span> = <span class="ruby-keyword kw">nil</span>
225
- 54: <span class="ruby-ivar">@last_modified</span> = <span class="ruby-keyword kw">nil</span>
226
- 55: <span class="ruby-ivar">@little_endian</span> = <span class="ruby-keyword kw">true</span>
227
- 56: <span class="ruby-ivar">@output_charset</span> = <span class="ruby-identifier">output_charset</span>
228
- 57: <span class="ruby-keyword kw">super</span>()
229
- 58: <span class="ruby-keyword kw">end</span>
230
- </pre>
231
- </div>
232
- </div>
233
- </div>
234
-
235
- <div id="method-M000005" class="method-detail">
236
- <a name="M000005"></a>
237
-
238
- <div class="method-heading">
239
- <a href="#M000005" class="method-signature">
240
- <span class="method-name">open</span><span class="method-args">(arg = nil, output_charset = nil)</span>
241
- </a>
242
- </div>
243
-
244
- <div class="method-description">
245
- <p><a class="source-toggle" href="#"
246
- onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
247
- <div class="method-source-code" id="M000005-source">
248
- <pre>
249
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 47</span>
250
- 47: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">arg</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">output_charset</span> = <span class="ruby-keyword kw">nil</span>)
251
- 48: <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">output_charset</span>)
252
- 49: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">load</span>(<span class="ruby-identifier">arg</span>)
253
- 50: <span class="ruby-keyword kw">end</span>
254
- </pre>
255
- </div>
256
- </div>
257
- </div>
258
-
259
- <h3 class="section-bar">Public Instance methods</h3>
260
-
261
- <div id="method-M000012" class="method-detail">
262
- <a name="M000012"></a>
263
-
264
- <div class="method-heading">
265
- <a href="#M000012" class="method-signature">
266
- <span class="method-name">hash_string</span><span class="method-args">(str)</span>
267
- </a>
268
- </div>
269
-
270
- <div class="method-description">
271
- <p><a class="source-toggle" href="#"
272
- onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
273
- <div class="method-source-code" id="M000012-source">
274
- <pre>
275
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 192</span>
276
- 192: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hash_string</span>(<span class="ruby-identifier">str</span>)
277
- 193: <span class="ruby-identifier">hval</span> = <span class="ruby-value">0</span>
278
- 194: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
279
- 195: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">each_byte</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
280
- 196: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">b</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'\0'</span>
281
- 197: <span class="ruby-identifier">hval</span> <span class="ruby-operator">&lt;&lt;=</span> <span class="ruby-value">4</span>
282
- 198: <span class="ruby-identifier">hval</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">to_i</span>
283
- 199: <span class="ruby-identifier">g</span> = <span class="ruby-identifier">hval</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">0xf</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-constant">HASHWORDBITS</span> <span class="ruby-operator">-</span> <span class="ruby-value">4</span>))
284
- 200: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">g</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>)
285
- 201: <span class="ruby-identifier">hval</span> <span class="ruby-operator">^=</span> <span class="ruby-identifier">g</span> <span class="ruby-operator">&gt;&gt;</span> (<span class="ruby-constant">HASHWORDBITS</span> <span class="ruby-operator">-</span> <span class="ruby-value">8</span>)
286
- 202: <span class="ruby-identifier">hval</span> <span class="ruby-operator">^=</span> <span class="ruby-identifier">g</span>
287
- 203: <span class="ruby-keyword kw">end</span>
288
- 204: <span class="ruby-keyword kw">end</span>
289
- 205: <span class="ruby-identifier">hval</span>
290
- 206: <span class="ruby-keyword kw">end</span>
291
- </pre>
292
- </div>
293
- </div>
294
- </div>
295
-
296
- <div id="method-M000008" class="method-detail">
297
- <a name="M000008"></a>
298
-
299
- <div class="method-heading">
300
- <a href="#M000008" class="method-signature">
301
- <span class="method-name">load</span><span class="method-args">(arg)</span>
302
- </a>
303
- </div>
304
-
305
- <div class="method-description">
306
- <p><a class="source-toggle" href="#"
307
- onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
308
- <div class="method-source-code" id="M000008-source">
309
- <pre>
310
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 71</span>
311
- 71: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">arg</span>)
312
- 72: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">String</span>
313
- 73: <span class="ruby-keyword kw">begin</span>
314
- 74: <span class="ruby-identifier">st</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-identifier">arg</span>)
315
- 75: <span class="ruby-ivar">@last_modified</span> = [<span class="ruby-identifier">st</span>.<span class="ruby-identifier">ctime</span>, <span class="ruby-identifier">st</span>.<span class="ruby-identifier">mtime</span>]
316
- 76: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span>
317
- 77: <span class="ruby-keyword kw">end</span>
318
- 78: <span class="ruby-identifier">load_from_file</span>(<span class="ruby-identifier">arg</span>)
319
- 79: <span class="ruby-keyword kw">else</span>
320
- 80: <span class="ruby-identifier">load_from_stream</span>(<span class="ruby-identifier">arg</span>)
321
- 81: <span class="ruby-keyword kw">end</span>
322
- 82: <span class="ruby-ivar">@filename</span> = <span class="ruby-identifier">arg</span>
323
- 83: <span class="ruby-keyword kw">self</span>
324
- 84: <span class="ruby-keyword kw">end</span>
325
- </pre>
326
- </div>
327
- </div>
328
- </div>
329
-
330
- <div id="method-M000014" class="method-detail">
331
- <a name="M000014"></a>
332
-
333
- <div class="method-heading">
334
- <a href="#M000014" class="method-signature">
335
- <span class="method-name">load_from_file</span><span class="method-args">(filename)</span>
336
- </a>
337
- </div>
338
-
339
- <div class="method-description">
340
- <p><a class="source-toggle" href="#"
341
- onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
342
- <div class="method-source-code" id="M000014-source">
343
- <pre>
344
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 275</span>
345
- 275: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_from_file</span>(<span class="ruby-identifier">filename</span>)
346
- 276: <span class="ruby-ivar">@filename</span> = <span class="ruby-identifier">filename</span>
347
- 277: <span class="ruby-keyword kw">begin</span>
348
- 278: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">'rb'</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">load_from_stream</span>(<span class="ruby-identifier">f</span>)}
349
- 279: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
350
- 280: <span class="ruby-identifier">e</span>.<span class="ruby-identifier">set_backtrace</span>(<span class="ruby-node">&quot;File: #{@filename}&quot;</span>)
351
- 281: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>
352
- 282: <span class="ruby-keyword kw">end</span>
353
- 283: <span class="ruby-keyword kw">end</span>
354
- </pre>
355
- </div>
356
- </div>
357
- </div>
358
-
359
- <div id="method-M000009" class="method-detail">
360
- <a name="M000009"></a>
361
-
362
- <div class="method-heading">
363
- <a href="#M000009" class="method-signature">
364
- <span class="method-name">load_from_stream</span><span class="method-args">(io)</span>
365
- </a>
366
- </div>
367
-
368
- <div class="method-description">
369
- <p><a class="source-toggle" href="#"
370
- onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
371
- <div class="method-source-code" id="M000009-source">
372
- <pre>
373
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 86</span>
374
- 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_from_stream</span>(<span class="ruby-identifier">io</span>)
375
- 87: <span class="ruby-identifier">magic</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>)
376
- 88: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">magic</span>
377
- 89: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">MAGIC_BIG_ENDIAN</span>
378
- 90: <span class="ruby-ivar">@little_endian</span> = <span class="ruby-keyword kw">false</span>
379
- 91: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">MAGIC_LITTLE_ENDIAN</span>
380
- 92: <span class="ruby-ivar">@little_endian</span> = <span class="ruby-keyword kw">true</span>
381
- 93: <span class="ruby-keyword kw">else</span>
382
- 94: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidFormat</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;Unknown signature %s&quot;</span>, <span class="ruby-identifier">magic</span>.<span class="ruby-identifier">dump</span>))
383
- 95: <span class="ruby-keyword kw">end</span>
384
- 96:
385
- 97: <span class="ruby-identifier">endian_type6</span> = <span class="ruby-ivar">@little_endian</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'V6'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'N6'</span>
386
- 98: <span class="ruby-identifier">endian_type_astr</span> = <span class="ruby-ivar">@little_endian</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'V*'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'N*'</span>
387
- 99:
388
- 100: <span class="ruby-identifier">header</span> = <span class="ruby-constant">HeaderRev1</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">magic</span>, <span class="ruby-operator">*</span>(<span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">6</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)))
389
- 101:
390
- 102: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">revision</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
391
- 103: <span class="ruby-comment cmt"># FIXME: It doesn't support sysdep correctly.</span>
392
- 104: <span class="ruby-identifier">header</span>.<span class="ruby-identifier">n_sysdep_segments</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)
393
- 105: <span class="ruby-identifier">header</span>.<span class="ruby-identifier">sysdep_segments_offset</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)
394
- 106: <span class="ruby-identifier">header</span>.<span class="ruby-identifier">n_sysdep_strings</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)
395
- 107: <span class="ruby-identifier">header</span>.<span class="ruby-identifier">orig_sysdep_tab_offset</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)
396
- 108: <span class="ruby-identifier">header</span>.<span class="ruby-identifier">trans_sysdep_tab_offset</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-value">4</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type6</span>)
397
- 109: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">revision</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
398
- 110: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidFormat</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">&quot;file format revision %d isn't supported&quot;</span>, <span class="ruby-identifier">header</span>.<span class="ruby-identifier">revision</span>))
399
- 111: <span class="ruby-keyword kw">end</span>
400
- 112: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">header</span>.<span class="ruby-identifier">orig_table_offset</span>
401
- 113: <span class="ruby-identifier">orig_table_data</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>((<span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span>) <span class="ruby-operator">*</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type_astr</span>)
402
- 114:
403
- 115: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">header</span>.<span class="ruby-identifier">translated_table_offset</span>
404
- 116: <span class="ruby-identifier">trans_table_data</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>((<span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span>) <span class="ruby-operator">*</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>).<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">endian_type_astr</span>)
405
- 117:
406
- 118: <span class="ruby-identifier">original_strings</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>)
407
- 119: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>
408
- 120: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">orig_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>]
409
- 121: <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">orig_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">0</span>])
410
- 122: <span class="ruby-keyword kw">end</span>
411
- 123:
412
- 124: <span class="ruby-identifier">clear</span>
413
- 125: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">header</span>.<span class="ruby-identifier">nstrings</span>
414
- 126: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">pos</span> = <span class="ruby-identifier">trans_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>]
415
- 127: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">io</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">trans_table_data</span>[<span class="ruby-identifier">i</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">+</span> <span class="ruby-value">0</span>])
416
- 128:
417
- 129: <span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span> <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>]) <span class="ruby-operator">||</span> <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;&quot;</span>
418
- 130: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span>
419
- 131: <span class="ruby-ivar">@charset</span> = <span class="ruby-keyword kw">nil</span>
420
- 132: <span class="ruby-ivar">@nplurals</span> = <span class="ruby-keyword kw">nil</span>
421
- 133: <span class="ruby-ivar">@plural</span> = <span class="ruby-keyword kw">nil</span>
422
- 134: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">each_line</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
423
- 135: <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/^Content-Type:/i</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">line</span> <span class="ruby-keyword kw">and</span> <span class="ruby-regexp re">/charset=((?:\w|-)+)/i</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">line</span>
424
- 136: <span class="ruby-ivar">@charset</span> = <span class="ruby-identifier">$1</span>
425
- 137: <span class="ruby-keyword kw">elsif</span> <span class="ruby-regexp re">/^Plural-Forms:\s*nplurals\s*\=\s*(\d*);\s*plural\s*\=\s*([^;]*)\n?/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">line</span>
426
- 138: <span class="ruby-ivar">@nplurals</span> = <span class="ruby-identifier">$1</span>
427
- 139: <span class="ruby-ivar">@plural</span> = <span class="ruby-identifier">$2</span>
428
- 140: <span class="ruby-keyword kw">end</span>
429
- 141: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@charset</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@nplurals</span>
430
- 142: }
431
- 143: <span class="ruby-ivar">@nplurals</span> = <span class="ruby-value str">&quot;1&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@nplurals</span>
432
- 144: <span class="ruby-ivar">@plural</span> = <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@plural</span>
433
- 145: <span class="ruby-keyword kw">end</span>
434
- 146: <span class="ruby-keyword kw">else</span>
435
- 147: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@output_charset</span>
436
- 148: <span class="ruby-keyword kw">begin</span>
437
- 149: <span class="ruby-identifier">str</span> = <span class="ruby-constant">Iconv</span>.<span class="ruby-identifier">conv</span>(<span class="ruby-ivar">@output_charset</span>, <span class="ruby-ivar">@charset</span>, <span class="ruby-identifier">str</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@charset</span>
438
- 150: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Iconv</span><span class="ruby-operator">::</span><span class="ruby-constant">Failure</span>
439
- 151: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
440
- 152: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;@charset = &quot;</span>, <span class="ruby-ivar">@charset</span>, <span class="ruby-value str">&quot;\n&quot;</span>
441
- 153: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;@output_charset = &quot;</span>, <span class="ruby-ivar">@output_charset</span>, <span class="ruby-value str">&quot;\n&quot;</span>
442
- 154: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;msgid = &quot;</span>, <span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>], <span class="ruby-value str">&quot;\n&quot;</span>
443
- 155: <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;msgstr = &quot;</span>, <span class="ruby-identifier">str</span>, <span class="ruby-value str">&quot;\n&quot;</span>
444
- 156: <span class="ruby-keyword kw">end</span>
445
- 157: <span class="ruby-keyword kw">end</span>
446
- 158: <span class="ruby-keyword kw">end</span>
447
- 159: <span class="ruby-keyword kw">end</span>
448
- 160: <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">original_strings</span>[<span class="ruby-identifier">i</span>]] = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">freeze</span>
449
- 161: <span class="ruby-keyword kw">end</span>
450
- 162: <span class="ruby-keyword kw">self</span>
451
- 163: <span class="ruby-keyword kw">end</span>
452
- </pre>
453
- </div>
454
- </div>
455
- </div>
456
-
457
- <div id="method-M000011" class="method-detail">
458
- <a name="M000011"></a>
459
-
460
- <div class="method-heading">
461
- <a href="#M000011" class="method-signature">
462
- <span class="method-name">next_prime</span><span class="method-args">(seed)</span>
463
- </a>
464
- </div>
465
-
466
- <div class="method-description">
467
- <p>
468
- From gettext-0.12.1/gettext-tools/lib/hash.c
469
- </p>
470
- <p><a class="source-toggle" href="#"
471
- onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
472
- <div class="method-source-code" id="M000011-source">
473
- <pre>
474
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 179</span>
475
- 179: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">next_prime</span>(<span class="ruby-identifier">seed</span>)
476
- 180: <span class="ruby-identifier">seed</span> <span class="ruby-operator">|=</span> <span class="ruby-value">1</span>
477
- 181: <span class="ruby-keyword kw">while</span> (<span class="ruby-operator">!</span> <span class="ruby-identifier">prime?</span>(<span class="ruby-identifier">seed</span>))
478
- 182: <span class="ruby-identifier">seed</span> <span class="ruby-operator">+=</span> <span class="ruby-value">2</span>
479
- 183: <span class="ruby-keyword kw">end</span>
480
- 184: <span class="ruby-identifier">seed</span>
481
- 185: <span class="ruby-keyword kw">end</span>
482
- </pre>
483
- </div>
484
- </div>
485
- </div>
486
-
487
- <div id="method-M000010" class="method-detail">
488
- <a name="M000010"></a>
489
-
490
- <div class="method-heading">
491
- <a href="#M000010" class="method-signature">
492
- <span class="method-name">prime?</span><span class="method-args">(candidate)</span>
493
- </a>
494
- </div>
495
-
496
- <div class="method-description">
497
- <p>
498
- From gettext-0.12.1/gettext-tools/lib/hash.c
499
- </p>
500
- <p><a class="source-toggle" href="#"
501
- onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
502
- <div class="method-source-code" id="M000010-source">
503
- <pre>
504
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 166</span>
505
- 166: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">prime?</span>(<span class="ruby-identifier">candidate</span>)
506
- 167: <span class="ruby-identifier">divn</span> = <span class="ruby-value">3</span>
507
- 168: <span class="ruby-identifier">sq</span> = <span class="ruby-identifier">divn</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">divn</span>
508
- 169:
509
- 170: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">sq</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">candidate</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">candidate</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">divn</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>)
510
- 171: <span class="ruby-identifier">divn</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
511
- 172: <span class="ruby-identifier">sq</span> <span class="ruby-operator">+=</span> <span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">divn</span>
512
- 173: <span class="ruby-identifier">divn</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
513
- 174: <span class="ruby-keyword kw">end</span>
514
- 175: <span class="ruby-identifier">candidate</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">divn</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
515
- 176: <span class="ruby-keyword kw">end</span>
516
- </pre>
517
- </div>
518
- </div>
519
- </div>
520
-
521
- <div id="method-M000015" class="method-detail">
522
- <a name="M000015"></a>
523
-
524
- <div class="method-heading">
525
- <a href="#M000015" class="method-signature">
526
- <span class="method-name">save_to_file</span><span class="method-args">(filename)</span>
527
- </a>
528
- </div>
529
-
530
- <div class="method-description">
531
- <p><a class="source-toggle" href="#"
532
- onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
533
- <div class="method-source-code" id="M000015-source">
534
- <pre>
535
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 285</span>
536
- 285: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save_to_file</span>(<span class="ruby-identifier">filename</span>)
537
- 286: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>, <span class="ruby-value str">'wb'</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">save_to_stream</span>(<span class="ruby-identifier">f</span>)}
538
- 287: <span class="ruby-keyword kw">end</span>
539
- </pre>
540
- </div>
541
- </div>
542
- </div>
543
-
544
- <div id="method-M000013" class="method-detail">
545
- <a name="M000013"></a>
546
-
547
- <div class="method-heading">
548
- <a href="#M000013" class="method-signature">
549
- <span class="method-name">save_to_stream</span><span class="method-args">(io)</span>
550
- </a>
551
- </div>
552
-
553
- <div class="method-description">
554
- <p><a class="source-toggle" href="#"
555
- onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
556
- <div class="method-source-code" id="M000013-source">
557
- <pre>
558
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 208</span>
559
- 208: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">save_to_stream</span>(<span class="ruby-identifier">io</span>)
560
- 209: <span class="ruby-comment cmt">#Save data as little endian format.</span>
561
- 210: <span class="ruby-identifier">header_size</span> = <span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">7</span>
562
- 211: <span class="ruby-identifier">table_size</span> = <span class="ruby-value">4</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">size</span>
563
- 212:
564
- 213: <span class="ruby-identifier">hash_table_size</span> = <span class="ruby-identifier">next_prime</span>((<span class="ruby-identifier">size</span> <span class="ruby-operator">*</span> <span class="ruby-value">4</span>) <span class="ruby-operator">/</span> <span class="ruby-value">3</span>)
565
- 214: <span class="ruby-identifier">hash_table_size</span> = <span class="ruby-value">3</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">2</span>
566
- 215: <span class="ruby-identifier">header</span> = <span class="ruby-constant">Header</span>.<span class="ruby-identifier">new</span>(
567
- 216: <span class="ruby-constant">MAGIC_LITTLE_ENDIAN</span>, <span class="ruby-comment cmt"># magic</span>
568
- 217: <span class="ruby-value">0</span>, <span class="ruby-comment cmt"># revision</span>
569
- 218: <span class="ruby-identifier">size</span>, <span class="ruby-comment cmt"># nstrings</span>
570
- 219: <span class="ruby-identifier">header_size</span>, <span class="ruby-comment cmt"># orig_table_offset</span>
571
- 220: <span class="ruby-identifier">header_size</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">table_size</span>, <span class="ruby-comment cmt"># translated_table_offset</span>
572
- 221: <span class="ruby-identifier">hash_table_size</span>, <span class="ruby-comment cmt"># hash_table_size</span>
573
- 222: <span class="ruby-identifier">header_size</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">table_size</span> <span class="ruby-operator">*</span> <span class="ruby-value">2</span> <span class="ruby-comment cmt"># hash_table_offset</span>
574
- 223: )
575
- 224: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">header</span>.<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'a4V*'</span>))
576
- 225:
577
- 226: <span class="ruby-identifier">ary</span> = <span class="ruby-identifier">to_a</span>
578
- 227: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">sort!</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">b</span>[<span class="ruby-value">0</span>]} <span class="ruby-comment cmt"># sort by original string</span>
579
- 228:
580
- 229: <span class="ruby-identifier">pos</span> = <span class="ruby-identifier">header</span>.<span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">*</span> <span class="ruby-value">4</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">hash_table_offset</span>
581
- 230:
582
- 231: <span class="ruby-identifier">orig_table_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>()
583
- 232: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">item</span>, <span class="ruby-identifier">_</span><span class="ruby-operator">|</span>
584
- 233: <span class="ruby-identifier">orig_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span>)
585
- 234: <span class="ruby-identifier">orig_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">pos</span>)
586
- 235: <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-comment cmt"># +1 is &lt;NUL&gt;</span>
587
- 236: }
588
- 237: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">orig_table_data</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'V*'</span>))
589
- 238:
590
- 239: <span class="ruby-identifier">trans_table_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>()
591
- 240: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">_</span>, <span class="ruby-identifier">item</span><span class="ruby-operator">|</span>
592
- 241: <span class="ruby-identifier">trans_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span>)
593
- 242: <span class="ruby-identifier">trans_table_data</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">pos</span>)
594
- 243: <span class="ruby-identifier">pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">item</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-comment cmt"># +1 is &lt;NUL&gt;</span>
595
- 244: }
596
- 245: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">trans_table_data</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'V*'</span>))
597
- 246:
598
- 247: <span class="ruby-identifier">hash_tab</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">hash_table_size</span>)
599
- 248: <span class="ruby-identifier">j</span> = <span class="ruby-value">0</span>
600
- 249: <span class="ruby-identifier">ary</span>[<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">size</span>].<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">_</span><span class="ruby-operator">|</span>
601
- 250: <span class="ruby-identifier">hash_val</span> = <span class="ruby-identifier">hash_string</span>(<span class="ruby-identifier">key</span>)
602
- 251: <span class="ruby-identifier">idx</span> = <span class="ruby-identifier">hash_val</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">hash_table_size</span>
603
- 252: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_tab</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span>
604
- 253: <span class="ruby-identifier">incr</span> = <span class="ruby-value">1</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">hash_val</span> <span class="ruby-operator">%</span> (<span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>))
605
- 254: <span class="ruby-keyword kw">begin</span>
606
- 255: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">idx</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">incr</span>)
607
- 256: <span class="ruby-identifier">idx</span> <span class="ruby-operator">-=</span> <span class="ruby-identifier">hash_table_size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">incr</span>
608
- 257: <span class="ruby-keyword kw">else</span>
609
- 258: <span class="ruby-identifier">idx</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">incr</span>
610
- 259: <span class="ruby-keyword kw">end</span>
611
- 260: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">until</span> (<span class="ruby-identifier">hash_tab</span>[<span class="ruby-identifier">idx</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>)
612
- 261: <span class="ruby-keyword kw">end</span>
613
- 262: <span class="ruby-identifier">hash_tab</span>[<span class="ruby-identifier">idx</span>] = <span class="ruby-identifier">j</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
614
- 263: <span class="ruby-identifier">j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
615
- 264: }
616
- 265: <span class="ruby-identifier">hash_tab</span>.<span class="ruby-identifier">collect!</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span> <span class="ruby-value">? </span><span class="ruby-identifier">i</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>}
617
- 266:
618
- 267: <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">hash_tab</span>.<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'V*'</span>))
619
- 268:
620
- 269: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">item</span>, <span class="ruby-identifier">_</span><span class="ruby-operator">|</span> <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">item</span>); <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;\0&quot;</span>) }
621
- 270: <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">_</span>, <span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">item</span>); <span class="ruby-identifier">io</span>.<span class="ruby-identifier">write</span>(<span class="ruby-value str">&quot;\0&quot;</span>) }
622
- 271:
623
- 272: <span class="ruby-keyword kw">self</span>
624
- 273: <span class="ruby-keyword kw">end</span>
625
- </pre>
626
- </div>
627
- </div>
628
- </div>
629
-
630
- <div id="method-M000016" class="method-detail">
631
- <a name="M000016"></a>
632
-
633
- <div class="method-heading">
634
- <a href="#M000016" class="method-signature">
635
- <span class="method-name">set_comment</span><span class="method-args">(msgid_or_sym, comment)</span>
636
- </a>
637
- </div>
638
-
639
- <div class="method-description">
640
- <p><a class="source-toggle" href="#"
641
- onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
642
- <div class="method-source-code" id="M000016-source">
643
- <pre>
644
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 289</span>
645
- 289: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_comment</span>(<span class="ruby-identifier">msgid_or_sym</span>, <span class="ruby-identifier">comment</span>)
646
- 290: <span class="ruby-comment cmt">#Do nothing</span>
647
- 291: <span class="ruby-keyword kw">end</span>
648
- </pre>
649
- </div>
650
- </div>
651
- </div>
652
-
653
- <div id="method-M000007" class="method-detail">
654
- <a name="M000007"></a>
655
-
656
- <div class="method-heading">
657
- <a href="#M000007" class="method-signature">
658
- <span class="method-name">update!</span><span class="method-args">()</span>
659
- </a>
660
- </div>
661
-
662
- <div class="method-description">
663
- <p><a class="source-toggle" href="#"
664
- onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
665
- <div class="method-source-code" id="M000007-source">
666
- <pre>
667
- <span class="ruby-comment cmt"># File lib/gettext/mo.rb, line 60</span>
668
- 60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update!</span>
669
- 61: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">FileTest</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-ivar">@filename</span>)
670
- 62: <span class="ruby-identifier">st</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-ivar">@filename</span>)
671
- 63: <span class="ruby-identifier">load</span>(<span class="ruby-ivar">@filename</span>) <span class="ruby-keyword kw">unless</span> (<span class="ruby-ivar">@last_modified</span> <span class="ruby-operator">==</span> [<span class="ruby-identifier">st</span>.<span class="ruby-identifier">ctime</span>, <span class="ruby-identifier">st</span>.<span class="ruby-identifier">mtime</span>])
672
- 64: <span class="ruby-keyword kw">else</span>
673
- 65: <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{@filename} was lost.&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
674
- 66: <span class="ruby-identifier">clear</span>
675
- 67: <span class="ruby-keyword kw">end</span>
676
- 68: <span class="ruby-keyword kw">self</span>
677
- 69: <span class="ruby-keyword kw">end</span>
678
- </pre>
679
- </div>
680
- </div>
681
- </div>
682
-
683
-
684
- </div>
685
-
686
-
687
- </div>
688
-
689
-
690
- <div id="validator-badges">
691
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
692
- </div>
693
-
694
- </body>
695
- </html>