/* 日本語 (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: '予約詳細 · キャンセル',
  },
};
