From 0e8ea7da51e6f40ee58a0ed6d7044645bfa99ce2 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 10 Apr 2026 02:24:32 +0900 Subject: [PATCH] =?UTF-8?q?feat(i18n):=20=EC=97=90=EC=9D=B4=EC=A0=84?= =?UTF-8?q?=ED=8A=B8=20=EC=A0=95=EC=82=B0=20=EB=A9=94=EC=8B=9C=EC=A7=80=20?= =?UTF-8?q?=ED=82=A4=EB=A5=BC=20=EC=B6=94=EA=B0=80=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/i18n/SodaMessageSource.kt | 69 +++++++++++++++++++ .../sodalive/i18n/SodaMessageSourceTest.kt | 24 +++++++ 2 files changed, 93 insertions(+) create mode 100644 src/test/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSourceTest.kt diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSource.kt b/src/main/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSource.kt index 8ee077b8..817dc15d 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSource.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSource.kt @@ -1047,6 +1047,74 @@ class SodaMessageSource { ) ) + private val partnerAgentMessages = mapOf( + "partner.agent.assignment.invalid_relation" to mapOf( + Lang.KO to "에이전트와 크리에이터는 같은 계정일 수 없습니다.", + Lang.EN to "Agent and creator cannot be the same account.", + Lang.JA to "エージェントとクリエイターは同じアカウントにできません。" + ), + "partner.agent.assignment.agent_not_found" to mapOf( + Lang.KO to "해당 에이전트가 없습니다.", + Lang.EN to "Agent not found.", + Lang.JA to "該当するエージェントがいません。" + ), + "partner.agent.assignment.invalid_agent" to mapOf( + Lang.KO to "올바른 에이전트를 선택해 주세요.", + Lang.EN to "Please select a valid agent.", + Lang.JA to "正しいエージェントを選択してください。" + ), + "partner.agent.assignment.creator_not_found" to mapOf( + Lang.KO to "해당 크리에이터가 없습니다.", + Lang.EN to "Creator not found.", + Lang.JA to "該当するクリエイターがいません。" + ), + "partner.agent.assignment.invalid_creator" to mapOf( + Lang.KO to "올바른 크리에이터를 선택해 주세요.", + Lang.EN to "Please select a valid creator.", + Lang.JA to "正しいクリエイターを選択してください。" + ), + "partner.agent.assignment.creator_already_assigned" to mapOf( + Lang.KO to "이미 다른 에이전트에 소속된 크리에이터입니다.", + Lang.EN to "This creator is already assigned to another agent.", + Lang.JA to "すでに別のエージェントに所属しているクリエイターです。" + ), + "partner.agent.assignment.assignment_overlap" to mapOf( + Lang.KO to "지정한 시각에 겹치는 에이전트 소속 이력이 이미 있습니다.", + Lang.EN to "An overlapping agent assignment already exists for the specified time.", + Lang.JA to "指定した時刻に重複するエージェント所属履歴が既に存在します。" + ), + "partner.agent.assignment.invalid_unassigned_at" to mapOf( + Lang.KO to "소속 종료 시각은 시작 시각보다 늦어야 합니다.", + Lang.EN to "The unassigned time must be later than the assigned time.", + Lang.JA to "所属終了時刻は所属開始時刻より後でなければなりません。" + ), + "partner.agent.assignment.not_found" to mapOf( + Lang.KO to "해당 소속 정보가 없습니다.", + Lang.EN to "Assignment not found.", + Lang.JA to "該当する所属情報がありません。" + ), + "partner.agent.ratio.agent_not_found" to mapOf( + Lang.KO to "해당 에이전트가 없습니다.", + Lang.EN to "Agent not found.", + Lang.JA to "該当するエージェントがいません。" + ), + "partner.agent.ratio.invalid_agent" to mapOf( + Lang.KO to "올바른 에이전트를 선택해 주세요.", + Lang.EN to "Please select a valid agent.", + Lang.JA to "正しいエージェントを選択してください。" + ), + "partner.agent.ratio.not_found" to mapOf( + Lang.KO to "해당 에이전트 정산 비율이 없습니다.", + Lang.EN to "Agent settlement ratio not found.", + Lang.JA to "該当するエージェント精算率がありません。" + ), + "partner.agent.ratio.invalid_effective_from" to mapOf( + Lang.KO to "비율 시작 시각이 기존 이력과 겹치거나 현재 활성 비율보다 늦어야 합니다.", + Lang.EN to "The effective-from time overlaps existing history or must be later than the current active ratio.", + Lang.JA to "比率開始時刻が既存履歴と重複しているか、現在の有効な比率より後である必要があります。" + ) + ) + private val adminMemberTagMessages = mapOf( "admin.member.tag.already_registered" to mapOf( Lang.KO to "이미 등록된 태그 입니다.", @@ -2357,6 +2425,7 @@ class SodaMessageSource { adminSignatureCanMessages, adminAdMediaPartnerMessages, adminMemberMessages, + partnerAgentMessages, adminMemberTagMessages, adminPointPolicyMessages, adminMemberStatisticsMessages, diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSourceTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSourceTest.kt new file mode 100644 index 00000000..027c79ab --- /dev/null +++ b/src/test/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSourceTest.kt @@ -0,0 +1,24 @@ +package kr.co.vividnext.sodalive.i18n + +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test + +class SodaMessageSourceTest { + private val sodaMessageSource = SodaMessageSource() + + @Test + fun shouldProvidePartnerAgentAssignmentAndRatioMessages() { + assertEquals( + "이미 다른 에이전트에 소속된 크리에이터입니다.", + sodaMessageSource.getMessage("partner.agent.assignment.creator_already_assigned", Lang.KO) + ) + assertEquals( + "Please select a valid agent.", + sodaMessageSource.getMessage("partner.agent.ratio.invalid_agent", Lang.EN) + ) + assertEquals( + "該当するエージェント精算率がありません。", + sodaMessageSource.getMessage("partner.agent.ratio.not_found", Lang.JA) + ) + } +}