788 lines
37 KiB
Kotlin
788 lines
37 KiB
Kotlin
package kr.co.vividnext.sodalive.i18n
|
||
|
||
import org.springframework.stereotype.Component
|
||
|
||
@Component
|
||
class SodaMessageSource {
|
||
private val commonMessages = 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 "チャットルームが見つかりません。"
|
||
)
|
||
)
|
||
|
||
private val auditionMessages = mapOf(
|
||
"admin.audition.invalid_request_retry" to mapOf(
|
||
Lang.KO to "잘못된 요청입니다.\n다시 시도해 주세요.",
|
||
Lang.EN to "Invalid request. Please try again.",
|
||
Lang.JA to "不正なリクエストです。もう一度やり直してください。"
|
||
),
|
||
"admin.audition.status_cannot_revert" to mapOf(
|
||
Lang.KO to "모집전 상태로 변경할 수 없습니다.",
|
||
Lang.EN to "Cannot change to not-started status.",
|
||
Lang.JA to "募集前の状態に変更できません。"
|
||
)
|
||
)
|
||
|
||
private val auditionRequestMessages = mapOf(
|
||
"admin.audition.title_required" to mapOf(
|
||
Lang.KO to "오디션 제목을 입력하세요",
|
||
Lang.EN to "Please enter an audition title.",
|
||
Lang.JA to "オーディションのタイトルを入力してください。"
|
||
),
|
||
"admin.audition.information_min_length" to mapOf(
|
||
Lang.KO to "오디션 정보는 최소 10글자 입니다",
|
||
Lang.EN to "Audition information must be at least 10 characters.",
|
||
Lang.JA to "オーディション情報は最低10文字です。"
|
||
)
|
||
)
|
||
|
||
private val auditionNotificationMessages = mapOf(
|
||
"admin.audition.fcm.title.new" to mapOf(
|
||
Lang.KO to "새로운 오디션 등록!",
|
||
Lang.EN to "New audition posted!",
|
||
Lang.JA to "新しいオーディション登録!"
|
||
),
|
||
"admin.audition.fcm.message.new" to mapOf(
|
||
Lang.KO to "'%s'이 등록되었습니다. 지금 바로 오리지널 오디오 드라마 오디션에 지원해보세요!",
|
||
Lang.EN to "'%s' is now available. Apply for the original audio drama audition now!",
|
||
Lang.JA to "「%s」が登録されました。今すぐオリジナルオーディオドラマのオーディションに応募してみてください!"
|
||
)
|
||
)
|
||
|
||
private val auditionRoleMessages = mapOf(
|
||
"admin.audition.role.name_min_length" to mapOf(
|
||
Lang.KO to "배역 이름은 최소 2글자 입니다",
|
||
Lang.EN to "Role name must be at least 2 characters.",
|
||
Lang.JA to "役名は最低2文字です。"
|
||
),
|
||
"admin.audition.role.information_min_length" to mapOf(
|
||
Lang.KO to "오디션 배역 정보는 최소 10글자 입니다",
|
||
Lang.EN to "Audition role information must be at least 10 characters.",
|
||
Lang.JA to "オーディション役の情報は最低10文字です。"
|
||
),
|
||
"admin.audition.role.audition_required" to mapOf(
|
||
Lang.KO to "캐릭터가 등록될 오디션을 선택하세요",
|
||
Lang.EN to "Please select an audition for the character.",
|
||
Lang.JA to "キャラクターが登録されるオーディションを選択してください。"
|
||
),
|
||
"admin.audition.role.name_required" to mapOf(
|
||
Lang.KO to "캐릭터명을 입력하세요",
|
||
Lang.EN to "Please enter a character name.",
|
||
Lang.JA to "キャラクター名を入力してください。"
|
||
),
|
||
"admin.audition.role.script_url_required" to mapOf(
|
||
Lang.KO to "오디션 대본 URL을 입력하세요",
|
||
Lang.EN to "Please enter the audition script URL.",
|
||
Lang.JA to "オーディション台本のURLを入力してください。"
|
||
),
|
||
"admin.audition.role.information_required" to mapOf(
|
||
Lang.KO to "오디션 캐릭터 정보는 최소 10글자 입니다",
|
||
Lang.EN to "Audition character information must be at least 10 characters.",
|
||
Lang.JA to "オーディションキャラクター情報は最低10文字です。"
|
||
)
|
||
)
|
||
|
||
private val settlementRatioMessages = mapOf(
|
||
"admin.settlement_ratio.invalid_creator" to mapOf(
|
||
Lang.KO to "잘못된 크리에이터 입니다.",
|
||
Lang.EN to "Invalid creator.",
|
||
Lang.JA to "不正なクリエイターです。"
|
||
),
|
||
"admin.settlement_ratio.not_found" to mapOf(
|
||
Lang.KO to "해당 크리에이터의 정산 비율 설정이 없습니다.",
|
||
Lang.EN to "Settlement ratio settings not found for this creator.",
|
||
Lang.JA to "該当クリエイターの精算比率設定がありません。"
|
||
)
|
||
)
|
||
|
||
private val adminCanMessages = mapOf(
|
||
"admin.can.min_amount" to mapOf(
|
||
Lang.KO to "1 캔 이상 입력하세요.",
|
||
Lang.EN to "Please enter at least 1 can.",
|
||
Lang.JA to "1缶以上入力してください。"
|
||
),
|
||
"admin.can.method_required" to mapOf(
|
||
Lang.KO to "기록내용을 입력하세요.",
|
||
Lang.EN to "Please enter the record content.",
|
||
Lang.JA to "記録内容を入力してください。"
|
||
),
|
||
"admin.can.member_ids_required" to mapOf(
|
||
Lang.KO to "회원번호를 입력하세요.",
|
||
Lang.EN to "Please enter member IDs.",
|
||
Lang.JA to "会員番号を入力してください。"
|
||
),
|
||
"admin.can.invalid_member_ids" to mapOf(
|
||
Lang.KO to "잘못된 회원번호 입니다.",
|
||
Lang.EN to "Invalid member IDs.",
|
||
Lang.JA to "不正な会員番号です。"
|
||
)
|
||
)
|
||
|
||
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 "該当の原作が見つかりません。"
|
||
)
|
||
)
|
||
|
||
private val adminContentMessages = mapOf(
|
||
"admin.content.search_word_min_length" to mapOf(
|
||
Lang.KO to "2글자 이상 입력하세요.",
|
||
Lang.EN to "Please enter at least 2 characters.",
|
||
Lang.JA to "2文字以上入力してください。"
|
||
),
|
||
"admin.content.not_found" to mapOf(
|
||
Lang.KO to "없는 콘텐츠 입니다.",
|
||
Lang.EN to "Content not found.",
|
||
Lang.JA to "該当のコンテンツが見つかりません。"
|
||
)
|
||
)
|
||
|
||
private val adminContentBannerMessages = mapOf(
|
||
"admin.content.banner.creator_required" to mapOf(
|
||
Lang.KO to "크리에이터를 선택하세요.",
|
||
Lang.EN to "Please select a creator.",
|
||
Lang.JA to "クリエイターを選択してください。"
|
||
),
|
||
"admin.content.banner.series_required" to mapOf(
|
||
Lang.KO to "시리즈를 선택하세요.",
|
||
Lang.EN to "Please select a series.",
|
||
Lang.JA to "シリーズを選択してください。"
|
||
),
|
||
"admin.content.banner.link_required" to mapOf(
|
||
Lang.KO to "링크 url을 입력하세요.",
|
||
Lang.EN to "Please enter a link URL.",
|
||
Lang.JA to "リンクURLを入力してください。"
|
||
),
|
||
"admin.content.banner.event_required" to mapOf(
|
||
Lang.KO to "이벤트를 선택하세요.",
|
||
Lang.EN to "Please select an event.",
|
||
Lang.JA to "イベントを選択してください。"
|
||
)
|
||
)
|
||
|
||
private val adminHashTagCurationMessages = mapOf(
|
||
"admin.content.hash_tag.already_registered" to mapOf(
|
||
Lang.KO to "이미 등록된 태그 입니다.",
|
||
Lang.EN to "Tag already registered.",
|
||
Lang.JA to "既に登録されたタグです。"
|
||
)
|
||
)
|
||
|
||
private val adminContentSeriesMessages = mapOf(
|
||
"admin.content.series.random_days_conflict" to mapOf(
|
||
Lang.KO to "랜덤과 연재요일 동시에 선택할 수 없습니다.",
|
||
Lang.EN to "Random and published days cannot be selected together.",
|
||
Lang.JA to "ランダムと連載曜日を同時に選択できません。"
|
||
)
|
||
)
|
||
|
||
private val adminContentSeriesBannerMessages = mapOf(
|
||
"admin.content.series.banner.delete_success" to mapOf(
|
||
Lang.KO to "배너가 성공적으로 삭제되었습니다.",
|
||
Lang.EN to "Banner deleted successfully.",
|
||
Lang.JA to "バナーが削除されました。"
|
||
),
|
||
"admin.content.series.banner.reorder_success" to mapOf(
|
||
Lang.KO to "배너 정렬 순서가 성공적으로 변경되었습니다.",
|
||
Lang.EN to "Banner order updated successfully.",
|
||
Lang.JA to "バナーの並び順が変更されました。"
|
||
),
|
||
"admin.content.series.banner.image_save_failed" to mapOf(
|
||
Lang.KO to "이미지 저장에 실패했습니다.",
|
||
Lang.EN to "Failed to save image.",
|
||
Lang.JA to "画像の保存に失敗しました。"
|
||
)
|
||
)
|
||
|
||
private val adminContentSeriesGenreMessages = mapOf(
|
||
"admin.content.series.genre.no_changes" to mapOf(
|
||
Lang.KO to "변경사항이 없습니다.",
|
||
Lang.EN to "No changes to update.",
|
||
Lang.JA to "変更事項がありません。"
|
||
)
|
||
)
|
||
|
||
private val adminContentThemeMessages = mapOf(
|
||
"admin.content.theme.already_registered" to mapOf(
|
||
Lang.KO to "이미 등록된 테마 입니다.",
|
||
Lang.EN to "Theme already registered.",
|
||
Lang.JA to "既に登録されたテーマです。"
|
||
)
|
||
)
|
||
|
||
private val messageMessages = mapOf(
|
||
"message.error.recipient_not_found" to mapOf(
|
||
Lang.KO to "받는 사람이 없습니다.",
|
||
Lang.EN to "Recipient not found.",
|
||
Lang.JA to "受信者が見つかりません。"
|
||
),
|
||
"message.error.recipient_inactive" to mapOf(
|
||
Lang.KO to "탈퇴한 유저에게는 메시지를 보내실 수 없습니다.",
|
||
Lang.EN to "You cannot send messages to a deactivated user.",
|
||
Lang.JA to "退会したユーザーにはメッセージを送れません。"
|
||
),
|
||
"message.error.blocked_by_recipient" to mapOf(
|
||
Lang.KO to "%s님의 요청으로 메시지를 보낼 수 없습니다.",
|
||
Lang.EN to "You cannot send messages at %s's request.",
|
||
Lang.JA to "%sの要請によりメッセージを送信できません。"
|
||
),
|
||
"message.fcm.title" to mapOf(
|
||
Lang.KO to "메시지",
|
||
Lang.EN to "Message",
|
||
Lang.JA to "メッセージ"
|
||
),
|
||
"message.fcm.text_received" to mapOf(
|
||
Lang.KO to "%s님으로 부터 문자메시지가 도착했습니다.",
|
||
Lang.EN to "You have received a text message from %s.",
|
||
Lang.JA to "%sからテキストメッセージが届きました。"
|
||
),
|
||
"message.fcm.voice_received" to mapOf(
|
||
Lang.KO to "%s님으로 부터 음성메시지가 도착했습니다.",
|
||
Lang.EN to "You have received a voice message from %s.",
|
||
Lang.JA to "%sからボイスメッセージが届きました。"
|
||
),
|
||
"message.error.not_found_retry" to mapOf(
|
||
Lang.KO to "해당하는 메시지가 없습니다.\n다시 확인해 주시기 바랍니다.",
|
||
Lang.EN to "Message not found. Please check again.",
|
||
Lang.JA to "該当するメッセージがありません。\nもう一度ご確認ください。"
|
||
),
|
||
"message.error.already_kept" to mapOf(
|
||
Lang.KO to "이미 보관된 메시지 입니다.",
|
||
Lang.EN to "Message is already kept.",
|
||
Lang.JA to "すでに保管されたメッセージです。"
|
||
)
|
||
)
|
||
|
||
private val noticeMessages = mapOf(
|
||
"notice.error.title_required" to mapOf(
|
||
Lang.KO to "제목을 입력하세요.",
|
||
Lang.EN to "Please enter a title.",
|
||
Lang.JA to "タイトルを入力してください。"
|
||
),
|
||
"notice.error.content_required" to mapOf(
|
||
Lang.KO to "내용을 입력하세요.",
|
||
Lang.EN to "Please enter content.",
|
||
Lang.JA to "内容を入力してください。"
|
||
),
|
||
"notice.error.update_required" to mapOf(
|
||
Lang.KO to "수정할 내용을 입력하세요.",
|
||
Lang.EN to "Please enter content to update.",
|
||
Lang.JA to "修正する内容を入力してください。"
|
||
)
|
||
)
|
||
|
||
private val reportMessages = mapOf(
|
||
"report.received" to mapOf(
|
||
Lang.KO to "신고가 접수되었습니다.",
|
||
Lang.EN to "Your report has been received.",
|
||
Lang.JA to "通報が受け付けられました。"
|
||
)
|
||
)
|
||
|
||
private val imageValidationMessages = mapOf(
|
||
"image.error.only_image_allowed" to mapOf(
|
||
Lang.KO to "이미지 파일만 업로드할 수 있습니다.",
|
||
Lang.EN to "Only image files can be uploaded.",
|
||
Lang.JA to "画像ファイルのみアップロードできます。"
|
||
),
|
||
"image.error.gif_paid_only" to mapOf(
|
||
Lang.KO to "GIF 파일은 유료 게시물만 업로드 할 수 있습니다.",
|
||
Lang.EN to "GIF files can be uploaded only for paid posts.",
|
||
Lang.JA to "GIFファイルは有料投稿のみアップロードできます。"
|
||
)
|
||
)
|
||
|
||
private val memberAuthMessages = mapOf(
|
||
"member.auth.blocked_policy" to mapOf(
|
||
Lang.KO to "운영정책을 위반하여 이용을 제한합니다.",
|
||
Lang.EN to "Your access is restricted due to policy violations.",
|
||
Lang.JA to "運営ポリシー違反のため利用が制限されています。"
|
||
),
|
||
"member.auth.already_verified" to mapOf(
|
||
Lang.KO to "이미 인증된 계정입니다.",
|
||
Lang.EN to "This account is already verified.",
|
||
Lang.JA to "既に認証済みのアカウントです。"
|
||
),
|
||
"member.auth.certificate_invalid_retry" to mapOf(
|
||
Lang.KO to "인증정보에 오류가 있습니다.\n다시 시도해 주세요.",
|
||
Lang.EN to "There is an error with the verification information.\nPlease try again.",
|
||
Lang.JA to "認証情報にエラーがあります。\nもう一度お試しください。"
|
||
),
|
||
"member.auth.max_accounts" to mapOf(
|
||
Lang.KO to "이미 본인인증한 계정 %s개 이용중입니다.\n" +
|
||
"소다라이브의 본인인증은 최대 3개의 계정만 이용할 수 있습니다.",
|
||
Lang.EN to "You are already using %s verified account(s).\n" +
|
||
"Identity verification is limited to up to 3 accounts on Sodalive.",
|
||
Lang.JA to "本人認証済みのアカウントを%s件利用中です。\n" +
|
||
"ソダライブの本人認証は最大3アカウントまでです。"
|
||
),
|
||
"member.auth.age_limit" to mapOf(
|
||
Lang.KO to "%s년 1월 1일 이전 출생자만 본인인증이 가능합니다.",
|
||
Lang.EN to "Only users born on or before January 1, %s can be verified.",
|
||
Lang.JA to "%s年1月1日以前に生まれた方のみ本人認証が可能です。"
|
||
)
|
||
)
|
||
|
||
private val memberMessages = mapOf(
|
||
"member.signup.failed_retry" to mapOf(
|
||
Lang.KO to "회원가입을 하지 못했습니다.\n다시 시도해 주세요.",
|
||
Lang.EN to "Sign up failed.\nPlease try again.",
|
||
Lang.JA to "会員登録に失敗しました。\nもう一度お試しください。"
|
||
),
|
||
"member.signup.success" to mapOf(
|
||
Lang.KO to "회원가입을 축하드립니다.",
|
||
Lang.EN to "Congratulations on your sign up.",
|
||
Lang.JA to "ご登録おめでとうございます。"
|
||
),
|
||
"member.login.success" to mapOf(
|
||
Lang.KO to "로그인 되었습니다.",
|
||
Lang.EN to "You are logged in.",
|
||
Lang.JA to "ログインしました。"
|
||
),
|
||
"member.signout.success" to mapOf(
|
||
Lang.KO to "정상적으로 탈퇴 처리되었습니다.",
|
||
Lang.EN to "Your account has been successfully deleted.",
|
||
Lang.JA to "正常に退会処理されました。"
|
||
)
|
||
)
|
||
|
||
private val memberValidationMessages = mapOf(
|
||
"member.validation.invalid_request_retry" to mapOf(
|
||
Lang.KO to "잘못된 요청입니다\n앱 종료 후 다시 시도해 주세요.",
|
||
Lang.EN to "Invalid request.\nPlease close the app and try again.",
|
||
Lang.JA to "不正なリクエストです。\nアプリを終了して再度お試しください。"
|
||
),
|
||
"member.validation.agree_required" to mapOf(
|
||
Lang.KO to "약관에 동의하셔야 회원가입이 가능합니다.",
|
||
Lang.EN to "You must agree to the terms to sign up.",
|
||
Lang.JA to "会員登録には規約への同意が必要です。"
|
||
),
|
||
"member.validation.user_not_found" to mapOf(
|
||
Lang.KO to "없는 사용자 입니다.",
|
||
Lang.EN to "User not found.",
|
||
Lang.JA to "ユーザーが見つかりません。"
|
||
),
|
||
"member.validation.account_not_found" to mapOf(
|
||
Lang.KO to "없는 계정입니다.",
|
||
Lang.EN to "Account not found.",
|
||
Lang.JA to "アカウントが見つかりません。"
|
||
),
|
||
"member.validation.inactive_account" to mapOf(
|
||
Lang.KO to "탈퇴한 계정입니다.\n고객센터로 문의해 주시기 바랍니다.",
|
||
Lang.EN to "This account has been deleted.\nPlease contact customer support.",
|
||
Lang.JA to "退会したアカウントです。\nカスタマーサポートへお問い合わせください。"
|
||
),
|
||
"member.validation.creator_not_found" to mapOf(
|
||
Lang.KO to "크리에이터 정보를 확인해주세요.",
|
||
Lang.EN to "Please check the creator information.",
|
||
Lang.JA to "クリエイター情報を確認してください。"
|
||
),
|
||
"member.validation.nickname_min_length" to mapOf(
|
||
Lang.KO to "두 글자 이상 입력 하셔야 합니다.",
|
||
Lang.EN to "Please enter at least 2 characters.",
|
||
Lang.JA to "2文字以上入力してください。"
|
||
),
|
||
"member.validation.password_mismatch" to mapOf(
|
||
Lang.KO to "비밀번호가 일치하지 않습니다.",
|
||
Lang.EN to "Password does not match.",
|
||
Lang.JA to "パスワードが一致しません。"
|
||
),
|
||
"member.validation.signout_reason_required" to mapOf(
|
||
Lang.KO to "탈퇴하려는 이유를 입력해 주세요.",
|
||
Lang.EN to "Please enter a reason for deleting your account.",
|
||
Lang.JA to "退会理由を入力してください。"
|
||
),
|
||
"member.validation.email_available" to mapOf(
|
||
Lang.KO to "사용 가능한 이메일 입니다.",
|
||
Lang.EN to "This email is available.",
|
||
Lang.JA to "使用可能なメールアドレスです。"
|
||
),
|
||
"member.validation.nickname_available" to mapOf(
|
||
Lang.KO to "사용 가능한 닉네임 입니다.",
|
||
Lang.EN to "This nickname is available.",
|
||
Lang.JA to "使用可能なニックネームです。"
|
||
),
|
||
"member.validation.email_in_use" to mapOf(
|
||
Lang.KO to "이미 사용중인 이메일 입니다.",
|
||
Lang.EN to "This email is already in use.",
|
||
Lang.JA to "このメールアドレスは既に使用されています。"
|
||
),
|
||
"member.validation.nickname_in_use" to mapOf(
|
||
Lang.KO to "이미 사용중인 닉네임 입니다.",
|
||
Lang.EN to "This nickname is already in use.",
|
||
Lang.JA to "このニックネームは既に使用されています。"
|
||
),
|
||
"member.validation.email_registered_with_provider" to mapOf(
|
||
Lang.KO to "해당 이메일은 %s 계정으로 가입되어 있습니다. 해당 소셜 로그인을 사용해 주세요.",
|
||
Lang.EN to "This email is registered with a %s account. Please use that social login.",
|
||
Lang.JA to "このメールアドレスは%sアカウントで登録されています。該当のソーシャルログインをご利用ください。"
|
||
),
|
||
"member.validation.email_registered_with_provider_already" to mapOf(
|
||
Lang.KO to "해당 이메일은 %s 계정으로 이미 가입되어 있습니다. 해당 소셜 로그인을 사용해 주세요.",
|
||
Lang.EN to "This email is already registered with a %s account. Please use that social login.",
|
||
Lang.JA to "このメールアドレスは既に%sアカウントで登録されています。該当のソーシャルログインをご利用ください。"
|
||
),
|
||
"member.validation.unregistered_account_retry" to mapOf(
|
||
Lang.KO to "등록되지 않은 계정입니다.\n확인 후 다시 시도해 주세요.",
|
||
Lang.EN to "This account is not registered.\nPlease check and try again.",
|
||
Lang.JA to "登録されていないアカウントです。\n確認してもう一度お試しください。"
|
||
)
|
||
)
|
||
|
||
private val memberSocialMessages = mapOf(
|
||
"member.social.google_login_failed" to mapOf(
|
||
Lang.KO to "구글 로그인을 하지 못했습니다. 다시 시도해 주세요",
|
||
Lang.EN to "Google login failed. Please try again.",
|
||
Lang.JA to "Googleログインに失敗しました。もう一度お試しください。"
|
||
),
|
||
"member.social.kakao_login_failed" to mapOf(
|
||
Lang.KO to "카카오 로그인을 하지 못했습니다. 다시 시도해 주세요",
|
||
Lang.EN to "Kakao login failed. Please try again.",
|
||
Lang.JA to "カカオログインに失敗しました。もう一度お試しください。"
|
||
),
|
||
"member.social.email_consent_required" to mapOf(
|
||
Lang.KO to "이메일 제공에 동의하셔야 서비스 이용이 가능합니다.",
|
||
Lang.EN to "You must agree to provide your email to use the service.",
|
||
Lang.JA to "サービス利用にはメール提供への同意が必要です。"
|
||
)
|
||
)
|
||
|
||
private val liveRouletteMessages = mapOf(
|
||
"live.roulette.unavailable" to mapOf(
|
||
Lang.KO to "룰렛을 사용할 수 없습니다.",
|
||
Lang.EN to "Roulette is unavailable.",
|
||
Lang.JA to "ルーレットを使用できません。"
|
||
),
|
||
"live.roulette.live_not_found" to mapOf(
|
||
Lang.KO to "해당하는 라이브가 없습니다.",
|
||
Lang.EN to "Live session not found.",
|
||
Lang.JA to "該当するライブがありません。"
|
||
),
|
||
"live.roulette.live_info_not_found" to mapOf(
|
||
Lang.KO to "해당하는 라이브의 정보가 없습니다.",
|
||
Lang.EN to "Live session information not found.",
|
||
Lang.JA to "該当するライブの情報がありません。"
|
||
),
|
||
"live.roulette.creator_contract_only" to mapOf(
|
||
Lang.KO to "주식회사 소다라이브와 계약한\n크리에이터의 룰렛만 사용하실 수 있습니다.",
|
||
Lang.EN to "Only roulette from creators contracted with Sodalive Co., Ltd. can be used.",
|
||
Lang.JA to "株式会社ソダライブと契約した\nクリエイターのルーレットのみ利用できます。"
|
||
),
|
||
"live.roulette.refund_failed" to mapOf(
|
||
Lang.KO to "룰렛 돌리기에 실패한 캔이 환불되지 않았습니다\n고객센터로 문의해주세요.",
|
||
Lang.EN to "Cans from the failed roulette spin have not been refunded.\nPlease contact customer support.",
|
||
Lang.JA to "ルーレットの失敗分の缶が返金されていません。\nカスタマーサポートへお問い合わせください。"
|
||
),
|
||
"live.roulette.min_can" to mapOf(
|
||
Lang.KO to "룰렛 금액은 최소 5캔 입니다.",
|
||
Lang.EN to "Roulette cost is at least 5 cans.",
|
||
Lang.JA to "ルーレット金額は最低5缶です。"
|
||
),
|
||
"live.roulette.item_count_range" to mapOf(
|
||
Lang.KO to "룰렛 옵션은 최소 2개, 최대 10개까지 설정할 수 있습니다.",
|
||
Lang.EN to "Roulette options must be between 2 and 10 items.",
|
||
Lang.JA to "ルーレットのオプションは最小2個、最大10個まで設定できます。"
|
||
),
|
||
"live.roulette.probability_invalid" to mapOf(
|
||
Lang.KO to "확률이 100%가 아닙니다",
|
||
Lang.EN to "The probability is not 100%.",
|
||
Lang.JA to "確率が100%ではありません。"
|
||
),
|
||
"live.roulette.result_message" to mapOf(
|
||
Lang.KO to "[%s] 당첨!",
|
||
Lang.EN to "[%s] Won!",
|
||
Lang.JA to "[%s] 当選!"
|
||
),
|
||
"live.roulette.can_title" to mapOf(
|
||
Lang.KO to "%s 캔",
|
||
Lang.EN to "%s cans",
|
||
Lang.JA to "%s 缶"
|
||
),
|
||
"live.roulette.refund_method" to mapOf(
|
||
Lang.KO to "룰렛 환불",
|
||
Lang.EN to "Roulette refund",
|
||
Lang.JA to "ルーレット返金"
|
||
)
|
||
)
|
||
|
||
private val liveTagMessages = mapOf(
|
||
"live.tag.registered" to mapOf(
|
||
Lang.KO to "등록되었습니다.",
|
||
Lang.EN to "Successfully registered.",
|
||
Lang.JA to "登録されました。"
|
||
),
|
||
"live.tag.deleted" to mapOf(
|
||
Lang.KO to "삭제되었습니다.",
|
||
Lang.EN to "Deleted.",
|
||
Lang.JA to "削除されました。"
|
||
),
|
||
"live.tag.updated" to mapOf(
|
||
Lang.KO to "수정되었습니다.",
|
||
Lang.EN to "Updated.",
|
||
Lang.JA to "更新されました。"
|
||
),
|
||
"live.tag.duplicate" to mapOf(
|
||
Lang.KO to "이미 등록된 태그 입니다.",
|
||
Lang.EN to "Tag already registered.",
|
||
Lang.JA to "すでに登録されたタグです。"
|
||
)
|
||
)
|
||
|
||
private val memberProviderMessages = mapOf(
|
||
"member.provider.email" to mapOf(
|
||
Lang.KO to "이메일",
|
||
Lang.EN to "Email",
|
||
Lang.JA to "メール"
|
||
),
|
||
"member.provider.kakao" to mapOf(
|
||
Lang.KO to "카카오",
|
||
Lang.EN to "Kakao",
|
||
Lang.JA to "カカオ"
|
||
),
|
||
"member.provider.google" to mapOf(
|
||
Lang.KO to "구글",
|
||
Lang.EN to "Google",
|
||
Lang.JA to "Google"
|
||
),
|
||
"member.provider.apple" to mapOf(
|
||
Lang.KO to "애플",
|
||
Lang.EN to "Apple",
|
||
Lang.JA to "Apple"
|
||
)
|
||
)
|
||
|
||
private val memberGenderMessages = mapOf(
|
||
"member.gender.male" to mapOf(
|
||
Lang.KO to "남",
|
||
Lang.EN to "Male",
|
||
Lang.JA to "男性"
|
||
),
|
||
"member.gender.female" to mapOf(
|
||
Lang.KO to "여",
|
||
Lang.EN to "Female",
|
||
Lang.JA to "女性"
|
||
)
|
||
)
|
||
|
||
fun getMessage(key: String, lang: Lang): String? {
|
||
val messageGroups = listOf(
|
||
commonMessages,
|
||
auditionMessages,
|
||
auditionRequestMessages,
|
||
auditionNotificationMessages,
|
||
auditionRoleMessages,
|
||
settlementRatioMessages,
|
||
adminCanMessages,
|
||
adminChatBannerMessages,
|
||
adminChatCalculateMessages,
|
||
adminChatCharacterMessages,
|
||
adminChatCurationMessages,
|
||
adminChatCharacterImageMessages,
|
||
adminChatOriginalWorkMessages,
|
||
adminContentMessages,
|
||
adminContentBannerMessages,
|
||
adminHashTagCurationMessages,
|
||
adminContentSeriesMessages,
|
||
adminContentSeriesBannerMessages,
|
||
adminContentSeriesGenreMessages,
|
||
adminContentThemeMessages,
|
||
messageMessages,
|
||
noticeMessages,
|
||
reportMessages,
|
||
imageValidationMessages,
|
||
memberAuthMessages,
|
||
memberMessages,
|
||
memberValidationMessages,
|
||
memberSocialMessages,
|
||
liveRouletteMessages,
|
||
liveTagMessages,
|
||
memberProviderMessages,
|
||
memberGenderMessages
|
||
)
|
||
for (messages in messageGroups) {
|
||
val translations = messages[key] ?: continue
|
||
return translations[lang] ?: translations[Lang.KO]
|
||
}
|
||
return null
|
||
}
|
||
}
|