요청 스코프 언어 컨텍스트와 인터셉터 추가
- Interceptor에서 Accept-Language 헤더를 파싱 - 요청 단위 LangContext에 언어 정보 저장 - 서비스 및 예외 처리 계층에서 언어 컨텍스트 주입 - enum 및 when 기반 언어 정책을 한 곳으로 통합
This commit is contained in:
22
src/main/kotlin/kr/co/vividnext/sodalive/i18n/Lang.kt
Normal file
22
src/main/kotlin/kr/co/vividnext/sodalive/i18n/Lang.kt
Normal file
@@ -0,0 +1,22 @@
|
||||
package kr.co.vividnext.sodalive.i18n
|
||||
|
||||
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 {
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user