관리자 채팅 메시지 다국어 처리

This commit is contained in:
2025-12-22 22:30:05 +09:00
parent 14d0ae9851
commit 280b21c3cb
10 changed files with 231 additions and 50 deletions

View File

@@ -150,6 +150,159 @@ class SodaMessageSource {
)
)
private val adminChatBannerMessages = mapOf(
"admin.chat.banner.image_save_failed" to mapOf(
Lang.KO to "이미지 저장에 실패했습니다.",
Lang.EN to "Failed to save image.",
Lang.JA to "画像の保存に失敗しました。"
),
"admin.chat.banner.delete_success" to mapOf(
Lang.KO to "배너가 성공적으로 삭제되었습니다.",
Lang.EN to "Banner deleted successfully.",
Lang.JA to "バナーが削除されました。"
),
"admin.chat.banner.reorder_success" to mapOf(
Lang.KO to "배너 정렬 순서가 성공적으로 변경되었습니다.",
Lang.EN to "Banner order updated successfully.",
Lang.JA to "バナーの並び順が変更されました。"
)
)
private val adminChatCalculateMessages = mapOf(
"admin.chat.calculate.end_date_max_today" to mapOf(
Lang.KO to "끝 날짜는 오늘 날짜까지만 입력 가능합니다.",
Lang.EN to "End date can be at most today.",
Lang.JA to "終了日は本日まで指定できます。"
),
"admin.chat.calculate.start_date_after_end" to mapOf(
Lang.KO to "시작 날짜는 끝 날짜보다 이후일 수 없습니다.",
Lang.EN to "Start date cannot be after end date.",
Lang.JA to "開始日は終了日より後にできません。"
),
"admin.chat.calculate.max_period_6_months" to mapOf(
Lang.KO to "조회 가능 기간은 최대 6개월입니다.",
Lang.EN to "Maximum query period is 6 months.",
Lang.JA to "照会期間は最大6ヶ月です。"
)
)
private val adminChatCharacterMessages = mapOf(
"admin.chat.character.duplicate_name" to mapOf(
Lang.KO to "동일한 이름은 등록이 불가능합니다.",
Lang.EN to "A character with the same name already exists.",
Lang.JA to "同じ名前は登録できません。"
),
"admin.chat.character.register_failed_retry" to mapOf(
Lang.KO to "등록에 실패했습니다. 다시 시도해 주세요.",
Lang.EN to "Registration failed. Please try again.",
Lang.JA to "登録に失敗しました。もう一度お試しください。"
),
"admin.chat.character.register_failed_no_id" to mapOf(
Lang.KO to "등록에 실패했습니다. 응답에 ID가 없습니다.",
Lang.EN to "Registration failed. No ID in response.",
Lang.JA to "登録に失敗しました。応答にIDがありません。"
),
"admin.chat.character.image_save_failed" to mapOf(
Lang.KO to "이미지 저장에 실패했습니다.",
Lang.EN to "Failed to save image.",
Lang.JA to "画像の保存に失敗しました。"
),
"admin.chat.character.no_changes" to mapOf(
Lang.KO to "변경된 데이터가 없습니다.",
Lang.EN to "No changes detected.",
Lang.JA to "変更されたデータがありません。"
),
"admin.chat.character.not_found" to mapOf(
Lang.KO to "해당 캐릭터를 찾을 수 없습니다.",
Lang.EN to "Character not found.",
Lang.JA to "該当キャラクターが見つかりません。"
),
"admin.chat.character.update_failed_retry" to mapOf(
Lang.KO to "수정에 실패했습니다. 다시 시도해 주세요.",
Lang.EN to "Update failed. Please try again.",
Lang.JA to "更新に失敗しました。もう一度お試しください。"
)
)
private val adminChatCurationMessages = mapOf(
"admin.chat.curation.not_found" to mapOf(
Lang.KO to "큐레이션을 찾을 수 없습니다.",
Lang.EN to "Curation not found.",
Lang.JA to "キュレーションが見つかりません。"
),
"admin.chat.curation.character_ids_empty" to mapOf(
Lang.KO to "등록할 캐릭터 ID 리스트가 비어있습니다",
Lang.EN to "Character ID list to register is empty.",
Lang.JA to "登録するキャラクターIDリストが空です。"
),
"admin.chat.curation.inactive" to mapOf(
Lang.KO to "비활성화된 큐레이션입니다.",
Lang.EN to "Curation is inactive.",
Lang.JA to "無効化されたキュレーションです。"
),
"admin.chat.curation.invalid_character_ids" to mapOf(
Lang.KO to "유효한 캐릭터 ID가 없습니다",
Lang.EN to "No valid character IDs.",
Lang.JA to "有効なキャラクターIDがありません。"
),
"admin.chat.curation.mapping_not_found" to mapOf(
Lang.KO to "매핑을 찾을 수 없습니다.",
Lang.EN to "Mapping not found.",
Lang.JA to "マッピングが見つかりません。"
),
"admin.chat.curation.character_not_in_curation" to mapOf(
Lang.KO to "큐레이션에 포함되지 않은 캐릭터입니다.",
Lang.EN to "Character not included in this curation.",
Lang.JA to "このキュレーションに含まれていないキャラクターです。"
)
)
private val adminChatCharacterImageMessages = mapOf(
"admin.chat.character.image_deleted" to mapOf(
Lang.KO to "이미지가 삭제되었습니다.",
Lang.EN to "Image deleted.",
Lang.JA to "画像が削除されました。"
),
"admin.chat.character.character_id_required" to mapOf(
Lang.KO to "characterId는 필수입니다",
Lang.EN to "characterId is required.",
Lang.JA to "characterIdは必須です。"
),
"admin.chat.character.order_updated" to mapOf(
Lang.KO to "정렬 순서가 변경되었습니다.",
Lang.EN to "Order updated.",
Lang.JA to "並び順が変更されました。"
),
"admin.chat.character.image_format_invalid" to mapOf(
Lang.KO to "이미지 포맷을 인식할 수 없습니다.",
Lang.EN to "Unsupported image format.",
Lang.JA to "画像形式を認識できません。"
),
"admin.chat.character.blur_image_save_failed" to mapOf(
Lang.KO to "블러 이미지 저장에 실패했습니다.",
Lang.EN to "Failed to save blurred image.",
Lang.JA to "ぼかし画像の保存に失敗しました。"
)
)
private val adminChatOriginalWorkMessages = mapOf(
"admin.chat.original.image_save_failed" to mapOf(
Lang.KO to "이미지 저장에 실패했습니다.",
Lang.EN to "Failed to save image.",
Lang.JA to "画像の保存に失敗しました。"
),
"admin.chat.original.duplicate_title" to mapOf(
Lang.KO to "동일한 제목의 원작이 이미 존재합니다.",
Lang.EN to "An original work with the same title already exists.",
Lang.JA to "同じタイトルの原作が既に存在します。"
),
"admin.chat.original.not_found" to mapOf(
Lang.KO to "해당 원작을 찾을 수 없습니다.",
Lang.EN to "Original work not found.",
Lang.JA to "該当の原作が見つかりません。"
)
)
fun getMessage(key: String, lang: Lang): String? {
val messageGroups = listOf(
commonMessages,
@@ -158,7 +311,13 @@ class SodaMessageSource {
auditionNotificationMessages,
auditionRoleMessages,
settlementRatioMessages,
adminCanMessages
adminCanMessages,
adminChatBannerMessages,
adminChatCalculateMessages,
adminChatCharacterMessages,
adminChatCurationMessages,
adminChatCharacterImageMessages,
adminChatOriginalWorkMessages
)
for (messages in messageGroups) {
val translations = messages[key] ?: continue