sepehr 7fb486c9a4 feat: Complete internationalization and code cleanup
## Translation Files
- Add 11 new language files (es, de, pt, ru, zh, ja, ko, ar, hi, nl, pl)
- Add 100+ missing translation keys across all 15 languages
- New sections: notebook, pagination, ai.batchOrganization, ai.autoLabels
- Update nav section with workspace, quickAccess, myLibrary keys

## Component Updates
- Update 15+ components to use translation keys instead of hardcoded text
- Components: notebook dialogs, sidebar, header, note-input, ghost-tags, etc.
- Replace 80+ hardcoded English/French strings with t() calls
- Ensure consistent UI across all supported languages

## Code Quality
- Remove 77+ console.log statements from codebase
- Clean up API routes, components, hooks, and services
- Keep only essential error handling (no debugging logs)

## UI/UX Improvements
- Update Keep logo to yellow post-it style (from-yellow-400 to-amber-500)
- Change selection colors to #FEF3C6 (notebooks) and #EFB162 (nav items)
- Make "+" button permanently visible in notebooks section
- Fix grammar and syntax errors in multiple components

## Bug Fixes
- Fix JSON syntax errors in it.json, nl.json, pl.json, zh.json
- Fix syntax errors in notebook-suggestion-toast.tsx
- Fix syntax errors in use-auto-tagging.ts
- Fix syntax errors in paragraph-refactor.service.ts
- Fix duplicate "fusion" section in nl.json

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

Ou une version plus courte si vous préférez :

feat(i18n): Add 15 languages, remove logs, update UI components

- Create 11 new translation files (es, de, pt, ru, zh, ja, ko, ar, hi, nl, pl)
- Add 100+ translation keys: notebook, pagination, AI features
- Update 15+ components to use translations (80+ strings)
- Remove 77+ console.log statements from codebase
- Fix JSON syntax errors in 4 translation files
- Fix component syntax errors (toast, hooks, services)
- Update logo to yellow post-it style
- Change selection colors (#FEF3C6, #EFB162)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-11 22:26:13 +01:00

512 lines
19 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"auth": {
"signIn": "登录",
"signUp": "注册",
"email": "电子邮箱",
"password": "密码",
"name": "姓名",
"emailPlaceholder": "输入您的电子邮箱",
"passwordPlaceholder": "输入您的密码",
"namePlaceholder": "输入您的姓名",
"passwordMinChars": "输入密码(最少 6 个字符)",
"resetPassword": "重置密码",
"resetPasswordInstructions": "输入您的邮箱以重置密码",
"forgotPassword": "忘记密码?",
"noAccount": "没有账户?",
"hasAccount": "已有账户?",
"signInToAccount": "登录您的账户",
"createAccount": "创建您的账户",
"rememberMe": "记住我",
"orContinueWith": "或继续使用",
"checkYourEmail": "查看您的邮箱",
"resetEmailSent": "如果您的邮箱存在于我们的系统中,我们已向您发送密码重置链接。",
"returnToLogin": "返回登录",
"forgotPasswordTitle": "忘记密码",
"forgotPasswordDescription": "输入您的电子邮箱,我们将向您发送重置密码的链接。",
"sending": "发送中...",
"sendResetLink": "发送重置链接",
"backToLogin": "返回登录"
},
"notes": {
"title": "笔记",
"newNote": "新建笔记",
"untitled": "无标题",
"placeholder": "记笔记...",
"markdownPlaceholder": "记笔记...(支持 Markdown",
"titlePlaceholder": "标题",
"listItem": "列表项",
"addListItem": "+ 列表项",
"newChecklist": "新建清单",
"add": "添加",
"adding": "添加中...",
"close": "关闭",
"confirmDelete": "确定要删除这条笔记吗?",
"confirmLeaveShare": "确定要离开这条共享笔记吗?",
"sharedBy": "共享者",
"leaveShare": "离开",
"delete": "删除",
"archive": "归档",
"unarchive": "取消归档",
"pin": "置顶",
"unpin": "取消置顶",
"color": "颜色",
"changeColor": "更改颜色",
"setReminder": "设置提醒",
"setReminderButton": "设置提醒",
"date": "日期",
"time": "时间",
"reminderDateTimeRequired": "请输入日期和时间",
"invalidDateTime": "日期或时间无效",
"reminderMustBeFuture": "提醒时间必须是未来时间",
"reminderSet": "已设置提醒:{datetime}",
"reminderPastError": "提醒时间必须是未来时间",
"reminderRemoved": "提醒已移除",
"addImage": "添加图片",
"addLink": "添加链接",
"linkAdded": "链接已添加",
"linkMetadataFailed": "无法获取链接元数据",
"linkAddFailed": "添加链接失败",
"invalidFileType": "无效的文件类型:{fileName}。仅允许 JPEG、PNG、GIF 和 WebP。",
"fileTooLarge": "文件过大:{fileName}。最大大小为 {maxSize}。",
"uploadFailed": "上传失败:{filename}",
"contentOrMediaRequired": "请输入一些内容或添加链接/图片",
"itemOrMediaRequired": "请至少添加一个项目或媒体",
"noteCreated": "笔记创建成功",
"noteCreateFailed": "创建笔记失败",
"aiAssistant": "AI 助手",
"changeSize": "更改大小",
"backgroundOptions": "背景选项",
"moreOptions": "更多选项",
"remindMe": "提醒我",
"markdownMode": "Markdown",
"addCollaborators": "添加协作者",
"duplicate": "复制",
"share": "共享",
"showCollaborators": "显示协作者",
"pinned": "已置顶",
"others": "其他",
"noNotes": "无笔记",
"noNotesFound": "未找到笔记",
"createFirstNote": "创建您的第一条笔记",
"size": "大小",
"small": "小",
"medium": "中",
"large": "大",
"shareWithCollaborators": "与协作者共享",
"view": "查看笔记",
"edit": "编辑笔记",
"readOnly": "只读",
"preview": "预览",
"noContent": "无内容",
"takeNote": "记笔记...",
"takeNoteMarkdown": "记笔记...(支持 Markdown",
"addItem": "添加项目",
"sharedReadOnly": "这条笔记以只读模式与您共享",
"makeCopy": "创建副本",
"saving": "保存中...",
"copySuccess": "笔记复制成功!",
"copyFailed": "复制笔记失败",
"copy": "复制",
"markdownOn": "Markdown 开启",
"markdownOff": "Markdown 关闭",
"undo": "撤销 (Ctrl+Z)",
"redo": "重做 (Ctrl+Y)"
},
"pagination": {
"previous": "←",
"pageInfo": "第 {currentPage} 页 / 共 {totalPages} 页",
"next": "→"
},
"labels": {
"title": "标签",
"filter": "按标签筛选",
"manage": "管理标签",
"manageTooltip": "管理标签",
"changeColor": "更改颜色",
"changeColorTooltip": "更改颜色",
"delete": "删除",
"deleteTooltip": "删除标签",
"confirmDelete": "确定要删除这个标签吗?",
"newLabelPlaceholder": "创建新标签",
"namePlaceholder": "输入标签名称",
"addLabel": "添加标签",
"createLabel": "创建标签",
"labelName": "标签名称",
"labelColor": "标签颜色",
"manageLabels": "管理标签",
"manageLabelsDescription": "为这条笔记添加或删除标签。点击标签可更改其颜色。",
"selectedLabels": "已选标签",
"allLabels": "所有标签",
"clearAll": "清除全部",
"filterByLabel": "按标签筛选",
"tagAdded": "标签 \"{tag}\" 已添加",
"showLess": "收起",
"showMore": "展开",
"editLabels": "编辑标签",
"editLabelsDescription": "创建、编辑颜色或删除标签。",
"noLabelsFound": "未找到标签。",
"loading": "加载中...",
"notebookRequired": "⚠️ 标签仅在笔记本中可用。请先将此笔记移动到笔记本。"
},
"search": {
"placeholder": "搜索",
"searchPlaceholder": "搜索您的笔记...",
"semanticInProgress": "AI 搜索进行中...",
"semanticTooltip": "AI 语义搜索",
"searching": "搜索中...",
"noResults": "未找到结果",
"resultsFound": "找到 {count} 条笔记",
"exactMatch": "完全匹配",
"related": "相关"
},
"collaboration": {
"emailPlaceholder": "输入电子邮箱",
"addCollaborator": "添加协作者",
"removeCollaborator": "移除协作者",
"owner": "所有者",
"canEdit": "可编辑",
"canView": "可查看",
"shareNote": "共享笔记",
"shareWithCollaborators": "与协作者共享",
"addCollaboratorDescription": "通过电子邮箱添加人员来协作编辑这条笔记。",
"viewerDescription": "您有权访问此笔记。只有所有者可以管理协作者。",
"emailAddress": "电子邮箱",
"enterEmailAddress": "输入电子邮箱",
"invite": "邀请",
"peopleWithAccess": "有访问权限的人员",
"noCollaborators": "还没有协作者。在上方添加某人!",
"noCollaboratorsViewer": "还没有协作者。",
"pendingInvite": "待处理的邀请",
"pending": "待处理",
"remove": "移除",
"unnamedUser": "未命名用户",
"done": "完成",
"willBeAdded": "{email} 将在创建笔记时被添加为协作者",
"alreadyInList": "此邮箱已在列表中",
"nowHasAccess": "{name} 现在有权访问此笔记",
"accessRevoked": "访问权限已被撤销",
"errorLoading": "加载协作者时出错",
"failedToAdd": "添加协作者失败",
"failedToRemove": "移除协作者失败"
},
"ai": {
"analyzing": "AI 分析中...",
"clickToAddTag": "点击添加此标签",
"ignoreSuggestion": "忽略此建议",
"generatingTitles": "正在生成标题...",
"generateTitlesTooltip": "使用 AI 生成标题",
"poweredByAI": "由 AI 驱动",
"languageDetected": "检测到的语言",
"processing": "处理中...",
"tagAdded": "标签 \"{tag}\" 已添加",
"titleGenerating": "生成中...",
"titleGenerateWithAI": "使用 AI 生成标题",
"titleGenerationMinWords": "内容必须至少包含 10 个单词才能生成标题(当前:{count} 个单词)",
"titleGenerationError": "生成标题时出错",
"titlesGenerated": "💡 已生成 {count} 个标题!",
"titleGenerationFailed": "生成标题失败",
"titleApplied": "标题已应用!",
"reformulationNoText": "请选择文本或添加内容",
"reformulationSelectionTooShort": "选择内容太短,将使用完整内容",
"reformulationMinWords": "文本必须至少包含 10 个单词(当前:{count} 个单词)",
"reformulationMaxWords": "文本最多包含 500 个单词",
"reformulationError": "改写时出错",
"reformulationFailed": "改写文本失败",
"reformulationApplied": "改写文本已应用!",
"transformMarkdown": "转换为 Markdown",
"transforming": "转换中...",
"transformSuccess": "文本已成功转换为 Markdown",
"transformError": "转换时出错",
"assistant": "AI 助手",
"generating": "生成中...",
"generateTitles": "生成标题",
"reformulateText": "改写文本",
"reformulating": "改写中...",
"clarify": "澄清",
"shorten": "缩短",
"improveStyle": "改进风格",
"reformulationComparison": "改写比较",
"original": "原文",
"reformulated": "改写"
},
"batchOrganization": {
"error": "创建组织计划失败",
"noNotesSelected": "未选择笔记",
"title": "用AI整理",
"description": "AI将分析您的笔记并建议将它们组织到笔记本中。",
"analyzing": "分析您的笔记...",
"notesToOrganize": "{count} 个笔记需要整理",
"selected": "已选择 {count}",
"noNotebooks": "没有可用的笔记本。请先创建笔记本来整理您的笔记。",
"noSuggestions": "AI找不到整理这些笔记的好方法。",
"confidence": "置信度",
"unorganized": "{count} 个笔记无法分类,将保留在\"普通笔记\"中。",
"applying": "应用中...",
"apply": "应用 ({count})"
},
"autoLabels": {
"error": "获取标签建议失败",
"noLabelsSelected": "未选择标签",
"created": "成功创建 {count} 个标签",
"analyzing": "分析您的笔记...",
"title": "新标签建议",
"description": "我在 \"{notebookName}\" ({totalNotes} 个笔记) 中发现了重复的主题。为它们创建标签吗?",
"note": "笔记",
"notes": "笔记",
"typeContent": "输入内容以获取标签建议...",
"createNewLabel": "创建此新标签并添加它",
"new": "(新)"
},
"titleSuggestions": {
"available": "标题建议",
"title": "AI 建议",
"generating": "生成中...",
"selectTitle": "选择标题",
"dismiss": "忽略"
},
"semanticSearch": {
"exactMatch": "完全匹配",
"related": "相关",
"searching": "搜索中..."
},
"paragraphRefactor": {
"title": "文本改进",
"shorten": "缩短",
"expand": "扩展",
"improve": "改进",
"formal": "正式",
"casual": "随意"
},
"memoryEcho": {
"title": "我注意到了一些事情...",
"description": "您的笔记之间的主动关联",
"dailyInsight": "您的笔记的每日洞察",
"insightReady": "您的洞察已准备好!",
"viewConnection": "查看关联",
"helpful": "有帮助",
"notHelpful": "无帮助",
"dismiss": "暂时忽略",
"thanksFeedback": "感谢您的反馈!",
"thanksFeedbackImproving": "谢谢!我们将利用此来改进。",
"connections": "关联",
"connection": "关联",
"connectionsBadge": "{count} 个关联{plural}",
"fused": "已融合",
"overlay": {
"title": "关联的笔记",
"searchPlaceholder": "搜索关联...",
"sortBy": "排序方式:",
"sortSimilarity": "相似度",
"sortRecent": "最近",
"sortOldest": "最早",
"viewAll": "并排查看全部",
"loading": "加载中...",
"noConnections": "未找到关联"
},
"comparison": {
"title": "💡 笔记比较",
"similarityInfo": "这些笔记的相似度为 {similarity}%",
"highSimilarityInsight": "这些笔记讨论同一主题,具有很高的相似度。它们可以合并或整合。",
"untitled": "无标题",
"clickToView": "点击查看笔记",
"helpfulQuestion": "此比较有帮助吗?",
"helpful": "有帮助",
"notHelpful": "无帮助"
},
"editorSection": {
"title": "⚡ 关联的笔记({count}",
"loading": "加载中...",
"view": "查看",
"compare": "比较",
"merge": "合并",
"compareAll": "比较全部",
"mergeAll": "合并全部"
},
"fusion": {
"title": "🔗 智能融合",
"mergeNotes": "合并 {count} 条笔记",
"notesToMerge": "📝 要合并的笔记",
"optionalPrompt": "💬 融合提示(可选)",
"promptPlaceholder": "AI 的可选指令(例如,'保持笔记 1 的正式风格'...",
"generateFusion": "生成融合",
"generating": "生成中...",
"previewTitle": "📝 合并笔记的预览",
"edit": "编辑",
"modify": "修改",
"finishEditing": "完成编辑",
"optionsTitle": "融合选项",
"archiveOriginals": "归档原始笔记",
"keepAllTags": "保留所有标签",
"useLatestTitle": "使用最新笔记作为标题",
"createBacklinks": "创建指向原始笔记的反向链接",
"cancel": "取消",
"confirmFusion": "确认融合",
"success": "笔记合并成功!",
"error": "合并笔记失败",
"generateError": "生成融合失败",
"noContentReturned": "API 未返回融合内容",
"unknownDate": "未知日期"
}
},
"nav": {
"home": "主页",
"notes": "笔记",
"notebooks": "笔记本",
"generalNotes": "普通笔记",
"archive": "归档",
"settings": "设置",
"profile": "个人资料",
"aiSettings": "AI 设置",
"logout": "退出登录",
"login": "登录",
"adminDashboard": "管理后台",
"diagnostics": "诊断",
"trash": "回收站",
"support": "支持 Memento ☕",
"reminders": "提醒",
"userManagement": "用户管理",
"accountSettings": "账户设置",
"manageAISettings": "管理 AI 设置",
"configureAI": "配置您的 AI 驱动功能、提供商和偏好设置",
"supportDevelopment": "支持 Memento 开发 ☕",
"supportDescription": "Memento 是 100% 免费和开源的。您的支持帮助它保持这种方式。",
"buyMeACoffee": "请我喝杯咖啡",
"donationDescription": "进行一次性捐赠或成为月度支持者。",
"donateOnKofi": "在 Ko-fi 上捐赠",
"donationNote": "无平台费用 • 即时付款 • 安全",
"sponsorOnGithub": "在 GitHub 上赞助",
"sponsorDescription": "成为月度赞助者并获得认可。",
"workspace": "工作区",
"quickAccess": "快速访问",
"myLibrary": "我的库",
"favorites": "收藏夹",
"recent": "最近",
"proPlan": "专业版"
},
"settings": {
"title": "设置",
"description": "管理您的设置和偏好",
"account": "账户",
"appearance": "外观",
"theme": "主题",
"themeLight": "浅色",
"themeDark": "深色",
"themeSystem": "跟随系统",
"notifications": "通知",
"language": "语言",
"selectLanguage": "选择语言",
"privacy": "隐私",
"security": "安全",
"about": "关于",
"version": "版本",
"settingsSaved": "设置已保存",
"settingsError": "保存设置时出错"
},
"profile": {
"title": "个人资料",
"description": "更新您的个人信息",
"displayName": "显示名称",
"email": "电子邮箱",
"changePassword": "更改密码",
"changePasswordDescription": "更新您的密码。您需要当前密码。",
"currentPassword": "当前密码",
"newPassword": "新密码",
"confirmPassword": "确认密码",
"updatePassword": "更新密码",
"passwordChangeSuccess": "密码更改成功",
"passwordChangeFailed": "更改密码失败",
"passwordUpdated": "密码已更新",
"passwordError": "更新密码时出错",
"languagePreferences": "语言偏好",
"languagePreferencesDescription": "为 AI 功能和界面选择您的首选语言。",
"preferredLanguage": "首选语言",
"selectLanguage": "选择语言",
"languageDescription": "此语言将用于 AI 驱动的功能、内容分析和界面文本。",
"autoDetect": "自动检测",
"updateSuccess": "个人资料已更新",
"updateFailed": "更新个人资料失败",
"languageUpdateSuccess": "语言更新成功",
"languageUpdateFailed": "更新语言失败",
"profileUpdated": "个人资料已更新",
"profileError": "更新个人资料时出错",
"accountSettings": "账户设置",
"manageAISettings": "管理 AI 设置",
"displaySettings": "显示设置",
"displaySettingsDescription": "自定义外观和字体大小。",
"fontSize": "字体大小",
"selectFontSize": "选择字体大小",
"fontSizeSmall": "小",
"fontSizeMedium": "中",
"fontSizeLarge": "大",
"fontSizeExtraLarge": "超大",
"fontSizeDescription": "调整字体大小以获得更好的可读性。这适用于界面中的所有文本。",
"fontSizeUpdateSuccess": "字体大小更新成功",
"fontSizeUpdateFailed": "更新字体大小失败"
},
"aiSettings": {
"title": "AI 设置",
"description": "配置您的 AI 驱动功能和偏好设置",
"features": "AI 功能",
"provider": "AI 提供商",
"providerAuto": "自动(推荐)",
"providerOllama": "Ollama本地",
"providerOpenAI": "OpenAI云端",
"frequency": "频率",
"frequencyDaily": "每天",
"frequencyWeekly": "每周",
"saving": "保存中...",
"saved": "设置已更新",
"error": "更新设置失败"
},
"general": {
"loading": "加载中...",
"save": "保存",
"cancel": "取消",
"add": "添加",
"edit": "编辑",
"confirm": "确认",
"close": "关闭",
"back": "返回",
"next": "下一步",
"previous": "上一步",
"submit": "提交",
"reset": "重置",
"apply": "应用",
"clear": "清除",
"select": "选择",
"tryAgain": "请重试",
"error": "发生错误",
"operationSuccess": "操作成功",
"operationFailed": "操作失败"
},
"colors": {
"default": "默认",
"red": "红色",
"blue": "蓝色",
"green": "绿色",
"yellow": "黄色",
"purple": "紫色",
"pink": "粉色",
"orange": "橙色",
"gray": "灰色"
},
"reminder": {
"title": "提醒",
"setReminder": "设置提醒",
"removeReminder": "移除提醒",
"reminderDate": "提醒日期",
"reminderTime": "提醒时间",
"save": "设置提醒",
"cancel": "取消"
},
"notebookSuggestion": {
"title": "移动到 {icon} {name}",
"description": "这条笔记似乎属于这个笔记本",
"move": "移动",
"dismiss": "忽略",
"dismissIn": "忽略({timeLeft} 秒后关闭)",
"moveToNotebook": "移动到笔记本",
"generalNotes": "普通笔记"
}
}