LoginSignup
1
0

DeepLのAPI呼んでみた

Last updated at Posted at 2024-04-26

はじめに

弊社運用中のアプリにてDeepLを用いた翻訳機能が必要になったため、その実装方法を備忘録として残しておこうと思います。

公式ドキュメントは以下になります。

実装していく

まずbuild.gradleにライブラリをインストールします。

implementation("com.deepl.api:deepl-java:1.5.0")

次に公式ドキュメントにあるプログラムをそのままコピペします。

import com.deepl.api.Translator

class Example {
    private val translator: Translator

    init {
        val authKey = "f63c02c5-f056-..." // あなたのキーに置き換えてください
        translator = Translator(authKey)
        val result = translator.translateText("Hello, world!", null, "fr")
        println(result.text) // "Bonjour, le monde !"
    }
}

このままでも動きますが、アプリの仕様上今回はシングルトンである必要があるため、修正を加えます。

/**
 * DeepLへのリクエストを処理する
 */
object DeepLServer {
    private lateinit var translator: Translator

    fun init(authKey: String) {
        translator = Translator(authKey)
    }

    @JvmStatic
    fun translate(text: String, sourceLang: String, targetLang: String): String? {
        try {
            // 翻訳した結果を返す
            val result = translator.translateText(text, sourceLang, targetLang)
            return result.text
        } catch (e: Exception) {
            ErrorLoggerUtil.error("DeepLServer : translate : e = $e")
            return null
        }
    }

}

initでインスタンスを作成して、実際に翻訳します

// DEEPL_API_KEYは認証キー
DeepLServer.init(DEEPL_API_KEY)
val TranslatedValue = DeepLServer.translate("こんにちは", "ja", "en-US") ?: throw NullPointerException("null")
println("翻訳後のメッセージ: $translatedValue")

実行するとこんな感じ

翻訳後のメッセージ: Hello

以上で実装完了になります。

翻訳可能な言語については以下ドキュメントを確認してみてください。

最後に

公式ドキュメントの参考プログラムをちょっと変更しただけなので簡単に実装できました笑
気になっている方はぜひ導入してみてください!
ただ、翻訳の数が多いと料金も高くなりますので、気を付けましょう!

1
0
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
1
0