feat(i18n): 라이브 모듈 하드코딩 문구를 I18n 키로 통일한다

This commit is contained in:
Yu Sung
2026-04-01 11:58:41 +09:00
parent 201f4c8139
commit 540238eb48
20 changed files with 333 additions and 97 deletions

View File

@@ -1767,17 +1767,59 @@ enum I18n {
static var chatDeleteTitle: String { pick(ko: "채팅 삭제", en: "Delete chat", ja: "チャット削除") }
}
enum LiveMain {
static var createLiveButton: String {
pick(ko: "라이브 만들기", en: "Create live", ja: "ライブを作成")
}
static var replaySectionTitle: String {
pick(ko: "라이브 다시 듣기", en: "Live replay", ja: "ライブ再生")
}
}
enum LiveNow {
static var allTitle: String {
pick(ko: "지금 라이브 중 전체보기", en: "Live Now - All", ja: "ライブ配信中(全て)")
}
static var sectionTitle: String {
pick(ko: "지금 라이브중", en: "Live now", ja: "ライブ配信中")
}
static var remaining: String {
pick(ko: "잔여", en: "Remaining", ja: "残り")
}
static var emptyStateMessage: String {
pick(
ko: "마이페이지에서 본인인증을 하거나\n라이브를 예약하고 참여해보세요.",
en: "Verify your identity in My Page\nor reserve and join a live.",
ja: "マイページで本人認証を行うか、\nライブを予約して参加してください。"
)
}
static var refreshButton: String {
pick(ko: "새로고침", en: "Refresh", ja: "更新")
}
static var followingChannelsTitle: String {
pick(ko: "팔로잉 채널", en: "Following channels", ja: "フォロー中のチャンネル")
}
static var liveBadge: String {
pick(ko: "Live", en: "Live", ja: "Live")
}
static var moreButton: String {
pick(ko: "더보기", en: "More", ja: "もっと見る")
}
}
enum LiveCancel {
static var title: String {
pick(ko: "예약취소", en: "Cancel reservation", ja: "予約キャンセル")
}
static var reasonPlaceholder: String {
pick(
ko: "취소사유를 입력하세요",
@@ -1786,6 +1828,14 @@ enum I18n {
)
}
static var cancelButton: String {
pick(ko: "취소", en: "Cancel", ja: "キャンセル")
}
static var confirmButton: String {
pick(ko: "확인", en: "Confirm", ja: "確認")
}
static var reservationCanceled: String {
pick(
ko: "예약이 취소되었습니다.",
@@ -1795,6 +1845,154 @@ enum I18n {
}
}
enum LiveReservation {
enum Section {
static var title: String {
pick(ko: "라이브 예약중", en: "Live reservations", ja: "ライブ予約中")
}
static var emptyStateMessage: String {
pick(
ko: "지금 예약중인 라이브가 없습니다.\n채널을 팔로잉 하고 라이브 알림을 받아 보세요.",
en: "There are no live reservations right now.\nFollow channels and receive live notifications.",
ja: "現在予約中のライブはありません。\nチャンネルをフォローしてライブ通知を受け取りましょう。"
)
}
}
enum All {
static var title: String {
pick(ko: "라이브, 예약 캘린더", en: "Live reservation calendar", ja: "ライブ予約カレンダー")
}
static var emptyStateMessage: String {
pick(
ko: "지금 예약중인 라이브가 없습니다.\n다른 날짜의 라이브를 예약하고 참여해 보세요.",
en: "There are no live reservations right now.\nReserve a live on another date and join.",
ja: "現在予約中のライブはありません。\n別の日のライブを予約して参加してみてください。"
)
}
}
enum Item {
static var reservationCompleted: String {
pick(ko: "예약완료", en: "Reserved", ja: "予約完了")
}
static var ownCreatedLive: String {
pick(ko: "내가 개설한 라이브", en: "Live I created", ja: "自分が開設したライブ")
}
static var free: String {
CreateContent.free
}
static func month(_ value: String) -> String {
pick(
ko: "\(value)",
en: "\(value)M",
ja: "\(value)"
)
}
static func priceWithCan(_ can: Int) -> String {
pick(
ko: "\(can)",
en: "\(can) cans",
ja: "\(can)can"
)
}
}
enum Complete {
static var title: String {
pick(ko: "라이브 예약 완료", en: "Live reservation complete", ja: "ライブ予約完了")
}
static var completedMessage: String {
pick(ko: "예약이 완료되었습니다.", en: "Your reservation is complete.", ja: "予約が完了しました。")
}
static var reservationInfoTitle: String {
pick(ko: "라이브 예약정보", en: "Reservation details", ja: "ライブ予約情報")
}
static var channelLabel: String {
pick(ko: "채널", en: "Channel", ja: "チャンネル")
}
static var purchaseDetailLabel: String {
pick(ko: "구매내역", en: "Purchase", ja: "購入内容")
}
static var reservationDateLabel: String {
pick(ko: "예약일자", en: "Reservation date", ja: "予約日時")
}
static var liveCostLabel: String {
pick(ko: "라이브 비용", en: "Live price", ja: "ライブ料金")
}
static var paymentInfoTitle: String {
pick(ko: "결제정보", en: "Payment info", ja: "決済情報")
}
static var ownedCanLabel: String {
pick(ko: "보유캔", en: "Owned cans", ja: "保有can")
}
static var paymentCanLabel: String {
pick(ko: "결제캔", en: "Paid cans", ja: "決済can")
}
static var remainingCanLabel: String {
pick(ko: "잔여캔", en: "Remaining cans", ja: "残りcan")
}
static var canSuffix: String {
pick(ko: "", en: " cans", ja: " can")
}
static var goHome: String {
pick(ko: "홈으로 이동", en: "Go to Home", ja: "ホームへ移動")
}
static var goReservationList: String {
pick(ko: "예약 내역 이동", en: "View reservations", ja: "予約履歴へ移動")
}
}
}
enum LiveChat {
static var staffBadge: String {
pick(ko: "스탭", en: "Staff", ja: "スタッフ")
}
static var donationMemberSuffix: String {
pick(ko: "님이", en: "", ja: "さんが")
}
static func canWithUnit(_ can: Int) -> String {
pick(ko: "\(can)", en: "\(can) cans", ja: "\(can)can")
}
static var secretMissionDonationSuffix: String {
pick(ko: "으로 비밀미션을 보냈습니다.🤫", en: " sent a secret mission.🤫", ja: "で秘密ミッションを送りました。🤫")
}
static var donationSuffix: String {
pick(ko: "을 후원하셨습니다.💰🪙", en: " donated.💰🪙", ja: "を後援しました。💰🪙")
}
static var heartDonationSuffix: String {
pick(ko: "'님이 마음을 전했습니다 : 💕", en: "' sent a heart : 💕", ja: "'さんがハートを送りました : 💕")
}
static var joinSuffix: String {
pick(ko: "'님이 입장하셨습니다.", en: "' joined.", ja: "'さんが入場しました。")
}
}
enum CreateContent {
static var selectFile: String { pick(ko: "파일 선택", en: "Select file", ja: "ファイル選択") }
static var selectTheme: String { pick(ko: "테마 선택", en: "Select theme", ja: "テーマ選択") }
@@ -1899,6 +2097,7 @@ enum I18n {
static var cannotReserveOwnLive: String { pick(ko: "내가 만든 라이브는 예약할 수 없습니다.", en: "reserve a live you created is required.", ja: "自分が作ったライブは予約できません。") }
static var enterLiveFailed: String { pick(ko: "라이브에 입장하지 못했습니다.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다.", en: "Could not enter the live.\nIf the problem persists, please contact customer support.", ja: "ライブに入室できませんでした。\n問題が続く場合はカスタマーサポートにお問い合わせください。") }
static var fetchLiveInfoFailed: String { pick(ko: "라이브 정보를 가져오지 못했습니다.\n다시 시도해 주세요.", en: "Failed to fetch live information.\nPlease try again.", ja: "ライブ情報を取得できませんでした。\nもう一度お試しください。") }
static var alreadyEndedLive: String { pick(ko: "이미 종료된 라이브 입니다.", en: "This live has already ended.", ja: "このライブはすでに終了しています。") }
static var userBlocked: String { pick(ko: "차단하였습니다.", en: "User has been blocked.", ja: "ブロックしました。") }
static var userUnblocked: String { pick(ko: "차단이 해제 되었습니다.", en: "User has been unblocked.", ja: "ブロックを解除しました。") }
static var blockDialogTitle: String { pick(ko: "사용자 차단", en: "Block User", ja: "ユーザーブロック") }