일본어 문구를 정리한다

일본어 로컬라이즈 문구를 최신화한다.

신고 화면에서 공용 신고 사유 문구를 제공한다.
This commit is contained in:
Yu Sung
2026-01-09 15:18:24 +09:00
parent eb83d5e5e3
commit 1b583eabba
3 changed files with 239 additions and 181 deletions

View File

@@ -12,16 +12,7 @@ struct CreatorCommunityReportView: View {
let confirmAction: (String) -> Void
@State private var selectedIndex: Int? = nil
let reasons = [
"원치 않는 상업성 콘텐츠 또는 스팸",
"포르노 또는 음란물",
"아동 학대",
"증오심 표현 또는 노골적인 폭력",
"테러 조장",
"괴롭힘 또는 폭력",
"자살 또는 자해",
"잘못된 정보"
]
let reasons = I18n.Report.reasons
var body: some View {
ZStack {
@@ -31,7 +22,7 @@ struct CreatorCommunityReportView: View {
.onTapGesture { isShowing = false }
VStack(spacing: 13.3) {
Text("게시물 신고")
Text(I18n.Report.postReportTitle)
.font(.custom(Font.medium.rawValue, size: 16.7))
.foregroundColor(Color(hex: "eeeeee"))
@@ -59,14 +50,14 @@ struct CreatorCommunityReportView: View {
HStack(spacing: 26.7) {
Spacer()
Text("취소")
Text(I18n.Common.cancel)
.font(.custom(Font.medium.rawValue, size: 13.3))
.foregroundColor(Color(hex: "9970ff"))
.onTapGesture {
isShowing = false
}
Text("신고")
Text(I18n.Report.reportAction)
.font(.custom(Font.medium.rawValue, size: 13.3))
.foregroundColor(Color(hex: "9970ff"))
.onTapGesture {

View File

@@ -27,12 +27,12 @@ enum I18n {
}
static var unlock: String {
pick(ko: "잠금해제", en: "Unlock", ja: "解除する")
pick(ko: "잠금해제", en: "Unlock", ja: "アンロック")
}
//
static var resetTitle: String {
pick(ko: "대화 초기화", en: "Reset", ja: "会話をリセット")
pick(ko: "대화 초기화", en: "Reset", ja: "トークをリセット")
}
static var resetDescription: String {
@@ -67,7 +67,7 @@ enum I18n {
pick(
ko: "크리에이터의 다른 콘텐츠",
en: "More from this creator",
ja: "このクリエイターの他コンテンツ"
ja: "クリエイターの他コンテンツ"
)
}
@@ -75,7 +75,7 @@ enum I18n {
pick(
ko: "테마의 다른 콘텐츠",
en: "More in this theme",
ja: "このテーマの他コンテンツ"
ja: "このテーマの他コンテンツ"
)
}
@@ -83,7 +83,7 @@ enum I18n {
pick(
ko: "고정 한도 도달",
en: "Pin limit reached",
ja: "固定上限到達"
ja: "固定上限到達"
)
}
@@ -188,24 +188,91 @@ enum I18n {
)
}
static var roulette1: String { pick(ko: "룰렛 1", en: "Roulette 1", ja: "ルーレット1") }
static var roulette2: String { pick(ko: "룰렛 2", en: "Roulette 2", ja: "ルーレット2") }
static var roulette3: String { pick(ko: "룰렛 3", en: "Roulette 3", ja: "ルーレット3") }
static var roulette1: String { pick(ko: "룰렛 1", en: "Roulette 1", ja: "ルーレット 1") }
static var roulette2: String { pick(ko: "룰렛 2", en: "Roulette 2", ja: "ルーレット 2") }
static var roulette3: String { pick(ko: "룰렛 3", en: "Roulette 3", ja: "ルーレット 3") }
static var confirmDeleteQuestion: String { pick(ko: "삭제하시겠습니까?", en: "Are you sure you want to delete?", ja: "削除しますか?") }
static var followers: String { pick(ko: "팔로워", en: "Followers", ja: "フォロワー") }
static var latestContent: String { pick(ko: "최신 콘텐츠", en: "New", ja: "最新コンテンツ") }
static var openScheduled: String { pick(ko: "오픈예정", en: "Scheduled to open", ja: "オープン予定") }
static var openScheduled: String { pick(ko: "오픈예정", en: "Scheduled to open", ja: "公開予定") }
static var points: String { pick(ko: "포인트", en: "Points", ja: "ポイント") }
}
enum Report {
static var postReportTitle: String {
pick(ko: "게시물 신고", en: "Report post", ja: "投稿通報")
}
static var reportAction: String {
pick(ko: "신고", en: "Report", ja: "報告する")
}
static var reasons: [String] {
[
reasonSpam,
reasonAdult,
reasonChildAbuse,
reasonHateOrViolence,
reasonTerrorism,
reasonHarassment,
reasonSelfHarm,
reasonMisinformation
]
}
static var reasonSpam: String {
pick(
ko: "원치 않는 상업성 콘텐츠 또는 스팸",
en: "Unwanted commercial content or spam",
ja: "望まない商業コンテンツまたはスパム"
)
}
static var reasonAdult: String {
pick(
ko: "포르노 또는 음란물",
en: "Pornography or sexually explicit content",
ja: "ポルノまたはわいせつ物"
)
}
static var reasonChildAbuse: String {
pick(ko: "아동 학대", en: "Child abuse", ja: "児童虐待")
}
static var reasonHateOrViolence: String {
pick(
ko: "증오심 표현 또는 노골적인 폭력",
en: "Hate speech or graphic violence",
ja: "憎悪表現または過度な暴力表現"
)
}
static var reasonTerrorism: String {
pick(ko: "테러 조장", en: "Promotion of terrorism", ja: "テロ助長")
}
static var reasonHarassment: String {
pick(ko: "괴롭힘 또는 폭력", en: "Harassment or violence", ja: "嫌がらせまたは暴力")
}
static var reasonSelfHarm: String {
pick(ko: "자살 또는 자해", en: "Suicide or self-harm", ja: "自殺または自傷行為")
}
static var reasonMisinformation: String {
pick(ko: "잘못된 정보", en: "Misinformation", ja: "誤情報")
}
}
enum Splash {
static var tagline: String {
pick(
ko: "목소리로 만나는 새로운 세계",
en: "A new world you meet by voice",
ja: "声で出会う新しい世界"
ja: "声でつながる新しいワールド"
)
}
@@ -298,7 +365,7 @@ enum I18n {
pick(
ko: "닉네임을 변경하고 싶어서",
en: "I want to change my nickname",
ja: "ニックネームを変更したいから"
ja: "ハンドルネームを変たいから"
)
}
@@ -306,7 +373,7 @@ enum I18n {
pick(
ko: "다른 사용자와의 다툼이 있어서",
en: "Conflict with another user",
ja: "ユーザーとトラブルがあったから"
ja: "他ユーザーとトラブルがあったから"
)
}
@@ -314,7 +381,7 @@ enum I18n {
pick(
ko: "이용이 불편하고 장애가 많아서",
en: "Inconvenient to use and many errors",
ja: "使いにくく障害が多いから"
ja: "使いにくく不具合が多いから"
)
}
@@ -322,7 +389,7 @@ enum I18n {
pick(
ko: "서비스 운영이 마음에 들지 않아서",
en: "Dissatisfied with service operations",
ja: "サービス運営が気に入らないから"
ja: "運営が気に入らないから"
)
}
@@ -330,7 +397,7 @@ enum I18n {
pick(
ko: "다른 서비스가 더 좋아서",
en: "Another service is better",
ja: "サービスの方が良いから"
ja: "他サービスの方が良いから"
)
}
@@ -354,7 +421,7 @@ enum I18n {
pick(
ko: "원하는 콘텐츠나 크리에이터가 없어서",
en: "I can't find desired content or creators",
ja: "望むコンテンツやクリエイターがいないから"
ja: "好きなコンテンツやクリエイターがいないから"
)
}
@@ -378,7 +445,7 @@ enum I18n {
static var selectReasonRequired: String {
pick(
ko: "계정을 삭제하려는 이유를 선택해 주세요.", en: "select a reason for deleting your account.",
ja: "アカウント削除理由を選択してください。"
ja: "アカウント削除理由を選択してください。"
)
}
@@ -403,7 +470,7 @@ enum I18n {
enum Charge {
static var inAppPurchase: String {
pick(ko: "인 앱 결제", en: "In-app purchase", ja: "アプリ内お支払い")
pick(ko: "인 앱 결제", en: "In-app purchase", ja: "アプリ内課金")
}
}
@@ -434,7 +501,7 @@ enum I18n {
//
static var guideHeader: String {
pick(ko: "[등록 및 사용안내]", en: "[Registration and usage]", ja: "[登録および利用ガイド]")
pick(ko: "[등록 및 사용안내]", en: "[Registration and usage]", ja: "[登録および使用案内]")
}
static var cautionHeader: String {
@@ -518,12 +585,12 @@ enum I18n {
}
enum MissionMenu {
static var menu1: String { pick(ko: "메뉴 1", en: "Menu 1", ja: "メニュー1") }
static var menu2: String { pick(ko: "메뉴 2", en: "Menu 2", ja: "メニュー2") }
static var menu3: String { pick(ko: "메뉴 3", en: "Menu 3", ja: "メニュー3") }
static var menu1: String { pick(ko: "메뉴 1", en: "Menu 1", ja: "メニュー 1") }
static var menu2: String { pick(ko: "메뉴 2", en: "Menu 2", ja: "メニュー 2") }
static var menu3: String { pick(ko: "메뉴 3", en: "Menu 3", ja: "メニュー 3") }
static var needMenu1First: String { pick(ko: "메뉴 1을 먼저 설정하세요", en: "Please set Menu 1 first", ja: "まずメニュー1を設定してください") }
static var needMenu1And2First: String { pick(ko: "메뉴 1과 메뉴 2를 먼저 설정하세요", en: "Please set Menu 1 and Menu 2 first", ja: "まずメニュー1とメニュー2を設定してください") }
static var needMenu1And2First: String { pick(ko: "메뉴 1과 메뉴 2를 먼저 설정하세요", en: "Please set Menu 1 and Menu 2 first", ja: "メニュー1と2を先に設定してください") }
}
enum CreateLive {
@@ -533,7 +600,7 @@ enum I18n {
}
//
static var startNow: String { pick(ko: "지금 즉시", en: "Now", ja: "今すぐ開始") }
static var startNow: String { pick(ko: "지금 즉시", en: "Now", ja: "今すぐ") }
static var schedule: String { pick(ko: "예약 설정", en: "Booking", ja: "予約設定") }
//
@@ -546,7 +613,7 @@ enum I18n {
//
static var allAges: String { pick(ko: "전체 연령", en: "All ages", ja: "全年齢") }
static var over19: String { pick(ko: "19세 이상", en: "19+", ja: "成人") }
static var over19: String { pick(ko: "19세 이상", en: "19+", ja: "R-18") }
// /
static var recentDataLoaded: String { pick(ko: "최근데이터를 불러왔습니다.", en: "Recent data has been loaded.", ja: "最新データを読み込みました。") }
@@ -557,7 +624,7 @@ enum I18n {
static var selectCoverImage: String { pick(ko: "커버이미지를 선택해주세요.", en: "Please select a cover image.", ja: "カバー画像を選択してください。") }
static var enterTitle: String { pick(ko: "제목을 입력해 주세요.", en: "Please enter a title.", ja: "タイトルを入力してください。") }
static var enterNoticeMin5: String { pick(ko: "공지를 5자 이상 입력해주세요.", en: "Please enter at least 5 characters for the notice.", ja: "お知らせは5文字以上で入力してください。") }
static var enterPeopleRange: String { pick(ko: "인원을 3~999명 사이로 입력해주세요.", en: "Please enter the number of people between 3 and 999.", ja: "参加人数は3〜999の範囲で入力してください。") }
static var enterPeopleRange: String { pick(ko: "인원을 3~999명 사이로 입력해주세요.", en: "Please enter the number of people between 3 and 999.", ja: "人数を3~999名の間で入力してください。") }
static var enterPassword6: String { pick(ko: "방 입장 비밀번호 6자리를 입력해 주세요.", en: "Please enter a 6-digit room entry password.", ja: "入室パスワード6桁を入力してください。") }
}
@@ -602,8 +669,8 @@ enum I18n {
static var backgroundOn: String { pick(ko: "배경 ON", en: "Back ON", ja: "背景 ON") }
static var backgroundOff: String { pick(ko: "배경 OFF", en: "Back OFF", ja: "背景 OFF") }
static var notice: String { pick(ko: "공지", en: "Notice", ja: "お知らせ") }
static var menuPan: String { pick(ko: "메뉴판", en: "Menu", ja: "メニュー") }
static var participants: String { pick(ko: "참여자", en: "Participants", ja: "リスナー ") }
static var menuPan: String { pick(ko: "메뉴판", en: "Menu", ja: "メニュー") }
static var participants: String { pick(ko: "참여자", en: "Participants", ja: "リスナー") }
}
enum LiveCancel {
@@ -626,9 +693,9 @@ enum I18n {
enum CreateContent {
static var selectFile: String { pick(ko: "파일 선택", en: "Select file", ja: "ファイル選択") }
static var selectTheme: String { pick(ko: "테마 선택", en: "Select theme", ja: "テーマ選択") }
static var selectTheme: String { pick(ko: "테마 선택", en: "Select theme", ja: "テーマ選択") }
static var uploadContentDescriptionHint: String { pick(ko: "내용을 입력하세요", en: "Enter the details.", ja: "内容を入力してください") }
static var uploadTitle: String { pick(ko: "콘텐츠 업로드", en: "Content upload", ja: "コンテンツのアップロード") }
static var uploadTitle: String { pick(ko: "콘텐츠 업로드", en: "Content upload", ja: "コンテンツ投稿") }
static var uploadDescription: String {
pick(
ko: "등록한 콘텐츠가 업로드 중입니다.\n콘텐츠 등록이 완료되면 알림을 보내드립니다.\n이 페이지를 나가도 콘텐츠는 자동으로 등록됩니다.",
@@ -656,7 +723,7 @@ enum I18n {
//
static var allAges: String { pick(ko: "전체 연령", en: "All ages", ja: "全年齢") }
static var over19: String { pick(ko: "19세 이상", en: "19+", ja: "成人") }
static var over19: String { pick(ko: "19세 이상", en: "19+", ja: "R-18") }
//
static var commentAllowed: String { pick(ko: "댓글 가능", en: "Comments allowed", ja: "コメント可") }
@@ -682,7 +749,7 @@ enum I18n {
}
enum Category {
static var all: String { pick(ko: "전체", en: "All", ja: "すべて") }
static var all: String { pick(ko: "전체", en: "All", ja: "") }
}
enum RankingSort {
@@ -711,16 +778,16 @@ enum I18n {
static var unfollow: String { pick(ko: "팔로우 취소", en: "Unfollow", ja: "フォロー解除") }
static var liveOnNow: String { pick(ko: "현재 라이브 중입니다.", en: "Live is currently ongoing.", ja: "現在ライブ配信中です。") }
static var cannotReserveOwnLive: String { pick(ko: "내가 만든 라이브는 예약할 수 없습니다.", en: "reserve a live you created is required.", ja: "自分が作成したライブは予約できません。") }
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 userBlocked: String { pick(ko: "차단하였습니다.", en: "User has been blocked.", ja: "ブロックしました。") }
static var userUnblocked: String { pick(ko: "차단이 해제 되었습니다.", en: "User has been unblocked.", ja: "ブロックを解除しました。") }
static var shareLinkCreateFailed: String { pick(ko: "공유링크를 생성하지 못했습니다.\n다시 시도해 주세요.", en: "Failed to create a share link.\nPlease try again.", ja: "共有リンクを作成できませんでした。\nもう一度お試しください。") }
static var cheersDeleteTitle: String { pick(ko: "응원글 삭제", en: "Delete Cheer", ja: "応援メッセージを削除") }
static var cheersDeleteTitle: String { pick(ko: "응원글 삭제", en: "Delete Cheer", ja: "応援削除") }
static var liveHeader: String { pick(ko: "라이브", en: "Live", ja: "LIVE") }
static var liveHeader: String { pick(ko: "라이브", en: "Live", ja: "ライブ") }
static var rouletteSettings: String { pick(ko: "룰렛 설정", en: "Roulette settings", ja: "ルーレット設定") }
static var menuSettings: String { pick(ko: "메뉴 설정", en: "Menu settings", ja: "メニュー設定") }
static var communityHeader: String { pick(ko: "커뮤니티", en: "Community", ja: "コミュニティ") }
@@ -747,7 +814,7 @@ enum I18n {
static var reservePaymentConfirmTitle: String { pick(ko: "결제 후 예약하기", en: "Pay and reserve", ja: "決済して予約") }
static var paidLiveEnterTitle: String { pick(ko: "유료 라이브 입장", en: "Enter paid live", ja: "有料ライブに入場") }
static var paidLiveEnterTitle: String { pick(ko: "유료 라이브 입장", en: "Enter paid live", ja: "有料ライブ入室") }
static func paidLiveEnterDesc(_ price: Int) -> String {
pick(ko: "\(price)캔을 차감하고\n라이브에 입장 하시겠습니까?", en: "\(price) cans will be used.\nDo you want to enter the live?", ja: "\(price)缶が消費されます。\nライブに入場しますか?")
}
@@ -806,7 +873,7 @@ enum I18n {
//
static var ageAll: String { pick(ko: "전체연령가", en: "All", ja: "全年齢") }
static var age19Plus: String { pick(ko: "19세 이상", en: "19+", ja: "成人") }
static var age19Plus: String { pick(ko: "19세 이상", en: "19+", ja: "R-18") }
static var random: String { pick(ko: "랜덤", en: "Irregular", ja: "ランダム") }
//
@@ -852,23 +919,23 @@ enum I18n {
// >
enum ProfileUpdate {
//
static var instagram: String { pick(ko: "인스타그램", en: "Instagram", ja: "インスタグラム") }
static var instagram: String { pick(ko: "인스타그램", en: "Instagram", ja: "Instagram") }
static var youtube: String { pick(ko: "유튜브", en: "YouTube", ja: "YouTube") }
static var website: String { pick(ko: "웹사이트", en: "Website", ja: "ウェブサイト") }
static var blog: String { pick(ko: "블로그", en: "Blog", ja: "ブログ") }
//
static var instagramUrlPlaceholder: String {
pick(ko: "인스타그램 URL", en: "Instagram URL", ja: "インスタグラムURL")
pick(ko: "인스타그램 URL", en: "Instagram URL", ja: "Instagram URL")
}
static var youtubeUrlPlaceholder: String {
pick(ko: "유튜브 URL", en: "YouTube URL", ja: "YouTubeのURL")
}
static var websiteUrlPlaceholder: String {
pick(ko: "웹사이트 URL", en: "Website URL", ja: "ウェブサイトURL")
pick(ko: "웹사이트 URL", en: "Website URL", ja: "ウェブサイト URL")
}
static var blogUrlPlaceholder: String {
pick(ko: "블로그 URL", en: "Blog URL", ja: "ブログURL")
pick(ko: "블로그 URL", en: "Blog URL", ja: "ブログ URL")
}
//
@@ -891,7 +958,7 @@ enum I18n {
pick(ko: "비밀번호가 일치하지 않습니다.", en: "Passwords do not match.", ja: "パスワードが一致しません。")
}
static var passwordRuleHint: String {
pick(ko: "영문, 숫자 포함 8자 이상의 비밀번호를 입력해 주세요.", en: "Enter a password of at least 8 characters with letters and numbers.", ja: "字と数字を含む8文字以上のパスワードを入力してください。")
pick(ko: "영문, 숫자 포함 8자 이상의 비밀번호를 입력해 주세요.", en: "Enter a password of at least 8 characters with letters and numbers.", ja: "英数字を含む8文字以上のパスワードを入力してください。")
}
static var passwordUpdated: String {
pick(ko: "비밀번호가 변경되었습니다.", en: "Password has been changed.", ja: "パスワードが変更されました。")