更新:修正參數錯誤,通過對ELSIF消除elsif input.include? != false
,並更換elsif input == false
使翻譯能翻譯一個以上的語言
UPDATE2:代碼工作完美,翻譯準確,並給出準確的翻譯短語(詞組)
require 'yaml'
def translate
translations = YAML.load_file 'spanish.yml'
puts "Enter word or phrase to be translated to English, press 'Q' to quit:"
input = gets.chomp
case
when translations[input]
puts "The translation to English is: #{translations[input]}"
when input =~ /q/i
exit
else
puts "Invalid word or phrase redirecting..."
translate
end
end
translate
有沒有一種方法,我可以做翻譯也能夠從俄羅斯翻譯?這裏是俄羅斯YAML文件:
и: and, though
в: in, at
не: not
он: he
на: on, it, at, to
я: I
что: what, that, why
тот: that
быть: to be
с: with and, from, of
а: while, and, but
весь: all, everything
это: that, this, it
как: how, what, as, like
我會做同樣的事情,從西班牙語翻譯,但不是加載西班牙我將加載russian.yaml
否則我將不得不作出另一種定義,如:
def russian_translate
translations = YAML.load_file 'russian.yml'
puts "Please enter the phrase to translate"
etc...
不確定你的意思是'input.include? != false',但是'include?'需要一個參數。 –
@Sergio Tulentsev你介意再詳細一點嗎?我可以做'.include?(false)'把它作爲不存在的返回嗎? – 13aal
@SergioTulentsev這應該是一個新的運營語法,將在Ruby3介紹:?!'=',意思是「不知道這是否等於」 :) – mudasobwa