💬
DeepLのAPIをRubyで使ってみた
DeepL APIをrubyで使う
Google Cloudの技術を書こうと思ったら、特に今いいネタがなかったので、最近とても気に入っているDeepLという翻訳サイトのAPIをRubyで使った時のコードを紹介しようと思います。
今までGoogle TranslateのAPIを使っていましたが、不自然な日本語に翻訳される事も多く、最近はもっぱらDeepLを使っています。
1.DeepL for rubyのインストール
ここを参照してDeepL for rubyをインストールします。
gem install deepl-rb
もしくは、Gemfileファイル内に以下を追加します。
gem 'deepl-rb', require: 'deepl'
2. Deeplにユーザー登録(無料)して、auth_keyを取得
3.コードサンプル
deepl-translate.rb
# coding: utf-8
require 'deepl'
def deepl_translation(m_eng_title):
DeepL.configure do |config|
config.auth_key = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xx'
config.host = 'https://api-free.deepl.com' # Default value is 'https://api.deepl.com'
#config.version = 'v1' # Default value is 'v2'
end
english_title = m_eng_title
#puts source_lang
# 文章から不要なワードを削除するパート
text1 = english_title.sub("不要なワード","")
raw_tr_text = text1
# 翻訳実行
translation = DeepL.translate raw_tr_text, nil, 'JA'
# 元の言語
source_lang = translation.detected_source_language
# 翻訳後のテキスト
tr_text = translation.text
#puts tr_text
return source_lang, tr_text
rescue DeepL::Exceptions::RequestError => e
puts 'Oops!'
puts "Code: #{e.response.code}"
puts "Response body: #{e.response.body}"
puts "Request body: #{e.request.body}"
end
#呼び出しパート
title = 'Sample sentence: Please be careful! personal infromation in English'
deepl_results = deepl_translation title
puts "元の言語は" + deepl_results[0] + "です。"
puts "翻訳: " + deepl_results[1]
4. 実装
ファイル「deepl-translate.rb」にサンプルコードをコピー&ペーストし、作業項番2で取得したauth_keyをコード内の所定の位置(config.auth_key = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xx')に貼り付けてください。
5. 実行
# ruby deepl-translate.rb
6. 実行結果
次回予告
APIを使って株価(ETF)を定期的に取得。指定の価格になったらメッセージを飛ばす方法
Discussion