7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【ruby】Docker開発環境へのGoogle Cloud Translation API (v2)導入手順

Last updated at Posted at 2020-03-17

開発環境

ruby '2.6.3'
rails '6.0.2'

Google Cloud Translation APIとは

  • ウェブサイトやアプリを 100 以上の言語に瞬時に翻訳したい場合などに役立つのが Translation API です。

Translation API の料金

導入手順

Cloud Translate API の有効化

サービスアカウントキーの作成

サービスカウント: 「新しいサービスアカウント」を選択
サービスアカウント名: (任意)
役割: オーナー (Project > オーナー)
サービスアカウントID: (任意)
キーのタイプ: JSON

「作成」ボタンを押下すると、jsonファイルがダウンロードされます

サービスアカウントキーの適用,環境変数の設定

  • GOOGLE_APPLICATION_CREDENTIALSという名前の環境変数を作成し、先ほどダウンロードしたjsonファイルのパスを設定します。
ターミナル
vim .zshrc
.zshrc
export GOOGLE_APPLICATION_CREDENTIALS="ダウンロードしたファイルパス"
  • .zshrcの更新。
ターミナル
source ~/.zshrc

これでいつでもローカル環境では参照できるようになります。

保存されているか確認

ターミナル
printenv | grep GOOGLE
=> export GOOGLE_APPLICATION_CREDENTIALS="ダウンロードしたファイルパス"

docker上でGOOGLE_APPLICATION_CREDENTIALSを適応

  1. 開発中のディレクトリにjsonファイルをコピーする。(ファイル名は変更しても問題ありません、今回はkey.jsonという名前で行います。)
  2. .gitignoreに追記する
.gitignore
/key.json
  • DockerfileでDocker内にコピーする
Dockerfile
COPY key.json key.json
ENV GOOGLE_APPLICATION_CREDENTIALS key.json

そしてdocker-compose build

rails編

  1. gem導入
gem 'google-cloud-translate'
  1. 私の場合は外部DBから取ってきた英文を日本語にして保存する感じなので下記を変えればいい感じですが。実際にviewから翻訳したい場合はリンクを参照してください。
seeds.rb
# 最初に作ったプロジェクトのIDです。そのまま書くのはあまりよろしくないです。
project_id    = "Your Google Cloud project ID"
# 実際に訳す文です
text          = "The text you would like to translate"
# 何に訳すかを指定します `"The ISO 639-1 code of language to translate to, eg. 'en'"`
language_code = "en"

require "google/cloud/translate"

translate   = Google::Cloud::Translate.new version: :v2, project_id: project_id
translation = translate.translate text, to: language_code

puts "Translated '#{text}' to '#{translation.text.inspect}'"
puts "Original language: #{translation.from} translated to: #{translation.to}"
私の場合
require "google/cloud/translate"

def translate(synopsis:)
  project_id    = Rails.application.credentials.api[:id]
  text          = synopsis
  language_code = 'ja'

  translate   = Google::Cloud::Translate.new version: :v2, project_id: project_id
  translation = translate.translate text, to: language_code

  return translation.text.inspect
end

最後に

今回は(v2)のGoogle Translation APIということをお忘れなく。
おしまい

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?