Files
sodalive-backend-spring-boot/src/main/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSource.kt

788 lines
37 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}
}