예외 메시지 다국어 처리를 위한 키 기반 구조 도입

This commit is contained in:
2025-12-22 16:39:06 +09:00
parent 6fa0667120
commit ff1b8aa413
5 changed files with 104 additions and 33 deletions

View File

@@ -0,0 +1,49 @@
package kr.co.vividnext.sodalive.i18n
import org.springframework.stereotype.Component
@Component
class SodaMessageSource {
private val messages = mapOf(
"common.error.unknown" to mapOf(
Lang.KO to "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.",
Lang.EN to "An unknown error occurred. Please try again.",
Lang.JA to "不明なエラーが発生しました。もう一度やり直してください。"
),
"common.error.access_denied" to mapOf(
Lang.KO to "권한이 없습니다.",
Lang.EN to "You do not have permission.",
Lang.JA to "権限がありません。"
),
"common.error.bad_credentials" to mapOf(
Lang.KO to "로그인 정보를 확인해주세요.",
Lang.EN to "Please check your login information.",
Lang.JA to "ログイン情報を確認してください。"
),
"common.error.max_upload_size" to mapOf(
Lang.KO to "파일용량은 최대 1024MB까지 저장할 수 있습니다.",
Lang.EN to "The file size can be saved up to 1024MB.",
Lang.JA to "ファイル容量は最大1024MBまで保存できます。"
),
"common.error.already_registered" to mapOf(
Lang.KO to "이미 등록되어 있습니다.",
Lang.EN to "It is already registered.",
Lang.JA to "すでに登録されています。"
),
"common.error.invalid_request" to mapOf(
Lang.KO to "잘못된 요청입니다.",
Lang.EN to "Invalid request.",
Lang.JA to "不正なリクエストです。"
),
"chat.error.room_not_found" to mapOf(
Lang.KO to "채팅방을 찾을 수 없습니다.",
Lang.EN to "Chat room not found.",
Lang.JA to "チャットルームが見つかりません。"
)
)
fun getMessage(key: String, lang: Lang): String? {
val translations = messages[key] ?: return null
return translations[lang] ?: translations[Lang.KO]
}
}