From 1748b263189357c92bd73a2afa9a119e21ce2e90 Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 11 Dec 2025 19:35:05 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8C=8C=ED=8C=8C=EA=B3=A0=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=8B=9C=20=EB=82=B4=EC=9A=A9=EC=9D=84=20=ED=95=A9?= =?UTF-8?q?=EC=B3=90=EC=84=9C=20=ED=95=9C=EB=B2=88=EC=97=90=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=ED=95=98=EC=A7=80=20=EC=95=8A=EA=B3=A0=20=EA=B0=9C?= =?UTF-8?q?=EB=B3=84=EB=A1=9C=20API=EB=A5=BC=20=ED=98=B8=EC=B6=9C=ED=95=B4?= =?UTF-8?q?=EC=84=9C=20=EB=B2=88=EC=97=AD=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../translation/PapagoTranslationService.kt | 39 ++----------------- 1 file changed, 4 insertions(+), 35 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/i18n/translation/PapagoTranslationService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/i18n/translation/PapagoTranslationService.kt index 0d4dfcf..6fb31fe 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/i18n/translation/PapagoTranslationService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/i18n/translation/PapagoTranslationService.kt @@ -20,7 +20,7 @@ class PapagoTranslationService( private val papagoTranslateUrl = "https://papago.apigw.ntruss.com/nmt/v1/translation" fun translate(request: TranslateRequest): TranslateResult { - if (request.texts.isEmpty()) { + if (request.texts.isEmpty() || request.sourceLanguage == request.targetLanguage) { return TranslateResult(emptyList()) } @@ -32,17 +32,14 @@ class PapagoTranslationService( set("X-NCP-APIGW-API-KEY", papagoClientSecret) } - val chunks = chunkTexts(request.texts) val translatedTexts = mutableListOf() - chunks.forEach { chunk -> - val textsInChunkCount = chunk.split(DELIMITER).size - + request.texts.forEach { text -> try { val body = mapOf( "source" to request.sourceLanguage, "target" to request.targetLanguage, - "text" to chunk + "text" to text ) val requestEntity = HttpEntity(body, headers) @@ -58,13 +55,8 @@ class PapagoTranslationService( } val translated = response.body?.message?.result?.translatedText - if (translated.isNullOrBlank()) { - repeat(textsInChunkCount) { translatedTexts.add("") } - } else { - translated.split(DELIMITER).forEach { translatedTexts.add(it) } - } + translatedTexts.add(translated ?: "") } catch (_: Exception) { - repeat(textsInChunkCount) { translatedTexts.add("") } } } @@ -83,26 +75,6 @@ class PapagoTranslationService( } } - private fun chunkTexts(texts: List): List { - if (texts.isEmpty()) return emptyList() - val chunks = mutableListOf() - var startIndex = 0 - while (startIndex < texts.size) { - var endIndex = texts.size - while (endIndex > startIndex) { - val candidate = texts.subList(startIndex, endIndex) - val joined = candidate.joinToString(DELIMITER) - if (joined.length <= MAX_TEXT_LENGTH || endIndex - startIndex == 1) { - chunks.add(joined) - startIndex = endIndex - break - } - endIndex-- - } - } - return chunks - } - companion object { private val SUPPORTED_LANGUAGE_CODES = setOf( "ko", @@ -120,8 +92,5 @@ class PapagoTranslationService( "pt", "it" ) - - private const val DELIMITER = "\u001F\u001E\u001D\u001C\u001F\u001E\u001D\u001C" - private const val MAX_TEXT_LENGTH = 3000 } }