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

508 lines
23 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": "少なくとも1つの項目またはメディアを追加してください",
"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": "読み込み中..."
},
"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 powered",
"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": "ノートのマージに失敗しました"
}
},
"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": "一般ノート"
}
}