export const jaJP = {
  common: {
    search: "検索...",
    create: "新規",
    new: "新規",
    cancel: "キャンセル",
    delete: "削除",
    edit: "編集",
    theme: "テーマ",
    signOut: "サインアウト",
    noMatches: "一致する結果がありません",
    tryDifferentSearch: "別の検索ワードをお試しください。",
    light: "ライト",
    dark: "ダーク",
    system: "システム",
    loading: "読み込み中...",
    note: "ノート",
    insight: "インサイト",
    newSource: "新規ソース",
    newNotebook: "新規ノートブック",
    newPodcast: "新規ポッドキャスト",
    language: "言語",
    english: "English",
    chinese: "简体中文",
    japanese: "日本語",
    french: "Français",
    russian: "Русский",
    bengali: "বাংলা",
    source: "ソース",
    notebook: "ノートブック",
    podcast: "ポッドキャスト",
    quickActions: "クイックアクション",
    quickActionsDesc: "ナビゲーション、検索、質問、テーマ",
    appName: "Open Notebook",
    add: "追加",
    remove: "削除",
    confirm: "確認",
    warning: "警告",
    error: "エラー",
    success: "成功",
    model: "モデル",
    back: "戻る",
    next: "次へ",
    done: "完了",
    processing: "処理中...",
    creating: "作成中...",
    linked: "リンク済み",
    adding: "追加中...",
    addSelected: "選択項目を追加",
    customModel: "カスタムモデル",
    failed: "失敗",
    current: "現在",
    save: "保存",
    writeNote: "ノートを書く",
    batchMode: "一括モード",
    optional: "任意",
    type: "種類",
    title: "タイトル",
    created: "{time}に作成",
    updated: "{time}に更新",
    actions: "アクション",
    noResults: "結果なし",
    references: "参照",
    refreshPage: "ページを更新してください",
    refresh: "更新",
    aiGenerated: "AI生成",
    human: "手動",
    unknown: "不明",
    notes: "ノート",
    chat: "チャット",
    deleteForever: "完全に削除",
    connectionError: "接続エラー",
    unableToConnect: "APIサーバーに接続できません",
    retryConnection: "再接続",
    diagnosticInfo: "診断情報",
    version: "バージョン",
    built: "ビルド日時",
    apiUrl: "API URL",
    frontendUrl: "フロントエンドURL",
    checkConsoleLogs: "ブラウザコンソールで詳細ログを確認してください（🔧 [Config] メッセージを探してください）",
    yes: "はい",
    no: "いいえ",
    saving: "保存中...",
    description: "説明",
    saveToNote: "ノートに保存",
    copyToClipboard: "クリップボードにコピー",
    close: "閉じる",
    insights: "インサイト",
    progress: "進捗",
    deleting: "削除中...",
    created_label: "作成日時",
    updated_label: "更新日時",
    download: "ダウンロード",
    saveChanges: "変更を保存",
    name: "名前",
    default: "デフォルト",
    nameRequired: "名前は必須です",
    modelConfiguration: "モデル設定",
    resetToDefault: "デフォルトに戻す",
    reasoning: "推論",
    searchTerms: "検索ワード",
    strategy: "戦略",
    individualAnswers: "個別回答（{count}件）",
    finalAnswer: "最終回答",
    notebookLabel: "ノートブック: {name}",
    itemNotFound: "この{type}は見つかりませんでした",
    accessibility: {
      transformationViews: "トランスフォーメーション表示",
      searchKB: "ナレッジベースに質問・検索",
      enterQuestion: "ナレッジベースへの質問を入力",
      enterSearch: "検索クエリを入力",
      searchKBBtn: "ナレッジベースを検索",
      podcastViews: "ポッドキャスト表示",
      ytVideo: "YouTube動画",
      askResponse: "質問への回答",
      searchNotebooks: "ノートブックを検索",
    },
    url: "URL",
    errorDetails: "エラー詳細",
    editTransformation: "トランスフォーメーションを編集",
    retry: "再試行",
    traditionalChinese: "繁體中文",
    portuguese: "Português",
    completed: "完了",
    saveSuccess: "保存しました",
    contextModes: {
      off: "チャットに含めない",
      insights: "インサイトのみ",
      full: "全文",
      clickToCycle: "クリックで切り替え",
    },
    clickToEdit: "クリックして編集",
  },
  apiErrors: {
    notebookNotFound: "ノートブックが見つかりません",
    sourceNotFound: "ソースが見つかりません",
    transformationNotFound: "トランスフォーメーションが見つかりません",
    fileUploadFailed: "ファイルのアップロードに失敗しました",
    urlRequired: "リンクタイプにはURLが必要です",
    contentRequired: "テキストタイプにはコンテンツが必要です",
    invalidSourceType: "無効なソースタイプです",
    processingFailed: "処理に失敗しました",
    failedToQueue: "処理キューへの追加に失敗しました",
    invalidSortBy: "ソートフィールドは'created'または'updated'である必要があります",
    invalidSortOrder: "ソート順は'asc'または'desc'である必要があります",
    accessDenied: "ファイルへのアクセスが拒否されました",
    fileNotFoundOnServer: "サーバー上にファイルが見つかりません",
    searchFailed: "検索に失敗しました",
    askFailed: "質問の処理に失敗しました",
    pleaseEnterQuestion: "質問を入力してください",
    pleaseConfigureModels: "必要なモデルをすべて設定してください",
    failedToCreateSession: "セッションの作成に失敗しました",
    failedToUpdateSession: "セッションの更新に失敗しました",
    failedToDeleteSession: "セッションの削除に失敗しました",
    failedToSendMessage: "メッセージの送信に失敗しました",
    unauthorized: "認証エラー。パスワードを確認してください",
    invalidPassword: "パスワードが無効です",
    embeddingModelRequired: "この機能にはEmbeddingモデルが必要です。モデルセクションで設定してください。",
    strategyModelNotFound: "戦略モデルが見つかりません",
    answerModelNotFound: "回答モデルが見つかりません",
    finalAnswerModelNotFound: "最終回答モデルが見つかりません",
    noAnswerGenerated: "回答を生成できませんでした",
    genericError: "予期しないエラーが発生しました",
  },
  connectionErrors: {
    apiTitle: "APIサーバーに接続できません",
    apiDesc: "Open Notebook APIサーバーに到達できませんでした",
    dbTitle: "データベース接続に失敗しました",
    dbDesc: "APIサーバーは稼働していますが、データベースにアクセスできません",
    troubleshooting: "考えられる原因：",
    apiUnreachable1: "APIサーバーが起動していない",
    apiUnreachable2: "APIサーバーが別のアドレスで動作している",
    apiUnreachable3: "ネットワーク接続の問題",
    dbFailed1: "SurrealDBが起動していない",
    dbFailed2: "データベース接続設定が正しくない",
    dbFailed3: "APIとデータベース間のネットワーク問題",
    quickFixes: "解決方法：",
    setApiUrl: "API_URL環境変数を設定:",
    checkSurreal: "SurrealDBが起動しているか確認:",
    seeDocumentation: "詳細なセットアップ手順はこちら:",
    docLink: "Open Notebookドキュメント",
    showTechnical: "技術的な詳細を表示",
    attemptedUrl: "接続試行URL",
    message: "メッセージ",
    technicalDetails: "技術的な詳細",
    stackTrace: "スタックトレース",
    retryLabel: "再接続",
    retryHint: "Rキーまたはボタンをクリックして再試行",
    dockerLabel: "Docker環境の場合",
    localDevLabel: "ローカル開発の場合",
  },
  auth: {
    loginTitle: "Open Notebook",
    loginDesc: "パスワードを入力してアプリケーションにアクセス",
    passwordPlaceholder: "パスワード",
    signingIn: "サインイン中...",
    signIn: "サインイン",
    connectErrorHint: "サーバーに接続できません。APIが起動しているか確認してください。",
  },
  navigation: {
    collect: "収集",
    process: "処理",
    create: "作成",
    manage: "管理",
    sources: "ソース",
    notebooks: "ノートブック",
    askAndSearch: "質問と検索",
    podcasts: "ポッドキャスト",
    models: "モデル",
    transformations: "トランスフォーメーション",
    transformation: "トランスフォーメーション",
    settings: "設定",
    advanced: "詳細設定",
    nav: "ナビゲーション",
    language: "言語を切り替え",
    theme: "テーマ",
    ask: "質問",
  },
  notebooks: {
    title: "ノートブック",
    newNotebook: "新規ノートブック",
    searchPlaceholder: "ノートブックを検索...",
    archived: "アーカイブ済み",
    archive: "アーカイブ",
    unarchive: "アーカイブ解除",
    deleteNotebook: "ノートブックを削除",
    deleteNotebookDesc: "\"{name}\" を削除しますか？この操作は元に戻せません。",
    deleteNotebookLoading: "削除プレビューを読み込み中...",
    deleteNotebookNotes: "{count}件のノートが完全に削除されます。",
    deleteNotebookNoNotes: "削除するノートはありません。",
    deleteNotebookExclusiveSources: "{count}件のソースはこのノートブックにのみ存在します。",
    deleteNotebookSharedSources: "{count}件のソースは他のノートブックと共有されており、リンクが解除されます。",
    deleteNotebookNoSources: "このノートブックにソースはありません。",
    deleteExclusiveSourcesLabel: "専用ソースを削除",
    keepExclusiveSourcesLabel: "リンク解除して保持",
    activeNotebooks: "アクティブなノートブック",
    archivedNotebooks: "アーカイブ済みノートブック",
    notFound: "ノートブックが見つかりません",
    notFoundDesc: "指定されたノートブックは存在しません。",
    updated: "更新日時",
    namePlaceholder: "ノートブック名",
    addDescription: "説明を追加...",
    noNotesYet: "ノートがまだありません",
    deleteNote: "ノートを削除",
    deleteNoteConfirm: "このノートを削除しますか？この操作は元に戻せません。",
    noteCreatedSuccess: "ノートを作成しました",
    failedToCreateNote: "ノートの作成に失敗しました",
    noteUpdatedSuccess: "ノートを更新しました",
    failedToUpdateNote: "ノートの更新に失敗しました",
    noteDeletedSuccess: "ノートを削除しました",
    failedToDeleteNote: "ノートの削除に失敗しました",
    createNew: "新規ノートブックを作成",
    createNewDesc: "名前と説明（任意）を入力してください。",
    descPlaceholder: "このノートブックについての情報を追加...",
    createSuccess: "ノートブックを作成しました",
    updateSuccess: "ノートブックを更新しました",
    deleteSuccess: "ノートブックを削除しました",
  },
  sources: {
    title: "ソース",
    add: "ソースを追加",
    addNew: "新規ソースを追加",
    addExisting: "既存ソースを追加",
    delete: "ソースを削除",
    statusPreparing: "準備中",
    statusQueued: "キュー待ち",
    statusProcessing: "処理中",
    statusCompleted: "完了",
    statusFailed: "失敗",
    statusPreparingDesc: "処理の準備中",
    statusQueuedDesc: "処理待ち",
    statusProcessingDesc: "処理中",
    statusCompletedDesc: "処理完了",
    statusFailedDesc: "処理失敗",
    failedToLoad: "ソースの読み込みに失敗しました",
    allSourcesDesc: "すべてのソースを表示します。新しいソースの追加や既存ソースの管理ができます。",
    allSources: "すべてのソース",
    insights: "インサイト",
    yes: "はい",
    no: "いいえ",
    loadingMore: "さらに読み込み中...",
    noSourcesYet: "ソースがまだありません",
    allSourcesDescShort: "すべてのソースを表示します。",
    cannotSaveNoteNoNotebook: "ノートを保存できません：ノートブックIDが利用できません",
    createFirstSource: "最初のソースを追加してナレッジベースの構築を始めましょう。",
    deleteSourceConfirm: "このソースを削除しますか？",
    deleteConfirm: "削除しますか？",
    deleteConfirmWithTitle: "「{title}」を削除しますか？",
    deleteSuccess: "ソースを削除しました。注意：ストレージからファイルを削除するには、設定ページで「ファイルを削除」オプションを有効にする必要があります。",
    failedToDelete: "ソースの削除に失敗しました",
    sourceQueued: "ソースをキューに追加",
    sourceQueuedDesc: "ソースをバックグラウンド処理に送信しました。ソース一覧で進捗を確認できます。",
    sourceAddedSuccess: "ソースを追加しました",
    failedToAddSource: "ソースの追加に失敗しました",
    sourceUpdatedSuccess: "ソースを更新しました",
    failedToUpdateSource: "ソースの更新に失敗しました",
    sourceDeletedSuccess: "ソースを削除しました",
    failedToDeleteSource: "ソースの削除に失敗しました",
    fileUploadedSuccess: "ファイルをアップロードしました",
    failedToUploadFile: "ファイルのアップロードに失敗しました",
    sourceRequeued: "ソースの再処理をキューに追加",
    sourceRequeuedDesc: "ソースを再処理キューに追加しました。",
    failedToRetry: "再試行に失敗",
    sourcesAddedToNotebook: "{count}件のソースをノートブックに追加しました",
    failedToAddSourcesToNotebook: "ノートブックへのソース追加に失敗しました",
    partialAddSuccess: "{success}件追加成功、{failed}件失敗",
    sourceRemovedFromNotebook: "ノートブックからソースを削除しました",
    failedToRemoveSourceFromNotebook: "ノートブックからのソース削除に失敗しました",
    removeConfirm: "ノートブックからこのソースを削除しますか？",
    checking: "確認中...",
    untitledSource: "無題のソース",
    maxItems: "最大{count}件",
    insightsCount: "{count}件のインサイト",
    details: "詳細",
    detailsTitle: "ソース詳細",
    content: "コンテンツ",
    metadata: "メタデータ",
    type: {
      link: "リンク",
      file: "ファイル",
      text: "テキスト",
    },
    id: "ソースID",
    topics: "トピック",
    embedded: "Embedding済み",
    notEmbedded: "未Embedding",
    embedContent: "Embeddingを実行",
    embedding: "Embedding中...",
    alreadyEmbedded: "Embedding済み",
    downloadFile: "ファイルをダウンロード",
    fileUnavailable: "ファイルが利用できません",
    preparing: "準備中...",
    generateNewInsight: "新しいインサイトを生成",
    selectTransformation: "トランスフォーメーションを選択...",
    noInsightsYet: "インサイトがまだありません",
    createFirstInsight: "上のトランスフォーメーションを使って最初のインサイトを作成しましょう",
    viewInsight: "インサイトを表示",
    deleteInsight: "インサイトを削除",
    deleteInsightConfirm: "このインサイトを削除しますか？この操作は元に戻せません。",
    insightGenerationStarted: "インサイトの生成が開始されました。まもなく表示されます。",
    editNote: "ノートを編集",
    createNote: "ノートを作成",
    addTitle: "タイトルを追加...",
    untitledNote: "無題のノート",
    writeNotePlaceholder: "ノートの内容をここに入力...",
    saveNote: "ノートを保存",
    createNoteBtn: "ノートを作成",
    createFirstNote: "最初のノートを作成してインサイトや気づきを記録しましょう。",
    urlLabel: "URL *",
    fileLabel: "ファイル *",
    textContentLabel: "テキストコンテンツ *",
    enterUrlsPlaceholder: "URLを1行ずつ入力\nhttps://example.com/article1\nhttps://example.com/article2",
    batchUrlHint: "複数のURLを貼り付けて一括インポート（1行に1つ）",
    invalidUrlsDetected: "無効なURLが検出されました:",
    lineLabel: "{line}行目",
    fixInvalidUrls: "無効なURLを修正または削除してください",
    selectMultipleFilesHint: "複数ファイルを選択して一括インポート。対応形式：ドキュメント（PDF、DOC、DOCX、PPT、XLS、EPUB、TXT、MD）、メディア（MP4、MP3、WAV、M4A）、画像（JPG、PNG）、アーカイブ（ZIP）",
    selectedFiles: "選択されたファイル:",
    textPlaceholder: "コンテンツを貼り付けまたは入力...",
    htmlDetected: "HTMLコンテンツが検出されました。処理後にMarkdownに変換されます。",
    titlePlaceholder: "ソースにわかりやすいタイトルを付けてください",
    batchTitlesAuto: "タイトルは各ソースごとに自動生成されます。",
    batchCommonSettings: "同じノートブックとトランスフォーメーションがすべてのアイテムに適用されます。",
    urlsCount: "{count}件のURL",
    filesCount: "{count}件のファイル",
    addSource: "ソースを追加",
    notEmbeddedAlert: "コンテンツが未Embedding",
    notEmbeddedDesc: "このコンテンツはベクトル検索用にEmbeddingされていません。Embeddingを行うと高度な検索機能やコンテンツの発見性が向上します。",
    openOnYoutube: "YouTubeで開く",
    urlCopied: "URLをクリップボードにコピーしました",
    viewSource: "ソースを表示",
    noInsightSelected: "インサイトが選択されていません",
    sourceInsight: "ソースインサイト",
    manageNotebooks: "ノートブックを管理",
    manageNotebooksDesc: "このソースを含むノートブックを管理",
    noNotebooksAvailable: "利用可能なノートブックがありません",
    loadFailed: "ソース詳細の読み込みに失敗しました",
    removeFromNotebook: "ノートブックから削除",
    retryProcessing: "処理を再試行",
    deleteSource: "ソースを削除",
    retry: "再試行",
    addExistingTitle: "既存ソースを追加",
    addExistingDesc: "すべてのノートブックから既存のソースを選択して現在のノートブックに追加します。",
    searchPlaceholder: "名前またはURLでソースを検索...",
    noNotebooksFound: "ノートブックが見つかりません。",
    showingFirst100: "最初の100件を表示中。検索で特定のソースを探してください。",
    selectedCount: "{count}件選択中",
    added: "{date}に追加",
    addUrl: "URLを追加",
    uploadFile: "ファイルをアップロード",
    enterText: "テキストを入力",
    processDescription: "コンテンツはAIによって処理・分析されます。",
    processingFiles: "ファイルを処理中...",
    titleRequired: "テキストコンテンツにはタイトルが必要です",
    titleGenerated: "空欄の場合、コンテンツからタイトルが自動生成されます",
    batchCount: "{count}件の{type}が処理されます",
    enableEmbedding: "検索用にEmbeddingを有効化",
    embeddingDesc: "このソースをベクトル検索やAIクエリで見つけられるようにします",
    embeddingAlways: "Embeddingは自動的に有効",
    embeddingAlwaysDesc: "設定でベクトル検索用に常にEmbeddingするよう構成されています。",
    embeddingNever: "Embeddingは無効",
    embeddingNeverDesc: "設定でEmbeddingをスキップするよう構成されています。このソースではベクトル検索は利用できません。",
    changeInSettings: "設定で変更できます",
    notFound: "ソースが見つかりません",
    noContent: "コンテンツがありません",
    insightsDesc: "モデル分析から生成されたインサイト",
    uploadedFile: "アップロードされたファイル",
    fileUnavailableDesc: "ストレージシステムの理由により、このファイルは現在利用できません。",
    batchSuccess: "{count}件のソースを作成しました",
    batchFailed: "{count}件すべてのソース作成に失敗しました",
    batchPartial: "{success}件成功、{failed}件失敗",
    submittingSource: "ソースを処理に送信中...",
    processingBatchSources: "{count}件のソースを処理中。しばらくお待ちください。",
    processingSource: "ソースを処理中です。しばらくお待ちください。",
    maxFilesAllowed: "一括処理は最大{count}件までです",
  },
  chat: {
    sessions: "セッション",
    sessionTitlePlaceholder: "タイトルを入力...",
    noSessions: "チャットセッションがまだありません",
    deleteSession: "セッションを削除",
    deleteSessionDesc: "このチャットセッションを削除しますか？この操作は元に戻せません。",
    sendPlaceholder: "ソースについて何でも質問してください...",
    sessionsTitle: "チャットセッション",
    chatWith: "{name}とチャット",
    startConversation: "この{type}について会話を始めましょう",
    askQuestions: "コンテンツをより深く理解するために質問してください",
    pressToSend: "{key}を押して送信",
    model: "モデル",
    createToStart: "セッションを作成して開始",
    chatWithNotebook: "ノートブックとチャット",
    unableToLoadChat: "チャットを読み込めません",
    noDescription: "説明なし",
    startByCreating: "最初のノートブックを作成してリサーチを整理しましょう。",
    messagesCount: "{count}件のメッセージ",
    sessionCreated: "チャットセッションを作成しました",
    sessionUpdated: "セッションを更新しました",
    sessionDeleted: "セッションを削除しました",
  },
  searchPage: {
    askAndSearch: "質問と検索",
    chooseAMode: "モードを選択",
    askBeta: "質問（ベータ）",
    search: "検索",
    askYourKb: "ナレッジベースに質問（ベータ）",
    askYourKbDesc: "LLMがナレッジベース内のドキュメントに基づいてクエリに回答します。",
    question: "質問",
    enterQuestionPlaceholder: "質問を入力...",
    pressToSubmit: "Cmd/Ctrl+Enterで送信",
    noEmbeddingModel: "Embeddingモデルが選択されていないため、この機能は使用できません。モデルページで設定してください。",
    usingCustomModels: "カスタムモデルを使用中",
    usingDefaultModels: "デフォルトモデルを使用中",
    advanced: "詳細設定",
    strategy: "戦略",
    answer: "回答",
    final: "最終",
    ask: "質問する",
    processing: "処理中...",
    saveToNotebooks: "ノートブックに保存",
    searchDesc: "特定のキーワードやコンセプトでナレッジベースを検索",
    enterSearchPlaceholder: "検索クエリを入力...",
    pressToSearch: "Enterで検索",
    searchType: "検索タイプ",
    vectorSearchWarning: "ベクトル検索にはEmbeddingモデルが必要です。テキスト検索のみ利用可能です。",
    textSearch: "テキスト検索",
    vectorSearch: "ベクトル検索",
    searchIn: "検索対象",
    searchSources: "ソースを検索",
    searchNotes: "ノートを検索",
    resultsFound: "{count}件の結果",
    matches: "一致（{count}件）",
    noResultsFor: "「{query}」に一致する結果がありません",
    notSet: "未設定",
    saveToNotebook: "ノートブックに保存",
    saveSuccess: "ノートブックに保存しました",
    saveError: "ノートブックへの保存に失敗しました",
    selectNotebook: "ノートブックを選択",
    searchAndAsk: "検索と質問",
    searchResultsFor: "「{query}」の検索結果",
    askAbout: "「{query}」について質問",
    orSearchKb: "またはナレッジベースを検索",
    saving: "保存中...",
    advancedModelTitle: "詳細モデル選択",
    advancedModelDesc: "質問処理の各段階で使用するモデルを選択",
    strategyModel: "戦略モデル",
    answerModel: "回答モデル",
    finalAnswerModel: "最終回答モデル",
    selectStrategyPlaceholder: "戦略モデルを選択",
    selectAnswerPlaceholder: "回答モデルを選択",
    selectFinalPlaceholder: "最終回答モデルを選択",
    saveChanges: "変更を保存",
    processingQuestion: "質問を処理中...",
  },
  podcasts: {
    generateEpisode: "ポッドキャストエピソードを生成",
    generateEpisodeDesc: "含めるコンテンツを選択し、新しいポッドキャストエピソードを生成する前にエピソードの詳細を設定してください。",
    content: "コンテンツ",
    contentDesc: "このエピソードに含めるノートブック、ソース、ノートを選択してください。",
    itemsSelected: "{count}件選択中",
    tokens: "{count}トークン",
    chars: "{count}文字",
    loadingNotebooks: "ノートブックを読み込み中...",
    noNotebooksFoundInPodcasts: "ノートブックが見つかりません。ポッドキャストを生成する前にノートブックを作成してコンテンツを追加してください。",
    noContentSelected: "コンテンツが選択されていません",
    summary: "要約",
    fullContent: "全文",
    untitledSource: "無題のソース",
    untitledNote: "無題のノート",
    episodeSettings: "エピソード設定",
    episodeProfile: "エピソードプロファイル",
    episodeProfilePlaceholder: "エピソードプロファイルを選択",
    episodeName: "エピソード名",
    episodeNamePlaceholder: "例：AIと仕事の未来",
    additionalInstructions: "追加の指示",
    instructionsPlaceholder: "エピソードブリーフィングに追加するアドバイス...",
    generating: "生成中...",
    generate: "生成",
    hostPlaceholder: "ホスト{number}",
    profileRequired: "エピソードプロファイルが必要です",
    profileRequiredDesc: "ポッドキャストを生成する前にエピソードプロファイルを選択してください。",
    nameRequired: "エピソード名が必要です",
    nameRequiredDesc: "エピソード名を入力してください。",
    addContext: "コンテキストを追加",
    addContextDesc: "エピソードに含めるソースまたはノートを少なくとも1つ選択してください。",
    generationFailed: "ポッドキャスト生成に失敗しました",
    speakerProfile: "スピーカープロファイル",
    usesSpeakerProfile: "スピーカープロファイルを使用",
    sources: "ソース",
    notes: "ノート",
    noSources: "このノートブックにはソースがありません。",
    noNotes: "このノートブックにはノートがありません。",
    selectMode: "モードを選択",
    buildContextFailed: "コンテキストの構築に失敗しました。選択内容を確認してください。",
    podcastTaskStarted: "ポッドキャストタスクを開始しました",
    loadingProfiles: "エピソードプロファイルを読み込み中...",
    noProfilesFound: "エピソードプロファイルが見つかりません。ポッドキャストを生成する前にエピソードプロファイルを作成してください。",
    listTitle: "ポッドキャスト",
    listDesc: "生成されたエピソードを追跡し、再利用可能なプロファイルを管理します。",
    chooseAView: "表示を選択",
    episodesTab: "エピソード",
    templatesTab: "プロファイル",
    overviewTitle: "エピソード概要",
    overviewDesc: "ポッドキャスト生成ジョブを監視し、最終成果物を確認します。",
    generateBtn: "ポッドキャストを生成",
    total: "合計",
    processingLabel: "処理中",
    completedLabel: "完了",
    failedLabel: "失敗",
    pendingLabel: "保留中",
    loadErrorTitle: "エピソードの読み込みに失敗しました",
    loadErrorDesc: "最新のポッドキャストエピソードを取得できませんでした。しばらくしてから再試行してください。",
    loadingEpisodes: "エピソードを読み込み中...",
    noEpisodesYet: "ポッドキャストエピソードがまだありません。ノートブックまたはソースのチャットインターフェースから最初のエピソードを生成してください。",
    statusRunningTitle: "処理中",
    statusRunningDesc: "現在アセットを生成中のエピソード。",
    statusPendingTitle: "キュー待ち / 保留中",
    statusPendingDesc: "処理開始を待っている送信済みエピソード。",
    statusCompletedTitle: "完了したエピソード",
    statusCompletedDesc: "確認、ダウンロード、公開の準備が整っています。",
    statusFailedTitle: "失敗したエピソード",
    statusFailedDesc: "生成中に問題が発生したエピソード。",
    templatesWorkspaceTitle: "プロファイルワークスペース",
    templatesWorkspaceDesc: "高速なポッドキャスト制作のための再利用可能なエピソードおよびスピーカー設定を構築します。",
    howTemplatesPowerTitle: "プロファイルがポッドキャスト生成を強化する仕組み",
    howTemplatesPowerDesc: "プロファイルはポッドキャストワークフローを2つの再利用可能なビルディングブロックに分割します。新しいエピソードを生成する際に自由に組み合わせてください。",
    episodeProfilesSetFormat: "エピソードプロファイルがフォーマットを設定",
    episodeProfilesList1: "セグメント数とストーリーの流れを概説",
    episodeProfilesList2: "ブリーフィング、アウトライン、スクリプト作成に使用する言語モデルを選択",
    episodeProfilesList3: "デフォルトのブリーフィングを保存し、すべてのエピソードで一貫したトーンで開始",
    speakerProfilesBringVoices: "スピーカープロファイルが声に命を吹き込む",
    speakerProfilesList1: "音声合成プロバイダーとモデルを選択",
    speakerProfilesList2: "スピーカーごとの個性、経歴、発音メモを記録",
    speakerProfilesList3: "異なるエピソードフォーマットで同じホストやゲストの声を再利用",
    recommendedWorkflow: "推奨ワークフロー",
    workflowStep1: "必要な各声のスピーカープロファイルを作成",
    workflowStep2: "それらのスピーカーを名前で参照するエピソードプロファイルを構築",
    workflowStep3: "ストーリーに合ったエピソードプロファイルを選択してポッドキャストを生成",
    workflowHint: "エピソードプロファイルはスピーカープロファイルを名前で参照するため、スピーカーから始めることで後の声の割り当て漏れを防ぎます。",
    failedToLoadTemplates: "プロファイルデータの読み込みに失敗しました",
    failedToLoadTemplatesDesc: "APIが実行中か確認して再試行してください。一部のセクションが不完全な場合があります。",
    loadingTemplates: "プロファイルを読み込み中...",
    speakerProfilesTitle: "スピーカープロファイル",
    speakerProfilesDesc: "生成されるエピソードの声と個性を設定します。",
    createSpeaker: "スピーカーを作成",
    noSpeakerProfiles: "スピーカープロファイルがまだありません。エピソードプロファイルを利用するには作成してください。",
    noDescription: "説明なし。",
    usedByCount_one: "1つのエピソードで使用",
    usedByCount_other: "{count}個のエピソードで使用",
    usedByCount: "{count}個のエピソードで使用",
    unused: "未使用",
    voiceId: "Voice ID",
    backstory: "バックストーリー",
    personality: "パーソナリティ",
    edit: "編集",
    duplicate: "複製",
    deleteSpeakerProfileTitle: "スピーカープロファイルを削除しますか？",
    deleteSpeakerProfileDesc: "「{name}」を削除すると元に戻せません。",
    deleteSpeakerDisabledHint: "削除する前にエピソードプロファイルからこのスピーカーを削除してください。",
    deleting: "削除中...",
    episodeProfilesTitle: "エピソードプロファイル",
    episodeProfilesDesc: "番組用の再利用可能な生成設定を定義します。",
    createProfile: "プロファイルを作成",
    createSpeakerFirst: "エピソードプロファイルを追加する前にスピーカープロファイルを作成してください。",
    noEpisodeProfiles: "エピソードプロファイルがまだありません。ポッドキャスト生成を開始するには作成してください。",
    speakerCreated: "スピーカーを作成しました",
    speakerCreatedDesc: "スピーカー「{name}」を追加しました。",
    failedToCreateSpeaker: "スピーカープロファイルの作成に失敗しました",
    speakerUpdated: "スピーカーを更新しました",
    speakerUpdatedDesc: "スピーカー「{name}」を更新しました。",
    failedToUpdateSpeaker: "スピーカープロファイルの更新に失敗しました",
    speakerDeleted: "スピーカーを削除しました",
    speakerDeletedDesc: "スピーカー「{name}」を削除しました。",
    failedToDeleteSpeaker: "スピーカープロファイルの削除に失敗しました",
    speakerDuplicated: "スピーカーを複製しました",
    speakerDuplicatedDesc: "スピーカー「{name}」を複製しました。",
    failedToDuplicateSpeaker: "スピーカープロファイルの複製に失敗しました",
    generationStarted: "生成を開始しました",
    generationStartedDesc: "ポッドキャスト生成がキューに追加されました。",
    failedToStartGeneration: "生成の開始に失敗しました",
    tryAgainMoment: "しばらくしてから再試行してください。",
    deleteProfileTitle: "プロファイルを削除しますか？",
    deleteProfileDesc: "「{name}」を削除します。既存のエピソードはデータを保持しますが、新しいエピソードはこの設定を使用できなくなります。",
    profileCreated: "プロファイルを作成しました",
    profileCreatedDesc: "エピソードプロファイル「{name}」を作成しました。",
    failedToCreateProfile: "プロファイルの作成に失敗しました",
    profileUpdated: "プロファイルを更新しました",
    profileUpdatedDesc: "エピソードプロファイル「{name}」を更新しました。",
    failedToUpdateProfile: "プロファイルの更新に失敗しました",
    profileDeleted: "プロファイルを削除しました",
    profileDeletedDesc: "エピソードプロファイル「{name}」を削除しました。",
    failedToDeleteProfile: "プロファイルの削除に失敗しました",
    failedToDeleteProfileDesc: "エピソードプロファイルの削除に失敗しました。",
    profileDuplicated: "プロファイルを複製しました",
    profileDuplicatedDesc: "エピソードプロファイル「{name}」を複製しました。",
    failedToDuplicateProfile: "プロファイルの複製に失敗しました",
    episodeDeleted: "エピソードを削除しました",
    episodeDeletedDesc: "エピソードを削除しました。",
    failedToDeleteEpisode: "エピソードの削除に失敗しました",
    failedToDeleteSpeakerDesc: "スピーカープロファイルの削除に失敗しました。",
    outlineModel: "アウトラインモデル",
    transcriptModel: "トランスクリプトモデル",
    segments: "セグメント",
    defaultBriefingTitle: "デフォルトブリーフィング",
    created: "{time}に作成",
    details: "詳細",
    summaryTab: "要約",
    outlineTab: "アウトライン",
    transcriptTab: "トランスクリプト",
    briefing: "ブリーフィング",
    noOutline: "アウトラインがありません。",
    noTranscript: "トランスクリプトがありません。",
    deleteEpisodeTitle: "エピソードを削除しますか？",
    deleteEpisodeDesc: "「{name}」とその音声ファイルを完全に削除します。",
    audioUnavailable: "音声が利用できません",
    segment: "セグメント",
    speaker: "スピーカー",
    profile: "プロファイル",
    link: "リンク",
    file: "ファイル",
    embedded: "Embedding済み",
    notEmbedded: "未Embedding",
    noSpeakerProfilesAvailable: "スピーカープロファイルがありません",
    editEpisodeProfile: "エピソードプロファイルを編集",
    createEpisodeProfile: "エピソードプロファイルを作成",
    episodeProfileFormDesc: "エピソードの生成方法とデフォルトで使用するスピーカー設定を定義します。",
    noSpeakerProfilesDesc: "エピソードプロファイルを設定する前にスピーカープロファイルを作成してください。",
    profileName: "プロファイル名",
    profileNamePlaceholder: "例：テックディスカッション",
    descriptionPlaceholder: "このプロファイルを使用する場面の簡単な説明",
    speakerConfig: "スピーカー設定",
    selectSpeakerProfile: "スピーカープロファイルを選択",
    outlineGeneration: "アウトライン生成",
    transcriptGeneration: "トランスクリプト生成",
    defaultBriefingPlaceholder: "このエピソードフォーマットの構成、トーン、目標を概説",
    editSpeakerProfile: "スピーカープロファイルを編集",
    createSpeakerProfile: "スピーカープロファイルを作成",
    speakerProfileFormDesc: "音声合成設定を構成し、最大4人のスピーカーを定義します。",
    speakers: "スピーカー",
    speakersDesc: "このプロファイルに1〜4人の声を設定します。",
    addSpeaker: "スピーカーを追加",
    speakerNumber: "スピーカー{number}",
    backstoryPlaceholder: "スピーカーの短い経歴やコンテキスト",
    personalityPlaceholder: "スタイルとトーンを説明",
    outlineModelRequired: "アウトラインモデルは必須です",
    transcriptModelRequired: "トランスクリプトモデルは必須です",
    defaultBriefingRequired: "デフォルトブリーフィングは必須です",
    segmentsInteger: "整数である必要があります",
    segmentsMin: "最低3セグメント",
    segmentsMax: "最大20セグメント",
    voiceIdRequired: "Voice IDは必須です",
    backstoryRequired: "バックストーリーは必須です",
    personalityRequired: "パーソナリティは必須です",
    speakerCountMin: "最低1人のスピーカーが必要です",
    speakerCountMax: "最大4人まで設定できます",
    delete: "削除",
    failedToDelete: "ポッドキャストの削除に失敗しました",
    retry: "再試行",
    retrying: "再試行中…",
    retryStarted: "再試行を開始しました",
    retryStartedDesc: "新しいポッドキャスト生成ジョブが送信されました。",
    failedToRetry: "再試行に失敗しました",
    errorDetails: "エラー詳細",
    language: "言語",
    languagePlaceholder: "言語を選択（任意）",
    podcastLanguage: "ポッドキャストの言語",
    selectOutlineModel: "アウトラインモデルを選択",
    selectTranscriptModel: "トランスクリプトモデルを選択",
    voiceModel: "音声モデル",
    voiceModelRequired: "音声モデルは必須です",
    selectVoiceModel: "音声モデルを選択",
    perSpeakerTtsOverride: "スピーカーごとのTTSオーバーライド（任意）",
    useProfileDefault: "プロファイルのデフォルトを使用",
    setupRequired: "設定が必要",
    setupRequiredDesc: "一部のプロファイルにモデルが設定されていません。ポッドキャストを生成する前に、編集してモデルを選択してください。",
    notConfigured: "未設定",
  },
  settings: {
    contentProcessing: "コンテンツ処理",
    contentProcessingDesc: "ドキュメントとURLの処理方法を設定",
    docEngine: "ドキュメント処理エンジン",
    docEnginePlaceholder: "ドキュメント処理エンジンを選択",
    urlEngine: "URL処理エンジン",
    urlEnginePlaceholder: "URL処理エンジンを選択",
    autoRecommended: "自動（推奨）",
    simple: "シンプル",
    docling: "Docling",
    helpMeChoose: "選び方",
    docHelp: "・Doclingは少し遅いですが、特にテーブルや画像を含むドキュメントでより正確です。・シンプルはフォーマットせずにドキュメントからコンテンツを抽出します。・自動（推奨）はDoclingで処理を試み、失敗した場合はシンプルにフォールバックします。",
    firecrawl: "Firecrawl",
    jina: "Jina",
    urlHelp: "・Firecrawlは有料サービス（無料枠あり）で非常に強力です。・Jinaも良いオプションで無料枠があります。・シンプルは基本的なHTTP抽出を使用し、JavaScriptベースのウェブサイトのコンテンツを取得できない場合があります。・自動（推奨）はFirecrawl、Jina、最後にシンプルの順で試みます。",
    embeddingAndSearch: "Embeddingと検索",
    embeddingAndSearchDesc: "検索とEmbeddingオプションを設定",
    defaultEmbeddingOption: "デフォルトEmbeddingオプション",
    embeddingOptionPlaceholder: "Embeddingオプションを選択",
    ask: "確認する",
    always: "常に実行",
    never: "実行しない",
    embeddingHelp: "コンテンツをEmbeddingすると、あなたやAIエージェントが見つけやすくなります。ローカルのEmbeddingモデル（Ollamaなど）を使用している場合はコストを気にせずすべてをEmbeddingできます。",
    fileManagement: "ファイル管理",
    fileManagementDesc: "ファイルの処理とストレージオプションを設定",
    autoDeleteFiles: "ファイル自動削除",
    autoDeletePlaceholder: "自動削除オプションを選択",
    filesHelp: "ファイルがアップロードされて処理されると、ファイル自体は不要になります。ほとんどのユーザーはOpen Notebookがアップロードフォルダから自動的にファイルを削除することを許可すべきです。",
    loadFailed: "設定の読み込みに失敗しました",
  },
  advanced: {
    title: "詳細ツール",
    desc: "パワーユーザー向けの詳細ツールとユーティリティ",
    systemInfo: "システム情報",
    rebuildEmbeddings: "Embeddingを再構築",
    rebuildEmbeddingsDesc: "すべてのソースのベクトル検索インデックスを再構築",
    currentVersion: "現在のバージョン",
    latestVersion: "最新バージョン",
    status: "ステータス",
    updateAvailable: "バージョン{version}が利用可能",
    updateAvailableDesc: "Open Notebookの新しいバージョンが利用可能です。",
    upToDate: "最新版です",
    unknown: "不明",
    viewOnGithub: "GitHubで表示",
    updateCheckFailed: "更新を確認できません。GitHubに接続できない可能性があります。",
    rebuild: {
      mode: "再構築モード",
      existing: "既存のみ",
      all: "すべて",
      existingDesc: "すでにEmbeddingがあるアイテムのみ再Embedding（高速、モデル切り替え用）",
      allDesc: "既存アイテムの再Embedding＋Embeddingがないアイテムも作成（低速、包括的）",
      include: "再構築に含める",
      selectOneError: "再構築するアイテムタイプを少なくとも1つ選択してください",
      starting: "再構築を開始中...",
      startBtn: "🚀 再構築を開始",
      queued: "キュー待ち",
      running: "ジョブ送信中...",
      completed: "ジョブ送信完了！",
      failed: "失敗",
      leavePageHint: "バックグラウンドで実行されるため、このページを離れても構いません",
      startNew: "新しい再構築を開始",
      itemsProcessed: "{processed}/{total}件送信済み（{percent}%）",
      failedItems: "{count}件のジョブの送信に失敗しました",
      time: "経過時間",
      whenToRebuild: "いつEmbeddingを再構築すべき？",
      whenToRebuildAns: "モデルの切り替え時、バージョンアップ時、破損の修復時、または一括インポート後に再構築してください。",
      howLong: "再構築にはどのくらい時間がかかる？",
      howLongAns: "処理時間はアイテム数、モデル速度、APIレート制限によって異なります。ローカルモデルは通常非常に高速です。",
      isSafe: "アプリ使用中に再構築しても安全？",
      isSafeAns: "はい、再構築は安全です！コンテンツは削除されず、Embeddingのみが置き換えられ、エラーは適切に処理されます。",
    },
  },
  transformations: {
    title: "トランスフォーメーション",
    desc: "トランスフォーメーションはLLMがソースを処理してインサイト、要約などを抽出するためのプロンプトです。",
    workspace: "ワークスペースを選択",
    playground: "プレイグラウンド",
    defaultPrompt: "デフォルトトランスフォーメーションプロンプト",
    defaultPromptDesc: "これはすべてのトランスフォーメーションプロンプトに追加されます",
    defaultPromptPlaceholder: "デフォルトのトランスフォーメーション指示を入力...",
    listTitle: "カスタムトランスフォーメーション",
    createNew: "新規作成",
    inputLabel: "入力テキスト",
    inputPlaceholder: "変換するテキストを入力...",
    outputLabel: "出力",
    runTest: "トランスフォーメーションを実行",
    running: "実行中...",
    selectToStart: "トランスフォーメーションを選択して開始",
    name: "名前",
    namePlaceholder: "一意の識別子、例: key_topics",
    titlePlaceholder: "表示タイトル、空欄の場合は名前を使用",
    promptPlaceholder: "このトランスフォーメーションを実行するプロンプトを書いてください...",
    descriptionPlaceholder: "このトランスフォーメーションの機能を説明してください。",
    suggestDefault: "新しいソースでデフォルトで提案",
    promptHint: "プロンプトはソースコンテンツを念頭に置いて書いてください。モデルに要約、インサイトの抽出、テーブルなどの構造化出力の生成を依頼できます。",
    createSuccess: "トランスフォーメーションを作成しました",
    updateSuccess: "トランスフォーメーションを更新しました",
    deleteSuccess: "トランスフォーメーションを削除しました",
    noTransformations: "トランスフォーメーションがまだありません",
    createOne: "開始するにはトランスフォーメーションを作成してください",
    selectModel: "モデルを選択",
    deleteConfirm: "このトランスフォーメーションを削除しますか？",
    model: "モデル",
    systemPrompt: "システムプロンプト",
    overrideModelDesc: "このチャットセッションのデフォルトモデルを上書きします。空欄の場合はシステムデフォルトを使用します。",
    sessionUseReplacement: "このセッションはデフォルトモデルの代わりに{name}を使用します。",
    systemDefault: "システムデフォルト",
  },
  models: {
    embedding: "Embeddingモデル",
    tts: "音声合成（TTS）",
    stt: "音声認識（STT）",
    apiKey: "APIキー",
    deleteSuccess: "モデルを削除しました",
    saveSuccess: "モデルを保存しました",
    noModels: "モデルなし",
    discoverModels: "モデルを検出",
    noModelsFound: "このプロバイダーからモデルが見つかりません",
    modelType: "モデルタイプ",
    modelTypeHint: "追加するモデルのタイプを選択してください。異なるタイプが必要な場合は、別々のバッチで追加してください。",
    deleteModel: "モデルを削除",
    defaultAssignments: "デフォルトモデル割り当て",
    defaultAssignmentsDesc: "Open Notebook全体で異なる目的に使用するモデルを設定",
    missingRequiredModels: "必須モデルがありません: {models}。これらがないとOpen Notebookが正しく機能しない可能性があります。",
    selectModelPlaceholder: "モデルを選択",
    requiredModelPlaceholder: "⚠️ 必須 - モデルを選択",
    chatModelLabel: "チャットモデル",
    chatModelDesc: "チャット会話に使用",
    transformationModelLabel: "トランスフォーメーションモデル",
    transformationModelDesc: "要約、インサイト、トランスフォーメーションに使用",
    toolsModelLabel: "ツールモデル",
    toolsModelDesc: "関数呼び出しに使用 - OpenAIまたはAnthropicを推奨",
    largeContextModelLabel: "大規模コンテキストモデル",
    largeContextModelDesc: "大きなドキュメントの処理に使用 - Geminiを推奨",
    embeddingModelLabel: "Embeddingモデル",
    embeddingModelDesc: "セマンティック検索とベクトルEmbeddingに使用",
    ttsModelLabel: "音声合成モデル",
    ttsModelDesc: "ポッドキャスト生成に使用",
    sttModelLabel: "音声認識モデル",
    sttModelDesc: "音声の書き起こしに使用",
    embeddingChangeTitle: "Embeddingモデルの変更",
    embeddingChangeConfirm: "Embeddingモデルを{from}から{to}に変更しようとしています。",
    rebuildRequired: "重要：再構築が必要",
    rebuildReason: "Embeddingモデルを変更する場合、一貫性を維持するためにすべての既存Embeddingを再構築する必要があります。再構築しないと、検索結果が不正確または不完全になる可能性があります。",
    whatHappensNext: "次に起こること：",
    step1: "デフォルトのEmbeddingモデルが更新されます",
    step2: "既存のEmbeddingは再構築するまで変更されません",
    step3: "新しいコンテンツは新しいEmbeddingモデルを使用します",
    step4: "できるだけ早くEmbeddingを再構築してください",
    proceedToRebuildPrompt: "今すぐ詳細設定ページで再構築を開始しますか？",
    changeModelOnly: "モデルのみ変更",
    changeAndRebuild: "変更して再構築へ",
    autoAssign: "デフォルトを自動割り当て",
    autoAssigning: "割り当て中...",
    autoAssignSuccess: "{count}件のデフォルトモデルを自動的に割り当てました",
    autoAssignNoModels: "割り当て可能なモデルがありません。先にモデルを同期してください。",
    autoAssignAlreadySet: "すべてのデフォルトモデルは既に設定されています",
    testModel: "モデルをテスト",
    testModelSuccess: "モデルテスト成功",
    testModelFailed: "モデルテスト失敗",
    searchOrAddModel: "検索またはモデル名を入力...",
    addCustomModel: "\"{name}\" を追加",
  },
  apiKeys: {
    title: "独自のAPIキーでAIを設定",
    description: "APIキーをデータベースに安全に保存し、Open NotebookでAIプロバイダーを有効にします。",
    encryptionRequired: "暗号化キーが設定されていません",
    encryptionRequiredDescription: "OPEN_NOTEBOOK_ENCRYPTION_KEY 環境変数に任意の秘密文字列を設定して、データベースへのAPIキーの保存を有効にしてください。",
    configured: "設定済み",
    notConfigured: "未設定",
    migrationAvailable: "環境変数を検出",
    migrationDescription: "{count}個のAPIキーが環境変数で設定されています。管理を容易にするためにデータベースに移行できます。",
    migrateToDatabase: "データベースに移行",
    migrating: "移行中...",
    migrationSuccess: "{count}個のAPIキーを移行しました",
    migrationErrors: "{count}個のキーの移行に失敗しました",
    migrationNothingToMigrate: "すべてのキーはすでにデータベースにあります",
    learnMore: "APIキーの設定方法を確認 →",
    testConnection: "接続テスト",
    testSuccess: "接続成功",
    testFailed: "接続テストに失敗",
    syncModels: "モデル同期",
    syncSuccess: "{discovered} モデルを発見、{new} 個を新規追加",
    syncNoNew: "{count} モデルを発見、すべて登録済み",
    syncFailed: "モデルの同期に失敗",
    getApiKey: "APIキーを取得",
    vertexProject: "GCPプロジェクトID",
    vertexLocation: "リージョン",
    vertexCredentials: "サービスアカウントJSONパス",
    addConfig: "設定を追加",
    editConfig: "設定を編集",
    deleteConfig: "設定を削除",
    configName: "設定名",
    configNameHint: "この設定の説明的な名前（例：本番環境、開発環境）",
    baseUrl: "ベースURL",
    baseUrlOverrideHint: "プロバイダーのデフォルト API エンドポイントを上書きする場合のみ変更してください。",
    deleteConfigConfirm: "「{name}」を削除してもよろしいですか？この操作は元に戻せません。",
    configSaveSuccess: "設定が正常に保存されました",
    configUpdateSuccess: "設定が正常に変更されました",
    configDeleteSuccess: "設定が正常に削除されました",
    apiKeyEditHint: "既存のAPIキーを維持するには空白のままにしてください",
  },
  setupBanner: {
    encryptionRequired: "暗号化キーが設定されていません",
    encryptionRequiredDescription: "OPEN_NOTEBOOK_ENCRYPTION_KEY 環境変数を設定して、安全な認証情報の保存を有効にしてください。",
    migrationAvailable: "APIキーの移行が可能です",
    migrationDescription: "{count} 個のプロバイダーのAPIキーが環境変数で設定されています。管理を容易にするためにデータベースに移行してください。",
    goToSettings: "設定へ移動",
    viewDocs: "ドキュメントを見る",
  },
}
