Sha256: c14109796989801113733871bfaa0a417c639ed6b415b70f1bae5ec050af3997
Contents?: true
Size: 1.81 KB
Versions: 2
Compression:
Stored size: 1.81 KB
Contents
#!/usr/bin/env ruby require 'light_tr' command = ARGV[0].to_s.strip return LightTr::Commands.command_runner '-config' if LightTr::Config.config_missing? return LightTr::Commands.command_runner(command) if LightTr::Commands.command?(command) raise LightTr::Error, "Please put some text!" if ARGV[0].nil? override_language = /^\-[a-zA-Z]{2}$/.match(command) languages = (override_language ? ARGV[0].strip[1..2] : LightTr::Config.languages).split(',').map(&:strip) full_text = (override_language ? ARGV[1..] : ARGV).join(' ') store = LightTr::Store.new(name: 'translations', file_path: LightTr::Config.config_path) translator = LightTr::Translator.new(LightTr::Config.api_key) gpt = LightTr::ChatGpt.new(LightTr::Config.open_ai_key, LightTr::Config.model) text = full_text.gsub(/[[:space:]]+/, ' ').strip interactive = command == '-i' unless text.empty? if LightTr::Config.provider == 'google' runner = LightTr::Runner.new(store, translator) return puts runner.translate(languages[0], text) if languages.count == 1 languages.each { |target| puts "#{target.upcase}: #{runner.translate(target, text)}" } else puts gpt.translate(text, languages) end end if interactive puts 'Interactive mode! (quit by /q or empty line)' puts "Type any sentence now:\n" loop do text = STDIN.gets.chomp.to_s.gsub(/[[:space:]]+/, ' ').strip break if text == '/q' || text.empty? if LightTr::Config.provider == 'google' runner = LightTr::Runner.new(store, translator) return puts " " + runner.translate(languages[0], text) if languages.count == 1 languages.each { |target| puts " #{target.upcase}: #{runner.translate(target, text)}" } else puts gpt.translate(text, languages) end puts "\n" end end LightTr::Commands.print_footer
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
light_tr-2.0.1 | exe/trans |
light_tr-2.0.0 | exe/trans |