feat(i18n): 설정 화면 하드코딩 문구를 I18n 키로 통일한다

This commit is contained in:
Yu Sung
2026-03-31 19:46:21 +09:00
parent 3f61a08a04
commit 4c170e0f97
17 changed files with 354 additions and 94 deletions

View File

@@ -1108,6 +1108,96 @@ enum I18n {
// > (SignOut)
enum Settings {
static var title: String {
pick(ko: "설정", en: "Settings", ja: "設定")
}
static var notificationSettings: String {
pick(ko: "알림 설정", en: "Notification settings", ja: "通知設定")
}
static var languageSettings: String {
pick(ko: "언어 설정", en: "Language settings", ja: "言語設定")
}
static var contentViewSettings: String {
pick(ko: "콘텐츠 보기 설정", en: "Content view settings", ja: "コンテンツ表示設定")
}
static var termsOfService: String {
pick(ko: "이용약관", en: "Terms of service", ja: "利用規約")
}
static var privacyPolicy: String {
pick(ko: "개인정보처리방침", en: "Privacy policy", ja: "プライバシーポリシー")
}
static var appVersionInfo: String {
pick(ko: "앱 버전 정보", en: "App version info", ja: "アプリバージョン情報")
}
static var logout: String {
pick(ko: "로그아웃", en: "Log out", ja: "ログアウト")
}
static var logoutAllDevices: String {
pick(ko: "모든 기기에서 로그아웃", en: "Log out from all devices", ja: "すべての端末でログアウト")
}
static var signOut: String {
pick(ko: "회원탈퇴", en: "Delete account", ja: "退会")
}
static var companyInfo: String {
pick(
ko: """
- 회사명 : 주식회사 소다라이브
- 대표자 : 이재형
- 주소 : 경기도 성남시 분당구 황새울로335번길 10, 5층 563A호
- 사업자등록번호 : 870-81-03220
- 통신판매업신고 : 제2024-성남분당B-1012호
- 고객센터 : 02.2055.1477 (이용시간 10:00~19:00)
- 대표 이메일 : sodalive.official@gmail.com
""",
en: """
- Company: SodaLive Co., Ltd.
- CEO: Jaehyung Lee
- Address: 5F 563A, 10, Hwangsaeul-ro335beon-gil, Bundang-gu, Seongnam-si, Gyeonggi-do
- Business Registration No.: 870-81-03220
- Mail-order business report No.: 2024-SeongnamBundangB-1012
- Customer center: +82-2-2055-1477 (Hours 10:00~19:00)
- Email: sodalive.official@gmail.com
""",
ja: """
- 会社名株式会社SodaLive
- 代表者:イ・ジェヒョン
- 住所:京畿道 城南市 盆唐区 黄새울路335番ギル10、5階563A号
- 事業者登録番号870-81-03220
- 通信販売業届出第2024-城南盆唐B-1012号
- カスタマーセンター02.2055.1477(利用時間 10:00~19:00
- 代表メールsodalive.official@gmail.com
"""
)
}
//
static var alertTitle: String { pick(ko: "알림", en: "Notice", ja: "お知らせ") }
@@ -1152,7 +1242,162 @@ enum I18n {
ja: "すべてのデバイスからログアウトしますか?"
)
}
enum Content {
static var sensitiveContentTitle: String {
pick(ko: "민감한 콘텐츠 보기", en: "Show sensitive content", ja: "センシティブなコンテンツ表示")
}
static var all: String {
pick(ko: "전체", en: "All", ja: "全体")
}
static var maleOriented: String {
pick(ko: "남성향", en: "Male-oriented", ja: "男性向け")
}
static var femaleOriented: String {
pick(ko: "여성향", en: "Female-oriented", ja: "女性向け")
}
}
enum Event {
static var title: String {
pick(ko: "이벤트", en: "Events", ja: "イベント")
}
static var detailTitle: String {
pick(ko: "이벤트 상세", en: "Event details", ja: "イベント詳細")
}
static var participateButton: String {
pick(ko: "이벤트 참여하기", en: "Participate in event", ja: "イベントに参加する")
}
}
enum Language {
static var systemDefault: String {
pick(ko: "시스템 기본", en: "System default", ja: "システム設定")
}
static var korean: String {
pick(ko: "한국어", en: "한국어", ja: "한국어")
}
static var english: String {
pick(ko: "English", en: "English", ja: "English")
}
static var japanese: String {
pick(ko: "日本語", en: "日本語", ja: "日本語")
}
static var apply: String {
pick(ko: "적용", en: "Apply", ja: "適用")
}
}
enum Notice {
static var title: String {
pick(ko: "공지사항", en: "Notices", ja: "お知らせ")
}
static var detailTitle: String {
pick(ko: "공지사항 상세", en: "Notice details", ja: "お知らせ詳細")
}
}
enum Notification {
static var title: String {
pick(ko: "알림 설정", en: "Notification settings", ja: "通知設定")
}
static var receiveSettingsTitle: String {
pick(ko: "알림 수신 설정", en: "Notification receive settings", ja: "通知受信設定")
}
static var serviceNotifications: String {
pick(ko: "서비스 알림", en: "Service notifications", ja: "サービス通知")
}
static var live: String {
pick(ko: "라이브 알림", en: "Live notifications", ja: "ライブ通知")
}
static var contentUpload: String {
pick(ko: "콘텐츠 업로드 알림", en: "Content upload notifications", ja: "コンテンツアップロード通知")
}
static var message: String {
pick(ko: "메시지 알림", en: "Message notifications", ja: "メッセージ通知")
}
static var confirm: String {
pick(ko: "확인", en: "Confirm", ja: "確認")
}
static var followingChannels: String {
pick(ko: "팔로잉 채널", en: "Following channels", ja: "フォロー中のチャンネル")
}
static var totalPrefix: String {
pick(ko: "", en: "Total", ja: "合計")
}
static var countUnit: String {
pick(ko: "", en: "", ja: "")
}
static var noFollowingChannels: String {
pick(ko: "팔로우 중인 채널이 없습니다.", en: "There are no followed channels.", ja: "フォロー中のチャンネルがありません。")
}
}
enum SignOut {
static var title: String {
pick(ko: "회원탈퇴", en: "Delete account", ja: "退会")
}
static var headline: String {
pick(
ko: "정말로 탈퇴하실 거에요?\n한 번 더 생각해보지 않으실래요?",
en: "Are you sure you want to leave?\nWould you like to think one more time?",
ja: "本当に退会しますか?\nもう一度ご検討いただけませんか?"
)
}
static var reasonGuide: String {
pick(
ko: "계정을 삭제하려는 이유를 선택해주세요.\n서비스 개선에 중요한 자료로 활용하겠습니다.",
en: "Please select the reason for deleting your account.\nThis will be used as important feedback to improve our service.",
ja: "アカウント削除の理由を選択してください。\nサービス改善のための重要な資料として活用します。"
)
}
static var reasonInputPlaceholder: String {
pick(ko: "입력해주세요", en: "Please enter", ja: "入力してください")
}
static var accountDeletionNotice: String {
pick(
ko: "계정을 삭제하면 회원님의 모든 콘텐츠와 활동 길고, 캔충전 및 적립, 사용내역 등의 기록이 삭제됩니다. 삭제된 정보는 복구할 수 없으니 신중히 결정해주세요.\n캔 충전하기를 통해 적립한 캔은 계정 삭제시 환불이 불가합니다. 또한 환불 신청 후 환불처리가 되기 전에 계정을 삭제하는 경우 포인트 사용내역을 확인할 수 없어 환불이 불가합니다.",
en: "If you delete your account, all your content and activity records, including can charge/savings and usage history, will be deleted. Deleted information cannot be recovered, so please decide carefully.\nCans earned through can charging are not refundable when deleting your account. Also, if you delete your account before a requested refund is processed, a refund is not possible because point usage history cannot be confirmed.",
ja: "アカウントを削除すると、すべてのコンテンツと活動履歴、canチャージおよび積立、利用履歴などが削除されます。削除された情報は復元できないため、慎重にご判断ください。\ncanチャージで積み立てたcanはアカウント削除時に返金できません。また、返金申請後に返金処理前にアカウントを削除した場合、ポイント利用履歴を確認できないため返金できません。"
)
}
static var socialLoginGuide: String {
pick(
ko: "※ 소셜 로그인 이용자는 비밀번호를 입력하지 말고 '탈퇴하기'를 클릭하면 자동 탈퇴됩니다.",
en: "※ If you use social login, do not enter a password and click 'Delete account' to complete withdrawal automatically.",
ja: "※ ソーシャルログイン利用者はパスワードを入力せず、「退会する」を押すと自動で退会されます。"
)
}
static var submit: String {
pick(ko: "탈퇴하기", en: "Delete account", ja: "退会する")
}
// (UI )
static var reasons: [String] {
[