/* 日本語 (ja). Mirrors ko key shape (enforced by Translations type). */ import type { Translations } from '../types'; export const ja: Translations = { common: { appName: 'KINTEX AI 展示管理', loading: '確認中…', retry: '再試行', cancel: 'キャンセル', close: '閉じる', user: 'ユーザー', none: '-', unknown: '不明', error: 'エラー', }, lang: { title: '言語', subtitle: 'アプリの表示言語を選択します。選択はこの端末に保存されます。', ko: '한국어', en: 'English', zh: '中文', ja: '日本語', }, roles: { ORGANIZER: '主催者', EXHIBITOR: '出展社', CONTRACTOR: '施工業者', HALL_MANAGER: 'ホールマネージャー', }, nav: { register: '会員登録', forgotPassword: 'パスワード再設定', profile: 'マイ情報', checklist: '現場チェックリスト', inspection: '現場検査', ticketsIndex: 'マイチケット', ticketsSelect: 'チケット予約', tabHome: 'ホーム', tabField: '現場', tabGallery: 'ギャラリー', tabMore: 'その他', }, login: { brandTitle: '申請したその瞬間、\n施工後の写真を先に見る', brandCaption: 'AI 生成の予想画像 · 実際の施工結果と異なる場合があります', compromised: 'この端末にセキュリティリスク(root化・フック・デバッガ)が検出されました。個人情報とチケット保護のため、正常な端末での利用を推奨します。', title: 'ログイン', email: 'メール', emailPlaceholder: 'name@company.com', password: 'パスワード', passwordPlaceholder: 'パスワード', otpLabel: '二段階認証コード', otpPlaceholder: '6桁コード', otpHelper: '認証アプリ(TOTP)の6桁コード', remember: 'メールを記憶', submit: 'ログイン', submitOtp: '認証してログイン', forgot: 'パスワード再設定', register: '会員登録', errEmpty: 'メールとパスワードを入力してください。', errOtpEmpty: '二段階認証コードを入力してください。', errOtpRequired: '二段階認証コードが必要です。認証アプリのコードを入力してください。', errOtpInvalid: '認証コードが正しくないか、期限切れです。', errLocked: 'ログイン試行超過によりアカウントがロックされました。しばらくして再試行してください。', errGeneric: 'ログインに失敗しました。', }, register: { title: 'アカウント作成', email: 'メール', emailPlaceholder: 'name@company.com', name: '氏名', namePlaceholder: '山田太郎', password: 'パスワード', passwordPlaceholder: '8文字以上', passwordHelper: '8〜100文字', company: '会社名(任意)', companyPlaceholder: 'Zioinfo', invite: '招待コード(任意)', invitePlaceholder: 'イベント招待コード', submit: '登録する', goLogin: 'ログインへ', errInvalid: 'メール・氏名・パスワード(8文字以上)を確認してください。', errEmailTaken: 'すでに登録済みのメールです。', errGeneric: '会員登録に失敗しました。', doneJoined: '登録が完了し、招待イベントに連携されました。ログインしてください。', done: '登録が完了しました。ログインしてください。', }, forgot: { title: 'パスワード再設定', email: 'メール', emailPlaceholder: 'name@company.com', request: '再設定コードを要求', code: '再設定コード', codePlaceholder: '6桁コード', newPassword: '新しいパスワード', newPasswordPlaceholder: '8文字以上', newPasswordHelper: '8〜100文字', submit: 'パスワード変更', errEmail: 'メールを入力してください。', errFields: '再設定コードと新しいパスワード(8文字以上)を確認してください。', errCode: '再設定コードが正しくないか、期限切れです。', errRequest: 'リクエストに失敗しました。', errReset: '初期化に失敗しました。', }, home: { hello: '{{name}}さん、こんにちは', noEvent: '参加中のイベントがありません — 招待リンクまたは招待コードをご確認ください。', progress: '進行状況', stepApply: '申請', stepApprove: '承認', stepBuild: '施工', stepInspect: '検査', actionChecklist: '現場チェックリスト', actionInspection: '現場検査', actionGallery: 'ビジュアルギャラリー', memberInternal: 'KINTEX 内部アカウント(ホールマネージャー)', memberGeneral: '一般アカウント', }, field: { title: '現場業務', guide: '現場機能は施工業者(チェックリスト)とホールマネージャー(検査)の役割で提供されます。', checklistTitle: '現場チェックリスト', checklistDesc: '施工工程の確認 · 写真添付 · 検査依頼', inspectionTitle: '現場検査', inspectionDesc: '承認図面 vs 現場写真 · 適合/不適合の判定', }, gallery: { infoBar: 'AI 生成画像は契約・審査書類に使用できません — 施工基準は図面です', degraded: 'サーバーの画像履歴に接続できないため、サンプルを表示します(degraded)。', empty: 'まだ生成された画像がありません — 設計スタジオで予想写真を生成してください。', retry: '再生成', studioNote: '設計スタジオはデスクトップで編集', notice: 'AI 生成画像は契約・審査書類に使用できません(施工基準は図面)', }, more: { accountInternal: 'KINTEX 内部アカウント(ホールマネージャー)', accountGeneral: '一般アカウント', openProfile: 'マイ情報を開く', apiServer: 'API サーバー', serverStatus: 'サーバー状態', statusUp: '正常 (UP)', statusDown: '接続不可 (degraded)', signOut: 'ログアウト', version: 'KINTEX AI 展示管理 · v0.1.0', }, profile: { sectionInfo: 'マイ情報', sectionEventRoles: '参加イベントの役割', sectionSecurity: 'アカウント · セキュリティ', sectionBiometric: '生体認証ロック', sectionNotify: '通知設定', labelName: '氏名', labelUserId: 'ユーザー ID', labelGlobalRole: 'グローバル役割', labelTenant: '展示館(テナント)', labelType: '区分', typeInternal: 'KINTEX 内部(ホールマネージャー)', typeGeneral: '一般アカウント', photoChange: 'プロフィール写真を変更', photoTitle: 'プロフィール写真', photoSelect: '写真を選択してください', photoLibrary: 'ギャラリー', photoCamera: 'カメラ', photoApply: '適用', photoApplying: '適用中…', photoCaption: '円形で表示されます。', photoPending: '選択した写真はこの端末のみに表示されます — サーバー反映は準備中です。', photoPickerUnavailable: 'この端末では画像選択機能を利用できません。', loadErr: 'マイ情報を読み込めませんでした。', uploadErr: '写真のアップロードに失敗しました。', otpTitle: '二段階認証(OTP)', otpOnAuth: '有効 · Authenticator(OTP)', otpOnMethod: '有効 · {{method}}', otpOff: '未設定 — ログイン時に認証アプリ(TOTP)の二段階認証を使用します。', on: 'オン', off: 'オフ', bioTitle: '指紋 · Face ロック', bioDesc: 'オンにするとマイ情報を開く際に指紋または Face で再認証します。ログインの二段階認証はそのまま維持されます。', bioUnsupported: 'この端末は生体認証に対応していないか、指紋/Face が登録されていません。端末設定で生体情報を登録してから再試行してください。', bioFailed: '生体認証に失敗しました。再試行してください。', biometric: '生体認証', lockTitle: '生体認証ロック', lockHint: '指紋または Face でロックを解除してください。', notifyDeadline: '締切 D-day 通知', notifyApproval: '承認・検査通知', notifyPayment: '決済・精算通知', notifyNote: '通知設定はこの端末に保存されます。サーバー同期は準備中です。', signOut: 'ログアウト', signOutConfirm: 'ログアウトしますか?', version: 'KINTEX AI 展示管理 · マイ情報', }, tickets: { offline: 'オフライン — 保存済みチケットを表示中', badgeNotice: 'チケット QR で現場チェックインするとモバイルバッジに切り替わります', footNote: '表示中のチケットはサンプルです — チケットバックエンド(M10)連携時に実データへ置き換わります。', emptyTitle: '保有チケットがありません', emptyBody: '入場券を予約するとここにチケットが表示されます。', emptyBtn: '入場券を予約', detailTitle: '予約詳細 · キャンセル', }, vnav: { tabHome: 'ホーム', tabEvents: 'イベント', tabTickets: 'チケット', tabOnsite: '現場', tabMy: 'マイ', }, vhome: { hello: '{{name}}さん、ようこそ', subtitle: '今日の展示会を気軽に見て回りましょう', noEvent: '参加中のイベントがありません — 入場券を予約するとここに表示されます。', tileTickets: 'マイチケット', tileTicketsDesc: '入場QR · バッジ', tileEvents: 'イベント', tileEventsDesc: 'お知らせ · 日程', tileOnsite: '現場', tileOnsiteDesc: '混雑 · 駐車', aiTitle: 'AI 観覧アシスタント', aiDesc: '混雑・駐車・お知らせをリアルタイムに案内します。ブース検索・道案内も近日追加。', }, vevents: { title: 'イベント', empty: '参加中のイベントがありません — 公開のお知らせを表示します。', }, notices: { title: 'ライブお知らせ', live: 'LIVE', pinned: '固定', empty: '登録されたお知らせがありません。', degraded: 'お知らせを取得できませんでした(接続を確認)。', cat: { URGENT: '緊急', PROGRAM: 'プログラム', GENERAL: '一般', INFO: '案内', }, }, onsite: { segCongestion: '混雑度', segParking: '駐車', }, congestion: { overall: '総合混雑度', onSite: '現場人数', people: '{{n}}人', gates: '入場ゲート', parking: '駐車場', popular: '人気エリア', empty: '表示できる混雑情報がありません。', degraded: '混雑情報を取得できませんでした(接続を確認)。', }, parking: { title: '駐車状況', empty: '駐車場情報がありません。', degraded: '駐車情報を取得できませんでした(接続を確認)。', available: '空き {{n}}台', capacity: '全 {{n}}台', rate: '1時間 {{n}}ウォン', daily: '1日上限 {{n}}ウォン', passPrice: '{{n}}ウォン', buyPass: '駐車券購入', myPasses: 'マイ駐車券', noPasses: '保有する駐車券がありません。', loginRequired: '駐車券の購入・照会にはログインが必要です。', purchaseTitle: '事前駐車券の購入', selectLot: '駐車場', useDate: '利用日', plate: '車両番号(任意)', platePlaceholder: '例:123가4567', plateNote: '車両番号はマスキングされ保存されません。', payNote: '決済はシミュレーション(mock)です — 実際に請求されません。', confirm: '購入', purchaseErr: '駐車券の購入に失敗しました。', prevDay: '前の日', nextDay: '次の日', passStatus: { PAID: '決済完了', USED: '使用済み', CANCELLED: 'キャンセル', }, }, vmy: { tickets: 'マイチケット', ticketsDesc: '入場QR · バッジ切替', parking: 'マイ駐車券', parkingDesc: '駐車状況 · 事前駐車券', }, };