
export type Language = 'zh' | 'en' | 'ja';

export const translations = {
  zh: {
    appTitle: "简易知识库",
    loginTitle: "系统登录",
    loginDesc: "请输入访问密钥以进入知识库系统",
    loginButton: "进入系统",
    usernamePlaceholder: "用户名",
    passwordPlaceholder: "密码",
    aiCommandsError: "发生错误",
    registerButton: "注册",
    loginError: "密钥不能为空",
    unknown: "未知",
    unknownError: "未知错误",
    langZh: "语言: 中文",
    langEn: "语言: English",
    langJa: "语言: 日本語",
    confirm: "确认",
    cancel: "取消",
    confirmTitle: "确认操作",
    confirmDeleteGroup: "确定要删除分组 \"$1\" 吗？",

    sidebarTitle: "索引与聊天配置",
    backToWorkspace: "返回工作台",
    goToAdmin: "管理后台",
    sidebarDesc: "管理文档与模型参数",
    tabFiles: "文档管理",
    files: "文件",
    notes: "笔记",
    tabSettings: "系统设置",
    systemConfiguration: "系统配置",
    noFiles: "暂无文件",
    noFilesDesc: "支持 PDF、Office 文档、文本、代码、图片等格式",
    addFile: "添加文件",
    clearAll: "清空知识库",
    uploading: "处理中",
    statusIndexing: "向量化中...",
    statusReady: "已索引",

    // RAG Settings
    ragSettings: "RAG 设置",
    enableRerank: "启用重排序 (Rerank)",
    enableRerankDesc: "使用重排序模型对检索结果进行二次精排，提高准确性",
    selectRerankModel: "请选择Rerank模型",
    selectModelPlaceholder: "请选择模型...",

    // Config Panel
    headerModelSelection: "模型选择",
    headerHyperparams: "推理参数",
    headerIndexing: "索引与切片",
    headerRetrieval: "召回与排序",
    btnManageModels: "管理模型供应商",

    lblLLM: "推理模型 (LLM)",
    lblEmbedding: "向量模型 (Embedding)",
    lblRerankRef: "重排序模型 (Rerank)",
    lblTemperature: "随机性 (Temperature)",
    lblMaxTokens: "最大输出 (Max Tokens)",
    lblChunkSize: "切片大小 (Tokens)",
    lblChunkOverlap: "重叠阈值 (Overlap)",
    lblTopK: "召回数量 (Top K)",
    lblRerank: "开启重排序 (Rerank)",

    // Indexing Modal
    idxModalTitle: "知识库分段与清洗",
    idxDesc: "在文件存入知识库之前，请配置分段规则和 Embedding 模型。",
    idxFiles: "待处理文件",
    idxMethod: "分段设置",
    idxEmbeddingModel: "Embedding 模型",
    idxStart: "开始索引",
    idxCancel: "取消上传",
    idxAuto: "自动分段",
    idxCustom: "自定义",

    // Model Manager
    mmTitle: "模型供应商管理",
    mmAddBtn: "添加模型",
    mmEdit: "编辑",
    mmDelete: "删除",
    mmEmpty: "暂无配置的模型",
    mmFormName: "模型别名 (显示用)",
    mmFormProvider: "供应商类型",
    mmFormModelId: "模型 ID (如 gpt-4o)",
    mmFormBaseUrl: "API Base URL",
    mmFormType: "模型功能类型",
    mmFormVision: "支持视觉能力",
    mmFormDimensions: "向量维度",
    mmFormDimensionsHelp: "嵌入向量的维度大小，常见值：1536、3072",
    mmSave: "保存配置",
    mmCancel: "取消",
    mmErrorNotAuthenticated: "未登录，无法操作",
    mmErrorTitle: "操作失败",
    modelEnabled: "模型已启用",
    modelDisabled: "模型已禁用",
    confirmChangeEmbeddingModel: "警告：更改向量模型可能导致现有索引无法搜索。\n这将无法通过新的向量模型搜索到之前通过旧模型索引的内容。\n是否确认更改？",
    embeddingModelWarning: "更改此设置可能需要清空并重新导入知识库。",
    sourcePreview: "引用源预览",
    matchScore: "匹配度",
    copyContent: "复制内容",
    copySuccess: "复制成功",

    // ConfigPanel 缺失的翻译
    selectLLMModel: "请选择LLM模型",
    selectEmbeddingModel: "请选择Embedding模型",
    defaultForUploads: "用于新上传和查询",
    noRerankModel: "无重排序模型",
    vectorSimilarityThreshold: "向量检索阈值",
    rerankSimilarityThreshold: "重排序阈值",
    filterLowResults: "低于此值的结果将被过滤",
    noteCreatedSuccess: "笔记创建成功",
    noteCreatedFailed: "笔记创建失败",
    fullTextSearch: "全文检索",
    hybridVectorWeight: "混合检索向量权重",
    hybridVectorWeightDesc: "向量平衡: 1.0 = 纯向量, 0.0 = 纯全文",
    lblQueryExpansion: "查询扩展 (Multi-Query)",
    lblHyDE: "HyDE (假设文档嵌入)",
    lblQueryExpansionDesc: "生成多个查询变体以提高覆盖率",
    lblHyDEDesc: "生成假设回答以改善语义搜索",
    // Model Management
    apiKeyValidationFailed: "API Key 验证失败",
    keepOriginalKey: "留空保持原 API Key，输入新值则替换",
    leaveEmptyNoChange: "留空不修改",
    mmFormApiKey: "API Key",
    mmFormApiKeyPlaceholder: "请输入 API Key",

    // 更多组件缺失的翻译
    reconfigureFile: "重新配置文件",
    modifySettings: "修改文件的切片和向量化设置",
    filesCount: "个文件",
    allFilesIndexed: "所有文件将使用下面的设置进行索引",
    noEmbeddingModels: "未配置嵌入模型",
    reconfigure: "重新配置",
    refresh: "刷新",
    settings: "设置",
    needLogin: "需要登录才能使用聊天功能",
    citationSources: "引用源",
    chunkNumber: "片段",
    getUserListFailed: "获取用户列表失败",
    displayName: '显示名称',
    displayNamePlaceholder: '输入完整姓名或显示名称',
    globalUserNote: '注意',
    roleManagedInOrg: '用户的角色权限主要在所属组织内管理。',
    usernamePasswordRequired: '用户名和密码不能为空',
    passwordMinLength: "密码长度不能少于6位",
    userCreatedSuccess: "用户创建成功",
    createUserFailed: "创建用户失败",
    userPromotedToAdmin: "用户已提升为管理员",
    userDemotedFromAdmin: "用户已降级为普通用户",
    updateUserFailed: "更新用户失败",
    confirmDeleteUser: "确定要删除此用户吗？",
    confirmDeleteTenant: "确定要删除此组织吗？",
    deleteUser: "删除用户",
    deleteUserFailed: "删除用户失败",
    editUser: "编辑用户",
    organizations: "所属组织",
    saveChanges: "保存更改",
    edit: "编辑",
    makeUserAdmin: "设为管理员",
    makeUserRegular: "设为普通用户",
    loading: "加载中...",
    noUsers: "暂无用户",

    // ChangePasswordModal 和 SearchResultsPanel 缺失的翻译
    fillAllFields: "请填写所有字段",
    passwordMismatch: "新密码和确认密码不匹配",
    newPasswordMinLength: "新密码长度不能少于6位",
    changePasswordFailed: "修改密码失败",
    changePasswordTitle: "修改密码",
    changing: "修改中...",
    searchResults: "搜索到的相关内容",

    // VisionModelSelector 缺失的翻译
    visionModelSettings: "视觉模型设置",
    defaultVisionModel: "默认视觉模型",
    loadVisionModelFailed: "加载视觉模型失败",
    loadFailed: "加载失败，请检查网络连接",
    saveVisionModelFailed: "保存视觉模型失败",
    defaultSettingFailed: "默认设置保存失败",
    noVisionModels: "没有可用的视觉模型",
    selectVisionModel: "请选择视觉模型",
    visionModelHelp: "用于处理图片文件的视觉模型。如果没有可用模型，请在模型管理中添加并勾选“支持视觉”选项。",
    mmErrorNameRequired: "模型名称为必填项。",
    mmErrorModelIdRequired: "模型 ID 为必填项。",
    mmErrorBaseUrlRequired: "Base URL 为必填项。",
    mmRequiredAsterisk: "*",

    // Type Labels
    typeLLM: "对话推理 (LLM)",
    typeEmbedding: "向量化 (Embedding)",
    typeRerank: "重排序 (Rerank)",
    typeVision: "视觉识别 (Vision)",

    welcome: "你好！我是您的智能知识库助手。请在“系统设置”中选择模型，上传文档建立索引，然后即可开始提问。",
    placeholderWithFiles: "基于知识库内容提问...",
    placeholderEmpty: "请先上传文件并完成索引...",
    analyzing: "正在检索并生成答案...",
    errorGeneric: "处理您的请求时遇到错误。",
    errorLabel: "错误",
    errorNoModel: "未选择推理模型或配置无效。",
    aiDisclaimer: "AI 可能会犯错。请核实源文件中的重要信息。",
    confirmClear: "确定要清空所有文件及索引吗？",
    confirmDeleteModel: "确定要删除此模型吗？",
    removeFile: "移除文件",
    apiError: "缺少配置或 API 密钥无效。",
    geminiError: "API 请求失败。",
    processedButNoText: "无法生成文本回复。",
    unitByte: "字节",
    readingFailed: "读取文件失败",

    // Copy
    copy: "复制内容",
    copied: "已复制",

    // User Management
    logout: "退出登录",
    changePassword: "修改密码",
    userManagement: "用户管理",
    userList: "用户列表",
    addUser: "添加用户",
    userInfo: "用户信息",
    username: "用户名",
    password: "密码",
    confirmPassword: "确认密码",
    currentPassword: "当前密码",
    newPassword: "新密码",
    createUser: "创建用户",
    admin: "管理员",
    user: "普通用户",
    adminUser: "设为管理员",  // 新增,
    confirmChange: "确认修改",
    changeUserPassword: "修改用户密码",
    enterNewPassword: "请输入新密码",
    userDeletedSuccessfully: "用户已成功删除",
    createdAt: "创建时间",
    newChat: "新建对话",
    exportUsers: "导出用户",
    importUsers: "导入用户",
    importSuccess: "完成导入: 成功 $1, 失败 $2",
    importFailed: "导入用户失败",
    exportFailed: "导出用户失败",

    // Knowledge Base View
    kbManagement: "知识库管理",
    kbManagementDesc: "管理您的文档和知识分组",
    searchPlaceholder: "搜索文件名...",
    allGroups: "所有分组",
    allStatus: "所有状态",
    statusReadyFragment: "Ready",
    statusFailedFragment: "Failed",
    statusIndexingFragment: "Indexing",
    uploadFile: "上传文件",
    fileName: "文件名",
    size: "大小",
    status: "状态",
    groups: "分组",
    actions: "操作",
    groupsActions: "分组 / 操作",
    noFilesFound: "未找到匹配的文件",
    showingRange: "显示 $1 到 $2 条，共 $3 条",
    confirmDeleteFile: "确定要删除此文件吗？",
    fileDeleted: "文件已删除",
    deleteFailed: "删除失败",
    fileAddedToGroup: "文件已添加到分组",
    failedToAddToGroup: "添加到分组失败",
    fileRemovedFromGroup: "文件已从分组移除",
    failedToRemoveFromGroup: "从分组移除失败",
    confirmClearKB: "警告：此操作将永久删除所有文件及其索引数据。\n\n确定要清空知识库吗？",
    kbCleared: "知识库已清空",
    clearFailed: "清空失败",
    loginRequired: "请先登录",
    uploadErrors: "以下文件无法上传",
    uploadWarning: "$1 个文件已准备上传，$2 个文件被过滤",
    uploadFailed: "上传失败",
    preview: "预览",
    addGroup: "添加分组",
    delete: "删除",
    retry: "重试",
    retrying: "重试中...",
    retrySuccess: "重试成功",
    retryFailed: "重试失败",
    chunkInfo: "分片信息",
    totalChunks: "总分片数",
    chunkIndex: "分片",
    contentLength: "字符",
    position: "位置",

    // Indexing Modal
    reconfigureTitle: "重新配置文件",
    reconfigureDesc: "修改文件处理设置",
    indexingConfigTitle: "文档索引配置",
    indexingConfigDesc: "配置文档处理参数，选择处理模式",
    pendingFiles: "待处理文件",
    processingMode: "处理模式",
    analyzingFile: "分析中...",
    recommendationReason: "推荐理由",
    fastMode: "快速模式",
    fastModeDesc: "简单提取文本，速度快，无额外成本，适合纯文本文档",
    preciseMode: "精准模式",
    preciseModeDesc: "精准识别内容，保留图文混合信息，需要 API 费用",
    fastModeFeatures: "快速模式特点:",
    fastFeature1: "简单提取文本内容",
    fastFeature2: "处理速度快，适合批量处理",
    fastFeature3: "无额外成本",
    fastFeature4: "仅处理文字信息",
    fastFeature5: "适合纯文本文档",
    preciseModeFeatures: "精准模式特点:",
    preciseFeature1: "精准识别内容结构",
    preciseFeature2: "识别图片/图表/表格",
    preciseFeature3: "保留图文混合内容",
    preciseFeature4: "保留页面布局信息",
    preciseFeature5: "需要 API 费用",
    preciseFeature6: "处理时间较长",
    embeddingModel: "嵌入模型",
    pleaseSelect: "请选择...",
    pleaseSelectKnowledgeGroupFirst: "请先选择知识组再保存",
    selectUnassignGroupWarning: "如果您想取消分配知识组，请确认此操作",
    chunkConfig: "切片配置",
    chunkSize: "切片大小 (Tokens)",
    min: "最小",
    max: "上限",
    chunkOverlap: "重叠大小 (Tokens)",
    modelLimitsInfo: "模型限制信息",
    model: "模型",
    maxChunkSize: "切片上限",
    maxOverlapSize: "重叠上限",
    maxBatchSize: "批量限制",
    envLimitWeaker: "环境变量限制更严格",
    optimizationTips: "优化建议",
    tipChunkTooLarge: "切片较大，可能影响检索精度",
    tipOverlapSmall: "建议重叠至少 $1 tokens",
    tipMaxValues: "使用最大值，处理速度可能较慢",
    tipPreciseCost: "精准模式会产生 API 费用，请确认预算",
    selectEmbeddingFirst: "请先选择嵌入模型",
    confirmPreciseCost: "精准模式会产生 API 费用，是否继续？",
    startProcessing: "开始处理",

    // Knowledge Group Management (formerly Notebooks View)
    notebooks: "知识组",
    notebooksDesc: "管理您的文档和知识分组",
    createNotebook: "新建知识组",
    chatWithNotebook: "基于此知识组对话",
    editNotebook: "编辑知识组",
    deleteNotebook: "删除知识组 (包含文件)",
    noDescription: "无描述",
    noNotebooks: "暂无知识组，点击右上角创建",
    createFailed: "创建失败",
    confirmDeleteNotebook: "确定要删除知识组 \"$1\" 吗？\n\n注意：这将同时永久删除该知识组下的所有文件及其索引数据！",

    // New Notebook (Personal Notes)
    personalNotebook: "Notebook",
    personalNotebookDesc: "记录您的个人笔记与灵感",
    noNotes: "暂无个人笔记",
    createNote: "新建笔记",

    // Create/Edit Knowledge Group Drawer (formerly Create/Edit Notebook Drawer)
    createNotebookTitle: "新建知识组",
    editNotebookTitle: "编辑知识组",
    createFailedRetry: "创建失败，请重试",
    updateFailedRetry: "更新失败，请重试",
    name: "名称",
    nameHelp: "一个清晰的名称能帮你快速找到它。",
    namePlaceholder: "例如：量子物理研究...",
    shortDescription: "简短描述",
    descPlaceholder: "一句话描述这个知识组的用途",
    creating: "正在创建...",
    createNow: "立即创建",
    saving: "正在保存...",
    save: "保存",

    // Chat
    chatTitle: "知识库问答",
    chatDesc: "与您的知识库进行智能对话",
    viewHistory: "查看对话历史",
    saveSettingsFailed: "保存设置失败",
    loginToUpload: "请先登录再进行上传",
    fileSizeLimitExceeded: "$1 ($2 - 超过 $3MB 限制)",
    unsupportedFileType: "$1 - 不支持的文件类型 ($2)",
    readFailed: "$1 - 读取失败",
    loadHistoryFailed: "加载对话历史失败",
    loadingUserData: "正在加载用户数据...",
    errorMessage: "错误: $1",
    welcomeMessage: "你好！我是您的智能知识库助手。请选择知识库然后进行提问。",
    selectKnowledgeGroup: "选择知识库分组",
    allKnowledgeGroups: "全部知识库",
    unknownGroup: "未知分组",
    selectedGroupsCount: "已选 $1 个分组",

    // Settings
    generalSettings: "一般配置",
    modelManagement: "模型管理",
    languageSettings: "语言设置",
    passwordChangeSuccess: "密码修改成功",
    passwordChangeFailed: "密码修改失败",
    create: "创建",
    validationFailedMsg: "validationFailedMsg",

    // Sidebar
    navChat: "对话",
    navCoach: "教练",
    navKnowledge: "知识库",
    navKnowledgeGroups: "知识组",
    navNotebook: "笔记本",
    navAgent: "智能体",
    navPlugin: "插件",
    notebookDesc: "记录您的个人想法和研究笔记。",
    newNote: "新建笔记",
    editNote: "编辑笔记",
    noNotesFound: "未找到笔记",
    startByCreatingNote: "开始创建您的第一条个人笔记。",
    navCrawler: "资源获取",
    expandMenu: "展开菜单",
    switchLanguage: "切换语言",
    navGlobal: "全局",
    navTenants: "租户管理",
    navSystemModels: "系统模型",
    navTenantManagement: "租户管理",
    defaultTenant: "默认租户",
    selectOrganization: "选择组织",
    navUsersTeam: "用户与团队",
    navTenantSettings: "租户设置",
    adminConsole: "管理控制台",
    globalDashboard: "全局仪表盘",

    // Group Selection Drawer
    selectKnowledgeGroups: "选择知识库分组",
    searchGroupsPlaceholder: "搜索分组...",
    done: "完成",
    all: "全部",
    noGroupsFound: "未找到相关分组",
    noGroups: "暂无分组",

    // Auto-refresh functionality
    autoRefresh: "自动刷新",
    refreshInterval: "刷新间隔",

    // NotebookDetailView
    errorRenderFlowchart: "无法渲染流程图",
    errorLoadData: "加载数据失败",
    confirmUnsupportedFile: "文件类型 .$1 可能不受支持，是否继续？",
    errorReadFile: "文件读取失败: $1",
    successUploadFile: "文件上传并关联成功",
    errorUploadFile: "上传失败: $1",
    errorProcessFile: "文件处理失败",
    errorTitleContentRequired: "标题和内容不能为空",
    successNoteUpdated: "笔记已更新",
    successNoteCreated: "笔记已创建",
    errorSaveFailed: "保存失败: $1",
    confirmDeleteNote: "确定要删除这条笔记吗？",
    successNoteDeleted: "笔记已删除",
    confirmRemoveFileFromGroup: "确定要将文件 \"$1\" 从此知识组移除吗？(文件仍保留在知识库中)",
    togglePreviewOpen: "开启预览",
    togglePreviewClose: "关闭预览",
    aiAssistant: "AI 智能助手",
    polishContent: "润色内容",
    expandContent: "扩写",
    summarizeContent: "精简摘要",
    translateToEnglish: "翻译成英文",
    fixGrammar: "修复语法",
    aiCommandInstructPolish: "请帮我润色这段文字，使其表达更地道、更专业。",
    aiCommandInstructExpand: "请帮我扩写这段文字，增加更多细节，使其更充实和详细。",
    aiCommandInstructSummarize: "请帮我精简这段文字，提取核心观点，生成简洁的摘要。",
    aiCommandInstructTranslateToEn: "请帮我将这段文字翻译成英文。",
    aiCommandInstructFixGrammar: "请检查并修复这段文字中的语法和拼写错误。",
    aiCommandsPreset: "常用指令",
    aiCommandsCustom: "自定义需求",
    aiCommandsCustomPlaceholder: "例如：把这段话改写得更正式一点...",
    aiCommandsReferenceContext: "参考上下文 (前200字):",
    aiCommandsStartGeneration: "开始生成",
    aiCommandsResult: "AI 建议",
    aiCommandsGenerating: "生成中...",
    aiCommandsApplyResult: "替换选区",
    aiCommandsGoBack: "返回修改",
    aiCommandsReset: "清空重置",
    aiCommandsModalPreset: "选择预设指令",
    aiCommandsModalCustom: "或输入自定义指令",
    aiCommandsModalCustomPlaceholder: "告诉 AI 你想做什么...",
    aiCommandsModalBasedOnSelection: "将基于以下选中文本处理:",
    aiCommandsModalResult: "生成结果",
    aiCommandsModalApply: "采用此结果",
    noteTitlePlaceholder: "笔记标题",
    noteContentPlaceholder: "开始写作 (支持 Markdown)...",
    markdownPreviewArea: "Markdown 预览区域",
    back: "返回",
    chatWithGroup: "基于此知识组进行对话",
    chatWithFile: "基于此文件进行对话",
    filesCountLabel: "文件 ($1)",
    notesCountLabel: "笔记 ($1)",
    indexIntoKB: "索引到知识库",
    noFilesOrNotes: "暂无$1",
    importFolder: "导入文件夹",

    // CreateNoteFromPDFDialog keys
    createPDFNote: "创建PDF笔记",
    screenshotPreview: "截图预览",
    associateKnowledgeGroup: "关联知识组",
    globalNoSpecificGroup: "全局 (无特定知识组)",
    title: "标题",
    enterNoteTitle: "输入笔记标题",
    contentOCR: "内容 (OCR提取的文本)",
    extractingText: "正在提取文本...",
    analyzingImage: "正在分析图片并提取文字...",
    noTextExtracted: "未提取到文本",
    saveNote: "保存笔记",

    // Additional keys used in CreateNoteFromPDFDialog
    page: "第",
    placeholderText: "OCR提取的文本将显示在这里，您可以编辑...",

    // CreateNotebookDialog keys
    createNewNotebook: "新建知识组",
    nameField: "名称",
    required: "*",
    exampleResearch: "例如：量子物理研究...",
    shortDescriptionField: "简短描述",
    describePurpose: "一句话描述这个知识组的用途",
    creationFailed: "创建失败，请重试",

    // PDFPreview keys
    preparingPDFConversion: "准备转换PDF...",
    pleaseWait: "请稍候，这可能需要几分钟时间",
    convertingPDF: "正在转换PDF...",
    pdfConversionFailed: "PDF转换失败",
    pdfConversionError: "无法转换此文件为PDF格式，请检查文件是否损坏或格式不支持",
    pdfLoadFailed: "PDF加载失败",
    pdfLoadError: "无法在浏览器中显示PDF，请尝试下载或在新窗口中打开",
    downloadingPDF: "下载PDF中...",
    loadingPDF: "加载PDF中...",
    zoomOut: "缩小",
    zoomIn: "放大",
    resetZoom: "重置缩放",
    selectPageNumber: "选择页码:",
    enterPageNumber: "输入想要选取的页码",
    exitSelectionMode: "退出选择模式",
    clickToSelectAndNote: "点击框选区域并记笔记",
    regeneratePDF: "重新生成 PDF",
    downloadPDF: "下载 PDF",
    openInNewWindow: "在新窗口中打开",
    exitFullscreen: "退出全屏",
    fullscreenDisplay: "全屏显示",
    pdfPreview: "PDF预览",
    converting: "转换中...",
    generatePDFPreview: "生成PDF预览",
    previewNotSupported: "该格式不支持预览",

    // Confirmation message
    confirmRegeneratePDF: "确定要重新生成 PDF 吗？这将覆盖当前的预览文件。",

    // PDFPreviewButton keys
    pdfPreviewReady: "PDF预览",
    convertingInProgress: "转换中...",
    conversionFailed: "转换失败",
    generatePDFPreviewButton: "生成PDF预览",

    // Error messages
    checkPDFStatusFailed: "Check PDF status failed",
    requestRegenerationFailed: "请求重新生成失败",
    downloadPDFFailed: "PDF 下载失败",
    openPDFInNewTabFailed: "在新标签页打开 PDF 失败",

    // uploadService Recommendations
    invalidFile: "无效的文件",
    incompleteFileInfo: "文件信息不完整，将使用快速模式",
    unsupportedFileFormat: "不支持的文件格式: .$1",
    willUseFastMode: "将使用快速模式 (仅文本提取)",
    formatNoPrecise: "格式 .$1 不支持精准模式",
    smallFileFastOk: "文件较小，快速模式即可满足需求",
    mixedContentPreciseRecommended: "文件包含图文混合内容，建议使用精准模式",
    willIncurApiCost: "会产生 API 费用",
    largeFilePreciseRecommended: "文件较大，精准模式可保留完整信息",
    longProcessingTime: "处理时间可能较长",
    highApiCost: "会产生较高 API 费用",
    considerFileSplitting: "建议考虑文件拆分",

    // Drag and drop upload
    dragDropUploadTitle: "拖拽文件到这里上传",
    dragDropUploadDesc: "或点击下方按钮选择文件",
    supportedFormats: "支持格式",
    browseFiles: "浏览文件",

    // IndexingModal
    recommendationMsg: "推荐使用$1模式: $2",
    autoAdjustChunk: "切片大小自动调整为上限 $1",
    autoAdjustOverlap: "重叠大小自动调整为上限 $1",
    autoAdjustOverlapMin: "重叠大小自动调整为最小值 $1",
    loadLimitsFailed: "无法加载模型限制，将使用默认配置",
    maxValueMsg: "最大值为 $1",
    overlapRatioLimit: "不能超过切片大小的50% ($1)",
    onlyAdminCanModify: "只有管理员可以修改系统设置",
    dragToSelect: "拖动鼠标选择范围 • 按 ESC 取消",

    // ImportFolderDrawer
    fillTargetName: "请填写目标知识组名称",
    submitFailed: "提交失败: $1",
    importFolderTitle: "导入本地文件夹",
    importFolderTip: "提示: 请选择一个本地文件夹。系统将读取并上传文件夹内所有支持的文档。",
    lblTargetGroup: "目标知识组名称",
    placeholderNewGroup: "新分组名称",
    importToCurrentGroup: "将导入到当前所在的分组",
    nextStep: "下一步",
    selectedFilesCount: "已选择 $1 个文件",
    clickToSelectFolder: "点击选择本地文件夹",
    selectFolderTip: "将读取文件夹内所有支持的文件",
    importComplete: "导入完成",
    importedFromLocalFolder: "从本地文件夹导入: $1",

    // History
    historyTitle: "对话历史",
    confirmDeleteHistory: "确定要删除这条对话历史吗？",
    deleteHistorySuccess: "对话历史删除成功",
    deleteHistoryFailed: "删除对话历史失败",
    yesterday: "昨天",
    daysAgo: "$1天前",
    historyMessages: "$1 条消息",
    noHistory: "暂无对话历史",
    noHistoryDesc: "开始一次对话来创建历史记录",
    loadMore: "加载更多",
    loadingHistoriesFailed: "加载搜索历史失败",
    generalSettingsSubtitle: "管理您的应用程序首选项。",
    userManagementSubtitle: "查看和管理系统用户信息。",
    modelManagementSubtitle: "配置全局 AI 模型。",
    kbSettingsSubtitle: "索引和聊天参数的技术配置。",
    tenantsSubtitle: "管理组织架构、成员及其权限。",

    allNotes: "所有笔记",
    filterNotesPlaceholder: "筛选笔记...",
    startWritingPlaceholder: "开始写作...",
    previewHeader: "预览",
    noContentToPreview: "没有可预览的内容",
    hidePreview: "隐藏预览",
    showPreview: "显示预览",
    directoryLabel: "目录",
    uncategorized: "未分类",
    enterNamePlaceholder: "输入名称...",
    subFolderPlaceholder: "子文件夹...",
    categoryCreated: "分类已创建",
    failedToCreateCategory: "创建分类失败",
    failedToDeleteCategory: "删除分类失败",
    confirmDeleteCategory: "您确定要删除此分类吗？",
    kbSettingsSaved: "检索与对话配置已保存",
    failedToSaveSettings: "保存设置失败",
    actionFailed: "操作失败",
    userAddedToOrganization: "用户已添加到组织",
    featureUpdated: "功能已更新",
    roleTenantAdmin: "租户管理员",
    roleRegularUser: "普通用户",
    creatingRegularUser: "正在创建普通用户",
    editUserRole: "修改用户角色",
    targetRole: "目标角色",
    editCategory: "编辑分类",
    totalTenants: "总租户数",
    systemUsers: "系统用户",
    systemHealth: "系统健康",
    operational: "运行正常",
    orgManagement: "组织管理",
    globalTenantControl: "全局租户控制",
    newTenant: "新租户",
    tenantName: "租户名称",
    domainOptional: "域名 (可选)",
    noOrganizations: "暂无组织",
    activeOrg: "当前组织",
    noCustomDomain: "未绑定自定义域名",
    orgSettings: "组织设置",
    deleteOrg: "删除组织",
    orgMembers: "组织成员",
    membersCount: "$1 个成员",
    noMembersAssigned: "未分配成员",
    addMembers: "添加成员",
    searchSystemUsers: "搜索系统用户...",
    editOrg: "编辑组织",
    parentOrg: "上级组织",
    noneRoot: "无 (根组织)",
    selectOrg: "选择一个组织",
    selectOrgDesc: "从左侧目录中选择一个组织以管理其成员、设置和管理权限。",
    totalSystemUsers: "系统用户总数",
    rootOrgs: "根组织",
    createSubOrg: "创建子组织",
    update: "更新",
    modelConfiguration: "模型配置",
    defaultLLMModel: "默认推理模型",
    selectLLM: "选择 LLM",
    selectEmbedding: "选择 Embedding",
    rerankModel: "Rerank 模型",
    none: "无",
    indexingChunkingConfig: "索引与切片配置",
    chatHyperparameters: "聊天超参数",
    temperature: "随机性 (Temperature)",
    precise: "精确",
    creative: "创意",
    maxResponseTokens: "最大响应标识 (Max Tokens)",
    retrievalSearchSettings: "检索与搜索设置",
    topK: "召回数量 (Top K)",
    similarityThreshold: "相似度阈值",
    enableHybridSearch: "启用混合检索",
    hybridSearchDesc: "同时使用向量和全文检索以提高召回率",
    hybridWeight: "混合权重 (0.0=全文, 1.0=向量)",
    pureText: "纯文本",
    pureVector: "纯向量",
    enableQueryExpansion: "启用查询扩展",
    queryExpansionDesc: "生成多个查询变体以提高覆盖率",
    enableHyDE: "启用 HyDE",
    hydeDesc: "生成假设回答以改善语义搜索",
    enableReranking: "启用重排序 (Rerank)",
    rerankingDesc: "使用 Rerank 模型对结果进行二次排序",
    broad: "宽泛",
    strict: "严格",
    maxInput: "最大输入",
    dimensions: "维度",
    defaultBadge: "默认",
    dims: "维度: $1",
    ctx: "上下文: $1",
    baseApi: "Base API: $1",
    configured: "已配置",
    groupUpdated: "分组已更新",
    groupDeleted: "分组已删除",
    groupCreated: "分组已创建",
    navCatalog: "目录",
    allDocuments: "所有文档",
    categories: "分类",
    uncategorizedFiles: "未分类文件",
    category: "分类",
    statusReadyDesc: "已索引可查询",
    statusIndexingDesc: "正在建立词向量索引",
    selectCategory: "选择分类",
    noneUncategorized: "无未分类文件",
    previous: "上一页",
    next: "下一页",
    createCategory: "创建分类",
    categoryDesc: "描述您的知识分类",
    categoryName: "分类名称",
    createCategoryBtn: "立即创建",
    newGroup: "新建分组",
    noKnowledgeGroups: "暂无知识库分组",
    createGroupDesc: "开始创建您的第一个知识库分组并上传相关文档。",
    noDescriptionProvided: "未提供描述",
    browseManageFiles: "浏览并管理该分组下的文件和笔记。",
    filterGroupFiles: "根据名称搜索分组内文件...",
    "2d": "2d",
    Authorization: "Authorization",
    a: "a",
    agentTitle: "智能体中心",
    agentDesc: "管理和运行您的 AI 助手，协助完成复杂任务。",
    createAgent: "创建智能体",
    searchAgent: "搜索智能体...",
    statusRunning: "运行中",
    statusStopped: "已停止",
    updatedAtPrefix: "最后更新于 ",
    btnChat: "开始对话",

    // Agent Mock Data
    agent1Name: "数据分析专家",
    agent1Desc: "精通 SQL 和数据可视化，能够从复杂数据中提取洞察。",
    agent2Name: "代码审查助手",
    agent2Desc: "自动检查代码质量，提供重构建议和性能优化方案。",
    agent3Name: "学术论文润色",
    agent3Desc: "专业的学术写作助手，帮助优化论文结构和语言表达。",
    agent4Name: "法律顾问",
    agent4Desc: "提供法律条文查询和基础法律建议，协助起草合同。",
    agent5Name: "市场研究员",
    agent5Desc: "分析行业趋势，生成竞争对手调研报告。",
    agent6Name: "系统运维专家",
    agent6Desc: "监控系统健康，自动处理常见告警和排障。",
    agent7Name: "财务审计师",
    agent7Desc: "自动化报表审计，识别财务风险和异常交易。",
    agent1Time: "2 小时前",
    agent2Time: "5 小时前",
    agent3Time: "昨天",
    agent4Time: "2 天前",
    agent5Time: "3 天前",
    agent6Time: "5 天前",
    agent7Time: "1 周前",

    // Plugins
    pluginTitle: "插件中心",
    pluginDesc: "扩展知识库的功能，集成外部工具和服务。",
    searchPlugin: "搜索插件...",
    installPlugin: "安装插件",
    installedPlugin: "已安装",
    updatePlugin: "有更新",
    pluginOfficial: "官方",
    pluginCommunity: "社区",
    pluginBy: "由 ",
    pluginConfig: "插件配置",

    // Plugin Mock Data
    plugin1Name: "Web 搜索",
    plugin1Desc: "赋予 AI 实时访问互联网的能力，获取最新信息。",
    plugin2Name: "PDF 文档解析",
    plugin2Desc: "深度解析复杂 PDF 布局，提取表格和数学公式。",
    plugin3Name: "GitHub 集成",
    plugin3Desc: "直接访问 GitHub 仓库，进行代码提交和 issue 管理。",
    plugin4Name: "Google 日历",
    plugin4Desc: "同步您的日程安排，自动创建会议提醒。",
    plugin5Name: "SQL 数据库连接",
    plugin5Desc: "安全地连接到您的数据库，执行自然语言查询。",
    plugin6Name: "Slack 通知",
    plugin6Desc: "将 AI 生成的报告直接发送到指定的 Slack 频道。",

    // Hierarchical categories new keys
    addSubcategory: "添加子分类",
    parentCategory: "父分类 (可选)",
    noParentTopLevel: "无父分类（顶级）",
    useHierarchyImport: "按文件夹层级创建分类",
    useHierarchyImportDesc: "启用后将为每个子文件夹创建对应的子分类，并将文件导入到匹配的分类中。",

    // Folder import drawer
    importImmediate: "立即导入",
    importScheduled: "定时导入",
    lblServerPath: "服务器文件夹路径",
    placeholderServerPath: "例如: /data/documents",
    scheduledImportTip: "服务器端定时导入：服务器将在指定时间读取该路径下的文件并自动导入。请确保服务器有访问该路径的权限。",
    lblScheduledTime: "执行时间",
    scheduledTimeHint: "到达指定时间后，服务器将自动执行导入任务。",
    scheduleImport: "创建定时任务",
    scheduleTaskCreated: "定时导入任务已创建",
    fillServerPath: "请输入服务器文件夹路径",
    invalidDateTime: "请输入有效的日期时间",

    // Import Tasks Drawer
    importTasksTitle: "导入任务",
    noTasksFound: "暂无任务",
    sourcePath: "源路径",
    targetGroup: "目标分组",
    scheduledAt: "计划执行时间",
    confirmDeleteTask: "确定要删除此导入任务记录吗？",
    deleteTaskFailed: "删除任务记录失败",
    noOrganization: "暂无组织",
  },
  en: {
    aiCommandsError: "An error occurred",
    appTitle: "Gemini Knowledge Base",
    loginTitle: "System Login",
    loginDesc: "Enter access key to enter the system",
    loginButton: "Enter System",
    loginError: "Key cannot be empty",
    unknown: "Unknown",
    unknownError: "Unknown Error",
    usernamePlaceholder: "Username",
    passwordPlaceholder: "Password",
    registerButton: "Register",
    confirm: "Confirm",
    cancel: "Cancel",
    confirmTitle: "Confirm Action",
    confirmDeleteGroup: "Are you sure you want to delete group \"$1\"?",

    systemConfiguration: "System Configuration",
    noFiles: "No Files",
    noFilesDesc: "Supports PDF, Office documents, text, code, images, etc.",
    addFile: "Add File",
    clearAll: "Clear Knowledge Base",
    uploading: "Processing",
    editNotebookTitle: "Edit Knowledge Group",
    noteCreatedSuccess: "Note created successfully",
    noteCreatedFailed: "Failed to create note",
    errorRenderFlowchart: "Unable to render flowchart",
    errorLoadData: "Failed to load data",
    confirmUnsupportedFile: "File type .$1 may not be supported, continue anyway?",
    errorReadFile: "File read failed: $1",
    successUploadFile: "File uploaded and associated successfully",
    errorUploadFile: "Upload failed: $1",
    fileAddedToGroup: "File added to group",
    failedToAddToGroup: "Failed to add to group",
    fileRemovedFromGroup: "File removed from group",
    failedToRemoveFromGroup: "Failed to remove from group",
    errorProcessFile: "File processing failed",
    errorTitleContentRequired: "Title and content cannot be empty",
    successNoteUpdated: "Note updated",
    successNoteCreated: "Note created",
    errorSaveFailed: "Save failed: $1",
    confirmDeleteNote: "Are you sure you want to delete this note?",
    successNoteDeleted: "Note deleted",
    confirmRemoveFileFromGroup: "Are you sure you want to remove file \"$1\" from this knowledge group? (File remains in knowledge base)",
    togglePreviewOpen: "Open Preview",
    togglePreviewClose: "Close Preview",
    noteTitlePlaceholder: "Note Title",
    noteContentPlaceholder: "Start writing (supports Markdown)...",
    markdownPreviewArea: "Markdown Preview Area",
    back: "Back",
    chatWithGroup: "Chat with this group",
    chatWithFile: "Chat with this file",
    filesCountLabel: "Files ($1)",
    notesCountLabel: "Notes ($1)",
    indexIntoKB: "Index into knowledge base",
    noFilesOrNotes: "No $1",

    sidebarTitle: "Index Chat Config",
    backToWorkspace: "Back to Workspace",
    goToAdmin: "Admin Dashboard",
    sidebarDesc: "Manage Docs & Settings",
    tabFiles: "Documents",
    files: "Files",
    notes: "Notes",
    tabSettings: "Settings",
    langZh: "Language: Chinese",
    langEn: "Language: English",
    langJa: "Language: Japanese",
    navGlobal: "Global",
    navTenants: "Tenants",
    navSystemModels: "System Models",
    navTenantManagement: "Tenant Management",
    defaultTenant: "Default Tenant",
    selectOrganization: "Select Organization",
    navUsersTeam: "Users & Teams",
    navTenantSettings: "Tenant Settings",
    adminConsole: "Admin Console",
    globalDashboard: "Global Dashboard",
    statusIndexing: "Indexing...",
    statusReady: "Indexed",

    // RAG Settings
    ragSettings: "RAG Settings",
    enableRerank: "Enable Rerank",
    enableRerankDesc: "Use a rerank model to re-rank retrieval results for better accuracy",
    selectRerankModel: "Please select Rerank model",
    selectModelPlaceholder: "Select a model...",

    headerModelSelection: "Model Selection",
    headerHyperparams: "Inference Params",
    headerIndexing: "Indexing & Chunking",
    headerRetrieval: "Retrieval & Ranking",
    btnManageModels: "Manage Providers",

    lblLLM: "Inference Model (LLM)",
    lblEmbedding: "Embedding Model",
    lblRerankRef: "Rerank Model",
    lblTemperature: "Temperature",
    lblMaxTokens: "Max Output Tokens",
    lblChunkSize: "Chunk Size (Tokens)",
    lblChunkOverlap: "Overlap",
    lblTopK: "Recall Count (Top K)",
    lblRerank: "Enable Rerank",

    idxModalTitle: "Indexing & Segmentation",
    idxDesc: "Configure chunking rules and embedding model before ingestion.",
    idxFiles: "Pending Files",
    idxMethod: "Segmentation",
    idxEmbeddingModel: "Embedding Model",
    idxStart: "Start Indexing",
    idxCancel: "Cancel",
    idxAuto: "Automatic",
    idxCustom: "Custom",

    mmTitle: "Model Provider Manager",
    mmAddBtn: "Add Model",
    mmEdit: "Edit",
    mmDelete: "Delete",
    mmEmpty: "No models configured",
    mmFormName: "Model Name (Display)",
    mmFormProvider: "Provider",
    mmFormModelId: "Model ID (e.g., gpt-4o)",
    mmFormBaseUrl: "API Base URL",
    mmFormType: "Function Type",
    mmFormVision: "Supports Vision",
    mmFormDimensions: "Vector Dimensions",
    mmFormDimensionsHelp: "Embedding vector dimensions, common values: 1536, 3072",
    mmSave: "Save Configuration",
    mmCancel: "Cancel",
    mmErrorNotAuthenticated: "Not authenticated, cannot operate",
    mmErrorTitle: "Operation Failed",
    modelEnabled: "Model Enabled",
    modelDisabled: "Model Disabled",
    confirmChangeEmbeddingModel: "WARNING: Changing the embedding model may make existing indices unsearchable.\nYou will not be able to search content indexed with the old model using the new model.\nAre you sure you want to change it?",
    embeddingModelWarning: "Changing this setting may require clearing and re-importing your knowledge base.",
    sourcePreview: "Source Preview",
    matchScore: "Match Score",
    copyContent: "Copy Content",
    copySuccess: "Copied successfully",

    // ConfigPanel missing translations
    selectLLMModel: "Please select LLM model",
    selectEmbeddingModel: "Please select Embedding model",
    defaultForUploads: "Default for new uploads & queries",
    noRerankModel: "No Rerank Model",
    vectorSimilarityThreshold: "Vector Similarity Threshold",
    rerankSimilarityThreshold: "Rerank Similarity Threshold",
    filterLowResults: "Results below this value will be filtered",
    fullTextSearch: "Full Text Search",
    hybridVectorWeight: "Hybrid Vector Weight",
    hybridVectorWeightDesc: "Weight: 1.0 = Pure Vector, 0.0 = Pure Keyword",
    lblQueryExpansion: "Query Expansion (Multi-Query)",
    lblHyDE: "HyDE (Hypothetical Doc)",
    lblQueryExpansionDesc: "Generate multiple query variations for better coverage",
    lblHyDEDesc: "Generate a hypothetical answer to improve semantic search",
    // Model Management
    apiKeyValidationFailed: "API Key validation failed",
    keepOriginalKey: "Leave empty to keep original API Key, input new value to replace",
    leaveEmptyNoChange: "Leave empty to keep unchanged",
    mmFormApiKey: "API Key",
    mmFormApiKeyPlaceholder: "Enter API Key",

    // More missing translations
    reconfigureFile: "Reconfigure File",
    modifySettings: "Modify file chunking and vectorization settings",
    filesCount: " Files",
    allFilesIndexed: "All files will be indexed with the settings below.",
    noEmbeddingModels: "No Embedding Models Configured",
    reconfigure: "Reconfigure",
    refresh: "Refresh",
    settings: "Settings",
    needLogin: "Login required to use chat function",
    citationSources: "Citation Sources",
    chunkNumber: "Chunk",
    getUserListFailed: "Failed to get user list",
    displayName: 'Display Name',
    displayNamePlaceholder: 'Enter full name or display name',
    globalUserNote: 'Note',
    roleManagedInOrg: 'User roles are primarily managed within organizations.',
    editUser: 'Edit User',
    edit: 'Edit',
    saveChanges: 'Save Changes',
    usernamePasswordRequired: 'Username and password cannot be empty',
    passwordMinLength: "Password must be at least 6 characters",
    userCreatedSuccess: "User created successfully",
    createUserFailed: "Failed to create user",
    userPromotedToAdmin: "User promoted to administrator",
    userDemotedFromAdmin: "User demoted from administrator",
    updateUserFailed: "Failed to update user",
    confirmDeleteUser: "Are you sure you want to delete this user?",
    confirmDeleteTenant: "Are you sure you want to delete this organization?",
    deleteUser: "Delete User",
    deleteUserFailed: "Failed to delete user",
    userDeletedSuccessfully: "User deleted successfully",
    makeUserAdmin: "Set as admin",
    makeUserRegular: "Set as regular user",
    loading: "Loading...",
    noUsers: "No users",

    // AI Assistant
    aiAssistant: "AI Assistant",
    polishContent: "Polish Content",
    expandContent: "Expand",
    summarizeContent: "Summarize",
    translateToEnglish: "Translate to English",
    fixGrammar: "Fix Grammar",
    aiCommandInstructPolish: "Please polish this text to make it more professional and idiomatic.",
    aiCommandInstructExpand: "Please expand this text with more details to make it more comprehensive.",
    aiCommandInstructSummarize: "Please summarize this text by extracting the core points into a concise summary.",
    aiCommandInstructTranslateToEn: "Please translate this text into English.",
    aiCommandInstructFixGrammar: "Please check and fix any grammar and spelling errors in this text.",
    aiCommandsPreset: "Common Commands",
    aiCommandsCustom: "Custom Request",
    aiCommandsCustomPlaceholder: "e.g., rewrite this text to be more formal...",
    aiCommandsReferenceContext: "Reference Context (first 200 chars):",
    aiCommandsStartGeneration: "Start Generation",
    aiCommandsResult: "AI Suggestions",
    aiCommandsGenerating: "Generating...",
    aiCommandsApplyResult: "Replace Selection",
    aiCommandsGoBack: "Go Back",
    aiCommandsReset: "Reset",
    aiCommandsModalPreset: "Select Preset Command",
    aiCommandsModalCustom: "Or Enter Custom Command",
    aiCommandsModalCustomPlaceholder: "Tell AI what you want to do...",
    aiCommandsModalBasedOnSelection: "Based on selected text:",
    aiCommandsModalResult: "Generated Result",
    aiCommandsModalApply: "Apply Result",

    // ChangePasswordModal and SearchResultsPanel missing translations
    fillAllFields: "Please fill in all fields",
    passwordMismatch: "New password and confirmation password do not match",
    newPasswordMinLength: "New password must be at least 6 characters",
    changePasswordFailed: "Failed to change password",
    changePasswordTitle: "Change Password",
    changing: "Changing...",
    searchResults: "Related Content Found",

    // VisionModelSelector missing translations
    visionModelSettings: "Vision Model Settings",
    defaultVisionModel: "Default Vision Model",
    loadVisionModelFailed: "Failed to load vision models",
    loadFailed: "Loading failed, please check network connection",
    saveVisionModelFailed: "Failed to save vision model",
    defaultSettingFailed: "Failed to save default settings",
    noVisionModels: "No vision models available",
    selectVisionModel: "Please select vision model",
    visionModelHelp: "Vision model for processing image files. If no models are available, please add one in model management and check the 'Supports Vision' option.",
    mmErrorNameRequired: "Model name is required.",
    mmErrorModelIdRequired: "Model ID is required.",
    mmErrorBaseUrlRequired: "Base URL is required for the selected provider.",
    mmRequiredAsterisk: "*",

    typeLLM: "Chat/Inference (LLM)",
    typeEmbedding: "Embedding",
    typeRerank: "Rerank",
    typeVision: "Vision",

    welcome: "Hello! Select a model in Settings, upload documents to index, and start asking questions.",
    placeholderWithFiles: "Ask about knowledge base...",
    placeholderEmpty: "Upload files to start...",
    analyzing: "Retrieving & Generating...",
    errorGeneric: "Error processing your request.",
    errorLabel: "Error",
    errorNoModel: "No inference model selected or config invalid.",
    aiDisclaimer: "AI can make mistakes. Verify important info.",
    confirmClear: "Delete all files and indices?",
    confirmDeleteModel: "Are you sure you want to delete this model?",
    removeFile: "Remove file",
    apiError: "Missing config or invalid API Key.",
    geminiError: "API Request Failed.",
    processedButNoText: "Could not generate text response.",
    unitByte: "Bytes",
    readingFailed: "Failed to read file",

    copy: "Copy",
    copied: "Copied",

    // User Management
    logout: "Logout",
    changePassword: "Change Password",
    userManagement: "User Management",
    userList: "User List",
    addUser: "Add User",
    userInfo: "User Info",
    username: "Username",
    password: "Password",
    confirmPassword: "Confirm Password",
    currentPassword: "Current Password",
    newPassword: "New Password",
    createUser: "Create User",
    admin: "Admin",
    user: "User",
    adminUser: "Set as Administrator",
    confirmChange: "Confirm Change",
    changeUserPassword: "Change User Password",
    enterNewPassword: "Please enter new password",
    createdAt: "Created At",
    newChat: "New Chat",
    exportUsers: "Export Users",
    importUsers: "Import Users",
    importSuccess: "Import completed: Success $1, Failed $2",
    importFailed: "Failed to import users",
    exportFailed: "Failed to export users",

    // Group Selection Drawer
    selectKnowledgeGroups: "Select Knowledge Groups",
    searchGroupsPlaceholder: "Search groups...",
    done: "Done",
    all: "All",
    noGroupsFound: "No groups found",
    noGroups: "No groups",

    // Auto-refresh functionality
    autoRefresh: "Auto Refresh",
    refreshInterval: "Refresh Interval",

    // Knowledge Base View
    kbManagement: "Knowledge Base Management",
    kbManagementDesc: "Manage your documents and knowledge groups",
    searchPlaceholder: "Search filename...",
    allGroups: "All Groups",
    allStatus: "All Status",
    statusReadyFragment: "Ready",
    statusFailedFragment: "Failed",
    statusIndexingFragment: "Indexing",
    uploadFile: "Upload File",
    fileName: "Filename",
    size: "Size",
    status: "Status",
    groups: "Groups",
    actions: "Actions",
    groupsActions: "Groups / Actions",
    noFilesFound: "No files found",
    showingRange: "Showing $1 to $2 of $3",
    confirmDeleteFile: "Are you sure you want to delete this file?",
    fileDeleted: "File deleted",
    deleteFailed: "Delete failed",
    confirmClearKB: "WARNING: This will permanently delete all files and indices.\n\nAre you sure you want to clear the knowledge base?",
    kbCleared: "Knowledge base cleared",
    clearFailed: "Clear failed",
    loginRequired: "Please login first",
    uploadErrors: "The following files could not be uploaded",
    uploadWarning: "$1 files ready to upload, $2 files filtered",
    uploadFailed: "Upload failed",
    preview: "Preview",
    addGroup: "Add Group",
    delete: "Delete",
    retry: "Retry",
    retrying: "Retrying...",
    retrySuccess: "Retry successful",
    retryFailed: "Retry failed",
    chunkInfo: "Chunk Information",
    totalChunks: "Total Chunks",
    chunkIndex: "Chunk",
    contentLength: "characters",
    position: "Position",

    // Indexing Modal
    reconfigureTitle: "Reconfigure File",
    reconfigureDesc: "Modify file processing settings",
    indexingConfigTitle: "Document Indexing Config",
    indexingConfigDesc: "Configure document processing options and mode",
    pendingFiles: "Pending Files",
    processingMode: "Processing Mode",
    analyzingFile: "Analyzing...",
    recommendationReason: "Reason",
    fastMode: "Fast Mode",
    fastModeDesc: "Simple text extraction, fast speed, no extra cost, suitable for pure text",
    preciseMode: "Precise Mode",
    preciseModeDesc: "Precise layout analysis, keeps tables/images, requires API cost",
    fastModeFeatures: "Fast Mode Features:",
    fastFeature1: "Simple text extraction",
    fastFeature2: "Fast processing speed",
    fastFeature3: "No extra cost",
    fastFeature4: "Process text only",
    fastFeature5: "Suitable for plain text",
    preciseModeFeatures: "Precise Mode Features:",
    preciseFeature1: "Precise structure recognition",
    preciseFeature2: "Recognize images/tables/charts",
    preciseFeature3: "Preserve mixed content",
    preciseFeature4: "Preserve layout information",
    preciseFeature5: "Requires API cost",
    preciseFeature6: "Longer processing time",
    embeddingModel: "Embedding Model",
    pleaseSelect: "Please select...",
    pleaseSelectKnowledgeGroupFirst: "Please select a knowledge group first before saving",
    selectUnassignGroupWarning: "If you want to unassign the knowledge group, please confirm this action",
    chunkConfig: "Chunk Config",
    chunkSize: "Chunk Size (Tokens)",
    min: "Min",
    max: "Max",
    chunkOverlap: "Overlap (Tokens)",
    modelLimitsInfo: "Model Limits Info",
    model: "Model",
    maxChunkSize: "Max Chunk",
    maxOverlapSize: "Max Overlap",
    maxBatchSize: "Max Batch",
    envLimitWeaker: "Environment limit is stricter",
    optimizationTips: "Optimization Tips",
    tipChunkTooLarge: "Large chunk size may affect retrieval accuracy",
    tipOverlapSmall: "Recommended overlap at least $1 tokens",
    tipMaxValues: "Using max values may result in slower processing",
    tipPreciseCost: "Precise mode incurs API costs, please check budget",
    selectEmbeddingFirst: "Please select embedding model first",
    confirmPreciseCost: "Precise mode will incur API costs. Continue?",
    startProcessing: "Start Processing",

    // Notebooks View
    notebooks: "Knowledge Groups",
    notebooksDesc: "Manage your research projects and knowledge collections",
    createNotebook: "New Knowledge Group",
    chatWithNotebook: "Chat with this group",
    editNotebook: "Edit Group",
    deleteNotebook: "Delete Group (including files)",
    noDescription: "No description",
    hasIntro: "Contains intro",
    noIntro: "No intro",
    noNotebooks: "No knowledge groups yet, click top right to create",
    createFailed: "Creation failed",
    confirmDeleteNotebook: "Are you sure you want to delete knowledge group \"$1\"?\n\nNote: This will also permanently delete all files and their indexing data in this knowledge group!",

    // Missing keys for new views
    errorFileTooLarge: "File too large (exceeds 20MB)",
    noFilesYet: "No files yet",

    // Create/Edit Notebook Drawer
    createNotebookTitle: "New Knowledge Group",
    createFailedRetry: "Create failed, please try again",
    updateFailedRetry: "Update failed, please try again",
    name: "Name",
    nameHelp: "A clear name helps you find it quickly.",
    namePlaceholder: "E.g. Quantum Physics Research...",
    shortDescription: "Short Description",
    descPlaceholder: "One sentence describing the purpose of this group",
    detailedIntro: "Detailed Intro",
    introPlaceholder: "Every paragraph here may be included in the context of Q&A. Please describe the core topics, background knowledge, or goals of this group in as much detail as possible.",
    introHelp: "This intro can be used as extra context for conversations.",
    creating: "Creating...",
    createNow: "Create Now",
    saving: "Saving...",
    save: "Save",

    // Chat
    chatTitle: "Knowledge Base Chat",
    chatDesc: "Smart conversation with your knowledge base",
    viewHistory: "View Chat History",
    saveSettingsFailed: "Failed to save settings",
    loginToUpload: "Please login to upload",
    fileSizeLimitExceeded: "$1 ($2 - exceeds $3MB limit)",
    unsupportedFileType: "$1 - Unsupported file type ($2)",
    readFailed: "$1 - Read failed",
    loadHistoryFailed: "Failed to load chat history",
    loadingUserData: "Loading user data...",
    errorMessage: "Error: $1",
    welcomeMessage: "Hello! I am your AI Knowledge Base Assistant. Please select a knowledge group to start chatting.",
    selectKnowledgeGroup: "Select Knowledge Group",
    allKnowledgeGroups: "All Knowledge Groups",
    unknownGroup: "Unknown Group",
    selectedGroupsCount: "$1 groups selected",

    // Settings
    generalSettings: "General Settings",
    modelManagement: "Model Management",
    languageSettings: "Language Settings",
    passwordChangeSuccess: "Password changed successfully",
    passwordChangeFailed: "Failed to change password",
    create: "Create",
    validationFailedMsg: "validationFailedMsg",

    // Sidebar
    navChat: "Chat",
    navCoach: "Coach",
    navKnowledge: "Knowledge Base",
    navKnowledgeGroups: "Knowledge Groups",
    navNotebook: "Notebook",
    navAgent: "Agents",
    navPlugin: "Plugins",
    notebookDesc: "Capture your personal thoughts and research notes.",
    newNote: "New Note",
    editNote: "Edit Note",
    noNotesFound: "No Notes Found",
    startByCreatingNote: "Start by creating your first personal note.",
    navCrawler: "Crawler",
    expandMenu: "Expand Menu",
    switchLanguage: "Switch Language",

    importFolder: "Import Folder",

    // CreateNoteFromPDFDialog keys
    createPDFNote: "Create PDF Note",
    screenshotPreview: "Screenshot Preview",
    associateKnowledgeGroup: "Associate Knowledge Group",
    globalNoSpecificGroup: "Global (No Specific Group)",
    title: "Title",
    enterNoteTitle: "Enter note title",
    contentOCR: "Content (OCR Extracted Text)",
    extractingText: "Extracting text...",
    analyzingImage: "Analyzing image and extracting text...",
    noTextExtracted: "No text extracted",
    saveNote: "Save Note",

    // Additional keys used in CreateNoteFromPDFDialog
    page: "Page",
    placeholderText: "OCR extracted text will be displayed here, you can edit...",

    // CreateNotebookDialog keys
    createNewNotebook: "New Knowledge Group",
    nameField: "Name",
    required: "*",
    exampleResearch: "e.g., Quantum Physics Research...",
    shortDescriptionField: "Short Description",
    describePurpose: "Describe the purpose of this group in one sentence",
    detailedIntroField: "Detailed Intro",
    provideBackgroundInfo: "Provide detailed background, goals, or context information...",
    creationFailed: "Creation failed, please try again",

    // PDFPreview keys
    preparingPDFConversion: "Preparing PDF conversion...",
    pleaseWait: "Please wait, this may take a few minutes",
    convertingPDF: "Converting PDF...",
    pdfConversionFailed: "PDF conversion failed",
    pdfConversionError: "Unable to convert this file to PDF format, please check if the file is corrupted or format is unsupported",
    pdfLoadFailed: "PDF loading failed",
    pdfLoadError: "Cannot display PDF in browser, please try downloading or opening in a new window",
    downloadingPDF: "Downloading PDF...",
    loadingPDF: "Loading PDF...",
    zoomOut: "Zoom Out",
    zoomIn: "Zoom In",
    resetZoom: "Reset Zoom",
    selectPageNumber: "Select page number:",
    enterPageNumber: "Enter the page number you want to select",
    exitSelectionMode: "Exit selection mode",
    clickToSelectAndNote: "Click to select area and take notes",
    regeneratePDF: "Regenerate PDF",
    downloadPDF: "Download PDF",
    openInNewWindow: "Open in new window",
    exitFullscreen: "Exit fullscreen",
    fullscreenDisplay: "Fullscreen display",
    pdfPreview: "PDF Preview",
    converting: "Converting...",
    generatePDFPreview: "Generate PDF preview",
    previewNotSupported: "Preview not supported for this format",

    // Confirmation message
    confirmRegeneratePDF: "Are you sure you want to regenerate the PDF? This will overwrite the current preview file.",

    // PDFPreviewButton keys
    pdfPreviewReady: "PDF Preview",
    convertingInProgress: "Converting...",
    conversionFailed: "Conversion failed",
    generatePDFPreviewButton: "Generate PDF preview",

    // Error messages
    checkPDFStatusFailed: "Check PDF status failed",
    requestRegenerationFailed: "Request regeneration failed",
    downloadPDFFailed: "PDF download failed",
    openPDFInNewTabFailed: "Failed to open PDF in new tab",

    // uploadService Recommendations
    invalidFile: "Invalid file",
    incompleteFileInfo: "Incomplete file info, will use Fast Mode",
    unsupportedFileFormat: "Unsupported file format: .$1",
    willUseFastMode: "Will use Fast Mode (text extraction only)",
    formatNoPrecise: "Format .$1 does not support Precise Mode",
    smallFileFastOk: "Small file, Fast Mode is sufficient",
    mixedContentPreciseRecommended: "Contains mixed content, Precise Mode recommended",
    willIncurApiCost: "Incurs API costs",
    largeFilePreciseRecommended: "Large file, Precise Mode recommended for layout",
    longProcessingTime: "Processing time may be longer",
    highApiCost: "Higher API costs will apply",
    considerFileSplitting: "Consider splitting the file",

    // Drag and drop upload
    dragDropUploadTitle: "Drag and Drop Files to Upload",
    dragDropUploadDesc: "Or click the button below to select files",
    supportedFormats: "Supported Formats",
    browseFiles: "Browse Files",

    // Indexing Modal
    recommendationMsg: "Recommend $1 Mode: $2",
    autoAdjustChunk: "Chunk size auto-adjusted to maximum $1",
    autoAdjustOverlap: "Overlap size auto-adjusted to maximum $1",
    autoAdjustOverlapMin: "Overlap size auto-adjusted to minimum $1",
    loadLimitsFailed: "Failed to load model limits, using default configuration",
    maxValueMsg: "Max value is $1",
    overlapRatioLimit: "Cannot exceed 50% of chunk size ($1)",
    onlyAdminCanModify: "Only administrators can modify system settings",
    dragToSelect: "Drag mouse to select area • Press ESC to cancel",

    // ImportFolderDrawer
    fillTargetName: "Please fill in the target knowledge group name",
    submitFailed: "Submission failed: $1",
    importFolderTitle: "Import Local Folder",
    importFolderTip: "Tip: Select a local folder. The system will read and upload all supported documents in the folder.",
    lblTargetGroup: "Target Knowledge Group Name",
    placeholderNewGroup: "New group name",
    importToCurrentGroup: "Will be imported into the current group",
    nextStep: "Next",
    lblImportSource: "Import Source",
    serverPath: "Server Path",
    localFolder: "Local Folder",
    selectedFilesCount: "$1 files selected",
    clickToSelectFolder: "Click to select local folder",
    selectFolderTip: "Will read all supported files in the folder",
    importComplete: "Import complete",
    importedFromLocalFolder: "Imported from local folder: $1",

    // History
    historyTitle: "Chat History",
    confirmDeleteHistory: "Are you sure you want to delete this chat history?",
    deleteHistorySuccess: "Chat history deleted successfully",
    deleteHistoryFailed: "Failed to delete chat history",
    yesterday: "Yesterday",
    daysAgo: "$1 days ago",
    historyMessages: "$1 messages",
    noHistory: "No chat history",
    noHistoryDesc: "Start a conversation to create history",
    loadMore: "Load More",
    loadingHistoriesFailed: "Failed to load search history",
    supportedFormatsInfo: "Supports documents, images and code formats",
    generalSettingsSubtitle: "Manage your application preferences.",
    userManagementSubtitle: "View and manage system user information.",
    modelManagementSubtitle: "Configure global AI models.",
    kbSettingsSubtitle: "Technical configuration for indexing and chat parameters.",
    tenantsSubtitle: "Manage organization structure and members.",

    allNotes: "All Notes",
    filterNotesPlaceholder: "Filter notes...",
    startWritingPlaceholder: "Start writing...",
    previewHeader: "Preview",
    noContentToPreview: "No content to preview",
    hidePreview: "Hide Preview",
    showPreview: "Show Preview",
    directoryLabel: "Directory",
    uncategorized: "Uncategorized",
    enterNamePlaceholder: "Enter name...",
    subFolderPlaceholder: "Sub-folder...",
    categoryCreated: "Category created",
    failedToCreateCategory: "Failed to create category",
    failedToDeleteCategory: "Failed to delete category",
    confirmDeleteCategory: "Are you sure you want to delete this category?",
    groupUpdated: "Group updated",
    groupDeleted: "Group deleted",
    actionFailed: "Action failed",
    kbSettingsSaved: "Knowledge base settings saved",
    failedToSaveSettings: "Failed to save settings",
    userAddedToOrganization: "User added to organization",
    featureUpdated: "Feature updated",
    roleTenantAdmin: "Tenant Administrator",
    roleRegularUser: "Regular User",
    creatingRegularUser: "Creating regular user",
    editUserRole: "Edit user role",
    targetRole: "Target Role",
    editCategory: "Edit category",
    totalTenants: "Total Tenants",
    systemUsers: "System Users",
    systemHealth: "System Health",
    operational: "Operational",
    orgManagement: "Organization Management",
    globalTenantControl: "Global Tenant Control",
    newTenant: "New Tenant",
    tenantName: "Tenant Name",
    domainOptional: "Domain (Optional)",
    noOrganizations: "No Organizations",
    activeOrg: "Active Org",
    noCustomDomain: "No custom domain linked",
    orgSettings: "Organization Settings",
    deleteOrg: "Delete Organization",
    orgMembers: "Organization Members",
    membersCount: "$1 Members",
    noMembersAssigned: "No members assigned",
    addMembers: "Add Members",
    searchSystemUsers: "Search system users...",
    editOrg: "Edit Organization",
    parentOrg: "Parent Organization",
    noneRoot: "None (Root)",
    selectOrg: "Select an Organization",
    selectOrgDesc: "Choose an organization from the left directory to manage its members, settings, and administrative access.",
    totalSystemUsers: "Total System Users",
    rootOrgs: "Root Organizations",
    createSubOrg: "Create Sub-organization",
    update: "Update",
    modelConfiguration: "Model Configuration",
    defaultLLMModel: "Default LLM Model",
    selectLLM: "Select LLM",
    selectEmbedding: "Select Embedding",
    rerankModel: "Rerank Model",
    none: "None",
    indexingChunkingConfig: "Indexing & Chunking Config",
    chatHyperparameters: "Chat Hyperparameters",
    temperature: "Temperature",
    precise: "Precise",
    creative: "Creative",
    maxResponseTokens: "Max Response Tokens",
    retrievalSearchSettings: "Retrieval & Search Settings",
    topK: "Top K",
    similarityThreshold: "Similarity Threshold",
    enableHybridSearch: "Enable Hybrid Search",
    hybridSearchDesc: "Use both vector and full-text search to improve recall",
    hybridWeight: "Hybrid Weight (0.0=Fulltext, 1.0=Vector)",
    pureText: "Pure Text",
    pureVector: "Pure Vector",
    enableQueryExpansion: "Enable Query Expansion",
    queryExpansionDesc: "Generate multiple query variations for better coverage",
    enableHyDE: "Enable HyDE",
    hydeDesc: "Generate hypothetical answers to improve semantic search",
    enableReranking: "Enable Reranking",
    rerankingDesc: "Use Rerank model to re-sort results",
    broad: "Broad",
    strict: "Strict",
    maxInput: "Max Input",
    dimensions: "Dimensions",
    defaultBadge: "Default",
    dims: "Dims: $1",
    ctx: "Ctx: $1",
    baseApi: "Base API: $1",
    configured: "Configured",
    groupCreated: "Group created",
    navCatalog: "Catalog",
    allDocuments: "All Documents",
    categories: "Categories",
    uncategorizedFiles: "Uncategorized Files",
    category: "Category",
    statusReadyDesc: "Indexed and searchable",
    statusIndexingDesc: "Building vector index",
    selectCategory: "Select Category",
    noneUncategorized: "No uncategorized files",
    previous: "Previous",
    next: "Next",
    createCategory: "Create Category",
    categoryDesc: "Describe your knowledge category",
    categoryName: "Category Name",
    createCategoryBtn: "Create Now",
    newGroup: "New Group",
    noKnowledgeGroups: "No knowledge groups yet",
    createGroupDesc: "Start by creating your first knowledge group and uploading documents.",
    noDescriptionProvided: "No description provided",
    browseManageFiles: "Browse and manage files and notes in this group.",
    filterGroupFiles: "Search files in group by name...",
    "2d": "2d",
    Authorization: "Authorization",
    a: "a",
    agentTitle: "Agent Center",
    agentDesc: "Manage and run your AI assistants to help with complex tasks.",
    createAgent: "Create Agent",
    searchAgent: "Search agents...",
    statusRunning: "Running",
    statusStopped: "Stopped",
    updatedAtPrefix: "Last updated at ",
    btnChat: "Start Chat",

    // Agent Mock Data
    agent1Name: "Data Analyst Pro",
    agent1Desc: "Expert in SQL and data visualization, capable of extracting insights from complex data.",
    agent2Name: "Code Review Assistant",
    agent2Desc: "Automatically checks code quality, provides refactoring suggestions and performance optimizations.",
    agent3Name: "Academic Paper Polisher",
    agent3Desc: "Professional academic writing assistant to help optimize paper structure and language.",
    agent4Name: "Legal Consultant",
    agent4Desc: "Provides legal article search and basic legal advice, assists in drafting contracts.",
    agent5Name: "Market Researcher",
    agent5Desc: "Analyze industry trends and generate competitor research reports.",
    agent6Name: "SRE Expert",
    agent6Desc: "Monitor system health, automatically handle common alerts and troubleshooting.",
    agent7Name: "Financial Auditor",
    agent7Desc: "Automate report auditing and identify financial risks and abnormal transactions.",
    agent1Time: "2 hours ago",
    agent2Time: "5 hours ago",
    agent3Time: "Yesterday",
    agent4Time: "2 days ago",
    agent5Time: "3 days ago",
    agent6Time: "5 days ago",
    agent7Time: "1 week ago",

    // Plugins
    pluginTitle: "Plugin Store",
    pluginDesc: "Extend the functionality of your knowledge base with external tools and services.",
    searchPlugin: "Search plugins...",
    installPlugin: "Install",
    installedPlugin: "Installed",
    updatePlugin: "Update Available",
    pluginOfficial: "OFFICIAL",
    pluginCommunity: "COMMUNITY",
    pluginBy: "By ",
    pluginConfig: "Configuration",

    // Plugin Mock Data
    plugin1Name: "Web Search",
    plugin1Desc: "Gives AI real-time access to the internet for the latest information.",
    plugin2Name: "PDF Document Parser",
    plugin2Desc: "Deeply parse complex PDF layouts, extracting tables and mathematical formulas.",
    plugin3Name: "GitHub Integration",
    plugin3Desc: "Directly access GitHub repositories for code commits and issue management.",
    plugin4Name: "Google Calendar",
    plugin4Desc: "Sync your schedule and automatically create meeting reminders.",
    plugin5Name: "SQL Database Connector",
    plugin5Desc: "Securely connect to your databases and perform natural language queries.",
    plugin6Name: "Slack Notifier",
    plugin6Desc: "Send AI-generated reports directly to specified Slack channels.",

    personalNotebook: "Personal Notebook",
    success: "Success",
    warning: "Warning",
    "x-api-key": "API Key",
    "x-tenant-id": "Tenant ID",
    "x-user-language": "User Language",

    // Hierarchical categories new keys
    addSubcategory: "Add Subcategory",
    parentCategory: "Parent Category (optional)",
    noParentTopLevel: "None (top-level)",
    useHierarchyImport: "Create categories by folder hierarchy",
    useHierarchyImportDesc: "When enabled, a sub-category will be created for each sub-folder and files imported into matching categories.",

    // Folder import drawer
    importImmediate: "Import Now",
    importScheduled: "Scheduled Import",
    lblServerPath: "Server Folder Path",
    placeholderServerPath: "e.g. /data/documents",
    scheduledImportTip: "Server-side scheduled import: the server will read files from the given path at the specified time and import them automatically. Ensure the server has access to the path.",
    lblScheduledTime: "Execution Time",
    scheduledTimeHint: "The server will automatically run the import task at the specified time.",
    scheduleImport: "Create Scheduled Task",
    scheduleTaskCreated: "Scheduled import task created",
    fillServerPath: "Please enter the server folder path",
    invalidDateTime: "Please enter a valid date and time",

    // Import Tasks Drawer
    importTasksTitle: "Import Tasks",
    noTasksFound: "No tasks found",
    sourcePath: "Source Path",
    targetGroup: "Target Group",
    scheduledAt: "Scheduled At",
    confirmDeleteTask: "Are you sure you want to delete this import task record?",
    deleteTaskFailed: "Failed to delete task record",
    noOrganization: "No Organization",
  },
  ja: {
    aiCommandsError: "エラーが発生しました",
    appTitle: "Gemini ナレッジベース",
    loginTitle: "ログイン",
    loginDesc: "システムに入るためのキーを入力してください",
    loginButton: "ログイン",
    loginError: "キーは必須です",
    unknown: "不明",
    unknownError: "未知のエラー",
    usernamePlaceholder: "ユーザー名",
    passwordPlaceholder: "パスワード",
    registerButton: "登録",
    langZh: "言語: 中国語",
    langEn: "言語: 英語",
    langJa: "言語: 日本語",
    confirm: "確認",
    cancel: "キャンセル",
    confirmTitle: "操作の確認",
    confirmDeleteGroup: "グループ \"$1\" を削除してもよろしいですか？",

    sidebarTitle: "索引とチャットの設定",
    backToWorkspace: "ワークスペースに戻る",
    goToAdmin: "管理画面へ",
    sidebarDesc: "ドキュメントとモデル管理",
    tabFiles: "ドキュメント",
    files: "ファイル",
    notes: "メモ",
    tabSettings: "設定",
    systemConfiguration: "システム構成",
    noFiles: "ファイルなし",
    noFilesDesc: "PDF、Office文書、テキスト、コード、画像などをサポート",
    addFile: "ファイル追加",
    clearAll: "全削除",
    uploading: "処理中",
    statusIndexing: "ベクトル化中...",
    statusReady: "完了",

    // RAG Settings
    ragSettings: "RAG 設定",
    enableRerank: "リランクを有効にする",
    enableRerankDesc: "リランクモデルを使用して検索結果を再ランク付けし、精度を向上させます",
    selectRerankModel: "リランクモデルを選択してください",
    selectModelPlaceholder: "モデルを選択...",

    headerModelSelection: "モデル選択",
    headerHyperparams: "推論パラメータ",
    headerIndexing: "インデックスと分割",
    headerRetrieval: "検索とランク付け",
    btnManageModels: "プロバイダー管理",

    lblLLM: "推論モデル (LLM)",
    lblEmbedding: "埋め込みモデル",
    lblRerankRef: "リランクモデル",
    lblTemperature: "温度 (Temperature)",
    lblMaxTokens: "最大トークン数",
    lblChunkSize: "チャンクサイズ",
    lblChunkOverlap: "オーバーラップ",
    lblTopK: "検索数 (Top K)",
    lblRerank: "リランク有効化",

    idxModalTitle: "インデックス設定",
    idxDesc: "取り込みの前に分割ルールと埋め込みモデルを設定してください。",
    idxFiles: "対象ファイル",
    idxMethod: "分割設定",
    idxEmbeddingModel: "埋め込みモデル",
    idxStart: "インデックス開始",
    idxCancel: "キャンセル",
    idxAuto: "自動",
    idxCustom: "カスタム",

    mmTitle: "モデルプロバイダー管理",
    mmAddBtn: "モデル追加",
    mmEdit: "編集",
    mmDelete: "削除",
    mmEmpty: "設定されたモデルはありません",
    mmFormName: "表示名",
    mmFormProvider: "プロバイダー",
    mmFormModelId: "モデルID (例: gpt-4o)",
    mmFormBaseUrl: "API Base URL",
    mmFormType: "機能タイプ",
    mmFormVision: "画像認識対応",
    mmFormDimensions: "ベクトル次元",
    mmFormDimensionsHelp: "埋め込みベクトルの次元数、一般的な値：1536、3072",
    mmSave: "保存",
    mmCancel: "キャンセル",
    mmErrorNotAuthenticated: "認証されていません、操作できません",
    mmErrorTitle: "操作失敗",
    modelEnabled: "モデル有効",
    modelDisabled: "モデル無効",
    confirmChangeEmbeddingModel: "警告：埋め込みモデルを変更すると、既存のインデックスが検索できなくなる可能性があります。\n変更してよろしいですか？",
    embeddingModelWarning: "この設定を変更すると、ナレッジベースのクリアと再インポートが必要になる場合があります。",
    sourcePreview: "引用元プレビュー",
    matchScore: "一致度",
    copyContent: "内容をコピー",
    copySuccess: "コピーしました",

    // ConfigPanel 缺失の翻訳
    selectLLMModel: "LLMモデルを選択してください",
    selectEmbeddingModel: "Embeddingモデルを選択してください",
    defaultForUploads: "新しいアップロードとクエリのデフォルト",
    noRerankModel: "リランクモデルなし",
    vectorSimilarityThreshold: "ベクトル検索しきい値",
    rerankSimilarityThreshold: "リランクしきい値",
    filterLowResults: "この値を下回る結果はフィルタリングされます",
    noteCreatedSuccess: "ノートを作成しました",
    noteCreatedFailed: "ノートの作成に失敗しました",
    fullTextSearch: "全文検索",
    hybridVectorWeight: "ハイブリッド検索ベクトル重み",
    hybridVectorWeightDesc: "重み: 1.0 = ベクトルのみ, 0.0 = キーワードのみ",
    lblQueryExpansion: "クエリ拡張 (Multi-Query)",
    lblHyDE: "HyDE (仮想ドキュメント埋め込み)",
    lblQueryExpansionDesc: "検索カバレッジ向上のために複数のクエリを生成",
    lblHyDEDesc: "セマンティック検索改善のために仮想回答を生成",
    // Model Management
    apiKeyValidationFailed: "API Key検証に失敗しました",
    keepOriginalKey: "空のままにすると元のAPI Keyを保持、新しい値を入力すると置換",
    leaveEmptyNoChange: "空のままで変更なし",
    mmFormApiKey: "API Key",
    mmFormApiKeyPlaceholder: "API Key を入力してください",

    // さらに缺失している翻訳
    reconfigureFile: "ファイルの再設定",
    modifySettings: "ファイルの分割とベクトル化設定を変更",
    filesCount: "ファイル",
    allFilesIndexed: "以下の設定ですべてのファイルがインデックス化されます。",
    noEmbeddingModels: "埋め込みモデルが設定されていません",
    reconfigure: "再設定",
    refresh: "更新",
    settings: "設定",
    needLogin: "チャット機能を使用するにはログインが必要です",
    citationSources: "引用元",
    chunkNumber: "フラグメント",
    getUserListFailed: "ユーザー一覧の取得に失敗しました",
    displayName: '表示名',
    displayNamePlaceholder: '氏名または表示名を入力',
    globalUserNote: '注意',
    roleManagedInOrg: 'ユーザーの役割（ロール）は、所属する組織内で管理されます。',
    editUser: 'ユーザー編集',
    edit: '編集',
    saveChanges: '変更を保存',
    usernamePasswordRequired: 'ユーザー名とパスワードは必須です',
    passwordMinLength: "パスワードは6文字以上で入力してください",
    userCreatedSuccess: "ユーザーが作成されました",
    createUserFailed: "ユーザー作成に失敗しました",
    userPromotedToAdmin: "ユーザーを管理者に昇格しました",
    userDemotedFromAdmin: "ユーザーを一般ユーザーに降格しました",
    updateUserFailed: "ユーザー情報の更新に失敗しました",
    confirmDeleteUser: "このユーザーを削除してもよろしいですか？",
    confirmDeleteTenant: "この組織を削除してもよろしいですか？",
    deleteUser: "ユーザー削除",
    deleteUserFailed: "ユーザーの削除に失敗しました",
    userDeletedSuccessfully: "ユーザーを削除しました",
    makeUserAdmin: "管理者にする",
    makeUserRegular: "一般ユーザーにする",
    loading: "読み込み中...",
    noUsers: "ユーザーなし",

    // AI Assistant
    aiAssistant: "AI アシスタント",
    polishContent: "内容を洗練",
    expandContent: "展開",
    summarizeContent: "要約",
    translateToEnglish: "英語に翻訳",
    fixGrammar: "文法修正",
    aiCommandInstructPolish: "このテキストをよりプロフェッショナルで自然な表現に推敲してください。",
    aiCommandInstructExpand: "このテキストに詳細を追加して内容を充実させ、詳しく書き広げてください。",
    aiCommandInstructSummarize: "このテキストの要点を抽出し、簡潔な要約を作成してください。",
    aiCommandInstructTranslateToEn: "このテキストを英語に翻訳してください。",
    aiCommandInstructFixGrammar: "このテキストの文法やスペルの誤りをチェックし、修正してください。",
    aiCommandsPreset: "よく使うコマンド",
    aiCommandsCustom: "カスタムリクエスト",
    aiCommandsCustomPlaceholder: "例：この文章をより正式なものに書き直してください...",
    aiCommandsReferenceContext: "参照コンテキスト (最初の200文字):",
    aiCommandsStartGeneration: "生成開始",
    aiCommandsResult: "AIの提案",
    aiCommandsGenerating: "生成中...",
    aiCommandsApplyResult: "選択範囲を置換",
    aiCommandsGoBack: "戻る",
    aiCommandsReset: "リセット",
    aiCommandsModalPreset: "プリセットコマンドを選択",
    aiCommandsModalCustom: "またはカスタムコマンドを入力",
    aiCommandsModalCustomPlaceholder: "AIに何をしたいか伝えてください...",
    aiCommandsModalBasedOnSelection: "選択したテキストに基づいて:",
    aiCommandsModalResult: "生成結果",
    aiCommandsModalApply: "結果を適用",

    // ChangePasswordModal と SearchResultsPanel の缺失翻訳
    fillAllFields: "すべてのフィールドを入力してください",
    passwordMismatch: "新しいパスワードと確認パスワードが一致しません",
    newPasswordMinLength: "新しいパスワードは6文字以上で入力してください",
    changePasswordFailed: "パスワードの変更に失敗しました",
    changePasswordTitle: "パスワード変更",
    changing: "変更中...",
    searchResults: "関連コンテンツが見つかりました",

    // VisionModelSelector の缺失翻訳
    visionModelSettings: "ビジョンモデル設定",
    defaultVisionModel: "デフォルトビジョンモデル",
    loadVisionModelFailed: "ビジョンモデルの読み込みに失敗しました",
    loadFailed: "読み込みに失敗しました、ネットワーク接続を確認してください",
    saveVisionModelFailed: "ビジョンモデルの保存に失敗しました",
    defaultSettingFailed: "デフォルト設定の保存に失敗しました",
    noVisionModels: "利用可能なビジョンモデルがありません",
    selectVisionModel: "ビジョンモデルを選択してください",
    visionModelHelp: "画像ファイルを処理するためのビジョンモデル。利用可能なモデルがない場合は、モデル管理で追加し、「ビジョン対応」オプションをチェックしてください。",
    mmErrorNameRequired: "モデル名は必須要素です",
    mmErrorModelIdRequired: "モデルIDは必須です。",
    mmErrorBaseUrlRequired: "選択されたプロバイダーにはBase URLが必要です。",
    mmRequiredAsterisk: "*",

    typeLLM: "推論 (LLM)",
    typeEmbedding: "ベクトル化 (Embedding)",
    typeRerank: "リランク (Rerank)",
    typeVision: "画像認識 (Vision)",

    welcome: "こんにちは！設定でモデルを選択し、ドキュメントをアップロードして質問を開始してください。",
    placeholderWithFiles: "ナレッジベースについて質問...",
    placeholderEmpty: "開始するにはファイルをアップロード...",
    analyzing: "検索して生成中...",
    errorGeneric: "エラーが発生しました。",
    errorLabel: "エラー",
    errorNoModel: "モデルが選択されていないか、設定が無効です。",
    aiDisclaimer: "AIは間違いを犯す可能性があります。",
    confirmClear: "すべてのファイルを削除しますか？",
    confirmDeleteModel: "このモデルを削除してもよろしいですか？",
    removeFile: "ファイルを削除",
    apiError: "設定が不足しているか、APIキーが有効ではありません。",
    geminiError: "APIリクエストに失敗しました。",
    processedButNoText: "応答を生成できませんでした。",
    unitByte: "バイト",
    readingFailed: "読み込み失敗",

    copy: "コピー",
    copied: "コピーしました",

    // User Management
    logout: "ログアウト",
    changePassword: "パスワード変更",
    userManagement: "ユーザー管理",
    userList: "ユーザー一覧",
    userInfo: "ユーザー情報",
    username: "ユーザー名",
    password: "パスワード",
    confirmPassword: "パスワード確認",
    currentPassword: "現在のパスワード",
    newPassword: "新しいパスワード",
    createUser: "ユーザー作成",
    admin: "管理者",
    user: "ユーザー",
    adminUser: "管理者として設定",
    confirmChange: "変更を確定",
    changeUserPassword: "ユーザーのパスワードを変更",
    enterNewPassword: "新しいパスワードを入力してください",
    createdAt: "作成日時",
    newChat: "新しい会話",

    // Knowledge Base View
    kbManagement: "ナレッジベース管理",
    kbManagementDesc: "ドキュメントとナレッジグループの管理",
    searchPlaceholder: "ファイル名を検索...",
    allGroups: "すべてのグループ",
    allStatus: "すべてのステータス",
    statusReadyFragment: "完了",
    statusFailedFragment: "失敗",
    statusIndexingFragment: "インデックス中",
    uploadFile: "ファイルをアップロード",
    fileName: "ファイル名",
    size: "サイズ",
    status: "ステータス",
    groups: "グループ",
    actions: "アクション",
    groupsActions: "グループ / アクション",
    noFilesFound: "ファイルが見つかりません",
    showingRange: "$3 件中 $1 - $2 を表示",
    confirmDeleteFile: "このファイルを削除してもよろしいですか？",
    fileDeleted: "ファイルを削除しました",
    deleteFailed: "削除に失敗しました",
    fileAddedToGroup: "ファイルがグループに追加されました",
    failedToAddToGroup: "グループへの追加に失敗しました",
    fileRemovedFromGroup: "ファイルがグループから削除されました",
    failedToRemoveFromGroup: "グループからの削除に失敗しました",
    confirmClearKB: "警告：これによりすべてのファイルとインデックスが完全に削除されます。\n\n本当にナレッジベースをクリアしますか？",
    kbCleared: "ナレッジベースをクリアしました",
    clearFailed: "クリアに失敗しました",
    loginRequired: "先にログインしてください",
    uploadErrors: "以下のファイルはアップロードできませんでした",
    uploadWarning: "$1 つのファイルがアップロード準備完了、$2 つがフィルタリングされました",
    uploadFailed: "アップロードに失敗しました",
    preview: "プレビュー",
    addGroup: "グループ追加",
    delete: "削除",
    retry: "再試行",
    retrying: "再試行中...",
    retrySuccess: "再試行成功",
    retryFailed: "再試行失敗",
    chunkInfo: "チャンク情報",
    totalChunks: "総チャンク数",
    chunkIndex: "チャンク",
    contentLength: "文字",
    position: "位置",

    // Indexing Modal
    reconfigureTitle: "ファイルの再設定",
    reconfigureDesc: "ファイル処理設定を変更",
    indexingConfigTitle: "ドキュメントインデックス設定",
    indexingConfigDesc: "ドキュメント処理オプションとモードを設定",
    pendingFiles: "待機中のファイル",
    processingMode: "処理モード",
    analyzingFile: "分析中...",
    recommendationReason: "理由",
    fastMode: "高速モード",
    fastModeDesc: "単純なテキスト抽出、高速、追加コストなし、純粋なテキストに適しています",
    preciseMode: "精密モード",
    preciseModeDesc: "精密なレイアウト分析、表/画像を保持、APIコストがかかります",
    fastModeFeatures: "高速モードの特徴:",
    fastFeature1: "単純なテキスト抽出",
    fastFeature2: "高速な処理速度",
    fastFeature3: "追加コストなし",
    fastFeature4: "テキストのみ処理",
    fastFeature5: "プレーンテキストに適しています",
    preciseModeFeatures: "精密モードの特徴:",
    preciseFeature1: "精密な構造認識",
    preciseFeature2: "画像/表/チャートを認識",
    preciseFeature3: "混合コンテンツを保持",
    preciseFeature4: "レイアウト情報を保持",
    preciseFeature5: "APIコストが必要",
    preciseFeature6: "処理時間が長くなります",
    embeddingModel: "埋め込みモデル",
    pleaseSelect: "選択してください...",
    pleaseSelectKnowledgeGroupFirst: "保存する前に知識グループを選択してください",
    selectUnassignGroupWarning: "ナレッジグループの割り当てを解除する場合は、この操作を確認してください",
    chunkConfig: "チャンク設定",
    chunkSize: "チャンクサイズ (トークン)",
    min: "最小",
    max: "最大",
    chunkOverlap: "オーバーラップ (トークン)",
    modelLimitsInfo: "モデル制限情報",
    model: "モデル",
    maxChunkSize: "最大チャンク",
    maxOverlapSize: "最大オーバーラップ",
    maxBatchSize: "最大バッチ",
    envLimitWeaker: "環境制限の方が厳しいです",
    optimizationTips: "最適化のヒント",
    tipChunkTooLarge: "チャンクサイズが大きいと検索精度に影響する可能性があります",
    tipOverlapSmall: "オーバーラップは少なくとも $1 トークンを推奨します",
    tipMaxValues: "最大値を使用すると処理が遅くなる可能性があります",
    tipPreciseCost: "精密モードはAPIコストが発生します。予算を確認してください",
    selectEmbeddingFirst: "先に埋め込みモデルを選択してください",
    confirmPreciseCost: "精密モードはAPIコストが発生します。続けますか？",
    startProcessing: "処理開始",

    // Notebooks View
    notebooks: "ナレッジグループ",
    notebooksDesc: "研究プロジェクトやナレッジコレクションを管理",
    createNotebook: "新しいナレッジグループ",
    chatWithNotebook: "このグループとチャット",
    editNotebook: "グループを編集",
    deleteNotebook: "グループを削除 (ファイルを含む)",
    noDescription: "説明なし",
    hasIntro: "紹介あり",
    noIntro: "紹介なし",
    noNotebooks: "ナレッジグループはまだありません。右上の作成ボタンをクリックしてください",
    createFailed: "作成に失敗しました",
    confirmDeleteNotebook: "知識グループ \"$1\" を削除してもよろしいですか？\n\n注意：これにより、この知識グループ内のすべてのファイルとそのインデックスデータも完全に削除されます！",

    // Missing keys for new views
    errorFileTooLarge: "ファイルサイズが大きすぎます (20MB以下)",
    noFilesYet: "ファイルがありません",

    // Create/Edit Notebook Drawer
    createNotebookTitle: "新しいナレッジグループ",
    editNotebookTitle: "ナレッジグループを編集",
    createFailedRetry: "作成に失敗しました。再試行してください",
    updateFailedRetry: "更新に失敗しました。再試行してください",
    name: "名前",
    nameHelp: "明確な名前を付けると見つけやすくなります。",
    namePlaceholder: "例: 量子物理学研究...",
    shortDescription: "短い説明",
    descPlaceholder: "このグループの目的を一文で説明",
    detailedIntro: "詳細な紹介",
    introPlaceholder: "ここの段落は、Q&Aのコンテキストに含まれる可能性があります。このグループの主要なトピック、背景知識、または目標をできるだけ詳しく説明してください。",
    introHelp: "この紹介は、会話の追加コンテキストとして使用されます。",
    creating: "作成中...",
    createNow: "今すぐ作成",
    saving: "保存中...",
    save: "保存",

    // Chat
    chatTitle: "ナレッジベースチャット",
    chatDesc: "ナレッジベースとのスマートな会話",
    viewHistory: "チャット履歴を表示",
    saveSettingsFailed: "設定の保存に失敗しました",
    loginToUpload: "アップロードするにはログインしてください",
    fileSizeLimitExceeded: "$1 ($2 - $3MB の制限を超えています)",
    unsupportedFileType: "$1 - サポートされていないファイルタイプ ($2)",
    readFailed: "$1 - 読み込みに失敗しました",
    loadHistoryFailed: "履歴の読み込みに失敗しました",
    loadingUserData: "ユーザーデータを読み込み中...",
    errorMessage: "エラー: $1",
    welcomeMessage: "こんにちは！私はあなたのAIナレッジベースアシスタントです。チャットを開始するにはナレッジグループを選択してください。",
    selectKnowledgeGroup: "ナレッジグループを選択",
    allKnowledgeGroups: "すべてのナレッジグループ",
    unknownGroup: "不明なグループ",
    selectedGroupsCount: "$1 グループ選択済み",

    // Settings
    generalSettings: "一般設定",
    modelManagement: "モデル管理",
    languageSettings: "言語設定",
    passwordChangeSuccess: "パスワードを変更しました",
    passwordChangeFailed: "パスワードの変更に失敗しました",
    create: "作成",
    validationFailedMsg: "validationFailedMsg",

    // Sidebar
    exportUsers: "ユーザーをエクスポート",
    importUsers: "ユーザーをインポート",
    importSuccess: "インポート完了: 成功 $1, 失敗 $2",
    importFailed: "ユーザーのインポートに失敗しました",
    exportFailed: "ユーザーのエクスポートに失敗しました",
    navCoach: "コーチ",
    navKnowledge: "ナレッジベース",
    navKnowledgeGroups: "ナレッジグループ",
    navNotebook: "ノートブック",
    navAgent: "エージェント",
    navPlugin: "プラグイン",
    navCrawler: "リソース取得",
    expandMenu: "メニューを展開",
    switchLanguage: "言語を切り替える",

    // Group Selection Drawer
    selectKnowledgeGroups: "ナレッジグループを選択",
    searchGroupsPlaceholder: "グループを検索...",
    done: "完了",
    all: "すべて",
    noGroupsFound: "関連するグループが見つかりません",
    noGroups: "グループなし",

    // Auto-refresh functionality
    autoRefresh: "自動更新",
    refreshInterval: "更新間隔",

    // NotebookDetailView
    errorRenderFlowchart: "フローチャートを生成できません",
    errorLoadData: "データの読み込みに失敗しました",
    confirmUnsupportedFile: "拡張子 .$1 はサポートされていない可能性があります。続行しますか？",
    errorReadFile: "ファイルの読み込みに失敗しました: $1",
    successUploadFile: "ファイルのアップロードと関連付けに成功しました",
    errorUploadFile: "アップロードに失敗しました: $1",
    errorProcessFile: "ファイルの処理に失敗しました",
    errorTitleContentRequired: "タイトルと内容は必須です",
    successNoteUpdated: "メモを更新しました",
    successNoteCreated: "メモを作成しました",
    errorSaveFailed: "保存に失敗しました: $1",
    confirmDeleteNote: "このメモを削除してもよろしいですか？",
    successNoteDeleted: "メモを削除しました",
    confirmRemoveFileFromGroup: "ファイル「$1」をこのグループから削除しますか？（ナレッジベースには残ります）",
    editNote: "メモを編集",
    newNote: "新規メモ",
    togglePreviewOpen: "プレビューを表示",
    togglePreviewClose: "プレビューを閉じる",
    noteTitlePlaceholder: "メモのタイトル",
    noteContentPlaceholder: "書き始める (Markdown 対応)...",
    markdownPreviewArea: "Markdown プレビューエリア",
    back: "戻る",
    chatWithGroup: "このグループとチャット",
    chatWithFile: "このファイルとチャット",
    filesCountLabel: "ファイル ($1)",
    notesCountLabel: "メモ ($1)",
    indexIntoKB: "インデックスに登録",
    noFilesOrNotes: "$1がありません",
    importFolder: "フォルダをインポート",

    // CreateNoteFromPDFDialog keys
    createPDFNote: "PDFノートを作成",
    screenshotPreview: "スクリーンショットプレビュー",
    associateKnowledgeGroup: "ナレッジグループに関連付ける",
    globalNoSpecificGroup: "全体 (特定のグループなし)",
    title: "タイトル",
    enterNoteTitle: "ノートのタイトルを入力",
    contentOCR: "内容 (OCR抽出されたテキスト)",
    extractingText: "テキストを抽出中...",
    analyzingImage: "画像を分析してテキストを抽出中...",
    noTextExtracted: "テキストが抽出されませんでした",
    saveNote: "ノートを保存",

    // Additional keys used in CreateNoteFromPDFDialog
    page: "ページ",
    placeholderText: "OCR抽出されたテキストがここに表示されます。編集できます...",

    // CreateNotebookDialog keys
    createNewNotebook: "新しいナレッジグループ",
    nameField: "名前",
    required: "*",
    exampleResearch: "例: 量子物理学研究...",
    shortDescriptionField: "簡単な説明",
    describePurpose: "このグループの目的を一文で説明してください",
    detailedIntroField: "詳細な紹介",
    provideBackgroundInfo: "詳細な背景、目標、またはコンテキスト情報を提供してください...",
    creationFailed: "作成に失敗しました。もう一度お試しください",

    // PDFPreview keys
    preparingPDFConversion: "PDF変換を準備中...",
    pleaseWait: "しばらくお待ちください。これには数分かかる場合があります",
    convertingPDF: "PDFを変換中...",
    pdfConversionFailed: "PDF変換に失敗しました",
    pdfConversionError: "このファイルをPDF形式に変換できません。ファイルが破損していないか、サポートされていない形式でないか確認してください",
    pdfLoadFailed: "PDF読み込みに失敗しました",
    pdfLoadError: "ブラウザでPDFを表示できません。ダウンロードするか、新しいウィンドウで開いてみてください",
    downloadingPDF: "PDFをダウンロード中...",
    loadingPDF: "PDFを読み込み中...",
    zoomOut: "ズームアウト",
    zoomIn: "ズームイン",
    resetZoom: "ズームをリセット",
    selectPageNumber: "ページ番号を選択:",
    enterPageNumber: "選択したいページ番号を入力してください",
    exitSelectionMode: "選択モードを終了",
    clickToSelectAndNote: "クリックして領域を選択し、メモを取る",
    regeneratePDF: "PDFを再生成",
    downloadPDF: "PDFをダウンロード",
    openInNewWindow: "新しいウィンドウで開く",
    exitFullscreen: "全画面表示を終了",
    fullscreenDisplay: "全画面表示",
    pdfPreview: "PDFプレビュー",
    converting: "変換中...",
    generatePDFPreview: "PDFプレビューを生成",
    previewNotSupported: "この形式はプレビューをサポートしていません",

    // Confirmation message
    confirmRegeneratePDF: "PDFを再生成してもよろしいですか？これにより現在のプレビューファイルが上書きされます。",

    // PDFPreviewButton keys
    pdfPreviewReady: "PDFプレビュー",
    convertingInProgress: "変換中...",
    conversionFailed: "変換失敗",
    generatePDFPreviewButton: "PDFプレビューを生成",

    // Error messages
    checkPDFStatusFailed: "PDFステータスの確認に失敗しました",
    requestRegenerationFailed: "再生成要求に失敗しました",
    downloadPDFFailed: "PDFのダウンロードに失敗しました",
    openPDFInNewTabFailed: "新しいウィンドウでのPDFオープンに失敗しました",

    // uploadService Recommendations
    invalidFile: "無効なファイル",
    incompleteFileInfo: "ファイル情報が不完全です。高速モードを使用します",
    unsupportedFileFormat: "サポートされていない形式: .$1",
    willUseFastMode: "高速モード（テキスト抽出のみ）を使用します",
    formatNoPrecise: "形式 .$1 は精密モードをサポートしていません",
    smallFileFastOk: "ファイルサイズが小さいため、高速モードで十分です",
    mixedContentPreciseRecommended: "図表などが含まれるため、精密モードを推奨します",
    willIncurApiCost: "APIコストが発生します",
    largeFilePreciseRecommended: "大きなファイルです。構造保持のため精密モードを推奨します",
    longProcessingTime: "処理に時間がかかる可能性があります",
    highApiCost: "高いAPIコストが発生します",
    considerFileSplitting: "ファイルの分割を検討してください",

    // Drag and drop upload
    dragDropUploadTitle: "アップロードするファイルをドラッグ＆ドロップ",
    dragDropUploadDesc: "または下のボタンをクリックしてファイルを選択",
    supportedFormats: "対応フォーマット",
    browseFiles: "ファイルを参照",

    // IndexingModal
    recommendationMsg: "$1モードを推奨します: $2",
    autoAdjustChunk: "チャンクサイズを上限の $1 に調整しました",
    autoAdjustOverlap: "重なりサイズを上限の $1 に調整しました",
    autoAdjustOverlapMin: "重なりサイズを最小値の $1 に調整しました",
    loadLimitsFailed: "モデル制限の読み込みに失敗しました。デフォルト設定を使用します",
    maxValueMsg: "最大値は $1 です",
    overlapRatioLimit: "切片サイズの50% ($1) を超えることはできません",
    onlyAdminCanModify: "システム設定は管理者のみ変更可能です",
    dragToSelect: "マウスをドラッグして範囲を選択 • ESCでキャンセル",

    // ImportFolderDrawer
    fillTargetName: "対象のナレッジグループ名を入力してください",
    submitFailed: "送信に失敗しました: $1",
    importFolderTitle: "ローカルフォルダをインポート",
    importFolderTip: "ヒント: ローカルフォルダを選択してください。フォルダ内のすべてのサポートされているドキュメントが読み込まれ、アップロードされます。",
    lblTargetGroup: "対象のナレッジグループ名",
    placeholderNewGroup: "新規グループ名",
    importToCurrentGroup: "現在のグループにインポートされます",
    nextStep: "次へ",
    lblImportSource: "インポート元",
    serverPath: "サーバーのパス",
    localFolder: "ローカルフォルダ",
    selectedFilesCount: "$1 個のファイルが選択されました",
    clickToSelectFolder: "クリックしてローカルフォルダを選択",
    selectFolderTip: "フォルダ内のすべてのサポートされているファイルを読み込みます",
    importComplete: "インポート完了",
    importedFromLocalFolder: "ローカルフォルダからインポート: $1",

    // History
    historyTitle: "会話履歴",
    confirmDeleteHistory: "この会話履歴を削除してもよろしいですか？",
    deleteHistorySuccess: "会話履歴を削除しました",
    deleteHistoryFailed: "会話履歴の削除に失敗しました",
    yesterday: "昨日",
    daysAgo: "$1日前",
    historyMessages: "$1 件のメッセージ",
    noHistory: "会話履歴はありません",
    noHistoryDesc: "会話を開始して履歴を作成してください",
    loadMore: "もっと読み込む",
    loadingHistoriesFailed: "履歴の読み込みに失敗しました",
    supportedFormatsInfo: "ドキュメント、画像、ソースコードをサポート",
    kbSettingsSaved: "設定を保存しました",
    failedToSaveSettings: "設定の保存に失敗しました",
    actionFailed: "操作に失敗しました",
    userAddedToOrganization: "ユーザーが組織に追加されました",
    featureUpdated: "機能が更新されました",
    roleTenantAdmin: "テナント管理者",
    roleRegularUser: "一般ユーザー",
    creatingRegularUser: "一般ユーザーを作成中",
    editUserRole: "ユーザーロールを編集",
    targetRole: "対象のロール",
    editCategory: "カテゴリを編集",
    totalTenants: "総テナント数",
    systemUsers: "システムユーザー",
    systemHealth: "システムヘルス",
    operational: "正常稼働中",
    orgManagement: "組織管理",
    globalTenantControl: "グローバルテナントコントロール",
    newTenant: "新規テナント",
    tenantName: "テナント名",
    domainOptional: "ドメイン (オプション)",
    noOrganizations: "組織がありません",
    activeOrg: "現在の組織",
    noCustomDomain: "カスタムドメインがリンクされていません",
    orgSettings: "組織設定",
    deleteOrg: "組織を削除",
    orgMembers: "組織メンバー",
    membersCount: "$1 メンバー",
    noMembersAssigned: "メンバーが割り当てられていません",
    addMembers: "メンバーを追加",
    searchSystemUsers: "システムユーザーを検索...",
    editOrg: "組織を編集",
    parentOrg: "親組織",
    noneRoot: "なし (ルート)",
    selectOrg: "組織を選択してください",
    selectOrgDesc: "左側のディレクトリから組織を選択して、そのメンバー、設定、および管理アクセスを管理します。",
    totalSystemUsers: "システムユーザーの総数",
    rootOrgs: "ルート組織",
    createSubOrg: "サブ組織を作成",
    update: "更新",
    modelConfiguration: "モデル設定",
    defaultLLMModel: "デフォルト推論モデル",
    selectLLM: "LLMを選択",
    selectEmbedding: "埋め込みを選択",
    rerankModel: "リランクモデル",
    none: "なし",
    indexingChunkingConfig: "インデックスとチャンク設定",
    chatHyperparameters: "チャットハイパーパラメータ",
    temperature: "温度",
    precise: "精密",
    creative: "クリエイティブ",
    maxResponseTokens: "最大応答トークン数",
    retrievalSearchSettings: "検索設定",
    topK: "Top K",
    similarityThreshold: "類似度しきい値",
    enableHybridSearch: "ハイブリッド検索を有効にする",
    hybridSearchDesc: "ベクトル検索と全文検索を併用して検索精度を向上させます",
    hybridWeight: "ハイブリッド重み (0.0=全文, 1.0=ベクトル)",
    pureText: "純粋なテキスト",
    pureVector: "純粋なベクトル",
    enableQueryExpansion: "クエリ拡張を有効にする",
    queryExpansionDesc: "複数のクエリバリアントを生成してカバレッジを向上させます",
    enableHyDE: "HyDEを有効にする",
    hydeDesc: "仮想的な回答を生成してセマンティック検索を改善します",
    enableReranking: "リランクを有効にする",
    rerankingDesc: "リランクモデルを使用して結果を再ソートします",
    broad: "広範",
    strict: "厳格",
    maxInput: "最大入力",
    dimensions: "次元",
    defaultBadge: "デフォルト",
    dims: "次元: $1",
    ctx: "コンテキスト: $1",
    baseApi: "Base API: $1",
    configured: "設定済み",
    groupUpdated: "グループが更新されました",
    groupDeleted: "グループが削除されました",
    groupCreated: "グループが作成されました",
    navCatalog: "カタログ",
    allDocuments: "すべてのドキュメント",
    categories: "カテゴリ",
    uncategorizedFiles: "未分類ファイル",
    category: "カテゴリ",
    statusReadyDesc: "インデックス済みで検索可能",
    statusIndexingDesc: "ベクトルインデックスを作成中",
    selectCategory: "カテゴリを選択",
    noneUncategorized: "未分類ファイルなし",
    previous: "前へ",
    next: "次へ",
    createCategory: "カテゴリを作成",
    categoryDesc: "ナレッジカテゴリを説明します",
    categoryName: "カテゴリ名",
    createCategoryBtn: "今すぐ作成",
    newGroup: "新規グループ",
    noKnowledgeGroups: "ナレッジグループがまだありません",
    createGroupDesc: "最初のナレッジグループを作成してドキュメントをアップロードしてください。",
    noDescriptionProvided: "説明なし",
    browseManageFiles: "このグループ内のファイルとメモを閲覧・管理します。",
    filterGroupFiles: "名前でグループ内のファイルを検索...",
    generalSettingsSubtitle: "アプリケーションの設定を管理します。",
    userManagementSubtitle: "システムユーザー情報の表示と管理。",
    modelManagementSubtitle: "グローバルなAIモデルを設定します。",
    kbSettingsSubtitle: "インデックス作成とチャットパラメータの技術設定。",
    tenantsSubtitle: "組織構造、メンバー、およびその権限の管理。",
    allNotes: "すべてのノート",
    filterNotesPlaceholder: "ノートをフィルタリング...",
    startWritingPlaceholder: "書き始める...",
    previewHeader: "プレビュー",
    noContentToPreview: "プレビューするコンテンツがありません",
    hidePreview: "プレビューを非表示",
    showPreview: "プレビューを表示",
    directoryLabel: "ディレクトリ",
    uncategorized: "未分類",
    enterNamePlaceholder: "名前を入力...",
    subFolderPlaceholder: "サブフォルダ...",
    categoryCreated: "カテゴリが作成されました",
    failedToCreateCategory: "カテゴリの作成に失敗しました",
    failedToDeleteCategory: "カテゴリの削除に失敗しました",
    confirmDeleteCategory: "このカテゴリを削除してもよろしいですか？",
    "2d": "2d",
    Authorization: "Authorization",
    a: "a",
    agentTitle: "エージェントセンター",
    agentDesc: "複雑なタスクを支援する AI アシスタントを管理および実行します。",
    createAgent: "エージェント作成",
    searchAgent: "エージェントを検索...",
    statusRunning: "実行中",
    statusStopped: "停止中",
    updatedAtPrefix: "最終更新日: ",
    btnChat: "会話を開始",

    // Agent Mock Data
    agent1Name: "データ分析エキスパート",
    agent1Desc: "SQL とデータ視覚化に精通し、複雑なデータから洞察を抽出できます。",
    agent2Name: "コードレビュー助手",
    agent2Desc: "コードの品質を自動的にチェックし、リファクタリングの提案やパフォーマンス最適化案を提供します。",
    agent3Name: "学術論文校閲",
    agent3Desc: "専門的な学術ライティングアシスタント。論文の構成と表現の最適化を支援します。",
    agent4Name: "法律顧問",
    agent4Desc: "法律条文の検索や基本的な法的アドバイスを提供し、契約書の作成を支援します。",
    agent5Name: "市場調査員",
    agent5Desc: "業界のトレンドを分析し、競合他社の調査レポートを生成します。",
    agent6Name: "システム運用保守エキスパート",
    agent6Desc: "システムの健康状態を監視し、一般的なアラートへの対応やトラブルシューティングを自動化します。",
    agent7Name: "財務監査人",
    agent7Desc: "レポート監査を自動化し、財務リスクや異常な取引を特定します。",
    agent1Time: "2 時間前",
    agent2Time: "5 時間前",
    agent3Time: "昨日",
    agent4Time: "2 日前",
    agent5Time: "3 日前",
    agent6Time: "5 日前",
    agent7Time: "1 週間前",

    // Plugins
    pluginTitle: "プラグインストア",
    pluginDesc: "外部ツールやサービスを統合して、ナレッジベースの機能を拡張します。",
    searchPlugin: "プラグインを検索...",
    installPlugin: "インストール",
    installedPlugin: "インストール済み",
    updatePlugin: "アップデートあり",
    pluginOfficial: "公式",
    pluginCommunity: "コミュニティ",
    pluginBy: "開発者: ",
    pluginConfig: "設定",

    // Plugin Mock Data
    plugin1Name: "Web 検索",
    plugin1Desc: "最新情報を取得するために、AI にインターネットへのリアルタイムアクセスを提供します。",
    plugin2Name: "PDF ドキュメント解析",
    plugin2Desc: "複雑な PDF レイアウトを詳細に解析し、表や数式を抽出します。",
    plugin3Name: "GitHub 連携",
    plugin3Desc: "GitHub リポジトリに直接アクセスし、コードのコミットやイシュー管理を行います。",
    plugin4Name: "Google カレンダー",
    plugin4Desc: "スケジュールを同期し、会議のリマインダーを自動的に作成します。",
    plugin5Name: "SQL データベース接続",
    plugin5Desc: "データベースに安全に接続し、自然語言でクエリを実行します。",
    plugin6Name: "Slack 通知",
    plugin6Desc: "AI が生成したレポートを指定された Slack チャンネルに直接送信します。",

    navTenants: "テナント管理",
    noNotesFound: "ノートが見つかりません",
    notebookDesc: "ノートブックは知識の整理と要約に役立ちます。",
    personalNotebook: "個人用ノートブック",
    warning: "警告",
    "x-api-key": "APIキー",
    "x-tenant-id": "テナントID",
    "x-user-language": "ユーザー言語",

    // Hierarchical categories new keys
    addSubcategory: "サブカテゴリを追加",
    parentCategory: "親カテゴリ（任意）",
    noParentTopLevel: "なし（トップレベル）",
    useHierarchyImport: "フォルダ階層でカテゴリを作成",
    useHierarchyImportDesc: "有効にすると、各サブフォルダにサブカテゴリが作成され、ファイルが対応するカテゴリにインポートされます。",

    // Folder import drawer
    importImmediate: "今すぐインポート",
    importScheduled: "スケジュールインポート",
    lblServerPath: "サーバーフォルダパス",
    placeholderServerPath: "例: /data/documents",
    scheduledImportTip: "サーバー側のスケジュールインポート：指定した時刻にサーバーがパスのファイルを読み込んで自動インポートします。サーバーがそのパスにアクセスできることを確認してください。",
    lblScheduledTime: "実行日時",
    scheduledTimeHint: "指定した時刻に、サーバーが自動的にインポートタスクを実行します。",
    scheduleImport: "スケジュールタスクを作成",
    scheduleTaskCreated: "スケジュールインポートタスクが作成されました",
    fillServerPath: "サーバーフォルダパスを入力してください",
    invalidDateTime: "有効な日付と時刻を入力してください",

    // Import Tasks Drawer
    importTasksTitle: "インポートタスク",
    noTasksFound: "タスクは見つかりませんでした",
    sourcePath: "ソースパス",
    targetGroup: "ターゲットグループ",
    scheduledAt: "実行予定日時",
    confirmDeleteTask: "このインポートタスクレコードを削除してもよろしいですか？",
    deleteTaskFailed: "タスクレコードの削除に失敗しました",
    noOrganization: "組織なし",
  },
};
