{ "auth": { "signIn": "Sign In", "signUp": "Sign Up", "email": "Email", "password": "Password", "name": "Name", "emailPlaceholder": "Enter your email address", "passwordPlaceholder": "Enter your password", "namePlaceholder": "Enter your name", "passwordMinChars": "Enter password (min 6 chars)", "resetPassword": "Reset Password", "resetPasswordInstructions": "Enter your email to reset password", "forgotPassword": "Forgot password?", "noAccount": "Don't have an account?", "hasAccount": "Already have an account?", "signInToAccount": "Sign in to your account", "createAccount": "Create your account", "rememberMe": "Remember me", "orContinueWith": "Or continue with", "checkYourEmail": "Check your email", "resetEmailSent": "We have sent a password reset link to your email address if it exists in our system.", "returnToLogin": "Return to Login", "forgotPasswordTitle": "Forgot Password", "forgotPasswordDescription": "Enter your email address and we'll send you a link to reset your password.", "sending": "Sending...", "sendResetLink": "Send Reset Link", "backToLogin": "Back to login", "signOut": "Sign out" }, "sidebar": { "notes": "Notes", "reminders": "Reminders", "labels": "Labels", "editLabels": "Edit labels", "newNoteTabs": "New Note", "newNoteTabsHint": "Create note in this notebook", "noLabelsInNotebook": "No labels in this notebook yet", "archive": "Archive", "trash": "Trash" }, "notes": { "title": "Notes", "newNote": "New note", "untitled": "Untitled", "placeholder": "Take a note...", "markdownPlaceholder": "Take a note... (Markdown supported)", "titlePlaceholder": "Title", "listItem": "List item", "addListItem": "+ List item", "newChecklist": "New checklist", "add": "Add", "adding": "Adding...", "close": "Close", "confirmDelete": "Are you sure you want to delete this note?", "confirmLeaveShare": "Are you sure you want to leave this shared note?", "sharedBy": "Shared by", "leaveShare": "Leave", "delete": "Delete", "archive": "Archive", "unarchive": "Unarchive", "pin": "Pin", "unpin": "Unpin", "color": "Color", "changeColor": "Change color", "setReminder": "Set reminder", "setReminderButton": "Set Reminder", "date": "Date", "time": "Time", "reminderDateTimeRequired": "Please enter date and time", "invalidDateTime": "Invalid date or time", "reminderMustBeFuture": "Reminder must be in the future", "reminderSet": "Reminder set for {datetime}", "reminderPastError": "Reminder must be in the future", "reminderRemoved": "Reminder removed", "addImage": "Add image", "addLink": "Add link", "linkAdded": "Link added", "linkMetadataFailed": "Could not fetch link metadata", "linkAddFailed": "Failed to add link", "invalidFileType": "Invalid file type: {fileName}. Only JPEG, PNG, GIF, and WebP allowed.", "fileTooLarge": "File too large: {fileName}. Maximum size is {maxSize}.", "uploadFailed": "Failed to upload {filename}", "contentOrMediaRequired": "Please enter some content or add a link/image", "itemOrMediaRequired": "Please add at least one item or media", "noteCreated": "Note created successfully", "noteCreateFailed": "Failed to create note", "aiAssistant": "AI Assistant", "changeSize": "Change size", "backgroundOptions": "Background options", "moreOptions": "More options", "remindMe": "Remind me", "markdownMode": "Markdown", "addCollaborators": "Add collaborators", "duplicate": "Duplicate", "share": "Share", "showCollaborators": "Show collaborators", "pinned": "Pinned", "others": "Others", "noNotes": "No notes", "noNotesFound": "No notes found", "createFirstNote": "Create your first note", "size": "Size", "small": "Small", "medium": "Medium", "large": "Large", "shareWithCollaborators": "Share with collaborators", "view": "View Note", "edit": "Edit", "readOnly": "Read Only", "preview": "Preview", "noContent": "No content", "takeNote": "Take a note...", "takeNoteMarkdown": "Take a note... (Markdown supported)", "addItem": "Add item", "sharedReadOnly": "This note is shared with you in read-only mode", "makeCopy": "Make a copy", "saving": "Saving...", "copySuccess": "Note copied successfully!", "copyFailed": "Failed to copy note", "copy": "Copy", "markdownOn": "Markdown ON", "markdownOff": "Markdown OFF", "undo": "Undo (Ctrl+Z)", "redo": "Redo (Ctrl+Y)", "pinnedNotes": "Pinned Notes", "recent": "Recent", "addNote": "Add Note", "remove": "Remove", "dragToReorder": "Drag to reorder", "more": "More options", "emptyState": "No notes yet. Create your first note!", "emptyStateTabs": "No notes here yet. Use \"New note\" in the sidebar to add one (AI title suggestions appear in the composer).", "inNotebook": "In notebook", "moveFailed": "Failed to move note. Please try again.", "clarifyFailed": "Failed to clarify text", "shortenFailed": "Failed to shorten text", "improveFailed": "Failed to improve text", "transformFailed": "Failed to transform text", "markdown": "Markdown", "unpinned": "Unpinned", "redoShortcut": "Redo (Ctrl+Y)", "undoShortcut": "Undo (Ctrl+Z)", "viewCards": "Cards View", "viewCardsTooltip": "Card grid with drag-and-drop reorder", "viewTabs": "Tabs View", "viewTabsTooltip": "Tabs on top, note below — drag tabs to reorder", "viewModeGroup": "Notes display mode", "reorderTabs": "Reorder tab", "modified": "Modified", "created": "Created" }, "pagination": { "previous": "←", "pageInfo": "Page {currentPage} / {totalPages}", "next": "→" }, "labels": { "title": "Labels", "filter": "Filter by Label", "manage": "Manage Labels", "manageTooltip": "Manage Labels", "changeColor": "Change Color", "changeColorTooltip": "Change color", "delete": "Delete", "deleteTooltip": "Delete label", "confirmDelete": "Are you sure you want to delete this label?", "newLabelPlaceholder": "Create new label", "namePlaceholder": "Enter label name", "addLabel": "Add label", "createLabel": "Create label", "labelName": "Label name", "labelColor": "Label color", "manageLabels": "Manage labels", "manageLabelsDescription": "Add or remove labels for this note. Click on a label to change its color.", "selectedLabels": "Selected Labels", "allLabels": "All Labels", "clearAll": "Clear all", "filterByLabel": "Filter by label", "tagAdded": "Tag \"{tag}\" added", "showLess": "Show less", "showMore": "Show more", "editLabels": "Edit Labels", "editLabelsDescription": "Create, edit colors, or delete labels.", "noLabelsFound": "No labels found.", "loading": "Loading...", "notebookRequired": "⚠️ Labels are only available in notebooks. Move this note to a notebook first.", "count": "{count} labels", "noLabels": "No labels", "confirmDeleteShort": "Confirm?" }, "search": { "placeholder": "Search", "searchPlaceholder": "Search your notes...", "semanticInProgress": "AI search in progress...", "semanticTooltip": "AI semantic search", "searching": "Searching...", "noResults": "No results found", "resultsFound": "{count} notes found", "exactMatch": "Exact match", "related": "Related" }, "collaboration": { "emailPlaceholder": "Enter email address", "addCollaborator": "Add collaborator", "removeCollaborator": "Remove collaborator", "owner": "Owner", "canEdit": "Can edit", "canView": "Can view", "shareNote": "Share note", "shareWithCollaborators": "Share with collaborators", "addCollaboratorDescription": "Add people to collaborate on this note by their email address.", "viewerDescription": "You have access to this note. Only the owner can manage collaborators.", "emailAddress": "Email address", "enterEmailAddress": "Enter email address", "invite": "Invite", "peopleWithAccess": "People with access", "noCollaborators": "No collaborators yet. Add someone above!", "noCollaboratorsViewer": "No collaborators yet.", "pendingInvite": "Pending Invite", "pending": "Pending", "remove": "Remove", "unnamedUser": "Unnamed User", "done": "Done", "willBeAdded": "{email} will be added as collaborator when note is created", "alreadyInList": "This email is already in the list", "nowHasAccess": "{name} now has access to this note", "accessRevoked": "Access has been revoked", "errorLoading": "Error loading collaborators", "failedToAdd": "Failed to add collaborator", "failedToRemove": "Failed to remove collaborator" }, "ai": { "analyzing": "AI analyzing...", "clickToAddTag": "Click to add this tag", "ignoreSuggestion": "Ignore this suggestion", "generatingTitles": "Generating titles...", "generateTitlesTooltip": "Generate titles with AI", "poweredByAI": "Powered by AI", "languageDetected": "Language detected", "processing": "Processing...", "tagAdded": "Tag \"{tag}\" added", "titleGenerating": "Generating...", "titleGenerateWithAI": "Generate titles with AI", "titleGenerationMinWords": "Content must have at least 10 words to generate titles (current: {count} words)", "titleGenerationError": "Error generating titles", "titlesGenerated": "💡 {count} titles generated!", "titleGenerationFailed": "Failed to generate titles", "titleApplied": "Title applied!", "reformulationNoText": "Please select text or add content", "reformulationSelectionTooShort": "Selection too short, using full content", "reformulationMinWords": "Text must have at least 10 words (current: {count} words)", "reformulationMaxWords": "Text must have maximum 500 words", "reformulationError": "Error during reformulation", "reformulationFailed": "Failed to reformulate text", "reformulationApplied": "Reformulated text applied!", "transformMarkdown": "Transform to Markdown", "transforming": "Transforming...", "transformSuccess": "Text transformed to Markdown successfully!", "transformError": "Error during transformation", "assistant": "AI Assistant", "generating": "Generating...", "generateTitles": "Generate titles", "reformulateText": "Reformulate text", "reformulating": "Reformulating...", "clarify": "Clarify", "shorten": "Shorten", "improveStyle": "Improve style", "reformulationComparison": "Reformulation Comparison", "original": "Original", "reformulated": "Reformulated", "autoLabels": { "error": "Failed to fetch label suggestions", "noLabelsSelected": "No labels selected", "created": "{count} labels created successfully", "analyzing": "Analyzing your notes...", "title": "New Label Suggestions", "description": "I've detected recurring themes in \"{notebookName}\" ({totalNotes} notes). Create labels for them?", "note": "note", "notes": "notes", "typeContent": "Type content to get label suggestions...", "createNewLabel": "Create this new label and add it", "new": "(new)", "create": "Create", "creating": "Creating labels..." }, "batchOrganization": { "title": "Organize with AI", "description": "AI will analyze your notes and suggest organizing them into notebooks.", "analyzing": "Analyzing your notes...", "noNotebooks": "No notebooks available. Create notebooks first to organize your notes.", "noSuggestions": "AI could not find a good way to organize these notes.", "apply": "Apply", "applying": "Applying...", "success": "{count} notes moved successfully", "error": "Failed to create organization plan", "noNotesSelected": "No notes selected", "applyFailed": "Failed to apply organization plan", "selectAllIn": "Select all notes in {notebook}", "selectNote": "Select note: {title}" }, "notebookSummary": { "regenerate": "Regenerate Summary", "regenerating": "Regenerating summary..." }, "clarifyDesc": "Make the text clearer and easier to understand", "shortenDesc": "Summarize the text and get to the point", "improve": "Improve writing", "improveDesc": "Fix grammar and enhance style", "toMarkdown": "Format as Markdown", "toMarkdownDesc": "Add headings, bullet points and structure the text", "translate": "Translate", "translateDesc": "Change the text language", "translateBack": "Back", "translationApplied": "Translation applied", "translationFailed": "Translation failed", "undo": "Undo AI", "undoAI": "Undo AI transformation", "undoApplied": "Original text restored" }, "titleSuggestions": { "available": "Title suggestions", "title": "AI suggestions", "generating": "Generating...", "selectTitle": "Select a title", "dismiss": "Dismiss" }, "semanticSearch": { "exactMatch": "Exact match", "related": "Related", "searching": "Searching..." }, "paragraphRefactor": { "title": "Text improvement", "shorten": "Shorten", "expand": "Expand", "improve": "Improve", "formal": "Formal", "casual": "Casual" }, "memoryEcho": { "title": "I noticed something...", "description": "Proactive connections between your notes", "dailyInsight": "Daily insight from your notes", "insightReady": "Your insight is ready!", "viewConnection": "View Connection", "helpful": "Helpful", "notHelpful": "Not Helpful", "dismiss": "Dismiss for now", "thanksFeedback": "Thanks for your feedback!", "thanksFeedbackImproving": "Thanks! We'll use this to improve.", "connections": "Connections", "connection": "connection", "connectionsBadge": "{count} connection{plural}", "match": "{percentage}% match", "fused": "Fused", "clickToView": "Click to view note →", "overlay": { "title": "Connected Notes", "searchPlaceholder": "Search connections...", "sortBy": "Sort by:", "sortSimilarity": "Similarity", "sortRecent": "Recent", "sortOldest": "Oldest", "viewAll": "View all side by side", "loading": "Loading...", "noConnections": "No connections found", "error": "Failed to load connections" }, "comparison": { "title": "💡 Note Comparison", "similarityInfo": "These notes are connected by {similarity}% similarity", "highSimilarityInsight": "These notes deal with the same topic with a high degree of similarity. They could be merged or consolidated.", "untitled": "Untitled", "clickToView": "Click to view note", "helpfulQuestion": "Is this comparison helpful?", "helpful": "Helpful", "notHelpful": "Not Helpful" }, "editorSection": { "title": "⚡ Connected Notes ({count})", "loading": "Loading...", "view": "View", "compare": "Compare", "merge": "Merge", "compareAll": "Compare all", "mergeAll": "Merge all", "close": "Close" }, "fusion": { "title": "🔗 Intelligent Fusion", "mergeNotes": "Merge {count} note(s)", "notesToMerge": "📝 Notes to merge", "optionalPrompt": "💬 Fusion prompt (optional)", "promptPlaceholder": "Optional instructions for AI (e.g., 'Keep the formal style of note 1')...", "generateFusion": "Generate the fusion", "generating": "Generating...", "previewTitle": "📝 Preview of merged note", "edit": "Edit", "modify": "Modify", "finishEditing": "Finish editing", "optionsTitle": "Fusion options", "archiveOriginals": "Archive original notes", "keepAllTags": "Keep all tags", "useLatestTitle": "Use latest note as title", "createBacklinks": "Create backlink to original notes", "cancel": "Cancel", "confirmFusion": "Confirm fusion", "success": "Notes merged successfully!", "error": "Failed to merge notes", "generateError": "Failed to generate fusion", "noContentReturned": "No fusion content returned from API", "unknownDate": "Unknown date" } }, "notification": { "shared": "shared \"{title}\"", "untitled": "Untitled", "notifications": "Notifications", "declined": "Share declined", "removed": "Note removed from list" }, "nav": { "home": "Home", "notes": "Notes", "notebooks": "NOTEBOOKS", "generalNotes": "General Notes", "archive": "Archive", "settings": "Settings", "profile": "Profile", "aiSettings": "AI Settings", "logout": "Logout", "login": "Login", "adminDashboard": "Admin Dashboard", "diagnostics": "Diagnostics", "trash": "Trash", "support": "Support Memento ☕", "reminders": "Reminders", "userManagement": "User Management", "accountSettings": "Account Settings", "manageAISettings": "Manage AI Settings", "configureAI": "Configure your AI-powered features, provider, and preferences", "supportDevelopment": "Support Memento Development ☕", "supportDescription": "Memento is 100% free and open-source. Your support helps keep it that way.", "buyMeACoffee": "Buy me a coffee", "donationDescription": "Make a one-time donation or become a monthly supporter.", "donateOnKofi": "Donate on Ko-fi", "donationNote": "No platform fees • Instant payouts • Secure", "sponsorOnGithub": "Sponsor on GitHub", "sponsorDescription": "Become a monthly sponsor and get recognition.", "workspace": "Workspace", "quickAccess": "Quick Access", "myLibrary": "My Library", "favorites": "Favorites", "recent": "Recent", "proPlan": "Pro Plan" }, "settings": { "title": "Settings", "description": "Manage your settings and preferences", "account": "Account", "appearance": "Appearance", "theme": "Theme", "themeLight": "Light", "themeDark": "Dark", "themeSystem": "System", "notifications": "Notifications", "language": "Language", "selectLanguage": "Select language", "privacy": "Privacy", "security": "Security", "about": "About", "version": "Version", "settingsSaved": "Settings saved", "settingsError": "Error saving settings", "maintenance": "Maintenance", "maintenanceDescription": "Tools to maintain your database health", "cleanTags": "Clean Orphan Tags", "cleanTagsDescription": "Remove tags that are no longer used by any notes", "cleanupDone": "Synced {created} label record(s), removed {deleted} orphan(s)", "cleanupNothing": "Nothing to do — labels already match your notes", "cleanupWithErrors": "some operations failed", "cleanupError": "Could not clean up labels", "indexingComplete": "Indexing complete: {count} note(s) processed", "indexingError": "Error during indexing", "semanticIndexing": "Semantic Indexing", "semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search", "profile": "Profile", "searchNoResults": "No settings found", "languageAuto": "Language set to Auto", "emailNotifications": "Email notifications", "emailNotificationsDesc": "Receive important notifications by email", "desktopNotifications": "Desktop notifications", "desktopNotificationsDesc": "Receive notifications in your browser", "anonymousAnalytics": "Anonymous analytics", "anonymousAnalyticsDesc": "Share anonymous usage data to help improve the app", "notificationsDesc": "Manage your notification preferences", "privacyDesc": "Control your data and privacy" }, "profile": { "title": "Profile", "description": "Update your personal information", "displayName": "Display Name", "email": "Email", "changePassword": "Change Password", "changePasswordDescription": "Update your password. You will need your current password.", "currentPassword": "Current Password", "newPassword": "New Password", "confirmPassword": "Confirm Password", "updatePassword": "Update Password", "passwordChangeSuccess": "Password changed successfully", "passwordChangeFailed": "Failed to change password", "passwordUpdated": "Password updated", "passwordError": "Error updating password", "languagePreferences": "Language Preferences", "languagePreferencesDescription": "Choose your preferred language for AI features and interface.", "preferredLanguage": "Preferred Language", "selectLanguage": "Select a language", "languageDescription": "This language will be used for AI-powered features, content analysis, and interface text.", "autoDetect": "Auto-detect", "updateSuccess": "Profile updated", "updateFailed": "Failed to update profile", "languageUpdateSuccess": "Language updated successfully", "languageUpdateFailed": "Failed to update language", "profileUpdated": "Profile updated", "profileError": "Error updating profile", "accountSettings": "Account Settings", "manageAISettings": "Manage AI Settings", "displaySettings": "Display Settings", "displaySettingsDescription": "Customize the appearance and font size.", "fontSize": "Font Size", "selectFontSize": "Select font size", "fontSizeSmall": "Small", "fontSizeMedium": "Medium", "fontSizeLarge": "Large", "fontSizeExtraLarge": "Extra Large", "fontSizeDescription": "Adjust the font size for better readability. This applies to all text in the interface.", "fontSizeUpdateSuccess": "Font size updated successfully", "fontSizeUpdateFailed": "Failed to update font size", "showRecentNotes": "Show Recent Notes Section", "showRecentNotesDescription": "Display recent notes (last 7 days) on the main page", "recentNotesUpdateSuccess": "Recent notes setting updated successfully", "recentNotesUpdateFailed": "Failed to update recent notes setting" }, "aiSettings": { "title": "AI Settings", "description": "Configure your AI-powered features and preferences", "features": "AI Features", "provider": "AI Provider", "providerAuto": "Auto (Recommended)", "providerOllama": "Ollama (Local)", "providerOpenAI": "OpenAI (Cloud)", "frequency": "Frequency", "frequencyDaily": "Daily", "frequencyWeekly": "Weekly", "saving": "Saving...", "saved": "Setting updated", "error": "Failed to update setting", "titleSuggestionsDesc": "Suggest titles for untitled notes after 50+ words", "paragraphRefactorDesc": "AI-powered text improvement options", "frequencyDesc": "How often to analyze note connections", "providerDesc": "Choose your preferred AI provider", "providerAutoDesc": "Ollama when available, OpenAI fallback", "providerOllamaDesc": "100% private, runs locally on your machine", "providerOpenAIDesc": "Most accurate, requires API key" }, "general": { "loading": "Loading...", "save": "Save", "cancel": "Cancel", "add": "Add", "edit": "Edit", "confirm": "Confirm", "close": "Close", "back": "Back", "next": "Next", "previous": "Previous", "submit": "Submit", "reset": "Reset", "apply": "Apply", "clear": "Clear", "select": "Select", "tryAgain": "Please try again", "error": "An error occurred", "operationSuccess": "Operation successful", "operationFailed": "Operation failed", "testConnection": "Test Connection", "clean": "Clean", "indexAll": "Index All", "preview": "Preview" }, "colors": { "default": "Default", "red": "Red", "blue": "Blue", "green": "Green", "yellow": "Yellow", "purple": "Purple", "pink": "Pink", "orange": "Orange", "gray": "Gray" }, "reminder": { "title": "Reminder", "setReminder": "Set reminder", "removeReminder": "Remove reminder", "reminderDate": "Reminder date", "reminderTime": "Reminder time", "save": "Set reminder", "cancel": "Cancel" }, "reminders": { "title": "Reminders", "empty": "No reminders", "emptyDescription": "Add a reminder to a note to find it here.", "upcoming": "Upcoming", "overdue": "Overdue", "done": "Done", "markDone": "Mark as done", "markUndone": "Mark as undone", "todayAt": "Today at {time}", "tomorrowAt": "Tomorrow at {time}" }, "notebook": { "create": "Create Notebook", "createNew": "Create New Notebook", "createDescription": "Start a new collection to organize your notes, ideas, and projects efficiently.", "name": "Notebook Name", "namePlaceholder": "e.g. Q4 Marketing Strategy", "myNotebook": "My Notebook", "saving": "Saving...", "selectIcon": "Icon", "selectColor": "Color", "cancel": "Cancel", "creating": "Creating...", "edit": "Edit Notebook", "editDescription": "Change the name, icon, and color of your notebook.", "delete": "Delete Notebook", "deleteWarning": "Are you sure you want to delete this notebook? Notes will be moved to General Notes.", "deleteConfirm": "Delete", "summary": "Notebook Summary", "summaryDescription": "Generate an AI-powered summary of all notes in this notebook.", "generating": "Generating summary...", "summaryError": "Error generating summary", "labels": "Labels:", "noLabels": "No labels", "pdfTitle": "Summary — {name}", "pdfNotesLabel": "Notes:", "pdfGeneratedOn": "Generated on:", "confidence": "confidence", "savingReminder": "Failed to save reminder", "removingReminder": "Failed to remove reminder" }, "notebookSuggestion": { "title": "Move to {icon} {name}?", "description": "This note seems to belong to this notebook", "move": "Move", "dismiss": "Dismiss", "dismissIn": "Dismiss (closes in {timeLeft}s)", "moveToNotebook": "Move to notebook", "generalNotes": "General Notes" }, "admin": { "title": "Admin Dashboard", "userManagement": "User Management", "aiTesting": "AI Testing", "settings": "Admin Settings", "security": { "title": "Security Settings", "description": "Manage access control and registration policies.", "allowPublicRegistration": "Allow Public Registration", "allowPublicRegistrationDescription": "If disabled, new users can only be added by an Administrator via the User Management page.", "updateSuccess": "Security Settings updated", "updateFailed": "Failed to update security settings" }, "ai": { "title": "AI Configuration", "description": "Configure AI providers for auto-tagging and semantic search. Use different providers for optimal performance.", "tagsGenerationProvider": "Tags Generation Provider", "tagsGenerationDescription": "AI provider for automatic tag suggestions. Recommended: Ollama (free, local).", "embeddingsProvider": "Embeddings Provider", "embeddingsDescription": "AI provider for semantic search embeddings. Recommended: OpenAI (best quality).", "provider": "Provider", "baseUrl": "Base URL", "model": "Model", "apiKey": "API Key", "selectOllamaModel": "Select an Ollama model installed on your system", "openAIKeyDescription": "Your OpenAI API key from platform.openai.com", "modelRecommendations": "gpt-4o-mini = Best value • gpt-4o = Best quality", "commonModelsDescription": "Common models for OpenAI-compatible APIs", "selectEmbeddingModel": "Select an embedding model installed on your system", "commonEmbeddingModels": "Common embedding models for OpenAI-compatible APIs", "saving": "Saving...", "saveSettings": "Save AI Settings", "openTestPanel": "Open AI Test Panel", "updateSuccess": "AI Settings updated successfully", "updateFailed": "Failed to update AI settings", "providerTagsRequired": "AI_PROVIDER_TAGS is required", "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING is required", "providerOllamaOption": "🦙 Ollama (Local & Free)", "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", "providerCustomOption": "🔧 Custom OpenAI-Compatible", "bestValue": "Best value", "bestQuality": "Best quality", "saved": "(Saved)" }, "smtp": { "title": "SMTP Configuration", "description": "Configure email server for password resets.", "host": "Host", "port": "Port", "username": "Username", "password": "Password", "fromEmail": "From Email", "forceSSL": "Force SSL/TLS (usually for port 465)", "ignoreCertErrors": "Ignore Certificate Errors (Self-hosted/Dev only)", "saveSettings": "Save SMTP Settings", "sending": "Sending...", "testEmail": "Test Email", "updateSuccess": "SMTP Settings updated", "updateFailed": "Failed to update SMTP settings", "testSuccess": "Test email sent successfully!", "testFailed": "Failed: {error}" }, "users": { "createUser": "Create User", "addUser": "Add User", "createUserDescription": "Add a new user to the system.", "name": "Name", "email": "Email", "password": "Password", "role": "Role", "createSuccess": "User created successfully", "createFailed": "Failed to create user", "deleteSuccess": "User deleted", "deleteFailed": "Failed to delete", "roleUpdateSuccess": "User role updated to {role}", "roleUpdateFailed": "Failed to update role", "demote": "Demote to User", "promote": "Promote to Admin", "confirmDelete": "Are you sure? This action cannot be undone.", "table": { "name": "Name", "email": "Email", "role": "Role", "createdAt": "Created At", "actions": "Actions" }, "roles": { "user": "User", "admin": "Admin" } }, "aiTest": { "title": "AI Provider Testing", "description": "Test your AI providers for tag generation and semantic search embeddings", "tagsTestTitle": "Tags Generation Test", "tagsTestDescription": "Test the AI provider responsible for automatic tag suggestions", "embeddingsTestTitle": "Embeddings Test", "embeddingsTestDescription": "Test the AI provider responsible for semantic search embeddings", "howItWorksTitle": "How Testing Works", "tagsGenerationTest": "🏷️ Tags Generation Test:", "tagsStep1": "Sends a sample note to the AI provider", "tagsStep2": "Requests 3-5 relevant tags based on the content", "tagsStep3": "Displays the generated tags with confidence scores", "tagsStep4": "Measures response time", "embeddingsTestLabel": "🔍 Embeddings Test:", "embeddingsStep1": "Sends a sample text to the embedding provider", "embeddingsStep2": "Generates a vector representation (list of numbers)", "embeddingsStep3": "Displays embedding dimensions and sample values", "embeddingsStep4": "Verifies the vector is valid and properly formatted", "tipContent": "You can use different providers for tags and embeddings! For example, use Ollama (free) for tags and OpenAI (best quality) for embeddings to optimize costs and performance.", "provider": "Provider:", "model": "Model:", "testing": "Testing...", "runTest": "Run Test", "testPassed": "Test Passed", "testFailed": "Test Failed", "testSuccessToast": "{type} Test Successful!", "testFailedToast": "{type} Test Failed", "testingType": "Testing {type}...", "technicalDetails": "Technical details", "responseTime": "Response time: {time}ms", "generatedTags": "Generated Tags:", "embeddingDimensions": "Embedding Dimensions:", "vectorDimensions": "vector dimensions", "first5Values": "First 5 values:", "error": "Error:", "testError": "Test Error: {error}", "tipTitle": "Tip:", "tipDescription": "Use the AI Test Panel to diagnose configuration issues before testing." }, "sidebar": { "dashboard": "Dashboard", "users": "Users", "aiManagement": "AI Management", "settings": "Settings" }, "metrics": { "vsLastPeriod": "vs last period" } }, "about": { "title": "About", "description": "Information about the application", "appName": "Keep Notes", "appDescription": "A powerful note-taking application with AI-powered features", "version": "Version", "buildDate": "Build Date", "platform": "Platform", "platformWeb": "Web", "features": { "title": "Features", "description": "AI-powered capabilities", "titleSuggestions": "AI-powered title suggestions", "semanticSearch": "Semantic search with embeddings", "paragraphReformulation": "Paragraph reformulation", "memoryEcho": "Memory Echo daily insights", "notebookOrganization": "Notebook organization", "dragDrop": "Drag & drop note management", "labelSystem": "Label system", "multipleProviders": "Multiple AI providers (OpenAI, Ollama)" }, "technology": { "title": "Technology Stack", "description": "Built with modern technologies", "frontend": "Frontend", "backend": "Backend", "database": "Database", "authentication": "Authentication", "ai": "AI", "ui": "UI", "testing": "Testing" }, "support": { "title": "Support", "description": "Get help and feedback", "documentation": "Documentation", "reportIssues": "Report Issues", "feedback": "Feedback" } }, "support": { "title": "Support Memento Development", "description": "Memento is 100% free and open-source. Your support helps keep it that way.", "buyMeACoffee": "Buy me a coffee", "donationDescription": "Make a one-time donation or become a monthly supporter.", "donateOnKofi": "Donate on Ko-fi", "kofiDescription": "No platform fees • Instant payouts • Secure", "sponsorOnGithub": "Sponsor on GitHub", "sponsorDescription": "Become a monthly sponsor and get recognition.", "githubDescription": "Recurring support • Public recognition • Developer-focused", "howSupportHelps": "How Your Support Helps", "directImpact": "Direct Impact", "sponsorPerks": "Sponsor Perks", "transparency": "Transparency", "transparencyDescription": "I believe in complete transparency. Here's how donations are used:", "hostingServers": "Hosting & servers:", "domainSSL": "Domain & SSL:", "aiApiCosts": "AI API costs:", "totalExpenses": "Total expenses:", "otherWaysTitle": "Other Ways to Support", "starGithub": "Star on GitHub", "reportBug": "Report a bug", "contributeCode": "Contribute code", "shareTwitter": "Share on Twitter" }, "demoMode": { "title": "Demo Mode", "activated": "Demo Mode activated! Memory Echo will now work instantly.", "deactivated": "Demo Mode disabled. Normal parameters restored.", "toggleFailed": "Failed to toggle demo mode", "description": "Speeds up Memory Echo for testing. Connections appear instantly.", "parametersActive": "Demo parameters active:", "similarityThreshold": "50% similarity threshold (normally 75%)", "delayBetweenNotes": "0-day delay between notes (normally 7 days)", "unlimitedInsights": "Unlimited insights (no frequency limits)", "createNotesTip": "Create 2+ similar notes and see Memory Echo in action!" }, "resetPassword": { "title": "Reset Password", "description": "Enter your new password below.", "invalidLinkTitle": "Invalid Link", "invalidLinkDescription": "This password reset link is invalid or has expired.", "requestNewLink": "Request new link", "newPassword": "New Password", "confirmNewPassword": "Confirm New Password", "resetting": "Resetting...", "resetPassword": "Reset Password", "passwordMismatch": "Passwords don't match", "success": "Password reset successfully. You can now login.", "loading": "Loading..." }, "dataManagement": { "title": "Data Management", "toolsDescription": "Tools to maintain your database health", "exporting": "Exporting...", "importing": "Importing...", "deleting": "Deleting...", "dangerZone": "Danger Zone", "dangerZoneDescription": "Permanently delete your data", "indexingComplete": "Indexing complete: {count} notes processed", "indexingError": "Error during indexing", "cleanupComplete": "Cleanup complete: {created} created, {deleted} removed", "cleanupError": "Error during cleanup", "export": { "title": "Export All Notes", "description": "Download all your notes as a JSON file. This includes all content, labels, and metadata.", "button": "Export Notes", "success": "Notes exported successfully", "failed": "Failed to export notes" }, "import": { "title": "Import Notes", "description": "Upload a JSON file to import notes. This will add to your existing notes, not replace them.", "button": "Import Notes", "success": "Imported {count} notes", "failed": "Failed to import notes" }, "delete": { "title": "Delete All Notes", "description": "Permanently delete all your notes. This action cannot be undone.", "button": "Delete All Notes", "confirm": "Are you sure? This will permanently delete all your notes.", "success": "All notes deleted", "failed": "Failed to delete notes" }, "indexing": { "title": "Rebuild Search Index", "description": "Regenerate embeddings for all notes to improve semantic search.", "button": "Rebuild Index", "success": "Indexing complete: {count} notes processed", "failed": "Error during indexing" }, "cleanup": { "title": "Cleanup Orphaned Data", "description": "Remove labels and connections that reference deleted notes.", "button": "Cleanup", "failed": "Error during cleanup" } }, "appearance": { "title": "Appearance", "description": "Customize how the app looks", "notesViewDescription": "Choose how notes are shown on home and in notebooks.", "notesViewLabel": "Notes layout", "notesViewTabs": "Tabs (OneNote-style)", "notesViewMasonry": "Cards (grid)" }, "generalSettings": { "title": "General Settings", "description": "General application settings" }, "toast": { "saved": "Setting saved", "saveFailed": "Failed to save setting", "operationSuccess": "Operation successful", "operationFailed": "Operation failed", "openingConnection": "Opening connection...", "openConnectionFailed": "Failed to open connection", "thanksFeedback": "Thanks for your feedback!", "thanksFeedbackImproving": "Thanks! We'll use this to improve.", "feedbackFailed": "Failed to submit feedback", "notesFusionSuccess": "Notes merged successfully!" }, "testPages": { "titleSuggestions": { "title": "Test Title Suggestions", "contentLabel": "Content (need 50+ words):", "placeholder": "Type at least 50 words here...", "wordCount": "Word count:", "status": "Status:", "analyzing": "Analyzing...", "idle": "Idle", "error": "Error:", "suggestions": "Suggestions ({count}):", "noSuggestions": "No suggestions yet. Type 50+ words and wait 2 seconds." } }, "trash": { "title": "Trash", "empty": "The trash is empty", "restore": "Restore", "deletePermanently": "Delete Permanently" }, "footer": { "privacy": "Privacy", "terms": "Terms", "openSource": "Open Source Clone" }, "connection": { "similarityInfo": "These notes are connected by {similarity}% similarity", "clickToView": "Click to view note", "isHelpful": "Is this connection helpful?", "helpful": "Helpful", "notHelpful": "Not Helpful", "memoryEchoDiscovery": "Memory Echo Discovery" }, "diagnostics": { "title": "Diagnostics", "description": "Check your AI provider connection status", "configuredProvider": "Configured Provider", "apiStatus": "API Status", "operational": "Operational", "errorStatus": "Error", "checking": "Checking...", "testDetails": "Test Details:", "troubleshootingTitle": "Troubleshooting Tips:", "tip1": "Make sure Ollama is running (ollama serve)", "tip2": "Check that the model is installed (ollama pull llama3)", "tip3": "Verify your API key for OpenAI", "tip4": "Check network connectivity" }, "batch": { "organizeWithAI": "Organize with AI", "organize": "Organize" }, "common": { "unknown": "Unknown", "notAvailable": "N/A", "loading": "Loading...", "error": "Error", "success": "Success", "confirm": "Confirm", "cancel": "Cancel", "close": "Close", "save": "Save", "delete": "Delete", "edit": "Edit", "add": "Add", "remove": "Remove", "search": "Search", "noResults": "No results", "required": "Required", "optional": "Optional" }, "time": { "justNow": "just now", "minutesAgo": "{count}m ago", "hoursAgo": "{count}h ago", "daysAgo": "{count}d ago", "yesterday": "Yesterday", "today": "Today", "tomorrow": "Tomorrow" }, "favorites": { "title": "Favorites", "toggleSection": "Toggle pinned notes section", "noFavorites": "No pinned notes yet", "pinToFavorite": "Pin a note to add it to favorites" }, "notebooks": { "create": "Create notebook", "allNotebooks": "All Notebooks", "noNotebooks": "No notebooks yet", "createFirst": "Create your first notebook" }, "ui": { "close": "Close", "open": "Open", "expand": "Expand", "collapse": "Collapse" }, "mcpSettings": { "title": "MCP Settings", "description": "Manage API keys and configure external tools", "whatIsMcp": { "title": "What is MCP?", "description": "The Model Context Protocol (MCP) is an open protocol that enables AI models to securely interact with external tools and data sources. With MCP, you can connect tools like Claude Code, Cursor, or N8N to your Keep Notes instance to read, create, and organize your notes programmatically.", "learnMore": "Learn more about MCP" }, "serverStatus": { "title": "Server Status", "running": "Running", "stopped": "Stopped", "mode": "Mode", "url": "URL" }, "apiKeys": { "title": "API Keys", "description": "API keys allow external tools to access your notes via MCP. Keep your keys secret.", "generate": "Generate a new key", "empty": "No API keys yet. Generate one to get started.", "active": "Active", "revoked": "Revoked", "revoke": "Revoke", "delete": "Delete", "createdAt": "Created", "lastUsed": "Last used", "never": "Never", "confirmRevoke": "Are you sure you want to revoke this key? Tools using it will lose access.", "confirmDelete": "Are you sure you want to permanently delete this key?" }, "createDialog": { "title": "Generate API Key", "description": "Create a new API key to connect external tools to your notes.", "nameLabel": "Key name", "namePlaceholder": "e.g. Claude Code, Cursor, N8N", "generating": "Generating...", "generate": "Generate", "successTitle": "API Key Generated", "successDescription": "Copy your API key now. You won't be able to see it again.", "copy": "Copy", "copied": "Copied!", "done": "Done" }, "configInstructions": { "title": "Configuration Instructions", "description": "Use your API key to configure these tools.", "claudeCode": { "title": "Claude Code", "description": "Add this to your Claude Code MCP configuration file:" }, "cursor": { "title": "Cursor", "description": "Add this to your Cursor MCP settings:" }, "n8n": { "title": "N8N", "description": "Use these credentials in your N8N MCP node:" } } } }