export default {
  nav: {
    printers: 'プリンター',
    archives: 'アーカイブ',
    queue: 'キュー',
    stats: '統計',
    profiles: 'プロファイル',
    maintenance: 'メンテナンス',
    projects: 'プロジェクト',
    inventory: 'フィラメント',
    files: 'ファイル管理',
    settings: '設定',
    system: 'システム',
    collapseSidebar: 'サイドバーを閉じる',
    expandSidebar: 'サイドバーを開く',
    update: 'アップデート',
    updateAvailable: 'アップデートあり: v{{version}}',
    viewOnGithub: 'GitHubで表示',
    keyboardShortcuts: 'キーボードショートカット (?)',
    switchToLight: 'ライトモードに切替',
    switchToDark: 'ダークモードに切替',
    smartSwitches: 'スマートスイッチ',
    logout: 'ログアウト',
    updateAvailableBanner: 'バージョン {{version}} が利用可能です！',
    viewUpdate: 'アップデートを表示',
  },
  common: {
    save: '保存',
    saving: '保存中...',
    cancel: 'キャンセル',
    delete: '削除',
    edit: '編集',
    add: '追加',
    close: '閉じる',
    confirm: '確認',
    loading: '読み込み中...',
    error: 'エラー',
    success: '成功',
    warning: '警告',
    enabled: '有効',
    disabled: '無効',
    yes: 'はい',
    no: 'いいえ',
    on: 'オン',
    off: 'オフ',
    all: 'すべて',
    none: 'なし',
    search: '検索',
    filter: 'フィルター',
    sort: '並べ替え',
    refresh: '更新',
    download: 'ダウンロード',
    upload: 'アップロード',
    actions: '操作',
    status: 'ステータス',
    name: '名前',
    description: '説明',
    date: '日付',
    time: '時間',
    hours: '時間',
    minutes: '分',
    seconds: '秒',
    disable: '無効にする',
    permissions: '権限',
    noPrinters: 'プリンターが登録されていません',
    noData: 'データがありません',
    required: '必須',
    optional: 'オプション',
    dismiss: '閉じる',
    apply: '適用',
    clear: 'クリア',
    noChange: '— 変更なし —',
    unassigned: '未割当',
    unknown: '不明',
    unknownError: '不明なエラー',
    today: '今日',
    tomorrow: '明日',
    asap: '即時',
    now: '今すぐ',
    collapse: '折りたたむ',
    expand: '展開',
    viewArchive: 'アーカイブを表示',
    viewInFileManager: 'ファイルマネージャーで表示',
    addedBy: '{{username}}が追加',
    more: 'もっと見る',
    printer: 'プリンター',
    type: '種類',
    print: '印刷',
    rename: '名前変更',
    move: '移動',
    create: '作成',
    days: '日',
    enable: '有効化',
    linkNotFound: 'リンクが見つかりません',
    reset: 'リセット',
    export: 'エクスポート',
    import: 'インポート',
    selectAll: 'すべて選択',
    deselectAll: 'すべて選択解除',
    unchanged: '変更なし',
    overdue: '期限超過',
    prints: 'プリント',
    ascending: '昇順',
    descending: '降順',
    remove: '削除',
    duplicate: '複製',
    left: '左',
    right: '右',
    done: '完了',
    saveChanges: '変更を保存',
    turnOn: 'オンにする',
    turnOff: 'オフにする',
    deletePhoto: '写真を削除',
    deletePhotoConfirm: 'この写真を削除しますか？元に戻せません。',
    project: 'プロジェクト',
    archive: 'アーカイブ',
    show: '表示',
    hide: '非表示',
    back: '戻る',
    retry: 'リトライ',
    model: 'モデル',
    ok: 'OK',
  },
  printers: {
    title: 'プリンター',
    addPrinter: 'プリンターを追加',
    editPrinter: 'プリンターを編集',
    deletePrinter: 'プリンターを削除',
    printerName: 'プリンター名',
    serialNumber: 'シリアル番号',
    ipAddress: 'IPアドレス / ホスト名',
    accessCode: 'アクセスコード',
    model: 'モデル',
    nozzleCount: 'ノズル数',
    autoArchive: '自動アーカイブ',
    status: {
      available: '利用可能',
      idle: '待機中',
      printing: '印刷中',
      paused: '一時停止',
      offline: 'オフライン',
      finished: '完了',
      unknown: '不明',
      error: 'エラー',
    },
    temperatures: {
      nozzle: 'ノズル',
      bed: 'ベッド',
      chamber: 'チャンバー',
    },
    progress: '{{percent}}% 完了',
    timeRemaining: '残り {{time}}',
    maintenanceOk: 'メンテナンス正常',
    maintenanceWarning: '{{count}}件の警告',
    maintenanceWarning_plural: '{{count}}件の警告',
    maintenanceDue: '{{count}}件のメンテナンス期限',
    sort: {
      name: '名前',
      status: 'ステータス',
      model: 'モデル',
      location: 'ロケーション',
      ascending: '昇順で並べ替え',
      descending: '降順で並べ替え',
    },
    cardSize: {
      small: '小',
      medium: '中',
      large: '大',
      extraLarge: '特大',
    },
    hideOffline: 'オフラインを非表示',
    nextAvailable: '次に完了',
    powerOn: '電源オン',
    noPrintersConfigured: 'プリンターが設定されていません',
    readyToPrint: '印刷可能',
    external: '外部',
    extL: 'Ext-L',
    extR: 'Ext-R',
    deleteArchives: '印刷アーカイブを削除',
    willBeSkipped: 'スキップされます',
    name: '名前',
    wifiSignal: {
      veryWeak: '非常に弱い',
      weak: '弱い',
      fair: '注意',
      good: '良好',
      excellent: '非常に良い',
    },
    maintenanceUpToDate: 'すべてのメンテナンスが最新です',
    chamberLightOn: 'チャンバーライトをオンにしました',
    chamberLightOff: 'チャンバーライトをオフにしました',
    browseFiles: 'プリンターのファイルを参照',
    hmsErrors: 'クリックしてHMSエラーを表示',
    resume: '再開',
    pause: '一時停止',
    stop: '停止',
    reconnect: '再接続',
    mqttDebug: 'MQTTデバッグ',
    activeNozzle: 'アクティブ: {{side}}ノズル',
    nozzleRack: 'ノズルラック',
    nozzleDocked: 'ドッキング中',
    nozzleMounted: 'マウント中',
    nozzleActive: 'アクティブ',
    nozzleIdle: 'アイドル',
    nozzleDiameter: '直径',
    nozzleType: 'タイプ',
    nozzleStatus: 'ステータス',
    nozzleFilament: 'フィラメント',
    nozzleWear: '摩耗',
    nozzleMaxTemp: '最高温度',
    nozzleSerial: 'シリアル',
    nozzleHardenedSteel: '焼入れ鋼',
    nozzleStainlessSteel: 'ステンレス鋼',
    nozzleTungstenCarbide: 'タングステンカーバイド',
    nozzleFlow: 'フロー',
    nozzleHighFlow: 'ハイフロー',
    nozzleStandardFlow: 'スタンダード',
    toast: {
      printStopped: '印刷を停止しました',
      printPaused: '印刷を一時停止しました',
      printResumed: '印刷を再開しました',
      failedToSkipObjects: 'オブジェクトのスキップに失敗しました',
      rfidRereadInitiated: 'RFID再読み取りを開始しました',
      printerDeleted: 'プリンターを削除しました',
      printerAdded: 'プリンターを追加しました',
      printerUpdated: 'プリンターを更新しました',
      failedToDelete: 'プリンターの削除に失敗しました',
      failedToAdd: 'プリンターの追加に失敗しました',
      failedToUpdate: 'プリンターの更新に失敗しました',
      commandSent: 'コマンドを送信しました',
      failedToSendCommand: 'コマンドの送信に失敗しました',
      turnedOn: '{{name}} の電源をオンにしました',
      failedToPowerOn: '{{name}} の電源オンに失敗しました',
      scriptTriggered: 'スクリプトを実行しました',
      referenceDeleted: 'リファレンスを削除しました',
      detectionAreaSaved: '検出エリアを保存しました',
      failedToDiscover: 'プリンターの検出に失敗しました',
      cloudLoginRequired: 'クラウドログインが必要です',
      failedToRunScript: 'スクリプトの実行に失敗しました',
      failedToStopPrint: '印刷の停止に失敗しました',
      failedToPausePrint: '印刷の一時停止に失敗しました',
      failedToResumePrint: '印刷の再開に失敗しました',
      failedToControlChamberLight: 'チャンバーライトの制御に失敗しました',
      failedToUpdateSetting: '設定の更新に失敗しました',
      failedToRereadRfid: 'RFIDの再読み取りに失敗しました',
      failedToCheckPlate: 'プレートの確認に失敗しました',
      failedToUpdateLabel: 'ラベルの更新に失敗しました',
      failedToDeleteReference: 'リファレンスの削除に失敗しました',
      failedToSaveDetectionArea: '検出エリアの保存に失敗しました',
      plateCheckEnabled: 'プレートチェックを有効にしました',
      plateCheckDisabled: 'プレートチェックを無効にしました',
      calibrationSaved: 'キャリブレーションを保存しました！',
      calibrationFailed: 'キャリブレーションに失敗しました',
    },
    connection: {
      connected: '接続中',
      offline: 'オフライン',
    },
    queue: {
      inQueue: 'キュー内',
      inQueue_plural: '{{count}}件がキュー内',
    },
    controls: 'コントロール',
    permission: {
      noFiles: 'このディレクトリにファイルがありません',
      noAdd: 'プリンターを追加する権限がありません',
      noEdit: 'プリンターを編集する権限がありません',
      noDelete: 'プリンターを削除する権限がありません',
      noControl: 'プリンターを制御する権限がありません',
      noAmsRfid: 'AMS RFIDを再読み取りする権限がありません',
      noSmartPlugControl: 'スマートプラグを制御する権限がありません',
      noCamera: 'カメラを表示する権限がありません',
    },
    modal: {
      selectModel: 'モデルを選択...',
      locationGroup: 'ロケーション / グループ',
      locationPlaceholder: '例: 工房、オフィス、地下室',
      modelOptional: 'モデル（任意）',
      addTitle: 'プリンターを追加',
      editTitle: 'プリンターを編集',
      myPrinter: 'マイプリンター',
      autoArchiveLabel: '完了した印刷を自動アーカイブ',
      fromPrinterSettings: 'プリンターの設定から取得',
      saveChanges: '変更を保存',
    },
    skipObjects: {
      onlyWhilePrinting: 'オブジェクトスキップ（印刷中のみ）',
      title: 'オブジェクトスキップ',
      skipped: 'スキップ済み',
      objectsSkipped: 'オブジェクトをスキップしました',
      activeCount: '{{count}}個アクティブ',
      waitForLayer: 'オブジェクトをスキップするにはレイヤー2以降をお待ちください（現在レイヤー{{layer}}）',
      skip: 'スキップ',
      tooltip: 'オブジェクトスキップ',
      requiresMultiple: 'オブジェクトスキップ（2個以上必要）',
      matchIdsInfo: 'プリンター画面のIDと照合してください',
      printerShowsIds: 'プリンター画面にビルドプレート上のオブジェクトIDが表示されます',
      skipSelected: '選択をスキップ',
      skipping: 'スキップ中...',
      noObjectsSelected: 'オブジェクトが選択されていません',
      selectObjectsToSkip: '現在の印刷からスキップするオブジェクトを選択してください',
      confirmTitle: 'オブジェクトをスキップしますか？',
      confirmMessage: '「{{name}}」をスキップしますか？この操作は元に戻せません。',
    },
    confirm: {
      deleteTitle: 'プリンターを削除',
      deleteMessage: '「{{name}}」を削除しますか？すべての接続設定が削除されます。',
      stopTitle: '印刷を停止',
      stopMessage: '「{{name}}」の現在の印刷を停止しますか？印刷ジョブがキャンセルされます。',
      stopButton: '印刷を停止',
      pauseTitle: '印刷を一時停止',
      pauseMessage: '「{{name}}」の現在の印刷を一時停止しますか？',
      pauseButton: '印刷を一時停止',
      resumeTitle: '印刷を再開',
      resumeMessage: '「{{name}}」の印刷を再開しますか？',
      resumeButton: '印刷を再開',
      powerOnTitle: 'プリンターの電源をオン',
      powerOnMessage: '「{{name}}」の電源をオンにしますか？',
      powerOffTitle: 'プリンターの電源をオフ',
      powerOffMessage: '「{{name}}」の電源をオフにしますか？',
      powerOffWarning: '警告: 「{{name}}」は現在印刷中です！電源をオフにしますか？印刷が中断され、プリンターが損傷する可能性があります。',
      deleteArchivesNote: 'このプリンターのすべての印刷履歴が完全に削除されます。',
      keepArchivesNote: '印刷履歴は保持されますが、このプリンターとの関連は解除されます。',
      powerOnButton: '電源オン',
      powerOffButton: '電源オフ',
    },
    discovery: {
      title: 'プリンター',
      scanning: 'スキャン中...',
      allConfigured: '検出されたすべてのプリンターは既に設定済みです。',
      subnetToScan: 'スキャンするサブネット',
      scanSubnet: 'サブネットをスキャンしてプリンターを検出',
      discoverNetwork: 'ネットワーク上のプリンターを検出',
      scanningSubnet: 'サブネットでBambuプリンターをスキャン中...',
      scanningNetwork: 'ネットワークをスキャン中...',
      serialRequired: 'シリアル番号が必要です',
      unknown: '不明',
      failedToStart: '印刷の開始に失敗しました',
      searching: '検索中...',
      scanProgress: 'スキャン中... {{scanned}}/{{total}}',
      foundPrinters: '{{count}}台のプリンターを検出',
      noPrintersFound: 'プリンターが見つかりません',
      noPrintersFoundSubnet: '指定されたサブネットにプリンターが見つかりません。',
      noPrintersFoundNetwork: 'ネットワーク上にプリンターが見つかりません。',
      alreadyAdded: '追加済み',
      select: '選択',
      manualEntry: '手動入力',
      addFromCloud: 'クラウドから追加',
      dockerNote: 'Dockerを検出しました。プリンターのサブネットをCIDR表記で入力してください。docker-compose.ymlでnetwork_mode: hostが必要です。',
    },
    filaments: 'フィラメント',
    firmwareUpdateAvailable: 'ファームウェアアップデートあり: {{current}} → {{latest}}',
    firmwareUpToDate: 'ファームウェア {{version}} — 最新',
    plateDetection: {
      noPermission: 'このページにアクセスする権限がありません。',
      title: 'プレート検出',
      description: '印刷前にビルドプレート上のオブジェクトを検出',
      referenceCapture: 'リファレンス画像を撮影',
      captureReference: 'リファレンスを撮影',
      deleteReference: 'リファレンスを削除',
      sensitivity: '感度',
      detectionArea: '検出エリア',
      saveArea: 'エリアを保存',
      resetArea: 'エリアをリセット',
      testDetection: '検出テスト',
      testing: 'テスト中...',
      objectsDetected: 'オブジェクトを検出しました',
      noObjectsDetected: 'オブジェクトは検出されませんでした',
      requiresCamera: 'カメラが必要です',
      referenceRequired: 'まずリファレンス画像を撮影してください',
      enabledClick: 'プレートチェック有効 - クリックして無効化',
      disabledClick: 'プレートチェック無効 - クリックして有効化',
      manageCalibration: 'プレート検出キャリブレーションを管理',
      calibrationRequired: 'キャリブレーションが必要です',
      calibrationInstructions: 'ビルドプレートが<strong>完全に空</strong>であることを確認してから、キャリブレーションをクリックしてください。',
      calibrationDescription: 'キャリブレーションは空のプレートのリファレンス画像を撮影します。以降のチェックではこのリファレンスと比較してオブジェクトを検出します。',
      calibrationTip: '<strong>ヒント:</strong> 異なるプレート用に最大5つのキャリブレーションを保存できます。チェック時に最適なものが自動的に使用されます。',
      plateEmpty: 'プレートは空のようです',
      confidence: '信頼度',
      difference: '差分',
      analysisPreview: '分析プレビュー:',
      analysisLegend: '緑の枠 = 検出エリア、赤のオーバーレイ = キャリブレーションとの差分',
      savedReferences: '保存済みリファレンス ({{count}}/{{max}})',
      labelPlaceholder: 'ラベル...',
      clickToEdit: '{{label}} - クリックして編集',
      clickToAddLabel: 'クリックしてラベルを追加',
    },
    fans: {
      partCooling: 'パーツ冷却ファン',
      auxiliary: '補助ファン',
      chamber: 'チャンバーファン',
    },
    estimatedCompletion: '完了予定時刻',
    slotOptions: 'スロットオプション',
    firmwareModal: {
      title: 'ファームウェアアップデート',
      titleUpToDate: 'ファームウェア情報',
      currentVersion: '現在のバージョン',
      latestVersion: '最新バージョン',
      releaseNotes: 'リリースノート',
      sdCardReady: 'SDカード準備完了。下をクリックしてファームウェアをアップロードしてください。',
      applyInstructions: 'プリンターでアップデートを適用するには:',
      step1: 'プリンターのタッチスクリーンで設定に移動',
      step2: 'ファームウェアに移動',
      step3: 'SDカードからアップデートを選択',
      step4: 'アップデートには10〜20分かかります',
      done: '完了',
      starting: '開始中...',
      uploadFirmware: 'ファームウェアをアップロード',
      checkingPrereqs: '前提条件を確認中...',
      uploadedSuccess: 'ファームウェアをSDカードにアップロードしました！',
      uploadFailed: 'アップロード開始に失敗しました: {{error}}',
      uploadedToast: 'ファームウェアをアップロードしました！プリンター画面からアップデートを実行してください。',
    },
    accessCodePlaceholder: 'プリンター設定から取得',
    roi: {
      title: 'プリンター',
      xStart: 'X開始',
      yStart: 'Y開始',
      width: '幅',
      height: '高さ',
      instruction: 'ビルドプレートに焦点を合わせるように検出エリアを調整してください。プレビューの緑の枠が現在のエリアを示しています。',
    },
    deleteConfirm: '「{{name}}」を削除しますか？',
    maintenanceDue_plural: '{{count}}件の期限',
    offlinePrintersWithPlugs: 'スマートプラグ付きオフラインプリンター',
    noLabel: 'ラベルなし',
    printPreview: '印刷プレビュー',
    width: '幅',
    height: '高さ',
    noObjectsFound: 'オブジェクトが見つかりません',
    objectsLoadedOnPrintStart: 'オブジェクトは印刷開始時に読み込まれます',
    serialCannotBeChanged: 'シリアル番号は変更できません',
    locationHelp: 'プリンターのグループ化とキュージョブのフィルタリングに使用',
    autoOffAfterPrint: '印刷後に自動電源オフ',
    autoOffExecuted: '自動オフが実行されました - リセットするにはプリンターの電源を入れてください',
    viewHmsErrors: '{{count}}件のHMSエラーを表示',
    camera: 'カメラ',
    skipObject: 'オブジェクトスキップ',
    firmwareUpdate: 'ファームウェアアップデート',
    firmwareInstructions: 'プリンターのタッチスクリーンで',
    firmwareNav: 'に移動',
    settings: '設定',
    firmware: 'ファームウェア',
    discoverPrinters: 'プリンターを検出',
    searching: '検索中...',
    manualEntry: '手動入力',
    addFromCloud: 'クラウドから追加',
    cloud: {
      title: 'Bambu Cloud プリンター',
      loginRequired: 'クラウドにログインしてプリンターを追加してください',
      loginFirst: 'まずプロファイルページからBambu Cloudにログインしてください',
      goToProfiles: 'プロファイルへ移動',
      loadingPrinters: 'クラウドプリンターを読み込み中...',
      noPrinters: 'クラウドにプリンターが見つかりません',
      alreadyConfigured: '設定済み',
      accessCodeRequired: 'アクセスコードが必要です',
      addPrinter: 'プリンターを追加',
      adding: '追加中...',
    },
    name_field: '名前',
    nozzleSize: 'ノズルサイズ',
    rfid: {
      reread: 'RFID再読み取り',
    },
    openCameraOverlay: 'カメラオーバーレイを開く',
    openCameraWindow: 'カメラを新しいウィンドウで開く',
    firmwareUpdateButton: 'アップデート',
    clickToViewHmsErrors: 'クリックしてHMSエラーを表示',
    developerModeWarning: '開発者LANモードが有効になっていません: {{names}}。一部の機能が動作しない可能性があります。',
    howToEnable: '有効化方法',
  },
  archives: {
    title: '印刷アーカイブ',
    searchPlaceholder: 'アーカイブを検索...',
    filterByPrinter: 'プリンターで絞り込み',
    filterByStatus: 'ステータスで絞り込み',
    sortBy: '並べ替え',
    sortNewest: '新しい順',
    sortOldest: '古い順',
    sortName: '名前順',
    sortDuration: '時間順',
    noArchives: 'アーカイブが見つかりません',
    noArchivesYet: 'アーカイブはまだありません',
    releaseToUpload: 'ドロップしてアップロード',
    showAll: 'すべて表示',
    showFavoritesOnly: 'お気に入りのみ表示',
    gridView: 'グリッド表示',
    listView: 'リスト表示',
    calendarView: 'カレンダー表示',
    logView: '印刷ログ',
    showFailedPrints: '失敗した印刷を表示',
    hideFailedPrints: '失敗した印刷を非表示',
    printTime: '印刷時間',
    filamentUsed: 'フィラメント使用量',
    cost: 'コスト',
    reprint: '再印刷',
    preview: 'プレビュー',
    deleteArchive: 'アーカイブを削除',
    deleteConfirm: 'このアーカイブを削除しますか？',
    favorite: 'お気に入り',
    unfavorite: 'お気に入りから削除',
    viewDetails: '詳細を表示',
    status: {
      completed: '完了',
      failed: '失敗',
      stopped: '中止',
    },
    toast: {
      source3mfAttached: 'ソース3MFを添付しました: {{filename}}',
      source3mfRemoved: 'ソース3MFを削除しました',
      f3dAttached: 'F3Dを添付しました: {{filename}}',
      f3dRemoved: 'F3Dを削除しました',
      timelapseAttached: 'タイムラプスを添付しました: {{filename}}',
      addedToFavorites: 'お気に入りに追加しました',
      removedFromFavorites: 'お気に入りから削除しました',
      linkCopied: 'リンクをクリップボードにコピーしました',
      photoDeleted: '写真を削除しました',
      exportDownloaded: 'エクスポートをダウンロードしました',
      exportFailed: 'エクスポートに失敗しました',
      addedToProject: 'プロジェクトに追加しました',
      removedFromProject: 'プロジェクトから削除しました',
      failedToAddToProject: 'プロジェクトへの追加に失敗しました',
      failedToRemoveFromProject: 'プロジェクトからの削除に失敗しました',
      noFile: '印刷ファイルがありません',
      slicerOpened: 'スライサーを開きました',
      failedToOpenSlicer: 'スライサーの起動に失敗しました',
      archived: 'アーカイブしました',
      sentToFileManager: 'ファイルマネージャーに送信しました',
      deleted: 'アーカイブを削除しました',
      updated: 'アーカイブを更新しました',
      failedToDelete: 'アーカイブの削除に失敗しました',
      failedToUpdate: 'アーカイブの更新に失敗しました',
      failedToSend: '送信に失敗しました',
      sentToPrinter: 'プリンターに送信しました',
      addedToQueue: 'キューに追加しました',
      failedUploadSource3mf: 'ソース3MFのアップロードに失敗しました',
      failedRemoveSource3mf: 'ソース3MFの削除に失敗しました',
      failedUploadF3d: 'F3Dのアップロードに失敗しました',
      failedRemoveF3d: 'F3Dの削除に失敗しました',
      timelapseAlreadyAttached: 'タイムラプスは既に添付されています',
      noMatchingTimelapse: '一致するタイムラプスが見つかりません',
      failedScanTimelapse: 'タイムラプスのスキャンに失敗しました',
      failedAttachTimelapse: 'タイムラプスの添付に失敗しました',
      timelapseRemoved: 'タイムラプスを削除しました',
      failedRemoveTimelapse: 'タイムラプスの削除に失敗しました',
      timelapseUploaded: 'タイムラプスをアップロードしました: {{filename}}',
      failedUploadTimelapse: 'タイムラプスのアップロードに失敗しました',
      archiveDeleted: 'アーカイブを削除しました',
      failedDeleteArchive: 'アーカイブの削除に失敗しました',
      projectUpdated: 'プロジェクトを更新しました',
      failedUpdateProject: 'プロジェクトの更新に失敗しました',
      failedCopyLink: 'リンクのコピーに失敗しました',
      failedDeletePhoto: '写真の削除に失敗しました',
      failedDeleteArchives: 'アーカイブの削除に失敗しました',
      failedUpdateFavorites: 'お気に入りの更新に失敗しました',
    },
    menu: {
      schedule: 'スケジュール',
      slice: 'スライス',
      externalLink: '外部リンク',
      viewOnMakerWorld: 'MakerWorldで表示',
      preview3d: '3Dプレビュー',
      viewTimelapse: 'タイムラプスを表示',
      downloadSource3mf: 'ソース3MFをダウンロード',
      uploadSource3mf: 'ソース3MFをアップロード',
      replaceSource3mf: 'ソース3MFを置換',
      removeSource3mf: 'ソース3MFを削除',
      uploadF3d: 'F3Dをアップロード',
      replaceF3d: 'F3Dを置換',
      downloadF3d: 'Fusion 360デザインファイルをダウンロード',
      removeF3d: 'F3Dを削除',
      download: 'ダウンロード',
      qrCode: 'QRコード',
      viewPhotos: '{{count}}枚の写真を表示',
      projectPage: 'プロジェクトページ',
      goToProject: 'プロジェクトへ: {{name}}',
      addToProject: 'プロジェクトに追加',
      loading: 'アーカイブを読み込み中...',
      select: '選択',
      deselect: '選択解除',
      print: '印刷',
      openInBambuStudio: 'スライサーで開く',
      scanForTimelapse: 'タイムラプスをスキャン',
      uploadTimelapse: 'タイムラプスをアップロード',
      removeTimelapse: 'タイムラプスを削除',
      copyDownloadLink: 'ダウンロードリンクをコピー',
      viewPhotosCount: '写真を表示 ({{count}})',
      addToFavorites: 'お気に入りに追加',
      removeFromFavorites: 'お気に入りから削除',
      edit: '編集',
      removeFromProject: 'プロジェクトから削除',
      noProjectsAvailable: '利用可能なプロジェクトがありません',
      delete: '削除',
    },
    card: {
      plateNumber: 'プレート {{number}}',
      moreOptions: 'その他のオプション',
      failed: '失敗',
      openSource3mf: 'ソース3MFをBambu Studioで開く（右クリックでオプション表示）',
      downloadF3d: 'Fusion 360デザインファイルをダウンロード',
      viewTimelapse: 'タイムラプスを表示',
      viewPhotos: '{{count}}枚の写真を表示',
      openFolder: 'フォルダーを開く: {{name}}',
      source: 'ソース',
      project: 'プロジェクト',
      layer: 'レイヤー',
      layers: 'レイヤー',
      objects: '{{count}}オブジェクト',
      noPermissionEdit: 'プロファイルを編集する権限がありません',
      reprint: '再印刷',
      schedulePrint: '印刷をスケジュール',
      schedule: 'スケジュール',
      slice: 'スライス',
      externalLink: '外部リンク',
      preview3d: '3Dプレビュー',
      download: 'ダウンロード',
      previousPlate: '前のプレート',
      nextPlate: '次のプレート',
      addToFavorites: 'お気に入りに追加',
      removeFromFavorites: 'お気に入りから削除',
      cancelled: 'キャンセル',
      duplicate: '重複',
      duplicateTitle: 'このモデルは以前印刷されています',
      viewPhoto: '写真を表示',
      slicedFile: 'スライス済みファイル - 印刷可能',
      sourceFile: 'ソースファイルのみ - AMSマッピング不可',
      gcode: 'GCODE',
      estimated: '推定: {{time}}',
      actual: '実際: {{time}}',
      accuracy: '精度: {{percent}}%',
      filament: '{{weight}}g',
      object: '{{count}}オブジェクト',
      slicedFor: '{{model}}用にスライス',
      uploadedBy: 'アップロード者',
      noPermissionReprint: '再印刷する権限がありません',
      noFileForReprint: '3MFファイルがありません — 印刷記録時にプリンターからファイルをダウンロードできませんでした',
      noPermissionDelete: 'アーカイブを削除する権限がありません',
      openInBambuStudio: 'スライサーで開く',
      openInBambuStudioToSlice: 'スライサーでスライス',
      makerWorld: 'MakerWorld: {{designer}}',
      viewProject: 'プロジェクトを表示',
      noExternalLink: '外部リンクなし',
      edit: '編集',
      delete: '削除',
    },
    modal: {
      deleteArchive: 'アーカイブを削除',
      deleteConfirm: 'このアーカイブを削除しますか？',
      removeSource3mf: 'ソース3MFを削除',
      removeSource3mfConfirm: '"{{name}}"からソース3MFファイルを削除してもよろしいですか？元のスライサープロジェクトファイルが削除されます。',
      removeF3d: 'F3Dを削除',
      removeF3dConfirm: '"{{name}}"からFusion 360デザインファイルを削除してもよろしいですか？',
      removeTimelapse: 'タイムラプスを削除',
      removeTimelapseConfirm: '"{{name}}"からタイムラプス動画を削除してもよろしいですか？',
      selectTimelapse: 'タイムラプスを選択',
      selectTimelapseDesc: '自動一致が見つかりませんでした。この印刷のタイムラプスを選択してください:',
      deleteArchives: '印刷アーカイブを削除',
      deleteCount: '{{count}}件を削除',
      deleteButton: '削除',
      removeButton: '削除',
      timelapse: '{{name}} - タイムラプス',
      deleteArchivesConfirm: '{{count}}件のアーカイブを削除しますか？この操作は元に戻せません。',
    },
    page: {
      title: '印刷アーカイブ',
      printsCount: '{{count}}回印刷',
      dropFilesHere: '.3mfファイルをここにドロップ',
      releaseToUpload: 'ドロップしてアップロード',
      only3mfSupported: '.3mfファイルのみ対応しています',
      selected: '{{count}}件選択中',
      selectAll: 'すべて選択',
      tags: 'タグ',
      project: 'プロジェクト',
      favorite: 'お気に入り',
      toggledFavorites: '{{count}}件のアーカイブのお気に入りを切替えました',
      photoDeleted: '写真を削除しました',
      close: '閉じる',
      delete: '削除',
      failedUpdateFavorites: 'お気に入りの更新に失敗しました',
      archivesDeleted: '{{count}}件のアーカイブを削除しました',
      failedDeleteArchives: 'アーカイブの削除に失敗しました',
      failedDeletePhoto: '写真の削除に失敗しました',
    },
    list: {
      size: 'サイズ',
      hasTimelapse: 'タイムラプスあり',
      name: '名前',
      printer: 'プリンター',
      date: '日付',
      actions: '操作',
    },
    log: {
      date: '日時',
      printName: '印刷名',
      printer: 'プリンター',
      user: 'ユーザー',
      status: 'ステータス',
      duration: '所要時間',
      filament: 'フィラメント',
      allPrinters: '全プリンター',
      allUsers: '全ユーザー',
      allStatuses: '全ステータス',
      cancelled: 'キャンセル',
      skipped: 'スキップ',
      dateFrom: '開始日',
      dateTo: '終了日',
      noEntries: '印刷ログが見つかりません',
      showing: '{{total}}件中{{count}}件を表示',
      rowsPerPage: '行数',
      page: 'ページ',
      prev: '前へ',
      next: '次へ',
      clearLog: 'ログをクリア',
      clearLogTitle: '印刷ログをクリア',
      clearLogConfirm: 'すべての印刷ログエントリが完全に削除されます。アーカイブとキューアイテムには影響しません。この操作は元に戻せません。よろしいですか？',
      clearLogButton: 'すべてクリア',
      cleared: '{{count}}件のログエントリを削除しました',
      clearFailed: '印刷ログの削除に失敗しました',
    },
    noPrinterAvailable: '利用可能なプリンターがありません',
    archiveOrReprint: 'アーカイブまたは再印刷',
    multiPrinterPrint: 'マルチプリンター印刷',
    noPrintersForReprint: '再印刷用のプリンターがありません',
    searchMakerworld: 'MakerWorldで検索',
    searchPrintables: 'Printablesで検索',
    searchThingiverse: 'Thingiverseで検索',
    openInSlicer: 'スライサーで開く',
    openWithProtocol: '{{slicer}}で開く',
    context: {
      reprint: '再印刷',
      addToQueue: 'キューに追加',
      delete: '削除',
      edit: '編集',
      compare: '比較',
      viewTimelapse: 'タイムラプスを表示',
      downloadTimelapse: 'タイムラプスをダウンロード',
      openInBambuStudio: 'スライサーで開く',
      openInOrcaSlicer: 'OrcaSlicerで開く',
      addToProject: 'プロジェクトに追加',
      removeFromProject: 'プロジェクトから削除',
      downloadGcode: 'GCodeをダウンロード',
      download3mf: '3MFをダウンロード',
      downloadModel: 'モデルをダウンロード',
      viewPhotos: '写真を表示',
      searchOnline: 'オンラインで検索',
      sendToFileManager: 'ファイルマネージャーに送信',
      sendToPrinter: 'プリンターに送信',
      openStlViewer: 'STLビューアーで開く',
    },
    permissions: {
      noReprint: '再印刷する権限がありません',
      noDelete: '削除する権限がありません',
      noEdit: '編集する権限がありません',
      noDownload: 'ダウンロードする権限がありません',
      noQueue: 'キューに追加する権限がありません',
      noSendToPrinter: 'プリンターに送信する権限がありません',
      noSendToFileManager: 'ファイルマネージャーに送信する権限がありません',
      noUpload: 'アップロードする権限がありません',
      noBulkDelete: '一括削除する権限がありません',
    },
    costPerPrint: '印刷あたりのコスト',
    energyCost: 'エネルギーコスト',
    totalCost: '合計コスト',
    noFilament: 'フィラメントデータなし',
    printCount: '{{count}}回印刷',
    timesShort: '{{count}}回',
    perPrint: '/1回あたり',
    gcodeAvailable: 'GCode利用可能',
    noGcode: 'GCodeなし',
    plates: 'プレート',
    filaments: 'フィラメント',
    settings_label: '設定',
    weight: '重量',
    printSettings: '印刷設定',
    layerHeight: 'レイヤー高さ',
    nozzleTemp: 'ノズル温度',
    bedTemp: 'ベッド温度',
    infill: 'インフィル',
    supports: 'サポート',
    model3d: '3Dモデル',
    noModel: 'モデルなし',
    printNumber: '印刷 #{{number}}',
    sortLargest: '大きい順',
    sortSmallest: '小さい順',
    sortSize: 'サイズ',
    noArchivesSearch: '検索条件に一致するアーカイブがありません',
    loadingArchives: 'アーカイブを読み込み中...',
    manageTags: 'タグを管理',
    permission: {
      noReprint: 'このアーカイブを再印刷する権限がありません',
      noAddToQueue: 'キューに追加する権限がありません',
      noUpdateArchives: 'アーカイブを更新する権限がありません',
      noUploadFiles: 'ファイルをアップロードする権限がありません',
      noDownload: 'アーカイブをダウンロードする権限がありません',
      noCopyLink: 'ダウンロードリンクをコピーする権限がありません',
      noDelete: 'このアーカイブを削除する権限がありません',
      noCreate: 'アーカイブを作成する権限がありません',
    },
  },
  queue: {
    title: '印刷キュー',
    addToQueue: 'キューに追加',
    schedulePrint: '印刷をスケジュール',
    editQueueItem: 'キューアイテムを編集',
    adding: '追加中...',
    clearQueue: 'キューをクリア',
    clearHistory: '履歴をクリア',
    emptyQueue: 'キューは空です',
    position: '順番',
    scheduledTime: '予定時刻',
    moveUp: '上に移動',
    moveDown: '下に移動',
    startNow: '今すぐ開始',
    printingInProgress: '印刷中...',
    viewArchive: 'アーカイブを表示',
    viewInFileManager: 'ファイルマネージャーで表示',
    itemCount: '{{count}}件',
    dragToReorder: 'ドラッグして並べ替え（ASAPのみ）',
    addedBy: '{{username}}が追加',
    nextInQueue: '次のキュー',
    clearPlate: 'プレートをクリアして次を開始',
    clearPlateSuccess: 'プレートをクリアしました — 次の印刷の準備完了',
    plateReady: 'プレートをクリアしました — 次の印刷の準備完了',
    plateNumber: 'プレート {{index}}',
    sections: {
      currentlyPrinting: '印刷中',
      queued: 'キュー中',
      history: '履歴',
    },
    status: {
      pending: '待機中',
      waiting: '待機中',
      printing: '印刷中',
      paused: '一時停止',
      completed: '完了',
      failed: '失敗',
      skipped: 'スキップ',
      cancelled: 'キャンセル済み',
    },
    summary: {
      printing: '印刷中',
      queued: 'キュー中',
      history: '履歴',
      totalTime: 'キュー合計時間',
      totalWeight: 'キュー合計重量',
    },
    filter: {
      allPrinters: 'すべてのプリンター',
      unassigned: '未割当',
      allStatus: 'すべてのステータス',
      allLocations: 'すべてのロケーション',
      any: 'すべて',
    },
    sort: {
      byPosition: '順番で並べ替え',
      byName: '名前で並べ替え',
      byPrinter: 'プリンターで並べ替え',
      bySchedule: 'スケジュールで並べ替え',
      byDate: '日付で並べ替え',
      ascendingOldest: '昇順（古い順）',
      descendingNewest: '降順（新しい順）',
    },
    badges: {
      staged: 'ステージ済み',
      autoPowerOff: '自動電源オフ',
      requiresPrevious: '前の成功が必要',
    },
    empty: {
      title: 'スケジュールされた印刷はありません',
      description: 'アーカイブページのコンテキストメニューから「スケジュール」オプションを使用するか、ファイルをドラッグ＆ドロップして始めましょう。',
    },
    time: {
      asap: '即時',
      overdue: '期限超過',
      now: '今すぐ',
      inMinutes: '{{count}}分後',
      inHours: '{{count}}時間後',
      lessThanMinute: '1分以内',
    },
    actions: {
      stopPrint: '印刷を停止',
      startPrint: '印刷を開始',
      requeue: '再キュー',
    },
    bulkEdit: {
      title: '{{count}}件のアイテムを編集',
      description: '変更した設定のみが選択されたアイテムに適用されます。',
      printer: 'プリンター',
      noChange: '— 変更なし —',
      queueOptions: 'キューオプション',
      staged: 'ステージ済み',
      autoPowerOff: '印刷後に自動電源オフ',
      printOptions: '印刷オプション',
      bedLevelling: 'ベッドレベリング',
      flowCalibration: 'フローキャリブレーション',
      vibrationCalibration: '振動キャリブレーション',
      timelapse: 'タイムラプス',
      useAms: 'AMS使用',
      applyChanges: '変更を適用',
      selectAll: 'すべて選択',
      deselectAll: 'すべて選択解除',
      selected: '{{count}}件選択中',
      editSelected: '選択を編集',
      cancelSelected: '選択をキャンセル',
      title_plural: '{{count}}件のアイテムを編集',
      requirePrevious: '前の成功を必要とする',
      layerInspection: '第一層検査',
    },
    confirm: {
      cancelTitle: 'スケジュール済み印刷をキャンセル',
      cancelMessage: '「{{name}}」をキャンセルしますか？',
      stopTitle: '印刷を停止',
      stopMessage: '現在の印刷「{{name}}」を停止しますか？プリンター上の印刷ジョブがキャンセルされます。',
      removeTitle: '履歴から削除',
      removeMessage: '「{{name}}」をキュー履歴から削除しますか？',
      clearHistoryMessage: '{{count}}件の履歴をすべて削除しますか？',
      cancelButton: '印刷をキャンセル',
      stopButton: '印刷を停止',
      thisPrint: 'この印刷',
      thisItem: 'このアイテム',
      clearHistoryTitle: '履歴をクリア',
    },
    toast: {
      cancelled: 'キャンセル済み',
      removeFailed: 'プロジェクトからのアーカイブ削除に失敗しました',
      cancelFailed: 'アイテムのキャンセルに失敗しました',
      removed: 'キューアイテムを削除しました',
      stopped: '印刷を停止しました',
      stopFailed: '印刷の停止に失敗しました',
      released: '印刷をキューにリリースしました',
      startFailed: '印刷の開始に失敗しました',
      reorderFailed: 'キューの並べ替えに失敗しました',
      historyCleared: '{{count}}件の履歴をクリアしました',
      clearHistoryFailed: '履歴のクリアに失敗しました',
      updateFailed: 'アイテムの更新に失敗しました',
      bulkCancelled: '{{count}}件のアイテムをキャンセルしました',
      bulkCancelFailed: 'アイテムのキャンセルに失敗しました',
    },
    subtitle: '印刷ジョブのスケジュールと管理',
    print: '印刷',
    reprint: '再印刷',
    printToPrinters: '{{count}}台のプリンターで印刷',
    queueToPrinters: '{{count}}台のプリンターでキュー追加',
    sending: '送信中...',
    sendingProgress: '送信中 {{current}}/{{total}}...',
    addingProgress: '追加中 {{current}}/{{total}}...',
    savingProgress: '保存中 {{current}}/{{total}}...',
    itemCount_plural: '{{count}}件のアイテム',
    reorderHint: '順番はASAPアイテムのみに影響します。スケジュール済みアイテムは設定時刻に実行されます。',
    permissions: {
      noStopPrint: '印刷を停止する権限がありません',
      noStartPrint: '印刷を開始する権限がありません',
      noEdit: 'このキューアイテムを編集する権限がありません',
      noCancel: 'このキューアイテムをキャンセルする権限がありません',
      noRequeue: 'アイテムを再キューする権限がありません',
      noRemove: 'このキューアイテムを削除する権限がありません',
      noClearHistory: 'すべての履歴をクリアする権限がありません',
      noEditItems: 'キューアイテムを編集する権限がありません',
      noCancelItems: 'キューアイテムをキャンセルする権限がありません',
    },
  },
  backgroundDispatch: {
    unknownFile: '不明なファイル',
    unknownPrinter: '不明なプリンター',
    startingPrints: '印刷開始中',
    progressSummary: '{{complete}}/{{total}} 完了 • 配信済み: {{dispatched}} • 処理中: {{processing}}',
    expandDetails: '配信詳細を展開',
    collapseDetails: '配信詳細を折りたたむ',
    dismissToast: '配信トーストを閉じる',
    cancelDispatchJob: '配信ジョブをキャンセル',
    cancel: 'キャンセル',
    cancelling: 'キャンセル中…',
    status: {
      dispatched: '配信済み',
      processing: '処理中',
      completed: '完了',
      failed: '失敗',
      cancelled: 'キャンセル済み',
    },
    toast: {
      cancellingUpload: 'アップロードをキャンセル中...',
      cancelled: '配信をキャンセルしました',
      cancelFailed: '配信のキャンセルに失敗しました',
      completeWithFailures: 'バックグラウンド配信完了: {{completed}} 件成功、{{failed}} 件失敗',
      completeSuccess: 'バックグラウンド配信完了: {{completed}} 件成功',
    },
  },
  stats: {
    title: '統計',
    overview: '概要',
    totalPrints: '総印刷数',
    successRate: '成功率',
    totalPrintTime: '総印刷時間',
    printTime: '印刷時間',
    totalFilament: '総フィラメント使用量',
    filamentUsed: 'フィラメント使用量',
    filamentCost: 'フィラメントコスト',
    totalCost: '総コスト',
    energyUsed: 'エネルギー使用量',
    energyCost: 'エネルギーコスト',
    averagePrintTime: '平均印刷時間',
    printsPerDay: '1日あたりの印刷数',
    byPrinter: 'プリンター別',
    printsByPrinter: 'プリンター別印刷数',
    byMaterial: '素材別',
    byMonth: '月別',
    last7Days: '過去7日間',
    last30Days: '過去30日間',
    last90Days: '過去90日間',
    allTime: '全期間',
    quickStats: 'クイック統計',
    printActivity: '印刷アクティビティ',
    filamentTypes: 'フィラメントタイプ',
    timeAccuracy: '時間精度',
    successful: '成功',
    failed: '失敗',
    perfectEstimate: '100% = 完全な推定',
    noTimeAccuracyData: '時間精度データがありません',
    noFilamentData: 'フィラメントデータがありません',
    noPrinterData: 'プリンターデータがありません',
    noPrintData: '印刷データがありません',
    noPrintDataLast30Days: '過去30日間の印刷データがありません',
    failureReasons: '失敗理由',
    topFailureReasons: '主な失敗理由',
    resetLayout: 'レイアウトをリセット',
    recalculateCosts: 'コストを再計算',
    exportStats: '統計をエクスポート',
    exportAsCsv: 'CSVでエクスポート',
    exportAsExcel: 'Excelでエクスポート',
    hiddenCount: '{{count}}件非表示',
    exportDownloaded: 'エクスポートをダウンロードしました',
    exportFailed: 'エクスポートに失敗しました',
    layoutReset: 'レイアウトをリセットしました',
    recalculateFailed: 'コストの再計算に失敗しました',
    noPermissionResetLayout: 'レイアウトをリセットする権限がありません',
    noPermissionRecalculate: 'コストを再計算する権限がありません',
    subtitle: 'ウィジェットをドラッグして並べ替え。目のアイコンをクリックして非表示。',
    filamentTrends: 'フィラメントトレンド',
    failureAnalysis: '失敗分析',
    failedPrintsCount: '{{failed}} / {{total}} 件の印刷が失敗',
    lastWeekRate: '先週: {{rate}}%',
    recalculateCostsHint: '現在のフィラメント価格ですべてのアーカイブコストを再計算',
    recalculatedCosts: '{{count}}件のアーカイブのコストを再計算しました',
    loadingStats: '統計を読み込み中...',
    noPrintDataInRange: '選択した期間にデータがありません',
    periodFilament: 'フィラメント使用量',
    periodCost: 'コスト',
    avgPerPrint: '1印刷あたりの平均',
    usageOverTime: '時間推移',
    filamentByWeight: '重量',
    printDuration: '印刷時間分布',
    printerUtilization: 'プリンター稼働率',
    filamentSuccess: '素材別成功率',
    printHabits: '印刷習慣',
    printTimeOfDay: '時間帯別プリント',
    colorDistribution: 'カラー分布',
    noColorData: 'カラーデータがありません',
    records: '記録',
    longestPrint: '最長プリント',
    heaviestPrint: '最重プリント',
    mostExpensivePrint: '最高額',
    busiestDay: '最多プリント日',
    successStreak: '連続成功',
    streakPrint: '連続プリント',
    streakPrints: '{{count}}連続プリント',
    printerStats: 'プリンター統計',
    hours: '時間',
    avgPrints: '平均印刷数',
    noArchiveData: '印刷データがありません',
    filamentByTime: '推移',
    avgWeight: '平均重量',
    avgTime: '平均時間',
    filamentByPrints: '印刷数',
    timeframe: {
      'today': '今日',
      'this-week': '今週',
      'this-month': '今月',
      'last-7': '過去7日間',
      'last-30': '過去30日間',
      'last-90': '過去90日間',
      'this-year': '今年',
      'all-time': '全期間',
      'custom': 'カスタム',
      from: '開始',
      to: '終了',
    },
  },
  maintenance: {
    title: 'メンテナンス',
    overview: '概要',
    allOk: 'すべてのメンテナンスは最新です',
    dueCount: '{{count}}件の期限到来',
    dueCount_plural: '{{count}}件の期限到来',
    warningCount: '{{count}}件の警告',
    warningCount_plural: '{{count}}件の警告',
    totalPrintTime: '総印刷時間',
    nextMaintenance: '次回メンテナンス',
    nothingDue: '予定なし',
    tasks: 'タスク',
    lastPerformed: '前回実施日',
    interval: '間隔',
    hoursRemaining: '残り{{hours}}時間',
    hoursOverdue: '{{hours}}時間超過',
    markDone: '完了にする',
    performMaintenance: 'メンテナンスを実施',
    history: '履歴',
    noHistory: 'メンテナンス履歴がありません',
    editPrintHours: '印刷時間を編集',
    currentHours: '現在の時間',
    dueSoon: 'まもなく期限',
    allGood: '問題なし',
    days: '日',
    weeks: '{{count}}週間',
    months: '{{count}}ヶ月',
    maintenanceTypes: 'メンテナンスタイプ',
    addCustomType: 'カスタムタイプを追加',
    restoreDefaults: 'デフォルトタスクを復元',
    intervalType: 'インターバルタイプ',
    icon: 'アイコン',
    documentationLink: 'ドキュメントリンク（任意）',
    assignToPrinters: 'プリンターに割り当て',
    selectAtLeastOnePrinter: 'プリンターを1台以上選択してください',
    addType: 'タイプを追加',
    custom: 'カスタム',
    printHours: '印刷時間',
    calendarDays: 'カレンダー日数',
    viewDocumentation: 'ドキュメントを表示',
    timeBasedInterval: '時間ベースのインターバル',
    intervalOverrides: 'インターバルのオーバーライド',
    assignedToPrinters: '割り当て済みプリンター：',
    noPrintersAssigned: 'プリンター未割り当て',
    removeFromPrinter: 'このプリンターから削除',
    types: {
      lubricateCarbonRods: 'カーボンロッドの潤滑',
      lubricateRails: 'リニアレールの潤滑',
      cleanNozzle: 'ノズル/ホットエンドの清掃',
      checkBelts: 'ベルト張力の確認',
      cleanBuildPlate: 'ビルドプレートの清掃',
      checkExtruder: 'エクストルーダーギアの確認',
      checkCooling: '冷却ファンの確認',
      generalInspection: '総合点検',
      cleanCarbonRods: 'カーボンロッドの清掃',
      cleanLinearRails: 'リニアレールの清掃',
      checkPtfeTube: 'PTFEチューブの確認',
      replaceHepaFilter: 'HEPAフィルター交換',
      replaceCarbonFilter: 'カーボンフィルター交換',
      lubricateLeftNozzleRail: '左ノズルレールの潤滑',
    },
    typeUpdated: 'メンテナンスタイプを更新しました',
    typeDeleted: 'メンテナンスタイプを削除しました',
    defaultsRestored: 'デフォルトタスクを{{count}}件復元しました',
    printerAssigned: 'プリンターを割り当てました',
    printerRemoved: 'プリンターを削除しました',
    deleteTypeConfirm: '「{{name}}」を削除しますか？',
    deleteSystemTypeTitle: 'デフォルトのメンテナンスタスクを削除しますか？',
    deleteSystemTypeMessage: 'デフォルトのメンテナンスタスク「{{name}}」を削除してもよろしいですか？',
    noPermissionUpdate: 'メンテナンス記録を更新する権限がありません',
    noPermissionPerform: 'メンテナンスを実行する権限がありません',
    noPermissionEditTypes: 'メンテナンスタイプを編集する権限がありません',
    noPermissionDeleteTypes: 'メンテナンスタイプを削除する権限がありません',
    noPermissionEditHours: 'メンテナンス時間を編集する権限がありません',
    noPermissionEditIntervals: 'メンテナンス間隔を編集する権限がありません',
    statusTab: 'ステータス',
    settingsTab: '設定',
    overdueCount: '{{count}}件超過',
    dueSoonCount: '{{count}}件まもなく期限',
    overdueBy: '{{duration}}超過',
    dueIn: 'あと{{duration}}',
    timeLeft: '残り{{duration}}',
    day: '1日',
    week: '1週間',
    month: '1ヶ月',
    year: '1年',
    maintenanceTypesDescription: 'システムタイプとカスタムメンテナンスタスク',
    intervalValue: '間隔 ({{type}})',
    exampleName: '例: HEPAフィルター交換',
    intervalOverridesDescription: '特定のプリンターの間隔をカスタマイズ',
    addPrinterShort: '追加:',
    printersAssignedClick: '{{count}}台のプリンターを割り当て済み - クリックして管理',
    maintenanceComplete: 'メンテナンスを完了としてマークしました',
    printHoursUpdated: '印刷時間を更新しました',
    noPermissionRemovePrinter: 'プリンターの割り当てを解除する権限がありません',
    noPermissionAssignPrinter: 'プリンターを割り当てる権限がありません',
    configureSettings: 'メンテナンスタイプと間隔を設定',
  },
  settings: {
    title: '設定',
    general: '一般',
    tabs: {
      general: '一般',
      smartPlugs: 'スマートプラグ',
      notifications: '通知',
      apiKeys: 'APIキー',
      users: '認証',
      backup: 'バックアップ',
      filament: 'フィラメント',
      network: 'ネットワーク',
      virtualPrinter: '仮想プリンター',
      emailAuth: 'メール認証',
    },
    appearance: '外観',
    notifications: '通知',
    smartPlugs: 'スマートプラグ',
    updates: 'アップデート',
    language: '言語',
    languageDescription: '表示言語を選択してください',
    theme: 'テーマ',
    themeLight: 'ライト',
    themeDark: 'ダーク',
    themeSystem: 'システム設定に従う',
    defaultView: 'デフォルト画面',
    defaultViewDescription: 'アプリ起動時に表示するページ',
    checkForUpdates: 'アップデートを確認',
    autoUpdate: '自動アップデート',
    currentVersion: '現在のバージョン',
    latestVersion: '最新バージョン',
    upToDate: '最新です',
    updateAvailable: 'アップデートあり',
    notificationLanguage: '通知の言語',
    notificationLanguageDescription: 'プッシュ通知の言語',
    bedCooledThreshold: 'ベッド冷却しきい値',
    bedCooledThresholdDescription: '印刷後にベッドが冷却されたと見なす温度',
    notificationProviders: '通知プロバイダー',
    addProvider: 'プロバイダーを追加',
    editProvider: 'プロバイダーを編集',
    providerType: 'プロバイダーの種類',
    testNotification: 'テスト通知',
    testSuccess: 'テスト通知を送信しました',
    testFailed: 'テスト通知の送信に失敗しました',
    quietHours: 'おやすみ時間',
    quietHoursDescription: 'この時間帯は通知を送信しません',
    quietHoursStart: '開始',
    quietHoursEnd: '終了',
    events: {
      title: '通知イベント',
      printStart: '印刷開始',
      printComplete: '印刷完了',
      printFailed: '印刷失敗',
      printStopped: '印刷中止',
      printProgress: '進捗マイルストーン',
      printProgressDescription: '25%, 50%, 75%で通知',
      printerOffline: 'プリンターオフライン',
      printerError: 'プリンターエラー',
      filamentLow: 'フィラメント残量低下',
      maintenanceDue: 'メンテナンス期限',
      maintenanceDueDescription: 'メンテナンスが必要なときに通知',
    },
    smartPlug: {
      title: 'スマートプラグ',
      add: 'スマートプラグを追加',
      edit: 'スマートプラグを編集',
      name: '名前',
      ipAddress: 'IPアドレス',
      linkedPrinter: '連携プリンター',
      autoOn: '自動電源オン',
      autoOnDescription: '印刷開始時に電源を入れる',
      autoOff: '自動電源オフ',
      autoOffDescription: '印刷完了後に電源を切る',
      offDelay: 'オフ遅延',
      offDelayMinutes: '印刷後の待機時間（分）',
      offDelayTemp: 'ノズル温度が下回ったとき',
      currentState: '現在の状態',
      turnOn: '電源オン',
      turnOff: '電源オフ',
    },
    // Email settings (Advanced Auth)
    email: {
      smtpSettings: 'SMTP設定',
      smtpHost: 'SMTPサーバー',
      smtpPort: 'SMTPポート',
      security: 'セキュリティ',
      authentication: '認証',
      username: 'ユーザー名',
      password: 'パスワード',
      fromEmail: '送信元メールアドレス',
      fromName: '送信者名',
      testConnection: 'SMTP接続テスト',
      testRecipient: 'テスト受信者メール',
      sendTest: 'テストメール送信',
      sending: '送信中...',
      save: '設定を保存',
      saving: '保存中...',
      advancedAuth: '高度な認証',
      advancedAuthEnabled: '高度な認証が有効です',
      advancedAuthEnabledDesc: 'メールベースのユーザー管理機能が有効になっています。新規ユーザーには自動生成されたパスワードがメールで送信され、ユーザーはパスワード忘れ機能でパスワードをリセットできます。',
      advancedAuthDisabled: '高度な認証が無効です',
      advancedAuthDisabledDesc: '高度な認証を有効にして、ユーザー管理のメールベース機能を有効化してください。',
      enable: '有効にする',
      disable: '無効にする',
      feature1: 'パスワードは自動生成され、新規ユーザーにメールで送信されます',
      feature2: 'ユーザーはユーザー名またはメールでログインできます',
      feature3: 'パスワード忘れ機能が利用可能です',
      feature4: '管理者はメールでユーザーパスワードをリセットできます',
      errors: {
        requiredFields: 'すべての必須フィールドに入力してください',
        usernameRequired: '認証が有効な場合、ユーザー名は必須です',
        enterTestEmail: 'テストメールアドレスを入力してください',
        smtpServerAndEmail: 'テストする前にSMTPサーバーと送信元メールを入力してください',
        usernamePasswordRequired: '認証が有効な場合、ユーザー名とパスワードは必須です',
        configureSmtpFirst: '最初にSMTP設定を構成してテストしてください',
      },
      success: {
        settingsSaved: 'SMTP設定を保存しました',
      },
      securityOptions: {
        starttls: 'STARTTLS (ポート 587)',
        ssl: 'SSL/TLS (ポート 465)',
        none: 'なし (ポート 25)',
      },
      authOptions: {
        enabled: '有効',
        disabled: '無効',
      },
    },
    noDefaultPrinter: 'デフォルトなし（毎回選択）',
    sidebarOrder: 'サイドバーの順序',
    saveThumbnails: 'サムネイルを保存',
    captureFinishPhoto: '完了写真を撮影',
    noPrintersConfigured: 'プリンターが設定されていません',
    checkPrinterFirmware: 'プリンターファームウェアの確認',
    includeBetaUpdates: 'ベータ版を含める',
    includeBetaUpdatesDesc: 'アップデート確認時にベータ版およびプレリリース版を通知する',
    enableRetry: 'リトライを有効化',
    homeAssistantDescription: 'Home Assistantに接続してHA REST APIでスマートプラグを制御します。switch、light、input_booleanエンティティに対応しています。',
    environmentManagedLabel: '(環境変数で管理)',
    autoEnabledViaEnv: '環境変数により自動的に有効化されました',
    urlFromEnvReadOnly: 'HA_URL環境変数で設定された値（読み取り専用）',
    tokenFromEnvReadOnly: 'HA_TOKEN環境変数で設定された値（読み取り専用）',
    noSmartPlugsDescription: 'Tasmotaベースのスマートプラグを追加して、エネルギー消費を追跡し、電源制御を自動化します。',
    noProvidersDescription: 'アラートを受信するにはプロバイダーを追加してください。',
    noUsersFound: 'ユーザーが見つかりません',
    noGroupsFound: 'グループが見つかりません',
    noGroupsAvailable: '利用可能なグループがありません',
    passwordsDoNotMatch: 'パスワードが一致しません',
    authDisabledTitle: '認証が無効です',
    deleteUserConfirm: 'このユーザーを削除してもよろしいですか？この操作は元に戻せません。',
    actionCannotBeUndone: 'この操作は元に戻せません',
    addFirstSmartPlug: '最初のスマートプラグを追加',
    providers: 'プロバイダー',
    log: 'ログ',
    testAll: 'すべてテスト',
    testResults: 'テスト結果',
    messageTemplates: 'メッセージテンプレート',
    apiKeys: 'APIキー',
    apiKeysDescription: '外部連携やWebhook用のAPIキーを作成します。',
    createKey: 'キーを作成',
    apiKeyCreated: 'APIキーを作成しました',
    apiKeyCopyWarning: '今すぐこのキーをコピーしてください - 再表示されません！',
    createNewApiKey: '新しいAPIキーを作成',
    keyName: 'キー名',
    readStatus: 'ステータスの読み取り',
    readStatusDescription: 'プリンターのステータスとキューを表示',
    manageQueue: 'キューの管理',
    manageQueueDescription: '印刷キューへのアイテムの追加と削除',
    controlPrinter: 'プリンターの制御',
    controlPrinterDescription: '印刷の一時停止、再開、停止',
    unnamedKey: '名前なしキー',
    lastUsed: '最終使用:',
    createFirstKey: '最初のキーを作成',
    webhookEndpoints: 'Webhookエンドポイント',
    webhookApiKeyHint: 'X-API-KeyヘッダーでAPIキーを使用してください。',
    webhook: {
      pausePrint: '印刷を一時停止',
      resumePrint: '印刷を再開',
      getAllStatus: '全プリンターステータスを取得',
      getSpecificStatus: '特定のプリンターステータスを取得',
      addToQueue: '印刷キューに追加',
      stopPrint: '印刷を停止',
    },
    apiBrowser: 'APIブラウザ',
    apiBrowserDescription: 'すべての利用可能なAPIエンドポイントを探索してテストします。',
    apiKeyForTesting: 'テスト用APIキー',
    apiKeyPlaceholder: 'CallMeBot APIキー',
    deleteApiKeyTitle: 'APIキーを削除',
    deleteApiKeyMessage: 'このAPIキーを削除してもよろしいですか？このキーを使用しているすべての連携が動作しなくなります。',
    deleteKey: 'キーを削除',
    amsThresholdsDescription: 'AMS湿度と温度インジケーターの色しきい値を設定します。',
    humidity: '湿度',
    goodGreen: '良好（緑）≤',
    fairOrange: '普通（オレンジ）≤',
    aboveFairBad: '普通のしきい値以上は赤（悪い）で表示',
    temperature: '温度',
    goodBlue: '良好（青）≤',
    aboveFairHot: '普通のしきい値以上は赤（高温）で表示',
    historyRetention: '履歴の保持',
    historyRetentionDescription: '古い湿度と温度データは自動的に削除されます',
    printModal: '印刷ダイアログ',
    authentication: '認証',
    authDisabledDescription: '認証を有効にして、ユーザーアカウントの作成、権限の管理、Bambuddyインスタンスのセキュリティを確保しましょう。',
    enableAuthentication: '認証を有効にする',
    currentUser: '現在のユーザー',
    changePassword: 'パスワードを変更',
    admin: '管理者',
    users: 'ユーザー',
    addUser: 'ユーザーを追加',
    groups: 'グループ',
    addGroup: 'グループを追加',
    noDescription: '説明なし',
    createUser: 'ユーザーを作成',
    username: 'ユーザー名',
    enterUsername: 'ユーザー名を入力',
    password: 'パスワード',
    enterPassword: 'パスワードを入力（6文字以上）',
    confirmPassword: 'パスワードの確認',
    confirmPasswordPlaceholder: 'パスワードを確認',
    turnAllPlugsOn: 'すべてのプラグをオン',
    turnAllPlugsOff: 'すべてのプラグをオフ',
    clearLogsMessage: '30日以上前のすべての通知ログを完全に削除します。この操作は元に戻せません。',
    clearLogs: '通知ログを削除',
    resetPreferences: '設定をリセット',
    deleteGroup: 'グループを削除',
    systemDefault: 'システムデフォルト',
    archiveSettings: 'アーカイブ設定',
    costTracking: 'コスト追跡',
    dataManagement: 'データ管理',
    storageUsage: 'ストレージ使用量',
    storageUsageDescription: 'カテゴリ別のデータ使用量の内訳',
    storageUsageTotal: '合計',
    storageUsageErrors: 'エラー',
    storageUsageOtherBreakdown: 'その他（静的アセット、スクリプト、設定ファイルを含む）',
    storageUsageSystem: 'システム',
    storageUsageData: 'データ',
    storageUsageUnavailable: 'ストレージ使用量情報は利用できません',
    enableMqtt: 'MQTTを有効化',
    useTls: 'TLSを使用',
    enableMetricsEndpoint: 'メトリクスエンドポイントを有効化',
    availableMetrics: '利用可能なメトリクス',
    editUser: 'ユーザーを編集',
    groupName: 'グループ名',
    enterNewPassword: '新しいパスワードを入力',
    confirmNewPassword: '新しいパスワードを確認',
    enterGroupName: 'グループ名を入力',
    enterCurrentPassword: '現在のパスワードを入力',
    enterNewPasswordMin6: '新しいパスワードを入力（6文字以上）',
    toast: {
      keyCopied: 'キーをクリップボードにコピーしました',
      keyAddedToBrowser: 'キーをAPIブラウザに追加しました',
      clearLogsFailed: 'ログの削除に失敗しました',
      apiKeyCreated: 'APIキーを作成しました',
      apiKeyDeleted: 'APIキーを削除しました',
      userCreated: 'ユーザーが正常に作成されました',
      userUpdated: 'ユーザーが正常に更新されました',
      userDeleted: 'ユーザーが正常に削除されました',
      fillRequiredFields: '必須項目をすべて入力してください',
      passwordsDoNotMatch: 'パスワードが一致しません',
      enterGroupName: 'グループ名を入力',
      settingsSaved: '設定を保存しました',
      passwordChanged: 'パスワードが正常に変更されました',
      connectionFailed: '接続失敗',
      testFailed: 'テスト通知の送信に失敗しました',
      uiPreferencesReset: 'UI設定をリセットしました。更新中...',
      authDisabled: '認証を無効にしました',
      authDisableFailed: '認証の無効化に失敗しました',
      groupCreated: 'グループを作成しました',
      groupUpdated: 'グループを更新しました',
      groupDeleted: 'グループを削除しました',
      passwordTooShort: 'パスワードは6文字以上必要です',
      cameraConnected: 'カメラ接続{{resolution}}',
      copyFailed: 'キーのコピーに失敗しました',
      cameraSettingsSaved: 'カメラ設定を保存しました',
      enterCameraUrl: 'カメラURLを入力してください',
    },
    testConnection: '接続テスト',
    spoolman: 'Spoolman',
    archiveMode: {
      always: '常にアーカイブを作成',
      never: 'アーカイブを作成しない',
      ask: '毎回確認',
    },
    checkForUpdatesLabel: 'アップデートを確認',
    mqttConnectedTo: '接続先:',
    prometheusDescription: 'プリンターデータをPrometheus形式で公開',
    noSmartPlugsTitle: 'スマートプラグが設定されていません',
    noProvidersTitle: 'プロバイダーが設定されていません',
    noTemplatesAvailable: 'テンプレートがありません。バックエンドを再起動してデフォルトテンプレートを生成してください。',
    apiPermissionView: 'プリンターステータスとキューを表示',
    apiPermissionEdit: '印刷キューにアイテムを追加・削除',
    apiKeysEmptyTitle: 'APIキーがありません',
    apiKeysEmptyDescription: '外部サービスと連携するためのAPIキーを作成してください。',
    systemGroupWarning: 'システムグループ名は変更できません',
    authDisabledFeature1: 'システムへのアクセスにログインを要求',
    authDisabledFeature2: 'グループベースの権限で複数ユーザーを作成',
    authDisabledFeature3: '50以上のきめ細かな権限でアクセスを制御',
    userHasCreated: 'このユーザーは以下を作成しています：',
    userItemsQuestion: 'これらのアイテムをどうしますか？',
    testPassedCount: '{{count}}件成功',
    testFailedCount: '{{count}}件失敗',
    messageTemplatesDescription: '各イベントの通知メッセージをカスタマイズ。',
    useInApiBrowser: 'APIブラウザーで使用',
    keyNamePlaceholder: '例: Home Assistant, OctoPrint',
    read: '読み取り',
    control: '制御',
    apiKeyHint: 'このキーはX-API-Keyヘッダーとしてリクエストに送信されます。',
    amsDisplayThresholds: 'AMS表示しきい値',
    keepSensorHistory: 'センサー履歴の保持期間',
    expandCustomMapping: 'カスタムマッピングをデフォルトで展開',
    expandCustomMappingDescription: '複数プリンターに印刷する際、プリンターごとのAMSマッピングを展開表示',
    authEnabledDescription: 'ユーザー認証でインスタンスが保護されています',
    authDisabledMessage: '認証を有効にして、ユーザーアカウントの作成、権限の管理、Bambuddyインスタンスのセキュリティを確保しましょう。',
    system: 'システム',
    userCount: '{{count}}人のユーザー',
    permissionCount: '{{count}}件の権限',
    viewReleaseOnGitHub: 'GitHubでリリースを表示',
    clearNotificationLogs: '通知ログをクリア',
    resetUiPreferences: 'UI設定をリセット',
    resetUiPreferencesMessage: 'すべてのUI設定をデフォルトにリセットします：サイドバー順序、テーマ、ダッシュボードレイアウト、表示モード、ソート設定。プリンター、アーカイブ、サーバー設定は影響を受けません。クリア後にページがリロードされます。',
    deleteGroupTitle: 'グループを削除',
    deleteGroupMessage: 'このグループを削除しますか？このグループのユーザーはこれらの権限を失います。',
    disableAuthenticationTitle: '認証を無効化',
    disableAuthenticationMessage: '認証を無効にしますか？Bambuddyインスタンスにログインなしでアクセスできるようになります。ユーザーはデータベースに残りますが、認証は無効になります。',
    disableAuthentication: '認証を無効化',
    configureBambuddy: 'Bambuddyを設定',
    newWindow: '新しいウィンドウ',
    embeddedOverlay: '埋め込みオーバーレイ',
    preferredSlicer: '優先スライサー',
    preferredSlicerDescription: 'ファイルを開くスライサーアプリケーションを選択',
    externalCameras: '外部カメラ',
    printsOnly: '印刷のみ',
    totalConsumption: '総消費量',
    clearNotificationLogsDescription: '30日以上前の通知ログを削除',
    resetUiPreferencesDescription: 'サイドバー順序、テーマ、表示モード、レイアウト設定をリセット。プリンター、アーカイブ、設定は影響を受けません。',
    enableHomeAssistant: 'Home Assistantを有効化',
    deleteUserTitle: 'ユーザーを削除',
    leaveEmptyForAnonymous: '匿名の場合は空のまま',
    leaveEmptyForNoAuth: '認証なしの場合は空のまま',
    enterDescriptionOptional: '説明を入力（任意）',
    // フィラメント追跡モード
    filamentTracking: 'フィラメント追跡',
    filamentTrackingDesc: 'フィラメントスプールの追跡方法を選択してください。内蔵インベントリまたは外部Spoolmanサーバーを使用できます。',
    trackingModeBuiltIn: '内蔵インベントリ',
    trackingModeBuiltInDesc: 'RFID自動検出と使用量追跡を含む',
    trackingModeSpoolmanDesc: '外部フィラメント管理サーバー',
    builtInFeatureRfid: 'AMS内のBambu Lab RFIDスプールを自動検出',
    builtInFeatureUsage: 'プリントごとのフィラメント消費量を追跡',
    builtInFeatureCatalog: 'スプール、カラー、K値プロファイルを管理',
    builtInFeatureThirdParty: 'サードパーティ製スプールをインベントリスプールに割り当て可能',
    amsSyncButton: 'AMSから重量を同期',
    amsSyncTitle: 'AMSからスプール重量を同期',
    amsSyncMessage: '接続されたプリンターの現在のAMS残量値で、すべてのインベントリスプール重量を上書きします。破損した重量データの復旧に使用してください。プリンターがオンラインである必要があります。',
    amsSyncing: '同期中...',
    amsSyncSuccess: '{{synced}}個のスプールを同期、{{skipped}}個をスキップ',
    amsSyncError: 'AMSからの重量同期に失敗しました',
    // Spoolman設定
    spoolmanUrl: 'Spoolman URL',
    spoolmanUrlHint: 'Spoolmanサーバーのurl（例：http://localhost:7912）',
    spoolmanConnected: '接続中',
    spoolmanDisconnected: '未接続',
    status: 'ステータス',
    connect: '接続',
    disconnect: '切断',
    howSyncWorks: '同期の仕組み',
    syncInfoRfidOnly: 'RFIDを搭載した公式Bambu Labスプールのみ同期されます',
    syncInfoAutoCreate: '新しいスプールは初回同期時にSpoolmanに自動作成されます',
    syncInfoThirdPartySkipped: 'Bambu Lab以外のスプール（サードパーティ、リフィル）はスキップされます',
    linkingExistingSpools: '既存スプールのリンク',
    linkingExistingSpoolsDesc: '既存のSpoolmanスプールをAMSにリンクするには、AMSスロットにカーソルを合わせて「Spoolmanにリンク」をクリックしてください。',
    syncMode: '同期モード',
    syncModeAuto: '自動',
    syncModeManual: '手動のみ',
    syncModeAutoDesc: '変更が検出されるとAMSデータが自動的に同期されます',
    syncModeManualDesc: '手動でトリガーした場合のみ同期',
    syncAmsData: 'AMSデータを同期',
    syncAmsDataDesc: 'プリンターのAMSデータをSpoolmanに手動同期',
    allPrinters: '全プリンター',
    catalog: {
      spoolCatalog: 'スプールカタログ',
      spoolCatalogDescription: 'ブランド/タイプ別の空スプール重量。スプール追加時の自動重量検索に使用されます。',
      searchCatalog: 'カタログを検索...',
      addNewEntry: '新しいエントリを追加',
      namePlaceholder: '名前（例：Bambu Lab - プラスチック）',
      weight: '重量',
      type: 'タイプ',
      default: 'デフォルト',
      custom: 'カスタム',
      noMatch: '検索に一致するエントリがありません',
      empty: 'カタログにエントリがありません',
      deleteEntry: 'エントリを削除',
      deleteConfirm: '「{{name}}」を削除してもよろしいですか？',
      resetCatalog: 'カタログをリセット',
      resetConfirm: 'カタログをデフォルトにリセットしますか？カスタムエントリはすべて削除されます。',
      loadFailed: 'スプールカタログの読み込みに失敗しました',
      nameWeightRequired: '名前と重量は必須です',
      entryAdded: 'エントリを追加しました',
      addFailed: 'エントリの追加に失敗しました',
      entryUpdated: 'エントリを更新しました',
      updateFailed: 'エントリの更新に失敗しました',
      entryDeleted: 'エントリを削除しました',
      deleteFailed: 'エントリの削除に失敗しました',
      resetSuccess: 'カタログをデフォルトにリセットしました',
      resetFailed: 'カタログのリセットに失敗しました',
      exported: '{{count}}件のエントリをエクスポートしました',
      imported: '{{added}}件のエントリをインポートしました（{{skipped}}件スキップ）',
      importFailed: 'インポートに失敗しました：無効なJSON形式',
      exportTooltip: 'カタログをJSONにエクスポート',
      importTooltip: 'JSONからカタログをインポート',
      resetTooltip: 'デフォルトにリセット',
    },
    colorCatalog: {
      title: 'カラーカタログ',
      description: 'メーカー/素材別のフィラメントカラー。スプール追加時の自動カラー検索に使用されます。',
      searchColors: 'カラーを検索...',
      allManufacturers: 'すべてのメーカー',
      addNewColor: '新しいカラーを追加',
      manufacturer: 'メーカー',
      colorName: 'カラー名',
      hex: 'Hex',
      materialOptional: '素材（任意）',
      showing: '{{total}}件中{{filtered}}件を表示',
      noMatch: '検索に一致するカラーがありません',
      empty: 'カタログにカラーがありません',
      deleteColor: 'カラーを削除',
      deleteConfirm: '「{{name}}」を削除してもよろしいですか？',
      resetCatalog: 'カラーカタログをリセット',
      resetConfirm: 'カタログをデフォルトにリセットしますか？カスタムカラーはすべて削除されます。',
      sync: '同期',
      starting: '開始中...',
      syncTooltip: 'FilamentColors.xyzから同期（2000+カラー）',
      loadFailed: 'カラーカタログの読み込みに失敗しました',
      fieldsRequired: 'メーカー、カラー名、Hexカラーは必須です',
      colorAdded: 'カラーを追加しました',
      addFailed: 'カラーの追加に失敗しました',
      colorUpdated: 'カラーを更新しました',
      updateFailed: 'カラーの更新に失敗しました',
      colorDeleted: 'カラーを削除しました',
      deleteFailed: 'カラーの削除に失敗しました',
      resetSuccess: 'カラーカタログをデフォルトにリセットしました',
      resetFailed: 'カタログのリセットに失敗しました',
      syncUpToDate: '最新の状態です（{{count}}件のカラーを確認）',
      syncComplete: '{{added}}件の新しいカラーを追加しました（{{skipped}}件は既に存在）',
      syncError: '同期エラー',
      syncFailed: 'FilamentColors.xyzからの同期に失敗しました',
      exported: '{{count}}件のカラーをエクスポートしました',
      imported: '{{added}}件のカラーをインポートしました（{{skipped}}件スキップ）',
      importFailed: 'インポートに失敗しました：無効なJSON形式',
    },
  },
  notification: {
    printStarted: {
      title: '印刷開始',
      body: '{{printer}}: {{filename}} の印刷を開始しました',
    },
    printCompleted: {
      title: '印刷完了',
      body: '{{printer}}: {{filename}} が正常に完了しました',
    },
    printFailed: {
      title: '印刷失敗',
      body: '{{printer}}: {{filename}} が失敗しました',
    },
    printStopped: {
      title: '印刷中止',
      body: '{{printer}}: {{filename}} が中止されました',
    },
    printProgress: {
      title: '印刷進捗',
      body: '{{printer}}: {{filename}} は {{percent}}% 完了',
    },
    printerOffline: {
      title: 'プリンターオフライン',
      body: '{{printer}} がオフラインです',
    },
    printerError: {
      title: 'プリンターエラー',
      body: '{{printer}}: {{error}}',
    },
    filamentLow: {
      title: 'フィラメント残量低下',
      body: '{{printer}}: フィラメントが残りわずかです',
    },
    maintenanceDue: {
      title: 'メンテナンス期限',
      body: '{{printer}}: {{items}} の対応が必要です',
    },
  },
  errors: {
    generic: '問題が発生しました',
    networkError: 'ネットワークエラーです。接続を確認してください。',
    notFound: '見つかりません',
    unauthorized: '認証エラー',
    serverError: 'サーバーエラー',
    validationError: '入力内容を確認してください',
    printerConnectionFailed: 'プリンターへの接続に失敗しました',
    saveFailed: '保存に失敗しました',
    deleteFailed: '削除に失敗しました',
    loadFailed: 'データの読み込みに失敗しました',
  },
  mqttDebug: {
    title: 'MQTTデバッグログ',
    searchPlaceholder: 'トピックまたはペイロードで検索...',
    noMessages: 'まだメッセージが記録されていません',
    incoming: '受信',
    outgoing: '送信',
    loggingStopped: 'ログ記録停止',
    loggingActive: 'ログ記録中 - メッセージは自動更新されます',
    startLogging: 'ログ記録を開始',
    topic: 'トピック',
    startLoggingHint: '「ログ開始」をクリックしてMQTTメッセージのキャプチャを開始',
    noMessagesMatch: 'フィルターに一致するメッセージがありません',
    adjustFilterHint: '検索条件やフィルター条件を調整してみてください',
    stopLogging: 'ログ停止',
    clearLog: 'ログをクリア',
    timestamp: 'タイムスタンプ',
    direction: '方向',
    all: 'すべて',
  },
  printerFiles: {
    filterPlaceholder: 'ファイルを検索...',
    deleteFileConfirm: 'このファイルを削除しますか？',
    noFiles: 'このディレクトリにファイルがありません',
    loadingFiles: 'ファイルを読み込み中...',
    failedToLoad: 'ファイルの読み込みに失敗しました',
    title: 'ファイル管理',
    storageUsed: '使用中:',
    storageFree: '空き:',
    deleteButton: '削除',
    deleteFiles: '{{count}}件のファイルを削除',
    deleteFilesConfirm: '選択した{{count}}件のファイルを削除しますか？元に戻せません。',
    toast: {
      filesDeleted: '{{count}}件のファイルを削除しました',
      deleteFailed: '削除に失敗: {{error}}',
    },
  },
  confirm: {
    delete: '削除しますか？',
    unsavedChanges: '保存されていない変更があります。このページを離れますか？',
    clearQueue: 'キューをクリアしますか？',
  },
  login: {
    title: 'Bambuddy ログイン',
    subtitle: 'アカウントにサインイン',
    username: 'ユーザー名',
    usernamePlaceholder: 'ユーザー名を入力',
    password: 'パスワード',
    passwordPlaceholder: 'パスワードを入力',
    signIn: 'サインイン',
    enterCredentials: 'ユーザー名とパスワードを入力してください',
    signingIn: 'ログイン中...',
    forgotPassword: 'パスワードをお忘れですか？',
    loginSuccess: 'ログインしました',
    loginFailed: 'ログインに失敗しました',
    forgotPasswordTitle: 'パスワードを忘れた場合',
    forgotPasswordMessage: 'パスワードを忘れた場合は、システム管理者に連絡してリセットしてもらってください。',
    howToReset: 'パスワードのリセット方法：',
    resetStep1: 'Bambuddy管理者に連絡',
    resetStep2: 'ユーザー管理でパスワードリセットを依頼',
    resetStep3: '管理者が新しい仮パスワードを設定',
    resetStep4: '新しいパスワードでログインし、設定で変更',
    gotIt: '了解',
    // Advanced Auth (email-based login/reset)
    usernameOrEmail: 'ユーザー名またはメール',
    usernameOrEmailPlaceholder: 'ユーザー名または @ メール',
    forgotPasswordEmailMessage: 'メールアドレスを入力すると、新しいパスワードを送信します。',
    emailAddress: 'メールアドレス',
    emailPlaceholder: 'your.email@example.com',
    cancel: 'キャンセル',
    sending: '送信中...',
    sendResetEmail: 'リセットメールを送信',
  },
  setup: {
    title: 'Bambuddy セットアップ',
    adminAccount: '管理者アカウント',
    adminUsername: '管理者ユーザー名',
    adminPassword: '管理者パスワード',
    confirmPassword: 'パスワードの確認',
    confirmPasswordPlaceholder: 'パスワードを確認',
    settingUp: 'セットアップ中...',
    completeSetup: 'セットアップを完了',
    toast: {
      authEnabledAdminCreated: '認証が有効になり、管理者ユーザーが作成されました',
      authEnabledExistingAdmins: '既存の管理者ユーザーを使用して認証が有効になりました',
      setupCompleted: 'セットアップが完了しました',
      passwordsDoNotMatch: 'パスワードが一致しません',
      enterBothCredentials: '管理者のユーザー名とパスワードの両方を入力するか、既存の管理者を使用する場合は両方を空にしてください',
      passwordTooShort: 'パスワードは6文字以上必要です',
    },
    adminAccountDesc: '既に管理者ユーザーが存在する場合、既存の管理者アカウントを使用して認証が有効化されます。既存の管理者を使用する場合は下のフィールドを空のままにするか、新しい認証情報を入力して新しい管理者ユーザーを作成してください。',
    optionalIfAdminExists: '（管理者ユーザーが存在する場合は任意）',
    adminUsernamePlaceholder: '管理者ユーザー名を入力（任意）',
    adminPasswordPlaceholder: '管理者パスワードを入力（任意）',
    subtitle: 'Bambuddyインスタンスの認証を設定',
    enableAuth: '認証を有効化',
  },
  changePassword: {
    currentPassword: '現在のパスワード',
    newPassword: '新しいパスワード',
    confirmPasswordPlaceholder: 'パスワードを確認',
    title: 'パスワードを変更',
    currentPasswordPlaceholder: '現在のパスワードを入力',
    newPasswordPlaceholder: '新しいパスワードを入力（6文字以上）',
    confirmPassword: '新しいパスワード確認',
    passwordsDoNotMatch: 'パスワードが一致しません',
    passwordTooShort: 'パスワードは6文字以上必要です',
    changing: '変更中...',
    success: 'パスワードを変更しました',
    failed: 'パスワードの変更に失敗しました',
  },
  camera: {
    invalidPrinterId: '無効なプリンターID',
    live: 'ライブ',
    snapshot: 'スナップショット',
    restartStream: 'ストリームを再開',
    refreshSnapshot: 'スナップショットを更新',
    fullscreen: 'フルスクリーン',
    exitFullscreen: 'フルスクリーンを終了',
    connectingToCamera: 'カメラに接続中...',
    capturingSnapshot: 'スナップショットを撮影中...',
    connectionLost: '接続が切断されました',
    reconnectNow: '今すぐ再接続',
    cameraUnavailable: 'カメラが利用できません',
    retry: '再試行',
    cameraStream: 'カメラストリーム',
    zoomOut: 'ズームアウト',
    zoomIn: 'ズームイン',
    resetZoom: 'ズームをリセット',
    chamberLight: 'チャンバーライト切替',
    title: 'カメラビュー',
    connectionFailed: 'カメラ接続に失敗しました',
    reconnecting: '{{countdown}}秒後に再接続... (試行 {{attempt}}/{{max}})',
    cameraUnavailableDesc: 'プリンターの電源がオンで接続されていることを確認してください。',
    noCamera: 'カメラがありません',
    recording: '録画中',
    startRecording: '録画開始',
    stopRecording: '録画停止',
  },
  groups: {
    backToSettings: '設定に戻る',
    createGroup: 'グループを作成',
    noPermission: 'このページにアクセスする権限がありません。',
    noDescription: '説明なし',
    usersCount: '{{count}}人のユーザー',
    permissionsCount: '{{count}}個の権限',
    toast: {
      deleted: 'アーカイブを削除しました',
      enterGroupName: 'グループ名を入力',
      created: 'グループを作成しました',
      updated: 'グループを更新しました',
    },
    modal: {
      editGroup: 'グループを編集',
      createGroup: 'グループを作成',
      cancel: 'キャンセル',
      saving: '保存中...',
      creating: '作成中...',
      saveChanges: '変更を保存',
    },
    form: {
      groupName: 'グループ名',
      permissions: '権限',
      groupNamePlaceholder: 'グループ名を入力',
      systemGroupWarning: 'システムグループ名は変更できません',
      description: '説明',
      descriptionPlaceholder: '説明を入力（任意）',
    },
    deleteModal: {
      confirm: '確認',
      title: 'グループを削除',
      message: 'このグループを削除しますか？このグループのユーザーはこれらの権限を失います。',
    },
    editor: {
      title: 'グループを編集',
      createTitle: 'グループを作成',
      search: '権限を検索...',
      selectAll: 'すべて選択',
      clearAll: 'すべて解除',
      permissionsSelected: '{{count}}件選択',
      noResults: '検索に一致する権限がありません',
    },
    title: 'グループ管理',
    subtitle: 'アクセス制御の権限グループを管理',
    system: 'システム',
    edit: '編集',
    delete: '削除',
  },
  users: {
    title: 'ユーザー管理',
    backToSettings: '設定に戻る',
    createUser: 'ユーザーを作成',
    noPermission: 'このページにアクセスする権限がありません。',
    admin: '管理者',
    noGroups: 'グループなし',
    inactive: '非アクティブ',
    edit: '編集',
    delete: '削除',
    system: 'システム',
    noGroupsAvailable: '利用可能なグループがありません',
    table: {
      username: 'ユーザー名',
      groups: 'グループ',
      status: 'ステータス',
      actions: 'アクション',
    },
    toast: {
      deleted: 'アーカイブを削除しました',
      passwordsDoNotMatch: 'パスワードが一致しません',
      created: 'ユーザーを作成しました',
      updated: 'ユーザーを更新しました',
      fillRequired: '必須項目をすべて入力してください',
      passwordTooShort: 'パスワードは6文字以上必要です',
    },
    modal: {
      createUser: 'ユーザーを作成',
      editUser: 'ユーザーを編集',
      cancel: 'キャンセル',
      creating: '作成中...',
      saving: '保存中...',
      saveChanges: '変更を保存',
      advancedAuthSubtitle: '高度な認証を使用',
    },
    form: {
      username: 'ユーザー名',
      password: 'パスワード',
      confirmPassword: 'パスワードの確認',
      confirmPasswordPlaceholder: 'パスワードを確認',
      confirmNewPasswordPlaceholder: '新しいパスワードを確認',
      leaveBlankToKeep: '（現在のパスワードを維持する場合は空白）',
      groups: 'グループ',
      usernamePlaceholder: 'ユーザー名を入力',
      passwordPlaceholder: 'パスワードを入力',
      newPasswordPlaceholder: '新しいパスワードを入力',
      email: 'メール',
      emailPlaceholder: 'user@example.com',
      optional: 'オプション',
      autoGeneratedPassword: '安全なパスワードが自動的に生成され、ユーザーにメールで送信されます。',
      passwordManagedByAdvancedAuth: 'パスワードは高度な認証によって管理されています。「パスワードのリセット」を使用して、メールで新しいパスワードをユーザーに送信してください。',
      resetPassword: 'パスワードのリセット',
      resettingPassword: 'パスワードをリセット中...',
    },
    deleteModal: {
      title: 'ユーザーを削除',
      confirm: 'ユーザーを削除',
      message: 'このユーザーを削除してもよろしいですか？この操作は元に戻せません。',
    },
    subtitle: 'ユーザーとBambuddyインスタンスへのアクセスを管理',
    active: 'アクティブ',
  },
  streamOverlay: {
    invalidPrinterId: '無効なプリンターID',
    cameraStream: 'カメラストリーム',
    eta: '予想時間 {{minutes}} 分',
    status: {
      printing: '印刷中',
      paused: '一時停止',
      finished: '完了',
      failed: '失敗',
      idle: '待機中',
      unknown: '不明',
    },
    title: 'ストリームオーバーレイ',
    progress: '進捗',
    printerIdle: 'プリンター待機中',
    printerOffline: 'プリンターオフライン',
  },
  profiles: {
    title: 'フィラメントプロファイル',
    connectedAs: '接続中:',
    logout: 'ログアウト',
    failedToLoad: 'ファイルの読み込みに失敗しました',
    time: {
      justNow: 'たった今',
      hoursAgo: '{{count}}時間前',
      daysAgo: '{{count}}日前',
      minsAgo: '{{count}}分前',
    },
    toast: {
      loggedOut: 'ログアウトしました',
    },
    login: {
      title: 'Bambuddy ログイン',
      subtitle: 'アカウントにサインイン',
      email: 'メールアドレス',
      password: 'パスワード',
      region: 'リージョン',
      regionGlobal: 'グローバル',
      regionChina: '中国',
      verificationCode: '認証コード',
      totpCode: '認証アプリコード',
      checkEmail: 'メール ({{email}}) に届いた6桁のコードを入力してください',
      enterTotpHint: '認証アプリの6桁のコードを入力してください',
      accessToken: 'アクセストークン',
      accessTokenHint: 'Bambu Labのアクセストークンを貼り付け（Bambu Studioから取得）',
      back: '戻る',
      toast: {
        loggedIn: 'ログインしました',
        enterTotp: '認証アプリのコードを入力してください',
        tokenSet: 'トークンを設定しました',
        codeSent: 'メールに認証コードを送信しました',
      },
      loginButton: 'ログイン',
      verifyButton: '認証',
      setTokenButton: 'トークンを設定',
      useToken: 'アクセストークンを使用',
      useEmail: 'メールでログイン',
    },
    presets: {
      duplicate: '複製',
      editable: '編集可能',
      failedToLoadDetails: 'プリセットの詳細を読み込めませんでした',
      deleteConfirm: 'このプロファイルを削除しますか？',
      noDeletePermission: 'プロジェクトを削除する権限がありません',
      types: {
        filament: 'フィラメント',
        printer: 'プリンター',
        process: 'プロセス',
      },
      toast: {
        deleted: 'アーカイブを削除しました',
        fieldAdded: 'フィールド "{{key}}" を追加しました',
        created: 'プリセットを作成しました',
        updated: 'プリセットを更新しました',
        duplicated: 'プリセットを複製しました',
        exported: 'プリセットをエクスポートしました',
      },
      newPreset: '新規プリセット',
      editPreset: 'プリセットを編集',
      duplicatePreset: 'プリセットを複製',
      createNewPreset: '新しいプリセットを作成',
      customizeSettings: '新しいプリセットの設定をカスタマイズ',
      compareWithBase: 'ベースプリセットと比較',
      compare: '比較',
      basePreset: 'ベースプリセット',
      selectBasePreset: 'ベースプリセットを選択...',
      presetName: 'プリセット名',
      inheritsFrom: '継承元:',
      dropJsonToImport: 'JSONファイルをドロップしてインポート',
      availableFields: '利用可能なフィールド',
      noMatchingFields: '一致するフィールドがありません',
      allFieldsAdded: 'すべてのフィールドが追加済みです',
      addCustomField: 'カスタムフィールドを追加',
      yourOverrides: 'オーバーライド一覧',
      noOverridesYet: 'オーバーライドはまだありません',
      clickFieldsToAdd: '左のフィールドをクリックして追加',
      saveAsTemplate: 'テンプレートとして保存',
      myPreset: 'マイプリセット（編集可能）',
      deleteWarning: '「{{name}}」をBambu Cloudから完全に削除します。元に戻せません。',
      noDuplicatePermission: 'プリセットを複製する権限がありません',
      noEditPermission: 'プリセットを編集する権限がありません',
      baseLabel: 'ベース: {{name}}',
      currentLabel: '現在: {{name}}',
      myCustomPreset: 'カスタムプリセット',
      tabs: {
        common: '一般',
        allFields: 'すべてのフィールド',
      },
      searchFieldsPlaceholder: 'フィールドを検索...',
      jsonTip: 'ヒント: .jsonファイルをこのモーダルにドラッグ＆ドロップして設定をインポート',
    },
    cloudView: {
      templates: 'テンプレート',
      refresh: '更新',
      newPreset: '新規プリセット',
      clearFilters: 'フィルターをクリア',
      compareMode: '比較モード',
      selectAnotherPreset: '同じタイプ（{{type}}）の別のプリセットを選択',
      clickTwoPresets: '同じタイプのプリセットを2つクリックして比較',
      selectFirst: '1. 最初を選択',
      selectSecond: '2. 2番目を選択',
      compareNow: '比較を実行',
      lastSynced: '最終同期:',
      showingCount: '{{total}}件中{{shown}}件を表示',
      noPresetsFound: 'プリセットが見つかりません',
      columns: {
        filament: 'フィラメント',
        process: 'プロセス',
        printer: 'プリンター',
      },
      noFilamentPresets: 'フィラメントプリセットなし',
      noProcessPresets: 'プロセスプリセットなし',
      noPrinterPresets: 'プリンタープリセットなし',
      filters: {
        type: '種類',
        owner: '所有者',
        printer: 'プリンター',
        nozzle: 'ノズル',
        filament: 'フィラメント',
        layer: 'レイヤー',
        myPresets: 'マイプリセット',
        builtIn: 'ビルトイン',
        process: 'プロセス',
        all: 'すべて',
      },
      noCreatePermission: 'プロジェクトを作成する権限がありません',
      searchPlaceholder: 'プリセットを検索...',
      noTemplatesPermission: 'テンプレートを管理する権限がありません',
      noRefreshPermission: 'プロファイルを更新する権限がありません',
    },
    templates: {
      title: 'フィラメントプロファイル',
      noTemplates: 'テンプレートがありません。バックエンドを再起動してデフォルトテンプレートを作成してください。',
      typeFilter: 'タイプ:',
      deleteConfirm: 'このプロファイルを削除しますか？',
      settingsJson: '設定 (JSON)',
      fieldsCount: '{{count}}フィールド',
      shownInModals: 'モーダルに表示',
      hiddenInModals: 'モーダルで非表示',
      apply: '適用',
      toast: {
        deleted: 'アーカイブを削除しました',
        updated: 'テンプレートを更新しました',
        created: 'テンプレートを作成しました',
        applied: 'テンプレートを適用しました',
      },
      createFirst: 'プリセットエディタからテンプレートを作成',
      deleteTitle: 'テンプレートを削除',
      deleteWarning: 'この操作は元に戻せません',
      namePlaceholder: 'テンプレート名',
      descriptionPlaceholder: '説明',
    },
    subtitle: 'スライサープリセットと圧力キャリブレーションの管理',
    tabs: {
      cloud: 'クラウドプロファイル',
      local: 'ローカルプロファイル',
      kprofiles: 'Kプロファイル',
    },
    localProfiles: {
      title: 'ローカルプロファイル',
      subtitle: 'OrcaSlicerからスライサープリセットをインポート・管理',
      import: 'プロファイルをインポート',
      importDesc: '.bbscfg、.bbsflmt、.orca_filament、.zip、.jsonファイルをここにドロップ',
      importing: 'インポート中...',
      search: 'ローカルプリセットを検索...',
      noPresets: 'ローカルプリセットがまだありません',
      badge: 'ローカル',
      edit: '編集',
      delete: '削除',
      cancel: 'キャンセル',
      deleteConfirmTitle: 'プリセットを削除',
      deleteConfirm: 'このプリセットを削除してもよろしいですか？元に戻せません。',
      source: 'ソース',
      inheritsFrom: '継承元',
      filamentType: 'タイプ',
      vendor: 'メーカー',
      compatiblePrinters: 'プリンター',
      nozzleTemp: 'ノズル温度',
      cost: 'コスト',
      density: '密度',
      pressureAdvance: 'プレッシャーアドバンス',
      filament: 'フィラメント',
      process: 'プロセス',
      printer: 'プリンター',
      toast: {
        importSuccess: '{{count}}件のプリセットをインポートしました',
        importSkipped: '{{count}}件のプリセットをスキップしました（重複）',
        importError: 'インポート中に{{count}}件のエラーが発生しました',
        deleted: 'プリセットを削除しました',
        updated: 'プリセットを更新しました',
      },
    },
    noLogoutPermission: 'ログアウトする権限がありません',
    retry: 'リトライ',
  },
  fileManager: {
    uploadFiles: 'ファイルをアップロード',
    newFolder: '新しいフォルダ',
    folderName: 'フォルダ名',
    folderNamePlaceholder: '例: 機能パーツ',
    renameFile: 'ファイル名を変更',
    renameFolder: 'フォルダ名を変更',
    rootNoFolder: 'ルート（フォルダなし）',
    current: '（現在）',
    linkFolder: 'フォルダをリンク',
    linkFolderDescription: '「{{name}}」をプロジェクトまたはアーカイブにリンクしてすばやくアクセス。',
    noProjectsFound: 'プロジェクトが見つかりません',
    noArchivesFound: 'アーカイブが見つかりません',
    unlink: 'リンク解除',
    link: 'リンク',
    dropFilesHere: 'ここにファイルをドロップ',
    orClickToBrowse: 'またはクリックして選択',
    zipFilesDetected: 'ZIPファイルを検出',
    preserveZipStructure: 'ZIPのフォルダ構造を保持',
    willBeExtracted: '• 展開予定',
    filesExtracted: '• {{count}}個のファイルを展開済み',
    uploadComplete: 'アップロード完了: {{count}}個成功',
    uploadFailed: 'アップロード失敗',
    uploading: 'アップロード中...',
    changeLink: 'リンクを変更...',
    linkTo: 'リンク先...',
    linkToProjectOrArchive: 'プロジェクトまたはアーカイブにリンク',
    addToQueue: 'キューに追加',
    schedulePrint: '印刷をスケジュール',
    gridView: 'グリッド表示',
    listView: 'リスト表示',
    lowDiskSpaceWarning: 'ディスク容量不足の警告',
    folders: 'フォルダ',
    size: 'サイズ',
    free: '空き:',
    allFiles: 'すべてのファイル',
    searchFiles: 'ファイルを検索...',
    allTypes: 'すべての種類',
    prints: '印刷回数',
    ascending: '昇順',
    descending: '降順',
    selectAll: 'すべて選択',
    deselectAll: 'すべて選択解除',
    selected: '{{count}}件選択中',
    adding: '追加中...',
    loadingFiles: 'ファイルを読み込み中...',
    noFilesYet: 'ファイルはまだありません',
    noMatchingFiles: '一致するファイルがありません',
    noMatchingFilesDescription: '現在の検索またはフィルター条件に一致するファイルがありません。',
    clearFilters: 'フィルターをクリア',
    printedCount: '{{count}}回印刷済み',
    deleteFolder: 'フォルダを削除',
    deleteFile: 'ファイルを削除',
    deleteFolderConfirm: 'このフォルダを削除しますか？中のファイルもすべて削除されます。',
    deleteFileConfirm: 'このファイルを削除しますか？',
    deleting: '削除中...',
    toast: {
      folderCreated: 'フォルダを作成しました',
      folderDeleted: 'フォルダを削除しました',
      fileDeleted: 'ファイルを削除しました',
      filesMoved: 'ファイルを移動しました',
      folderLinked: 'フォルダをリンクしました',
      folderUnlinked: 'フォルダのリンクを解除しました',
      addedToQueue: '{{count}}個のファイルをキューに追加しました',
      fileRenamed: 'ファイル名を変更しました',
      folderRenamed: 'フォルダ名を変更しました',
      filesDeleted: '{{count}}件のファイルを削除しました',
      addedToQueuePartial: '{{added}}件追加、{{failed}}件失敗',
      failedToAddToQueue: 'ファイルの追加に失敗: {{error}}',
      thumbnailsGenerated: '{{count}}件のサムネイルを生成しました',
      thumbnailsGeneratedPartial: '{{succeeded}}件生成、{{failed}}件失敗',
      noStlMissingThumbnails: 'サムネイルのないSTLファイルはありません',
      failedToGenerateThumbnails: 'サムネイルの生成に失敗: {{error}}',
      thumbnailGenerated: 'サムネイルを生成しました',
      failedToGenerateThumbnail: 'サムネイルの生成に失敗: {{error}}',
    },
    title: 'ファイル管理',
    subtitle: '印刷ファイルの整理と管理',
    moveFiles: '{{count}}件のファイルを移動',
    project: 'プロジェクト',
    archive: 'アーカイブ',
    dragDropFiles: 'ファイルをここにドラッグ＆ドロップ',
    allFileTypesSupported: 'すべてのファイルタイプに対応。ZIPファイルは展開されます。',
    zipExtractOptions: 'ZIPファイルは展開されます。フォルダー構造の処理方法を選択：',
    createFolderFromZip: 'ZIPファイル名からフォルダーを作成',
    stlThumbnailGeneration: 'STLサムネイル生成',
    zipMayContainStl: 'ZIPファイルにSTLファイルが含まれている場合があります。展開時にサムネイルを生成できます。',
    thumbnailsCanBeGenerated: 'STLファイルのサムネイルを生成できます。大きなモデルは処理に時間がかかる場合があります。',
    generateThumbnailsForStl: 'STLファイルのサムネイルを生成',
    threemfDetected: '3MFファイルを検出',
    threemfExtractionInfo: 'プリンターモデル、素材、色、印刷設定は3MFファイルから自動的に抽出されます。',
    generateThumbnail: 'サムネイルを生成',
    generateThumbnails: 'サムネイルを生成',
    generateThumbnailsForMissing: 'サムネイルのないSTLファイルのサムネイルを生成',
    lowDiskSpaceDetails: '{{total}}中{{free}}の空き容量のみ。しきい値は設定で{{threshold}}GBに設定されています。',
    files: 'ファイル',
    wrap: '折り返し',
    enableTextWrapping: 'テキスト折り返しを有効化',
    disableTextWrapping: 'テキスト折り返しを無効化',
    dragToResizeTooltip: 'ドラッグしてリサイズ、ダブルクリックでリセット',
    resultsCount: '{{total}}件中{{showing}}件',
    folderIsEmpty: 'フォルダーは空です',
    folderEmptyDescription: 'ファイルをアップロードするか、このフォルダーにファイルを移動して開始しましょう。',
    noFilesDescription: '印刷関連ファイルの整理を始めるにはファイルをアップロードしてください。',
    uploadedBy: 'アップロード者',
    deleteFilesCount: '{{count}}件のファイルを削除',
    deleteFilesConfirm: '選択した{{count}}件のファイルを削除しますか？この操作は元に戻せません。',
    noPermissionRenameFolder: 'フォルダー名を変更する権限がありません',
    noPermissionLinkFolder: 'フォルダーをリンクする権限がありません',
    noPermissionDeleteFolder: 'フォルダーを削除する権限がありません',
    noPermissionPrint: '印刷する権限がありません',
    noPermissionAddToQueue: 'キューに追加する権限がありません',
    noPermissionDownload: 'ファイルをダウンロードする権限がありません',
    noPermissionRenameFile: 'このファイル名を変更する権限がありません',
    noPermissionGenerateThumbnail: 'サムネイルを生成する権限がありません',
    noPermissionDeleteFile: 'このファイルを削除する権限がありません',
    noPermissionCreateFolder: 'フォルダーを作成する権限がありません',
    noPermissionUpload: 'ファイルをアップロードする権限がありません',
    noPermissionMoveFiles: 'ファイルを移動する権限がありません',
    noPermissionDeleteFiles: 'ファイルを削除する権限がありません',
  },
  projects: {
    title: 'プロジェクト',
    subtitle: '印刷プロジェクトを管理',
    newProject: '新規プロジェクト',
    editProject: 'プロジェクトを編集',
    deleteProject: 'プロジェクトを削除',
    projectName: 'プロジェクト: {{name}}',
    create: '作成',
    plates: 'プレート',
    parts: 'パーツ',
    viewDetails: '詳細を表示',
    namePlaceholder: 'プロジェクト名',
    descriptionPlaceholder: 'プロジェクトの説明（任意）',
    color: '色',
    targetPlates: '目標プレート数',
    targetPlatesPlaceholder: '例: 10',
    targetParts: '目標パーツ数',
    targetPartsPlaceholder: '例: 50',
    tagsPlaceholder: 'カンマ区切りのタグ',
    dueDate: '期限',
    priorityLow: '低',
    priorityNormal: '通常',
    priorityHigh: '高',
    priorityUrgent: '緊急',
    statusArchived: 'アーカイブ済み',
    done: '完了',
    completed: '完了',
    failed: '失敗',
    inQueue: 'キュー内',
    noPrintsYet: '印刷履歴なし',
    printJobs: '印刷ジョブ',
    partsPrinted: '印刷済みパーツ',
    failedParts: '失敗パーツ',
    import: 'インポート',
    importProject: 'プロジェクトをインポート',
    loading: 'プロジェクトを読み込み中...',
    noEditPermission: 'プロジェクトを編集する権限がありません',
    noDeletePermission: 'プロジェクトを削除する権限がありません',
    noCreatePermission: 'プロジェクトを作成する権限がありません',
    noImportPermission: 'プロジェクトをインポートする権限がありません',
    noExportPermission: 'プロジェクトをエクスポートする権限がありません',
    toast: {
      deleted: 'アーカイブを削除しました',
      importFailed: 'インポートに失敗しました',
      created: 'プロジェクトを作成しました',
      updated: 'プロジェクトを更新しました',
      imported: 'プロジェクトをインポートしました',
      multipleImported: '{{count}}件のプロジェクトをインポートしました',
      exported: 'プロジェクトをエクスポートしました（メタデータのみ）',
    },
    description: '説明',
    noProjects: 'プロジェクトはまだありません',
    noProjectsFiltered: '{{status}}のプロジェクトはありません',
    noProjectsFilteredHelp: '{{status}}のプロジェクトがありません。ステータスが変更されるとここに表示されます。',
    createFirst: '最初のプロジェクトを作成して、関連する印刷の整理、進捗管理、ビルドの管理を始めましょう。',
    createFirstButton: '最初のプロジェクトを作成',
    files: 'ファイル',
    prints: '印刷',
    lastModified: '最終更新日',
    deleteConfirm: 'このプロジェクトを削除しますか？アーカイブとキューアイテムはリンク解除されますが、削除されません。',
    addFiles: 'ファイルを追加',
    removeFile: 'ファイルを削除',
    targetPlatesHelp: '印刷ジョブの数',
    targetPartsHelp: '必要なオブジェクトの総数',
    tagsLabel: 'タグ（カンマ区切り）',
    priority: '優先度',
    statusActive: '進行中',
    statusCompleted: '完了',
    export: 'エクスポート',
    exportAll: 'すべてのプロジェクトをエクスポート',
  },
  projectDetail: {
    notFound: '見つかりません',
    backToProjects: 'プロジェクト一覧に戻る',
    exportProject: 'プロジェクトをエクスポート',
    noExportPermission: 'プロジェクトをエクスポートする権限がありません',
    noEditPermission: 'このプロジェクトを編集する権限がありません',
    partOf: '所属先',
    priorityLabel: '優先度',
    status: {
      active: '進行中',
      completed: '完了',
      archived: 'アーカイブ済み',
    },
    priority: {
      low: '低',
      normal: '通常',
      high: '高',
      urgent: '緊急',
    },
    dueDate: {
      overdue: '期限超過',
      daysLeft: '残り{{count}}日',
      today: '今日が期限',
    },
    progress: {
      platesProgress: 'プレート進捗',
      partsProgress: 'パーツ進捗',
      printJobs: '印刷ジョブ',
      parts: 'パーツ',
      percentComplete: '% 完了',
      remaining: '残り',
    },
    stats: {
      printJobs: '印刷ジョブ',
      total: '合計',
      failed: '失敗',
      partsPrinted: '印刷済みパーツ',
      printTime: '印刷時間',
      filamentUsed: 'フィラメント使用量',
    },
    cost: {
      filamentCost: 'フィラメント',
      energy: 'エネルギー',
      budget: '予算',
      remaining: '残り',
      title: 'コスト追跡',
    },
    notes: {
      noEditPermission: 'このプロジェクトを編集する権限がありません',
      empty: '<空>',
      title: 'メモ',
      placeholder: 'このプロジェクトについてメモを追加...',
    },
    files: {
      fileCount: '{{count}}ファイル',
      empty: '<空>',
      title: 'ファイル',
      linkFolders: 'ファイルマネージャーからフォルダーをリンク',
      forQuickAccess: 'してクイックアクセスできるようにします。',
    },
    bom: {
      showAll: 'すべて表示',
      hideDone: '完了を非表示',
      addPart: 'パーツを追加',
      partNamePlaceholder: 'パーツ名',
      qty: '数量',
      sourcingUrlPlaceholder: 'URL（任意）',
      remarksPlaceholder: '備考',
      deletePart: 'パーツを削除',
      noEditPermission: 'このプロジェクトを編集する権限がありません',
      noDeletePermission: 'プロジェクトを削除する権限がありません',
      totalCost: '合計コスト',
      empty: '<空>',
      title: '部品表',
      acquired: '{{completed}}/{{total}} 取得済み',
      noAddPermission: 'パーツを追加する権限がありません',
      partName: 'パーツ名',
      price: '価格 ({{currency}})',
      deleteConfirm: '「{{name}}」を削除しますか？',
      noUpdatePermission: 'パーツを更新する権限がありません',
    },
    timeline: {
      empty: '<空>',
      title: 'アクティビティタイムライン',
    },
    template: {
      saveAsTemplate: 'テンプレートとして保存',
      noCreatePermission: 'プロジェクトを作成する権限がありません',
    },
    queue: {
      title: '印刷キュー',
      viewAll: 'すべて表示',
      printing: '印刷中',
      queued: 'キューに追加',
    },
    toast: {
      projectUpdated: 'プロジェクトを更新しました',
      partAdded: 'パーツを追加しました',
      partRemoved: 'パーツを削除しました',
      exportFailed: 'エクスポートに失敗しました',
      projectExported: 'プロジェクトがエクスポートされました',
      templateCreated: 'プロジェクトからテンプレートを作成しました',
    },
    export: 'エクスポート',
    noPrints: 'このプロジェクトにはまだ印刷がありません',
    subProjects: {
      title: 'サブプロジェクト ({{count}})',
    },
    prints: {
      title: '印刷 ({{count}})',
    },
  },
  system: {
    clearLogs: '通知ログを削除',
    title: 'システム情報',
    version: 'バージョン',
    uptime: '稼働時間',
    cpuUsage: 'CPU使用率',
    memoryUsage: 'メモリ使用量',
    diskUsage: 'ディスク使用量',
    networkInfo: 'ネットワーク情報',
    logs: 'ログ',
    debugMode: 'デバッグモード',
    enableDebug: 'デバッグログを有効化',
    disableDebug: 'デバッグログを無効化',
    downloadLogs: 'ログをダウンロード',
    dockerInfo: 'Docker情報',
    containerName: 'コンテナ名',
    imageName: 'イメージ名',
    platform: 'プラットフォーム',
    architecture: 'アーキテクチャ',
  },
  library: {
    material: '素材',
    temperature: '温度',
    title: 'フィラメントライブラリ',
    addFilament: 'フィラメントを追加',
    editFilament: 'フィラメントを編集',
    deleteFilament: 'フィラメントを削除',
    vendor: 'メーカー',
    color: '色',
    kFactor: 'K値',
    noFilaments: 'ライブラリにフィラメントがありません',
    deleteConfirm: 'このフィラメントを削除しますか？',
    importFromPrinter: 'プリンターからインポート',
    exportToFile: 'ファイルにエクスポート',
  },
  spoolman: {
    title: 'Spoolman連携',
    url: 'Spoolman URL',
    connected: '接続中',
    disconnected: '未接続',
    sync: '同期',
    linkToSpoolman: 'Spoolmanに連携',
    noUnlinkedSpools: 'Spoolmanに未連携のスプールが見つかりません。',
    fillSourceLabel: '(Spoolman)',
    remaining: '残り',
    disableWeightSync: 'AMS推定重量同期を無効化',
    disableWeightSyncDesc: 'AMS推定値から残量を更新しません。AMSの割合ベースの推定よりもSpoolmanの使用量追跡を優先する場合に使用してください。新しいスプールは引き続きAMS推定値を初期重量として使用します。',
    reportPartialUsage: '失敗した印刷の部分使用量を報告',
    reportPartialUsageDesc: '印刷が失敗またはキャンセルされた場合、レイヤー進捗に基づいてその時点までの推定フィラメント使用量を報告します。',
    testConnection: '接続テスト',
    syncing: '同期中...',
    lastSync: '最終同期',
    unlinkSpool: 'スプールのリンクを解除',
    weight: '重量',
    enabled: 'Spoolman有効',
    openInSpoolman: 'Spoolmanで開く',
    selectSpool: 'スプールを選択',
    linkSuccess: 'スプールをSpoolmanにリンクしました',
    linkFailed: 'スプールのリンクに失敗しました',
    spoolId: 'スプールID',
  },
  inventory: {
    title: 'スプール在庫管理',
    addSpool: 'スプールを追加',
    editSpool: 'スプールを編集',
    material: '素材',
    selectMaterial: '素材を選択...',
    subtype: 'サブタイプ',
    brand: 'ブランド',
    searchBrand: 'ブランドを検索...',
    useCustomBrand: '「{{brand}}」を使用',
    useCustomMaterial: 'カスタム素材を使用: {{material}}',
    colorName: '色名',
    colorNamePlaceholder: 'Jade White, Fire Red...',
    color: '色',
    hexColor: 'HEXカラー',
    pickColor: 'カスタムカラーを選択',
    labelWeight: '表示重量',
    coreWeight: '空スプール重量',
    searchSpoolWeight: 'スプール重量を検索...',
    weightUsed: '使用量',
    currentWeight: '残量',
    measuredWeight: '計測重量',
    costPerKg: 'kgあたりのコスト',
    measuredWeightError: '計測重量は{{min}}gから{{max}}gの間で入力してください。',
    slicerFilament: 'スライサーフィラメント',
    slicerFilamentName: 'スライサープリセット名',
    slicerPreset: 'スライサープリセット',
    searchPresets: 'フィラメントプリセットを検索...',
    selectedPreset: '選択済み',
    noPresetsFound: 'プリセットが見つかりません',
    tempOverrides: '温度オーバーライド',
    note: 'メモ',
    notePlaceholder: 'このスプールに関する追加メモ...',
    archive: 'アーカイブ',
    restore: '復元',
    noSpools: 'スプールがありません。最初のスプールを追加してください。',
    noManualSpools: '手動で追加されたスプールがありません。先にインベントリにスプールを追加してください。',
    kProfiles: 'Kプロファイル',
    addKProfile: 'Kプロファイルを追加',
    assignSpool: 'スプールを割り当て',
    unassignSpool: '割り当て解除',
    assignSuccess: 'スプールを割り当て、AMSスロットを設定しました',
    assignFailed: 'スプールの割り当てに失敗しました',
    selectSpool: 'このスロットに割り当てるスプールを選択',
    assigned: '割り当て済み',
    assigning: '割り当て中...',
    searchSpools: 'スプールを検索...',
    allMaterials: 'すべての素材',
    filterByBrand: 'ブランドで絞り込み...',
    showArchived: 'アーカイブ済みを表示',
    quickAdd: 'クイック追加（在庫）',
    quantity: '数量',
    stock: '在庫',
    configured: '設定済み',
    spoolsCreated: '{{count}}本のスプールを作成しました',
    spoolCreated: 'スプールを作成しました',
    spoolUpdated: 'スプールを更新しました',
    spoolDeleted: 'スプールを削除しました',
    spoolArchived: 'スプールをアーカイブしました',
    spoolRestored: 'スプールを復元しました',
    deleteConfirm: 'このスプールを削除しますか？この操作は元に戻せません。',
    archiveConfirm: 'このスプールをアーカイブしますか？',
    advancedSettings: '詳細設定',
    filamentInfoTab: 'フィラメント情報',
    paProfileTab: 'PAプロファイル',
    filamentInfo: 'フィラメント',
    additional: '追加情報',
    loadingPresets: 'クラウドプリセットを読み込み中...',
    cloudConnected: 'クラウド接続済み',
    cloudNotConnected: 'クラウド未接続（デフォルト使用）',
    recentColors: '最近',
    searchColors: '色を検索...',
    searchResults: '検索結果',
    allColors: 'すべての色',
    commonColors: '一般的な色',
    showLess: '少なく表示',
    showAll: 'すべて表示',
    noColorsFound: '一致する色がありません',
    noResults: '結果なし',
    selectMaterialFirst: 'フィラメント情報タブで素材を選択してください。',
    noPrintersConfigured: 'プリンターが設定されていません。プリンターを追加してください。',
    matchingFilter: 'フィルター',
    anyBrand: 'すべてのブランド',
    anyVariant: 'すべてのバリアント',
    autoSelect: '自動選択',
    matches: '件一致',
    match: '件一致',
    noMatches: '一致なし',
    connected: '接続済み',
    offline: 'オフライン',
    printerOffline: 'プリンターがオフラインです。接続してキャリブレーションプロファイルを表示してください。',
    noKProfilesMatch: '選択したフィラメントに一致するKプロファイルがありません。',
    leftNozzle: '左ノズル',
    rightNozzle: '右ノズル',
    profilesSelected: 'キャリブレーションプロファイル選択済み',
    totalInventory: '在庫合計',
    totalConsumed: '総消費量',
    byMaterial: '素材別',
    inPrinter: 'プリンター内',
    lowStock: '残量少',
    sinceTracking: '追跡開始以降',
    loadedInAms: 'AMS/Extに装填中',
    remaining: '残り',
    lowStockThreshold: '残り20%未満',
    weightCheck: '重量チェック',
    lastWeighed: '最終計量',
    neverWeighed: '未計量',
    search: 'スプールを検索...',
    showing: '表示',
    to: '〜',
    of: '/',
    show: '表示',
    spools: 'スプール',
    spool: 'スプール',
    page: 'ページ',
    noSpoolsMatch: '結果なし',
    noSpoolsMatchDesc: '検索やフィルターを調整してみてください。',
    active: 'アクティブ',
    archived: 'アーカイブ済み',
    all: 'すべて',
    used: '使用済み',
    new: '新規',
    clearFilters: 'フィルターをクリア',
    table: 'テーブル',
    cards: 'カード',
    net: '正味',
    groupSimilar: 'グループ化',
    groupedSpools: '{{count}}本の同一スプール',
    groupedRows: '行',
    columns: '列',
    configureColumns: '列の設定',
    configureColumnsDesc: 'ドラッグして並べ替えるか、矢印を使用してください。目のアイコンで表示/非表示を切り替えます。',
    visible: '表示中',
    reset: 'リセット',
    cancel: 'キャンセル',
    applyChanges: '変更を適用',
    moveUp: '上へ移動',
    moveDown: '下へ移動',
    hideColumn: '列を非表示',
    showColumn: '列を表示',
    // タグリンク
    linkToSpool: 'スプールにリンク',
    tagLinked: 'タグがスプールにリンクされました',
    tagLinkFailed: 'タグのリンクに失敗しました',
    tagAlreadyLinked: 'タグは既に別のスプールにリンクされています',
    unknownTag: '不明なRFIDタグが検出されました',
    // 使用履歴
    usageHistory: '使用履歴',
    noUsageHistory: 'まだ使用記録がありません',
    printName: 'プリント名',
    weightConsumed: '消費重量',
    clearHistory: 'クリア',
    historyCleared: '使用履歴がクリアされました',
    fillSourceLabel: '(Inv)',
  },
  timelapse: {
    download: 'ダウンロード',
    preview: 'プレビュー',
    processing: 'バックアップファイルを処理中...',
    title: 'タイムラプス',
    create: 'タイムラプスを作成',
    delete: '削除',
    frameRate: 'フレームレート',
    quality: '品質',
    noTimelapses: '利用可能なタイムラプスがありません',
  },
  ams: {
    empty: '<空>',
    humidity: '湿度',
    temperature: '温度',
    remaining: '残り',
    noHistory: 'メンテナンス履歴がありません',
    configureSlot: 'フィラメントプロファイルとK値でスロットを設定',
    externalSpool: '外部スプール',
    title: 'AMS',
    slot: 'スロット',
    emptySlot: '空のスロット',
    unknown: '不明',
    filamentType: 'フィラメントタイプ',
    filamentColor: '色',
    history: 'AMS履歴',
    profile: 'プロファイル',
    kFactor: 'K値',
    fill: '充填率',
    configure: '設定',
    used: '使用済み',
    remainingUnit: '残り',
  },
  printModal: {
    flowCalibration: 'フローキャリブレーション',
    vibrationCalibration: '振動キャリブレーション',
    startPrint: '印刷を開始',
    noPrintersAvailable: '利用可能なプリンターがありません',
    title: '印刷を開始',
    selectPrinter: 'プリンターを選択',
    selectPlate: 'プレートを選択',
    filamentMapping: 'フィラメントマッピング',
    totalCost: '合計コスト:',
    slotRemainingShort: ' - 残{{grams}}g',
    printSettings: '印刷設定',
    bedLeveling: 'ベッドレベリング',
    layerInspection: '第一層検査',
    timelapse: 'タイムラプス',
    addToQueue: 'キューに追加',
    printerBusy: 'プリンターは使用中です',
    printerOffline: 'プリンターはオフラインです',
    cancel: 'キャンセル',
    leftNozzle: 'L',
    rightNozzle: 'R',
    leftNozzleTooltip: '左ノズル',
    rightNozzleTooltip: '右ノズル',
    filamentOverride: 'フィラメントオーバーライド',
    filamentOverrideHint: 'モデルベースの割り当てに使用するフィラメントをオプションで上書きします。スケジューラは元の3MF値ではなく、選択したフィラメントに基づいてマッチングします。',
    originalFilament: 'オリジナル',
    overrideWith: '変更先',
    resetToOriginal: 'オリジナルに戻す',
  },
  backup: {
    restoreBackup: 'バックアップの復元',
    restoreDescription: 'バックアップファイルからすべてのデータを置き換える',
    lastBackup: '最終バックアップ',
    autoBackup: '自動バックアップ',
    backupNow: '今すぐバックアップ',
    backupFailed: 'バックアップに失敗しました: {{error}}',
    restoreNote: '復元中、仮想プリンターは停止されます',
    downloadBackup: 'バックアップをダウンロード',
    uploadBackup: 'バックアップをアップロード',
    restoreWarning: '警告: バックアップの復元は現在のすべてのデータを上書きします。',
    includeArchives: 'アーカイブを含む',
    includeSettings: '設定を含む',
    includeProfiles: 'プロファイルを含む',
    backupSuccess: 'バックアップを作成しました',
    restoreSuccess: 'バックアップを復元しました',
    restoreFailed: '復元に失敗しました',
    title: 'バックアップと復元',
    createBackup: 'バックアップを作成',
  },
  uploadModal: {
    title: '3MFファイルのアップロード',
    dragDrop: '.3mfファイルをここにドラッグ＆ドロップ',
    or: 'または',
    browseFiles: 'ファイルを参照',
    uploaded: 'アップロード済み',
    failed: 'アップロードに失敗しました',
    uploading: 'アップロード中...',
    upload: 'アップロード',
    uploadFailed: 'アップロード失敗',
    extractionInfo: 'プリンターモデルは3MFファイルのメタデータから自動的に抽出されます。',
  },
  editArchive: {
    title: 'アーカイブを編集',
    name: '名前',
    printer: 'プリンター',
    noPrinter: 'プリンターなし',
    project: 'プロジェクト',
    noProject: 'プロジェクトなし',
    itemsPrinted: '印刷数',
    notes: 'メモ',
    notesPlaceholder: 'この印刷についてメモを追加...',
    externalLink: '外部リンク',
    externalLinkPlaceholder: 'https://...',
    tags: 'タグ',
    addMoreTags: 'タグをさらに追加...',
    status: 'ステータス',
    failureReason: '失敗理由',
    selectReason: '理由を選択...',
    photos: '印刷結果の写真',
    printResult: '印刷結果',
    saving: '保存中...',
    failureReasons: {
      adhesionFailure: '定着不良',
      spaghettiDetached: 'スパゲッティ / 剥離',
      layerShift: 'レイヤーシフト',
      cloggedNozzle: 'ノズル詰まり',
      filamentRunout: 'フィラメント切れ',
      warping: '反り',
      stringing: '糸引き',
      underExtrusion: '押出不足',
      powerFailure: '電源障害',
      userCancelled: 'ユーザーによるキャンセル',
      other: 'その他',
    },
    itemsPrintedHelp: 'この印刷ジョブで製造したアイテム数',
    externalLinkHelp: 'Printables、Thingiverse、その他のソースへのリンク',
    matchingTags: '"{{query}}" に一致',
    existingTags: '既存のタグ',
    clickToAdd: '（クリックして追加）',
    photosHelp: '+ をクリックして印刷結果の写真を追加',
    namePlaceholder: '印刷名',
    tagsPlaceholder: 'タグを追加...',
    statuses: {
      completed: '完了',
      failed: '失敗',
      aborted: 'キャンセル',
      printing: '印刷中',
    },
  },
  kProfiles: {
    noPrintersConfigured: 'プリンターが設定されていません',
    noActivePrinters: 'アクティブなプリンターがありません',
    loadingProfiles: 'Kプロファイルを読み込み中...',
    printerOffline: 'プリンターオフライン',
    noMatchingProfiles: '一致するプロファイルなし',
    noKProfiles: 'Kプロファイルなし',
    createFirstProfile: '最初のプロファイルを作成',
    nozzle: 'ノズル',
    refresh: '更新',
    addProfile: 'K-プロファイルを追加',
    import: 'インポート',
    select: '選択',
    selectAll: 'すべて選択',
    searchPlaceholder: '名前またはフィラメントで検索...',
    allExtruders: 'すべてのエクストルーダー',
    leftOnly: '左のみ',
    rightOnly: '右のみ',
    allFlow: 'すべてのフロー',
    hfOnly: 'HFのみ',
    sOnly: 'Sのみ',
    sortName: 'ソート: 名前',
    sortKValue: 'ソート: K値',
    sortFilament: 'ソート: フィラメント',
    leftExtruder: '左エクストルーダー',
    rightExtruder: '右エクストルーダー',
    modal: {
      profileName: 'プロファイル名',
      profileNamePlaceholder: 'マイPLAプロファイル',
      kValue: 'K値',
      filament: 'フィラメント',
      selectFilament: 'フィラメントを選択...',
      flowType: 'フロータイプ',
      highFlow: 'ハイフロー',
      standard: 'スタンダード',
      nozzleSize: 'ノズルサイズ',
      extruder: 'エクストルーダー',
      extruders: 'エクストルーダー',
      left: '左',
      right: '右',
      notesPlaceholder: 'このプロファイルのメモを追加...',
      pleaseWait: 'お待ちください',
      addTitle: 'Kプロファイルを追加',
      editTitle: 'Kプロファイルを編集',
      kValuePlaceholder: '0.020',
      kValueHelp: '一般的な範囲: PLA 0.01〜0.06、PETG 0.02〜0.10',
      noFilamentsHelp: 'フィラメントが見つかりません。Bambu Studioでまずプロファイルを作成してください。',
      notes: 'メモ（ローカル保存）',
      notesHelp: 'メモはBambuddyに保存され、プリンターには保存されません',
      syncing: 'プリンターと同期中...',
      savingExtruder: 'エクストルーダーに保存中 {{current}}/{{total}}...',
    },
    toast: {
      profileSaved: 'Kプロファイルを保存しました',
      profileDeleted: 'Kプロファイルを削除しました',
      exportedProfiles: '{{count}}件のプロファイルをエクスポートしました',
      importedProfiles: '{{total}}件中{{imported}}件のプロファイルをインポートしました',
      noProfilesToExport: 'エクスポートするプロファイルがありません',
      invalidFileFormat: '無効なファイル形式',
      failedToParseImport: 'インポートファイルの解析に失敗しました',
      failedToSaveNote: 'メモの保存に失敗しました',
      profilesSaved: 'Kプロファイルを{{count}}台のエクストルーダーに保存しました',
      selectAtLeastOneExtruder: 'エクストルーダーを1つ以上選択してください',
      profilesDeleted: '{{count}}件のプロファイルを削除しました',
      failedToSaveBatch: 'Kプロファイルの保存に失敗しました',
      noteSaved: 'メモを保存しました',
    },
    title: 'Kプロファイル',
    addPrinterInSettings: 'Kプロファイルを管理するには設定でプリンターを追加してください',
    enablePrinterConnection: 'Kプロファイルを表示するにはプリンター接続を有効にしてください',
    printerOfflineDesc: '選択したプリンターは接続されていません。電源を入れてKプロファイルを表示してください。',
    noMatchingProfilesDesc: '検索条件に一致するプロファイルがありません',
    noKProfilesDesc: '{{diameter}}mmノズル用の圧力キャリブレーションプロファイルが見つかりません',
    printer: 'プリンター',
    export: 'エクスポート',
    delete: '削除',
    deleteConfirm: {
      title: 'プロファイルを削除',
      cannotUndo: '元に戻せません',
      message: '「{{name}}」をプリンターから削除しますか？',
    },
    bulkDelete: {
      title: 'プロファイルを削除',
      cannotUndo: '元に戻せません',
      message: '選択した{{count}}件のプロファイルをプリンターから削除しますか？',
    },
    permission: {
      noRead: 'プロファイルを更新する権限がありません',
      noCreate: 'プロファイルを追加する権限がありません',
      noUpdate: 'Kプロファイルを更新する権限がありません',
      noDelete: 'Kプロファイルを削除する権限がありません',
      noExport: 'プロファイルをエクスポートする権限がありません',
      noImport: 'プロファイルをインポートする権限がありません',
    },
  },
  virtualPrinter: {
    running: '稼働中',
    enable: {
      visibleInSlicer: 'スライサーの検出リストに「Bambuddy」として表示',
      proxyingTo: '{{name}}にプロキシ中',
      notActive: '非アクティブ',
      title: '仮想プリンターを有効化',
    },
    remoteInterface: {
      optional: 'オプション — 自動検出IPが間違っている場合に使用（複数NIC、Docker、VPNなど）',
      title: 'ネットワークインターフェース上書き',
      configured: 'インターフェース上書き有効',
      placeholder: '自動検出（デフォルト）...',
      hint: 'SSDPで広告され、TLS証明書に使用されるIPアドレスを上書きします。Bambuddyに複数のネットワークインターフェースがある場合に便利です。',
    },
    howItWorks: {
      title: '仕組み',
      step1: '同じLAN上では、仮想プリンターはスライサー（Bambu Studio / OrcaSlicer）に自動的に表示されます。他のネットワークからは、IPアドレスとアクセスコードで手動で追加してください。',
      step2: 'アーカイブ、レビュー、キューモードでは、スライサーの「送信」ボタンを使用して3MFファイルをBambuddyにアップロードします。スライサーは「印刷成功」と表示しますが、ファイルは保存され、印刷はされません。',
      step3: 'プロキシモードでは、仮想プリンターはすべてのトラフィックを実際のプリンターに転送します。直接接続されているかのように印刷がすぐに開始されます。',
    },
    status: {
      mode: 'モード',
      pendingFiles: '保留中のファイル',
      ftpPort: 'FTPポート',
      mqttPort: 'MQTTポート',
      ftpConnections: 'FTP接続数',
      mqttConnections: 'MQTT接続数',
      title: 'ステータス詳細',
      printerName: 'プリンター名',
      model: 'モデル',
      serialNumber: 'シリアル番号',
      targetPrinter: 'ターゲットプリンター',
    },
    toast: {
      accessCodeRequired: '先にアクセスコードを設定してください',
      targetPrinterRequired: '先にターゲットプリンターを選択してください',
      bindIpRequired: '先にバインドIPを設定してください',
      accessCodeEmpty: 'アクセスコードは空にできません',
      accessCodeLength: 'アクセスコードは8文字である必要があります',
      updated: '仮想プリンター設定を更新しました',
      failedToUpdate: '設定の更新に失敗しました',
      created: '仮想プリンターを作成しました',
      failedToCreate: '仮想プリンターの作成に失敗しました',
      deleted: '仮想プリンターを削除しました',
      failedToDelete: '仮想プリンターの削除に失敗しました',
    },
    list: {
      title: '仮想プリンター',
      add: '追加',
      addFirst: '仮想プリンターを追加',
      empty: '仮想プリンターが設定されていません。追加して始めましょう。',
    },
    bindIp: {
      title: 'バインドインターフェース',
      placeholder: 'インターフェースを選択...',
      hint: 'この仮想プリンターがバインドするネットワークインターフェース。プリンターごとに一意である必要があります。',
    },
    proxy: {
      accessCodeHint: 'プロキシモードでは、スライサーにターゲットプリンターのアクセスコードを使用してください。接続は実際のプリンターに透過的に転送されます。',
    },
    addDialog: {
      title: '仮想プリンターを追加',
      name: '名前',
      hint: 'アクセスコード、ターゲットプリンター、その他の設定は作成後に設定できます。',
      create: '作成',
    },
    deleteConfirm: {
      title: '仮想プリンターを削除',
      message: '「{{name}}」を削除してもよろしいですか？このプリンターのすべてのサービスが停止されます。',
    },
    title: '仮想プリンター',
    stopped: '停止',
    description: {
      default: 'Bambu StudioとOrcaSlicerに表示される仮想プリンターを有効化。このプリンターに送信されたファイルは印刷せずに直接アーカイブされます。',
      proxy: 'スライサーのトラフィックを実際のプリンターに転送するプロキシを有効化。任意のネットワーク経由でリモート印刷が可能です。',
    },
    model: {
      title: 'プリンターモデル',
      description: 'エミュレートするプリンターモデルを選択。',
      restartWarning: 'モデルを変更すると仮想プリンターが再起動されます',
    },
    accessCode: {
      title: 'アクセスコード',
      isSet: 'アクセスコードが設定されています',
      notSet: 'アクセスコード未設定 - 有効化に必要です',
      placeholder: '8文字のコードを入力',
      placeholderChange: '新しいコードを入力して変更',
      hint: '正確に8文字必要です。スライサーの認証に使用されます。',
      charCount: '({{count}}/8)',
    },
    targetPrinter: {
      title: 'ターゲットプリンター',
      configured: 'プロキシターゲット設定済み',
      notConfigured: 'ターゲットプリンター未選択 - プロキシモードに必要です',
      placeholder: 'プリンターを選択...',
      hint: 'スライサートラフィックの転送先プリンターを選択。プリンターはLANモードである必要があります。',
      noPrinters: 'プリンターが設定されていません。プロキシモードを使用するにはまずプリンターを追加してください。',
    },
    mode: {
      title: 'モード',
      archive: 'アーカイブ',
      archiveDesc: 'ファイルを即座にアーカイブ',
      review: 'レビュー',
      reviewDesc: 'アーカイブ前にレビュー',
      queue: 'キュー',
      queueDesc: 'アーカイブしてキューに追加',
      proxy: 'プロキシ',
      proxyDesc: '実際のプリンターに転送',
    },
    setupRequired: {
      title: 'セットアップが必要です',
      description: '仮想プリンター機能を使用するには追加のシステム設定が必要です。ポートフォワーディング、ファイアウォールルール、プラットフォーム固有の設定が含まれます。',
      readGuide: '有効にする前にセットアップガイドをお読みください',
    },
  },
  modelViewer: {
    openInSlicer: 'スライサーで開く',
    tabs: {
      model: '3Dモデル',
      gcode: 'G-codeプレビュー',
    },
    notAvailable: '利用不可',
    notSliced: '未スライス',
    plates: 'プレート',
    allPlates: '全プレート',
    plateNumber: 'プレート {{number}}',
    plateCount: '{{count}} プレート',
    plateCount_other: '{{count}} プレート',
    objectCount: '{{count}} オブジェクト',
    objectCount_other: '{{count}} オブジェクト',
    filamentCount: '{{count}} フィラメント',
    filamentCount_other: '{{count}} フィラメント',
    eta: '予想時間 {{minutes}} 分',
    noPreview: 'このファイルのプレビューは利用できません',
    pagination: {
      pageOf: 'ページ {{current}} / {{total}}',
      prev: '前へ',
      next: '次へ',
    },
    errors: {
      failedToLoad: 'ファイルの読み込みに失敗しました',
      noMeshes: '3MFファイルにメッシュが見つかりません',
      unsupportedFormat: 'サポートされていないファイル形式です',
    },
  },
  maintenanceDescriptions: {
    lubricateCarbonRods: 'カーボンロッドに潤滑剤を塗布してスムーズな動きを確保',
    lubricateRails: 'リニアレールの潤滑',
    cleanNozzle: 'ノズル/ホットエンドの清掃',
    checkBelts: 'ベルト張力の確認',
    cleanBuildPlate: 'ビルドプレートの清掃',
    checkExtruder: 'エクストルーダーギアの確認',
    checkCooling: '冷却ファンの確認',
    generalInspection: '総合点検',
    cleanCarbonRods: 'カーボンロッドの清掃',
    cleanLinearRails: 'リニアレールを拭いてほこりや汚れを除去',
    checkPtfeTube: 'PTFEチューブの確認',
    replaceHepaFilter: 'HEPAフィルター交換',
    replaceCarbonFilter: 'カーボンフィルター交換',
    lubricateLeftNozzleRail: '左ノズルレールの潤滑',
  },
  hmsErrors: {
    title: 'エラー - {{name}}',
    noErrors: 'エラーなし',
    viewOnWiki: 'Bambu Lab Wikiで表示',
    clearInstructions: 'プリンターでエラーをクリアするとここからも消えます。',
    clearErrors: 'エラーをクリア',
    clearSuccess: 'HMSエラーをクリアしました',
    clearFailed: 'HMSエラーのクリアに失敗しました',
  },
  plateAlert: {
    title: '印刷が一時停止されました！',
    message: 'ビルドプレート上にオブジェクトが検出されました。印刷が自動的に一時停止されました。プレートをクリアして印刷を再開してください。',
    understand: '了解',
  },
  tags: {
    title: 'タグ',
    addTag: 'タグを追加',
    editTag: 'タグを編集',
    deleteTag: 'タグを削除',
    tagName: 'タグ名',
    tagColor: 'タグの色',
    noTags: 'タグがありません',
    deleteConfirm: 'このタグを削除しますか？',
    manageTags: 'タグを管理',
  },
  support: {
    debugLoggingActive: 'デバッグログが有効です',
    manageLogs: '管理',
    collectItem7: 'プリンター接続状態とファームウェアバージョン',
    collectItem8: '連携状態（Spoolman、MQTT、HA）',
    collectItem9: 'ネットワークインターフェース（サブネットのみ）',
    collectItem10: 'Pythonパッケージバージョン',
    collectItem11: 'データベース健全性チェック',
    collectItem12: 'Docker環境の詳細',
  },

  // Configure AMS Slot Modal
  configureAmsSlot: {
    title: 'AMSスロットの設定',
    slotConfigured: 'スロットを設定しました！',
    configuringSlot: 'スロットを設定中：',
    slotLabel: '{{ams}} スロット {{slot}}',
    searchPresets: 'プリセットを検索...',
    colorPlaceholder: '色名またはHex（例: 茶色、FF8800）',
    clearCustomColor: 'カスタム色をクリア',
    noCloudPresets: 'クラウドプリセットがありません。Bambu Cloudにログインして同期してください。',
    noPresetsAvailable: 'プリセットがありません。Bambu Cloudにログインするか、ローカルプロファイルをインポートしてください。',
    noMatchingPresets: '一致するプリセットが見つかりません。',
    custom: 'カスタム',
    builtin: '内蔵',
    settingsSentToPrinter: '設定をプリンターに送信しました',
    filamentProfile: 'フィラメントプロファイル',
    kProfileLabel: 'Kプロファイル（Pressure Advance）',
    filteringFor: 'フィルター中: {{material}}',
    noKProfile: 'Kプロファイルなし（デフォルト0.020を使用）',
    noMatchingKProfiles: '一致するKプロファイルが見つかりません。デフォルトK=0.020が使用されます。',
    selectFilamentFirst: 'まずフィラメントプロファイルを選択してください',
    kFromCalibration: 'K={{value}}（プリンターキャリブレーションから）',
    customColorLabel: 'カスタム色（オプション）',
    presetColors: '{{name}}の色：',
    showLessColors: '色を減らす',
    showMoreColors: '色をもっと表示',
    clear: 'クリア',
    hexLabel: 'Hex: #{{hex}}',
    resetting: 'リセット中...',
    resetSlot: 'スロットをリセット',
    cancel: 'キャンセル',
    configuring: '設定中...',
    configureSlot: 'スロットを設定',
  },

  // Email Settings
  emailSettings: {
    placeholders: {
      fromName: 'BamBuddy',
    },
  },

  // Smart Plugs (accessibility)
  smartPlugs: {
    offline: 'オフライン',
    admin: '管理',
    openPlugAdminPage: 'プラグ管理ページを開く',
    deleteSmartPlug: 'スマートプラグを削除',
    turnOnSmartPlug: 'スマートプラグをオンにする',
    turnOffSmartPlug: 'スマートプラグをオフにする',
    turnOn: 'オンにする',
    turnOff: 'オフにする',
    addSmartPlug: {
      scanningNetwork: 'ネットワークをスキャン中...',
      chooseEntity: 'エンティティを選択...',
      connectionFailed: '接続失敗',
      searchEntities: 'エンティティを検索...',
      searchPowerSensors: '電力センサーを検索...',
      searchEnergySensors: 'エネルギーセンサーを検索...',
      placeholders: {
        plugName: 'リビングルームプラグ',
        mqttStateOnValue: 'ON, true, 1',
        mqttSameAsPower: '電力トピックと同じ、または異なる',
      },
    },
  },

  // External Links
  externalLinks: {
    noLinksConfigured: '外部リンクが設定されていません',
    deleteLink: 'リンクを削除',
    removeCustomIcon: 'カスタムアイコンを削除',
    openInNewTab: '新しいタブで開く',
    placeholders: {
      linkName: 'マイリンク',
    },
  },

  // Keyboard Shortcuts Modal
  keyboardShortcuts: {
    title: 'キーボードショートカット',
    navigation: 'ナビゲーション',
    archivesSection: 'アーカイブ',
    kProfilesSection: 'Kプロファイル',
    generalSection: '全般',
    shortcuts: {
      goToPrinters: 'プリンターへ移動',
      goToArchives: 'アーカイブへ移動',
      goToQueue: 'キューへ移動',
      goToStats: '統計へ移動',
      goToProfiles: 'クラウドプロファイルへ移動',
      goToSettings: '設定へ移動',
      focusSearch: '検索にフォーカス',
      openUploadModal: 'アップロードモーダルを開く',
      clearSelection: '選択をクリア / 入力をぼかす',
      contextMenu: 'カードのコンテキストメニュー',
      refreshProfiles: 'プロファイルを更新',
      newProfile: '新しいプロファイル',
      exitSelectionMode: '選択モードを終了',
      showHelp: 'このヘルプを表示',
    },
    footer: 'Escキーを押すか外側をクリックして閉じます',
  },

  // Restore Backup Modal
  restoreBackup: {
    title: 'バックアップを復元',
    restoring: '復元中...',
    restoreComplete: '復元完了',
    restoreFailed: '復元失敗',
    importSettings: 'バックアップファイルから設定をインポート',
    pleaseWait: 'データの復元中です。しばらくお待ちください',
    clickToSelect: 'クリックしてバックアップファイルを選択（.jsonまたは.zip）',
    howDuplicateHandling: '重複の処理方法:',
    categories: {
      printers: 'プリンター',
      smartPlugs: 'スマートプラグ',
      notificationProviders: '通知プロバイダー',
      filaments: 'フィラメント',
      archives: 'アーカイブ',
      pendingUploads: '保留中のアップロード',
      settingsTemplates: '設定とテンプレート',
    },
    matchingInfo: {
      printers: 'シリアル番号で照合',
      smartPlugs: 'IPアドレスで照合',
      notificationProviders: '名前で照合',
      filaments: '名前+タイプ+ブランドで照合',
      archives: 'コンテンツハッシュで照合',
      pendingUploads: 'ファイル名で照合',
      settingsTemplates: '常に上書き',
    },
    replaceExisting: '既存データを置き換え',
    keepExisting: '既存データを保持',
    replaceDescription: '既に存在するアイテムをバックアップデータで上書き',
    keepDescription: 'まだ存在しないアイテムのみを復元',
    caution: '注意:',
    cautionText: '上書きすると現在の構成がバックアップデータに置き換えられます。セキュリティ上の理由から、プリンターのアクセスコードは上書きされません。',
    itemsRestored: '復元されたアイテム',
    itemsSkipped: 'スキップされたアイテム',
    restored: '復元済み',
    skipped: 'スキップ（既に存在）',
    filesLabel: 'ファイル（3MF、サムネイルなど）',
    newApiKeysGenerated: '新しいAPIキーが生成されました',
    newApiKeysWarning: 'これらのキーは一度だけ表示されます。今すぐコピーしてください！',
    processingBackup: 'バックアップファイルを処理中...',
    noDataFound: 'バックアップファイルに復元するデータが見つかりませんでした。',
    failedToRestore: 'バックアップの復元に失敗しました。ファイル形式を確認してください。',
  },

  // Backup Export Modal
  backupExport: {
    title: 'バックアップをエクスポート',
    selectData: '含めるデータを選択',
    selectAll: 'すべて選択',
    selectNone: 'なし',
    categoryDescriptions: {
      settings: '言語、テーマ、更新設定',
      notifications: 'ntfy、Pushover、Discordなど',
      templates: 'カスタムメッセージテンプレート',
      smartPlugs: 'Tasmotaプラグ設定',
      externalLinks: 'サイドバーの外部サービスへのリンク',
      printers: 'プリンター情報（アクセスコード除外）',
      plateDetection: '空プレート参照画像',
      filaments: 'フィラメントの種類とコスト',
      maintenance: 'カスタムメンテナンススケジュール',
      archives: 'すべての印刷データ+ファイル（3MF、サムネイル、写真）',
      projects: 'プロジェクト、BOMアイテム、添付ファイル',
      pendingUploads: '仮想プリンターアップロード待機中',
      apiKeys: 'Webhook APIキー（インポート時に新しいキーが生成されます）',
    },
    requiresPrinters: 'プリンターを選択する必要があります',
    zipFileWarning: 'ZIPファイルが作成されます。',
    zipFileDescription: 'すべての3MFファイル、サムネイル、タイムラプス、写真が含まれます。これには時間がかかり、大きなファイルになる可能性があります。',
    includeAccessCodes: 'アクセスコードを含める',
    includeAccessCodesDescription: '別のマシンへの転送用',
    includeAccessCodesWarning: 'アクセスコードはプレーンテキストで含まれます。このバックアップファイルを安全に保管してください！',
    categoriesSelected: '{{selectedCount}}カテゴリー選択済み',
  },

  // Tag Management Modal
  tagManagement: {
    searchTags: 'タグを検索...',
    renameTag: 'タグ名を変更',
    deleteTag: 'タグを削除',
  },

  // Notification Template Editor
  notificationTemplates: {
    placeholders: {
      title: '通知タイトル...',
      body: '通知本文...',
    },
  },

  // Batch Tag Modal
  batchTag: {
    placeholders: {
      newTag: '新しいタグを入力...',
    },
  },

  // Photo Gallery Modal
  photoGallery: {
    deletePhoto: '写真を削除',
  },

  // Filament Hover Card
  filamentHoverCard: {
    copySpoolUuid: 'スプールUUIDをコピー',
  },

  // K Profiles View
  kProfilesView: {
    hasNote: 'メモあり',
    copyProfile: 'プロファイルをコピー',
  },

  // Layout/Navigation
  layout: {
    openMenu: 'メニューを開く',
    noPermissionSystemInfo: 'システム情報を表示する権限がありません',
  },

  // Notification Provider Card
  notificationProviderCard: {
    deleteNotificationProvider: '通知プロバイダーを削除',
  },

  // File Manager Modal
  fileManagerModal: {
    closeFileManager: 'ファイルマネージャーを閉じる',
    sortFiles: 'ファイルを並べ替え',
    goToParentFolder: '親フォルダーへ移動',
    threeView: '3Dビュー',
  },

  // Embedded Camera Viewer
  embeddedCameraViewer: {
    refreshStream: 'ストリームを更新',
    close: '閉じる',
    zoomOut: 'ズームアウト',
    resetZoom: 'ズームをリセット',
    zoomIn: 'ズームイン',
    dragToResize: 'ドラッグしてサイズ変更',
  },

  // Timelapse Viewer
  timelapseViewer: {
    skipBack5s: '5秒戻る',
    skipForward5s: '5秒進む',
  },

  // Notification Providers (descriptions)
  notificationProviders: {
    descriptions: {
      email: 'SMTP電子メール通知',
      telegram: 'Telegramボット経由の通知',
      discord: 'Webhookを介してDiscordチャンネルに送信',
      ntfy: '無料でセルフホスト可能なプッシュ通知',
      pushover: 'シンプルで信頼性の高いプッシュ通知',
      callmebot: 'CallMeBot経由の無料WhatsApp通知',
      webhook: '任意のURLへのジェネリックHTTP POST',
    },
  },

  // Switchbar Popover
  switchbarPopover: {
    noSwitchesInSwitchbar: 'スイッチバーにスイッチがありません',
  },

  // Project Page Modal
  projectPageModal: {
    placeholders: {
      title: 'タイトル',
      designer: 'デザイナー',
      license: 'ライセンス',
      description: '説明を入力...',
      profileTitle: 'プロファイルタイトル',
      profileDescription: 'プロファイルの説明...',
    },
  },

  // GitHub Backup Settings
  githubBackupSettings: {},

  // Spoolman Settings
  spoolmanSettings: {},

  // Time
  time: {
    unknown: '-',
    waiting: '待機中',
    justNow: 'たった今',
    now: '今すぐ',
    minsAgo: '{{count}}分前',
    inMins: 'あと{{count}}分',
    hoursAgo: '{{count}}時間前',
    inHours: 'あと{{count}}時間',
    daysAgo: '{{count}}日前',
    inDays: 'あと{{count}}日',
  },

  // SpoolBuddy Kiosk
  spoolbuddy: {
    nav: {
      dashboard: 'ダッシュボード',
      ams: 'AMS',
      inventory: 'インベントリ',
      writeTag: '書込み',
      settings: '設定',
    },
    status: {
      nfcReady: 'NFC準備完了',
      nfcOff: 'NFCオフ',
      offline: 'オフライン',
      online: 'オンライン',
      noPrinters: 'プリンターなし',
      deviceOffline: 'デバイスオフライン',
      waitingConnection: 'デバイス接続を待っています...',
      systemReady: 'システム準備完了',
      status: 'ステータス',
    },
    dashboard: {
      readyToScan: 'スキャン準備完了',
      idleMessage: 'スプールを計量台に置いて識別します',
      nfcHint: 'NFCタグは自動的に読み取られます',
      device: 'デバイス',
      syncWeight: '重量同期',
      weightSynced: '同期完了！',
      unknownTag: '不明なタグ',
      newTag: '新しいタグを検出',
      onScale: '計量中',
      linkSpool: 'スプールにリンク',
      linkTagTitle: 'タグをスプールにリンク',
      linkTag: 'タグをリンク',
      selectSpool: 'このタグにリンクするスプールを選択:',
      noUntagged: 'タグなしのスプールが見つかりません',
      tagDetected: 'タグ検出',
      noTag: 'タグなし',
      tagId: 'タグ',
      grossWeight: '総重量',
      spoolSize: 'スプールサイズ',
      close: '閉じる',
      currentSpool: '現在のスプール',
    },
    modal: {
      spoolDetected: 'スプール検出',
      assignToAms: 'AMSに割り当て',
      syncWeight: '重量同期',
      weightSynced: '同期完了！',
      syncing: '同期中...',
      newTagDetected: '新しいタグを検出',
      addToInventory: 'インベントリに追加',
      assignToAmsTitle: 'AMSに割り当て',
      selectSlot: 'スロットを選択',
      assign: '割り当て',
      assigning: '割り当て中...',
      assignSuccess: '割り当て完了！',
      assignError: 'スプールの割り当てに失敗しました。再試行してください。',
      noPrinterSelected: 'プリンターを選択...',
      noAmsDetected: 'このプリンターにAMSが検出されません',
      slot: 'スロット',
    },
    weight: {
      noReading: '読み取りなし',
      stable: '安定',
      measuring: '計測中...',
      tare: '風袋引き',
      calibrate: 'キャリブレーション',
    },
    spool: {
      remaining: '残量',
      material: '素材',
      brand: 'ブランド',
      color: '色',
      coreWeight: 'コア',
      labelWeight: 'ラベル',
      scaleWeight: '計量',
      netWeight: '正味',
      lastUsed: '最終使用',
    },
    ams: {
      noData: 'AMSが検出されません',
      connectAms: 'AMSを接続してスロットを表示',
      noPrinter: 'プリンター未選択',
      selectPrinter: '上部バーからプリンターを選択',
      printerDisconnected: 'プリンター切断',
      humidity: '湿度',
      level: 'レベル',
      active: 'アクティブ',
      slot: 'スロット',
      empty: '空',
    },
    inventory: {
      search: 'スプールを検索...',
      empty: 'インベントリにスプールがありません',
      noResults: '一致するスプールがありません',
      spools: 'スプール',
      addSpool: 'スプール追加',
    },
    settings: {
      // タブ
      tabDevice: 'デバイス',
      tabDisplay: 'ディスプレイ',
      tabScale: '計量',
      tabUpdates: 'アップデート',
      // デバイスタブ
      nfcReader: 'NFCリーダー',
      type: 'タイプ',
      connection: '接続',
      notConnected: 'N/A',
      deviceInfo: 'デバイス情報',
      hostname: 'ホスト',
      uptime: '稼働時間',
      // ディスプレイタブ
      brightness: '明るさ',
      saved: '保存済み',
      noBacklight: 'DSIバックライトが検出されませんでした。明るさ制御にはDSIディスプレイが必要です。',
      screenBlank: '画面オフタイムアウト',
      screenBlankDesc: '操作がないと画面がオフになります。タッチで復帰。',
      displayNote: '明るさはソフトウェアフィルターとして適用されます。',
      // 計量タブ
      scaleCalibration: '計量キャリブレーション',
      currentWeight: '現在の重量',
      tareOffset: '風袋',
      calFactor: '係数',
      knownWeight: '既知の重量',
      calStep1: '計量台からすべてのアイテムを取り除き、ゼロ設定を押してください。',
      calStep2: '既知の重量を計量台に置いてください。',
      setZero: 'ゼロ設定',
      calibrateNow: 'キャリブレーション',
      calibrated: 'キャリブレーション済み',
      tareSet: '風袋コマンドを送信しました。デバイスを待っています...',
      tareFailed: '風袋コマンドの送信に失敗しました',
      zeroSet: 'ゼロ点を設定しました。既知の重量を計量台に置いてください。',
      calibrationDone: 'キャリブレーション完了！',
      calibrationFailed: 'キャリブレーションに失敗しました',
      lastCalibrated: '最終キャリブレーション',
      stable: '安定',
      settling: '安定化中...',
      firmware: 'ファームウェア',
      scale: '計量',
      noDevice: 'SpoolBuddyデバイスが見つかりません',
      // アップデートタブ
      daemonVersion: 'デーモンバージョン',
      currentVersion: '現在',
      versionPending: 'デーモンを待っています...',
      checking: '確認中...',
      checkUpdates: 'アップデートを確認',
      updateAvailable: 'アップデートあり',
      updateInstructions: 'SSH経由で更新：SpoolBuddyインストールスクリプトを実行してください。',
      upToDate: '最新です',
      includeBeta: 'ベータ版を含む',
    },
    writeTag: {
      tabExisting: '既存のスプール',
      tabNew: '新規スプール',
      tabReplace: 'タグ交換',
      searchPlaceholder: '素材、色、ブランドで検索...',
      noUntaggedSpools: 'タグなしのスプールがありません',
      noTaggedSpools: 'タグ付きのスプールがありません',
      selectSpool: 'スプールを選択し、NTAGをリーダーに置いてください',
      placeTag: 'NTAGをリーダーに置いてください',
      tagReady: 'タグ検出 — 書込み準備完了',
      writeTag: 'タグ書込み',
      replaceTag: 'タグ交換',
      writing: 'タグ書込み中...',
      waiting: 'SpoolBuddyを待機中...',
      writeSuccess: 'タグの書込みが完了しました！',
      writeFailed: '書込み失敗',
      queueFailed: '書込みコマンドのキューに失敗しました',
      tryAgain: '再試行',
      cancel: 'キャンセル',
      replaceWarning: '古いタグのリンクが解除され、新しいタグに置き換わります。',
      deviceOffline: 'SpoolBuddyはオフラインです',
      material: '素材',
      colorName: '色名',
      color: '色',
      brand: 'ブランド',
      weight: '重量 (g)',
      createSpool: 'スプール作成',
      creating: '作成中...',
      spoolCreated: 'スプール作成完了！書込み準備ができました。',
      createFailed: 'スプールの作成に失敗しました',
    },
  },
};
