refactor(i18n): 공급자 식별자를 enum으로 통일한다

This commit is contained in:
2026-11-09 19:14:19 +09:00
parent 6093b37747
commit ec890047a5
21 changed files with 228 additions and 148 deletions
@@ -17,6 +17,7 @@ import kr.co.vividnext.sodalive.i18n.LangContext
import kr.co.vividnext.sodalive.i18n.SodaMessageSource
import kr.co.vividnext.sodalive.i18n.translation.DetectedLanguage
import kr.co.vividnext.sodalive.i18n.translation.LanguageDetectionProvider
import kr.co.vividnext.sodalive.i18n.translation.LanguageProviderId
import kr.co.vividnext.sodalive.i18n.translation.LanguageProviderProperties
import kr.co.vividnext.sodalive.i18n.translation.LanguageTranslationTargetType
import kr.co.vividnext.sodalive.i18n.translation.PapagoTranslationService
@@ -730,7 +731,7 @@ class ControlledLanguageDetectionCacheService(
) : LanguageDetectionCacheService(
languageDetectionResultRepository,
listOf(object : LanguageDetectionProvider {
override val providerName = "papago"
override val providerId = LanguageProviderId.PAPAGO
override fun detect(query: String): String? = null
}),
LanguageProviderProperties()
@@ -759,15 +760,15 @@ class ControlledLanguageDetectionCacheService(
queries.add(query)
val concurrentDetection = concurrentDetections[query]
if (concurrentDetection != null) {
return DetectedLanguage(concurrentDetection.detect(), "papago")
return DetectedLanguage(concurrentDetection.detect(), LanguageProviderId.PAPAGO)
}
val blockingDetection = blockingDetections[query]
if (blockingDetection != null) {
blockingDetection.started.countDown()
check(blockingDetection.release.await(5, TimeUnit.SECONDS))
return DetectedLanguage(blockingDetection.detectedLanguage, "papago")
return DetectedLanguage(blockingDetection.detectedLanguage, LanguageProviderId.PAPAGO)
}
return detections[query]?.let { DetectedLanguage(it, "papago") }
return detections[query]?.let { DetectedLanguage(it, LanguageProviderId.PAPAGO) }
}
}
@@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.content
import kr.co.vividnext.sodalive.i18n.translation.DetectedLanguage
import kr.co.vividnext.sodalive.i18n.translation.LanguageDetectionProvider
import kr.co.vividnext.sodalive.i18n.translation.LanguageProviderId
import kr.co.vividnext.sodalive.i18n.translation.LanguageProviderProperties
import kr.co.vividnext.sodalive.i18n.translation.SourceTextNormalizer
import org.junit.jupiter.api.Assertions.assertEquals
@@ -36,7 +37,7 @@ class LanguageDetectionCacheServiceTest {
val detected = service.detectWithCache("Hello world")
assertEquals(DetectedLanguage("en", "papago"), detected)
assertEquals(DetectedLanguage("en", LanguageProviderId.PAPAGO), detected)
assertEquals(0, providerCalls)
Mockito.verify(repository).findBySourceHashAndProviderAndNormalizationVersion(
sourceHash = sourceHash,
@@ -80,7 +81,7 @@ class LanguageDetectionCacheServiceTest {
val detected = service.detectWithCache("Hello world")
assertEquals(DetectedLanguage("ko", "papago"), detected)
assertEquals(DetectedLanguage("ko", LanguageProviderId.PAPAGO), detected)
Mockito.verify(repository).findBySourceHashAndProviderAndNormalizationVersion(
sourceHash = sourceHash,
provider = "papago",
@@ -104,7 +105,7 @@ class LanguageDetectionCacheServiceTest {
private fun service(repository: LanguageDetectionResultRepository, detect: () -> String?): LanguageDetectionCacheService {
val provider = object : LanguageDetectionProvider {
override val providerName = "papago"
override val providerId = LanguageProviderId.PAPAGO
override fun detect(query: String) = detect()
}
return LanguageDetectionCacheService(repository, listOf(provider), LanguageProviderProperties())