PageRenderTime 48ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/gtr/gtr

https://bitbucket.org/kaendfinger/aur-mirror
Ruby | 105 lines | 94 code | 7 blank | 4 comment | 8 complexity | 9f625858f76888cd31c9a123db6f09c3 MD5 | raw file
Possible License(s): LGPL-2.0, Unlicense, AGPL-1.0, BitTorrent-1.0, EPL-1.0, GPL-3.0, BSD-3-Clause, GPL-2.0, MIT, CC-BY-SA-3.0, BSD-2-Clause, MPL-2.0, BSD-3-Clause-No-Nuclear-License-2014, JSON, AGPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0, LGPL-2.1, ISC, CC-BY-3.0, WTFPL, 0BSD, CC0-1.0, LGPL-3.0, Cube, Apache-2.0
  1. #!/usr/bin/ruby
  2. #-- vim:sw=2:et
  3. #++
  4. # Author:: Okasu <oka.sux@gmail.com>
  5. require 'open-uri'
  6. require 'cgi'
  7. from = ARGV[0]
  8. to = ARGV[1]
  9. subj = CGI.escape(ARGV[2..-1].to_s.gsub(/[\[\]",]/, ""))
  10. if from == "-h" || from == "--help" || from == nil
  11. puts <<help
  12. gtr - translates text from given language to given language
  13. SYNOPSIS
  14. gtr [FROM] [TO] [TEXT]
  15. FROM - code of language you want to translate from
  16. TO - code of language you want to translate to
  17. TEXT - your text
  18. POSSIBLE LANGUAGES AND THEIR CODES
  19. auto - Special code - automatic recognition of language
  20. af - Africaans
  21. sq - Albanian
  22. ar - Arabic
  23. hy - Armenian
  24. az - Azerbaijani
  25. eu - Basque
  26. be - Belarusian
  27. bg - Bulgarian
  28. ca - Catalan
  29. zh-CN - Chinese
  30. hr - Croatian
  31. cs - Czech
  32. da - Danish
  33. nl - Dutch
  34. en - English
  35. et - Estonian
  36. tl - Filipino
  37. fi - Finnish
  38. fr - French
  39. gl - Galician
  40. ka - Georgian
  41. de - German
  42. el - Greek
  43. ht - Haitian Creole
  44. iw - Hebrew
  45. hi - Hindi
  46. hu - Hungarian
  47. is - Icelandic
  48. id - Indonesian
  49. ga - Irish
  50. it - Italian
  51. ja - Japanese
  52. ko - Korean
  53. la - Latin
  54. lv - Latvian
  55. lt - Lithuanian
  56. mk - Macedonian
  57. ms - Malay
  58. mt - Maltese
  59. no - Norwegian
  60. fa - Persian
  61. pl - Polish
  62. pt - Portuguese
  63. ro - Romanian
  64. ru - Russian
  65. sr - Serbian
  66. sk - Slovak
  67. sl - Slovenian
  68. es - Spanish
  69. sw - Swahili
  70. sv - Swedish
  71. th - Thai
  72. tr - Turkish
  73. uk - Ukrainian
  74. ur - Urdu
  75. vi - Vietnamese
  76. cy - Welsh
  77. yi - Yiddish
  78. help
  79. exit
  80. end
  81. open("http://translate.google.com/?sl=#{from}&tl=#{to}&oe=UTF-8&text=#{subj}") do |page|
  82. page_content = page.read
  83. rare_word = page_content.scan(/'">.+<\/span><\/s/).to_s.gsub(/['"><\[\]\/\\]/, "")
  84. words = page_content.scan(/<li>noun<div><div>.*<\/div><\/li><\/ol>/).to_s.gsub(/<\/?\w+>/, ">").squeeze(">").each_line(">").to_a.uniq
  85. if words == ["[]"]
  86. puts rare_word[0..-6].gsub("&#39;","'").gsub(/span.*fff/, "")
  87. break
  88. end
  89. words[1..-2].each do |word|
  90. case word
  91. when "noun>"; puts "Nouns:"; next
  92. when "verb>"; puts "\nVerbs:"; next
  93. when "adjective>"; puts "\nAdjectives:"; next
  94. when "adverb>"; puts "\nAdverbs:"; next
  95. end
  96. puts word.chop
  97. end
  98. end