🐴
DeepLのAPIをJetpack Compose(Kotlin)で使う
はじめに
KotlinでDeepL APIを使ってみたので、その備忘録です。
GitHubのところにあるUsageのコード(Java)を、ChatGPTにJetpack Compose(Kotlin)で使えるようにアレンジしてもらいました。
TextFieldに入力したあと、ボタンを押すと、翻訳される簡易的なものです。
動作確認済みです。
Gradle
GitHubにも書いてありますが、Gradleユーザーは、以下の依存関係をプロジェクトのビルド ファイルに追加する必要があります。
build.gradle
implementation "com.deepl.api:deepl-java:1.3.0"
コード
val AUTH_KEY = "YOUR API KEY"
@OptIn(ExperimentalComposeUiApi::class)
@Composable
fun DeepLTranslationExample() {
var translationResult by remember { mutableStateOf<TextResult?>(null) }
val translator =
remember { Translator(AUTH_KEY) }
val coroutineScope = rememberCoroutineScope()
var textToTranslate by remember { mutableStateOf("") }
Column {
TextField(
value = textToTranslate,
onValueChange = { textToTranslate = it },
label = { Text("Enter text to translate") }
)
Button(
onClick = {
coroutineScope.launch {
try {
val result = withContext(Dispatchers.IO) {
translator.translateText(textToTranslate, null, "ja")
}
translationResult = result
} catch (e: Exception) {
// エラーハンドリングを行うことが重要です
}
}
}
) {
Text("Translate")
}
translationResult?.let {
Text(text = "Translation: ${it.text}", style = MaterialTheme.typography.body1)
}
}
}
解説
まず、DeepL APIの登録ページへ行き、APIキーを使えるようにします。
アカウントタブの、DeepL APIで使用する認証キーのところから、APIキーをコピーします。
それを、コードのAUTH_KEYのところにコピーします。
パラメータの詳しい解説は、Translate Textに書いてあります。
参考URL
Discussion