feat(i18n): 주요 UI 하드코딩 문구를 I18n 키로 통일한다

This commit is contained in:
Yu Sung
2026-03-31 17:09:01 +09:00
parent 47085dc1ca
commit b2f66cf408
17 changed files with 448 additions and 196 deletions

View File

@@ -1654,6 +1654,231 @@ If you block this user, the following features will be restricted.
}
}
enum ImagePicker {
static var cropResizeGuide: String {
pick(
ko: "모서리 원을 드래그해서 크롭 영역 크기를 조정하세요",
en: "Drag the corner handles to resize the crop area.",
ja: "角のハンドルをドラッグしてクロップ範囲のサイズを調整してください。"
)
}
}
enum CustomView {
static var collapse: String {
pick(ko: "접기", en: "Collapse", ja: "閉じる")
}
static var expand: String {
pick(ko: "펼치기", en: "Expand", ja: "展開")
}
}
enum IAP {
static var loadProductsFailed: String {
pick(
ko: "상품을 불러오지 못했습니다.\n다시 시도해 주세요.",
en: "Could not load products.\nPlease try again.",
ja: "商品を読み込めませんでした。\nもう一度お試しください。"
)
}
static var deferredPaymentFailed: String {
pick(
ko: "아이폰이 잠김 등의 이유로 결제를 진행하지 못했습니다.",
en: "Could not proceed with payment because the iPhone is locked.",
ja: "iPhoneがロックされているなどの理由で決済を進められませんでした。"
)
}
static var productValidationCompleted: String {
pick(
ko: "상품 검증을 하였습니다.",
en: "Product validation is complete.",
ja: "商品検証が完了しました。"
)
}
static var unknownError: String {
pick(
ko: "알 수 없는 오류가 발생했습니다.",
en: "An unknown error occurred.",
ja: "不明なエラーが発生しました。"
)
}
static var paymentFailed: String {
pick(
ko: "결제를 진행하지 못했습니다.\n다시 시도해 주세요.",
en: "Could not complete payment.\nPlease try again.",
ja: "決済を完了できませんでした。\nもう一度お試しください。"
)
}
}
enum Follow {
static var followingListTitle: String {
pick(ko: "팔로잉 리스트", en: "Following list", ja: "フォロー中リスト")
}
static var totalPrefix: String {
pick(ko: "", en: "Total", ja: "合計")
}
static var personUnit: String {
pick(ko: "", en: "people", ja: "")
}
static var emptyFollowingChannels: String {
pick(
ko: "팔로우 중인 채널이 없습니다.",
en: "There are no channels you follow.",
ja: "フォロー中のチャンネルがありません。"
)
}
}
enum Main {
enum EventPopup {
static var doNotShowAgain: String {
pick(ko: "다시보지 않기", en: "Don't show again", ja: "今後表示しない")
}
static var close: String {
pick(ko: "닫기", en: "Close", ja: "閉じる")
}
}
enum Tab {
static var home: String { pick(ko: "", en: "Home", ja: "ホーム") }
static var live: String { pick(ko: "라이브", en: "Live", ja: "ライブ") }
static var chat: String { pick(ko: "채팅", en: "Chat", ja: "チャット") }
static var my: String { pick(ko: "마이", en: "My", ja: "マイ") }
}
enum Auth {
static var dialogTitle: String {
pick(ko: "본인인증", en: "Identity verification", ja: "本人認証")
}
static var liveEntryVerificationDescription: String {
pick(
ko: "청소년 보호를 위해\n본인인증을 완료한\n성인만 라이브 입장이 가능합니다.\n라이브 입장을 위해\n본인인증을 진행해 주세요.",
en: "Only adults who completed identity verification can enter live rooms for youth protection.\nPlease complete identity verification to enter live.",
ja: "青少年保護のため、本人認証を完了した成人のみライブに入場できます。\nライブ入場のために本人認証を行ってください。"
)
}
static var goToVerification: String {
pick(ko: "본인인증 하러가기", en: "Verify identity", ja: "本人認証へ")
}
static var authenticationError: String {
pick(
ko: "본인인증 중 오류가 발생했습니다.",
en: "An error occurred during identity verification.",
ja: "本人認証中にエラーが発生しました。"
)
}
}
}
enum Dialog {
enum ApplyAuditionComplete {
static var thankYouDescription: String {
pick(
ko: "보이스온 오디션에 지원해 주셔서 감사합니다.",
en: "Thank you for applying to the VoiceOn audition.",
ja: "VoiceOnオーディションにご応募いただきありがとうございます。"
)
}
}
enum CommunityPostPurchase {
static var title: String {
pick(ko: "게시글 보기", en: "View post", ja: "投稿を見る")
}
static var description: String {
pick(
ko: "게시글을\n확인하시겠습니까?",
en: "Do you want to\nview this post?",
ja: "投稿を\n確認しますか?"
)
}
static func viewWithCans(_ can: Int) -> String {
pick(
ko: "\(can)캔으로 보기",
en: "View with \(can) cans",
ja: "\(can)canで見る"
)
}
}
enum LivePayment {
static var startTimePrefix: String {
pick(ko: "- 시작 시각 : ", en: "- Start time : ", ja: "- 開始時刻 : ")
}
static var currentTimePrefix: String {
pick(ko: "- 현재 시각 :", en: "- Current time :", ja: "- 現在時刻 :")
}
}
enum LiveRoomPassword {
static var title: String {
pick(ko: "비밀번호 입력", en: "Enter password", ja: "パスワード入力")
}
static var description: String {
pick(
ko: "비공개 라이브의 입장 비밀번호를\n입력해 주세요.",
en: "Please enter the entry password\nfor this private live.",
ja: "非公開ライブの入場パスワードを\n入力してください。"
)
}
static var passwordFieldTitle: String {
pick(ko: "비밀번호", en: "Password", ja: "パスワード")
}
static var passwordFieldPlaceholder: String {
pick(ko: "비밀번호를 입력해 주세요", en: "Please enter your password", ja: "パスワードを入力してください")
}
static var enterSuffix: String {
pick(ko: "으로 입장", en: " to enter", ja: "で入場")
}
static var enter: String {
pick(ko: "입장하기", en: "Enter", ja: "入場する")
}
}
enum MemberProfile {
static var title: String {
pick(ko: "프로필", en: "Profile", ja: "プロフィール")
}
static var unblock: String {
pick(ko: "차단 해제", en: "Unblock", ja: "ブロック解除")
}
static var reportUser: String {
pick(ko: "사용자 신고", en: "Report user", ja: "ユーザーを通報")
}
static var reportProfile: String {
pick(ko: "프로필 신고", en: "Report profile", ja: "プロフィールを通報")
}
static var invalidRequest: String {
pick(ko: "잘못된 요청입니다.", en: "Invalid request.", ja: "不正なリクエストです。")
}
}
}
enum Series {
static var new: String { pick(ko: "신작", en: "New", ja: "新作") }
static var complete: String { pick(ko: "완결", en: "Completed", ja: "完結") }