Glosbe 線上多語言字典的包裝。翻譯並取得不同語言之間的單字定義。
查看支援的語言的完整清單。
將此行新增至應用程式的 Gemfile 中:
gem 'glosbe-translate'
然後執行:
$ bundle
或自己安裝:
$ gem install glosbe-translate
所有翻譯和定義to
採用兩個或三個字元版本from
ISO-639 語言代碼。 Glosbe 支援多種語言。
語言物件上的類別方法可讓您進行單次查找:
Glosbe :: Language . translate ( "please" , from : :en , to : :nl )
=> "alstublieft"
取得from
語言中的定義數組:
Glosbe :: Language . define ( "pineapple" , from : :en , to : :fr )
=> [ "fruit" ,
"Large sweet fleshy tropical fruit with a terminal tuft of stiff leaves." ,
"plant" ]
取得to
語言中的定義數組:
Glosbe :: Language . translated_define ( "pie" , from : :en , to : :fr )
=> [ "Plat constitué de viandes, fruits ou autres nourriture cuits dans ou sur une pâte." ,
"Plat, préparation à base de pâte aplatie au rouleau, et d’une garniture salée ou sucrée" ]
上述三種方法中的任何一種都可以使用更簡單的鍵值對from: :to
語言:
Glosbe :: Language . translate ( "fromage" , fr : :en )
=> "cheese"
翻譯和定義是從Language
物件完成的:
language = Glosbe :: Language . new ( from : "eng" , to : "nld" )
接受符號和字串,並且語言代碼將被轉換以匹配 API 的預期。
使用此物件可以使用相同的三種方法來翻譯和定義短語:
language . translate ( "please" )
=> "alstublieft"
language . define ( "pineapple" )
=> [ "fruit" ,
"Large sweet fleshy tropical fruit with a terminal tuft of stiff leaves." ,
"plant" ]
language . translated_define ( "pie" )
=> [ "Plat constitué de viandes, fruits ou autres nourriture cuits dans ou sur une pâte." ,
"Plat, préparation à base de pâte aplatie au rouleau, et d’une garniture salée ou sucrée" ]
進行查找將傳回一個Response
物件:
response = language . lookup ( "coffee" )
回應以非常相似的結構表示從 API 傳回的所有欄位。
HTTP 200 正常嗎?
response.success?
=> true
有回傳結果嗎?
response.found?
=> true
為了方便起見,直接對應回應中的欄位:
response . from
=> "en"
response . to
=> "nl"
response . phrase
=> "coffee"
有時可能會從伺服器傳回一則訊息。這對於速率限制警告特別有趣:
response . message
=> "Too many queries, your IP has been blocked"
便捷方法提取上面重複的相同的三個函數並傳回值:
response . translation
response . define
response . translated_define
與 API 結構相符的原始結果可在此處取得。
所有結果的清單可從回應中獲得:
response . results
=> [ ... ]
每個結果物件都有翻譯的短語(如果存在);
result . phrase
=> "koffie"
然後結果列出了其作者:
result . authors
=> [ ... ]
及其意義:
result . meanings
=> [ ... ]
每個意思都有語言和文字:
meaning . text
=> "Een drank bekomen door infusie van de bonen van de koffieplant in heet water."
meaning . language
=> "nl"
這些欄位都不保證存在。儘管它們將為值欄位傳回字串或nil
,並且始終為集合欄位傳回空數組。
日誌記錄預設為nil
,但可以傳遞任何Logger
物件來調試網路請求。
Glosbe . logger = Logger . new ( "glosbe.log" )
Glosbe . logger = Rails . logger
查看儲存庫後,執行bin/setup
以安裝相依性。然後,執行rake spec
來執行測試。您也可以執行bin/console
以獲得互動式提示,以便您進行實驗。
若要將此 gem 安裝到本機上,請執行bundle exec rake install
。
歡迎在 GitHub 上提交錯誤報告和拉取請求:https://github.com/kmcphillips/glosbe-translate。
來跟我談談你正在做什麼。如果您發現錯誤或考慮改進,我很樂意查看 PR。
該 gem 根據 MIT 授權條款作為開源提供。