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 } }