package kr.co.vividnext.sodalive.i18n import com.fasterxml.jackson.annotation.JsonCreator import java.util.Locale enum class Lang(val code: String, val locale: Locale) { KO("ko", Locale.KOREAN), EN("en", Locale.ENGLISH), JA("ja", Locale.JAPANESE); companion object { @JvmStatic @JsonCreator(mode = JsonCreator.Mode.DELEGATING) fun fromCode(value: String): Lang { return values().find { it.code.equals(value.trim(), ignoreCase = true) || it.name.equals(value.trim(), ignoreCase = true) } ?: throw IllegalArgumentException("Unknown language code: $value") } fun fromAcceptLanguage(header: String?): Lang { if (header.isNullOrBlank()) return KO val two = header.trim().lowercase().take(2) // 앱은 2자리만 보내지만 안전하게 처리 return when (two) { "ko" -> KO "en" -> EN "ja" -> JA else -> KO } } } }