export default {
  common: {
    appName: "Antdv Next Admin",
    add: "追加",
    edit: "編集",
    delete: "消去",
    view: "ビュー",
    search: "検索",
    reset: "リセット",
    submit: "提出する",
    cancel: "キャンセル",
    confirm: "確認する",
    save: "保存",
    export: "輸出",
    import: "輸入",
    refresh: "リフレッシュ",
    operate: "操作する",
    more: "もっと",
    back: "戻る",
    expand: "拡大する",
    collapse: "崩壊",
    ok: "わかりました",
    close: "近い",
    yes: "はい",
    no: "いいえ",
    loading: "読み込み中...",
    noData: "データなし",
    success: "成功",
    error: "エラー",
    warning: "警告",
    info: "情報",
    copySuccess: "正常にコピーされました",
    copyFailed: "コピーに失敗しました",
    actions: "アクション",
    status: "状態",
    createTime: "時間を作る",
    updateTime: "更新時間",
    menu: "メニュー",
    navigate: "ナビゲート",
    select: "選択",
    clear: "クリア",
    component: "成分",
    basicUsage: "基本的な使い方",
    advancedUsage: "高度な使用法",
    preview: "プレビュー",
    jsonContent: "JSONコンテンツ",
    jsonPlaceholder: "有効な JSON を入力してください...",
    jsonParseError: "無効な JSON 形式",
    invalidArray: "無効な配列形式です",
    formEdit: "フォーム編集",
    rawEdit: "生編集",
    addField: "フィールドの追加",
    fieldName: "フィールド名",
    fieldExists: "フィールドはすでに存在します",
    pleaseInput: "入力してください",
    fieldOrder: "フィールドの順序",
    moveUp: "上に移動",
    moveDown: "下に移動",
    enabled: "有効",
    disabled: "無効",
    inputTags: "タグを入力して Enter キーを押します",
    addSuccess: "正常に追加されました",
    pleaseInputFieldName: "フィールド名を入力してください",
    inputFieldName: "入力フィールド名",
    selectFieldType: "フィールドタイプを選択してください",
    typeString: "弦",
    typeNumber: "番号",
    typeBoolean: "ブール値",
    typeTags: "タグ",
    typeArray: "配列",
    typeObject: "物体",
    searchLabel: "{label} を検索",
  },
  codeEditor: {
    format: "フォーマット",
    minify: "圧縮",
    copy: "コピー",
    formatSuccess: "フォーマットに成功しました",
    minifySuccess: "圧縮に成功しました",
    copySuccess: "コピーに成功しました",
    copyFailed: "コピーに失敗しました",
    jsonError: "JSON形式が無効です",
  },
  menu: {
    dashboard: "ダッシュボード",
    organization: "組織",
    system: "システム",
    user: "ユーザー管理",
    role: "役割管理",
    permission: "メニュー管理",
    dict: "辞書",
    log: "システムログ",
    dept: "部門",
    config: "システム構成",
    file: "ファイル管理",
    examples: "例ハブ",
    examplesQuickStart: "クイックスタート",
    examplesFormInput: "フォームと入力",
    examplesContent: "コンテンツ編集者",
    examplesInteraction: "基本的なインタラクション",
    examplesBusinessScaffold: "ビジネス足場",
    examplesSecurityEngineering: "セキュリティとエンジニアリング",
    examplesIntegration: "統合とナビゲーション",
    examplesExceptionPages: "例外ページ",
    table: "テーブルの例",
    icon: "アイコンの例",
    form: "フォーム例",
    jsonInput: "JSON入力",
    i18nInput: "I18n入力",
    advancedFilter: "高度なフィルタービルダー",
    editor: "リッチテキストエディター",
    milkdown: "マークダウンエディター",
    modal: "モーダルの例",
    spin: "スピンの例",
    watermark: "透かし",
    requestAuth: "リクエスト/認証の流れ",
    rbacFlow: "RBAC フロー",
    proTableAdvanced: "プロテーブルアドバンスト",
    complexForm: "複雑な形状",
    uploadSystem: "アップロードシステム",
    importExport: "インポート/エクスポートの流れ",
    masterDetail: "マスター詳細",
    virtualTable: "仮想スクロールテーブル",
    stateCache: "状態とキャッシュ",
    observability: "可観測性",
    testing: "テスト",
    exception: "例外",
    exception403: "403",
    exception404: "404",
    exception500: "500",
    splitter: "スプリッター",
    tour: "ツアーガイド",
    qrcode: "QRコード",
    segmented: "セグメント",
    colorPicker: "カラーピッカー",
    profile: "プロフィール",
    about: "について",
  },
  layout: {
    logout: "ログアウト",
    logoutConfirm: "ログアウトしてもよろしいですか?",
    profile: "プロフィール",
    documentation: "ドキュメント",
    settings: "設定",
    theme: "テーマ",
    themeLight: "ライトテーマ",
    themeDark: "ダークテーマ",
    themeAuto: "フォローシステム",
    language: "言語",
    fullscreen: "全画面表示",
    exitFullscreen: "全画面表示を終了する",
    notifications: "通知",
    markAllRead: "すべて既読としてマーク",
    clearAll: "すべてクリア",
    noNotifications: "通知なし",
    notificationsEmptyHint: "クリア後​​、ここに新しい通知が表示されます",
    viewDetails: "詳細を見る",
    viewAllNotifications: "すべての通知を表示",
    searchPlaceholder: "検索メニュー...",
    noSearchResults: "一致するメニューが見つかりませんでした",
    recentMenus: "最近の訪問",
    aiCollabEnable: "AI 協同を有効化",
    aiCollabDisable: "AI 協同を無効化",
    aiAssistantTitle: "AI 協同",
    aiAssistantSubtitle: "現在ページのコンテキストで操作を支援",
    aiCurrentPage: "現在ページ",
    aiQuickActions: "クイックアクション",
    aiInputPlaceholder: "質問や指示を入力（Shift+Enter で改行）",
    aiEnterHint: "Enter 送信、Shift+Enter で改行",
    aiEmptyTitle: "AI 協同を開始",
    aiEmptyDescription:
      "ページ解説・データ要約・次のアクション提案を依頼できます",
    aiActionExplain: "現在ページを説明",
    aiActionSummary: "現在データを要約",
    aiActionRisk: "潜在リスクを特定",
    aiActionNextStep: "次のステップを提案",
    aiDemoReply:
      "リクエストを受け付けました。「{page}」ページの文脈を基に提案を生成しています。",
    languages: {
      zhCN: "簡体字中国語",
      enUS: "英語",
      jaJP: "日本語",
      koKR: "韓国語",
    },
    tabs: {
      refresh: "リフレッシュ",
      close: "近い",
      pin: "ピン",
      unpin: "固定を解除する",
      favorite: "お気に入りに追加",
      unfavorite: "お気に入りから削除",
      closeOthers: "その他を閉じる",
      closeAll: "すべて閉じる",
      closeLeft: "左を閉じる",
      closeRight: "右を閉じる",
      moreActions: "その他のタブアクション",
    },
  },
  settings: {
    title: "設定",
    themeColor: "テーマカラー",
    sidebarTheme: "サイドバーのテーマ",
    light: "ライト",
    dark: "暗い",
    layoutMode: "レイアウトモード",
    vertical: "垂直",
    horizontal: "水平",
    pageAnimation: "ページアニメーション",
    fade: "フェード",
    slideLeft: "左にスライド",
    slideRight: "右にスライド",
    slideUp: "スライドアップ",
    slideDown: "スライドダウン",
    zoom: "ズーム",
    zoomBig: "大きくズーム",
    none: "なし",
    grayMode: "グレーモード",
    grayModeHint: "アプリ全体でグレースケール モードを有効にする",
    rememberTabState: "タブの状態を記憶する",
    rememberTabStateHint: "更新後に以前に開いていたタブを自動的に復元する",
    aiCollab: "AI チャット分割表示",
    aiCollabHint:
      "トップナビゲーションバーに AI チャットのエントリアイコンを表示します",
    aiCollabHintMobile: "モバイルでは AI チャット分割表示を利用できません",
    reset: "設定をリセットする",
    confirmReset: "すべての設定をリセットしてもよろしいですか?",
    colors: {
      blue: "デイブレイクブルー",
      green: "ポーラーグリーン",
      purple: "ゴールデンパープル",
      red: "ダストレッド",
      orange: "サンセットオレンジ",
      cyan: "シアン",
    },
  },
  login: {
    title: "ユーザーログイン",
    username: "ユーザー名",
    password: "パスワード",
    remember: "私を覚えてますか",
    login: "ログイン",
    forgotPassword: "パスワードをお忘れですか",
    noAccount: "アカウントをお持ちでない場合は、",
    register: "今すぐ登録してください",
    usernamePlaceholder: "ユーザー名を入力してください",
    passwordPlaceholder: "パスワードを入力してください",
    usernameRequired: "ユーザー名を入力してください",
    passwordRequired: "パスワードを入力してください",
    loginSuccess: "ログイン成功",
    loginFailed: "ログインに失敗しました",
    slideToVerify: "スライドして確認してください",
    verifySuccess: "確認済み",
  },
  dashboard: {
    welcome: "おかえり",
    subtitle: "ビジネス指標とシステムステータスをリアルタイムで監視します",
    systemStable: "システムが安定している",
    todayFocus: "今日の焦点",
    compareYesterday: "昨日との比較 {value}",
    goodMorning: "おはよう",
    goodAfternoon: "こんにちは",
    goodEvening: "こんばんは",
    goodNight: "おやすみ",
    totalUsers: "総ユーザー数",
    totalOrders: "総注文数",
    totalRevenue: "総収益",
    conversionRate: "コンバージョン率",
    newUsers: "新規ユーザー",
    returningUsers: "復帰ユーザー",
    enterpriseUsers: "エンタープライズユーザー",
    salesTrend: "売上推移",
    userDistribution: "ユーザーの分布",
    recentActivities: "最近の活動",
    quickActions: "クイックアクション",
    viewMore: "もっと見る",
    minutesAgo: "{value} 分前",
    hoursAgo: "{value} 時間前",
    activities: {
      permissionUpdated: "管理者がシステム メニューの権限設定を更新しました",
      userCreated: "ユーザーSunnyを作成し、操作ロールを割り当てました",
      orderTaskDone: "今日の注文統計タスクが完了しました",
      riskPolicyReleased:
        "リスク管理戦略バージョンが本番環境にリリースされました",
    },
    activityTags: {
      system: "システム",
      user: "ユーザー",
      task: "タスク",
      release: "リリース",
    },
    months: {
      jan: "1月",
      feb: "2月",
      mar: "3月",
      apr: "4月",
      may: "5月",
      jun: "ジュン",
      jul: "7月",
      aug: "8月",
    },
  },
  user: {
    title: "ユーザー管理",
    username: "ユーザー名",
    email: "電子メール",
    realName: "本名",
    phone: "電話",
    gender: "性別",
    male: "男",
    female: "女性",
    avatar: "アバター",
    role: "役割",
    status: "状態",
    active: "アクティブ",
    inactive: "非アクティブ",
    createUser: "ユーザーの作成",
    editUser: "ユーザーの編集",
    deleteUser: "ユーザーの削除",
    confirmDelete: "このユーザーを削除してもよろしいですか?",
    usernameRequired: "ユーザー名を入力してください",
    usernameLength: "ユーザー名の長さは 3 ～ 20 文字である必要があります",
    emailRequired: "メールアドレスを入力してください",
    selectRole: "少なくとも 1 つの役割を選択してください",
    bio: "バイオ",
    updateSuccess: "ユーザーは正常に更新されました",
    createSuccess: "ユーザーが正常に作成されました",
    resetPassword: "パスワードのリセット",
    confirmResetPassword:
      "このユーザーのパスワードをリセットしてもよろしいですか?",
    exportSuccess: "エクスポートに成功しました",
    exportFailed: "エクスポートに失敗しました",
    importSuccess: "{count} レコードが正常にインポートされました",
    importFailed: "インポートに失敗しました。ファイル形式を確認してください",
    importEmpty: "ファイルが空であるか、形式が正しくありません",
    importFormatError:
      "CSV 形式が正しくありません。「ユーザー名」、「名前」、「電子メール」列を含める必要があります",
    age: "年",
    tags: "タグ",
    address: "住所",
    department: "部門",
    position: "位置",
    info: "ユーザー情報",
    settings: "設定",
    theme: "テーマ",
    language: "言語",
  },
  role: {
    title: "役割管理",
    name: "役割名",
    code: "役割コード",
    description: "説明",
    permissions: "権限",
    createRole: "ロールの作成",
    editRole: "役割の編集",
    deleteRole: "役割の削除",
    confirmDelete: "この役割を削除してもよろしいですか?",
    assignPermissions: "権限の割り当て",
    codeRequired: "役割コードを入力してください",
    codePattern:
      "役割コードは文字、数字、アンダースコア、ハイフンのみをサポートします",
    selectPermissions: "権限を選択してください",
    updateSuccess: "役割が正常に更新されました",
    createSuccess: "ロールが正常に作成されました",
  },
  permission: {
    title: "メニュー管理",
    name: "メニュー名",
    code: "許可コード",
    type: "タイプ",
    menu: "メニュー",
    button: "ボタン",
    api: "API",
    resource: "リソース",
    action: "アクション",
    createPermission: "メニューの作成",
    editPermission: "編集メニュー",
    deletePermission: "メニューの削除",
    confirmDelete: "このメニューとその子メニューを削除してもよろしいですか?",
    expandAll: "すべて展開",
    collapseAll: "すべて折りたたむ",
    parentMenu: "親メニュー",
    createChildMenu: "子メニューの作成",
    visible: "見える",
    show: "見せる",
    hide: "隠れる",
    routePath: "ルートパス",
    componentPath: "コンポーネントのパス",
    sort: "選別",
    addChild: "子の追加",
    codeRequired: "許可コードを入力してください",
    codePattern:
      "許可コードは文字、数字、アンダースコア、ハイフンのみをサポートします",
    menuRouteRequired: "メニュータイプにはルートパスが必要です",
    icon: "アイコン",
    iconPlaceholder: "例えばユーザー概要",
    visibleStatus: "可視性",
    updateSuccess: "メニューが正常に更新されました",
    createSuccess: "メニューが正常に作成されました",
  },
  dict: {
    title: "辞書",
    dictType: "辞書の種類",
    dictData: "辞書データ",
    typeName: "型名",
    typeCode: "タイプコード",
    description: "説明",
    dictLabel: "ラベル",
    dictValue: "価値",
    sort: "選別",
    remark: "述べる",
    enabled: "有効",
    disabled: "無効",
    createType: "タイプの作成",
    editType: "編集タイプ",
    deleteType: "削除タイプ",
    createData: "データの作成",
    editData: "データの編集",
    deleteData: "データの削除",
    confirmDeleteType: "辞書タイプ「{name}」を削除してもよろしいですか?",
    confirmDeleteData: "辞書データ「{label}」を削除してもよろしいですか？",
    typeNamePlaceholder: "タイプ名を入力してください",
    typeCodePlaceholder: "タイプコードを入力してください",
    descriptionPlaceholder: "説明を入力してください",
    labelPlaceholder: "ラベルを入力してください",
    valuePlaceholder: "値を入力してください",
    remarkPlaceholder: "備考を入力してください",
    selectTypeHint: "左側から辞書の種類を選択してください",
    requiredFields: "必須フィールドに入力してください",
    deleteSuccess: "正常に削除されました",
    deleteFailed: "削除に失敗しました",
    updateSuccess: "正常に更新されました",
    createSuccess: "正常に作成されました",
    operateFailed: "操作が失敗しました",
    loadTypeFailed: "辞書タイプのロードに失敗しました",
    loadDataFailed: "辞書データの読み込みに失敗しました",
    dictDataTitle: "辞書データ - {name}",
    confirmDelete: "削除の確認",
  },
  table: {
    title: "テーブルの例",
    total: "{total} アイテムの合計",
    page: "ページ {page}",
    pageSize: "{size} 1 ページあたりの項目",
    goTo: "に行く",
  },
  form: {
    title: "フォーム例",
    basicInfo: "基本情報",
    advancedInfo: "高度な情報",
    submit: "提出する",
    reset: "リセット",
    validateSuccess: "検証に合格しました",
    validateFailed: "検証に失敗しました",
  },
  exampleTable: {
    userList: "ユーザーリスト",
    subTitle: "ProTable の例",
    createUser: "ユーザーの作成",
    editUser: "ユーザーの編集",
    deleteSuccess: "正常に削除されました",
    updateSuccess: "正常に更新されました",
    createSuccess: "正常に作成されました",
  },
  notificationCenter: {
    kicker: "通知ハブ",
    title: "通知センター",
    subtitle:
      "高速なフィルタリングと詳細な追跡により、システムの更新、メッセージ、タスクの結果を 1 か所で追跡します。",
    searchPlaceholder: "タイトルまたは内容で通知を検索する",
    listTitle: "お知らせ一覧",
    listSubtitle: "{count} 通知が一致しました",
    emptyFiltered: "一致する通知はありません",
    metrics: {
      total: "合計通知数",
      unread: "未読",
      today: "今日",
    },
    filters: {
      allStatus: "すべてのステータス",
      unread: "未読",
      read: "読む",
      allTypes: "全種類",
      system: "システムアップデート",
      message: "メッセージ",
      security: "セキュリティ警告",
      task: "タスク完了",
      error: "エラーアラート",
    },
    status: {
      read: "読む",
      unread: "未読",
    },
    meta: {
      type: "タイプ",
      receivedAt: "受信場所",
    },
    actions: {
      markAsRead: "既読としてマークする",
      openRelated: "関連ページを開く",
      delete: "通知の削除",
    },
    placeholder: {
      title: "通知を選択して詳細を表示します",
      desc: "左側のリストから項目を選択すると、完全なコンテンツと関連アクションがここに表示されます。",
    },
  },
  exampleCaptcha: {
    title: "キャプチャコンポーネントの例",
    description:
      "カスタマイズ可能なスタイルとコールバックを備えた一般的なフロントエンド キャプチャ インタラクション コンポーネント。",
    slider: "スライダーキャプチャ",
    rotate: "キャプチャを回転する",
    puzzle: "パズルキャプチャ",
    point: "ポイントキャプチャ",
    success: "検証に合格しました！",
    fail: "検証に失敗しました。再試行してください",
  },
  exampleSpin: {
    title: "スピンの例",
    description:
      "基本的な読み込み、サイズ、カスタム インジケーター、進行状況、遅延、フルスクリーンなど、Spin コンポーネントのさまざまな使用法を示します。",
    basic: "基本とサイズ",
    tip: "カスタムチップ",
    nested: "カードのロード",
    delay: "遅れ",
    customIndicator: "カスタムインジケーター",
    percent: "進捗",
    customStyle: "カスタムスタイル",
    fullscreen: "全画面表示",
    showFullscreen: "全画面表示",
    loadingState: "読み込み状態:",
  },
  exampleEditor: {
    title: "リッチ テキスト エディターの例",
    description:
      "画像のアップロード、リンクの挿入、書式設定などをサポートする Tiptap ベースのリッチ テキスト エディター。",
    basicUsage: "基本的な使い方",
    placeholder: "内容を入力してください...",
    disabledState: "無効状態",
    customHeight: "カスタム高さ",
    contentPreview: "コンテンツのプレビュー",
    htmlOutput: "HTML出力",
    noContent: "コンテンツなし",
    save: "コンテンツの保存",
    clear: "クリアコンテンツ",
    loadDemo: "デモをロードする",
    savedMessage: "保存されたコンテンツ",
    clearedMessage: "クリアされたコンテンツ",
    demoLoadedMessage: "デモコンテンツが読み込まれました",
  },
  exampleForm: {
    description: "さまざまなフォーム コントロールを示す高度な ProForm の例",
    age: "年",
    ageRange: "年齢は 1 ～ 150 歳である必要があります",
    interests: "興味のあること",
    birthDate: "生年月日",
    score: "スコア",
    progress: "進捗",
    bioPlaceholder: "略歴を入力してください",
    submitSuccess: "無事に提出されました！",
    roles: {
      admin: "管理者",
      user: "一般ユーザー",
      guest: "ゲスト",
    },
    interestOptions: {
      reading: "読む",
      sports: "スポーツ",
      music: "音楽",
      travel: "旅行",
    },
  },
  exampleIcon: {
    title: "アイコンのショーケース",
    subtitle: "Icon コンポーネントと IconPicker の統合デモ",
    capabilities:
      "サポート: ローカル SVG、antdv-next アイコン、Iconify (オフライン セット + オンライン検索)",
    renderTitle: "3 つのレンダリング モード",
    renderSubtitle:
      "任意のサンプルをクリックして、以下の IconPicker に適用します。",
    pickerTitle: "アイコンピッカーのデモ",
    pickerSubtitle:
      "オンライン検索をトリガーするには、2 文字以上を入力します。オフラインアイコンセットはカテゴリ別に用意されています",
    modelLabel: "アイコンの値",
    previewLabel: "ライブプレビュー",
    copy: "値のコピー",
    copySuccess: "アイコン値がコピーされました",
    copyEmpty: "最初にアイコンを選択してください",
    copyFailed: "コピーに失敗しました。手動でコピーしてください",
    reset: "デフォルトにリセット",
    sourceLabel: "ソース",
    sourceSvg: "ローカルSVGシンボル",
    sourceAntdv: "antdv-next コンポーネントのアイコン",
    sourceIconify: "アイコン化",
    sourceOnline: "オンライン結果をアイコン化する",
    sourceUnknown: "未知",
    guidesTitle: "統合ガイド",
    guidesSubtitle:
      "2 つの一般的な統合パス: SVG Symbol と Iconify (オンライン + オフライン)",
    svgGuideTitle: "SVGの追加と使用方法",
    iconifyGuideTitle: "アイコン化の使い方",
    guideStepSvg1:
      '<symbol id="..."> 定義をアプリ ルート (またはレイアウト ルート) に挿入します。',
    guideStepSvg2:
      "svg:icon-id を持つ Icon コンポーネントを使用します。 svg:アイコン-デモ-オービット。",
    guideStepSvg3:
      "IconPicker のローカル SVG 検出の場合、src/assets/icons の下にファイルを配置し、svgIcons を渡します。",
    guideStepIconify1:
      "iconify 名を直接渡します: ri:home-line / mdi:account / ion:apps-outline。",
    guideStepIconify2:
      "IconPicker には、ネットワークなしで利用できるオフライン セット (ri / mdi / ion) が含まれています。",
    guideStepIconify3:
      "[すべて/オンライン] カテゴリに、Iconify オンラインを検索するためのキーワード (少なくとも 2 文字) を入力します。",
    modeSvg: "SVG スプライト",
    modeAntdv: "antdv-next",
    modeIconify: "アイコン化",
    sampleHint: "クリックして適用",
  },
  exampleWatermark: {
    title: "透かしの例",
    description:
      "グローバル ウォーターマーク機能 - ウォーターマーク効果をリアルタイムで設定およびプレビューする",
    enableGlobal: "グローバルウォーターマークを有効にする",
    content: "透かしテキスト",
    fontSize: "フォントサイズ",
    rotate: "回転",
    opacity: "不透明度",
    gapX: "水平方向のギャップ",
    gapY: "垂直ギャップ",
    preview: "ローカルプレビュー",
    previewText: "この領域はウォーターマーク効果をプレビューするための領域です",
  },
  exampleModal: {
    title: "プロモーダルのデモ",
    description:
      "ドラッグ、フルスクリーン、エッジのサイズ変更、ビューポートの制約を備えた antdv-next モーダルの強化されたラッパー。",
    openDefault: "デフォルトモーダルを開く",
    openWide: "ワイドモーダルを開く",
    width: "モーダル幅",
    dataCount: "データサイズ",
    draggable: "タイトルをドラッグ",
    resizable: "エッジのサイズ変更",
    fullscreenable: "全画面ボタン",
    mask: "マスク",
    maskClosable: "マスクをクリックして閉じる",
    keyboard: "ESC で閉じる",
    modalTitle: "ドラッグ可能/サイズ変更可能な ProModal",
    hint: "右上のアクションでは、全画面表示と閉じることができます。タイトルをドラッグして移動します。サイズを変更するには、端/角をドラッグします。",
    contentTitle: "機能のデモンストレーション",
    contentDescription:
      "次の長いリストは、スクロールとビューポート境界の動作を示すために使用されます。",
    formKeyword: "キーワード",
    formKeywordPlaceholder: "キーワードを入力してください",
    formRemark: "述べる",
    formRemarkPlaceholder: "備考を入力してください",
    rowText: "デモ データ行 #{index}",
    confirmSuccess: "正常に確認されました",
  },
  exampleException: {
    "403title": "403",
    "403description":
      "申し訳ありませんが、このページにアクセスする権限がありません",
    "404title": "404",
    "404description": "申し訳ありませんが、アクセスしたページは存在しません",
    "500title": "500",
    "500description": "申し訳ありませんが、サーバーがエラーを報告しています",
  },
  editor: {
    insertLink: "リンクを挿入",
    linkUrl: "リンクURL",
    linkText: "リンクテキスト",
    linkTextPlaceholder: "リンクテキスト",
    defaultPlaceholder: "内容を入力してください...",
    imageOnly: "画像ファイルのみ許可されます",
    imageSizeLimit: "画像サイズは5MBを超えることはできません",
    imageInsertSuccess: "画像が正常に挿入されました",
    imageUploadFailed: "画像のアップロードに失敗しました",
    enterLinkUrl: "リンクURLを入力してください",
  },
  iconPicker: {
    selectIcon: "アイコンを選択",
    searchPlaceholder: "アイコン名を検索...",
    onlineSearchFailed: "オンライン検索に失敗しました",
    onlineSearchFailedDetail: "オンライン検索が失敗しました: {message}",
  },
  captcha: {
    clickInOrder: "順番にクリックしてください:",
    refresh: "リフレッシュ",
  },
  about: {
    description:
      "Vue 3 + TypeScript + Ant Design Vue に基づいて構築された最新の管理フレームワーク。本番環境に対応しており、機能が豊富で、拡張も簡単です。",
    projectInfo: "プロジェクト情報",
    projectName: "プロジェクト名",
    version: "バージョン",
    license: "ライセンス",
    author: "著者",
    email: "電子メール",
    documentation: "ドキュメント",
    techStack: "技術スタック",
    features: "コア機能",
    feature1: "Vue 3 構成 API",
    feature1Desc:
      "ロジックの再利用、コード構成、および事後対応パフォーマンスの向上",
    feature2: "フル TypeScript Strict モード",
    feature2Desc: "開発時にエラーを検出するための完全な型推論",
    feature3: "完全なRBAC許可システム",
    feature3Desc:
      "すぐに使用できるページ、ボタン、フィールド、および API レベルのアクセス制御",
    feature4: "動的なルートとメニューの生成",
    feature4Desc:
      "ユーザーの役割に基づいてルートとサイドバー メニューを自動生成",
    feature5: "i18n 多言語サポート",
    feature5Desc: "簡単なロケール拡張機能を備えた組み込みの中国語と英語",
    feature6: "ライト/ダークテーマの切り替え",
    feature6Desc:
      "自動システム設定検出機能を備えた 6 つのプリセットテーマカラー",
    feature7: "ProTable / ProForm コンポーネント",
    feature7Desc:
      "一般的なビジネス シナリオをカバーする構成主導のテーブルとフォーム",
    feature8: "モックデータ開発モード",
    feature8Desc:
      "フロントエンドとバックエンドの並行開発のための組み込みモック システム",
  },
  proForm: {
    enterPlaceholder: "{label}を入力してください",
    selectPlaceholder: "{label}を選択してください",
    uploadFile: "ファイルをアップロードする",
  },
  proUpload: {
    uploadFile: "ファイルをアップロードする",
    uploadImage: "画像をアップロードする",
    dragHint:
      "ファイルをクリックまたはこの領域にドラッグしてアップロードします",
    fileSizeExceed: "ファイル サイズは {size}MB を超えてはなりません",
    fileTypeNotAllowed: "許可されていないファイルの種類",
  },
  proStepForm: {
    prev: "前の",
    next: "次",
  },
  proTable: {
    total: "{total} アイテムの合計",
    density: "テーブル密度",
    checkAll: "すべて選択",
    indexColumn: "インデックス列",
    fixLeft: "ピン左",
    fixRight: "右にピン留めする",
    densityLarge: "広々とした",
    densityMiddle: "デフォルト",
    densitySmall: "コンパクト",
    loadDataFailed: "データのロードに失敗しました",
  },
  profile: {
    title: "プロフィール",
    basicInfo: "基本情報",
    security: "安全",
    username: "ユーザー名",
    email: "電子メール",
    phone: "電話",
    role: "役割",
    joinDate: "参加日",
    changePassword: "パスワードを変更する",
    currentPassword: "現在のパスワード",
    oldPassword: "以前のパスワード",
    newPassword: "新しいパスワード",
    confirmPassword: "パスワードを認証する",
    enterCurrentPassword: "現在のパスワードを入力してください",
    enterNewPassword: "新しいパスワードを入力してください",
    enterConfirmPassword: "新しいパスワードをもう一度入力してください",
    passwordMismatch: "パスワードが一致しません",
    passwordMinLength: "パスワードは6文字以上である必要があります",
    passwordChangeSuccess: "パスワードが正常に変更されました",
    passwordChangeFailed: "パスワードの変更に失敗しました",
    passwordTip:
      "ヒント: パスワードは少なくとも 6 文字にする必要があり、文字、数字、特殊文字を含めることをお勧めします。",
    updateSuccess: "更新に成功しました",
    updateFailed: "アップデートに失敗しました",
  },
  error: {
    "403": "アクセス禁止",
    "404": "ページが見つかりません",
    "500": "サーバーエラー",
    backHome: "ホームに戻る",
    pageNotFound: "申し訳ありませんが、アクセスしたページは存在しません",
    noPermission:
      "申し訳ありませんが、このページにアクセスする権限がありません",
    serverError: "申し訳ありませんが、サーバーがエラーを報告しています",
  },
  validation: {
    required: "この項目は必須です",
    email: "有効なメールアドレスを入力してください",
    phone: "有効な電話番号を入力してください",
    idCard: "有効な ID カード番号を入力してください",
    url: "有効な URL を入力してください",
    minLength: "最小長は {min} 文字です",
    maxLength: "最大長は {max} 文字です",
    lengthRange: "長さは {min} と {max} の間である必要があります",
    numberRange: "値は {min} と {max} の間である必要があります",
    min: "最小値は {min} です",
    max: "最大値は {max} です",
    pattern: "無効な形式",
    usernamePattern:
      "ユーザー名には文字、数字、アンダースコアのみを含めることができます",
    passwordPattern:
      "パスワードは 8 文字以上で、文字と数字を含める必要があります",
    confirmPassword: "2 つのパスワードが一致しません",
  },
  dept: {
    title: "部門管理",
    organizationStructure: "組織",
    searchDept: "検索部門",
    deptName: "部署名",
    parentDept: "親部門",
    leader: "リーダー",
    phone: "電話",
    email: "電子メール",
    sort: "選別",
    remark: "述べる",
    status: "状態",
    enabled: "有効",
    disabled: "無効",
    createDept: "部門の作成",
    editDept: "編集部",
    deleteDept: "部門の削除",
    addChildDept: "子部門の追加",
    childDepts: "こども部門",
    noneTopLevel: "なし (トップレベル)",
    noneTopLevelDept: "なし（最上位部門）",
    selectDeptNode: "左側の部門ノードを選択してください",
    confirmDelete: "削除の確認",
    confirmDeleteContent: "部門「{name}」を削除してもよろしいですか?",
    hasChildrenWarning:
      "この部門には子部門があります。最初に子部門を削除してください。",
    deleteSuccess: "正常に削除されました",
    deleteFailed: "削除に失敗しました",
    updateSuccess: "正常に更新されました",
    createSuccess: "正常に作成されました",
    operateFailed: "操作が失敗しました",
    pleaseEnterDeptName: "部署名を入力してください",
    pleaseEnterLeader: "リーダーを入力してください",
    pleaseEnterPhone: "電話番号を入力してください",
    pleaseEnterEmail: "メールアドレスを入力してください",
    pleaseEnterRemark: "備考を入力してください",
    loadDataFailed: "部門データの読み込みに失敗しました",
    createTime: "時間を作る",
    updateTime: "更新時間",
  },
  config: {
    title: "システム構成",
    configGroups: "構成グループ",
    configName: "設定名",
    configKey: "設定キー",
    configValue: "設定値",
    valueType: "値のタイプ",
    group: "グループ",
    sort: "選別",
    description: "説明",
    builtIn: "ソース",
    createConfig: "構成の作成",
    editConfig: "構成の編集",
    deleteConfig: "構成の削除",
    confirmDelete: "削除の確認",
    confirmDeleteContent: "設定「{name}」を削除してもよろしいですか?",
    deleteSuccess: "正常に削除されました",
    deleteFailed: "削除に失敗しました",
    updateSuccess: "正常に更新されました",
    createSuccess: "正常に作成されました",
    operateFailed: "操作が失敗しました",
    requiredFields: "必須フィールドに入力してください",
    loadConfigFailed: "設定のロードに失敗しました",
    valueTypes: {
      string: "弦",
      number: "番号",
      boolean: "ブール値",
      json: "JSON",
    },
    groups: {
      basic: "基本構成",
      security: "セキュリティ構成",
      upload: "構成のアップロード",
      notification: "通知設定",
    },
    builtInTypes: {
      builtIn: "内蔵",
      custom: "カスタム",
    },
    placeholders: {
      configName: "構成名を入力してください",
      configKey: "例えばサイト名",
      configValue: "設定値を入力してください",
      jsonFormat: "JSON形式",
      description: "説明を入力してください",
    },
  },
  file: {
    title: "ファイル管理",
    fileName: "ファイル名",
    ext: "拡大",
    size: "ファイルサイズ",
    storage: "ストレージの種類",
    uploader: "アップローダー",
    uploadTime: "アップロード時間",
    action: "アクション",
    delete: "消去",
    confirmDelete: "削除の確認",
    confirmDeleteContent: "ファイル「{name}」を削除してもよろしいですか?",
    deleteSuccess: "正常に削除されました",
    deleteFailed: "削除に失敗しました",
    loadFailed: "ファイルリストのロードに失敗しました",
    storageType: {
      local: "地元",
      oss: "OSS",
      cos: "COS",
    },
    extType: {
      imageJpg: "画像(jpg)",
      imagePng: "画像(png)",
      pdf: "PDF",
      word: "言葉",
      excel: "エクセル",
      zip: "アーカイブ",
      video: "ビデオ",
      text: "文章",
      ppt: "パワーポイント",
      svg: "SVG",
    },
  },
  log: {
    title: "システムログ",
    operationLog: "操作ログ",
    loginLog: "ログインログ",
    clearLog: "ログをクリアする",
    confirmClear: "クリアの確認",
    confirmClearOperation:
      "すべての操作ログをクリアしてもよろしいですか?この操作は元に戻すことができません。",
    confirmClearLogin:
      "すべてのログイン ログをクリアしてもよろしいですか?この操作は元に戻すことができません。",
    clearSuccess: "無事クリアしました",
    clearFailed: "クリア失敗",
    operationUser: "オペレーター",
    operationModule: "モジュール",
    operationType: "操作の種類",
    operationDescription: "説明",
    requestMethod: "方法",
    ipAddress: "IPアドレス",
    duration: "間隔",
    operationTime: "稼働時間",
    username: "ユーザー名",
    browser: "ブラウザ",
    os: "OS",
    message: "メッセージ",
    loginTime: "ログイン時間",
    success: "成功",
    fail: "失敗した",
    actionTypes: {
      login: "ログイン",
      logout: "ログアウト",
      create: "作成する",
      update: "アップデート",
      delete: "消去",
      export: "輸出",
      import: "輸入",
      other: "他の",
    },
    modules: {
      userManagement: "ユーザー管理",
      roleManagement: "役割管理",
      menuManagement: "メニュー管理",
      dictionary: "辞書",
      systemLogin: "システムログイン",
      profile: "プロフィール",
      dashboard: "ダッシュボード",
    },
    loadOperationLogFailed: "操作ログの読み込みに失敗しました",
    loadLoginLogFailed: "ログインログの読み込みに失敗しました",
  },
  "menu.external": "外部ページ",
  "menu.externalIframe": "IFrame",
  "menu.externalLink": "外部リンク",
  "menu.externalTypescript": "TypeScript",
  "menu.externalAntdvNext": "次へ",
  "menu.externalVite": "ヴィーテ",
  "menu.externalVue": "Vue.js",
  "external.link.openedTitle": "新しいタブで開きます",
  "external.link.openedSubTitle":
    "ブラウザがポップアップをブロックした場合は、下のボタンをクリックして再度開きます。",
  "external.link.openVite": "オープンバイト",
  "external.link.openVue": "ビューを開く",
  examples: {
    scaffold: {
      stateCache: {
        title: "状態とキャッシュの例",
        description:
          "Pinia の永続性 (更新後も存続) とキープアライブ ローカル キャッシュ (タブの切り替え後も存続) を示します。",
        piniaSection: "1. Pinia 永続状態",
        keywordLabel: "キーワード",
        keywordPlaceholder: "ページの更新後も保持されます",
        counterLabel: "カウンタ",
        notesLabel: "注意事項",
        notesPlaceholder: "複数行の自動永続化をサポート",
        resetButton: "リセット状態",
        pinTabButton: "ピン電流タブ",
        lastPersistTime: "前回の永続時間:",
        keepAliveSection: "2.キープアライブローカルキャッシュ",
        panelA: "パネルA",
        panelB: "パネルB",
        panelADesc: "パネルA（切り替え時に破壊されません）",
        panelAInputPlaceholder:
          "コンテンツを入力し、B に切り替えて元に戻ります - 引き続き保持されます",
        localCountLabel: "ローカルカウント:",
        panelBDesc: "パネル B (キープアライブによってもキャッシュされます)",
        panelBTextPlaceholder:
          "コンテンツを入力し、タブを切り替えて戻ります - 引き続き保持されます",
        pinTabSuccess: "タブピンのステータスが切り替わります",
      },
      uploadSystem: {
        title: "アップロードシステム例",
        description:
          "ドラッグ アンド ドロップによるアップロード + 進行状況 + 失敗時の再試行 + 画像プレビュー。ビジネス統合の準備が整います。",
        uploading: "アップロード中",
        success: "成功",
        failed: "失敗した",
        dragText:
          "ファイルをクリックまたはこの領域にドラッグしてアップロードします",
        dragHint:
          "画像とドキュメントをサポートします。アップロード プロセスは、再試行ロジックを検証するために失敗をランダムにシミュレートします。",
        retryButton: "再試行失敗",
        clearButton: "リストをクリア",
        failureRate: "故障率:",
        previewTitle: "ファイルのプレビュー",
        uploadFailedError: "ネットワークの変動によりアップロードに失敗しました",
        uploadSuccessMsg: "アップロード成功: {name}",
        uploadFailedMsg: "アップロードに失敗しました: {name}",
        retryMsg: "{count} 失敗したファイルを再試行しています",
        previewNotSupported:
          "このファイル形式はプレビューをサポートしていません",
      },
      importExport: {
        title: "インポート/エクスポートの流れの例",
        description:
          "テンプレートのダウンロード、CSV インポートの検証、エラー通知のエクスポート、および現在のデータのエクスポートを示します。",
        downloadTemplate: "テンプレートをダウンロード",
        importCsv: "CSVのインポート",
        exportCurrent: "現在のデータをエクスポートする",
        exportErrorReceipt: "エクスポートエラーの受信",
        totalRows: "合計行数",
        successRows: "成功した行",
        updatedRows: "更新された行",
        failedRows: "失敗した行",
        importHint:
          "ヘッダーはコード、名前、カテゴリ、価格、在庫である必要があります。行はコードによって更新/挿入されます。",
        colCode: "コード",
        colName: "名前",
        colCategory: "カテゴリ",
        colPrice: "価格",
        colStock: "ストック",
        errorRowNo: "行番号",
        errorReason: "エラーの理由",
        errorRaw: "生データ",
        emptyFile: "ファイルが空であるか、有効な行がありません",
        invalidHeader: "ヘッダーが無効です。テンプレートを使用してください",
        errorRequired: "必須フィールドが欠落しています (コード/名前/カテゴリ)",
        errorPrice: "価格は 0 以上の数値でなければなりません",
        errorStock: "在庫は 0 以上の整数でなければなりません",
        importDone: "インポートが完了しました: {success} 成功、{failed} 失敗",
        parseFailed:
          "CSV の解析に失敗しました。ファイル形式を確認してください。",
      },
      testing: {
        title: "テスト例",
        description:
          "新しいモジュールにコピーできる、単体テストと e2e テスト用の推奨テンプレートを提供します。",
        alertMessage:
          "Vitest / Playwright の依存関係はまだインストールされていません。このページでは、構造と例を示します。",
        unitTestTitle: "単体テスト テンプレート (Vitest)",
        e2eTestTitle: "エンドツーエンドのテスト テンプレート (Playwright)",
        implementationTitle: "実装シーケンス",
        step1Title: "最初に単体テストを追加します",
        step1Description:
          "コア機能、ストア計算ロジック、およびエッジケースをカバーします。",
        step2Title: "次に、e2e テストを追加します",
        step2Description:
          "ログイン、検索、リスト操作などの重要なユーザー パスをカバーします。",
        step3Title: "CIとの統合",
        step3Description:
          "タイプチェック + ユニット + e2e をパイプラインにチェーンし、マージ前に自動的に実行します。",
      },
      proTableAdvanced: {
        title: "ProTable の高度な例",
        description:
          "サーバーサイドのページネーションシミュレーション + バッチ操作 + インライン編集 + エクスポート",
        selectedCount: "{count} 項目が選択されました",
        batchDisable: "一括無効化",
        batchDelete: "一括削除",
        export: "現在のデータをエクスポートする",
        statusActive: "アクティブ",
        statusInactive: "非アクティブ",
        username: "ユーザー名",
        realName: "本名",
        email: "電子メール",
        gender: "性別",
        status: "状態",
        createdAt: "作成日",
        editSimulation: "編集をシミュレート: {username}",
        deleteConfirm: "この行を削除しますか?",
        deleteSuccess: "削除に成功しました",
        statusChangeSuccess: "{status} {username}",
        batchSetStatusSuccess: "{count}項目のステータスを一括設定",
        batchDeleteTitle: "一括削除の確認",
        batchDeleteContent: "選択した {count} 行を削除しますか?",
        batchDeleteSuccess: "一括削除が完了しました",
        exportSuccess: "CSV が正常にエクスポートされました",
      },
      complexForm: {
        title: "複雑なフォームの例",
        description:
          "ステップフォーム + 動的ポリシールール + 非同期検証 + ドラフト保存 + サーバー側フィールドエラーマッピング。",
        step1Title: "基本情報",
        step2Title: "ポリシーの構成",
        step3Title: "設定の公開",
        projectNameLabel: "プロジェクト名",
        projectNamePlaceholder: "プロジェクト名を入力してください",
        projectNameRequired: "プロジェクト名を入力してください",
        projectNameExists: "プロジェクト名はすでに存在します。変更してください",
        ownerLabel: "所有者",
        ownerPlaceholder: "所有者を入力してください",
        ownerRequired: "所有者を入力してください",
        sceneLabel: "シーン",
        scenePlaceholder: "シーンを選択",
        sceneRequired: "シーンを選択してください",
        sceneGrowth: "ユーザーの増加",
        sceneRisk: "リスク管理",
        sceneStability: "安定性の監視",
        descriptionLabel: "説明",
        descriptionPlaceholder: "追加の説明を入力してください",
        addRuleButton: "ポリシールールの追加",
        currentRulesCount: "現在の {count} ルール",
        metricPlaceholder: "メトリック名 (例: error_rate)",
        deleteButton: "消去",
        ruleListEmpty: "少なくとも 1 つのポリシー ルールを追加してください",
        ruleListIncomplete:
          "ポリシー ルールに未入力の項目があります。入力してください。",
        publishTypeLabel: "パブリッシュタイプ",
        publishTypeRequired: "公開タイプを選択してください",
        publishImmediate: "すぐに",
        publishSchedule: "予定されている",
        publishTimeLabel: "公開時間",
        publishTimeRequired:
          "スケジュールされた公開では公開時間を選択する必要があります",
        notifyUsersLabel: "ユーザーに通知する",
        notifyUsersPlaceholder: "ユーザー名を入力して Enter キーを押します",
        prevButton: "前の",
        nextButton: "次",
        submitButton: "提出する",
        saveDraftButton: "ドラフトの保存",
        resetButton: "リセット",
        draftSaved: "下書きが保存されました",
        serverValidationError:
          "サーバー検証に失敗しました: プロジェクト名に「fail」を含めることはできません",
        submitFailed: "送信失敗、サーバーフィールドエラーがマップされました",
        submitSuccess: "送信成功",
      },
      advancedFilter: {
        title: "高度なフィルター ビルダーの例",
        description:
          "視覚的な条件 (AND/OR) を使用してフィルター ルールを構築し、再利用可能なフィルター スキームを保存します。",
        tips: "ほとんどのリスト フィルタリング シナリオで、文字列、列挙型、数値、および日付フィールドをサポートします。",
        addCondition: "条件の追加",
        saveScheme: "スキームの保存",
        matchedCount: "{count} が一致しました",
        emptyConditions: "フィルタ条件なし",
        inputValue: "値を入力してください",
        selectValue: "値を選択してください",
        secondValue: "2 番目の値",
        savedSchemes: "保存されたスキーム:",
        noSchemes: "なし",
        schemeNamePlaceholder: "スキーム名を入力してください (最大 30 文字)",
        schemeNameRequired: "スキーム名を入力してください",
        saveSuccess: "フィルタスキームが保存されました",
        score: "スコア",
        statusActive: "アクティブ",
        statusInactive: "非アクティブ",
        statusPending: "保留中",
        adminRole: "管理者",
        operatorRole: "オペレーター",
        auditorRole: "監査役",
        opContains: "含まれています",
        opEquals: "等しい",
        opNotEquals: "等しくない",
        opIn: "で",
        opGt: "より大きい",
        opGte: "以上",
        opLt: "未満",
        opLte: "以下または同等",
        opBetween: "間",
        opBefore: "前に",
        opAfter: "後",
      },
      virtualTable: {
        title: "仮想スクロールテーブルの例",
        description:
          "ネイティブの a-table 仮想スクロールを使用した大規模なデータ セットのスムーズなレンダリングを示します。",
        tipsNativeVirtual:
          "antdv-next ネイティブ a-table + virtual で構築されているため、追加の仮想リスト ライブラリは必要ありません。",
        datasetSize: "データセットのサイズ",
        regenerate: "データの再生成",
        regenerateSuccess: "{count} 行が生成されました",
        searchPlaceholder: "ユーザー名/メールアドレス/部門を検索",
        allStatus: "すべてのステータス",
        totalRows: "合計 {count}",
        filteredRows: "フィルタリング済み {count}",
        renderedRowsTip:
          "スクロールをスムーズにするために、表示されている行のみがレンダリングされます。",
        statusActive: "アクティブ",
        statusInactive: "非アクティブ",
        statusPending: "保留中",
        colId: "ID",
        colUsername: "ユーザー名",
        colEmail: "電子メール",
        colDepartment: "部門",
        colStatus: "状態",
        colUpdatedAt: "更新日",
      },
      masterDetail: {
        title: "マスター/詳細の例",
        description:
          "チケットのマスター/スレーブ ページをシミュレートします。左側のリストから選択し、右側のドロワーに詳細と操作履歴を表示します。",
        drawerTitle: "チケット詳細",
        ticketNumber: "チケット番号",
        titleLabel: "タイトル",
        ownerLabel: "所有者",
        priorityLabel: "優先度",
        createdAtLabel: "作成日",
        descTab: "説明",
        logsTab: "操作ログ",
        statusOpen: "開ける",
        statusProcessing: "処理",
        statusClosed: "閉店",
        ticketTitle: "注文リスク アラート #{index}",
        ownerZhang: "張",
        ownerLi: "李",
        ticketDescription:
          "これは、背景情報、影響範囲、推奨されるアクションを含む、チケット {index} の詳細な説明です。",
        actionCreate: "チケットの作成",
        operatorSystem: "システム",
        actionAssign: "所有者の割り当て",
        operatorDispatch: "派遣センター",
        colTicketNumber: "チケット番号",
        colTitle: "タイトル",
        colOwner: "所有者",
        colPriority: "優先度",
        colStatus: "状態",
        colCreatedAt: "作成日",
      },
      rbac: {
        title: "RBAC フルチェーンの例",
        description:
          "ページ権限、ボタン権限、フィールド権限、API 権限の 4 つの側面をカバーします。管理者とユーザーを切り替えて違いを観察します。",
        currentSession: "現在のセッション",
        accountInfo: "アカウント: {username} |役割: {role}",
        switchToAdmin: "管理者に切り替える",
        switchToUser: "ユーザーに切り替える",
        permissionTotal: "...合計 {count} アイテム",
        section1Title: "1. ページ権限のチェック",
        checkUserManage: "ユーザー管理ページへのアクセス (system.user.view)",
        checkMenuManage: "メニュー管理ページアクセス（system.permission.view）",
        checkAdminRole: "管理者ロールのアクセス (管理者)",
        passed: "合格した",
        denied: "拒否されました",
        section2Title: "2. ボタンの許可",
        createUserButton: "ユーザーの作成",
        editUserButton: "ユーザーの編集",
        deleteUserButton: "ユーザーの削除",
        buttonPermissionHint:
          "ヒント: ボタンのレンダリングは PermissionButton によって制御されます",
        section3Title: "3. フィールド許可（マスキング）",
        phoneLabel: "電話：",
        emailLabel: "電子メール:",
        realNameLabel: "本名：",
        section4Title: "4. API 権限のフォールバック",
        callViewApi: "ビュー API の呼び出し",
        callExportApi: "エクスポート API の呼び出し",
        callDeleteApi: "削除APIを呼び出す",
        viewUserAction: "ユーザーリストを見る",
        exportUserAction: "ユーザーをエクスポートする",
        deleteUserAction: "ユーザーの削除",
        switchSuccess: "{username} に切り替えました",
        switchFailed: "切り替えに失敗しました",
        missingPermission: "403: 権限がありません {permission}",
        apiSuccess: "{action} 成功しました",
        apiFailed: "{action} 失敗しました: {error}",
        noPermission: "許可がありません",
      },
      observability: {
        title: "可観測性と例外の例",
        description:
          "エラー分類、ログ記録、およびワンクリック再試行による、ロード状態、空状態、およびエラー状態の統合処理。",
        simulateSuccess: "成功をシミュレートする",
        simulateEmpty: "空のシミュレート",
        simulateNetwork: "ネットワークエラーをシミュレートする",
        simulateAuth: "認証エラーをシミュレートする",
        simulateBusiness: "ビジネスエラーをシミュレートする",
        requestStateTitle: "リクエスト状態ビュー",
        emptyData: "表示するデータがありません",
        requestFailed: "リクエストが失敗しました",
        retryButton: "リトライ",
        clickToStart: "上のボタンをクリックしてシミュレーションを開始します",
        errorLogTitle: "エラー分類とイベントログ",
        networkError: "ネットワークエラー",
        authError: "認証エラー",
        businessError: "業務上のミス",
        noEvents: "まだイベントはありません",
        errorNetwork:
          "NetworkError: リクエストがタイムアウトしました。ネットワーク接続を確認してください。",
        errorAuth:
          "AuthError: トークンの有効期限が切れたので、再ログインする必要があります",
        errorBusiness: "BusinessError: ルール設定の競合のため、計算できません",
        eventStart: "シナリオのシミュレーションを開始: {scenario}",
        eventEmpty: "リクエストは成功しましたが、空のデータが返されました",
        eventSuccess: "リクエストが成功して返されたデータ",
        unknownError: "不明なエラー",
        eventError: "リクエストが失敗しました ({type}): {message}",
      },
      requestAuth: {
        title: "リクエストと認証のループの例",
        description:
          "同時リクエストによって 401 がトリガーされた場合のキューに入れられたリフレッシュ メカニズムと、リフレッシュ失敗後の再ログインへのフォールバックを示します。",
        refreshFailedAlert: "更新に失敗し、再ログイン状態になりました",
        refreshFailedDesc:
          "後続のリクエストは失敗し続けます。新しいリクエストを行うには、「セッションをリセット」をクリックしてください。",
        accessToken: "アクセストークン",
        refreshToken: "リフレッシュトークン",
        refreshStatus: "ステータスの更新",
        empty: "空の",
        refreshing: "さわやか",
        idle: "アイドル状態",
        singleRequest: "単一のリクエスト",
        concurrentRequest: "5 つの同時リクエスト",
        expireToken: "トークンの期限切れ",
        simulateRefreshFail: "リフレッシュの失敗をシミュレートする",
        resetSession: "セッションをリセット",
        logTitle: "イベントログ (最新の 80 エントリ)",
        clearLog: "ログをクリアする",
        noLogs: "まだログがありません",
        tokenExpired: "[{apiName}] トークンの有効期限が切れました",
        apiSuccess: "[{apiName}] リクエストが成功しました",
        refreshTokenInvalid: "リフレッシュトークンが無効です",
        logRefreshStart:
          "トークンのリフレッシュをトリガーします (最初の 401 リクエストのみが実行されます)",
        logRefreshSuccess:
          "トークンの更新が成功し、キューに入れられたリクエストが解放されました",
        logRefreshFailed:
          "トークンの更新に失敗しました: {message}、再ログイン状態に入ります",
        logQueueWait:
          "進行中の更新が検出され、リクエストがキューに入れられました",
        logNon401Error: "[{apiName}] 401 以外のエラー: {message}",
        log401Detected:
          "[{apiName}] 401 が検出されました。トークンのリフレッシュを準備しています",
        logTokenExpired:
          "アクセス トークンを手動で期限切れとしてマークしました",
        logSessionReset:
          "セッションがリセットされ、新しいリクエストの準備が整いました",
        singleRequestFailed: "単一のリクエストが失敗しました",
        logConcurrentStart:
          "5 つの同時リクエストを開始し、リフレッシュ キューの動作を観察します",
        concurrentPartialFail:
          "同時リクエストは完了しましたが、{count} は失敗しました",
        concurrentAllSuccess: "すべての同時リクエストが成功しました",
        logRefreshWillFail: "次回の更新は強制的に失敗します",
        refreshFailTriggered: "リフレッシュ失敗シナリオがトリガーされました",
      },
    },
    jsonInput: {
      title: "JSON入力例",
      description: "説明",
      basicUsage: "基本的な使い方",
      userConfig: "ユーザー設定",
      clickToEdit: "クリックして JSON を編集します",
      editUserConfig: "ユーザー設定の編集",
      displayValue: "値の表示 (displayKey を使用)",
      productName: "製品名",
      price: "価格",
      stock: "ストック",
      selectProduct: "製品の選択",
      advancedUsage: "高度な使用法",
      withI18nKeys: "主要な国際化サポート",
      i18nKeysHint:
        "label-map プロップを使用してキーに i18n ラベルを提供します",
      withDisabledFields: "無効なフィールドあり",
      apiKey: "APIキー",
      endpoint: "終点",
      timeout: "タイムアウト (秒)",
      systemConfig: "システム構成",
      nestedObject: "ネストされたオブジェクトのサポート",
      userInfo: "ユーザー情報",
      name: "名前",
      settings: "設定",
      theme: "テーマ",
      language: "言語",
      nestedData: "ネストされたデータ構造",
      emptyObject: "空のオブジェクト (新規作成)",
      createNew: "新しい構成の作成",
    },
    i18nInput: {
      description:
        "多言語コンテンツ編集をサポートする国際化された入力コンポーネント。 JsonInput の上に構築されており、システムでサポートされている言語に基づいてフォーム フィールドが自動的に生成されます。",
      productName: "製品名（多言語対応）",
      productDescription: "製品説明（多言語）",
      editProductName: "製品名の編集",
      editProductDesc: "製品説明の編集",
      clickToEdit: "クリックして多言語コンテンツを編集します",
      stringFormat: "文字列形式の値",
      stringFormatHint:
        "文字列形式の JSON をサポートし、コンポーネントは自動的に解析してシリアル化します。",
      currentLocale: "表示ロケールの指定",
      currentLocaleHint:
        "ロケールプロパティを使用して、入力に表示する言語値を指定します",
      emptyValue: "空の値 (自動初期化)",
      dataPreview: "データのプレビュー",
      valueType: "値のタイプの切り替え",
      showAsString: "文字列として表示",
      showAsObject: "オブジェクトとして表示",
      stringValue: "文字列フォーマット",
      objectValue: "オブジェクト形式",
    },
  },
};
