💬

DeepLのAPIをRubyで使ってみた

2022/06/15に公開

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を取得

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