refactor(i18n): 공급자 우선순위를 코드 목록으로 지정한다

This commit is contained in:
2026-11-09 18:22:50 +09:00
parent f3a558f659
commit 9136b0e3bb
8 changed files with 101 additions and 33 deletions
@@ -0,0 +1,6 @@
package kr.co.vividnext.sodalive.i18n.translation
object LanguageProviderOrder {
val detectionOrder = listOf("papago")
val translationOrder = listOf("papago")
}
@@ -1,17 +1,15 @@
package kr.co.vividnext.sodalive.i18n.translation
import org.springframework.beans.factory.annotation.Value
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@Component
class LanguageProviderProperties(
@Value("\${sodalive.language-providers.detection-order:papago}")
detectionOrder: String = "papago",
@Value("\${sodalive.language-providers.translation-order:papago}")
translationOrder: String = "papago"
val detectionOrder: List<String>,
val translationOrder: List<String>
) {
val detectionOrder = detectionOrder.split(',').map { it.trim() }
val translationOrder = translationOrder.split(',').map { it.trim() }
@Autowired
constructor() : this(LanguageProviderOrder.detectionOrder, LanguageProviderOrder.translationOrder)
fun <T> orderedProviders(order: List<String>, providers: List<T>, name: (T) -> String): List<T> {
require(order.isNotEmpty() && order.none { it.isBlank() }) { "language provider order must not be empty" }
-5
View File
@@ -19,11 +19,6 @@ management:
show-details: never
show-components: never
sodalive:
language-providers:
detection-order: ${LANGUAGE_PROVIDERS_DETECTION_ORDER:papago}
translation-order: ${LANGUAGE_PROVIDERS_TRANSLATION_ORDER:papago}
deployment:
artifact-version: ${DEPLOY_ARTIFACT_VERSION:local}
config-commit: ${DEPLOY_CONFIG_COMMIT:0000000000000000000000000000000000000000}