【Python】DeepL APIを利用した翻訳アプリケーション

Pythonで作成するDeepL APIを利用した翻訳アプリケーション
  • URLをコピーしました!

当ブログのコンテンツ・情報について、できる限り正確な情報を提供するように努めておりますが、正確性や安全性を保証するものではありません。
当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますので、予めご了承ください。

近年、AI技術の進化により翻訳サービスがより高度で便利になっています。その中でもDeepLは高精度な翻訳を提供するサービスとして注目されています。DeepL API Freeを使用することで月あたり50万文字まで無料で翻訳することができます。また、1日あたりの制限はありまえん。

本記事では、Pythonを使用してDeepL APIを利用したGUI翻訳アプリケーションを作成する方法を詳しく解説します。Python初心者でも分かりやすいように、GUIの作成からAPIの利用方法、そして実行ファイル化までの手順をステップバイステップで説明します。

目次

この記事で使用するPythonライブラリ

この記事では以下のPythonライブラリを使用します。

ライブラリ用途ライセンス
requestsHTTPリクエストApache License 2.0
pyinstaller実行ファイル(.exe)変換GPL
tkinterGUI要素の作成Python標準モジュール
jsonJSONデータのエンコード及びデコードPython標準モジュール
osファイルやフォルダの操作、環境変数の取得Python標準モジュール

requestsとは

requests(公式サイト)とはHTTPリクエストを簡単に行うためのライブラリで、Web APIと通信する際などに使います。Apache License 2.0で提供されています。

pyinstallerとは

pyinstaller(公式サイト)とはPythonスクリプトを実行ファイル(.exe)に変換するライブラリで、Pythonアプリケーションを実行ファイルで配布する際に利用します。GPLライセンス(一部はApache License 2.0)で提供されていますが、pyinstallerによって生成した実行ファイルにはpyinstallerのGPLライセンスは適応されません。

完成イメージ

今回作成するアプリケーションは、ユーザーがテキストを入力し、翻訳ボタンをクリックすると、日本語に翻訳される機能を持っています。また、翻訳結果をクリップボードにコピーする機能も実装します。

翻訳アプリイメージ

DeepL APIキーの取得と設定

APIキーの取得

まずはDeepL APIを利用するためにAPIキーを取得する必要があります。DeepLのウェブサイトにアクセスしアカウントを作成後、APIキーを発行してください。このAPIキーはアプリケーションがDeepLの翻訳サービスにアクセスするために必要になります。

DeepL APIキーの取得方法
STEP
DeepLアカウントの作成

DeepLアカウントを持っていない方はアカウントを作成してください。アカウントの作成は無料です。

DeepLアカウントの作成
STEP
DeepL API Freeの登録

「DeepL API」タブをクリックし、「無料で登録する」をクリックします。

DeepL API Freeの登録
STEP
メールアドレスの入力

メールアドレスを入力し、「続行」をクリックします。

メールアドレスの入力
STEP
パスワードの設定

パスワードを設定し、「アカウントを作成」をクリックします。

パスワードの設定
STEP
氏名、住所の入力

氏名及び住所を入力します。全て日本語で問題ありません。

氏名、住所の入力
STEP
本人確認(クレジットカード情報登録)

複数アカウント作成防止の為、クレジットカード情報を登録します。Pro版にアップグレードしない限りDeepLから請求が来ることはありません。また、自動的にPro版にアップグレードすることもありません。

カード番号、有効期限、セキュリティコードを入力したら、「続行」をクリックします。

本人確認(クレジットカード情報登録)
STEP
利用規定への同意

利用規定へ同意し、「無料で登録する」をクリックします。

利用規定への同意
STEP
アカウントを管理するをクリック

「アカウントを管理する」をクリックします。

アカウントを管理するをクリック
STEP
APIキーの取得

APIキータブをクリックするとAPIキーが表示されます。APIキーの右のコピーマークをクリックするとAPIキーをコピーすることができます。

APIキーの取得

APIキーの設定

APIキーはセキュリティのためプログラミングコードにハードコード(直接コーディングすること)せず、環境変数にパスを通し設定することをお勧めします。

環境変数へのパスの通し方(Windows11)
STEP
環境変数の設定画面の入り方

タスクバーの検索で「環境変数」と入力し、「システム環境変数の編集」をクリックします。

タスクバーの検索で「環境変数」と入力し、「システム環境変数の編集」をクリックします。
STEP
環境変数をクリック

「環境変数」をクリックします。

環境変数をクリック
STEP
新規をクリック

システムの環境変数の「新規」をクリックします。

システムの環境変数の「新規」をクリック
STEP
DeepL APIキーの登録

変数名に「DEEPL_API_KEY」、変数値にAPIキーの取得で取得したAPIキーを入力します。

DeepL APIキーの登録
STEP
PCの再起動

環境変数を設定した直後は、まだ環境変数にパスが通りません。PCを再起動することでパスが通るようになります。

DeepL APIを利用した翻訳機能の実装

次に、Pythonを使ってGUI翻訳アプリケーションを作成します。ここでは、Tkinterを使用してシンプルなGUIを構築し、DeepL APIを利用して翻訳機能を実装します。

必要なライブラリのインストール

まず、必要なライブラリをインストールします。PowerShellで以下のコマンドを実行して、requestsライブラリをインストールしてください。

pip install requests

Pythonコードの実装

以下に、GUIアプリケーションの基本的なコードを示します。このコードでは、テキストボックス、翻訳ボタン、クリップボードにコピーするボタンを実装しています。

import tkinter as tk
from tkinter import messagebox
import requests
import json
import os

# DeepL APIのエンドポイントとターゲット言語
DEEPL_API_URL = "https://api-free.deepl.com/v2/translate"
TARGET_LANG = "JA"

# 環境変数からAPIキーを取得
DEEPL_API_KEY = os.getenv("DEEPL_API_KEY")

def translate_text():
    if not DEEPL_API_KEY:
        messagebox.showerror("エラー", "APIキーが設定されていません。")
        return

    input_text = text_box_input.get("1.0", "end-1c")
    if not input_text:
        messagebox.showerror("エラー", "翻訳するテキストが入力されていません。")
        return

    params = {
        "auth_key": DEEPL_API_KEY,
        "text": input_text,
        "target_lang": TARGET_LANG
    }

    try:
        response = requests.post(DEEPL_API_URL, data=params)
        response.raise_for_status()
        data = response.json()

        if "translations" in data and len(data["translations"]) > 0:
            translated_text = data["translations"][0]["text"]
            text_box_output.delete("1.0", "end")
            text_box_output.insert("1.0", translated_text)
        else:
            messagebox.showerror("エラー", "翻訳データが見つかりません。")
    except requests.exceptions.RequestException as e:
        messagebox.showerror("エラー", f"APIリクエストエラー: {e}")
    except json.JSONDecodeError as e:
        messagebox.showerror("エラー", f"JSON解析エラー: {e}")

def copy_text():
    output_text = text_box_output.get("1.0", "end-1c")
    if output_text:
        root.clipboard_clear()
        root.clipboard_append(output_text)
        messagebox.showinfo("情報", "テキストがクリップボードにコピーされました。")
    else:
        messagebox.showerror("エラー", "コピーするテキストがありません。")

# GUIの設定
root = tk.Tk()
root.title("DeepL翻訳アプリ")

# 入力用テキストボックス
text_box_input = tk.Text(root, height=25, width=50)
text_box_input.grid(row=0, column=0, padx=10, pady=10)

# 翻訳ボタン
translate_button = tk.Button(root, text="翻訳", command=translate_text)
translate_button.grid(row=1, column=0, padx=10, pady=10)

# 出力用テキストボックス
text_box_output = tk.Text(root, height=25, width=50)
text_box_output.grid(row=0, column=1, padx=10, pady=10)

# コピーボタン
copy_button = tk.Button(root, text="コピー", command=copy_text)
copy_button.grid(row=1, column=1, padx=10, pady=10)

root.mainloop()

アプリケーションの実行ファイル化

Pythonスクリプトを実行ファイル(.exe)に変換するために、PyInstallerを使用します。PyInstallerはPythonコードを単一の実行可能な.exeファイルにパッケージ化するライブラリです。以下の手順で実行ファイルを作成します。

PyInstallerのインストール

まず、PyInstallerをインストールします。PowerShellで以下のコマンドを実行してください。

pip install pyinstaller

実行ファイルの作成

PyInstallerのインストールが完了したら、Pythonファイルのあるフォルダに移動し、以下のコマンドをPowerShellで実行してPythonスクリプトを.exeファイルに変換します。ここでは、Pythonファイル名は「translator.py」としています。

このコマンドを実行すると、Pythonファイルのあるフォルダに「dist」フォルダが生成され、「dist」フォルダ内に「translator.exe」が生成されます。

pyinstaller --onefile --windowed translator.py

`--onefile`オプションはすべてのファイルを1つの実行可能ファイルにまとめ、`--windowed`オプションはコンソールウィンドウを表示しません。

まとめ

Pythonの強力なライブラリを活用することで、簡単に翻訳機能を備えたアプリケーションを作成することができます。また、PyInstallerを使うことで作成したアプリケーションを実行ファイルとして配布することが可能です。

このアプリケーションを利用することで簡単にテキストの翻訳が可能になります。ぜひ、自分のプロジェクトに応用してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
目次