From 07f8a60b6978efe0b14648e6adb3c3073bbeebf4 Mon Sep 17 00:00:00 2001 From: sepehr Date: Thu, 30 Apr 2026 19:26:45 +0200 Subject: [PATCH] fix: Ollama base URL not read from per-purpose config keys in Docker + i18n for all locales MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The admin form saves Ollama URLs as OLLAMA_BASE_URL_TAGS/EMBEDDING/CHAT, but the factory only read OLLAMA_BASE_URL — causing 500 errors in Docker where no localhost fallback exists. Co-Authored-By: Claude Opus 4.7 --- memento-note/lib/ai/factory.ts | 19 +- memento-note/locales/ar.json | 2232 ++++++++++++++++--------------- memento-note/locales/de.json | 2255 +++++++++++++++---------------- memento-note/locales/es.json | 2227 ++++++++++++++++--------------- memento-note/locales/fa.json | 2298 ++++++++++++++++---------------- memento-note/locales/fr.json | 2136 ++++++++++++++--------------- memento-note/locales/hi.json | 2266 ++++++++++++++++--------------- memento-note/locales/it.json | 2245 +++++++++++++++---------------- memento-note/locales/ja.json | 2289 +++++++++++++++---------------- memento-note/locales/ko.json | 2232 ++++++++++++++++--------------- memento-note/locales/nl.json | 2245 +++++++++++++++---------------- memento-note/locales/pl.json | 2265 ++++++++++++++++--------------- memento-note/locales/pt.json | 2193 +++++++++++++++--------------- memento-note/locales/ru.json | 2193 +++++++++++++++--------------- memento-note/locales/zh.json | 2255 +++++++++++++++---------------- 15 files changed, 15895 insertions(+), 15455 deletions(-) diff --git a/memento-note/lib/ai/factory.ts b/memento-note/lib/ai/factory.ts index d05a0e6..3c2d96f 100644 --- a/memento-note/lib/ai/factory.ts +++ b/memento-note/lib/ai/factory.ts @@ -5,8 +5,8 @@ import { AIProvider } from './types'; type ProviderType = 'ollama' | 'openai' | 'custom' | 'deepseek' | 'openrouter'; -function createOllamaProvider(config: Record, modelName: string, embeddingModelName: string): OllamaProvider { - let baseUrl = config?.OLLAMA_BASE_URL || process.env.OLLAMA_BASE_URL +function createOllamaProvider(config: Record, modelName: string, embeddingModelName: string, baseUrlOverride?: string): OllamaProvider { + let baseUrl = baseUrlOverride || config?.OLLAMA_BASE_URL || process.env.OLLAMA_BASE_URL // Only use localhost as fallback for local development (not in Docker) if (!baseUrl && process.env.NODE_ENV !== 'production') { @@ -62,10 +62,10 @@ function createOpenRouterProvider(config: Record, modelName: str return new CustomOpenAIProvider(apiKey, 'https://openrouter.ai/api/v1', modelName, embeddingModelName); } -function getProviderInstance(providerType: ProviderType, config: Record, modelName: string, embeddingModelName: string): AIProvider { +function getProviderInstance(providerType: ProviderType, config: Record, modelName: string, embeddingModelName: string, ollamaBaseUrl?: string): AIProvider { switch (providerType) { case 'ollama': - return createOllamaProvider(config, modelName, embeddingModelName); + return createOllamaProvider(config, modelName, embeddingModelName, ollamaBaseUrl); case 'openai': return createOpenAIProvider(config, modelName, embeddingModelName); case 'custom': @@ -75,7 +75,7 @@ function getProviderInstance(providerType: ProviderType, config: Record): AIProvider { const provider = providerType.toLowerCase() as ProviderType; const modelName = config?.AI_MODEL_TAGS || process.env.AI_MODEL_TAGS || 'granite4:latest'; const embeddingModelName = config?.AI_MODEL_EMBEDDING || process.env.AI_MODEL_EMBEDDING || 'embeddinggemma:latest'; + const ollamaBaseUrl = config?.OLLAMA_BASE_URL_TAGS || config?.OLLAMA_BASE_URL; - return getProviderInstance(provider, config || {}, modelName, embeddingModelName); + return getProviderInstance(provider, config || {}, modelName, embeddingModelName, ollamaBaseUrl); } export function getEmbeddingsProvider(config?: Record): AIProvider { @@ -129,8 +130,9 @@ export function getEmbeddingsProvider(config?: Record): AIProvid const provider = providerType.toLowerCase() as ProviderType; const modelName = config?.AI_MODEL_TAGS || process.env.AI_MODEL_TAGS || 'granite4:latest'; const embeddingModelName = config?.AI_MODEL_EMBEDDING || process.env.AI_MODEL_EMBEDDING || 'embeddinggemma:latest'; + const ollamaBaseUrl = config?.OLLAMA_BASE_URL_EMBEDDING || config?.OLLAMA_BASE_URL; - return getProviderInstance(provider, config || {}, modelName, embeddingModelName); + return getProviderInstance(provider, config || {}, modelName, embeddingModelName, ollamaBaseUrl); } export function getAIProvider(config?: Record): AIProvider { @@ -167,6 +169,7 @@ export function getChatProvider(config?: Record): AIProvider { 'granite4:latest' ); const embeddingModelName = config?.AI_MODEL_EMBEDDING || process.env.AI_MODEL_EMBEDDING || 'embeddinggemma:latest'; + const ollamaBaseUrl = config?.OLLAMA_BASE_URL_CHAT || config?.OLLAMA_BASE_URL_TAGS || config?.OLLAMA_BASE_URL_EMBEDDING || config?.OLLAMA_BASE_URL; - return getProviderInstance(provider, config || {}, modelName, embeddingModelName); + return getProviderInstance(provider, config || {}, modelName, embeddingModelName, ollamaBaseUrl); } diff --git a/memento-note/locales/ar.json b/memento-note/locales/ar.json index a001ff8..db60312 100644 --- a/memento-note/locales/ar.json +++ b/memento-note/locales/ar.json @@ -1,277 +1,329 @@ { - "about": { - "appDescription": "تطبيق ملاحظات قوي مع ميزات مدعومة بالذكاء الاصطناعي", - "appName": "Memento", - "buildDate": "تاريخ البناء", - "description": "معلومات حول التطبيق", - "features": { - "description": "قدرات مدعومة بالذكاء الاصطناعي", - "dragDrop": "إدارة الملاحظات بالسحب والإفلات", - "labelSystem": "نظام التسميات", - "memoryEcho": "رؤى Memory Echo اليومية", - "multipleProviders": "مزودو ذكاء اصطناعي متعددون (OpenAI، Ollama)", - "notebookOrganization": "تنظيم الدفاتر", - "paragraphReformulation": "إعادة صياغة الفقرات", - "semanticSearch": "بحث دلالي مع التضمينات", - "title": "الميزات", - "titleSuggestions": "اقتراحات عناوين مدعومة بالذكاء الاصطناعي" - }, - "platform": "المنصة", - "platformWeb": "الويب", - "support": { - "description": "احصل على المساعدة وقدم الملاحظات", - "documentation": "التوثيق", - "feedback": "الملاحظات", - "reportIssues": "الإبلاغ عن المشاكل", - "title": "الدعم" - }, - "technology": { - "ai": "الذكاء الاصطناعي", - "authentication": "المصادقة", - "backend": "الواجهة الخلفية", - "database": "قاعدة البيانات", - "description": "مبني بتقنيات حديثة", - "frontend": "الواجهة الأمامية", - "testing": "الاختبار", - "title": "مجموعة التقنيات", - "ui": "واجهة المستخدم" - }, - "title": "حول", - "version": "الإصدار" + "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": "العودة إلى تسجيل الدخول", + "signOut": "Sign out", + "confirmPassword": "تأكيد كلمة المرور", + "confirmPasswordPlaceholder": "أعد إدخال كلمة المرور" }, - "admin": { - "ai": { - "apiKey": "مفتاح API", - "baseUrl": "عنوان URL الأساسي", - "commonEmbeddingModels": "نماذج التضمين الشائعة لواجهات API المتوافقة مع OpenAI", - "commonModelsDescription": "النماذج الشائعة لواجهات API المتوافقة مع OpenAI", - "description": "تكوين مزودي الذكاء الاصطناعي للوسوم التلقائية والبحث الدلالي. استخدم مزودين مختلفين للحصول على أفضل أداء.", - "embeddingsDescription": "مزود الذكاء الاصطناعي لتضمينات البحث الدلالي. موصى به: OpenAI (أفضل جودة).", - "embeddingsProvider": "مزود التضمينات", - "model": "النموذج", - "modelRecommendations": "gpt-4o-mini = أفضل قيمة • gpt-4o = أفضل جودة", - "openAIKeyDescription": "مفتاح OpenAI API الخاص بك من platform.openai.com", - "openTestPanel": "فتح لوحة اختبار الذكاء الاصطناعي", - "provider": "المزود", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING مطلوب", - "providerTagsRequired": "AI_PROVIDER_TAGS مطلوب", - "saveSettings": "حفظ إعدادات الذكاء الاصطناعي", - "saving": "جاري الحفظ...", - "selectEmbeddingModel": "اختر نموذج التضمين المثبت على نظامك", - "selectOllamaModel": "اختر نموذج Ollama المثبت على نظامك", - "tagsGenerationDescription": "مزود الذكاء الاصطناعي لاقتراحات الوسوم التلقائية. موصى به: Ollama (مجاني، محلي).", - "tagsGenerationProvider": "مزود توليد الوسوم", - "title": "تكوين الذكاء الاصطناعي", - "updateFailed": "فشل تحديث إعدادات الذكاء الاصطناعي", - "updateSuccess": "تم تحديث إعدادات الذكاء الاصطناعي بنجاح", - "bestValue": "أفضل قيمة", - "bestQuality": "أفضل جودة", - "providerOllamaOption": "🦙 Ollama (Local & Free)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Custom OpenAI-Compatible", - "saved": "(تم الحفظ)", - "chatProvider": "مزود الدردشة", - "chatDescription": "مزود الذكاء الاصطناعي لمساعد الدردشة. يستخدم مزود الوسوم إذا لم يتم تكوينه.", - "fetchModelsFailed": "فشل في جلب النماذج", - "refreshModels": "تحديث النماذج", - "configured": "مكوّن", - "fetchingModels": "جارٍ جلب النماذج...", - "clickToLoadModels": "انقر على ↺ لتحميل النماذج", - "searchModel": "البحث عن نموذج...", - "noModels": "لا توجد نماذج. انقر على ↺", - "modelsAvailable": "{count} نموذج متاح", - "enterUrlToLoad": "أدخل الرابط وانقر على ↺ لتحميل النماذج", - "currentProvider": "(الحالي: {provider})", - "pageTitle": "إدارة الذكاء الاصطناعي", - "pageDescription": "مراقبة وتكوين ميزات الذكاء الاصطناعي", - "configure": "تكوين", - "features": "ميزات الذكاء الاصطناعي", - "providerStatus": "حالة مزودي الذكاء الاصطناعي", - "recentRequests": "طلبات الذكاء الاصطناعي الأخيرة", - "comingSoon": "قريباً", - "activeFeatures": "الميزات النشطة", - "successRate": "معدل النجاح", - "avgResponseTime": "متوسط وقت الاستجابة", - "configuredProviders": "المزودون المكوّنون", - "settingUpdated": "تم تحديث الإعداد", - "updateFailedShort": "فشل في التحديث", - "titleSuggestions": "اقتراحات العناوين", - "titleSuggestionsDesc": "يقترح عناوين للملاحظات بعد 50+ كلمة", - "aiAssistant": "مساعد الذكاء الاصطناعي", - "aiAssistantDesc": "تفعيل المحادثة مع الذكاء الاصطناعي وأدوات تحسين النص", - "memoryEchoFeature": "لاحظت شيئاً ما...", - "memoryEchoFeatureDesc": "تحليل يومي للروابط بين ملاحظاتك", - "languageDetection": "اكتشاف اللغة", - "languageDetectionDesc": "يكتشف تلقائياً لغة كل ملاحظة", - "autoLabeling": "التصنيف التلقائي", - "autoLabelingDesc": "يقترح ويطبق التصنيفات تلقائياً" - }, - "aiTest": { - "description": "اختبر مزودي الذكاء الاصطناعي لتوليد الوسوم وتضمينات البحث الدلالي", - "embeddingDimensions": "أبعاد التضمين:", - "embeddingsTestDescription": "اختبر مزود الذكاء الاصطناعي المسؤول عن تضمينات البحث الدلالي", - "embeddingsTestTitle": "اختبار التضمينات", - "error": "خطأ:", - "first5Values": "أول 5 قيم:", - "generatedTags": "الوسوم المولدة:", - "howItWorksTitle": "كيف يعمل الاختبار", - "model": "النموذج:", - "provider": "المزود:", - "responseTime": "وقت الاستجابة: {time} مللي ثانية", - "runTest": "تشغيل الاختبار", - "tagsTestDescription": "اختبر مزود الذكاء الاصطناعي المسؤول عن اقتراحات الوسوم التلقائية", - "tagsTestTitle": "اختبار توليد الوسوم", - "testError": "خطأ في الاختبار: {error}", - "testFailed": "فشل الاختبار", - "testPassed": "نجح الاختبار", - "testing": "جاري الاختبار...", - "tipDescription": "استخدم لوحة اختبار الذكاء الاصطناعي لتشخيص مشاكل التكوين قبل الاختبار.", - "tipTitle": "نصيحة:", - "title": "اختبار مزود الذكاء الاصطناعي", - "vectorDimensions": "أبعاد المتجه", - "tagsGenerationTest": "🏷️ اختبار توليد الوسوم:", - "tagsStep1": "يرسل ملاحظة نموذجية إلى مزود الذكاء الاصطناعي", - "tagsStep2": "يطلب 3-5 وسوم ذات صلة بناءً على المحتوى", - "tagsStep3": "يعرض الوسوم المولدة مع درجات الثقة", - "tagsStep4": "يقيس وقت الاستجابة", - "embeddingsTestLabel": "🔍 اختبار التضمينات:", - "embeddingsStep1": "يرسل نصاً نموذجياً إلى مزود التضمينات", - "embeddingsStep2": "ينشئ تمثيلاً متجهياً (قائمة أرقام)", - "embeddingsStep3": "يعرض أبعاد التضمين وقيم نموذجية", - "embeddingsStep4": "يتحقق من أن المتجه صالح ومنسق بشكل صحيح", - "tipContent": "يمكنك استخدام مزودين مختلفين للوسوم والتضمينات! استخدم Ollama (مجاني) للوسوم و OpenAI (أفضل جودة) للتضمينات لتحسين التكلفة والأداء.", - "testSuccessToast": "نجح اختبار {type}!", - "testFailedToast": "فشل اختبار {type}", - "testingType": "جاري اختبار {type}...", - "technicalDetails": "التفاصيل التقنية" - }, - "aiTesting": "اختبار الذكاء الاصطناعي", - "security": { - "allowPublicRegistration": "السماح بالتسجيل العام", - "allowPublicRegistrationDescription": "إذا تم تعطيله، يمكن للمشرف فقط إضافة مستخدمين جدد عبر صفحة إدارة المستخدمين.", - "description": "إدارة التحكم في الوصول وسياسات التسجيل.", - "title": "إعدادات الأمان", - "updateFailed": "فشل تحديث إعدادات الأمان", - "updateSuccess": "تم تحديث إعدادات الأمان" - }, - "settings": "إعدادات المشرف", - "resend": { - "title": "Resend (موصى به)", - "description": "إرسال رسائل البريد عبر واجهة برمجة Resend. يُفضل على SMTP إذا تم تكوينه.", - "apiKey": "مفتاح API لـ Resend", - "apiKeyHint": "احصل على مفتاح API من resend.com. يُستخدم لإشعارات الوكلاء وإعادة تعيين كلمة المرور.", - "saveSettings": "حفظ إعدادات Resend", - "updateSuccess": "تم تحديث إعدادات Resend", - "updateFailed": "فشل تحديث إعدادات Resend", - "configured": "تم تكوين Resend وهو نشط" - }, - "email": { - "title": "إعدادات البريد الإلكتروني", - "description": "تكوين إرسال البريد الإلكتروني لإشعارات الوكلاء وإعادة تعيين كلمة المرور.", - "provider": "مزود البريد الإلكتروني", - "saveSettings": "حفظ إعدادات البريد الإلكتروني" - }, - "smtp": { - "description": "تكوين خادم البريد الإلكتروني لإعادة تعيين كلمة المرور.", - "forceSSL": "فرض SSL/TLS (عادة للمنفذ 465)", - "fromEmail": "من البريد الإلكتروني", - "host": "المضيف", - "ignoreCertErrors": "تجاهل أخطاء الشهادة (للمضيف الذاتي/التطوير فقط)", - "password": "كلمة المرور", - "port": "المنفذ", - "saveSettings": "حفظ إعدادات SMTP", - "sending": "جاري الإرسال...", - "testEmail": "بريد إلكتروني تجريبي", - "testFailed": "فشل: {error}", - "testSuccess": "تم إرسال البريد الإلكتروني التجريبي بنجاح!", - "title": "تكوين SMTP", - "updateFailed": "فشل تحديث إعدادات SMTP", - "updateSuccess": "تم تحديث إعدادات SMTP", - "username": "اسم المستخدم" - }, - "title": "لوحة تحكم المشرف", - "userManagement": "إدارة المستخدمين", - "users": { - "addUser": "إضافة مستخدم", - "confirmDelete": "Are you sure? This action cannot be undone.", - "createFailed": "فشل إنشاء المستخدم", - "createSuccess": "تم إنشاء المستخدم بنجاح", - "createUser": "إنشاء مستخدم", - "createUserDescription": "إضافة مستخدم جديد إلى النظام.", - "deleteFailed": "فشل الحذف", - "deleteSuccess": "تم حذف المستخدم", - "demote": "تخفيض", - "email": "البريد الإلكتروني", - "name": "الاسم", - "password": "كلمة المرور", - "promote": "ترقية", - "role": "الدور", - "roleUpdateFailed": "فشل تحديث الدور", - "roleUpdateSuccess": "تم تحديث دور المستخدم إلى {role}", - "roles": { - "admin": "مشرف", - "user": "مستخدم" - }, - "table": { - "actions": "الإجراءات", - "createdAt": "تاريخ الإنشاء", - "email": "البريد الإلكتروني", - "name": "الاسم", - "role": "الدور" - }, - "title": "المستخدمون", - "description": "إدارة مستخدمي التطبيق والصلاحيات" - }, - "chat": "AI Chat", - "lab": "The Lab", - "agents": "Agents", - "workspace": "Workspace", - "sidebar": { - "dashboard": "لوحة التحكم", - "users": "المستخدمون", - "aiManagement": "إدارة الذكاء الاصطناعي", - "chat": "دردشة الذكاء الاصطناعي", - "lab": "المختبر (أفكار)", - "agents": "الوكلاء", - "settings": "الإعدادات" - }, - "metrics": { - "vsLastPeriod": "vs الفترة السابقة" - }, - "tools": { - "title": "أدوات الوكيل", - "description": "تكوين الأدوات الخارجية لاستخدام أدوات الوكيل: بحث الويب، استخراج الويب، والوصول إلى API.", - "searchProvider": "مزود بحث الويب", - "searxng": "SearXNG (مستضاف ذاتيًا)", - "brave": "Brave Search API", - "both": "كلاهما (SearXNG أساسي، Brave احتياطي)", - "searxngUrl": "رابط SearXNG", - "braveKey": "مفتاح Brave Search API", - "jinaKey": "مفتاح Jina Reader API", - "jinaKeyOptional": "اختياري — يعمل بدونه ولكن مع حدود معدل", - "jinaKeyDescription": "يُستخدم لاستخراج الويب. يعمل بدون مفتاح ولكن مع حدود معدل.", - "saveSettings": "حفظ إعدادات الأدوات", - "updateSuccess": "تم تحديث إعدادات الأدوات بنجاح", - "updateFailed": "فشل تحديث إعدادات الأدوات", - "testing": "جارٍ الاختبار...", - "testSearch": "اختبار البحث على الويب" - }, - "settingsDescription": "تكوين الإعدادات العامة للتطبيق", - "dashboard": { - "title": "لوحة التحكم", - "description": "نظرة عامة على مقاييس التطبيق", - "recentActivity": "النشاط الأخير", - "recentActivityPlaceholder": "سيتم عرض النشاط الأخير هنا." - }, - "error": { - "title": "حدث خطأ في الإدارة", - "description": "فشل عرض هذه الصفحة. يمكنك إعادة المحاولة.", - "retry": "إعادة المحاولة" - } + "sidebar": { + "notes": "Notes", + "reminders": "Reminders", + "labels": "Labels", + "editLabels": "Edit labels", + "newNoteTabs": "ملاحظة جديدة", + "newNoteTabsHint": "إنشاء ملاحظة في هذا الدفتر", + "noLabelsInNotebook": "لا توجد تسميات في هذا الدفتر", + "archive": "Archive", + "trash": "Trash", + "clearFilter": "Remove filter" + }, + "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": "فشل في إنشاء الملاحظة", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "aiAssistant": "مساعد الذكاء الاصطناعي", + "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)", + "pinnedNotes": "الملاحظات المثبتة", + "recent": "الحديثة", + "addNote": "إضافة ملاحظة", + "remove": "إزالة", + "dragToReorder": "اسحب لإعادة الترتيب", + "more": "المزيد", + "emptyState": "لا توجد ملاحظات", + "emptyStateTabs": "لا توجد ملاحظات في هذا العرض. استخدم \"ملاحظة جديدة\" في الشريط الجانبي (اقتراحات عناوين بالذكاء الاصطناعي متاحة).", + "inNotebook": "في الدفتر", + "moveFailed": "فشل النقل", + "clarifyFailed": "فشل التوضيح", + "shortenFailed": "فشل الاختصار", + "improveFailed": "فشل التحسين", + "transformFailed": "فشل التحويل", + "markdown": "Markdown", + "unpinned": "غير مثبت", + "redoShortcut": "إعادة (Ctrl+Y)", + "undoShortcut": "تراجع (Ctrl+Z)", + "viewCards": "عرض البطاقات", + "viewCardsTooltip": "شبكة بطاقات مع إعادة ترتيب بالسحب والإفلات", + "viewTabs": "عرض القائمة", + "viewTabsTooltip": "علامات تبويب أعلى، الملاحظة أسفل — اسحب للترتيب", + "viewModeGroup": "وضع عرض الملاحظات", + "reorderTabs": "إعادة ترتيب علامة التبويب", + "modified": "معدلة", + "created": "منشأة", + "loading": "جاري التحميل...", + "exportPDF": "تصدير PDF", + "savedStatus": "تم الحفظ", + "dirtyStatus": "معدّل", + "completedLabel": "مكتمل", + "notes.emptyNotebook": "دفتر فارغ", + "notes.emptyNotebookDesc": "لا توجد ملاحظات. انقر على + لإنشاء واحدة.", + "notes.noNoteSelected": "لم يتم تحديد ملاحظة", + "notes.selectOrCreateNote": "اختر ملاحظة من القائمة أو أنشئ واحدة جديدة.", + "commitVersion": "حفظ النسخة", + "versionSaved": "تم حفظ النسخة", + "deleteVersion": "حذف هذه النسخة", + "versionDeleted": "تم حذف النسخة", + "deleteVersionConfirm": "حذف هذه النسخة نهائياً؟", + "historyMode": "وضع السجل", + "historyModeManual": "يدوي (زر الالتزام)", + "historyModeAuto": "تلقائي (ذكي)", + "historyModeManualDesc": "إنشاء لقطات يدوياً بزر الالتزام", + "historyModeAutoDesc": "لقاطات تلقائية بالكشف الذكي", + "history": "السجل", + "historyRestored": "تم استعادة النسخة", + "historyEnabled": "تم تفعيل السجل", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "السجل معطل لحسابك.", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "تفعيل السجل", + "historyEmpty": "لا توجد نسخ متاحة", + "historySelectVersion": "اختر نسخة لمعاينة محتواها", + "sortBy": "ترتيب حسب", + "sortDateDesc": "التاريخ (الأحدث)", + "sortDateAsc": "التاريخ (الأقدم)", + "sortTitleAsc": "العنوان أ ← ي", + "sortTitleDesc": "العنوان ي ← أ", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "pagination": { + "previous": "←", + "pageInfo": "صفحة {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?", + "labelRemoved": "Label \"{label}\" removed" + }, + "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", + "disabledAdmin": "البحث معطل في وضع المسؤول" + }, + "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": "الذكاء الاصطناعي يحلل...", + "clickToAddTag": "انقر لإضافة هذا الوسم", + "ignoreSuggestion": "تجاهل هذا الاقتراح", + "generatingTitles": "جاري إنشاء العناوين...", + "generateTitlesTooltip": "إنشاء عناوين بالذكاء الاصطناعي", + "poweredByAI": "مدعوم بالذكاء الاصطناعي", + "languageDetected": "تم اكتشاف اللغة", + "processing": "جاري المعالجة...", + "tagAdded": "تمت إضافة الوسم \"{tag}\"", + "titleGenerating": "جاري الإنشاء...", + "titleGenerateWithAI": "إنشاء عناوين بالذكاء الاصطناعي", + "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": "مساعد الذكاء الاصطناعي", + "generating": "جاري الإنشاء...", + "generateTitles": "إنشاء عناوين", + "reformulateText": "إعادة صياغة النص", + "reformulating": "جاري إعادة الصياغة...", + "clarify": "توضيح", + "shorten": "اختصار", + "improveStyle": "تحسين الأسلوب", + "reformulationComparison": "مقارنة إعادة الصياغة", + "original": "الأصلي", + "reformulated": "معاد صياغته", "autoLabels": { "error": "فشل في جلب اقتراحات التصنيفات", "noLabelsSelected": "لم يتم اختيار تصنيفات", @@ -304,47 +356,11 @@ "selectAllIn": "تحديد جميع الملاحظات في {notebook}", "selectNote": "تحديد ملاحظة: {title}" }, - "clarify": "توضيح", - "clickToAddTag": "انقر لإضافة هذا الوسم", - "generateTitles": "إنشاء عناوين", - "generateTitlesTooltip": "إنشاء عناوين بالذكاء الاصطناعي", - "generating": "جاري الإنشاء...", - "generatingTitles": "جاري إنشاء العناوين...", - "ignoreSuggestion": "تجاهل هذا الاقتراح", - "improveStyle": "تحسين الأسلوب", - "languageDetected": "تم اكتشاف اللغة", "notebookSummary": { "regenerate": "إعادة إنشاء الملخص", "regenerating": "إعادة إنشاء الملخص...", "exportPDF": "تصدير كـ PDF" }, - "original": "الأصلي", - "poweredByAI": "مدعوم بالذكاء الاصطناعي", - "processing": "جاري المعالجة...", - "reformulateText": "إعادة صياغة النص", - "reformulated": "معاد صياغته", - "reformulating": "جاري إعادة الصياغة...", - "reformulationApplied": "تم تطبيق النص المعاد صياغته!", - "reformulationComparison": "مقارنة إعادة الصياغة", - "reformulationError": "خطأ أثناء إعادة الصياغة", - "reformulationFailed": "فشل في إعادة صياغة النص", - "reformulationMaxWords": "يجب أن يحتوي النص على 500 كلمة كحد أقصى", - "reformulationMinWords": "يجب أن يحتوي النص على 10 كلمات على الأقل (الحالي: {count} كلمات)", - "reformulationNoText": "الرجاء تحديد النص أو إضافة محتوى", - "reformulationSelectionTooShort": "التحديد قصير جداً، سيتم استخدام المحتوى الكامل", - "shorten": "اختصار", - "tagAdded": "تمت إضافة الوسم \"{tag}\"", - "titleApplied": "تم تطبيق العنوان!", - "titleGenerateWithAI": "إنشاء عناوين بالذكاء الاصطناعي", - "titleGenerating": "جاري الإنشاء...", - "titleGenerationError": "خطأ في إنشاء العناوين", - "titleGenerationFailed": "فشل في إنشاء العناوين", - "titleGenerationMinWords": "يجب أن يحتوي المحتوى على 10 كلمات على الأقل لإنشاء العناوين (الحالي: {count} كلمات)", - "titlesGenerated": "💡 تم إنشاء {count} عنوان!", - "transformError": "خطأ أثناء التحويل", - "transformMarkdown": "التحويل إلى Markdown", - "transformSuccess": "تم تحويل النص إلى Markdown بنجاح!", - "transforming": "جاري التحويل...", "clarifyDesc": "جعل النص أوضح وأسهل للفهم", "shortenDesc": "تلخيص النص والوصول إلى النقطة", "improve": "تحسين الكتابة", @@ -389,11 +405,14 @@ "transformationsDesc": "التحويلات — مطبقة مباشرة في الملاحظة", "writeMinWordsAction": "اكتب 5 كلمات على الأقل لتفعيل إجراءات الذكاء الاصطناعي.", "processingAction": "جاري المعالجة...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "توضيح", "shorten": "تقصير", "improve": "تحسين", - "toMarkdown": "إلى Markdown" + "toMarkdown": "إلى Markdown", + "describeImages": "Describe images" }, "openAssistant": "فتح مساعد الذكاء الاصطناعي", "poweredByMomento": "مدعوم من Momento AI", @@ -408,22 +427,256 @@ "historyTab": "السجل", "insightsTab": "رؤى", "aiCopilot": "مساعد ذكي", - "suggestTitle": "اقتراح عنوان بالذكاء الاصطناعي" + "suggestTitle": "اقتراح عنوان بالذكاء الاصطناعي", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" + }, + "titleSuggestions": { + "available": "اقتراحات العنوان", + "title": "اقتراحات الذكاء الاصطناعي", + "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} اتصال", + "match": "{percentage}% تطابق", + "fused": "مدمج", + "clickToView": "انقر لعرض الملاحظة", + "overlay": { + "title": "الملاحظات المتصلة", + "searchPlaceholder": "البحث عن الاتصالات...", + "sortBy": "ترتيب حسب:", + "sortSimilarity": "التشابه", + "sortRecent": "الأحدث", + "sortOldest": "الأقدم", + "viewAll": "عرض الكل جنباً إلى جنب", + "loading": "جاري التحميل...", + "noConnections": "لم يتم العثور على اتصالات", + "error": "خطأ في تحميل الاتصالات" + }, + "comparison": { + "title": "💡 مقارنة الملاحظات", + "similarityInfo": "هذه الملاحظات متصلة بنسبة تشابه {similarity}%", + "highSimilarityInsight": "هذه الملاحظات تعالج نفس الموضوع مع درجة عالية من التشابه. يمكن دمجها أو توحيدها.", + "untitled": "بدون عنوان", + "clickToView": "انقر لعرض الملاحظة", + "helpfulQuestion": "هل هذه المقارنة مفيدة؟", + "helpful": "مفيد", + "notHelpful": "غير مفيد" + }, + "editorSection": { + "title": "⚡ الملاحظات المتصلة ({count})", + "loading": "جاري التحميل...", + "view": "عرض", + "compare": "مقارنة", + "merge": "دمج", + "compareAll": "مقارنة الكل", + "mergeAll": "دمج الكل", + "close": "إغلاق" + }, + "fusion": { + "title": "🔗 الدمج الذكي", + "mergeNotes": "دمج {count} ملاحظة", + "notesToMerge": "📝 الملاحظات للدمج", + "optionalPrompt": "💬 مطالبة الدمج (اختياري)", + "promptPlaceholder": "تعليمات اختيارية للذكاء الاصطناعي (مثال: 'الحفاظ على الأسلوب الرسمي للملاحظة 1')...", + "generateFusion": "إنشاء الدمج", + "generating": "جاري الإنشاء...", + "previewTitle": "📝 معاينة الملاحظة المدمجة", + "edit": "تعديل", + "modify": "تعديل", + "finishEditing": "إنهاء التعديل", + "optionsTitle": "خيارات الدمج", + "archiveOriginals": "أرشفة الملاحظات الأصلية", + "keepAllTags": "الاحتفاظ بجميع الوسوم", + "useLatestTitle": "استخدام أحدث ملاحظة كعنوان", + "createBacklinks": "إنشاء رابط خلفي للملاحظات الأصلية", + "cancel": "إلغاء", + "confirmFusion": "تأكيد الدمج", + "success": "تم دمج الملاحظات بنجاح!", + "error": "فشل في دمج الملاحظات", + "generateError": "Failed to generate fusion", + "noContentReturned": "No fusion content returned from API", + "unknownDate": "Unknown date" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "شارك \"{title}\"", + "untitled": "بدون عنوان", + "notifications": "الإشعارات", + "declined": "تم رفض المشاركة", + "removed": "تمت إزالة الملاحظة من القائمة" + }, + "nav": { + "home": "الرئيسية", + "notes": "الملاحظات", + "notebooks": "الدفاتر", + "generalNotes": "الملاحظات العامة", + "archive": "الأرشيف", + "settings": "الإعدادات", + "profile": "الملف الشخصي", + "aiSettings": "إعدادات الذكاء الاصطناعي", + "logout": "تسجيل الخروج", + "login": "تسجيل الدخول", + "adminDashboard": "لوحة تحكم المشرف", + "diagnostics": "التشخيص", + "trash": "المهملات", + "support": "دعم Memento ☕", + "reminders": "التذكيرات", + "userManagement": "إدارة المستخدمين", + "accountSettings": "إعدادات الحساب", + "manageAISettings": "إدارة إعدادات الذكاء الاصطناعي", + "configureAI": "قم بتكوين ميزاتك المدعومة بالذكاء الاصطناعي والموفر والتفضيلات", + "supportDevelopment": "دعم تطوير Memento ☕", + "supportDescription": "Memento مجاني ومفتوح المصدر بنسبة 100%. يدعمك يساعد في الحفاظ على ذلك.", + "buyMeACoffee": "اشترِ لي قهوة", + "donationDescription": "قم بعمل تبرع لمرة واحدة أو أصبح داعماً شهرياً.", + "donateOnKofi": "التبرع على Ko-fi", + "donationNote": "بدون رسوم منصة • مدفوعات فورية • آمن", + "sponsorOnGithub": "الرعاية على GitHub", + "sponsorDescription": "كن راعياً شهرياً واحصل على التقدير.", + "workspace": "مساحة العمل", + "quickAccess": "الوصول السريع", + "myLibrary": "مكتبتي", + "favorites": "المفضلة", + "recent": "الحديثة", + "proPlan": "خطة احترافية", + "chat": "دردشة الذكاء الاصطناعي", + "lab": "المختبر", + "agents": "الوكلاء" + }, + "settings": { + "title": "الإعدادات", + "description": "إدارة إعداداتك وتفضيلاتك", + "account": "الحساب", + "appearance": "المظهر", + "theme": "المظهر", + "themeLight": "فاتح", + "themeDark": "داكن", + "themeSystem": "النظام", + "notifications": "الإشعارات", + "language": "اللغة", + "selectLanguage": "اختيار اللغة", + "security": "الأمان", + "about": "حول", + "version": "الإصدار", + "settingsSaved": "تم حفظ الإعدادات", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "خطأ في حفظ الإعدادات", + "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": "تمت مزامنة {created} تسمية، حذف {deleted} يتيمة", + "cleanupNothing": "لا حاجة لأي إجراء — التسميات متزامنة بالفعل مع ملاحظاتك", + "cleanupWithErrors": "بعض العمليات فشلت", + "cleanupError": "تعذر تنظيف التسميات", + "indexingComplete": "اكتملت الفهرسة: تمت معالجة {count} ملاحظة", + "indexingError": "خطأ أثناء الفهرسة", + "semanticIndexing": "Semantic Indexing", + "semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search", + "profile": "الملف الشخصي", + "searchNoResults": "لم يتم العثور على إعدادات مطابقة", + "languageAuto": "الكشف التلقائي", + "emailNotifications": "إشعارات البريد الإلكتروني", + "emailNotificationsDesc": "تلقي إشعارات مهمة عبر البريد الإلكتروني", + "desktopNotifications": "إشعارات سطح المكتب", + "desktopNotificationsDesc": "تلقي إشعارات في المتصفح", + "notificationsDesc": "إدارة تفضيلات الإشعارات" + }, + "profile": { + "title": "الملف الشخصي", + "description": "تحديث معلوماتك الشخصية", + "displayName": "اسم العرض", + "email": "البريد الإلكتروني", + "changePassword": "تغيير كلمة المرور", + "changePasswordDescription": "تحديث كلمة المرور. ستحتاج إلى كلمة المرور الحالية.", + "currentPassword": "كلمة المرور الحالية", + "newPassword": "كلمة المرور الجديدة", + "confirmPassword": "تأكيد كلمة المرور", + "updatePassword": "تحديث كلمة المرور", + "passwordChangeSuccess": "تم تغيير كلمة المرور بنجاح", + "passwordChangeFailed": "فشل في تغيير كلمة المرور", + "passwordUpdated": "تم تحديث كلمة المرور", + "passwordError": "خطأ في تحديث كلمة المرور", + "languagePreferences": "تفضيلات اللغة", + "languagePreferencesDescription": "اختر لغتك المفضلة لميزات الذكاء الاصطناعي والواجهة.", + "preferredLanguage": "اللغة المفضلة", + "selectLanguage": "اختر لغة", + "languageDescription": "سيتم استخدام هذه اللغة لميزات الذكاء الاصطناعي وتحليل المحتوى ونص الواجهة.", + "autoDetect": "الكشف التلقائي", + "updateSuccess": "تم تحديث الملف الشخصي", + "updateFailed": "فشل في تحديث الملف الشخصي", + "languageUpdateSuccess": "تم تحديث اللغة بنجاح", + "languageUpdateFailed": "فشل في تحديث اللغة", + "profileUpdated": "تم تحديث الملف الشخصي", + "profileError": "خطأ في تحديث الملف الشخصي", + "accountSettings": "إعدادات الحساب", + "manageAISettings": "إدارة إعدادات الذكاء الاصطناعي", + "displaySettings": "إعدادات العرض", + "displaySettingsDescription": "قم بتخصيص المظهر وحجم الخط.", + "fontSize": "حجم الخط", + "selectFontSize": "اختر حجم الخط", + "fontSizeSmall": "صغير", + "fontSizeMedium": "متوسط", + "fontSizeLarge": "كبير", + "fontSizeExtraLarge": "كبير جداً", + "fontSizeDescription": "قم بضبط حجم الخط لتحسين القراءة. ينطبق هذا على جميع النصوص في الواجهة.", + "fontSizeUpdateSuccess": "تم تحديث حجم الخط بنجاح", + "fontSizeUpdateFailed": "فشل في تحديث حجم الخط", + "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": "إعدادات الذكاء الاصطناعي", "description": "تكوين ميزاتك وتفضيلاتك المدعومة بالذكاء الاصطناعي", - "error": "فشل في تحديث الإعداد", "features": "ميزات الذكاء الاصطناعي", - "frequency": "التكرار", - "frequencyDaily": "يومي", - "frequencyWeekly": "أسبوعي", "provider": "مزود الذكاء الاصطناعي", "providerAuto": "تلقائي (موصى به)", "providerOllama": "Ollama (محلي)", "providerOpenAI": "OpenAI (سحابة)", - "saved": "تم تحديث الإعداد", + "frequency": "التكرار", + "frequencyDaily": "يومي", + "frequencyWeekly": "أسبوعي", "saving": "جاري الحفظ...", - "title": "إعدادات الذكاء الاصطناعي", + "saved": "تم تحديث الإعداد", + "error": "فشل في تحديث الإعداد", "titleSuggestionsDesc": "اقتراح عناوين للملاحظات بدون عنوان بعد 50+ كلمة", "paragraphRefactorDesc": "خيارات تحسين النص بالذكاء الاصطناعي", "frequencyDesc": "عدد مرات تحليل روابط الملاحظات", @@ -432,792 +685,518 @@ "providerOllamaDesc": "خصوصية 100%، يعمل محليًا", "providerOpenAIDesc": "الأكثر دقة، يتطلب مفتاح API" }, - "appearance": { - "description": "تخصيص مظهر التطبيق", - "title": "المظهر", - "notesViewDescription": "اختر كيفية عرض الملاحظات على الصفحة الرئيسية وفي الدفاتر.", - "notesViewLabel": "عرض الملاحظات", - "notesViewTabs": "علامات تبويب (نمط OneNote)", - "notesViewMasonry": "بطاقات (شبكة)" - }, - "auth": { - "backToLogin": "العودة إلى تسجيل الدخول", - "checkYourEmail": "تحقق من بريدك الإلكتروني", - "createAccount": "أنشئ حسابك", - "email": "البريد الإلكتروني", - "emailPlaceholder": "أدخل عنوان بريدك الإلكتروني", - "forgotPassword": "هل نسيت كلمة المرور؟", - "forgotPasswordDescription": "أدخل عنوان بريدك الإلكتروني وسنرسل لك رابطاً لإعادة تعيين كلمة المرور.", - "forgotPasswordTitle": "نسيان كلمة المرور", - "hasAccount": "لديك حساب بالفعل؟", - "name": "الاسم", - "namePlaceholder": "أدخل اسمك", - "noAccount": "ليس لديك حساب؟", - "orContinueWith": "أو المتابعة مع", - "password": "كلمة المرور", - "passwordMinChars": "أدخل كلمة المرور (6 أحرف على الأقل)", - "passwordPlaceholder": "أدخل كلمة المرور", - "rememberMe": "تذكرني", - "resetEmailSent": "أرسلنا رابط إعادة تعيين كلمة المرور إلى عنوان بريدك الإلكتروني إذا كان موجوداً في نظامنا.", - "resetPassword": "إعادة تعيين كلمة المرور", - "resetPasswordInstructions": "أدخل بريدك الإلكتروني لإعادة تعيين كلمة المرور", - "returnToLogin": "العودة إلى تسجيل الدخول", - "sendResetLink": "إرسال رابط إعادة التعيين", - "sending": "جاري الإرسال...", - "signIn": "تسجيل الدخول", - "signInToAccount": "سجل الدخول إلى حسابك", - "signOut": "Sign out", - "signUp": "إنشاء حساب", - "confirmPassword": "تأكيد كلمة المرور", - "confirmPasswordPlaceholder": "أعد إدخال كلمة المرور" - }, - "autoLabels": { - "analyzing": "جاري تحليل الملاحظات...", - "createNewLabel": "إنشاء هذا الوسم الجديد وإضافته", - "created": "تم إنشاء {count} وسم بنجاح", - "description": "لقد اكتشفت موضوعات متكررة في \"{notebookName}\" ({totalNotes} ملاحظة). إنشاء وسم لها؟", - "error": "فشل في جلب اقتراحات الوسوم", - "new": "(جديد)", - "noLabelsSelected": "لم يتم تحديد وسم", - "note": "ملاحظة", - "notes": "ملاحظات", - "title": "اقتراحات وسم جديدة", - "typeContent": "اكتب المحتوى للحصول على اقتراحات الوسوم...", - "typeForSuggestions": "اكتب للحصول على اقتراحات..." - }, - "batch": { - "organize": "تنظيم", - "organizeWithAI": "تنظيم بالذكاء الاصطناعي" - }, - "batchOrganization": { - "analyzing": "جاري تحليل الملاحظات...", - "apply": "تطبيق ({count})", - "applyFailed": "فشل تطبيق التنظيم", - "applying": "جاري التطبيق...", - "confidence": "ثقة", - "description": "س يقوم الذكاء الاصطناعي بتحليل ملاحظاتك ويقترح تنظيمها في دفاتر.", - "error": "فشل في إنشاء خطة التنظيم", - "noNotebooks": "لا توجد دفاتر متاحة. أنشئ أولاً دفاتر لتنظيم ملاحظاتك.", - "noNotesSelected": "لم يتم تحديد ملاحظات", - "noSuggestions": "لم يتمكن الذكاء الاصطناعي من إيجاد طريقة جيدة لتنظيم هذه الملاحظات.", - "notesToOrganize": "{count} ملاحظة للتنظيم", - "selectAllIn": "تحديد الكل", - "selectNote": "اختر ملاحظة", - "selected": "{count} محددة", - "success": "نجح التنظيم", - "title": "التنظيم بالذكاء الاصطناعي", - "unorganized": "{count} ملاحظة لم يتم تصنيفها وستبقى في الملاحظات العامة." - }, - "collaboration": { - "accessRevoked": "Access has been revoked", - "addCollaborator": "Add collaborator", - "addCollaboratorDescription": "Add people to collaborate on this note by their email address.", - "alreadyInList": "This email is already in the list", - "canEdit": "Can edit", - "canView": "Can view", - "done": "Done", - "emailAddress": "Email address", - "emailPlaceholder": "Enter email address", - "enterEmailAddress": "Enter email address", - "errorLoading": "Error loading collaborators", - "failedToAdd": "Failed to add collaborator", - "failedToRemove": "Failed to remove collaborator", - "invite": "Invite", - "noCollaborators": "No collaborators yet. Add someone above!", - "noCollaboratorsViewer": "No collaborators yet.", - "nowHasAccess": "{name} now has access to this note", - "owner": "Owner", - "pending": "Pending", - "pendingInvite": "Pending Invite", - "peopleWithAccess": "People with access", - "remove": "Remove", - "removeCollaborator": "Remove collaborator", - "shareNote": "Share note", - "shareWithCollaborators": "Share with collaborators", - "unnamedUser": "Unnamed User", - "viewerDescription": "You have access to this note. Only the owner can manage collaborators.", - "willBeAdded": "{email} will be added as collaborator when note is created" + "general": { + "loading": "جاري التحميل...", + "save": "حفظ", + "cancel": "إلغاء", + "add": "إضافة", + "edit": "تعديل", + "confirm": "تأكيد", + "close": "إغلاق", + "back": "رجوع", + "next": "التالي", + "previous": "السابق", + "submit": "إرسال", + "reset": "إعادة تعيين", + "apply": "تطبيق", + "clear": "مسح", + "select": "اختيار", + "tryAgain": "الرجاء المحاولة مرة أخرى", + "error": "حدث خطأ", + "operationSuccess": "نجحت العملية", + "operationFailed": "فشلت العملية", + "testConnection": "Test Connection", + "clean": "Clean", + "indexAll": "Index All", + "preview": "معاينة" }, "colors": { - "blue": "أزرق", "default": "الافتراضي", - "gray": "رمادي", - "green": "أخضر", - "orange": "برتقالي", - "pink": "وردي", - "purple": "بنفسجي", "red": "أحمر", - "yellow": "أصفر" + "blue": "أزرق", + "green": "أخضر", + "yellow": "أصفر", + "purple": "بنفسجي", + "pink": "وردي", + "orange": "برتقالي", + "gray": "رمادي" }, - "common": { - "add": "إضافة", - "cancel": "إلغاء", - "close": "إغلاق", - "confirm": "تأكيد", - "delete": "حذف", - "edit": "تعديل", - "error": "خطأ", - "loading": "جاري التحميل...", - "noResults": "لا توجد نتائج", - "notAvailable": "غير متاح", - "optional": "اختياري", - "remove": "إزالة", - "required": "مطلوب", - "save": "حفظ", - "search": "بحث", - "success": "نجاح", - "unknown": "غير معروف" + "reminder": { + "title": "التذكير", + "setReminder": "تعيين تذكير", + "removeReminder": "إزالة التذكير", + "reminderDate": "تاريخ التذكير", + "reminderTime": "وقت التذكير", + "save": "تعيين التذكير", + "cancel": "إلغاء" }, - "connection": { - "clickToView": "انقر لعرض الملاحظة", - "helpful": "مفيد", - "isHelpful": "هل هذا الاتصال مفيد؟", - "memoryEchoDiscovery": "اكتشاف Memory Echo", - "notHelpful": "غير مفيد", - "similarityInfo": "هذه الملاحظات متصلة بنسبة تشابه {similarity}%" - }, - "dataManagement": { - "cleanup": { - "button": "تنظيف", - "description": "إزالة التسميات والاتصالات التي تشير إلى ملاحظات محذوفة.", - "failed": "حدث خطأ أثناء التنظيف", - "title": "تنظيف البيانات اليتيمة" - }, - "cleanupComplete": "اكتمل التنظيف", - "cleanupError": "خطأ في التنظيف", - "dangerZone": "المنطقة الخطرة", - "dangerZoneDescription": "هذه العمليات لا يمكن التراجع عنها، يرجى الحذر", - "delete": { - "button": "حذف جميع الملاحظات", - "confirm": "هل أنت متأكد؟ سيؤدي هذا إلى حذف جميع ملاحظاتك نهائياً.", - "description": "حذف جميع ملاحظاتك نهائياً. لا يمكن التراجع عن هذا الإجراء.", - "failed": "فشل حذف الملاحظات", - "success": "تم حذف جميع الملاحظات", - "title": "حذف جميع الملاحظات" - }, - "deleting": "جاري الحذف...", - "export": { - "button": "تصدير الملاحظات", - "description": "قم بتنزيل جميع ملاحظاتك كملف JSON. يتضمن جميع المحتوى والتسميات والبيانات الوصفية.", - "failed": "فشل تصدير الملاحظات", - "success": "تم تصدير الملاحظات بنجاح", - "title": "تصدير جميع الملاحظات" - }, - "exporting": "جاري التصدير...", - "import": { - "button": "استيراد الملاحظات", - "description": "قم بتحميل ملف JSON لاستيراد الملاحظات. سيتم إضافتها إلى ملاحظاتك الحالية دون استبدالها.", - "failed": "فشل استيراد الملاحظات", - "success": "تم استيراد {count} ملاحظة", - "title": "استيراد الملاحظات" - }, - "importing": "جاري الاستيراد...", - "indexing": { - "button": "إعادة بناء الفهرس", - "description": "إعادة توليد التضمينات لجميع الملاحظات لتحسين البحث الدلالي.", - "failed": "حدث خطأ أثناء الفهرسة", - "success": "اكتملت الفهرسة: تمت معالجة {count} ملاحظة", - "title": "إعادة بناء فهرس البحث" - }, - "indexingComplete": "اكتملت الفهرسة", - "indexingError": "خطأ في الفهرسة", - "title": "إدارة البيانات", - "toolsDescription": "أدوات للحفاظ على صحة قاعدة البيانات" - }, - "demoMode": { - "activated": "تم تفعيل الوضع التجريبي! سيعمل Memory Echo الآن فوراً.", - "createNotesTip": "أنشئ ملاحظتين متشابهتين أو أكثر وشاهد Memory Echo أثناء العمل!", - "deactivated": "تم تعطيل الوضع التجريبي. تم استعادة المعلمات العادية.", - "delayBetweenNotes": "تأخير 0 يوم بين الملاحظات (عادة 7 أيام)", - "description": "تسريع Memory Echo للاختبار. تظهر الاتصالات فوراً.", - "parametersActive": "معلمات العرض النشطة:", - "similarityThreshold": "50% عتبة التشابه (عادة 75%)", - "title": "الوضع التجريبي", - "toggleFailed": "فشل في تبديل الوضع التجريبي", - "unlimitedInsights": "رؤى غير محدودة (بدون حدود للتكرار)" - }, - "diagnostics": { - "apiStatus": "حالة API", - "checking": "Checking...", - "configuredProvider": "المزود المكوّن", - "description": "Check your AI provider connection status", - "errorStatus": "Error", - "operational": "Operational", - "testDetails": "تفاصيل الاختبار:", - "tip1": "تأكد من تشغيل Ollama (ollama serve)", - "tip2": "تحقق من تثبيت النموذج (ollama pull llama3)", - "tip3": "تحقق من مفتاح OpenAI API الخاص بك", - "tip4": "تحقق من اتصال الشبكة", - "title": "التشخيص", - "troubleshootingTitle": "نصائح استكشاف الأخطاء:" - }, - "favorites": { - "noFavorites": "لا توجد مفضلات", - "pinToFavorite": "تثبيت في المفضلة", - "title": "المفضلة", - "toggleSection": "تبديل قسم المفضلة" - }, - "footer": { - "openSource": "نسخة مفتوحة المصدر", - "privacy": "الخصوصية", - "terms": "الشروط" - }, - "general": { - "add": "إضافة", - "apply": "تطبيق", - "back": "رجوع", - "cancel": "إلغاء", - "clean": "Clean", - "clear": "مسح", - "close": "إغلاق", - "confirm": "تأكيد", - "edit": "تعديل", - "error": "حدث خطأ", - "indexAll": "Index All", - "loading": "جاري التحميل...", - "next": "التالي", - "operationFailed": "فشلت العملية", - "operationSuccess": "نجحت العملية", - "preview": "معاينة", - "previous": "السابق", - "reset": "إعادة تعيين", - "save": "حفظ", - "select": "اختيار", - "submit": "إرسال", - "testConnection": "Test Connection", - "tryAgain": "الرجاء المحاولة مرة أخرى" - }, - "generalSettings": { - "description": "إعدادات التطبيق العامة", - "title": "الإعدادات العامة" - }, - "labels": { - "addLabel": "Add label", - "allLabels": "All Labels", - "changeColor": "Change Color", - "changeColorTooltip": "Change color", - "clearAll": "Clear all", - "confirmDelete": "Are you sure you want to delete this label?", - "count": "{count} labels", - "noLabels": "No labels", - "confirmDeleteShort": "Confirm?", - "labelRemoved": "Label \"{label}\" removed" - }, - "memoryEcho": { - "clickToView": "انقر لعرض الملاحظة", - "comparison": { - "clickToView": "انقر لعرض الملاحظة", - "helpful": "مفيد", - "helpfulQuestion": "هل هذه المقارنة مفيدة؟", - "highSimilarityInsight": "هذه الملاحظات تعالج نفس الموضوع مع درجة عالية من التشابه. يمكن دمجها أو توحيدها.", - "notHelpful": "غير مفيد", - "similarityInfo": "هذه الملاحظات متصلة بنسبة تشابه {similarity}%", - "title": "💡 مقارنة الملاحظات", - "untitled": "بدون عنوان" - }, - "connection": "اتصال", - "connections": "الاتصالات", - "connectionsBadge": "{count} اتصال", - "dailyInsight": "رؤية يومية من ملاحظاتك", - "description": "اتصالات استباقية بين ملاحظاتك", - "dismiss": "تجاهل مؤقتاً", - "editorSection": { - "close": "إغلاق", - "compare": "مقارنة", - "compareAll": "مقارنة الكل", - "loading": "جاري التحميل...", - "merge": "دمج", - "mergeAll": "دمج الكل", - "title": "⚡ الملاحظات المتصلة ({count})", - "view": "عرض" - }, - "fused": "مدمج", - "fusion": { - "archiveOriginals": "أرشفة الملاحظات الأصلية", - "cancel": "إلغاء", - "confirmFusion": "تأكيد الدمج", - "createBacklinks": "إنشاء رابط خلفي للملاحظات الأصلية", - "edit": "تعديل", - "error": "فشل في دمج الملاحظات", - "finishEditing": "إنهاء التعديل", - "generateError": "Failed to generate fusion", - "generateFusion": "إنشاء الدمج", - "generating": "جاري الإنشاء...", - "keepAllTags": "الاحتفاظ بجميع الوسوم", - "mergeNotes": "دمج {count} ملاحظة", - "modify": "تعديل", - "noContentReturned": "No fusion content returned from API", - "notesToMerge": "📝 الملاحظات للدمج", - "optionalPrompt": "💬 مطالبة الدمج (اختياري)", - "optionsTitle": "خيارات الدمج", - "previewTitle": "📝 معاينة الملاحظة المدمجة", - "promptPlaceholder": "تعليمات اختيارية للذكاء الاصطناعي (مثال: 'الحفاظ على الأسلوب الرسمي للملاحظة 1')...", - "success": "تم دمج الملاحظات بنجاح!", - "title": "🔗 الدمج الذكي", - "unknownDate": "Unknown date", - "useLatestTitle": "استخدام أحدث ملاحظة كعنوان" - }, - "helpful": "مفيد", - "insightReady": "رؤيتك جاهزة!", - "notHelpful": "غير مفيد", - "overlay": { - "error": "خطأ في تحميل الاتصالات", - "loading": "جاري التحميل...", - "noConnections": "لم يتم العثور على اتصالات", - "searchPlaceholder": "البحث عن الاتصالات...", - "sortBy": "ترتيب حسب:", - "sortOldest": "الأقدم", - "sortRecent": "الأحدث", - "sortSimilarity": "التشابه", - "title": "الملاحظات المتصلة", - "viewAll": "عرض الكل جنباً إلى جنب" - }, - "thanksFeedback": "شكراً على ملاحظاتك!", - "thanksFeedbackImproving": "شكراً! سنستخدم هذا للتحسين.", - "title": "لاحظت شيئاً ما...", - "viewConnection": "عرض الاتصال", - "match": "{percentage}% تطابق" - }, - "nav": { - "accountSettings": "إعدادات الحساب", - "adminDashboard": "لوحة تحكم المشرف", - "aiSettings": "إعدادات الذكاء الاصطناعي", - "archive": "الأرشيف", - "buyMeACoffee": "اشترِ لي قهوة", - "configureAI": "قم بتكوين ميزاتك المدعومة بالذكاء الاصطناعي والموفر والتفضيلات", - "diagnostics": "التشخيص", - "donateOnKofi": "التبرع على Ko-fi", - "donationDescription": "قم بعمل تبرع لمرة واحدة أو أصبح داعماً شهرياً.", - "donationNote": "بدون رسوم منصة • مدفوعات فورية • آمن", - "favorites": "المفضلة", - "generalNotes": "الملاحظات العامة", - "home": "الرئيسية", - "login": "تسجيل الدخول", - "logout": "تسجيل الخروج", - "manageAISettings": "إدارة إعدادات الذكاء الاصطناعي", - "myLibrary": "مكتبتي", - "notebooks": "الدفاتر", - "notes": "الملاحظات", - "proPlan": "خطة احترافية", - "profile": "الملف الشخصي", - "quickAccess": "الوصول السريع", - "recent": "الحديثة", - "reminders": "التذكيرات", - "settings": "الإعدادات", - "sponsorDescription": "كن راعياً شهرياً واحصل على التقدير.", - "sponsorOnGithub": "الرعاية على GitHub", - "support": "دعم Memento ☕", - "supportDescription": "Memento مجاني ومفتوح المصدر بنسبة 100%. يدعمك يساعد في الحفاظ على ذلك.", - "supportDevelopment": "دعم تطوير Memento ☕", - "trash": "المهملات", - "userManagement": "إدارة المستخدمين", - "workspace": "مساحة العمل", - "chat": "دردشة الذكاء الاصطناعي", - "lab": "المختبر", - "agents": "الوكلاء" + "reminders": { + "title": "التذكيرات", + "empty": "لا توجد تذكيرات", + "emptyDescription": "أضف تذكيراً إلى ملاحظة لتجده هنا.", + "upcoming": "قادمة", + "overdue": "متأخرة", + "done": "مكتملة", + "markDone": "وضع علامة مكتمل", + "markUndone": "وضع علامة غير مكتمل", + "todayAt": "اليوم في {time}", + "tomorrowAt": "غداً في {time}" }, "notebook": { - "cancel": "إلغاء", "create": "إنشاء دفتر", - "createDescription": "ابدأ مجموعة جديدة لتنظيم ملاحظاتك وأفكارك ومشاريعك بكفاءة.", "createNew": "إنشاء دفتر جديد", - "creating": "جاري الإنشاء...", - "delete": "حذف الدفتر", - "deleteConfirm": "حذف", - "deleteWarning": "هل أنت متأكد أنك تريد حذف هذا الدفتر؟ سيتم نقل الملاحظات إلى الملاحظات العامة.", - "edit": "تحرير الدفتر", - "editDescription": "تغيير اسم الدفتر وأيقونته ولونه.", - "generating": "جاري إنشاء الملخص...", - "labels": "التسميات", + "createDescription": "ابدأ مجموعة جديدة لتنظيم ملاحظاتك وأفكارك ومشاريعك بكفاءة.", "name": "اسم الدفتر", - "noLabels": "لا توجد تسميات", - "selectColor": "اللون", - "selectIcon": "الأيقونة", - "summary": "ملخص الدفتر", - "summaryDescription": "إنشاء ملخص مدعوم بالذكاء الاصطناعي لجميع الملاحظات في هذا الدفتر.", - "summaryError": "خطأ في إنشاء الملخص", "namePlaceholder": "مثال: استراتيجية التسويق الربع سنوية", "myNotebook": "دفتري", "saving": "جاري الحفظ...", + "selectIcon": "الأيقونة", + "selectColor": "اللون", + "cancel": "إلغاء", + "creating": "جاري الإنشاء...", + "edit": "تحرير الدفتر", + "editDescription": "تغيير اسم الدفتر وأيقونته ولونه.", + "delete": "حذف الدفتر", + "deleteWarning": "هل أنت متأكد أنك تريد حذف هذا الدفتر؟ سيتم نقل الملاحظات إلى الملاحظات العامة.", + "deleteConfirm": "حذف", + "summary": "ملخص الدفتر", + "summaryDescription": "إنشاء ملخص مدعوم بالذكاء الاصطناعي لجميع الملاحظات في هذا الدفتر.", + "generating": "جاري إنشاء الملخص...", + "summaryError": "خطأ في إنشاء الملخص", + "labels": "التسميات", + "noLabels": "لا توجد تسميات", "pdfTitle": "ملخص — {name}", "pdfNotesLabel": "الملاحظات:", "pdfGeneratedOn": "تم الإنشاء في:", "confidence": "ثقة", "savingReminder": "خطأ في حفظ التذكير", - "removingReminder": "خطأ في إزالة التذكير" + "removingReminder": "خطأ في إزالة التذكير", + "generatingDescription": "Please wait..." }, "notebookSuggestion": { + "title": "النقل إلى {name}؟", "description": "يبدو أن هذه الملاحظة تنتمي إلى هذا الدفتر", + "move": "نقل", "dismiss": "تجاهل", "dismissIn": "تجاهل (يغلق خلال {timeLeft}ثانية)", - "generalNotes": "الملاحظات العامة", - "move": "نقل", "moveToNotebook": "النقل إلى الدفتر", - "title": "النقل إلى {name}؟" + "generalNotes": "الملاحظات العامة" }, - "notebooks": { - "allNotebooks": "جميع الدفاتر", - "create": "إنشاء دفتر", - "createFirst": "إنشاء أول دفتر", - "noNotebooks": "لا توجد دفاتر" + "admin": { + "title": "لوحة تحكم المشرف", + "userManagement": "إدارة المستخدمين", + "chat": "AI Chat", + "lab": "The Lab", + "agents": "Agents", + "workspace": "Workspace", + "settings": "إعدادات المشرف", + "security": { + "title": "إعدادات الأمان", + "description": "إدارة التحكم في الوصول وسياسات التسجيل.", + "allowPublicRegistration": "السماح بالتسجيل العام", + "allowPublicRegistrationDescription": "إذا تم تعطيله، يمكن للمشرف فقط إضافة مستخدمين جدد عبر صفحة إدارة المستخدمين.", + "updateSuccess": "تم تحديث إعدادات الأمان", + "updateFailed": "فشل تحديث إعدادات الأمان" + }, + "ai": { + "title": "تكوين الذكاء الاصطناعي", + "description": "تكوين مزودي الذكاء الاصطناعي للوسوم التلقائية والبحث الدلالي. استخدم مزودين مختلفين للحصول على أفضل أداء.", + "tagsGenerationProvider": "مزود توليد الوسوم", + "tagsGenerationDescription": "مزود الذكاء الاصطناعي لاقتراحات الوسوم التلقائية. موصى به: Ollama (مجاني، محلي).", + "embeddingsProvider": "مزود التضمينات", + "embeddingsDescription": "مزود الذكاء الاصطناعي لتضمينات البحث الدلالي. موصى به: OpenAI (أفضل جودة).", + "chatProvider": "مزود الدردشة", + "chatDescription": "مزود الذكاء الاصطناعي لمساعد الدردشة. يستخدم مزود الوسوم إذا لم يتم تكوينه.", + "provider": "المزود", + "baseUrl": "عنوان URL الأساسي", + "model": "النموذج", + "apiKey": "مفتاح API", + "selectOllamaModel": "اختر نموذج Ollama المثبت على نظامك", + "openAIKeyDescription": "مفتاح OpenAI API الخاص بك من platform.openai.com", + "modelRecommendations": "gpt-4o-mini = أفضل قيمة • gpt-4o = أفضل جودة", + "commonModelsDescription": "النماذج الشائعة لواجهات API المتوافقة مع OpenAI", + "selectEmbeddingModel": "اختر نموذج التضمين المثبت على نظامك", + "commonEmbeddingModels": "نماذج التضمين الشائعة لواجهات API المتوافقة مع OpenAI", + "saving": "جاري الحفظ...", + "saveSettings": "حفظ إعدادات الذكاء الاصطناعي", + "openTestPanel": "فتح لوحة اختبار الذكاء الاصطناعي", + "updateSuccess": "تم تحديث إعدادات الذكاء الاصطناعي بنجاح", + "updateFailed": "فشل تحديث إعدادات الذكاء الاصطناعي", + "providerTagsRequired": "AI_PROVIDER_TAGS مطلوب", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING مطلوب", + "providerOllamaOption": "🦙 Ollama (Local & Free)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 Custom OpenAI-Compatible", + "bestValue": "أفضل قيمة", + "bestQuality": "أفضل جودة", + "saved": "(تم الحفظ)", + "fetchModelsFailed": "فشل في جلب النماذج", + "refreshModels": "تحديث النماذج", + "configured": "مكوّن", + "fetchingModels": "جارٍ جلب النماذج...", + "clickToLoadModels": "انقر على ↺ لتحميل النماذج", + "searchModel": "البحث عن نموذج...", + "noModels": "لا توجد نماذج. انقر على ↺", + "modelsAvailable": "{count} نموذج متاح", + "enterUrlToLoad": "أدخل الرابط وانقر على ↺ لتحميل النماذج", + "currentProvider": "(الحالي: {provider})", + "pageTitle": "إدارة الذكاء الاصطناعي", + "pageDescription": "مراقبة وتكوين ميزات الذكاء الاصطناعي", + "configure": "تكوين", + "features": "ميزات الذكاء الاصطناعي", + "providerStatus": "حالة مزودي الذكاء الاصطناعي", + "recentRequests": "طلبات الذكاء الاصطناعي الأخيرة", + "comingSoon": "قريباً", + "activeFeatures": "الميزات النشطة", + "successRate": "معدل النجاح", + "avgResponseTime": "متوسط وقت الاستجابة", + "configuredProviders": "المزودون المكوّنون", + "settingUpdated": "تم تحديث الإعداد", + "updateFailedShort": "فشل في التحديث", + "titleSuggestions": "اقتراحات العناوين", + "titleSuggestionsDesc": "يقترح عناوين للملاحظات بعد 50+ كلمة", + "aiAssistant": "مساعد الذكاء الاصطناعي", + "aiAssistantDesc": "تفعيل المحادثة مع الذكاء الاصطناعي وأدوات تحسين النص", + "memoryEchoFeature": "لاحظت شيئاً ما...", + "memoryEchoFeatureDesc": "تحليل يومي للروابط بين ملاحظاتك", + "languageDetection": "اكتشاف اللغة", + "languageDetectionDesc": "يكتشف تلقائياً لغة كل ملاحظة", + "autoLabeling": "التصنيف التلقائي", + "autoLabelingDesc": "يقترح ويطبق التصنيفات تلقائياً" + }, + "resend": { + "title": "Resend (موصى به)", + "description": "إرسال رسائل البريد عبر واجهة برمجة Resend. يُفضل على SMTP إذا تم تكوينه.", + "apiKey": "مفتاح API لـ Resend", + "apiKeyHint": "احصل على مفتاح API من resend.com. يُستخدم لإشعارات الوكلاء وإعادة تعيين كلمة المرور.", + "saveSettings": "حفظ إعدادات Resend", + "updateSuccess": "تم تحديث إعدادات Resend", + "updateFailed": "فشل تحديث إعدادات Resend", + "configured": "تم تكوين Resend وهو نشط" + }, + "email": { + "title": "إعدادات البريد الإلكتروني", + "description": "تكوين إرسال البريد الإلكتروني لإشعارات الوكلاء وإعادة تعيين كلمة المرور.", + "provider": "مزود البريد الإلكتروني", + "saveSettings": "حفظ إعدادات البريد الإلكتروني", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "smtp": { + "title": "تكوين SMTP", + "description": "تكوين خادم البريد الإلكتروني لإعادة تعيين كلمة المرور.", + "host": "المضيف", + "port": "المنفذ", + "username": "اسم المستخدم", + "password": "كلمة المرور", + "fromEmail": "من البريد الإلكتروني", + "forceSSL": "فرض SSL/TLS (عادة للمنفذ 465)", + "ignoreCertErrors": "تجاهل أخطاء الشهادة (للمضيف الذاتي/التطوير فقط)", + "saveSettings": "حفظ إعدادات SMTP", + "sending": "جاري الإرسال...", + "testEmail": "بريد إلكتروني تجريبي", + "updateSuccess": "تم تحديث إعدادات SMTP", + "updateFailed": "فشل تحديث إعدادات SMTP", + "testSuccess": "تم إرسال البريد الإلكتروني التجريبي بنجاح!", + "testFailed": "فشل: {error}" + }, + "users": { + "createUser": "إنشاء مستخدم", + "addUser": "إضافة مستخدم", + "createUserDescription": "إضافة مستخدم جديد إلى النظام.", + "name": "الاسم", + "email": "البريد الإلكتروني", + "password": "كلمة المرور", + "role": "الدور", + "createSuccess": "تم إنشاء المستخدم بنجاح", + "createFailed": "فشل إنشاء المستخدم", + "deleteSuccess": "تم حذف المستخدم", + "deleteFailed": "فشل الحذف", + "roleUpdateSuccess": "تم تحديث دور المستخدم إلى {role}", + "roleUpdateFailed": "فشل تحديث الدور", + "demote": "تخفيض", + "promote": "ترقية", + "confirmDelete": "Are you sure? This action cannot be undone.", + "table": { + "name": "الاسم", + "email": "البريد الإلكتروني", + "role": "الدور", + "createdAt": "تاريخ الإنشاء", + "actions": "الإجراءات" + }, + "roles": { + "user": "مستخدم", + "admin": "مشرف" + }, + "title": "المستخدمون", + "description": "إدارة مستخدمي التطبيق والصلاحيات" + }, + "aiTest": { + "title": "اختبار مزود الذكاء الاصطناعي", + "description": "اختبر مزودي الذكاء الاصطناعي لتوليد الوسوم وتضمينات البحث الدلالي", + "tagsTestTitle": "اختبار توليد الوسوم", + "tagsTestDescription": "اختبر مزود الذكاء الاصطناعي المسؤول عن اقتراحات الوسوم التلقائية", + "embeddingsTestTitle": "اختبار التضمينات", + "embeddingsTestDescription": "اختبر مزود الذكاء الاصطناعي المسؤول عن تضمينات البحث الدلالي", + "howItWorksTitle": "كيف يعمل الاختبار", + "tagsGenerationTest": "🏷️ اختبار توليد الوسوم:", + "tagsStep1": "يرسل ملاحظة نموذجية إلى مزود الذكاء الاصطناعي", + "tagsStep2": "يطلب 3-5 وسوم ذات صلة بناءً على المحتوى", + "tagsStep3": "يعرض الوسوم المولدة مع درجات الثقة", + "tagsStep4": "يقيس وقت الاستجابة", + "embeddingsTestLabel": "🔍 اختبار التضمينات:", + "embeddingsStep1": "يرسل نصاً نموذجياً إلى مزود التضمينات", + "embeddingsStep2": "ينشئ تمثيلاً متجهياً (قائمة أرقام)", + "embeddingsStep3": "يعرض أبعاد التضمين وقيم نموذجية", + "embeddingsStep4": "يتحقق من أن المتجه صالح ومنسق بشكل صحيح", + "tipContent": "يمكنك استخدام مزودين مختلفين للوسوم والتضمينات! استخدم Ollama (مجاني) للوسوم و OpenAI (أفضل جودة) للتضمينات لتحسين التكلفة والأداء.", + "provider": "المزود:", + "model": "النموذج:", + "testing": "جاري الاختبار...", + "runTest": "تشغيل الاختبار", + "testPassed": "نجح الاختبار", + "testFailed": "فشل الاختبار", + "testSuccessToast": "نجح اختبار {type}!", + "testFailedToast": "فشل اختبار {type}", + "testingType": "جاري اختبار {type}...", + "technicalDetails": "التفاصيل التقنية", + "responseTime": "وقت الاستجابة: {time} مللي ثانية", + "generatedTags": "الوسوم المولدة:", + "embeddingDimensions": "أبعاد التضمين:", + "vectorDimensions": "أبعاد المتجه", + "first5Values": "أول 5 قيم:", + "error": "خطأ:", + "testError": "خطأ في الاختبار: {error}", + "tipTitle": "نصيحة:", + "tipDescription": "استخدم لوحة اختبار الذكاء الاصطناعي لتشخيص مشاكل التكوين قبل الاختبار." + }, + "sidebar": { + "dashboard": "لوحة التحكم", + "users": "المستخدمون", + "aiManagement": "إدارة الذكاء الاصطناعي", + "chat": "دردشة الذكاء الاصطناعي", + "lab": "المختبر (أفكار)", + "agents": "الوكلاء", + "settings": "الإعدادات" + }, + "metrics": { + "vsLastPeriod": "vs الفترة السابقة" + }, + "tools": { + "title": "أدوات الوكيل", + "description": "تكوين الأدوات الخارجية لاستخدام أدوات الوكيل: بحث الويب، استخراج الويب، والوصول إلى API.", + "searchProvider": "مزود بحث الويب", + "searxng": "SearXNG (مستضاف ذاتيًا)", + "brave": "Brave Search API", + "both": "كلاهما (SearXNG أساسي، Brave احتياطي)", + "searxngUrl": "رابط SearXNG", + "braveKey": "مفتاح Brave Search API", + "jinaKey": "مفتاح Jina Reader API", + "jinaKeyOptional": "اختياري — يعمل بدونه ولكن مع حدود معدل", + "jinaKeyDescription": "يُستخدم لاستخراج الويب. يعمل بدون مفتاح ولكن مع حدود معدل.", + "saveSettings": "حفظ إعدادات الأدوات", + "updateSuccess": "تم تحديث إعدادات الأدوات بنجاح", + "updateFailed": "فشل تحديث إعدادات الأدوات", + "testing": "جارٍ الاختبار...", + "testSearch": "اختبار البحث على الويب" + }, + "settingsDescription": "تكوين الإعدادات العامة للتطبيق", + "dashboard": { + "title": "لوحة التحكم", + "description": "نظرة عامة على مقاييس التطبيق", + "recentActivity": "النشاط الأخير", + "recentActivityPlaceholder": "سيتم عرض النشاط الأخير هنا." + }, + "error": { + "title": "حدث خطأ في الإدارة", + "description": "فشل عرض هذه الصفحة. يمكنك إعادة المحاولة.", + "retry": "إعادة المحاولة" + } }, - "notes": { - "add": "إضافة", - "addCollaborators": "إضافة متعاونين", - "addImage": "إضافة صورة", - "addItem": "إضافة عنصر", - "addLink": "إضافة رابط", - "addListItem": "+ عنصر قائمة", - "addNote": "إضافة ملاحظة", - "adding": "جاري الإضافة...", - "aiAssistant": "مساعد الذكاء الاصطناعي", - "archive": "أرشفة", - "backgroundOptions": "خيارات الخلفية", - "changeColor": "تغيير اللون", - "changeSize": "تغيير الحجم", - "clarifyFailed": "فشل التوضيح", - "close": "إغلاق", - "color": "اللون", - "confirmDelete": "هل أنت متأكد أنك تريد حذف هذه الملاحظة؟", - "confirmLeaveShare": "هل أنت متأكد أنك تريد مغادرة هذه الملاحظة المشتركة؟", - "contentOrMediaRequired": "الرجاء إدخال بعض المحتوى أو إضافة رابط/صورة", - "copy": "نسخ", - "copyFailed": "فشل في نسخ الملاحظة", - "copySuccess": "تم نسخ الملاحظة بنجاح!", - "createFirstNote": "أنشئ ملاحظتك الأولى", - "date": "التاريخ", - "delete": "حذف", - "dragToReorder": "اسحب لإعادة الترتيب", - "duplicate": "نسخ", - "edit": "تعديل الملاحظة", - "emptyState": "لا توجد ملاحظات", - "fileTooLarge": "الملف كبير جداً: {fileName}. الحد الأقصى للحجم هو {maxSize}.", - "improveFailed": "فشل التحسين", - "inNotebook": "في الدفتر", - "invalidDateTime": "تاريخ أو وقت غير صالح", - "invalidFileType": "نوع ملف غير صالح: {fileName}. يُسمح فقط بـ JPEG و PNG و GIF و WebP.", - "itemOrMediaRequired": "الرجاء إضافة عنصر واحد على الأقل أو وسائط", - "large": "كبير", - "leaveShare": "مغادرة", - "linkAddFailed": "فشل في إضافة الرابط", - "linkAdded": "تمت إضافة الرابط", - "linkMetadataFailed": "تعذر جلب بيانات التعريف الخاصة بالرابط", - "listItem": "عنصر قائمة", - "makeCopy": "إنشاء نسخة", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown معطّل", - "markdownOn": "Markdown مفعّل", - "markdownPlaceholder": "اكتب ملاحظة... (Markdown مدعوم)", - "medium": "متوسط", - "more": "المزيد", - "moreOptions": "المزيد من الخيارات", - "moveFailed": "فشل النقل", - "newChecklist": "قائمة تحقق جديدة", - "newNote": "ملاحظة جديدة", - "noContent": "لا يوجد محتوى", - "noNotes": "لا توجد ملاحظات", - "noNotesFound": "لم يتم العثور على ملاحظات", - "noteCreateFailed": "فشل في إنشاء الملاحظة", - "noteCreated": "تم إنشاء الملاحظة بنجاح", - "others": "أخرى", - "pin": "تثبيت", - "pinned": "مثبتة", - "pinnedNotes": "الملاحظات المثبتة", - "placeholder": "اكتب ملاحظة...", - "preview": "معاينة", - "readOnly": "قراءة فقط", - "recent": "الحديثة", - "redo": "إعادة (Ctrl+Y)", - "redoShortcut": "إعادة (Ctrl+Y)", - "remindMe": "ذكرني", - "reminderDateTimeRequired": "الرجاء إدخال التاريخ والوقت", - "reminderMustBeFuture": "يجب أن يكون التذكير في المستقبل", - "reminderPastError": "يجب أن يكون التذكير في المستقبل", - "reminderRemoved": "تم إزالة التذكير", - "reminderSet": "تم تعيين التذكير في {datetime}", - "remove": "إزالة", - "saving": "جاري الحفظ...", - "setReminder": "تعيين تذكير", - "setReminderButton": "تعيين تذكير", - "share": "مشاركة", - "shareWithCollaborators": "المشاركة مع المتعاونين", - "sharedBy": "شاركها", - "sharedReadOnly": "هذه الملاحظة مشتركة معك في وضع القراءة فقط", - "shortenFailed": "فشل الاختصار", - "showCollaborators": "إظهار المتعاونين", - "size": "الحجم", - "small": "صغير", - "takeNote": "اكتب ملاحظة...", - "takeNoteMarkdown": "اكتب ملاحظة... (Markdown مدعوم)", - "time": "الوقت", - "title": "الملاحظات", - "titlePlaceholder": "العنوان", - "transformFailed": "فشل التحويل", - "unarchive": "إلغاء الأرشفة", - "undo": "تراجع (Ctrl+Z)", - "undoShortcut": "تراجع (Ctrl+Z)", - "unpin": "إلغاء التثبيت", - "unpinned": "غير مثبت", - "untitled": "بدون عنوان", - "uploadFailed": "فشل في رفع {filename}", - "view": "عرض الملاحظة", - "emptyStateTabs": "لا توجد ملاحظات في هذا العرض. استخدم \"ملاحظة جديدة\" في الشريط الجانبي (اقتراحات عناوين بالذكاء الاصطناعي متاحة).", - "viewCards": "عرض البطاقات", - "viewCardsTooltip": "شبكة بطاقات مع إعادة ترتيب بالسحب والإفلات", - "viewTabs": "عرض القائمة", - "viewTabsTooltip": "علامات تبويب أعلى، الملاحظة أسفل — اسحب للترتيب", - "viewModeGroup": "وضع عرض الملاحظات", - "reorderTabs": "إعادة ترتيب علامة التبويب", - "modified": "معدلة", - "created": "منشأة", - "loading": "جاري التحميل...", - "exportPDF": "تصدير PDF", - "savedStatus": "تم الحفظ", - "dirtyStatus": "معدّل", - "completedLabel": "مكتمل", - "notes.emptyNotebook": "دفتر فارغ", - "notes.emptyNotebookDesc": "لا توجد ملاحظات. انقر على + لإنشاء واحدة.", - "notes.noNoteSelected": "لم يتم تحديد ملاحظة", - "notes.selectOrCreateNote": "اختر ملاحظة من القائمة أو أنشئ واحدة جديدة.", - "commitVersion": "حفظ النسخة", - "versionSaved": "تم حفظ النسخة", - "deleteVersion": "حذف هذه النسخة", - "versionDeleted": "تم حذف النسخة", - "deleteVersionConfirm": "حذف هذه النسخة نهائياً؟", - "historyMode": "وضع السجل", - "historyModeManual": "يدوي (زر الالتزام)", - "historyModeAuto": "تلقائي (ذكي)", - "historyModeManualDesc": "إنشاء لقطات يدوياً بزر الالتزام", - "historyModeAutoDesc": "لقاطات تلقائية بالكشف الذكي", - "history": "السجل", - "historyRestored": "تم استعادة النسخة", - "historyEnabled": "تم تفعيل السجل", - "historyDisabledDesc": "السجل معطل لحسابك.", - "enableHistory": "تفعيل السجل", - "historyEmpty": "لا توجد نسخ متاحة", - "historySelectVersion": "اختر نسخة لمعاينة محتواها", - "sortBy": "ترتيب حسب", - "sortDateDesc": "التاريخ (الأحدث)", - "sortDateAsc": "التاريخ (الأقدم)", - "sortTitleAsc": "العنوان أ ← ي", - "sortTitleDesc": "العنوان ي ← أ" - }, - "pagination": { - "next": "→", - "pageInfo": "صفحة {currentPage} من {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "غير رسمي", - "expand": "توسيع", - "formal": "رسمي", - "improve": "تحسين", - "shorten": "اختصار", - "title": "تحسين النص" - }, - "profile": { - "accountSettings": "إعدادات الحساب", - "autoDetect": "الكشف التلقائي", - "changePassword": "تغيير كلمة المرور", - "changePasswordDescription": "تحديث كلمة المرور. ستحتاج إلى كلمة المرور الحالية.", - "confirmPassword": "تأكيد كلمة المرور", - "currentPassword": "كلمة المرور الحالية", - "description": "تحديث معلوماتك الشخصية", - "displayName": "اسم العرض", - "displaySettings": "إعدادات العرض", - "displaySettingsDescription": "قم بتخصيص المظهر وحجم الخط.", - "email": "البريد الإلكتروني", - "fontSize": "حجم الخط", - "fontSizeDescription": "قم بضبط حجم الخط لتحسين القراءة. ينطبق هذا على جميع النصوص في الواجهة.", - "fontSizeExtraLarge": "كبير جداً", - "fontSizeLarge": "كبير", - "fontSizeMedium": "متوسط", - "fontSizeSmall": "صغير", - "fontSizeUpdateFailed": "فشل في تحديث حجم الخط", - "fontSizeUpdateSuccess": "تم تحديث حجم الخط بنجاح", - "languageDescription": "سيتم استخدام هذه اللغة لميزات الذكاء الاصطناعي وتحليل المحتوى ونص الواجهة.", - "languagePreferences": "تفضيلات اللغة", - "languagePreferencesDescription": "اختر لغتك المفضلة لميزات الذكاء الاصطناعي والواجهة.", - "languageUpdateFailed": "فشل في تحديث اللغة", - "languageUpdateSuccess": "تم تحديث اللغة بنجاح", - "manageAISettings": "إدارة إعدادات الذكاء الاصطناعي", - "newPassword": "كلمة المرور الجديدة", - "passwordChangeFailed": "فشل في تغيير كلمة المرور", - "passwordChangeSuccess": "تم تغيير كلمة المرور بنجاح", - "passwordError": "خطأ في تحديث كلمة المرور", - "passwordUpdated": "تم تحديث كلمة المرور", - "preferredLanguage": "اللغة المفضلة", - "profileError": "خطأ في تحديث الملف الشخصي", - "profileUpdated": "تم تحديث الملف الشخصي", - "recentNotesUpdateFailed": "Failed to update recent notes setting", - "recentNotesUpdateSuccess": "Recent notes setting updated successfully", - "selectFontSize": "اختر حجم الخط", - "selectLanguage": "اختر لغة", - "showRecentNotes": "Show Recent Notes Section", - "showRecentNotesDescription": "Display recent notes (last 7 days) on the main page", - "title": "الملف الشخصي", - "updateFailed": "فشل في تحديث الملف الشخصي", - "updatePassword": "تحديث كلمة المرور", - "updateSuccess": "تم تحديث الملف الشخصي" - }, - "reminder": { - "cancel": "إلغاء", - "reminderDate": "تاريخ التذكير", - "reminderTime": "وقت التذكير", - "removeReminder": "إزالة التذكير", - "save": "تعيين التذكير", - "setReminder": "تعيين تذكير", - "title": "التذكير" - }, - "resetPassword": { - "confirmNewPassword": "تأكيد كلمة المرور الجديدة", - "description": "أدخل كلمة المرور الجديدة أدناه.", - "invalidLinkDescription": "رابط إعادة تعيين كلمة المرور هذا غير صالح أو منتهي الصلاحية.", - "invalidLinkTitle": "رابط غير صالح", - "loading": "جاري التحميل...", - "newPassword": "كلمة المرور الجديدة", - "passwordMismatch": "كلمات المرور غير متطابقة", - "requestNewLink": "طلب رابط جديد", - "resetPassword": "إعادة تعيين كلمة المرور", - "resetting": "جاري إعادة التعيين...", - "success": "تم إعادة تعيين كلمة المرور بنجاح. يمكنك الآن تسجيل الدخول.", - "title": "إعادة تعيين كلمة المرور" - }, - "search": { - "exactMatch": "Exact match", - "noResults": "No results found", - "placeholder": "Search", - "related": "Related", - "resultsFound": "{count} notes found", - "searchPlaceholder": "Search your notes...", - "searching": "Searching...", - "semanticInProgress": "AI search in progress...", - "semanticTooltip": "AI semantic search", - "disabledAdmin": "البحث معطل في وضع المسؤول" - }, - "semanticSearch": { - "exactMatch": "تطابق تام", - "related": "ذات صلة", - "searching": "جاري البحث..." - }, - "settings": { - "about": "حول", - "account": "الحساب", - "appearance": "المظهر", - "cleanTags": "Clean Orphan Tags", - "cleanTagsDescription": "Remove tags that are no longer used by any notes", - "description": "إدارة إعداداتك وتفضيلاتك", - "language": "اللغة", - "languageAuto": "الكشف التلقائي", - "maintenance": "Maintenance", - "maintenanceDescription": "Tools to maintain your database health", - "notifications": "الإشعارات", - "privacy": "الخصوصية", - "profile": "الملف الشخصي", - "searchNoResults": "لم يتم العثور على إعدادات مطابقة", - "security": "الأمان", - "selectLanguage": "اختيار اللغة", - "semanticIndexing": "Semantic Indexing", - "semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search", - "settingsError": "خطأ في حفظ الإعدادات", - "settingsSaved": "تم حفظ الإعدادات", - "theme": "المظهر", - "themeDark": "داكن", - "themeLight": "فاتح", - "themeSystem": "النظام", - "title": "الإعدادات", + "about": { + "title": "حول", + "description": "معلومات حول التطبيق", + "appName": "Memento", + "appDescription": "تطبيق ملاحظات قوي مع ميزات مدعومة بالذكاء الاصطناعي", "version": "الإصدار", - "cleanupDone": "تمت مزامنة {created} تسمية، حذف {deleted} يتيمة", - "cleanupNothing": "لا حاجة لأي إجراء — التسميات متزامنة بالفعل مع ملاحظاتك", - "cleanupWithErrors": "بعض العمليات فشلت", - "cleanupError": "تعذر تنظيف التسميات", - "indexingComplete": "اكتملت الفهرسة: تمت معالجة {count} ملاحظة", - "indexingError": "خطأ أثناء الفهرسة", - "emailNotifications": "إشعارات البريد الإلكتروني", - "emailNotificationsDesc": "تلقي إشعارات مهمة عبر البريد الإلكتروني", - "desktopNotifications": "إشعارات سطح المكتب", - "desktopNotificationsDesc": "تلقي إشعارات في المتصفح", - "notificationsDesc": "إدارة تفضيلات الإشعارات" - }, - "sidebar": { - "archive": "Archive", - "editLabels": "Edit labels", - "labels": "Labels", - "notes": "Notes", - "reminders": "Reminders", - "trash": "Trash", - "newNoteTabs": "ملاحظة جديدة", - "newNoteTabsHint": "إنشاء ملاحظة في هذا الدفتر", - "noLabelsInNotebook": "لا توجد تسميات في هذا الدفتر" + "buildDate": "تاريخ البناء", + "platform": "المنصة", + "platformWeb": "الويب", + "features": { + "title": "الميزات", + "description": "قدرات مدعومة بالذكاء الاصطناعي", + "titleSuggestions": "اقتراحات عناوين مدعومة بالذكاء الاصطناعي", + "semanticSearch": "بحث دلالي مع التضمينات", + "paragraphReformulation": "إعادة صياغة الفقرات", + "memoryEcho": "رؤى Memory Echo اليومية", + "notebookOrganization": "تنظيم الدفاتر", + "dragDrop": "إدارة الملاحظات بالسحب والإفلات", + "labelSystem": "نظام التسميات", + "multipleProviders": "مزودو ذكاء اصطناعي متعددون (OpenAI، Ollama)" + }, + "technology": { + "title": "مجموعة التقنيات", + "description": "مبني بتقنيات حديثة", + "frontend": "الواجهة الأمامية", + "backend": "الواجهة الخلفية", + "database": "قاعدة البيانات", + "authentication": "المصادقة", + "ai": "الذكاء الاصطناعي", + "ui": "واجهة المستخدم", + "testing": "الاختبار" + }, + "support": { + "title": "الدعم", + "description": "احصل على المساعدة وقدم الملاحظات", + "documentation": "التوثيق", + "reportIssues": "الإبلاغ عن المشاكل", + "feedback": "الملاحظات" + } }, "support": { - "aiApiCosts": "تكاليف AI API:", - "buyMeACoffee": "اشترِ لي قهوة", - "contributeCode": "المساهمة بالكود", - "description": "Memento مجاني ومفتوح المصدر بنسبة 100%. دعمك يساعد في الحفاظ على ذلك.", - "directImpact": "تأثير مباشر", - "domainSSL": "النطاق و SSL:", - "donateOnKofi": "التبرع على Ko-fi", - "donationDescription": "قم بعمل تبرع لمرة واحدة أو أصبح داعماً شهرياً.", - "githubDescription": "دعم متكرر • تقدير علني • موجه للمطورين", - "hostingServers": "الاستضافة والخوادم:", - "howSupportHelps": "كيف يساعد دعمك", - "kofiDescription": "بدون رسوم منصة • مدفوعات فورية • آمن", - "otherWaysTitle": "طرق أخرى للدعم", - "reportBug": "الإبلاغ عن خطأ", - "shareTwitter": "المشاركة على تويتر", - "sponsorDescription": "كن راعياً شهرياً واحصل على التقدير.", - "sponsorOnGithub": "الرعاية على GitHub", - "sponsorPerks": "مزايا الرعاة", - "starGithub": "أضف نجمة على GitHub", "title": "دعم تطوير Memento", - "totalExpenses": "إجمالي النفقات:", + "description": "Memento مجاني ومفتوح المصدر بنسبة 100%. دعمك يساعد في الحفاظ على ذلك.", + "buyMeACoffee": "اشترِ لي قهوة", + "donationDescription": "قم بعمل تبرع لمرة واحدة أو أصبح داعماً شهرياً.", + "donateOnKofi": "التبرع على Ko-fi", + "kofiDescription": "بدون رسوم منصة • مدفوعات فورية • آمن", + "sponsorOnGithub": "الرعاية على GitHub", + "sponsorDescription": "كن راعياً شهرياً واحصل على التقدير.", + "githubDescription": "دعم متكرر • تقدير علني • موجه للمطورين", + "howSupportHelps": "كيف يساعد دعمك", + "directImpact": "تأثير مباشر", + "sponsorPerks": "مزايا الرعاة", "transparency": "الشفافية", - "transparencyDescription": "أؤمن بالشفافية الكاملة. إليك كيفية استخدام التبرعات:" + "transparencyDescription": "أؤمن بالشفافية الكاملة. إليك كيفية استخدام التبرعات:", + "hostingServers": "الاستضافة والخوادم:", + "domainSSL": "النطاق و SSL:", + "aiApiCosts": "تكاليف AI API:", + "totalExpenses": "إجمالي النفقات:", + "otherWaysTitle": "طرق أخرى للدعم", + "starGithub": "أضف نجمة على GitHub", + "reportBug": "الإبلاغ عن خطأ", + "contributeCode": "المساهمة بالكود", + "shareTwitter": "المشاركة على تويتر" + }, + "demoMode": { + "title": "الوضع التجريبي", + "activated": "تم تفعيل الوضع التجريبي! سيعمل Memory Echo الآن فوراً.", + "deactivated": "تم تعطيل الوضع التجريبي. تم استعادة المعلمات العادية.", + "toggleFailed": "فشل في تبديل الوضع التجريبي", + "description": "تسريع Memory Echo للاختبار. تظهر الاتصالات فوراً.", + "parametersActive": "معلمات العرض النشطة:", + "similarityThreshold": "50% عتبة التشابه (عادة 75%)", + "delayBetweenNotes": "تأخير 0 يوم بين الملاحظات (عادة 7 أيام)", + "unlimitedInsights": "رؤى غير محدودة (بدون حدود للتكرار)", + "createNotesTip": "أنشئ ملاحظتين متشابهتين أو أكثر وشاهد Memory Echo أثناء العمل!" + }, + "resetPassword": { + "title": "إعادة تعيين كلمة المرور", + "description": "أدخل كلمة المرور الجديدة أدناه.", + "invalidLinkTitle": "رابط غير صالح", + "invalidLinkDescription": "رابط إعادة تعيين كلمة المرور هذا غير صالح أو منتهي الصلاحية.", + "requestNewLink": "طلب رابط جديد", + "newPassword": "كلمة المرور الجديدة", + "confirmNewPassword": "تأكيد كلمة المرور الجديدة", + "resetting": "جاري إعادة التعيين...", + "resetPassword": "إعادة تعيين كلمة المرور", + "passwordMismatch": "كلمات المرور غير متطابقة", + "success": "تم إعادة تعيين كلمة المرور بنجاح. يمكنك الآن تسجيل الدخول.", + "loading": "جاري التحميل..." + }, + "dataManagement": { + "title": "إدارة البيانات", + "toolsDescription": "أدوات للحفاظ على صحة قاعدة البيانات", + "exporting": "جاري التصدير...", + "importing": "جاري الاستيراد...", + "deleting": "جاري الحذف...", + "dangerZone": "المنطقة الخطرة", + "dangerZoneDescription": "هذه العمليات لا يمكن التراجع عنها، يرجى الحذر", + "indexingComplete": "اكتملت الفهرسة", + "indexingError": "خطأ في الفهرسة", + "cleanupComplete": "اكتمل التنظيف", + "cleanupError": "خطأ في التنظيف", + "export": { + "title": "تصدير جميع الملاحظات", + "description": "قم بتنزيل جميع ملاحظاتك كملف JSON. يتضمن جميع المحتوى والتسميات والبيانات الوصفية.", + "button": "تصدير الملاحظات", + "success": "تم تصدير الملاحظات بنجاح", + "failed": "فشل تصدير الملاحظات" + }, + "import": { + "title": "استيراد الملاحظات", + "description": "قم بتحميل ملف JSON لاستيراد الملاحظات. سيتم إضافتها إلى ملاحظاتك الحالية دون استبدالها.", + "button": "استيراد الملاحظات", + "success": "تم استيراد {count} ملاحظة", + "failed": "فشل استيراد الملاحظات" + }, + "delete": { + "title": "حذف جميع الملاحظات", + "description": "حذف جميع ملاحظاتك نهائياً. لا يمكن التراجع عن هذا الإجراء.", + "button": "حذف جميع الملاحظات", + "confirm": "هل أنت متأكد؟ سيؤدي هذا إلى حذف جميع ملاحظاتك نهائياً.", + "success": "تم حذف جميع الملاحظات", + "failed": "فشل حذف الملاحظات" + }, + "indexing": { + "title": "إعادة بناء فهرس البحث", + "description": "إعادة توليد التضمينات لجميع الملاحظات لتحسين البحث الدلالي.", + "button": "إعادة بناء الفهرس", + "success": "اكتملت الفهرسة: تمت معالجة {count} ملاحظة", + "failed": "حدث خطأ أثناء الفهرسة" + }, + "cleanup": { + "title": "تنظيف البيانات اليتيمة", + "description": "إزالة التسميات والاتصالات التي تشير إلى ملاحظات محذوفة.", + "button": "تنظيف", + "failed": "حدث خطأ أثناء التنظيف" + } + }, + "appearance": { + "title": "المظهر", + "description": "تخصيص مظهر التطبيق", + "notesViewDescription": "اختر كيفية عرض الملاحظات على الصفحة الرئيسية وفي الدفاتر.", + "notesViewLabel": "عرض الملاحظات", + "notesViewTabs": "علامات تبويب (نمط OneNote)", + "notesViewMasonry": "بطاقات (شبكة)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "الإعدادات العامة", + "description": "إعدادات التطبيق العامة" + }, + "toast": { + "saved": "تم حفظ الإعداد", + "saveFailed": "فشل حفظ الإعداد", + "operationSuccess": "نجحت العملية", + "operationFailed": "فشلت العملية", + "openingConnection": "جاري فتح الاتصال...", + "openConnectionFailed": "فشل فتح الاتصال", + "thanksFeedback": "شكراً لملاحظاتك!", + "thanksFeedbackImproving": "شكراً! سنستخدم هذا للتحسين.", + "feedbackFailed": "فشل إرسال الملاحظات", + "notesFusionSuccess": "تم دمج الملاحظات بنجاح!" }, "testPages": { "titleSuggestions": { - "analyzing": "جاري التحليل...", - "contentLabel": "المحتوى (يحتاج 50 كلمة أو أكثر):", - "error": "خطأ:", - "idle": "خامل", - "noSuggestions": "لا توجد اقتراحات بعد. اكتب 50 كلمة أو أكثر وانتظر ثانيتين.", - "placeholder": "اكتب 50 كلمة على الأقل هنا...", - "status": "الحالة:", - "suggestions": "الاقتراحات ({count}):", "title": "اختبار اقتراحات العناوين", - "wordCount": "عدد الكلمات:" + "contentLabel": "المحتوى (يحتاج 50 كلمة أو أكثر):", + "placeholder": "اكتب 50 كلمة على الأقل هنا...", + "wordCount": "عدد الكلمات:", + "status": "الحالة:", + "analyzing": "جاري التحليل...", + "idle": "خامل", + "error": "خطأ:", + "suggestions": "الاقتراحات ({count}):", + "noSuggestions": "لا توجد اقتراحات بعد. اكتب 50 كلمة أو أكثر وانتظر ثانيتين." } }, - "time": { - "daysAgo": "منذ {count} يوم", - "hoursAgo": "منذ {count} ساعة", - "justNow": "الآن", - "minutesAgo": "منذ {count} دقيقة", - "today": "اليوم", - "tomorrow": "غداً", - "yesterday": "أمس" - }, - "titleSuggestions": { - "available": "اقتراحات العنوان", - "dismiss": "تجاهل", - "generating": "جاري الإنشاء...", - "selectTitle": "اختر عنواناً", - "title": "اقتراحات الذكاء الاصطناعي" - }, - "toast": { - "feedbackFailed": "فشل إرسال الملاحظات", - "notesFusionSuccess": "تم دمج الملاحظات بنجاح!", - "openConnectionFailed": "فشل فتح الاتصال", - "openingConnection": "جاري فتح الاتصال...", - "operationFailed": "فشلت العملية", - "operationSuccess": "نجحت العملية", - "saveFailed": "فشل حفظ الإعداد", - "saved": "تم حفظ الإعداد", - "thanksFeedback": "شكراً لملاحظاتك!", - "thanksFeedbackImproving": "شكراً! سنستخدم هذا للتحسين." - }, "trash": { "title": "سلة المحذوفات", "empty": "سلة المحذوفات فارغة", @@ -1233,11 +1212,83 @@ "permanentDelete": "حذف نهائي", "permanentDeleteConfirm": "سيتم حذف هذه الملاحظة نهائيًا. لا يمكن التراجع عن هذا الإجراء." }, + "footer": { + "privacy": "الخصوصية", + "terms": "الشروط", + "openSource": "نسخة مفتوحة المصدر" + }, + "connection": { + "similarityInfo": "هذه الملاحظات متصلة بنسبة تشابه {similarity}%", + "clickToView": "انقر لعرض الملاحظة", + "isHelpful": "هل هذا الاتصال مفيد؟", + "helpful": "مفيد", + "notHelpful": "غير مفيد", + "memoryEchoDiscovery": "اكتشاف Memory Echo" + }, + "diagnostics": { + "title": "التشخيص", + "description": "Check your AI provider connection status", + "configuredProvider": "المزود المكوّن", + "apiStatus": "حالة API", + "operational": "Operational", + "errorStatus": "Error", + "checking": "Checking...", + "testDetails": "تفاصيل الاختبار:", + "troubleshootingTitle": "نصائح استكشاف الأخطاء:", + "tip1": "تأكد من تشغيل Ollama (ollama serve)", + "tip2": "تحقق من تثبيت النموذج (ollama pull llama3)", + "tip3": "تحقق من مفتاح OpenAI API الخاص بك", + "tip4": "تحقق من اتصال الشبكة" + }, + "batch": { + "organizeWithAI": "تنظيم بالذكاء الاصطناعي", + "organize": "تنظيم" + }, + "common": { + "unknown": "غير معروف", + "notAvailable": "غير متاح", + "loading": "جاري التحميل...", + "error": "خطأ", + "success": "نجاح", + "confirm": "تأكيد", + "cancel": "إلغاء", + "close": "إغلاق", + "save": "حفظ", + "delete": "حذف", + "edit": "تعديل", + "add": "إضافة", + "remove": "إزالة", + "search": "بحث", + "noResults": "لا توجد نتائج", + "required": "مطلوب", + "optional": "اختياري" + }, + "time": { + "justNow": "الآن", + "minutesAgo": "منذ {count} دقيقة", + "hoursAgo": "منذ {count} ساعة", + "daysAgo": "منذ {count} يوم", + "yesterday": "أمس", + "today": "اليوم", + "tomorrow": "غداً" + }, + "favorites": { + "title": "المفضلة", + "toggleSection": "تبديل قسم المفضلة", + "noFavorites": "لا توجد مفضلات", + "pinToFavorite": "تثبيت في المفضلة" + }, + "notebooks": { + "create": "إنشاء دفتر", + "allNotebooks": "جميع الدفاتر", + "noNotebooks": "لا توجد دفاتر", + "createFirst": "إنشاء أول دفتر" + }, "ui": { "close": "إغلاق", - "collapse": "طي", + "open": "فتح", "expand": "توسيع", - "open": "فتح" + "collapse": "طي" }, "mcpSettings": { "title": "إعدادات MCP", @@ -1304,6 +1355,10 @@ "subtitle": "أتمتة مهام المراقبة والبحث الخاصة بك", "newAgent": "وكيل جديد", "myAgents": "وكلائي", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "لا يوجد وكلاء", "noAgentsDescription": "أنشئ أول وكيل لك أو ثبّت قالبًا أدناه لأتمتة مهام المراقبة.", "types": { @@ -1346,7 +1401,9 @@ "researchTopic": "موضوع البحث", "researchTopicPlaceholder": "مثال: أحدث التطورات في الذكاء الاصطناعي", "notifyEmail": "إشعار بالبريد الإلكتروني", - "notifyEmailHint": "استلام بريد إلكتروني بنتائج الوكيل بعد كل تشغيل" + "notifyEmailHint": "استلام بريد إلكتروني بنتائج الوكيل بعد كل تشغيل", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "يدوي", @@ -1355,6 +1412,22 @@ "weekly": "أسبوعي", "monthly": "شهري" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "نجح", "failure": "فشل", @@ -1383,7 +1456,9 @@ "toggleError": "خطأ في تبديل الوكيل", "installSuccess": "تم تثبيت \"{name}\"", "installError": "خطأ أثناء التثبيت", - "saveError": "خطأ في الحفظ" + "saveError": "خطأ في الحفظ", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "القوالب", @@ -1496,7 +1571,8 @@ "welcome": "أنا هنا لمساعدتك في تلخيص ملاحظاتك أو إنشاء أفكار جديدة أو مناقشة دفاتر ملاحظاتك.", "searching": "جاري البحث...", "noNotesFoundForContext": "لم يتم العثور على ملاحظات ذات صلة لهذا السؤال. أجب باستخدام معرفتك العامة.", - "webSearch": "بحث الويب" + "webSearch": "بحث الويب", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "المختبر", @@ -1513,30 +1589,8 @@ "createFailed": "فشل الإنشاء", "deleteSpace": "حذف المساحة", "deleted": "تم حذف المساحة", - "deleteError": "خطأ في الحذف" - }, - "notification": { - "shared": "شارك \"{title}\"", - "untitled": "بدون عنوان", - "notifications": "الإشعارات", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "تم رفض المشاركة", - "noNotifications": "No new notifications", - "removed": "تمت إزالة الملاحظة من القائمة" - }, - "reminders": { - "title": "التذكيرات", - "empty": "لا توجد تذكيرات", - "emptyDescription": "أضف تذكيراً إلى ملاحظة لتجده هنا.", - "upcoming": "قادمة", - "overdue": "متأخرة", - "done": "مكتملة", - "markDone": "وضع علامة مكتمل", - "markUndone": "وضع علامة غير مكتمل", - "todayAt": "اليوم في {time}", - "tomorrowAt": "غداً في {time}" + "deleteError": "خطأ في الحذف", + "rename": "Rename" }, "lab": { "initializing": "تهيئة المساحة", diff --git a/memento-note/locales/de.json b/memento-note/locales/de.json index a3227be..177bf98 100644 --- a/memento-note/locales/de.json +++ b/memento-note/locales/de.json @@ -1,277 +1,329 @@ { - "about": { - "appDescription": "Eine leistungsstarke Notiz-Anwendung mit KI-gestützten Funktionen", - "appName": "Memento", - "buildDate": "Build-Datum", - "description": "Informationen über die Anwendung", - "features": { - "description": "KI-gestützte Fähigkeiten", - "dragDrop": "Drag & Drop Notizverwaltung", - "labelSystem": "Label-System", - "memoryEcho": "Memory Echo tägliche Einblicke", - "multipleProviders": "Mehrere KI-Anbieter (OpenAI, Ollama)", - "notebookOrganization": "Notizbuch-Organisation", - "paragraphReformulation": "Absatz-Reformulierung", - "semanticSearch": "Semantische Suche mit Embeddings", - "title": "Funktionen", - "titleSuggestions": "KI-gestützte Titelvorschläge" - }, - "platform": "Plattform", - "platformWeb": "Web", - "support": { - "description": "Hilfe und Feedback erhalten", - "documentation": "Dokumentation", - "feedback": "Feedback", - "reportIssues": "Probleme melden", - "title": "Support" - }, - "technology": { - "ai": "KI", - "authentication": "Authentifizierung", - "backend": "Backend", - "database": "Datenbank", - "description": "Mit modernen Technologien erstellt", - "frontend": "Frontend", - "testing": "Tests", - "title": "Technologie-Stack", - "ui": "UI" - }, - "title": "Über", - "version": "Version" + "auth": { + "signIn": "Anmelden", + "signUp": "Registrieren", + "email": "E-Mail", + "password": "Passwort", + "name": "Name", + "emailPlaceholder": "Geben Sie Ihre E-Mail-Adresse ein", + "passwordPlaceholder": "Geben Sie Ihr Passwort ein", + "namePlaceholder": "Geben Sie Ihren Namen ein", + "passwordMinChars": "Passwort eingeben (min. 6 Zeichen)", + "resetPassword": "Passwort zurücksetzen", + "resetPasswordInstructions": "Geben Sie Ihre E-Mail ein, um Ihr Passwort zurückzusetzen", + "forgotPassword": "Passwort vergessen?", + "noAccount": "Haben Sie kein Konto?", + "hasAccount": "Haben Sie bereits ein Konto?", + "signInToAccount": "Melden Sie sich in Ihrem Konto an", + "createAccount": "Erstellen Sie Ihr Konto", + "rememberMe": "Angemeldet bleiben", + "orContinueWith": "Oder fortfahren mit", + "checkYourEmail": "Überprüfen Sie Ihre E-Mail", + "resetEmailSent": "Wir haben einen Link zum Zurücksetzen des Passworts an Ihre E-Mail-Adresse gesendet, wenn sie in unserem System existiert.", + "returnToLogin": "Zurück zur Anmeldung", + "forgotPasswordTitle": "Passwort vergessen", + "forgotPasswordDescription": "Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen einen Link zum Zurücksetzen Ihres Passworts.", + "sending": "Wird gesendet...", + "sendResetLink": "Link zum Zurücksetzen senden", + "backToLogin": "Zurück zur Anmeldung", + "signOut": "Sign out", + "confirmPassword": "Passwort bestätigen", + "confirmPasswordPlaceholder": "Passwort erneut eingeben" }, - "admin": { - "ai": { - "apiKey": "API-Schlüssel", - "baseUrl": "Basis-URL", - "commonEmbeddingModels": "Gängige Embedding-Modelle für OpenAI-kompatible APIs", - "commonModelsDescription": "Gängige Modelle für OpenAI-kompatible APIs", - "description": "KI-Anbieter für automatisches Tagging und semantische Suche konfigurieren. Verwenden Sie verschiedene Anbieter für optimale Leistung.", - "embeddingsDescription": "KI-Anbieter für semantische Such-Embeddings. Empfohlen: OpenAI (beste Qualität).", - "embeddingsProvider": "Embeddings-Anbieter", - "model": "Modell", - "modelRecommendations": "gpt-4o-mini = Bester Wert • gpt-4o = Beste Qualität", - "openAIKeyDescription": "Ihr OpenAI-API-Schlüssel von platform.openai.com", - "openTestPanel": "KI-Test-Panel öffnen", - "provider": "Anbieter", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING ist erforderlich", - "providerTagsRequired": "AI_PROVIDER_TAGS ist erforderlich", - "saveSettings": "KI-Einstellungen speichern", - "saving": "Speichern...", - "selectEmbeddingModel": "Wählen Sie ein auf Ihrem System installiertes Embedding-Modell", - "selectOllamaModel": "Wählen Sie ein auf Ihrem System installiertes Ollama-Modell", - "tagsGenerationDescription": "KI-Anbieter für automatische Tag-Vorschläge. Empfohlen: Ollama (kostenlos, lokal).", - "tagsGenerationProvider": "Tags-Generierungsanbieter", - "title": "KI-Konfiguration", - "updateFailed": "Fehler beim Aktualisieren der KI-Einstellungen", - "updateSuccess": "KI-Einstellungen erfolgreich aktualisiert", - "bestValue": "Bestes Preis-Leistungs-Verhältnis", - "bestQuality": "Beste Qualität", - "providerOllamaOption": "🦙 Ollama (Local & Free)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Custom OpenAI-Compatible", - "saved": "(Gespeichert)", - "chatProvider": "Chat-Anbieter", - "chatDescription": "KI-Anbieter für den Chat-Assistenten. Fällt auf den Tags-Anbieter zurück, wenn nicht konfiguriert.", - "fetchModelsFailed": "Modelle konnten nicht geladen werden", - "refreshModels": "Modelle aktualisieren", - "configured": "Konfiguriert", - "fetchingModels": "Modelle werden geladen...", - "clickToLoadModels": "Klicken Sie auf ↺ um Modelle zu laden", - "searchModel": "Modell suchen...", - "noModels": "Keine Modelle. Klicken Sie auf ↺", - "modelsAvailable": "{count} Modell(e) verfügbar", - "enterUrlToLoad": "URL eingeben und ↺ klicken", - "currentProvider": "(Aktuell: {provider})", - "pageTitle": "KI-Verwaltung", - "pageDescription": "KI-Funktionen überwachen und konfigurieren", - "configure": "Konfigurieren", - "features": "KI-Funktionen", - "providerStatus": "KI-Anbieter Status", - "recentRequests": "Letzte KI-Anfragen", - "comingSoon": "Demnächst verfügbar", - "activeFeatures": "Aktive Funktionen", - "successRate": "Erfolgsrate", - "avgResponseTime": "Durchschn. Antwortzeit", - "configuredProviders": "Konfigurierte Anbieter", - "settingUpdated": "Einstellung aktualisiert", - "updateFailedShort": "Aktualisierung fehlgeschlagen", - "titleSuggestions": "Titelvorschläge", - "titleSuggestionsDesc": "Schlägt Titel für Notizen nach 50+ Wörtern vor", - "aiAssistant": "KI-Assistent", - "aiAssistantDesc": "Aktiviert KI-Chat und Textverbesserung", - "memoryEchoFeature": "Mir ist aufgefallen...", - "memoryEchoFeatureDesc": "Tägliche Analyse von Verbindungen zwischen Notizen", - "languageDetection": "Spracherkennung", - "languageDetectionDesc": "Erkennt automatisch die Sprache jeder Notiz", - "autoLabeling": "Automatische Beschriftung", - "autoLabelingDesc": "Schlägt Labels vor und wendet sie automatisch an" - }, - "aiTest": { - "description": "Testen Sie Ihre KI-Anbieter für Tag-Generierung und semantische Such-Embeddings", - "embeddingDimensions": "Embedding-Dimensionen:", - "embeddingsTestDescription": "Testen Sie den KI-Anbieter, der für semantische Such-Embeddings verantwortlich ist", - "embeddingsTestTitle": "Embeddings-Test", - "error": "Fehler:", - "first5Values": "Erste 5 Werte:", - "generatedTags": "Generierte Tags:", - "howItWorksTitle": "Wie Tests funktionieren", - "model": "Modell:", - "provider": "Anbieter:", - "responseTime": "Antwortzeit: {time}ms", - "runTest": "Test ausführen", - "tagsTestDescription": "Testen Sie den KI-Anbieter, der für automatische Tag-Vorschläge verantwortlich ist", - "tagsTestTitle": "Tags-Generierungs-Test", - "testError": "Testfehler: {error}", - "testFailed": "Test fehlgeschlagen", - "testPassed": "Test bestanden", - "testing": "Testen...", - "tipDescription": "Verwenden Sie das KI-Test-Panel, um Konfigurationsprobleme vor dem Testen zu diagnostizieren.", - "tipTitle": "Tipp:", - "title": "KI-Anbieter-Tests", - "vectorDimensions": "Vektor-Dimensionen", - "tagsGenerationTest": "🏷️ Tags-Generierungs-Test:", - "tagsStep1": "Sendet eine Beispielnote an den KI-Anbieter", - "tagsStep2": "Fordert 3-5 relevante Tags basierend auf dem Inhalt", - "tagsStep3": "Zeigt die generierten Tags mit Konfidenzwerten", - "tagsStep4": "Misst die Antwortzeit", - "embeddingsTestLabel": "🔍 Embeddings-Test:", - "embeddingsStep1": "Sendet einen Beispieltext an den Embedding-Anbieter", - "embeddingsStep2": "Generiert eine Vektordarstellung (Zahlenliste)", - "embeddingsStep3": "Zeigt Embedding-Dimensionen und Beispielwerte", - "embeddingsStep4": "Überprüft, ob der Vektor gültig und korrekt formatiert ist", - "tipContent": "Sie können verschiedene Anbieter für Tags und Embeddings verwenden! Nutzen Sie z.B. Ollama (kostenlos) für Tags und OpenAI (beste Qualität) für Embeddings, um Kosten und Leistung zu optimieren.", - "testSuccessToast": "Test {type} erfolgreich!", - "testFailedToast": "Test {type} fehlgeschlagen", - "testingType": "Teste {type}...", - "technicalDetails": "Technische Details" - }, - "aiTesting": "KI-Tests", - "security": { - "allowPublicRegistration": "Öffentliche Registrierung zulassen", - "allowPublicRegistrationDescription": "Wenn deaktiviert, können neue Benutzer nur von einem Administrator über die Benutzerverwaltungsseite hinzugefügt werden.", - "description": "Zugriffskontrolle und Registrierungsrichtlinien verwalten.", - "title": "Sicherheitseinstellungen", - "updateFailed": "Fehler beim Aktualisieren der Sicherheitseinstellungen", - "updateSuccess": "Sicherheitseinstellungen aktualisiert" - }, - "settings": "Admin-Einstellungen", - "resend": { - "title": "Resend (Empfohlen)", - "description": "E-Mails über die Resend-API senden. Wird gegenüber SMTP bevorzugt, wenn konfiguriert.", - "apiKey": "Resend API-Schlüssel", - "apiKeyHint": "Holen Sie sich Ihren API-Schlüssel von resend.com. Wird für Agent-Benachrichtigungen und Passwortzurücksetzungen verwendet.", - "saveSettings": "Resend-Einstellungen speichern", - "updateSuccess": "Resend-Einstellungen aktualisiert", - "updateFailed": "Resend-Einstellungen konnten nicht aktualisiert werden", - "configured": "Resend ist konfiguriert und aktiv" - }, - "email": { - "title": "E-Mail-Konfiguration", - "description": "E-Mail-Versand für Agent-Benachrichtigungen und Passwortzurücksetzungen konfigurieren.", - "provider": "E-Mail-Anbieter", - "saveSettings": "E-Mail-Einstellungen speichern" - }, - "smtp": { - "description": "E-Mail-Server für Passwortzurücksetzungen konfigurieren.", - "forceSSL": "SSL/TLS erzwingen (normalerweise für Port 465)", - "fromEmail": "Von E-Mail", - "host": "Host", - "ignoreCertErrors": "Zertifikatsfehler ignorieren (Nur Self-hosted/Entwicklung)", - "password": "Passwort", - "port": "Port", - "saveSettings": "SMTP-Einstellungen speichern", - "sending": "Senden...", - "testEmail": "Test-E-Mail", - "testFailed": "Fehler: {error}", - "testSuccess": "Test-E-Mail erfolgreich gesendet!", - "title": "SMTP-Konfiguration", - "updateFailed": "Fehler beim Aktualisieren der SMTP-Einstellungen", - "updateSuccess": "SMTP-Einstellungen aktualisiert", - "username": "Benutzername" - }, - "title": "Admin-Dashboard", - "userManagement": "Benutzerverwaltung", - "users": { - "addUser": "Benutzer hinzufügen", - "confirmDelete": "Möchten Sie diesen Benutzer wirklich löschen?", - "createFailed": "Fehler beim Erstellen des Benutzers", - "createSuccess": "Benutzer erfolgreich erstellt", - "createUser": "Benutzer erstellen", - "createUserDescription": "Einen neuen Benutzer zum System hinzufügen.", - "deleteFailed": "Fehler beim Löschen", - "deleteSuccess": "Benutzer gelöscht", - "demote": "Zurückstufen", - "email": "E-Mail", - "name": "Name", - "password": "Passwort", - "promote": "Befördern", - "role": "Rolle", - "roleUpdateFailed": "Fehler beim Aktualisieren der Rolle", - "roleUpdateSuccess": "Benutzerrolle zu {role} aktualisiert", - "roles": { - "admin": "Administrator", - "user": "Benutzer" - }, - "table": { - "actions": "Aktionen", - "createdAt": "Erstellt am", - "email": "E-Mail", - "name": "Name", - "role": "Rolle" - }, - "title": "Benutzer", - "description": "Benutzer und Berechtigungen verwalten" - }, - "chat": "AI Chat", - "lab": "The Lab", - "agents": "Agents", - "workspace": "Workspace", - "sidebar": { - "dashboard": "Dashboard", - "users": "Benutzer", - "aiManagement": "KI-Verwaltung", - "chat": "KI-Chat", - "lab": "Das Labor (Ideen)", - "agents": "Agenten", - "settings": "Einstellungen" - }, - "metrics": { - "vsLastPeriod": "vs vorheriger Zeitraum" - }, - "tools": { - "title": "Agenten-Werkzeuge", - "description": "Externe Werkzeuge für die Agenten-Nutzung konfigurieren: Websuche, Web-Scraping und API-Zugriff.", - "searchProvider": "Websuche-Anbieter", - "searxng": "SearXNG (Selbst-gehostet)", - "brave": "Brave Search API", - "both": "Beide (SearXNG primär, Brave Fallback)", - "searxngUrl": "SearXNG-URL", - "braveKey": "Brave Search API-Schlüssel", - "jinaKey": "Jina Reader API-Schlüssel", - "jinaKeyOptional": "Optional — funktioniert ohne, aber mit Ratenbegrenzung", - "jinaKeyDescription": "Wird für Web-Scraping verwendet. Funktioniert ohne Schlüssel, aber mit Ratenbegrenzung.", - "saveSettings": "Werkzeugeinstellungen speichern", - "updateSuccess": "Werkzeugeinstellungen erfolgreich aktualisiert", - "updateFailed": "Fehler beim Aktualisieren der Werkzeugeinstellungen", - "testing": "Test läuft...", - "testSearch": "Websuche testen" - }, - "settingsDescription": "Anwendungseinstellungen konfigurieren", - "dashboard": { - "title": "Dashboard", - "description": "Übersicht der Anwendungsmetriken", - "recentActivity": "Letzte Aktivität", - "recentActivityPlaceholder": "Letzte Aktivitäten werden hier angezeigt." - }, - "error": { - "title": "Ein Fehler ist aufgetreten", - "description": "Seite konnte nicht gerendert werden. Bitte versuchen Sie es erneut.", - "retry": "Erneut versuchen" - } + "sidebar": { + "notes": "Notes", + "reminders": "Reminders", + "labels": "Labels", + "editLabels": "Edit labels", + "newNoteTabs": "Neue Notiz", + "newNoteTabsHint": "Notiz in diesem Notizbuch erstellen", + "noLabelsInNotebook": "Keine Labels in diesem Notizbuch", + "archive": "Archive", + "trash": "Trash", + "clearFilter": "Remove filter" + }, + "notes": { + "title": "Notizen", + "newNote": "Neue Notiz", + "untitled": "Unbenannt", + "placeholder": "Notiz machen...", + "markdownPlaceholder": "Notiz machen... (Markdown unterstützt)", + "titlePlaceholder": "Titel", + "listItem": "Listenelement", + "addListItem": "+ Listenelement", + "newChecklist": "Neue Checkliste", + "add": "Hinzufügen", + "adding": "Wird hinzugefügt...", + "close": "Schließen", + "confirmDelete": "Möchten Sie diese Notiz wirklich löschen?", + "confirmLeaveShare": "Möchten Sie diese geteilte Notiz wirklich verlassen?", + "sharedBy": "Geteilt von", + "leaveShare": "Verlassen", + "delete": "Löschen", + "archive": "Archivieren", + "unarchive": "Aus Archiv entfernen", + "pin": "Anheften", + "unpin": "Loslösen", + "color": "Farbe", + "changeColor": "Farbe ändern", + "setReminder": "Erinnerung festlegen", + "setReminderButton": "Erinnerung festlegen", + "date": "Datum", + "time": "Uhrzeit", + "reminderDateTimeRequired": "Bitte Datum und Uhrzeit eingeben", + "invalidDateTime": "Ungültiges Datum oder Uhrzeit", + "reminderMustBeFuture": "Die Erinnerung muss in der Zukunft liegen", + "reminderSet": "Erinnerung festgelegt für {datetime}", + "reminderPastError": "Die Erinnerung muss in der Zukunft liegen", + "reminderRemoved": "Erinnerung entfernt", + "addImage": "Bild hinzufügen", + "addLink": "Link hinzufügen", + "linkAdded": "Link hinzugefügt", + "linkMetadataFailed": "Link-Metadaten konnten nicht abgerufen werden", + "linkAddFailed": "Link konnte nicht hinzugefügt werden", + "invalidFileType": "Ungültiger Dateityp: {fileName}. Nur JPEG, PNG, GIF und WebP sind zulässig.", + "fileTooLarge": "Datei zu groß: {fileName}. Maximale Größe ist {maxSize}.", + "uploadFailed": "Upload fehlgeschlagen für {filename}", + "contentOrMediaRequired": "Bitte geben Sie Inhalte ein oder fügen Sie einen Link/Bild hinzu", + "itemOrMediaRequired": "Bitte fügen Sie mindestens ein Element oder Medium hinzu", + "noteCreated": "Notiz erfolgreich erstellt", + "noteCreateFailed": "Fehler beim Erstellen der Notiz", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "aiAssistant": "KI-Assistent", + "changeSize": "Größe ändern", + "backgroundOptions": "Hintergrundoptionen", + "moreOptions": "Weitere Optionen", + "remindMe": "Mich erinnern", + "markdownMode": "Markdown", + "addCollaborators": "Mitarbeiter hinzufügen", + "duplicate": "Duplizieren", + "share": "Teilen", + "showCollaborators": "Mitarbeiter anzeigen", + "pinned": "Angeheftet", + "others": "Andere", + "noNotes": "Keine Notizen", + "noNotesFound": "Keine Notizen gefunden", + "createFirstNote": "Erstellen Sie Ihre erste Notiz", + "size": "Größe", + "small": "Klein", + "medium": "Mittel", + "large": "Groß", + "shareWithCollaborators": "Mit Mitarbeitern teilen", + "view": "Notiz anzeigen", + "edit": "Notiz bearbeiten", + "readOnly": "Schreibgeschützt", + "preview": "Vorschau", + "noContent": "Kein Inhalt", + "takeNote": "Notiz machen...", + "takeNoteMarkdown": "Notiz machen... (Markdown unterstützt)", + "addItem": "Element hinzufügen", + "sharedReadOnly": "Diese Notiz ist mit Ihnen im schreibgeschützten Modus geteilt", + "makeCopy": "Kopie erstellen", + "saving": "Wird gespeichert...", + "copySuccess": "Notiz erfolgreich kopiert!", + "copyFailed": "Fehler beim Kopieren der Notiz", + "copy": "Kopieren", + "markdownOn": "Markdown EIN", + "markdownOff": "Markdown AUS", + "undo": "Rückgängig (Strg+Z)", + "redo": "Wiederholen (Strg+Y)", + "pinnedNotes": "Angeheftete Notizen", + "recent": "Aktuell", + "addNote": "Notiz hinzufügen", + "remove": "Entfernen", + "dragToReorder": "Ziehen zum Neuanordnen", + "more": "Mehr", + "emptyState": "Keine Notizen vorhanden", + "emptyStateTabs": "Keine Notizen in dieser Ansicht. Nutzen Sie \"Neue Notiz\" in der Seitenleiste (KI-Titelvorschläge im Composer verfügbar).", + "inNotebook": "In Notizbuch", + "moveFailed": "Verschieben fehlgeschlagen", + "clarifyFailed": "Klarstellung fehlgeschlagen", + "shortenFailed": "Kürzen fehlgeschlagen", + "improveFailed": "Verbesserung fehlgeschlagen", + "transformFailed": "Umwandlung fehlgeschlagen", + "markdown": "Markdown", + "unpinned": "Nicht angepinnt", + "redoShortcut": "Wiederholen (Strg+Y)", + "undoShortcut": "Rückgängig (Strg+Z)", + "viewCards": "Kartenansicht", + "viewCardsTooltip": "Kartenraster mit Drag-and-Drop-Umsortierung", + "viewTabs": "Listenansicht", + "viewTabsTooltip": "Tabs oben, Notiz unten — Tabs ziehen zum Umsortieren", + "viewModeGroup": "Notizen-Anzeigemodus", + "reorderTabs": "Tab umsortieren", + "modified": "Geändert", + "created": "Erstellt", + "loading": "Laden...", + "exportPDF": "PDF exportieren", + "savedStatus": "Gespeichert", + "dirtyStatus": "Geändert", + "completedLabel": "Erledigt", + "notes.emptyNotebook": "Leeres Notizbuch", + "notes.emptyNotebookDesc": "Keine Notizen vorhanden. Klicke auf + um eine zu erstellen.", + "notes.noNoteSelected": "Keine Notiz ausgewählt", + "notes.selectOrCreateNote": "Wähle eine Notiz aus der Liste oder erstelle eine neue.", + "commitVersion": "Version speichern", + "versionSaved": "Version gespeichert", + "deleteVersion": "Diese Version löschen", + "versionDeleted": "Version gelöscht", + "deleteVersionConfirm": "Diese Version endgültig löschen?", + "historyMode": "Verlaufsmodus", + "historyModeManual": "Manuell (Commit-Schaltfläche)", + "historyModeAuto": "Automatisch (intelligent)", + "historyModeManualDesc": "Snapshots manuell mit der Commit-Schaltfläche erstellen", + "historyModeAutoDesc": "Automatische Snapshots mit intelligenter Erkennung", + "history": "Verlauf", + "historyRestored": "Version wiederhergestellt", + "historyEnabled": "Verlauf aktiviert", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "Der Verlauf ist für Ihr Konto deaktiviert.", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "Verlauf aktivieren", + "historyEmpty": "Keine Versionen verfügbar", + "historySelectVersion": "Wählen Sie eine Version zur Vorschau aus", + "sortBy": "Sortieren nach", + "sortDateDesc": "Datum (neueste)", + "sortDateAsc": "Datum (älteste)", + "sortTitleAsc": "Titel A → Z", + "sortTitleDesc": "Titel Z → A", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "pagination": { + "previous": "←", + "pageInfo": "Seite {currentPage} / {totalPages}", + "next": "→" + }, + "labels": { + "title": "Labels", + "filter": "Nach Label filtern", + "manage": "Labels verwalten", + "manageTooltip": "Labels verwalten", + "changeColor": "Farbe ändern", + "changeColorTooltip": "Farbe ändern", + "delete": "Löschen", + "deleteTooltip": "Label löschen", + "confirmDelete": "Möchten Sie dieses Label wirklich löschen?", + "newLabelPlaceholder": "Neues Label erstellen", + "namePlaceholder": "Labelname eingeben", + "addLabel": "Label hinzufügen", + "createLabel": "Label erstellen", + "labelName": "Labelname", + "labelColor": "Labelfarbe", + "manageLabels": "Labels verwalten", + "manageLabelsDescription": "Fügen Sie Labels für diese Notiz hinzu oder entfernen Sie diese. Klicken Sie auf ein Label, um seine Farbe zu ändern.", + "selectedLabels": "Ausgewählte Labels", + "allLabels": "Alle Labels", + "clearAll": "Alle löschen", + "filterByLabel": "Nach Label filtern", + "tagAdded": "Tag \"{tag}\" hinzugefügt", + "showLess": "Weniger anzeigen", + "showMore": "Mehr anzeigen", + "editLabels": "Labels bearbeiten", + "editLabelsDescription": "Erstellen, bearbeiten Sie Farben oder löschen Sie Labels.", + "noLabelsFound": "Keine Labels gefunden.", + "loading": "Wird geladen...", + "notebookRequired": "⚠️ Labels sind nur in Notizbüchern verfügbar. Verschieben Sie diese Notiz zuerst in ein Notizbuch.", + "count": "{count} Labels", + "noLabels": "Keine Labels", + "confirmDeleteShort": "Bestätigen?", + "labelRemoved": "Label \"{label}\" entfernt" + }, + "search": { + "placeholder": "Suchen", + "searchPlaceholder": "Durchsuchen Sie Ihre Notizen...", + "semanticInProgress": "KI-Suche läuft...", + "semanticTooltip": "Semantische KI-Suche", + "searching": "Wird gesucht...", + "noResults": "Keine Ergebnisse gefunden", + "resultsFound": "{count} Notizen gefunden", + "exactMatch": "Exakte Übereinstimmung", + "related": "Verwandt", + "disabledAdmin": "Suche im Admin-Modus deaktiviert" + }, + "collaboration": { + "emailPlaceholder": "E-Mail-Adresse eingeben", + "addCollaborator": "Mitarbeiter hinzufügen", + "removeCollaborator": "Mitarbeiter entfernen", + "owner": "Besitzer", + "canEdit": "Kann bearbeiten", + "canView": "Kann anzeigen", + "shareNote": "Notiz teilen", + "shareWithCollaborators": "Mit Mitarbeitern teilen", + "addCollaboratorDescription": "Fügen Sie Personen per E-Mail-Adresse hinzu, um an dieser Notiz zu arbeiten.", + "viewerDescription": "Sie haben Zugriff auf diese Notiz. Nur der Besitzer kann Mitarbeiter verwalten.", + "emailAddress": "E-Mail-Adresse", + "enterEmailAddress": "E-Mail-Adresse eingeben", + "invite": "Einladen", + "peopleWithAccess": "Personen mit Zugriff", + "noCollaborators": "Noch keine Mitarbeiter. Fügen Sie jemanden oben hinzu!", + "noCollaboratorsViewer": "Noch keine Mitarbeiter.", + "pendingInvite": "Ausstehende Einladung", + "pending": "Ausstehend", + "remove": "Entfernen", + "unnamedUser": "Unbenannter Benutzer", + "done": "Fertig", + "willBeAdded": "{email} wird als Mitarbeiter hinzugefügt, wenn die Notiz erstellt wird", + "alreadyInList": "Diese E-Mail ist bereits in der Liste", + "nowHasAccess": "{name} hat jetzt Zugriff auf diese Notiz", + "accessRevoked": "Der Zugriff wurde widerrufen", + "errorLoading": "Fehler beim Laden der Mitarbeiter", + "failedToAdd": "Fehler beim Hinzufügen des Mitarbeiters", + "failedToRemove": "Fehler beim Entfernen des Mitarbeiters" }, "ai": { "analyzing": "KI analysiert...", + "clickToAddTag": "Klicken Sie, um diesen Tag hinzuzufügen", + "ignoreSuggestion": "Diesen Vorschlag ignorieren", + "generatingTitles": "Titel werden generiert...", + "generateTitlesTooltip": "Titel mit KI generieren", + "poweredByAI": "Powered by KI", + "languageDetected": "Sprache erkannt", + "processing": "Verarbeitung läuft...", + "tagAdded": "Tag \"{tag}\" hinzugefügt", + "titleGenerating": "Wird generiert...", + "titleGenerateWithAI": "Titel mit KI generieren", + "titleGenerationMinWords": "Der Inhalt muss mindestens 10 Wörter haben, um Titel zu generieren (aktuell: {count} Wörter)", + "titleGenerationError": "Fehler beim Generieren der Titel", + "titlesGenerated": "💡 {count} Titel generiert!", + "titleGenerationFailed": "Fehler beim Generieren der Titel", + "titleApplied": "Titel angewendet!", + "reformulationNoText": "Bitte Text auswählen oder Inhalt hinzufügen", + "reformulationSelectionTooShort": "Auswahl zu kurz, vollständiger Inhalt wird verwendet", + "reformulationMinWords": "Der Text muss mindestens 10 Wörter haben (aktuell: {count} Wörter)", + "reformulationMaxWords": "Der Text darf maximal 500 Wörter haben", + "reformulationError": "Fehler bei der Reformulierung", + "reformulationFailed": "Fehler beim Reformulieren des Textes", + "reformulationApplied": "Reformulierter Text angewendet!", + "transformMarkdown": "In Markdown umwandeln", + "transforming": "Wird umgewandelt...", + "transformSuccess": "Text erfolgreich in Markdown umgewandelt!", + "transformError": "Fehler bei der Umwandlung", "assistant": "KI-Assistent", + "generating": "Wird generiert...", + "generateTitles": "Titel generieren", + "reformulateText": "Text reformulieren", + "reformulating": "Wird reformuliert...", + "clarify": "Klarstellen", + "shorten": "Kürzen", + "improveStyle": "Stil verbessern", + "reformulationComparison": "Reformulierungsvergleich", + "original": "Original", + "reformulated": "Reformuliert", "autoLabels": { "error": "Fehler beim Abrufen der Etikettvorschläge", "noLabelsSelected": "Keine Etiketten ausgewählt", @@ -304,47 +356,11 @@ "selectAllIn": "Alle Notizen in {notebook} auswählen", "selectNote": "Notiz auswählen: {title}" }, - "clarify": "Klarstellen", - "clickToAddTag": "Klicken Sie, um diesen Tag hinzuzufügen", - "generateTitles": "Titel generieren", - "generateTitlesTooltip": "Titel mit KI generieren", - "generating": "Wird generiert...", - "generatingTitles": "Titel werden generiert...", - "ignoreSuggestion": "Diesen Vorschlag ignorieren", - "improveStyle": "Stil verbessern", - "languageDetected": "Sprache erkannt", "notebookSummary": { "regenerate": "Zusammenfassung neu generieren", "regenerating": "Zusammenfassung wird neu generiert...", "exportPDF": "Als PDF exportieren" }, - "original": "Original", - "poweredByAI": "Powered by KI", - "processing": "Verarbeitung läuft...", - "reformulateText": "Text reformulieren", - "reformulated": "Reformuliert", - "reformulating": "Wird reformuliert...", - "reformulationApplied": "Reformulierter Text angewendet!", - "reformulationComparison": "Reformulierungsvergleich", - "reformulationError": "Fehler bei der Reformulierung", - "reformulationFailed": "Fehler beim Reformulieren des Textes", - "reformulationMaxWords": "Der Text darf maximal 500 Wörter haben", - "reformulationMinWords": "Der Text muss mindestens 10 Wörter haben (aktuell: {count} Wörter)", - "reformulationNoText": "Bitte Text auswählen oder Inhalt hinzufügen", - "reformulationSelectionTooShort": "Auswahl zu kurz, vollständiger Inhalt wird verwendet", - "shorten": "Kürzen", - "tagAdded": "Tag \"{tag}\" hinzugefügt", - "titleApplied": "Titel angewendet!", - "titleGenerateWithAI": "Titel mit KI generieren", - "titleGenerating": "Wird generiert...", - "titleGenerationError": "Fehler beim Generieren der Titel", - "titleGenerationFailed": "Fehler beim Generieren der Titel", - "titleGenerationMinWords": "Der Inhalt muss mindestens 10 Wörter haben, um Titel zu generieren (aktuell: {count} Wörter)", - "titlesGenerated": "💡 {count} Titel generiert!", - "transformError": "Fehler bei der Umwandlung", - "transformMarkdown": "In Markdown umwandeln", - "transformSuccess": "Text erfolgreich in Markdown umgewandelt!", - "transforming": "Wird umgewandelt...", "clarifyDesc": "Den Text klarer und verständlicher machen", "shortenDesc": "Den Text zusammenfassen und auf den Punkt bringen", "improve": "Schreiben verbessern", @@ -389,11 +405,14 @@ "transformationsDesc": "Transformationen — direkt in der Notiz angewendet", "writeMinWordsAction": "Schreibe mindestens 5 Wörter, um KI-Aktionen zu aktivieren.", "processingAction": "Verarbeitung...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "Klären", "shorten": "Kürzen", "improve": "Verbessern", - "toMarkdown": "Zu Markdown" + "toMarkdown": "Zu Markdown", + "describeImages": "Describe images" }, "openAssistant": "KI-Assistenten öffnen", "poweredByMomento": "Angetrieben von Momento AI", @@ -408,22 +427,256 @@ "historyTab": "Verlauf", "insightsTab": "Einblicke", "aiCopilot": "KI-Copilot", - "suggestTitle": "KI-Titelvorschlag" + "suggestTitle": "KI-Titelvorschlag", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" + }, + "titleSuggestions": { + "available": "Titelvorschläge", + "title": "KI-Vorschläge", + "generating": "Wird generiert...", + "selectTitle": "Titel auswählen", + "dismiss": "Schließen" + }, + "semanticSearch": { + "exactMatch": "Exakte Übereinstimmung", + "related": "Verwandt", + "searching": "Wird gesucht..." + }, + "paragraphRefactor": { + "title": "Textverbesserung", + "shorten": "Kürzen", + "expand": "Erweitern", + "improve": "Verbessern", + "formal": "Formell", + "casual": "Locker" + }, + "memoryEcho": { + "title": "Ich habe etwas bemerkt...", + "description": "Proaktive Verbindungen zwischen Ihren Notizen", + "dailyInsight": "Tägliche Einblicke aus Ihren Notizen", + "insightReady": "Ihr Einblick ist bereit!", + "viewConnection": "Verbindung anzeigen", + "helpful": "Hilfreich", + "notHelpful": "Nicht hilfreich", + "dismiss": "Vorzeitig schließen", + "thanksFeedback": "Danke für Ihr Feedback!", + "thanksFeedbackImproving": "Danke! Wir werden dies zur Verbesserung nutzen.", + "connections": "Verbindungen", + "connection": "Verbindung", + "connectionsBadge": "{count} Verbindung{plural}", + "match": "{percentage}% Übereinstimmung", + "fused": "Fusioniert", + "clickToView": "Klicken zum Anzeigen", + "overlay": { + "title": "Verbundene Notizen", + "searchPlaceholder": "Verbindungen suchen...", + "sortBy": "Sortieren nach:", + "sortSimilarity": "Ähnlichkeit", + "sortRecent": "Neueste", + "sortOldest": "Älteste", + "viewAll": "Alle nebeneinander anzeigen", + "loading": "Wird geladen...", + "noConnections": "Keine Verbindungen gefunden", + "error": "Fehler beim Laden der Verbindungen" + }, + "comparison": { + "title": "💡 Notizvergleich", + "similarityInfo": "Diese Notizen sind zu {similarity}% ähnlich", + "highSimilarityInsight": "Diese Notizen behandeln das gleiche Thema mit einem hohen Ähnlichkeitsgrad. Sie könnten zusammengeführt oder konsolidiert werden.", + "untitled": "Unbenannt", + "clickToView": "Klicken Sie, um die Notiz anzuzeigen", + "helpfulQuestion": "Ist dieser Vergleich hilfreich?", + "helpful": "Hilfreich", + "notHelpful": "Nicht hilfreich" + }, + "editorSection": { + "title": "⚡ Verbundene Notizen ({count})", + "loading": "Wird geladen...", + "view": "Anzeigen", + "compare": "Vergleichen", + "merge": "Zusammenführen", + "compareAll": "Alle vergleichen", + "mergeAll": "Alle zusammenführen", + "close": "Schließen" + }, + "fusion": { + "title": "🔗 Intelligente Fusion", + "mergeNotes": "{count} Notiz(en) zusammenführen", + "notesToMerge": "📝 Zu zusammenführende Notizen", + "optionalPrompt": "💬 Fusion-Prompt (optional)", + "promptPlaceholder": "Optionale Anweisungen für die KI (z. B. 'Den formalen Stil von Notiz 1 beibehalten')...", + "generateFusion": "Fusion generieren", + "generating": "Wird generiert...", + "previewTitle": "📝 Vorschau der zusammengeführten Notiz", + "edit": "Bearbeiten", + "modify": "Ändern", + "finishEditing": "Bearbeitung beenden", + "optionsTitle": "Fusionsoptionen", + "archiveOriginals": "Originale Notizen archivieren", + "keepAllTags": "Alle Tags behalten", + "useLatestTitle": "Neueste Notiz als Titel verwenden", + "createBacklinks": "Backlink zu ursprünglichen Notizen erstellen", + "cancel": "Abbrechen", + "confirmFusion": "Fusion bestätigen", + "success": "Notizen erfolgreich zusammengeführt!", + "error": "Fehler beim Zusammenführen der Notizen", + "generateError": "Fehler beim Generieren der Fusion", + "noContentReturned": "Kein Fusion-Inhalt von der API zurückgegeben", + "unknownDate": "Unbekanntes Datum" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "hat \"{title}\" geteilt", + "untitled": "Unbenannt", + "notifications": "Benachrichtigungen", + "declined": "Freigabe abgelehnt", + "removed": "Note aus der Liste entfernt" + }, + "nav": { + "home": "Startseite", + "notes": "Notizen", + "notebooks": "Notizbücher", + "generalNotes": "Allgemeine Notizen", + "archive": "Archiv", + "settings": "Einstellungen", + "profile": "Profil", + "aiSettings": "KI-Einstellungen", + "logout": "Abmelden", + "login": "Anmelden", + "adminDashboard": "Admin-Dashboard", + "diagnostics": "Diagnose", + "trash": "Papierkorb", + "support": "Memento unterstützen ☕", + "reminders": "Erinnerungen", + "userManagement": "Benutzerverwaltung", + "accountSettings": "Kontoeinstellungen", + "manageAISettings": "KI-Einstellungen verwalten", + "configureAI": "Konfigurieren Sie Ihre KI-gesteuerten Funktionen, Provider und Präferenzen", + "supportDevelopment": "Memento-Entwicklung unterstützen ☕", + "supportDescription": "Memento ist zu 100% kostenlos und Open Source. Ihre Unterstützung hilft, es so zu halten.", + "buyMeACoffee": "Lad mir einen Kaffee", + "donationDescription": "Machen Sie eine einmalige Spende oder werden Sie monatlicher Unterstützer.", + "donateOnKofi": "Auf Ko-fi spenden", + "donationNote": "Keine Plattformgebühren • Sofortige Auszahlungen • Sicher", + "sponsorOnGithub": "Auf GitHub sponsoren", + "sponsorDescription": "Werden Sie monatlicher Sponsor und erhalten Sie Anerkennung.", + "workspace": "Arbeitsbereich", + "quickAccess": "Schnellzugriff", + "myLibrary": "Meine Bibliothek", + "favorites": "Favoriten", + "recent": "Aktuell", + "proPlan": "Pro Plan", + "chat": "KI-Chat", + "lab": "Das Labor", + "agents": "Agenten" + }, + "settings": { + "title": "Einstellungen", + "description": "Verwalten Sie Ihre Einstellungen und Präferenzen", + "account": "Konto", + "appearance": "Darstellung", + "theme": "Design", + "themeLight": "Hell", + "themeDark": "Dunkel", + "themeSystem": "System", + "notifications": "Benachrichtigungen", + "language": "Sprache", + "selectLanguage": "Sprache auswählen", + "security": "Sicherheit", + "about": "Über", + "version": "Version", + "settingsSaved": "Einstellungen gespeichert", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "Fehler beim Speichern der Einstellungen", + "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": "{created} Label synchronisiert, {deleted} verwaiste gelöscht", + "cleanupNothing": "Keine Aktion nötig — Labels sind bereits mit Ihren Notizen synchronisiert", + "cleanupWithErrors": "einige Vorgänge sind fehlgeschlagen", + "cleanupError": "Labels konnten nicht bereinigt werden", + "indexingComplete": "Indexierung abgeschlossen: {count} Notiz(en) verarbeitet", + "indexingError": "Fehler bei der Indexierung", + "semanticIndexing": "Semantic Indexing", + "semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search", + "profile": "Profil", + "searchNoResults": "Keine Ergebnisse gefunden", + "languageAuto": "Automatisch", + "emailNotifications": "E-Mail-Benachrichtigungen", + "emailNotificationsDesc": "Wichtige Benachrichtigungen per E-Mail erhalten", + "desktopNotifications": "Desktop-Benachrichtigungen", + "desktopNotificationsDesc": "Benachrichtigungen im Browser erhalten", + "notificationsDesc": "Verwalten Sie Ihre Benachrichtigungseinstellungen" + }, + "profile": { + "title": "Profil", + "description": "Aktualisieren Sie Ihre persönlichen Informationen", + "displayName": "Anzeigename", + "email": "E-Mail", + "changePassword": "Passwort ändern", + "changePasswordDescription": "Aktualisieren Sie Ihr Passwort. Sie benötigen Ihr aktuelles Passwort.", + "currentPassword": "Aktuelles Passwort", + "newPassword": "Neues Passwort", + "confirmPassword": "Passwort bestätigen", + "updatePassword": "Passwort aktualisieren", + "passwordChangeSuccess": "Passwort erfolgreich geändert", + "passwordChangeFailed": "Fehler beim Ändern des Passworts", + "passwordUpdated": "Passwort aktualisiert", + "passwordError": "Fehler beim Aktualisieren des Passworts", + "languagePreferences": "Spracheinstellungen", + "languagePreferencesDescription": "Wählen Sie Ihre bevorzugte Sprache für KI-Funktionen und die Oberfläche.", + "preferredLanguage": "Bevorzugte Sprache", + "selectLanguage": "Sprache auswählen", + "languageDescription": "Diese Sprache wird für KI-gesteuerte Funktionen, Inhaltsanalyse und Oberflächentext verwendet.", + "autoDetect": "Automatische Erkennung", + "updateSuccess": "Profil aktualisiert", + "updateFailed": "Fehler beim Aktualisieren des Profils", + "languageUpdateSuccess": "Sprache erfolgreich aktualisiert", + "languageUpdateFailed": "Fehler beim Aktualisieren der Sprache", + "profileUpdated": "Profil aktualisiert", + "profileError": "Fehler beim Aktualisieren des Profils", + "accountSettings": "Kontoeinstellungen", + "manageAISettings": "KI-Einstellungen verwalten", + "displaySettings": "Anzeigeeinstellungen", + "displaySettingsDescription": "Passen Sie die Darstellung und Schriftgröße an.", + "fontSize": "Schriftgröße", + "selectFontSize": "Schriftgröße auswählen", + "fontSizeSmall": "Klein", + "fontSizeMedium": "Mittel", + "fontSizeLarge": "Groß", + "fontSizeExtraLarge": "Extra groß", + "fontSizeDescription": "Passen Sie die Schriftgröße für bessere Lesbarkeit an. Dies gilt für alle Texte in der Oberfläche.", + "fontSizeUpdateSuccess": "Schriftgröße erfolgreich aktualisiert", + "fontSizeUpdateFailed": "Fehler beim Aktualisieren der Schriftgröße", + "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": "KI-Einstellungen", "description": "Konfigurieren Sie Ihre KI-gesteuerten Funktionen und Präferenzen", - "error": "Fehler beim Aktualisieren der Einstellung", "features": "KI-Funktionen", - "frequency": "Häufigkeit", - "frequencyDaily": "Täglich", - "frequencyWeekly": "Wöchentlich", "provider": "KI-Anbieter", "providerAuto": "Auto (Empfohlen)", "providerOllama": "Ollama (Lokal)", "providerOpenAI": "OpenAI (Cloud)", - "saved": "Einstellung aktualisiert", + "frequency": "Häufigkeit", + "frequencyDaily": "Täglich", + "frequencyWeekly": "Wöchentlich", "saving": "Wird gespeichert...", - "title": "KI-Einstellungen", + "saved": "Einstellung aktualisiert", + "error": "Fehler beim Aktualisieren der Einstellung", "titleSuggestionsDesc": "Titel für unbenannte Notizen nach 50+ Wörtern vorschlagen", "paragraphRefactorDesc": "KI-gestützte Textverbesserungsoptionen", "frequencyDesc": "Wie oft Notizverbindungen analysiert werden", @@ -432,815 +685,518 @@ "providerOllamaDesc": "100% privat, läuft lokal auf Ihrem Gerät", "providerOpenAIDesc": "Am genauesten, erfordert API-Schlüssel" }, - "appearance": { - "description": "Anpassen, wie die App aussieht", - "title": "Erscheinungsbild", - "notesViewDescription": "Wählen Sie, wie Notizen auf der Startseite und in Notizbüchern angezeigt werden.", - "notesViewLabel": "Notizen-Ansicht", - "notesViewTabs": "Tabs (OneNote-Stil)", - "notesViewMasonry": "Karten (Raster)" - }, - "auth": { - "backToLogin": "Zurück zur Anmeldung", - "checkYourEmail": "Überprüfen Sie Ihre E-Mail", - "createAccount": "Erstellen Sie Ihr Konto", - "email": "E-Mail", - "emailPlaceholder": "Geben Sie Ihre E-Mail-Adresse ein", - "forgotPassword": "Passwort vergessen?", - "forgotPasswordDescription": "Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen einen Link zum Zurücksetzen Ihres Passworts.", - "forgotPasswordTitle": "Passwort vergessen", - "hasAccount": "Haben Sie bereits ein Konto?", - "name": "Name", - "namePlaceholder": "Geben Sie Ihren Namen ein", - "noAccount": "Haben Sie kein Konto?", - "orContinueWith": "Oder fortfahren mit", - "password": "Passwort", - "passwordMinChars": "Passwort eingeben (min. 6 Zeichen)", - "passwordPlaceholder": "Geben Sie Ihr Passwort ein", - "rememberMe": "Angemeldet bleiben", - "resetEmailSent": "Wir haben einen Link zum Zurücksetzen des Passworts an Ihre E-Mail-Adresse gesendet, wenn sie in unserem System existiert.", - "resetPassword": "Passwort zurücksetzen", - "resetPasswordInstructions": "Geben Sie Ihre E-Mail ein, um Ihr Passwort zurückzusetzen", - "returnToLogin": "Zurück zur Anmeldung", - "sendResetLink": "Link zum Zurücksetzen senden", - "sending": "Wird gesendet...", - "signIn": "Anmelden", - "signInToAccount": "Melden Sie sich in Ihrem Konto an", - "signOut": "Sign out", - "signUp": "Registrieren", - "confirmPassword": "Passwort bestätigen", - "confirmPasswordPlaceholder": "Passwort erneut eingeben" - }, - "autoLabels": { - "analyzing": "Notizen werden analysiert...", - "createNewLabel": "Dieses neue Label erstellen und hinzufügen", - "created": "{count} Labels erfolgreich erstellt", - "description": "Ich habe wiederkehrende Themen in \"{notebookName}\" ({totalNotes} Notizen) erkannt. Labels dafür erstellen?", - "error": "Fehler beim Abrufen von Label-Vorschlägen", - "new": "(neu)", - "noLabelsSelected": "Keine Labels ausgewählt", - "note": "Notiz", - "notes": "Notizen", - "title": "Neue Label-Vorschläge", - "typeContent": "Geben Sie Inhalt ein, um Label-Vorschläge zu erhalten...", - "typeForSuggestions": "Tippen für Vorschläge..." - }, - "batch": { - "organize": "Organisieren", - "organizeWithAI": "Mit KI organisieren" - }, - "batchOrganization": { - "analyzing": "Notizen werden analysiert...", - "apply": "Anwenden ({count})", - "applyFailed": "Anwenden fehlgeschlagen", - "applying": "Wird angewendet...", - "confidence": "Vertrauen", - "description": "Die KI wird Ihre Notizen analysieren und Vorschläge zur Organisation in Notizbüchern machen.", - "error": "Fehler beim Erstellen des Organisationsplans", - "noNotebooks": "Keine Notizbücher verfügbar. Erstellen Sie zuerst Notizbücher, um Ihre Notizen zu organisieren.", - "noNotesSelected": "Keine Notizen ausgewählt", - "noSuggestions": "Die KI konnte keine gute Möglichkeit zur Organisation dieser Notizen finden.", - "notesToOrganize": "{count} Notizen zu organisieren", - "selectAllIn": "Alle in {name} auswählen", - "selectNote": "Notiz auswählen", - "selected": "{count} ausgewählt", - "success": "Organisation erfolgreich angewendet", - "title": "Mit KI organisieren", - "unorganized": "{count} Notizen konnten nicht kategorisiert werden und verbleiben in Allgemeinen Notizen." - }, - "collaboration": { - "accessRevoked": "Der Zugriff wurde widerrufen", - "addCollaborator": "Mitarbeiter hinzufügen", - "addCollaboratorDescription": "Fügen Sie Personen per E-Mail-Adresse hinzu, um an dieser Notiz zu arbeiten.", - "alreadyInList": "Diese E-Mail ist bereits in der Liste", - "canEdit": "Kann bearbeiten", - "canView": "Kann anzeigen", - "done": "Fertig", - "emailAddress": "E-Mail-Adresse", - "emailPlaceholder": "E-Mail-Adresse eingeben", - "enterEmailAddress": "E-Mail-Adresse eingeben", - "errorLoading": "Fehler beim Laden der Mitarbeiter", - "failedToAdd": "Fehler beim Hinzufügen des Mitarbeiters", - "failedToRemove": "Fehler beim Entfernen des Mitarbeiters", - "invite": "Einladen", - "noCollaborators": "Noch keine Mitarbeiter. Fügen Sie jemanden oben hinzu!", - "noCollaboratorsViewer": "Noch keine Mitarbeiter.", - "nowHasAccess": "{name} hat jetzt Zugriff auf diese Notiz", - "owner": "Besitzer", - "pending": "Ausstehend", - "pendingInvite": "Ausstehende Einladung", - "peopleWithAccess": "Personen mit Zugriff", - "remove": "Entfernen", - "removeCollaborator": "Mitarbeiter entfernen", - "shareNote": "Notiz teilen", - "shareWithCollaborators": "Mit Mitarbeitern teilen", - "unnamedUser": "Unbenannter Benutzer", - "viewerDescription": "Sie haben Zugriff auf diese Notiz. Nur der Besitzer kann Mitarbeiter verwalten.", - "willBeAdded": "{email} wird als Mitarbeiter hinzugefügt, wenn die Notiz erstellt wird" + "general": { + "loading": "Wird geladen...", + "save": "Speichern", + "cancel": "Abbrechen", + "add": "Hinzufügen", + "edit": "Bearbeiten", + "confirm": "Bestätigen", + "close": "Schließen", + "back": "Zurück", + "next": "Weiter", + "previous": "Zurück", + "submit": "Absenden", + "reset": "Zurücksetzen", + "apply": "Anwenden", + "clear": "Löschen", + "select": "Auswählen", + "tryAgain": "Bitte versuchen Sie es erneut", + "error": "Ein Fehler ist aufgetreten", + "operationSuccess": "Operation erfolgreich", + "operationFailed": "Operation fehlgeschlagen", + "testConnection": "Test Connection", + "clean": "Clean", + "indexAll": "Index All", + "preview": "Vorschau" }, "colors": { - "blue": "Blau", "default": "Standard", - "gray": "Grau", - "green": "Grün", - "orange": "Orange", - "pink": "Rosa", - "purple": "Lila", "red": "Rot", - "yellow": "Gelb" + "blue": "Blau", + "green": "Grün", + "yellow": "Gelb", + "purple": "Lila", + "pink": "Rosa", + "orange": "Orange", + "gray": "Grau" }, - "common": { - "add": "Hinzufügen", - "cancel": "Abbrechen", - "close": "Schließen", - "confirm": "Bestätigen", - "delete": "Löschen", - "edit": "Bearbeiten", - "error": "Fehler", - "loading": "Wird geladen...", - "noResults": "Keine Ergebnisse", - "notAvailable": "Nicht verfügbar", - "optional": "Optional", - "remove": "Entfernen", - "required": "Erforderlich", - "save": "Speichern", - "search": "Suchen", - "success": "Erfolg", - "unknown": "Unbekannt" + "reminder": { + "title": "Erinnerung", + "setReminder": "Erinnerung festlegen", + "removeReminder": "Erinnerung entfernen", + "reminderDate": "Erinnerungsdatum", + "reminderTime": "Erinnerungszeit", + "save": "Erinnerung festlegen", + "cancel": "Abbrechen" }, - "connection": { - "clickToView": "Klicken Sie, um die Notiz anzuzeigen", - "helpful": "Hilfreich", - "isHelpful": "Ist diese Verbindung hilfreich?", - "memoryEchoDiscovery": "Memory Echo Entdeckung", - "notHelpful": "Nicht hilfreich", - "similarityInfo": "Diese Notizen sind durch {similarity}% Ähnlichkeit verbunden" - }, - "dataManagement": { - "cleanup": { - "button": "Bereinigen", - "description": "Labels und Verbindungen entfernen, die auf gelöschte Notizen verweisen.", - "failed": "Fehler während der Bereinigung", - "title": "Verwaiste Daten bereinigen" - }, - "cleanupComplete": "Bereinigung abgeschlossen", - "cleanupError": "Fehler bei der Bereinigung", - "dangerZone": "Gefahrenbereich", - "dangerZoneDescription": "Diese Aktionen sind irreversibel. Bitte seien Sie vorsichtig.", - "delete": { - "button": "Alle Notizen löschen", - "confirm": "Sind Sie sicher? Dies löscht dauerhaft alle Ihre Notizen.", - "description": "Dauerhaft alle Ihre Notizen löschen. Diese Aktion kann nicht rückgängig gemacht werden.", - "failed": "Fehler beim Löschen der Notizen", - "success": "Alle Notizen gelöscht", - "title": "Alle Notizen löschen" - }, - "deleting": "Wird gelöscht...", - "export": { - "button": "Notizen exportieren", - "description": "Laden Sie alle Ihre Notizen als JSON-Datei herunter. Dies umfasst alle Inhalte, Labels und Metadaten.", - "failed": "Fehler beim Exportieren der Notizen", - "success": "Notizen erfolgreich exportiert", - "title": "Alle Notizen exportieren" - }, - "exporting": "Wird exportiert...", - "import": { - "button": "Notizen importieren", - "description": "Laden Sie eine JSON-Datei hoch, um Notizen zu importieren. Diese werden zu Ihren vorhandenen Notizen hinzugefügt, nicht ersetzt.", - "failed": "Fehler beim Importieren der Notizen", - "success": "{count} Notizen importiert", - "title": "Notizen importieren" - }, - "importing": "Wird importiert...", - "indexing": { - "button": "Index neu erstellen", - "description": "Embeddings für alle Notizen neu generieren, um die semantische Suche zu verbessern.", - "failed": "Fehler während der Indizierung", - "success": "Indizierung abgeschlossen: {count} Notizen verarbeitet", - "title": "Suchindex neu erstellen" - }, - "indexingComplete": "Indizierung abgeschlossen", - "indexingError": "Fehler bei der Indizierung", - "title": "Datenverwaltung", - "toolsDescription": "Werkzeuge zur Pflege Ihrer Datenbankgesundheit" - }, - "demoMode": { - "activated": "Demo-Modus aktiviert! Memory Echo funktioniert jetzt sofort.", - "createNotesTip": "Erstellen Sie 2+ ähnliche Notizen und sehen Sie Memory Echo in Aktion!", - "deactivated": "Demo-Modus deaktiviert. Normale Parameter wiederhergestellt.", - "delayBetweenNotes": "0 Tage Verzögerung zwischen Notizen (normalerweise 7 Tage)", - "description": "Beschleunigt Memory Echo zum Testen. Verbindungen erscheinen sofort.", - "parametersActive": "Demo-Parameter aktiv:", - "similarityThreshold": "50% Ähnlichkeitsschwelle (normalerweise 75%)", - "title": "Demo-Modus", - "toggleFailed": "Fehler beim Umschalten des Demo-Modus", - "unlimitedInsights": "Unbegrenzte Einblicke (keine Häufigkeitsbeschränkungen)" - }, - "diagnostics": { - "apiStatus": "API-Status", - "checking": "Checking...", - "configuredProvider": "Konfigurierter Anbieter", - "description": "Check your AI provider connection status", - "errorStatus": "Error", - "operational": "Operational", - "testDetails": "Test-Details:", - "tip1": "Stellen Sie sicher, dass Ollama läuft (ollama serve)", - "tip2": "Prüfen Sie, dass das Modell installiert ist (ollama pull llama3)", - "tip3": "Überprüfen Sie Ihren API-Schlüssel für OpenAI", - "tip4": "Prüfen Sie die Netzwerkverbindung", - "title": "Diagnose", - "troubleshootingTitle": "Fehlerbehebungstipps:" - }, - "favorites": { - "noFavorites": "Keine Favoriten", - "pinToFavorite": "Als Favorit anheften", - "title": "Favoriten", - "toggleSection": "Bereich umschalten" - }, - "footer": { - "openSource": "Open Source Klon", - "privacy": "Datenschutz", - "terms": "Nutzungsbedingungen" - }, - "general": { - "add": "Hinzufügen", - "apply": "Anwenden", - "back": "Zurück", - "cancel": "Abbrechen", - "clean": "Clean", - "clear": "Löschen", - "close": "Schließen", - "confirm": "Bestätigen", - "edit": "Bearbeiten", - "error": "Ein Fehler ist aufgetreten", - "indexAll": "Index All", - "loading": "Wird geladen...", - "next": "Weiter", - "operationFailed": "Operation fehlgeschlagen", - "operationSuccess": "Operation erfolgreich", - "preview": "Vorschau", - "previous": "Zurück", - "reset": "Zurücksetzen", - "save": "Speichern", - "select": "Auswählen", - "submit": "Absenden", - "testConnection": "Test Connection", - "tryAgain": "Bitte versuchen Sie es erneut" - }, - "generalSettings": { - "description": "Allgemeine Anwendungseinstellungen", - "title": "Allgemeine Einstellungen" - }, - "labels": { - "addLabel": "Label hinzufügen", - "allLabels": "Alle Labels", - "changeColor": "Farbe ändern", - "changeColorTooltip": "Farbe ändern", - "clearAll": "Alle löschen", - "confirmDelete": "Möchten Sie dieses Label wirklich löschen?", - "count": "{count} Labels", - "createLabel": "Label erstellen", - "delete": "Löschen", - "deleteTooltip": "Label löschen", - "editLabels": "Labels bearbeiten", - "editLabelsDescription": "Erstellen, bearbeiten Sie Farben oder löschen Sie Labels.", - "filter": "Nach Label filtern", - "filterByLabel": "Nach Label filtern", - "labelColor": "Labelfarbe", - "labelName": "Labelname", - "loading": "Wird geladen...", - "manage": "Labels verwalten", - "manageLabels": "Labels verwalten", - "manageLabelsDescription": "Fügen Sie Labels für diese Notiz hinzu oder entfernen Sie diese. Klicken Sie auf ein Label, um seine Farbe zu ändern.", - "manageTooltip": "Labels verwalten", - "namePlaceholder": "Labelname eingeben", - "newLabelPlaceholder": "Neues Label erstellen", - "noLabels": "Keine Labels", - "noLabelsFound": "Keine Labels gefunden.", - "notebookRequired": "⚠️ Labels sind nur in Notizbüchern verfügbar. Verschieben Sie diese Notiz zuerst in ein Notizbuch.", - "selectedLabels": "Ausgewählte Labels", - "showLess": "Weniger anzeigen", - "showMore": "Mehr anzeigen", - "tagAdded": "Tag \"{tag}\" hinzugefügt", - "title": "Labels", - "confirmDeleteShort": "Bestätigen?", - "labelRemoved": "Label \"{label}\" entfernt" - }, - "memoryEcho": { - "clickToView": "Klicken zum Anzeigen", - "comparison": { - "clickToView": "Klicken Sie, um die Notiz anzuzeigen", - "helpful": "Hilfreich", - "helpfulQuestion": "Ist dieser Vergleich hilfreich?", - "highSimilarityInsight": "Diese Notizen behandeln das gleiche Thema mit einem hohen Ähnlichkeitsgrad. Sie könnten zusammengeführt oder konsolidiert werden.", - "notHelpful": "Nicht hilfreich", - "similarityInfo": "Diese Notizen sind zu {similarity}% ähnlich", - "title": "💡 Notizvergleich", - "untitled": "Unbenannt" - }, - "connection": "Verbindung", - "connections": "Verbindungen", - "connectionsBadge": "{count} Verbindung{plural}", - "dailyInsight": "Tägliche Einblicke aus Ihren Notizen", - "description": "Proaktive Verbindungen zwischen Ihren Notizen", - "dismiss": "Vorzeitig schließen", - "editorSection": { - "close": "Schließen", - "compare": "Vergleichen", - "compareAll": "Alle vergleichen", - "loading": "Wird geladen...", - "merge": "Zusammenführen", - "mergeAll": "Alle zusammenführen", - "title": "⚡ Verbundene Notizen ({count})", - "view": "Anzeigen" - }, - "fused": "Fusioniert", - "fusion": { - "archiveOriginals": "Originale Notizen archivieren", - "cancel": "Abbrechen", - "confirmFusion": "Fusion bestätigen", - "createBacklinks": "Backlink zu ursprünglichen Notizen erstellen", - "edit": "Bearbeiten", - "error": "Fehler beim Zusammenführen der Notizen", - "finishEditing": "Bearbeitung beenden", - "generateError": "Fehler beim Generieren der Fusion", - "generateFusion": "Fusion generieren", - "generating": "Wird generiert...", - "keepAllTags": "Alle Tags behalten", - "mergeNotes": "{count} Notiz(en) zusammenführen", - "modify": "Ändern", - "noContentReturned": "Kein Fusion-Inhalt von der API zurückgegeben", - "notesToMerge": "📝 Zu zusammenführende Notizen", - "optionalPrompt": "💬 Fusion-Prompt (optional)", - "optionsTitle": "Fusionsoptionen", - "previewTitle": "📝 Vorschau der zusammengeführten Notiz", - "promptPlaceholder": "Optionale Anweisungen für die KI (z. B. 'Den formalen Stil von Notiz 1 beibehalten')...", - "success": "Notizen erfolgreich zusammengeführt!", - "title": "🔗 Intelligente Fusion", - "unknownDate": "Unbekanntes Datum", - "useLatestTitle": "Neueste Notiz als Titel verwenden" - }, - "helpful": "Hilfreich", - "insightReady": "Ihr Einblick ist bereit!", - "notHelpful": "Nicht hilfreich", - "overlay": { - "error": "Fehler beim Laden der Verbindungen", - "loading": "Wird geladen...", - "noConnections": "Keine Verbindungen gefunden", - "searchPlaceholder": "Verbindungen suchen...", - "sortBy": "Sortieren nach:", - "sortOldest": "Älteste", - "sortRecent": "Neueste", - "sortSimilarity": "Ähnlichkeit", - "title": "Verbundene Notizen", - "viewAll": "Alle nebeneinander anzeigen" - }, - "thanksFeedback": "Danke für Ihr Feedback!", - "thanksFeedbackImproving": "Danke! Wir werden dies zur Verbesserung nutzen.", - "title": "Ich habe etwas bemerkt...", - "viewConnection": "Verbindung anzeigen", - "match": "{percentage}% Übereinstimmung" - }, - "nav": { - "accountSettings": "Kontoeinstellungen", - "adminDashboard": "Admin-Dashboard", - "aiSettings": "KI-Einstellungen", - "archive": "Archiv", - "buyMeACoffee": "Lad mir einen Kaffee", - "configureAI": "Konfigurieren Sie Ihre KI-gesteuerten Funktionen, Provider und Präferenzen", - "diagnostics": "Diagnose", - "donateOnKofi": "Auf Ko-fi spenden", - "donationDescription": "Machen Sie eine einmalige Spende oder werden Sie monatlicher Unterstützer.", - "donationNote": "Keine Plattformgebühren • Sofortige Auszahlungen • Sicher", - "favorites": "Favoriten", - "generalNotes": "Allgemeine Notizen", - "home": "Startseite", - "login": "Anmelden", - "logout": "Abmelden", - "manageAISettings": "KI-Einstellungen verwalten", - "myLibrary": "Meine Bibliothek", - "notebooks": "Notizbücher", - "notes": "Notizen", - "proPlan": "Pro Plan", - "profile": "Profil", - "quickAccess": "Schnellzugriff", - "recent": "Aktuell", - "reminders": "Erinnerungen", - "settings": "Einstellungen", - "sponsorDescription": "Werden Sie monatlicher Sponsor und erhalten Sie Anerkennung.", - "sponsorOnGithub": "Auf GitHub sponsoren", - "support": "Memento unterstützen ☕", - "supportDescription": "Memento ist zu 100% kostenlos und Open Source. Ihre Unterstützung hilft, es so zu halten.", - "supportDevelopment": "Memento-Entwicklung unterstützen ☕", - "trash": "Papierkorb", - "userManagement": "Benutzerverwaltung", - "workspace": "Arbeitsbereich", - "chat": "KI-Chat", - "lab": "Das Labor", - "agents": "Agenten" + "reminders": { + "title": "Erinnerungen", + "empty": "Keine Erinnerungen", + "emptyDescription": "Fügen Sie einer Note eine Erinnerung hinzu, um sie hier zu finden.", + "upcoming": "Anstehend", + "overdue": "Überfällig", + "done": "Erledigt", + "markDone": "Als erledigt markieren", + "markUndone": "Als nicht erledigt markieren", + "todayAt": "Heute um {time}", + "tomorrowAt": "Morgen um {time}" }, "notebook": { - "cancel": "Abbrechen", "create": "Notizbuch erstellen", - "createDescription": "Starten Sie eine neue Sammlung, um Ihre Notizen, Ideen und Projekte effizient zu organisieren.", "createNew": "Neues Notizbuch erstellen", - "creating": "Erstellen...", - "delete": "Notizbuch löschen", - "deleteConfirm": "Löschen", - "deleteWarning": "Möchten Sie dieses Notizbuch wirklich löschen? Notizen werden in Allgemeine Notizen verschoben.", - "edit": "Notizbuch bearbeiten", - "editDescription": "Ändern Sie den Namen, das Symbol und die Farbe Ihres Notizbuchs.", - "generating": "Zusammenfassung wird generiert...", - "labels": "Labels", + "createDescription": "Starten Sie eine neue Sammlung, um Ihre Notizen, Ideen und Projekte effizient zu organisieren.", "name": "Notizbuch-Name", - "noLabels": "Keine Labels", - "selectColor": "Farbe", - "selectIcon": "Symbol", - "summary": "Notizbuch-Zusammenfassung", - "summaryDescription": "Generieren Sie eine KI-gestützte Zusammenfassung aller Notizen in diesem Notizbuch.", - "summaryError": "Fehler beim Generieren der Zusammenfassung", "namePlaceholder": "z.B. Q4 Marketing-Strategie", "myNotebook": "Mein Notizbuch", "saving": "Speichern...", + "selectIcon": "Symbol", + "selectColor": "Farbe", + "cancel": "Abbrechen", + "creating": "Erstellen...", + "edit": "Notizbuch bearbeiten", + "editDescription": "Ändern Sie den Namen, das Symbol und die Farbe Ihres Notizbuchs.", + "delete": "Notizbuch löschen", + "deleteWarning": "Möchten Sie dieses Notizbuch wirklich löschen? Notizen werden in Allgemeine Notizen verschoben.", + "deleteConfirm": "Löschen", + "summary": "Notizbuch-Zusammenfassung", + "summaryDescription": "Generieren Sie eine KI-gestützte Zusammenfassung aller Notizen in diesem Notizbuch.", + "generating": "Zusammenfassung wird generiert...", + "summaryError": "Fehler beim Generieren der Zusammenfassung", + "labels": "Labels", + "noLabels": "Keine Labels", "pdfTitle": "Zusammenfassung — {name}", "pdfNotesLabel": "Notizen:", "pdfGeneratedOn": "Erstellt am:", "confidence": "Konfidenz", "savingReminder": "Fehler beim Speichern der Erinnerung", - "removingReminder": "Fehler beim Entfernen der Erinnerung" + "removingReminder": "Fehler beim Entfernen der Erinnerung", + "generatingDescription": "Please wait..." }, "notebookSuggestion": { + "title": "Nach {name} verschieben?", "description": "Diese Notiz scheint zu diesem Notizbuch zu gehören", + "move": "Verschieben", "dismiss": "Schließen", "dismissIn": "Schließen (schließt in {timeLeft}s)", - "generalNotes": "Allgemeine Notizen", - "move": "Verschieben", "moveToNotebook": "In Notizbuch verschieben", - "title": "Nach {name} verschieben?" + "generalNotes": "Allgemeine Notizen" }, - "notebooks": { - "allNotebooks": "Alle Notizbücher", - "create": "Notizbuch erstellen", - "createFirst": "Erstellen Sie Ihr erstes Notizbuch", - "noNotebooks": "Keine Notizbücher" + "admin": { + "title": "Admin-Dashboard", + "userManagement": "Benutzerverwaltung", + "chat": "AI Chat", + "lab": "The Lab", + "agents": "Agents", + "workspace": "Workspace", + "settings": "Admin-Einstellungen", + "security": { + "title": "Sicherheitseinstellungen", + "description": "Zugriffskontrolle und Registrierungsrichtlinien verwalten.", + "allowPublicRegistration": "Öffentliche Registrierung zulassen", + "allowPublicRegistrationDescription": "Wenn deaktiviert, können neue Benutzer nur von einem Administrator über die Benutzerverwaltungsseite hinzugefügt werden.", + "updateSuccess": "Sicherheitseinstellungen aktualisiert", + "updateFailed": "Fehler beim Aktualisieren der Sicherheitseinstellungen" + }, + "ai": { + "title": "KI-Konfiguration", + "description": "KI-Anbieter für automatisches Tagging und semantische Suche konfigurieren. Verwenden Sie verschiedene Anbieter für optimale Leistung.", + "tagsGenerationProvider": "Tags-Generierungsanbieter", + "tagsGenerationDescription": "KI-Anbieter für automatische Tag-Vorschläge. Empfohlen: Ollama (kostenlos, lokal).", + "embeddingsProvider": "Embeddings-Anbieter", + "embeddingsDescription": "KI-Anbieter für semantische Such-Embeddings. Empfohlen: OpenAI (beste Qualität).", + "chatProvider": "Chat-Anbieter", + "chatDescription": "KI-Anbieter für den Chat-Assistenten. Fällt auf den Tags-Anbieter zurück, wenn nicht konfiguriert.", + "provider": "Anbieter", + "baseUrl": "Basis-URL", + "model": "Modell", + "apiKey": "API-Schlüssel", + "selectOllamaModel": "Wählen Sie ein auf Ihrem System installiertes Ollama-Modell", + "openAIKeyDescription": "Ihr OpenAI-API-Schlüssel von platform.openai.com", + "modelRecommendations": "gpt-4o-mini = Bester Wert • gpt-4o = Beste Qualität", + "commonModelsDescription": "Gängige Modelle für OpenAI-kompatible APIs", + "selectEmbeddingModel": "Wählen Sie ein auf Ihrem System installiertes Embedding-Modell", + "commonEmbeddingModels": "Gängige Embedding-Modelle für OpenAI-kompatible APIs", + "saving": "Speichern...", + "saveSettings": "KI-Einstellungen speichern", + "openTestPanel": "KI-Test-Panel öffnen", + "updateSuccess": "KI-Einstellungen erfolgreich aktualisiert", + "updateFailed": "Fehler beim Aktualisieren der KI-Einstellungen", + "providerTagsRequired": "AI_PROVIDER_TAGS ist erforderlich", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING ist erforderlich", + "providerOllamaOption": "🦙 Ollama (Local & Free)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 Custom OpenAI-Compatible", + "bestValue": "Bestes Preis-Leistungs-Verhältnis", + "bestQuality": "Beste Qualität", + "saved": "(Gespeichert)", + "fetchModelsFailed": "Modelle konnten nicht geladen werden", + "refreshModels": "Modelle aktualisieren", + "configured": "Konfiguriert", + "fetchingModels": "Modelle werden geladen...", + "clickToLoadModels": "Klicken Sie auf ↺ um Modelle zu laden", + "searchModel": "Modell suchen...", + "noModels": "Keine Modelle. Klicken Sie auf ↺", + "modelsAvailable": "{count} Modell(e) verfügbar", + "enterUrlToLoad": "URL eingeben und ↺ klicken", + "currentProvider": "(Aktuell: {provider})", + "pageTitle": "KI-Verwaltung", + "pageDescription": "KI-Funktionen überwachen und konfigurieren", + "configure": "Konfigurieren", + "features": "KI-Funktionen", + "providerStatus": "KI-Anbieter Status", + "recentRequests": "Letzte KI-Anfragen", + "comingSoon": "Demnächst verfügbar", + "activeFeatures": "Aktive Funktionen", + "successRate": "Erfolgsrate", + "avgResponseTime": "Durchschn. Antwortzeit", + "configuredProviders": "Konfigurierte Anbieter", + "settingUpdated": "Einstellung aktualisiert", + "updateFailedShort": "Aktualisierung fehlgeschlagen", + "titleSuggestions": "Titelvorschläge", + "titleSuggestionsDesc": "Schlägt Titel für Notizen nach 50+ Wörtern vor", + "aiAssistant": "KI-Assistent", + "aiAssistantDesc": "Aktiviert KI-Chat und Textverbesserung", + "memoryEchoFeature": "Mir ist aufgefallen...", + "memoryEchoFeatureDesc": "Tägliche Analyse von Verbindungen zwischen Notizen", + "languageDetection": "Spracherkennung", + "languageDetectionDesc": "Erkennt automatisch die Sprache jeder Notiz", + "autoLabeling": "Automatische Beschriftung", + "autoLabelingDesc": "Schlägt Labels vor und wendet sie automatisch an" + }, + "resend": { + "title": "Resend (Empfohlen)", + "description": "E-Mails über die Resend-API senden. Wird gegenüber SMTP bevorzugt, wenn konfiguriert.", + "apiKey": "Resend API-Schlüssel", + "apiKeyHint": "Holen Sie sich Ihren API-Schlüssel von resend.com. Wird für Agent-Benachrichtigungen und Passwortzurücksetzungen verwendet.", + "saveSettings": "Resend-Einstellungen speichern", + "updateSuccess": "Resend-Einstellungen aktualisiert", + "updateFailed": "Resend-Einstellungen konnten nicht aktualisiert werden", + "configured": "Resend ist konfiguriert und aktiv" + }, + "email": { + "title": "E-Mail-Konfiguration", + "description": "E-Mail-Versand für Agent-Benachrichtigungen und Passwortzurücksetzungen konfigurieren.", + "provider": "E-Mail-Anbieter", + "saveSettings": "E-Mail-Einstellungen speichern", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "smtp": { + "title": "SMTP-Konfiguration", + "description": "E-Mail-Server für Passwortzurücksetzungen konfigurieren.", + "host": "Host", + "port": "Port", + "username": "Benutzername", + "password": "Passwort", + "fromEmail": "Von E-Mail", + "forceSSL": "SSL/TLS erzwingen (normalerweise für Port 465)", + "ignoreCertErrors": "Zertifikatsfehler ignorieren (Nur Self-hosted/Entwicklung)", + "saveSettings": "SMTP-Einstellungen speichern", + "sending": "Senden...", + "testEmail": "Test-E-Mail", + "updateSuccess": "SMTP-Einstellungen aktualisiert", + "updateFailed": "Fehler beim Aktualisieren der SMTP-Einstellungen", + "testSuccess": "Test-E-Mail erfolgreich gesendet!", + "testFailed": "Fehler: {error}" + }, + "users": { + "createUser": "Benutzer erstellen", + "addUser": "Benutzer hinzufügen", + "createUserDescription": "Einen neuen Benutzer zum System hinzufügen.", + "name": "Name", + "email": "E-Mail", + "password": "Passwort", + "role": "Rolle", + "createSuccess": "Benutzer erfolgreich erstellt", + "createFailed": "Fehler beim Erstellen des Benutzers", + "deleteSuccess": "Benutzer gelöscht", + "deleteFailed": "Fehler beim Löschen", + "roleUpdateSuccess": "Benutzerrolle zu {role} aktualisiert", + "roleUpdateFailed": "Fehler beim Aktualisieren der Rolle", + "demote": "Zurückstufen", + "promote": "Befördern", + "confirmDelete": "Möchten Sie diesen Benutzer wirklich löschen?", + "table": { + "name": "Name", + "email": "E-Mail", + "role": "Rolle", + "createdAt": "Erstellt am", + "actions": "Aktionen" + }, + "roles": { + "user": "Benutzer", + "admin": "Administrator" + }, + "title": "Benutzer", + "description": "Benutzer und Berechtigungen verwalten" + }, + "aiTest": { + "title": "KI-Anbieter-Tests", + "description": "Testen Sie Ihre KI-Anbieter für Tag-Generierung und semantische Such-Embeddings", + "tagsTestTitle": "Tags-Generierungs-Test", + "tagsTestDescription": "Testen Sie den KI-Anbieter, der für automatische Tag-Vorschläge verantwortlich ist", + "embeddingsTestTitle": "Embeddings-Test", + "embeddingsTestDescription": "Testen Sie den KI-Anbieter, der für semantische Such-Embeddings verantwortlich ist", + "howItWorksTitle": "Wie Tests funktionieren", + "tagsGenerationTest": "🏷️ Tags-Generierungs-Test:", + "tagsStep1": "Sendet eine Beispielnote an den KI-Anbieter", + "tagsStep2": "Fordert 3-5 relevante Tags basierend auf dem Inhalt", + "tagsStep3": "Zeigt die generierten Tags mit Konfidenzwerten", + "tagsStep4": "Misst die Antwortzeit", + "embeddingsTestLabel": "🔍 Embeddings-Test:", + "embeddingsStep1": "Sendet einen Beispieltext an den Embedding-Anbieter", + "embeddingsStep2": "Generiert eine Vektordarstellung (Zahlenliste)", + "embeddingsStep3": "Zeigt Embedding-Dimensionen und Beispielwerte", + "embeddingsStep4": "Überprüft, ob der Vektor gültig und korrekt formatiert ist", + "tipContent": "Sie können verschiedene Anbieter für Tags und Embeddings verwenden! Nutzen Sie z.B. Ollama (kostenlos) für Tags und OpenAI (beste Qualität) für Embeddings, um Kosten und Leistung zu optimieren.", + "provider": "Anbieter:", + "model": "Modell:", + "testing": "Testen...", + "runTest": "Test ausführen", + "testPassed": "Test bestanden", + "testFailed": "Test fehlgeschlagen", + "testSuccessToast": "Test {type} erfolgreich!", + "testFailedToast": "Test {type} fehlgeschlagen", + "testingType": "Teste {type}...", + "technicalDetails": "Technische Details", + "responseTime": "Antwortzeit: {time}ms", + "generatedTags": "Generierte Tags:", + "embeddingDimensions": "Embedding-Dimensionen:", + "vectorDimensions": "Vektor-Dimensionen", + "first5Values": "Erste 5 Werte:", + "error": "Fehler:", + "testError": "Testfehler: {error}", + "tipTitle": "Tipp:", + "tipDescription": "Verwenden Sie das KI-Test-Panel, um Konfigurationsprobleme vor dem Testen zu diagnostizieren." + }, + "sidebar": { + "dashboard": "Dashboard", + "users": "Benutzer", + "aiManagement": "KI-Verwaltung", + "chat": "KI-Chat", + "lab": "Das Labor (Ideen)", + "agents": "Agenten", + "settings": "Einstellungen" + }, + "metrics": { + "vsLastPeriod": "vs vorheriger Zeitraum" + }, + "tools": { + "title": "Agenten-Werkzeuge", + "description": "Externe Werkzeuge für die Agenten-Nutzung konfigurieren: Websuche, Web-Scraping und API-Zugriff.", + "searchProvider": "Websuche-Anbieter", + "searxng": "SearXNG (Selbst-gehostet)", + "brave": "Brave Search API", + "both": "Beide (SearXNG primär, Brave Fallback)", + "searxngUrl": "SearXNG-URL", + "braveKey": "Brave Search API-Schlüssel", + "jinaKey": "Jina Reader API-Schlüssel", + "jinaKeyOptional": "Optional — funktioniert ohne, aber mit Ratenbegrenzung", + "jinaKeyDescription": "Wird für Web-Scraping verwendet. Funktioniert ohne Schlüssel, aber mit Ratenbegrenzung.", + "saveSettings": "Werkzeugeinstellungen speichern", + "updateSuccess": "Werkzeugeinstellungen erfolgreich aktualisiert", + "updateFailed": "Fehler beim Aktualisieren der Werkzeugeinstellungen", + "testing": "Test läuft...", + "testSearch": "Websuche testen" + }, + "settingsDescription": "Anwendungseinstellungen konfigurieren", + "dashboard": { + "title": "Dashboard", + "description": "Übersicht der Anwendungsmetriken", + "recentActivity": "Letzte Aktivität", + "recentActivityPlaceholder": "Letzte Aktivitäten werden hier angezeigt." + }, + "error": { + "title": "Ein Fehler ist aufgetreten", + "description": "Seite konnte nicht gerendert werden. Bitte versuchen Sie es erneut.", + "retry": "Erneut versuchen" + } }, - "notes": { - "add": "Hinzufügen", - "addCollaborators": "Mitarbeiter hinzufügen", - "addImage": "Bild hinzufügen", - "addItem": "Element hinzufügen", - "addLink": "Link hinzufügen", - "addListItem": "+ Listenelement", - "addNote": "Notiz hinzufügen", - "adding": "Wird hinzugefügt...", - "aiAssistant": "KI-Assistent", - "archive": "Archivieren", - "backgroundOptions": "Hintergrundoptionen", - "changeColor": "Farbe ändern", - "changeSize": "Größe ändern", - "clarifyFailed": "Klarstellung fehlgeschlagen", - "close": "Schließen", - "color": "Farbe", - "confirmDelete": "Möchten Sie diese Notiz wirklich löschen?", - "confirmLeaveShare": "Möchten Sie diese geteilte Notiz wirklich verlassen?", - "contentOrMediaRequired": "Bitte geben Sie Inhalte ein oder fügen Sie einen Link/Bild hinzu", - "copy": "Kopieren", - "copyFailed": "Fehler beim Kopieren der Notiz", - "copySuccess": "Notiz erfolgreich kopiert!", - "createFirstNote": "Erstellen Sie Ihre erste Notiz", - "date": "Datum", - "delete": "Löschen", - "dragToReorder": "Ziehen zum Neuanordnen", - "duplicate": "Duplizieren", - "edit": "Notiz bearbeiten", - "emptyState": "Keine Notizen vorhanden", - "fileTooLarge": "Datei zu groß: {fileName}. Maximale Größe ist {maxSize}.", - "improveFailed": "Verbesserung fehlgeschlagen", - "inNotebook": "In Notizbuch", - "invalidDateTime": "Ungültiges Datum oder Uhrzeit", - "invalidFileType": "Ungültiger Dateityp: {fileName}. Nur JPEG, PNG, GIF und WebP sind zulässig.", - "itemOrMediaRequired": "Bitte fügen Sie mindestens ein Element oder Medium hinzu", - "large": "Groß", - "leaveShare": "Verlassen", - "linkAddFailed": "Link konnte nicht hinzugefügt werden", - "linkAdded": "Link hinzugefügt", - "linkMetadataFailed": "Link-Metadaten konnten nicht abgerufen werden", - "listItem": "Listenelement", - "makeCopy": "Kopie erstellen", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown AUS", - "markdownOn": "Markdown EIN", - "markdownPlaceholder": "Notiz machen... (Markdown unterstützt)", - "medium": "Mittel", - "more": "Mehr", - "moreOptions": "Weitere Optionen", - "moveFailed": "Verschieben fehlgeschlagen", - "newChecklist": "Neue Checkliste", - "newNote": "Neue Notiz", - "noContent": "Kein Inhalt", - "noNotes": "Keine Notizen", - "noNotesFound": "Keine Notizen gefunden", - "noteCreateFailed": "Fehler beim Erstellen der Notiz", - "noteCreated": "Notiz erfolgreich erstellt", - "others": "Andere", - "pin": "Anheften", - "pinned": "Angeheftet", - "pinnedNotes": "Angeheftete Notizen", - "placeholder": "Notiz machen...", - "preview": "Vorschau", - "readOnly": "Schreibgeschützt", - "recent": "Aktuell", - "redo": "Wiederholen (Strg+Y)", - "redoShortcut": "Wiederholen (Strg+Y)", - "remindMe": "Mich erinnern", - "reminderDateTimeRequired": "Bitte Datum und Uhrzeit eingeben", - "reminderMustBeFuture": "Die Erinnerung muss in der Zukunft liegen", - "reminderPastError": "Die Erinnerung muss in der Zukunft liegen", - "reminderRemoved": "Erinnerung entfernt", - "reminderSet": "Erinnerung festgelegt für {datetime}", - "remove": "Entfernen", - "saving": "Wird gespeichert...", - "setReminder": "Erinnerung festlegen", - "setReminderButton": "Erinnerung festlegen", - "share": "Teilen", - "shareWithCollaborators": "Mit Mitarbeitern teilen", - "sharedBy": "Geteilt von", - "sharedReadOnly": "Diese Notiz ist mit Ihnen im schreibgeschützten Modus geteilt", - "shortenFailed": "Kürzen fehlgeschlagen", - "showCollaborators": "Mitarbeiter anzeigen", - "size": "Größe", - "small": "Klein", - "takeNote": "Notiz machen...", - "takeNoteMarkdown": "Notiz machen... (Markdown unterstützt)", - "time": "Uhrzeit", - "title": "Notizen", - "titlePlaceholder": "Titel", - "transformFailed": "Umwandlung fehlgeschlagen", - "unarchive": "Aus Archiv entfernen", - "undo": "Rückgängig (Strg+Z)", - "undoShortcut": "Rückgängig (Strg+Z)", - "unpin": "Loslösen", - "unpinned": "Nicht angepinnt", - "untitled": "Unbenannt", - "uploadFailed": "Upload fehlgeschlagen für {filename}", - "view": "Notiz anzeigen", - "emptyStateTabs": "Keine Notizen in dieser Ansicht. Nutzen Sie \"Neue Notiz\" in der Seitenleiste (KI-Titelvorschläge im Composer verfügbar).", - "viewCards": "Kartenansicht", - "viewCardsTooltip": "Kartenraster mit Drag-and-Drop-Umsortierung", - "viewTabs": "Listenansicht", - "viewTabsTooltip": "Tabs oben, Notiz unten — Tabs ziehen zum Umsortieren", - "viewModeGroup": "Notizen-Anzeigemodus", - "reorderTabs": "Tab umsortieren", - "modified": "Geändert", - "created": "Erstellt", - "loading": "Laden...", - "exportPDF": "PDF exportieren", - "savedStatus": "Gespeichert", - "dirtyStatus": "Geändert", - "completedLabel": "Erledigt", - "notes.emptyNotebook": "Leeres Notizbuch", - "notes.emptyNotebookDesc": "Keine Notizen vorhanden. Klicke auf + um eine zu erstellen.", - "notes.noNoteSelected": "Keine Notiz ausgewählt", - "notes.selectOrCreateNote": "Wähle eine Notiz aus der Liste oder erstelle eine neue.", - "commitVersion": "Version speichern", - "versionSaved": "Version gespeichert", - "deleteVersion": "Diese Version löschen", - "versionDeleted": "Version gelöscht", - "deleteVersionConfirm": "Diese Version endgültig löschen?", - "historyMode": "Verlaufsmodus", - "historyModeManual": "Manuell (Commit-Schaltfläche)", - "historyModeAuto": "Automatisch (intelligent)", - "historyModeManualDesc": "Snapshots manuell mit der Commit-Schaltfläche erstellen", - "historyModeAutoDesc": "Automatische Snapshots mit intelligenter Erkennung", - "history": "Verlauf", - "historyRestored": "Version wiederhergestellt", - "historyEnabled": "Verlauf aktiviert", - "historyDisabledDesc": "Der Verlauf ist für Ihr Konto deaktiviert.", - "enableHistory": "Verlauf aktivieren", - "historyEmpty": "Keine Versionen verfügbar", - "historySelectVersion": "Wählen Sie eine Version zur Vorschau aus", - "sortBy": "Sortieren nach", - "sortDateDesc": "Datum (neueste)", - "sortDateAsc": "Datum (älteste)", - "sortTitleAsc": "Titel A → Z", - "sortTitleDesc": "Titel Z → A" - }, - "pagination": { - "next": "→", - "pageInfo": "Seite {currentPage} / {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "Locker", - "expand": "Erweitern", - "formal": "Formell", - "improve": "Verbessern", - "shorten": "Kürzen", - "title": "Textverbesserung" - }, - "profile": { - "accountSettings": "Kontoeinstellungen", - "autoDetect": "Automatische Erkennung", - "changePassword": "Passwort ändern", - "changePasswordDescription": "Aktualisieren Sie Ihr Passwort. Sie benötigen Ihr aktuelles Passwort.", - "confirmPassword": "Passwort bestätigen", - "currentPassword": "Aktuelles Passwort", - "description": "Aktualisieren Sie Ihre persönlichen Informationen", - "displayName": "Anzeigename", - "displaySettings": "Anzeigeeinstellungen", - "displaySettingsDescription": "Passen Sie die Darstellung und Schriftgröße an.", - "email": "E-Mail", - "fontSize": "Schriftgröße", - "fontSizeDescription": "Passen Sie die Schriftgröße für bessere Lesbarkeit an. Dies gilt für alle Texte in der Oberfläche.", - "fontSizeExtraLarge": "Extra groß", - "fontSizeLarge": "Groß", - "fontSizeMedium": "Mittel", - "fontSizeSmall": "Klein", - "fontSizeUpdateFailed": "Fehler beim Aktualisieren der Schriftgröße", - "fontSizeUpdateSuccess": "Schriftgröße erfolgreich aktualisiert", - "languageDescription": "Diese Sprache wird für KI-gesteuerte Funktionen, Inhaltsanalyse und Oberflächentext verwendet.", - "languagePreferences": "Spracheinstellungen", - "languagePreferencesDescription": "Wählen Sie Ihre bevorzugte Sprache für KI-Funktionen und die Oberfläche.", - "languageUpdateFailed": "Fehler beim Aktualisieren der Sprache", - "languageUpdateSuccess": "Sprache erfolgreich aktualisiert", - "manageAISettings": "KI-Einstellungen verwalten", - "newPassword": "Neues Passwort", - "passwordChangeFailed": "Fehler beim Ändern des Passworts", - "passwordChangeSuccess": "Passwort erfolgreich geändert", - "passwordError": "Fehler beim Aktualisieren des Passworts", - "passwordUpdated": "Passwort aktualisiert", - "preferredLanguage": "Bevorzugte Sprache", - "profileError": "Fehler beim Aktualisieren des Profils", - "profileUpdated": "Profil aktualisiert", - "recentNotesUpdateFailed": "Failed to update recent notes setting", - "recentNotesUpdateSuccess": "Recent notes setting updated successfully", - "selectFontSize": "Schriftgröße auswählen", - "selectLanguage": "Sprache auswählen", - "showRecentNotes": "Show Recent Notes Section", - "showRecentNotesDescription": "Display recent notes (last 7 days) on the main page", - "title": "Profil", - "updateFailed": "Fehler beim Aktualisieren des Profils", - "updatePassword": "Passwort aktualisieren", - "updateSuccess": "Profil aktualisiert" - }, - "reminder": { - "cancel": "Abbrechen", - "reminderDate": "Erinnerungsdatum", - "reminderTime": "Erinnerungszeit", - "removeReminder": "Erinnerung entfernen", - "save": "Erinnerung festlegen", - "setReminder": "Erinnerung festlegen", - "title": "Erinnerung" - }, - "resetPassword": { - "confirmNewPassword": "Neues Passwort bestätigen", - "description": "Geben Sie unten Ihr neues Passwort ein.", - "invalidLinkDescription": "Dieser Link zum Zurücksetzen des Passworts ist ungültig oder abgelaufen.", - "invalidLinkTitle": "Ungültiger Link", - "loading": "Wird geladen...", - "newPassword": "Neues Passwort", - "passwordMismatch": "Passwörter stimmen nicht überein", - "requestNewLink": "Neuen Link anfordern", - "resetPassword": "Passwort zurücksetzen", - "resetting": "Zurücksetzen...", - "success": "Passwort erfolgreich zurückgesetzt. Sie können sich jetzt anmelden.", - "title": "Passwort zurücksetzen" - }, - "search": { - "exactMatch": "Exakte Übereinstimmung", - "noResults": "Keine Ergebnisse gefunden", - "placeholder": "Suchen", - "related": "Verwandt", - "resultsFound": "{count} Notizen gefunden", - "searchPlaceholder": "Durchsuchen Sie Ihre Notizen...", - "searching": "Wird gesucht...", - "semanticInProgress": "KI-Suche läuft...", - "semanticTooltip": "Semantische KI-Suche", - "disabledAdmin": "Suche im Admin-Modus deaktiviert" - }, - "semanticSearch": { - "exactMatch": "Exakte Übereinstimmung", - "related": "Verwandt", - "searching": "Wird gesucht..." - }, - "settings": { - "about": "Über", - "account": "Konto", - "appearance": "Darstellung", - "cleanTags": "Clean Orphan Tags", - "cleanTagsDescription": "Remove tags that are no longer used by any notes", - "description": "Verwalten Sie Ihre Einstellungen und Präferenzen", - "language": "Sprache", - "languageAuto": "Automatisch", - "maintenance": "Maintenance", - "maintenanceDescription": "Tools to maintain your database health", - "notifications": "Benachrichtigungen", - "privacy": "Datenschutz", - "profile": "Profil", - "searchNoResults": "Keine Ergebnisse gefunden", - "security": "Sicherheit", - "selectLanguage": "Sprache auswählen", - "semanticIndexing": "Semantic Indexing", - "semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search", - "settingsError": "Fehler beim Speichern der Einstellungen", - "settingsSaved": "Einstellungen gespeichert", - "theme": "Design", - "themeDark": "Dunkel", - "themeLight": "Hell", - "themeSystem": "System", - "title": "Einstellungen", + "about": { + "title": "Über", + "description": "Informationen über die Anwendung", + "appName": "Memento", + "appDescription": "Eine leistungsstarke Notiz-Anwendung mit KI-gestützten Funktionen", "version": "Version", - "cleanupDone": "{created} Label synchronisiert, {deleted} verwaiste gelöscht", - "cleanupNothing": "Keine Aktion nötig — Labels sind bereits mit Ihren Notizen synchronisiert", - "cleanupWithErrors": "einige Vorgänge sind fehlgeschlagen", - "cleanupError": "Labels konnten nicht bereinigt werden", - "indexingComplete": "Indexierung abgeschlossen: {count} Notiz(en) verarbeitet", - "indexingError": "Fehler bei der Indexierung", - "emailNotifications": "E-Mail-Benachrichtigungen", - "emailNotificationsDesc": "Wichtige Benachrichtigungen per E-Mail erhalten", - "desktopNotifications": "Desktop-Benachrichtigungen", - "desktopNotificationsDesc": "Benachrichtigungen im Browser erhalten", - "notificationsDesc": "Verwalten Sie Ihre Benachrichtigungseinstellungen" - }, - "sidebar": { - "archive": "Archive", - "editLabels": "Edit labels", - "labels": "Labels", - "notes": "Notes", - "reminders": "Reminders", - "trash": "Trash", - "newNoteTabs": "Neue Notiz", - "newNoteTabsHint": "Notiz in diesem Notizbuch erstellen", - "noLabelsInNotebook": "Keine Labels in diesem Notizbuch" + "buildDate": "Build-Datum", + "platform": "Plattform", + "platformWeb": "Web", + "features": { + "title": "Funktionen", + "description": "KI-gestützte Fähigkeiten", + "titleSuggestions": "KI-gestützte Titelvorschläge", + "semanticSearch": "Semantische Suche mit Embeddings", + "paragraphReformulation": "Absatz-Reformulierung", + "memoryEcho": "Memory Echo tägliche Einblicke", + "notebookOrganization": "Notizbuch-Organisation", + "dragDrop": "Drag & Drop Notizverwaltung", + "labelSystem": "Label-System", + "multipleProviders": "Mehrere KI-Anbieter (OpenAI, Ollama)" + }, + "technology": { + "title": "Technologie-Stack", + "description": "Mit modernen Technologien erstellt", + "frontend": "Frontend", + "backend": "Backend", + "database": "Datenbank", + "authentication": "Authentifizierung", + "ai": "KI", + "ui": "UI", + "testing": "Tests" + }, + "support": { + "title": "Support", + "description": "Hilfe und Feedback erhalten", + "documentation": "Dokumentation", + "reportIssues": "Probleme melden", + "feedback": "Feedback" + } }, "support": { - "aiApiCosts": "KI-API-Kosten:", - "buyMeACoffee": "Lad mir einen Kaffee ein", - "contributeCode": "Code beitragen", - "description": "Memento ist zu 100% kostenlos und Open Source. Ihre Unterstützung hilft, es so zu halten.", - "directImpact": "Direkte Auswirkung", - "domainSSL": "Domain & SSL:", - "donateOnKofi": "Auf Ko-fi spenden", - "donationDescription": "Machen Sie eine einmalige Spende oder werden Sie monatlicher Unterstützer.", - "githubDescription": "Wiederkehrende Unterstützung • Öffentliche Anerkennung • Entwickler-fokussiert", - "hostingServers": "Hosting & Server:", - "howSupportHelps": "Wie Ihre Unterstützung hilft", - "kofiDescription": "Keine Plattformgebühren • Sofortige Auszahlungen • Sicher", - "otherWaysTitle": "Andere Möglichkeiten zu unterstützen", - "reportBug": "Einen Bug melden", - "shareTwitter": "Auf Twitter teilen", - "sponsorDescription": "Werden Sie monatlicher Sponsor und erhalten Sie Anerkennung.", - "sponsorOnGithub": "Auf GitHub sponsoren", - "sponsorPerks": "Sponsor-Vorteile", - "starGithub": "Auf GitHub markieren", "title": "Memento-Entwicklung unterstützen", - "totalExpenses": "Gesamtausgaben:", + "description": "Memento ist zu 100% kostenlos und Open Source. Ihre Unterstützung hilft, es so zu halten.", + "buyMeACoffee": "Lad mir einen Kaffee ein", + "donationDescription": "Machen Sie eine einmalige Spende oder werden Sie monatlicher Unterstützer.", + "donateOnKofi": "Auf Ko-fi spenden", + "kofiDescription": "Keine Plattformgebühren • Sofortige Auszahlungen • Sicher", + "sponsorOnGithub": "Auf GitHub sponsoren", + "sponsorDescription": "Werden Sie monatlicher Sponsor und erhalten Sie Anerkennung.", + "githubDescription": "Wiederkehrende Unterstützung • Öffentliche Anerkennung • Entwickler-fokussiert", + "howSupportHelps": "Wie Ihre Unterstützung hilft", + "directImpact": "Direkte Auswirkung", + "sponsorPerks": "Sponsor-Vorteile", "transparency": "Transparenz", - "transparencyDescription": "Ich glaube an vollständige Transparenz. So werden Spenden verwendet:" + "transparencyDescription": "Ich glaube an vollständige Transparenz. So werden Spenden verwendet:", + "hostingServers": "Hosting & Server:", + "domainSSL": "Domain & SSL:", + "aiApiCosts": "KI-API-Kosten:", + "totalExpenses": "Gesamtausgaben:", + "otherWaysTitle": "Andere Möglichkeiten zu unterstützen", + "starGithub": "Auf GitHub markieren", + "reportBug": "Einen Bug melden", + "contributeCode": "Code beitragen", + "shareTwitter": "Auf Twitter teilen" + }, + "demoMode": { + "title": "Demo-Modus", + "activated": "Demo-Modus aktiviert! Memory Echo funktioniert jetzt sofort.", + "deactivated": "Demo-Modus deaktiviert. Normale Parameter wiederhergestellt.", + "toggleFailed": "Fehler beim Umschalten des Demo-Modus", + "description": "Beschleunigt Memory Echo zum Testen. Verbindungen erscheinen sofort.", + "parametersActive": "Demo-Parameter aktiv:", + "similarityThreshold": "50% Ähnlichkeitsschwelle (normalerweise 75%)", + "delayBetweenNotes": "0 Tage Verzögerung zwischen Notizen (normalerweise 7 Tage)", + "unlimitedInsights": "Unbegrenzte Einblicke (keine Häufigkeitsbeschränkungen)", + "createNotesTip": "Erstellen Sie 2+ ähnliche Notizen und sehen Sie Memory Echo in Aktion!" + }, + "resetPassword": { + "title": "Passwort zurücksetzen", + "description": "Geben Sie unten Ihr neues Passwort ein.", + "invalidLinkTitle": "Ungültiger Link", + "invalidLinkDescription": "Dieser Link zum Zurücksetzen des Passworts ist ungültig oder abgelaufen.", + "requestNewLink": "Neuen Link anfordern", + "newPassword": "Neues Passwort", + "confirmNewPassword": "Neues Passwort bestätigen", + "resetting": "Zurücksetzen...", + "resetPassword": "Passwort zurücksetzen", + "passwordMismatch": "Passwörter stimmen nicht überein", + "success": "Passwort erfolgreich zurückgesetzt. Sie können sich jetzt anmelden.", + "loading": "Wird geladen..." + }, + "dataManagement": { + "title": "Datenverwaltung", + "toolsDescription": "Werkzeuge zur Pflege Ihrer Datenbankgesundheit", + "exporting": "Wird exportiert...", + "importing": "Wird importiert...", + "deleting": "Wird gelöscht...", + "dangerZone": "Gefahrenbereich", + "dangerZoneDescription": "Diese Aktionen sind irreversibel. Bitte seien Sie vorsichtig.", + "indexingComplete": "Indizierung abgeschlossen", + "indexingError": "Fehler bei der Indizierung", + "cleanupComplete": "Bereinigung abgeschlossen", + "cleanupError": "Fehler bei der Bereinigung", + "export": { + "title": "Alle Notizen exportieren", + "description": "Laden Sie alle Ihre Notizen als JSON-Datei herunter. Dies umfasst alle Inhalte, Labels und Metadaten.", + "button": "Notizen exportieren", + "success": "Notizen erfolgreich exportiert", + "failed": "Fehler beim Exportieren der Notizen" + }, + "import": { + "title": "Notizen importieren", + "description": "Laden Sie eine JSON-Datei hoch, um Notizen zu importieren. Diese werden zu Ihren vorhandenen Notizen hinzugefügt, nicht ersetzt.", + "button": "Notizen importieren", + "success": "{count} Notizen importiert", + "failed": "Fehler beim Importieren der Notizen" + }, + "delete": { + "title": "Alle Notizen löschen", + "description": "Dauerhaft alle Ihre Notizen löschen. Diese Aktion kann nicht rückgängig gemacht werden.", + "button": "Alle Notizen löschen", + "confirm": "Sind Sie sicher? Dies löscht dauerhaft alle Ihre Notizen.", + "success": "Alle Notizen gelöscht", + "failed": "Fehler beim Löschen der Notizen" + }, + "indexing": { + "title": "Suchindex neu erstellen", + "description": "Embeddings für alle Notizen neu generieren, um die semantische Suche zu verbessern.", + "button": "Index neu erstellen", + "success": "Indizierung abgeschlossen: {count} Notizen verarbeitet", + "failed": "Fehler während der Indizierung" + }, + "cleanup": { + "title": "Verwaiste Daten bereinigen", + "description": "Labels und Verbindungen entfernen, die auf gelöschte Notizen verweisen.", + "button": "Bereinigen", + "failed": "Fehler während der Bereinigung" + } + }, + "appearance": { + "title": "Erscheinungsbild", + "description": "Anpassen, wie die App aussieht", + "notesViewDescription": "Wählen Sie, wie Notizen auf der Startseite und in Notizbüchern angezeigt werden.", + "notesViewLabel": "Notizen-Ansicht", + "notesViewTabs": "Tabs (OneNote-Stil)", + "notesViewMasonry": "Karten (Raster)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "Allgemeine Einstellungen", + "description": "Allgemeine Anwendungseinstellungen" + }, + "toast": { + "saved": "Einstellung gespeichert", + "saveFailed": "Fehler beim Speichern der Einstellung", + "operationSuccess": "Operation erfolgreich", + "operationFailed": "Operation fehlgeschlagen", + "openingConnection": "Verbindung wird geöffnet...", + "openConnectionFailed": "Fehler beim Öffnen der Verbindung", + "thanksFeedback": "Danke für Ihr Feedback!", + "thanksFeedbackImproving": "Danke! Wir werden dies zur Verbesserung nutzen.", + "feedbackFailed": "Fehler beim Senden des Feedbacks", + "notesFusionSuccess": "Notizen erfolgreich zusammengeführt!" }, "testPages": { "titleSuggestions": { - "analyzing": "Analysieren...", - "contentLabel": "Inhalt (mehr als 50 Wörter erforderlich):", - "error": "Fehler:", - "idle": "Inaktiv", - "noSuggestions": "Noch keine Vorschläge. Schreiben Sie 50+ Wörter und warten Sie 2 Sekunden.", - "placeholder": "Schreiben Sie hier mindestens 50 Wörter...", - "status": "Status:", - "suggestions": "Vorschläge ({count}):", "title": "Titelvorschläge testen", - "wordCount": "Wortanzahl:" + "contentLabel": "Inhalt (mehr als 50 Wörter erforderlich):", + "placeholder": "Schreiben Sie hier mindestens 50 Wörter...", + "wordCount": "Wortanzahl:", + "status": "Status:", + "analyzing": "Analysieren...", + "idle": "Inaktiv", + "error": "Fehler:", + "suggestions": "Vorschläge ({count}):", + "noSuggestions": "Noch keine Vorschläge. Schreiben Sie 50+ Wörter und warten Sie 2 Sekunden." } }, - "time": { - "daysAgo": "vor {count} Tag(en)", - "hoursAgo": "vor {count} Stunde(n)", - "justNow": "Gerade eben", - "minutesAgo": "vor {count} Minute(n)", - "today": "Heute", - "tomorrow": "Morgen", - "yesterday": "Gestern" - }, - "titleSuggestions": { - "available": "Titelvorschläge", - "dismiss": "Schließen", - "generating": "Wird generiert...", - "selectTitle": "Titel auswählen", - "title": "KI-Vorschläge" - }, - "toast": { - "feedbackFailed": "Fehler beim Senden des Feedbacks", - "notesFusionSuccess": "Notizen erfolgreich zusammengeführt!", - "openConnectionFailed": "Fehler beim Öffnen der Verbindung", - "openingConnection": "Verbindung wird geöffnet...", - "operationFailed": "Operation fehlgeschlagen", - "operationSuccess": "Operation erfolgreich", - "saveFailed": "Fehler beim Speichern der Einstellung", - "saved": "Einstellung gespeichert", - "thanksFeedback": "Danke für Ihr Feedback!", - "thanksFeedbackImproving": "Danke! Wir werden dies zur Verbesserung nutzen." - }, "trash": { "title": "Papierkorb", "empty": "Der Papierkorb ist leer", @@ -1256,11 +1212,83 @@ "permanentDelete": "Dauerhaft löschen", "permanentDeleteConfirm": "Diese Notiz wird dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden." }, + "footer": { + "privacy": "Datenschutz", + "terms": "Nutzungsbedingungen", + "openSource": "Open Source Klon" + }, + "connection": { + "similarityInfo": "Diese Notizen sind durch {similarity}% Ähnlichkeit verbunden", + "clickToView": "Klicken Sie, um die Notiz anzuzeigen", + "isHelpful": "Ist diese Verbindung hilfreich?", + "helpful": "Hilfreich", + "notHelpful": "Nicht hilfreich", + "memoryEchoDiscovery": "Memory Echo Entdeckung" + }, + "diagnostics": { + "title": "Diagnose", + "description": "Check your AI provider connection status", + "configuredProvider": "Konfigurierter Anbieter", + "apiStatus": "API-Status", + "operational": "Operational", + "errorStatus": "Error", + "checking": "Checking...", + "testDetails": "Test-Details:", + "troubleshootingTitle": "Fehlerbehebungstipps:", + "tip1": "Stellen Sie sicher, dass Ollama läuft (ollama serve)", + "tip2": "Prüfen Sie, dass das Modell installiert ist (ollama pull llama3)", + "tip3": "Überprüfen Sie Ihren API-Schlüssel für OpenAI", + "tip4": "Prüfen Sie die Netzwerkverbindung" + }, + "batch": { + "organizeWithAI": "Mit KI organisieren", + "organize": "Organisieren" + }, + "common": { + "unknown": "Unbekannt", + "notAvailable": "Nicht verfügbar", + "loading": "Wird geladen...", + "error": "Fehler", + "success": "Erfolg", + "confirm": "Bestätigen", + "cancel": "Abbrechen", + "close": "Schließen", + "save": "Speichern", + "delete": "Löschen", + "edit": "Bearbeiten", + "add": "Hinzufügen", + "remove": "Entfernen", + "search": "Suchen", + "noResults": "Keine Ergebnisse", + "required": "Erforderlich", + "optional": "Optional" + }, + "time": { + "justNow": "Gerade eben", + "minutesAgo": "vor {count} Minute(n)", + "hoursAgo": "vor {count} Stunde(n)", + "daysAgo": "vor {count} Tag(en)", + "yesterday": "Gestern", + "today": "Heute", + "tomorrow": "Morgen" + }, + "favorites": { + "title": "Favoriten", + "toggleSection": "Bereich umschalten", + "noFavorites": "Keine Favoriten", + "pinToFavorite": "Als Favorit anheften" + }, + "notebooks": { + "create": "Notizbuch erstellen", + "allNotebooks": "Alle Notizbücher", + "noNotebooks": "Keine Notizbücher", + "createFirst": "Erstellen Sie Ihr erstes Notizbuch" + }, "ui": { "close": "Schließen", - "collapse": "Zusammenklappen", + "open": "Öffnen", "expand": "Erweitern", - "open": "Öffnen" + "collapse": "Zusammenklappen" }, "mcpSettings": { "title": "MCP-Einstellungen", @@ -1327,6 +1355,10 @@ "subtitle": "Automatisieren Sie Ihre Überwachungs- und Recherheaufgaben", "newAgent": "Neuer Agent", "myAgents": "Meine Agenten", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "Keine Agenten", "noAgentsDescription": "Erstellen Sie Ihren ersten Agenten oder installieren Sie unten eine Vorlage, um Ihre Überwachungsaufgaben zu automatisieren.", "types": { @@ -1369,7 +1401,9 @@ "researchTopic": "Recherchethema", "researchTopicPlaceholder": "z.B. Neueste Fortschritte in der Quantencomputer", "notifyEmail": "E-Mail-Benachrichtigung", - "notifyEmailHint": "Erhalten Sie eine E-Mail mit den Ergebnissen des Agenten nach jedem Durchlauf" + "notifyEmailHint": "Erhalten Sie eine E-Mail mit den Ergebnissen des Agenten nach jedem Durchlauf", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "Manuell", @@ -1378,6 +1412,22 @@ "weekly": "Wöchentlich", "monthly": "Monatlich" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "Erfolgreich", "failure": "Fehlgeschlagen", @@ -1406,7 +1456,9 @@ "toggleError": "Fehler beim Umschalten des Agenten", "installSuccess": "\"{name}\" installiert", "installError": "Fehler bei der Installation", - "saveError": "Fehler beim Speichern" + "saveError": "Fehler beim Speichern", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "Vorlagen", @@ -1519,7 +1571,8 @@ "welcome": "Ich bin hier, um Ihnen zu helfen, Ihre Notizen zusammenzufassen, neue Ideen zu generieren oder Ihre Notizbücher zu besprechen.", "searching": "Wird gesucht...", "noNotesFoundForContext": "Keine relevanten Notizen für diese Frage gefunden. Antworte mit deinem Allgemeinwissen.", - "webSearch": "Websuche" + "webSearch": "Websuche", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "Das Labor", @@ -1536,30 +1589,8 @@ "createFailed": "Erstellung fehlgeschlagen", "deleteSpace": "Raum löschen", "deleted": "Raum gelöscht", - "deleteError": "Fehler beim Löschen" - }, - "notification": { - "shared": "hat \"{title}\" geteilt", - "untitled": "Unbenannt", - "notifications": "Benachrichtigungen", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "Freigabe abgelehnt", - "noNotifications": "No new notifications", - "removed": "Note aus der Liste entfernt" - }, - "reminders": { - "title": "Erinnerungen", - "empty": "Keine Erinnerungen", - "emptyDescription": "Fügen Sie einer Note eine Erinnerung hinzu, um sie hier zu finden.", - "upcoming": "Anstehend", - "overdue": "Überfällig", - "done": "Erledigt", - "markDone": "Als erledigt markieren", - "markUndone": "Als nicht erledigt markieren", - "todayAt": "Heute um {time}", - "tomorrowAt": "Morgen um {time}" + "deleteError": "Fehler beim Löschen", + "rename": "Rename" }, "lab": { "initializing": "Arbeitsbereich wird initialisiert", diff --git a/memento-note/locales/es.json b/memento-note/locales/es.json index e5f07af..d7411d3 100644 --- a/memento-note/locales/es.json +++ b/memento-note/locales/es.json @@ -1,277 +1,329 @@ { - "about": { - "appDescription": "Una poderosa aplicación de notas con funciones impulsadas por IA", - "appName": "Memento", - "buildDate": "Fecha de compilación", - "description": "Información sobre la aplicación", - "features": { - "description": "Capacidades impulsadas por IA", - "dragDrop": "Gestión de notas con arrastrar y soltar", - "labelSystem": "Sistema de etiquetas", - "memoryEcho": "Insights diarios de Memory Echo", - "multipleProviders": "Múltiples proveedores de IA (OpenAI, Ollama)", - "notebookOrganization": "Organización por cuadernos", - "paragraphReformulation": "Reformulación de párrafos", - "semanticSearch": "Búsqueda semántica con embeddings", - "title": "Funciones", - "titleSuggestions": "Sugerencias de título con IA" - }, - "platform": "Plataforma", - "platformWeb": "Web", - "support": { - "description": "Obtén ayuda y comentarios", - "documentation": "Documentación", - "feedback": "Comentarios", - "reportIssues": "Reportar problemas", - "title": "Soporte" - }, - "technology": { - "ai": "IA", - "authentication": "Autenticación", - "backend": "Backend", - "database": "Base de datos", - "description": "Construido con tecnologías modernas", - "frontend": "Frontend", - "testing": "Pruebas", - "title": "Stack tecnológico", - "ui": "UI" - }, - "title": "Acerca de", - "version": "Versión" + "auth": { + "signIn": "Iniciar sesión", + "signUp": "Registrarse", + "email": "Correo electrónico", + "password": "Contraseña", + "name": "Nombre", + "emailPlaceholder": "Ingrese su correo electrónico", + "passwordPlaceholder": "Ingrese su contraseña", + "namePlaceholder": "Ingrese su nombre", + "passwordMinChars": "Ingrese contraseña (mínimo 6 caracteres)", + "resetPassword": "Restablecer contraseña", + "resetPasswordInstructions": "Ingrese su correo para restablecer su contraseña", + "forgotPassword": "¿Olvidaste tu contraseña?", + "noAccount": "¿No tienes una cuenta?", + "hasAccount": "¿Ya tienes una cuenta?", + "signInToAccount": "Inicia sesión en tu cuenta", + "createAccount": "Crea tu cuenta", + "rememberMe": "Recordarme", + "orContinueWith": "O continuar con", + "checkYourEmail": "Revisa tu correo", + "resetEmailSent": "Hemos enviado un enlace de restablecimiento de contraseña a tu correo si existe en nuestro sistema.", + "returnToLogin": "Volver al inicio de sesión", + "forgotPasswordTitle": "Contraseña olvidada", + "forgotPasswordDescription": "Ingresa tu correo electrónico y te enviaremos un enlace para restablecer tu contraseña.", + "sending": "Enviando...", + "sendResetLink": "Enviar enlace de restablecimiento", + "backToLogin": "Volver al inicio de sesión", + "signOut": "Sign out", + "confirmPassword": "Confirmar contraseña", + "confirmPasswordPlaceholder": "Confirme su contraseña" }, - "admin": { - "ai": { - "apiKey": "Clave API", - "baseUrl": "URL base", - "commonEmbeddingModels": "Modelos de embedding comunes para APIs compatibles con OpenAI", - "commonModelsDescription": "Modelos comunes para APIs compatibles con OpenAI", - "description": "Configurar proveedores de IA para etiquetado automático y búsqueda semántica. Use diferentes proveedores para un rendimiento óptimo.", - "embeddingsDescription": "Proveedor de IA para embeddings de búsqueda semántica. Recomendado: OpenAI (mejor calidad).", - "embeddingsProvider": "Proveedor de embeddings", - "model": "Modelo", - "modelRecommendations": "gpt-4o-mini = Mejor valor • gpt-4o = Mejor calidad", - "openAIKeyDescription": "Tu clave API de OpenAI desde platform.openai.com", - "openTestPanel": "Abrir panel de pruebas de IA", - "provider": "Proveedor", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING es requerido", - "providerTagsRequired": "AI_PROVIDER_TAGS es requerido", - "saveSettings": "Guardar configuración de IA", - "saving": "Guardando...", - "selectEmbeddingModel": "Seleccionar un modelo de embedding instalado en tu sistema", - "selectOllamaModel": "Seleccionar un modelo Ollama instalado en tu sistema", - "tagsGenerationDescription": "Proveedor de IA para sugerencias automáticas de etiquetas. Recomendado: Ollama (gratis, local).", - "tagsGenerationProvider": "Proveedor de generación de etiquetas", - "title": "Configuración de IA", - "updateFailed": "Error al actualizar la configuración de IA", - "updateSuccess": "Configuración de IA actualizada correctamente", - "bestValue": "Mejor relación calidad/precio", - "bestQuality": "Mejor calidad", - "providerOllamaOption": "🦙 Ollama (Local & Free)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Custom OpenAI-Compatible", - "saved": "(Guardado)", - "chatProvider": "Proveedor de chat", - "chatDescription": "Proveedor de IA para el asistente de chat. Usa el proveedor de etiquetas si no está configurado.", - "fetchModelsFailed": "Error al obtener modelos", - "refreshModels": "Actualizar modelos", - "configured": "Configurado", - "fetchingModels": "Obteniendo modelos...", - "clickToLoadModels": "Haga clic en ↺ para cargar modelos", - "searchModel": "Buscar modelo...", - "noModels": "Sin modelos. Haga clic en ↺", - "modelsAvailable": "{count} modelo(s) disponible(s)", - "enterUrlToLoad": "Ingrese la URL y haga clic en ↺", - "currentProvider": "(Actual: {provider})", - "pageTitle": "Gestión de IA", - "pageDescription": "Monitorear y configurar funciones de IA", - "configure": "Configurar", - "features": "Funciones de IA", - "providerStatus": "Estado de proveedores de IA", - "recentRequests": "Solicitudes de IA recientes", - "comingSoon": "Próximamente", - "activeFeatures": "Funciones activas", - "successRate": "Tasa de éxito", - "avgResponseTime": "Tiempo de respuesta promedio", - "configuredProviders": "Proveedores configurados", - "settingUpdated": "Ajuste actualizado", - "updateFailedShort": "Error al actualizar", - "titleSuggestions": "Sugerencias de título", - "titleSuggestionsDesc": "Sugiere títulos para notas después de 50+ palabras", - "aiAssistant": "Asistente de IA", - "aiAssistantDesc": "Habilitar chat IA y herramientas de mejora", - "memoryEchoFeature": "Noté algo...", - "memoryEchoFeatureDesc": "Análisis diario de conexiones entre tus notas", - "languageDetection": "Detección de idioma", - "languageDetectionDesc": "Detecta automáticamente el idioma de cada nota", - "autoLabeling": "Etiquetado automático", - "autoLabelingDesc": "Sugiere y aplica etiquetas automáticamente" - }, - "aiTest": { - "description": "Prueba tus proveedores de IA para generación de etiquetas y embeddings de búsqueda semántica", - "embeddingDimensions": "Dimensiones del embedding:", - "embeddingsTestDescription": "Probar el proveedor de IA responsable de los embeddings de búsqueda semántica", - "embeddingsTestTitle": "Prueba de embeddings", - "error": "Error:", - "first5Values": "Primeros 5 valores:", - "generatedTags": "Etiquetas generadas:", - "howItWorksTitle": "Cómo funcionan las pruebas", - "model": "Modelo:", - "provider": "Proveedor:", - "responseTime": "Tiempo de respuesta: {time}ms", - "runTest": "Ejecutar prueba", - "tagsTestDescription": "Probar el proveedor de IA responsable de las sugerencias automáticas de etiquetas", - "tagsTestTitle": "Prueba de generación de etiquetas", - "testError": "Error de prueba: {error}", - "testFailed": "Prueba fallida", - "testPassed": "Prueba superada", - "testing": "Probando...", - "tipDescription": "Usa el panel de pruebas de IA para diagnosticar problemas de configuración antes de probar.", - "tipTitle": "Consejo:", - "title": "Pruebas de proveedor de IA", - "vectorDimensions": "dimensiones del vector", - "tagsGenerationTest": "🏷️ Prueba de generación de etiquetas:", - "tagsStep1": "Envía una nota de ejemplo al proveedor de IA", - "tagsStep2": "Solicita 3-5 etiquetas relevantes basadas en el contenido", - "tagsStep3": "Muestra las etiquetas generadas con puntuaciones de confianza", - "tagsStep4": "Mide el tiempo de respuesta", - "embeddingsTestLabel": "🔍 Prueba de embeddings:", - "embeddingsStep1": "Envía un texto de ejemplo al proveedor de embeddings", - "embeddingsStep2": "Genera una representación vectorial (lista de números)", - "embeddingsStep3": "Muestra las dimensiones del embedding y valores de ejemplo", - "embeddingsStep4": "Verifica que el vector sea válido y esté correctamente formateado", - "tipContent": "¡Puedes usar diferentes proveedores para etiquetas y embeddings! Por ejemplo, usa Ollama (gratis) para etiquetas y OpenAI (mejor calidad) para embeddings para optimizar costos y rendimiento.", - "testSuccessToast": "¡Prueba {type} exitosa!", - "testFailedToast": "Prueba {type} fallida", - "testingType": "Probando {type}...", - "technicalDetails": "Detalles técnicos" - }, - "aiTesting": "Pruebas de IA", - "security": { - "allowPublicRegistration": "Permitir registro público", - "allowPublicRegistrationDescription": "Si está desactivado, los nuevos usuarios solo pueden ser agregados por un administrador a través de la página de gestión de usuarios.", - "description": "Gestionar el control de acceso y las políticas de registro.", - "title": "Configuración de seguridad", - "updateFailed": "Error al actualizar la configuración de seguridad", - "updateSuccess": "Configuración de seguridad actualizada" - }, - "settings": "Configuración de administrador", - "resend": { - "title": "Resend (Recomendado)", - "description": "Envíe correos electrónicos a través de la API de Resend. Tiene prioridad sobre SMTP si está configurado.", - "apiKey": "Clave API de Resend", - "apiKeyHint": "Obtenga su clave API en resend.com. Se usa para notificaciones de agentes y restablecimiento de contraseñas.", - "saveSettings": "Guardar configuración de Resend", - "updateSuccess": "Configuración de Resend actualizada", - "updateFailed": "Error al actualizar la configuración de Resend", - "configured": "Resend está configurado y activo" - }, - "email": { - "title": "Configuración de correo electrónico", - "description": "Configure el envío de correos para notificaciones de agentes y restablecimiento de contraseñas.", - "provider": "Proveedor de correo", - "saveSettings": "Guardar configuración de correo" - }, - "smtp": { - "description": "Configurar el servidor de correo para restablecimiento de contraseñas.", - "forceSSL": "Forzar SSL/TLS (generalmente para puerto 465)", - "fromEmail": "Correo remitente", - "host": "Host", - "ignoreCertErrors": "Ignorar errores de certificado (Solo autoalojado/Desarrollo)", - "password": "Contraseña", - "port": "Puerto", - "saveSettings": "Guardar configuración SMTP", - "sending": "Enviando...", - "testEmail": "Correo de prueba", - "testFailed": "Error: {error}", - "testSuccess": "¡Correo de prueba enviado correctamente!", - "title": "Configuración SMTP", - "updateFailed": "Error al actualizar la configuración SMTP", - "updateSuccess": "Configuración SMTP actualizada", - "username": "Usuario" - }, - "title": "Panel de administración", - "userManagement": "Gestión de usuarios", - "users": { - "addUser": "Agregar usuario", - "confirmDelete": "¿Estás seguro de que quieres eliminar este usuario?", - "createFailed": "Error al crear usuario", - "createSuccess": "Usuario creado correctamente", - "createUser": "Crear usuario", - "createUserDescription": "Agregar un nuevo usuario al sistema.", - "deleteFailed": "Error al eliminar", - "deleteSuccess": "Usuario eliminado", - "demote": "Degradar", - "email": "Correo electrónico", - "name": "Nombre", - "password": "Contraseña", - "promote": "Promover", - "role": "Rol", - "roleUpdateFailed": "Error al actualizar rol", - "roleUpdateSuccess": "Rol de usuario actualizado a {role}", - "roles": { - "admin": "Administrador", - "user": "Usuario" - }, - "table": { - "actions": "Acciones", - "createdAt": "Creado", - "email": "Correo electrónico", - "name": "Nombre", - "role": "Rol" - }, - "title": "Usuarios", - "description": "Gestionar usuarios y permisos" - }, - "chat": "AI Chat", - "lab": "The Lab", - "agents": "Agents", - "workspace": "Workspace", - "sidebar": { - "dashboard": "Panel", - "users": "Usuarios", - "aiManagement": "Gestión de IA", - "chat": "Chat IA", - "lab": "El Laboratorio (Ideas)", - "agents": "Agentes", - "settings": "Configuración" - }, - "metrics": { - "vsLastPeriod": "vs período anterior" - }, - "tools": { - "title": "Herramientas del Agente", - "description": "Configura herramientas externas para el uso de herramientas del agente: búsqueda web, scraping web y acceso a API.", - "searchProvider": "Proveedor de Búsqueda Web", - "searxng": "SearXNG (Autoalojado)", - "brave": "Brave Search API", - "both": "Ambos (SearXNG primario, Brave alternativo)", - "searxngUrl": "URL de SearXNG", - "braveKey": "Clave de Brave Search API", - "jinaKey": "Clave de Jina Reader API", - "jinaKeyOptional": "Opcional — funciona sin ella pero con límites de tasa", - "jinaKeyDescription": "Usada para scraping web. Funciona sin clave pero con límites de tasa.", - "saveSettings": "Guardar Configuración de Herramientas", - "updateSuccess": "Configuración de herramientas actualizada exitosamente", - "updateFailed": "Error al actualizar la configuración de herramientas", - "testing": "Probando...", - "testSearch": "Probar búsqueda web" - }, - "settingsDescription": "Configurar ajustes de la aplicación", - "dashboard": { - "title": "Panel de control", - "description": "Resumen de las métricas de la aplicación", - "recentActivity": "Actividad reciente", - "recentActivityPlaceholder": "La actividad reciente se mostrará aquí." - }, - "error": { - "title": "Ocurrió un error en la administración", - "description": "Error al renderizar. Puede reintentar.", - "retry": "Reintentar" - } + "sidebar": { + "notes": "Notes", + "reminders": "Reminders", + "labels": "Labels", + "editLabels": "Edit labels", + "newNoteTabs": "Nueva nota", + "newNoteTabsHint": "Crear nota en este cuaderno", + "noLabelsInNotebook": "Sin etiquetas en este cuaderno", + "archive": "Archive", + "trash": "Trash", + "clearFilter": "Remove filter" + }, + "notes": { + "title": "Notas", + "newNote": "Nueva nota", + "untitled": "Sin título", + "placeholder": "Toma una nota...", + "markdownPlaceholder": "Toma una nota... (Markdown compatible)", + "titlePlaceholder": "Título", + "listItem": "Elemento de lista", + "addListItem": "+ Elemento de lista", + "newChecklist": "Nueva lista de verificación", + "add": "Agregar", + "adding": "Agregando...", + "close": "Cerrar", + "confirmDelete": "¿Estás seguro de que quieres eliminar esta nota?", + "confirmLeaveShare": "¿Estás seguro de que quieres abandonar esta nota compartida?", + "sharedBy": "Compartido por", + "leaveShare": "Abandonar", + "delete": "Eliminar", + "archive": "Archivar", + "unarchive": "Desarchivar", + "pin": "Fijar", + "unpin": "Desfijar", + "color": "Color", + "changeColor": "Cambiar color", + "setReminder": "Configurar recordatorio", + "setReminderButton": "Configurar recordatorio", + "date": "Fecha", + "time": "Hora", + "reminderDateTimeRequired": "Por favor ingresa fecha y hora", + "invalidDateTime": "Fecha u hora inválida", + "reminderMustBeFuture": "El recordatorio debe ser en el futuro", + "reminderSet": "Recordatorio configurado para {datetime}", + "reminderPastError": "El recordatorio debe ser en el futuro", + "reminderRemoved": "Recordatorio eliminado", + "addImage": "Agregar imagen", + "addLink": "Agregar enlace", + "linkAdded": "Enlace agregado", + "linkMetadataFailed": "No se pudieron obtener los metadatos del enlace", + "linkAddFailed": "Error al agregar el enlace", + "invalidFileType": "Tipo de archivo inválido: {fileName}. Solo se permiten JPEG, PNG, GIF y WebP.", + "fileTooLarge": "Archivo demasiado grande: {fileName}. El tamaño máximo es {maxSize}.", + "uploadFailed": "Error al cargar {filename}", + "contentOrMediaRequired": "Por favor ingresa algún contenido o agrega un enlace/imagen", + "itemOrMediaRequired": "Por favor agrega al menos un elemento o medio", + "noteCreated": "Nota creada exitosamente", + "noteCreateFailed": "Error al crear la nota", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "aiAssistant": "Asistente IA", + "changeSize": "Cambiar tamaño", + "backgroundOptions": "Opciones de fondo", + "moreOptions": "Más opciones", + "remindMe": "Recordarme", + "markdownMode": "Markdown", + "addCollaborators": "Agregar colaboradores", + "duplicate": "Duplicar", + "share": "Compartir", + "showCollaborators": "Mostrar colaboradores", + "pinned": "Fijadas", + "others": "Otros", + "noNotes": "Sin notas", + "noNotesFound": "No se encontraron notas", + "createFirstNote": "Crea tu primera nota", + "size": "Tamaño", + "small": "Pequeño", + "medium": "Mediano", + "large": "Grande", + "shareWithCollaborators": "Compartir con colaboradores", + "view": "Ver nota", + "edit": "Editar nota", + "readOnly": "Solo lectura", + "preview": "Vista previa", + "noContent": "Sin contenido", + "takeNote": "Toma una nota...", + "takeNoteMarkdown": "Toma una nota... (Markdown compatible)", + "addItem": "Agregar elemento", + "sharedReadOnly": "Esta nota está compartida contigo en modo solo lectura", + "makeCopy": "Hacer una copia", + "saving": "Guardando...", + "copySuccess": "¡Nota copiada exitosamente!", + "copyFailed": "Error al copiar la nota", + "copy": "Copiar", + "markdownOn": "Markdown ACTIVADO", + "markdownOff": "Markdown DESACTIVADO", + "undo": "Deshacer (Ctrl+Z)", + "redo": "Rehacer (Ctrl+Y)", + "pinnedNotes": "Notas fijadas", + "recent": "Recientes", + "addNote": "Agregar nota", + "remove": "Remove", + "dragToReorder": "Arrastra para reordenar", + "more": "Más", + "emptyState": "Sin notas", + "emptyStateTabs": "Sin notas en esta vista. Usa \"Nueva nota\" en la barra lateral (sugerencias de título IA en el compositor).", + "inNotebook": "En cuaderno", + "moveFailed": "Error al mover", + "clarifyFailed": "Error al aclarar", + "shortenFailed": "Error al acortar", + "improveFailed": "Error al mejorar", + "transformFailed": "Error al transformar", + "markdown": "Markdown", + "unpinned": "Desfijadas", + "redoShortcut": "Rehacer (Ctrl+Y)", + "undoShortcut": "Deshacer (Ctrl+Z)", + "viewCards": "Vista tarjetas", + "viewCardsTooltip": "Cuadrícula de tarjetas con reorganización por arrastrar y soltar", + "viewTabs": "Vista lista", + "viewTabsTooltip": "Pestañas arriba, nota abajo — arrastra pestañas para reordenar", + "viewModeGroup": "Modo de visualización de notas", + "reorderTabs": "Reordenar pestaña", + "modified": "Modificada", + "created": "Creada", + "loading": "Cargando...", + "exportPDF": "Exportar PDF", + "savedStatus": "Guardado", + "dirtyStatus": "Modificado", + "completedLabel": "Completados", + "notes.emptyNotebook": "Cuaderno vacío", + "notes.emptyNotebookDesc": "Este cuaderno no tiene notas. Haz clic en + para crear una.", + "notes.noNoteSelected": "Ninguna nota seleccionada", + "notes.selectOrCreateNote": "Selecciona una nota de la lista o crea una nueva.", + "commitVersion": "Guardar versión", + "versionSaved": "Versión guardada", + "deleteVersion": "Eliminar esta versión", + "versionDeleted": "Versión eliminada", + "deleteVersionConfirm": "¿Eliminar esta versión permanentemente?", + "historyMode": "Modo de historial", + "historyModeManual": "Manual (botón commit)", + "historyModeAuto": "Automático (inteligente)", + "historyModeManualDesc": "Crear snapshots manualmente con el botón commit", + "historyModeAutoDesc": "Snapshots automáticos con detección inteligente", + "history": "Historial", + "historyRestored": "Versión restaurada", + "historyEnabled": "Historial activado", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "El historial está desactivado para tu cuenta.", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "Activar historial", + "historyEmpty": "No hay versiones disponibles", + "historySelectVersion": "Selecciona una versión para previsualizar su contenido", + "sortBy": "Ordenar por", + "sortDateDesc": "Fecha (reciente)", + "sortDateAsc": "Fecha (antigua)", + "sortTitleAsc": "Título A → Z", + "sortTitleDesc": "Título Z → A", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "pagination": { + "previous": "←", + "pageInfo": "Página {currentPage} / {totalPages}", + "next": "→" + }, + "labels": { + "title": "Labels", + "filter": "Filter by Label", + "manage": "Manage Labels", + "manageTooltip": "Manage Labels", + "changeColor": "Cambiar color", + "changeColorTooltip": "Cambiar color", + "delete": "Delete", + "deleteTooltip": "Delete label", + "confirmDelete": "¿Estás seguro de que quieres eliminar esta etiqueta?", + "newLabelPlaceholder": "Create new label", + "namePlaceholder": "Enter label name", + "addLabel": "Agregar etiqueta", + "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": "Todas las etiquetas", + "clearAll": "Limpiar todo", + "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} etiquetas", + "noLabels": "Sin etiquetas", + "confirmDeleteShort": "¿Confirmar?", + "labelRemoved": "Etiqueta \"{label}\" eliminada" + }, + "search": { + "placeholder": "Buscar", + "searchPlaceholder": "Busca en tus notas...", + "semanticInProgress": "Búsqueda semántica en curso...", + "semanticTooltip": "Búsqueda semántica con IA", + "searching": "Buscando...", + "noResults": "No se encontraron resultados", + "resultsFound": "{count} notas encontradas", + "exactMatch": "Coincidencia exacta", + "related": "Relacionado", + "disabledAdmin": "Búsqueda deshabilitada en modo admin" + }, + "collaboration": { + "emailPlaceholder": "Ingresa dirección de correo", + "addCollaborator": "Agregar colaborador", + "removeCollaborator": "Eliminar colaborador", + "owner": "Propietario", + "canEdit": "Puede editar", + "canView": "Puede ver", + "shareNote": "Compartir nota", + "shareWithCollaborators": "Compartir con colaboradores", + "addCollaboratorDescription": "Agrega personas para colaborar en esta nota mediante su correo electrónico.", + "viewerDescription": "Tienes acceso a esta nota. Solo el propietario puede administrar los colaboradores.", + "emailAddress": "Dirección de correo", + "enterEmailAddress": "Ingresa dirección de correo", + "invite": "Invitar", + "peopleWithAccess": "Personas con acceso", + "noCollaborators": "Aún no hay colaboradores. ¡Agrega a alguien arriba!", + "noCollaboratorsViewer": "Aún no hay colaboradores.", + "pendingInvite": "Invitación pendiente", + "pending": "Pendiente", + "remove": "Eliminar", + "unnamedUser": "Usuario sin nombre", + "done": "Hecho", + "willBeAdded": "{email} será agregado como colaborador cuando se cree la nota", + "alreadyInList": "Este correo ya está en la lista", + "nowHasAccess": "{name} ahora tiene acceso a esta nota", + "accessRevoked": "El acceso ha sido revocado", + "errorLoading": "Error al cargar colaboradores", + "failedToAdd": "Error al agregar colaborador", + "failedToRemove": "Error al eliminar colaborador" }, "ai": { "analyzing": "IA analizando...", + "clickToAddTag": "Haz clic para agregar esta etiqueta", + "ignoreSuggestion": "Ignorar esta sugerencia", + "generatingTitles": "Generando títulos...", + "generateTitlesTooltip": "Generar títulos con IA", + "poweredByAI": "Funciona con IA", + "languageDetected": "Idioma detectado", + "processing": "Procesando...", + "tagAdded": "Etiqueta \"{tag}\" agregada", + "titleGenerating": "Generando...", + "titleGenerateWithAI": "Generar títulos con IA", + "titleGenerationMinWords": "El contenido debe tener al menos 10 palabras para generar títulos (actual: {count} palabras)", + "titleGenerationError": "Error al generar títulos", + "titlesGenerated": "💡 ¡{count} títulos generados!", + "titleGenerationFailed": "Error al generar títulos", + "titleApplied": "¡Título aplicado!", + "reformulationNoText": "Por favor selecciona texto o agrega contenido", + "reformulationSelectionTooShort": "Selección demasiado corta, usando contenido completo", + "reformulationMinWords": "El texto debe tener al menos 10 palabras (actual: {count} palabras)", + "reformulationMaxWords": "El texto debe tener máximo 500 palabras", + "reformulationError": "Error durante la reformulación", + "reformulationFailed": "Error al reformular el texto", + "reformulationApplied": "¡Texto reformulado aplicado!", + "transformMarkdown": "Transformar a Markdown", + "transforming": "Transformando...", + "transformSuccess": "¡Texto transformado a Markdown exitosamente!", + "transformError": "Error durante la transformación", "assistant": "Asistente IA", + "generating": "Generando...", + "generateTitles": "Generar títulos", + "reformulateText": "Reformular texto", + "reformulating": "Reformulando...", + "clarify": "Aclarar", + "shorten": "Acortar", + "improveStyle": "Mejorar estilo", + "reformulationComparison": "Comparación de reformulación", + "original": "Original", + "reformulated": "Reformulado", "autoLabels": { "error": "Error al obtener sugerencias de etiquetas", "noLabelsSelected": "No se seleccionaron etiquetas", @@ -304,47 +356,11 @@ "selectAllIn": "Seleccionar todas las notas en {notebook}", "selectNote": "Seleccionar nota: {title}" }, - "clarify": "Aclarar", - "clickToAddTag": "Haz clic para agregar esta etiqueta", - "generateTitles": "Generar títulos", - "generateTitlesTooltip": "Generar títulos con IA", - "generating": "Generando...", - "generatingTitles": "Generando títulos...", - "ignoreSuggestion": "Ignorar esta sugerencia", - "improveStyle": "Mejorar estilo", - "languageDetected": "Idioma detectado", "notebookSummary": { "regenerate": "Regenerar resumen", "regenerating": "Regenerando resumen...", "exportPDF": "Exportar como PDF" }, - "original": "Original", - "poweredByAI": "Funciona con IA", - "processing": "Procesando...", - "reformulateText": "Reformular texto", - "reformulated": "Reformulado", - "reformulating": "Reformulando...", - "reformulationApplied": "¡Texto reformulado aplicado!", - "reformulationComparison": "Comparación de reformulación", - "reformulationError": "Error durante la reformulación", - "reformulationFailed": "Error al reformular el texto", - "reformulationMaxWords": "El texto debe tener máximo 500 palabras", - "reformulationMinWords": "El texto debe tener al menos 10 palabras (actual: {count} palabras)", - "reformulationNoText": "Por favor selecciona texto o agrega contenido", - "reformulationSelectionTooShort": "Selección demasiado corta, usando contenido completo", - "shorten": "Acortar", - "tagAdded": "Etiqueta \"{tag}\" agregada", - "titleApplied": "¡Título aplicado!", - "titleGenerateWithAI": "Generar títulos con IA", - "titleGenerating": "Generando...", - "titleGenerationError": "Error al generar títulos", - "titleGenerationFailed": "Error al generar títulos", - "titleGenerationMinWords": "El contenido debe tener al menos 10 palabras para generar títulos (actual: {count} palabras)", - "titlesGenerated": "💡 ¡{count} títulos generados!", - "transformError": "Error durante la transformación", - "transformMarkdown": "Transformar a Markdown", - "transformSuccess": "¡Texto transformado a Markdown exitosamente!", - "transforming": "Transformando...", "clarifyDesc": "Hacer el texto más claro y comprensible", "shortenDesc": "Resumir el texto y ir al grano", "improve": "Mejorar escritura", @@ -389,11 +405,14 @@ "transformationsDesc": "Transformaciones — aplicadas directamente a la nota", "writeMinWordsAction": "Escribe al menos 5 palabras para activar las acciones de IA.", "processingAction": "Procesando...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "Aclarar", "shorten": "Acortar", "improve": "Mejorar", - "toMarkdown": "A Markdown" + "toMarkdown": "A Markdown", + "describeImages": "Describe images" }, "openAssistant": "Abrir asistente IA", "poweredByMomento": "Desarrollado por Momento AI", @@ -408,22 +427,256 @@ "historyTab": "Historial", "insightsTab": "Insights", "aiCopilot": "Copiañol IA", - "suggestTitle": "Sugerencia de título por IA" + "suggestTitle": "Sugerencia de título por IA", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" + }, + "titleSuggestions": { + "available": "Sugerencias de título", + "title": "Sugerencias de IA", + "generating": "Generando...", + "selectTitle": "Selecciona un título", + "dismiss": "Descartar" + }, + "semanticSearch": { + "exactMatch": "Coincidencia exacta", + "related": "Relacionado", + "searching": "Buscando..." + }, + "paragraphRefactor": { + "title": "Mejora de texto", + "shorten": "Acortar", + "expand": "Expandir", + "improve": "Mejorar", + "formal": "Formal", + "casual": "Informal" + }, + "memoryEcho": { + "title": "Noté algo...", + "description": "Conexiones proactivas entre tus notas", + "dailyInsight": "Perspectiva diaria de tus notas", + "insightReady": "¡Tu perspectiva está lista!", + "viewConnection": "Ver conexión", + "helpful": "Útil", + "notHelpful": "No útil", + "dismiss": "Descartar por ahora", + "thanksFeedback": "¡Gracias por tus comentarios!", + "thanksFeedbackImproving": "¡Gracias! Usaremos esto para mejorar.", + "connections": "Conexiones", + "connection": "conexión", + "connectionsBadge": "{count} conexión{plural}", + "match": "{percentage}% coincidencia", + "fused": "Fusionado", + "clickToView": "Haz clic para ver", + "overlay": { + "title": "Notas conectadas", + "searchPlaceholder": "Buscar conexiones...", + "sortBy": "Ordenar por:", + "sortSimilarity": "Similitud", + "sortRecent": "Reciente", + "sortOldest": "Más antiguo", + "viewAll": "Ver todas lado a lado", + "loading": "Cargando...", + "noConnections": "No se encontraron conexiones", + "error": "Error" + }, + "comparison": { + "title": "💡 Comparación de notas", + "similarityInfo": "Estas notas están conectadas por {similarity}% de similitud", + "highSimilarityInsight": "Estas notas tratan el mismo tema con un alto grado de similitud. Podrían fusionarse o consolidarse.", + "untitled": "Sin título", + "clickToView": "Haz clic para ver la nota", + "helpfulQuestion": "¿Es útil esta comparación?", + "helpful": "Útil", + "notHelpful": "No útil" + }, + "editorSection": { + "title": "⚡ Notas conectadas ({count})", + "loading": "Cargando...", + "view": "Ver", + "compare": "Comparar", + "merge": "Fusionar", + "compareAll": "Comparar todas", + "mergeAll": "Fusionar todas", + "close": "Cerrar" + }, + "fusion": { + "title": "🔗 Fusión inteligente", + "mergeNotes": "Fusionar {count} nota(s)", + "notesToMerge": "📝 Notas para fusionar", + "optionalPrompt": "💬 Prompt de fusión (opcional)", + "promptPlaceholder": "Instrucciones opcionales para la IA (ej. 'Mantener el estilo formal de la nota 1')...", + "generateFusion": "Generar la fusión", + "generating": "Generando...", + "previewTitle": "📝 Vista previa de la nota fusionada", + "edit": "Editar", + "modify": "Modificar", + "finishEditing": "Terminar edición", + "optionsTitle": "Opciones de fusión", + "archiveOriginals": "Archivar notas originales", + "keepAllTags": "Mantener todas las etiquetas", + "useLatestTitle": "Usar la nota más reciente como título", + "createBacklinks": "Crear retroenlaces a las notas originales", + "cancel": "Cancelar", + "confirmFusion": "Confirmar fusión", + "success": "¡Notas fusionadas exitosamente!", + "error": "Error al fusionar las notas", + "generateError": "Error al generar la fusión", + "noContentReturned": "No se devolvió contenido de fusión de la API", + "unknownDate": "Fecha desconocida" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "compartió \"{title}\"", + "untitled": "Sin título", + "notifications": "Notificaciones", + "declined": "Uso compartido rechazado", + "removed": "Nota eliminada de la lista" + }, + "nav": { + "home": "Inicio", + "notes": "Notas", + "notebooks": "Cuadernos", + "generalNotes": "Notas generales", + "archive": "Archivo", + "settings": "Configuración", + "profile": "Perfil", + "aiSettings": "Configuración IA", + "logout": "Cerrar sesión", + "login": "Iniciar sesión", + "adminDashboard": "Panel de administración", + "diagnostics": "Diagnósticos", + "trash": "Papelera", + "support": "Apoyar Memento ☕", + "reminders": "Recordatorios", + "userManagement": "Gestión de usuarios", + "accountSettings": "Configuración de cuenta", + "manageAISettings": "Administrar configuración IA", + "configureAI": "Configura tus funciones impulsadas por IA, proveedor y preferencias", + "supportDevelopment": "Apoyar el desarrollo de Memento ☕", + "supportDescription": "Memento es 100% gratuito y de código abierto. Tu apoyo ayuda a mantenerlo así.", + "buyMeACoffee": "Cómprame un café", + "donationDescription": "Haz una donación única o conviértete en suscriptor mensual.", + "donateOnKofi": "Donar en Ko-fi", + "donationNote": "Sin comisiones de plataforma • Pagos instantáneos • Seguro", + "sponsorOnGithub": "Patrocinar en GitHub", + "sponsorDescription": "Conviértete en suscriptor mensual y obtén reconocimiento.", + "workspace": "Espacio de trabajo", + "quickAccess": "Acceso rápido", + "myLibrary": "Mi biblioteca", + "favorites": "Favoritos", + "recent": "Recientes", + "proPlan": "Plan Pro", + "chat": "Chat IA", + "lab": "El Laboratorio", + "agents": "Agentes" + }, + "settings": { + "title": "Configuración", + "description": "Administra tu configuración y preferencias", + "account": "Cuenta", + "appearance": "Apariencia", + "theme": "Tema", + "themeLight": "Claro", + "themeDark": "Oscuro", + "themeSystem": "Sistema", + "notifications": "Notificaciones", + "language": "Idioma", + "selectLanguage": "Seleccionar idioma", + "security": "Seguridad", + "about": "Acerca de", + "version": "Versión", + "settingsSaved": "Configuración guardada", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "Error al guardar la configuración", + "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": "{created} etiqueta(s) sincronizada(s), {deleted} huérfana(s) eliminada(s)", + "cleanupNothing": "Ninguna acción necesaria — las etiquetas ya coinciden con tus notas", + "cleanupWithErrors": "algunas operaciones fallaron", + "cleanupError": "No se pudieron limpiar las etiquetas", + "indexingComplete": "Indexación completa: {count} nota(s) procesada(s)", + "indexingError": "Error durante la indexación", + "semanticIndexing": "Semantic Indexing", + "semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search", + "profile": "Perfil", + "searchNoResults": "Sin resultados de búsqueda", + "languageAuto": "Automático", + "emailNotifications": "Notificaciones por correo", + "emailNotificationsDesc": "Recibir notificaciones importantes por correo", + "desktopNotifications": "Notificaciones de escritorio", + "desktopNotificationsDesc": "Recibir notificaciones en el navegador", + "notificationsDesc": "Gestiona tus preferencias de notificaciones" + }, + "profile": { + "title": "Perfil", + "description": "Actualiza tu información personal", + "displayName": "Nombre para mostrar", + "email": "Correo electrónico", + "changePassword": "Cambiar contraseña", + "changePasswordDescription": "Actualiza tu contraseña. Necesitarás tu contraseña actual.", + "currentPassword": "Contraseña actual", + "newPassword": "Nueva contraseña", + "confirmPassword": "Confirmar contraseña", + "updatePassword": "Actualizar contraseña", + "passwordChangeSuccess": "Contraseña cambiada exitosamente", + "passwordChangeFailed": "Error al cambiar la contraseña", + "passwordUpdated": "Contraseña actualizada", + "passwordError": "Error al actualizar la contraseña", + "languagePreferences": "Preferencias de idioma", + "languagePreferencesDescription": "Elige tu idioma preferido para las funciones de IA y la interfaz.", + "preferredLanguage": "Idioma preferido", + "selectLanguage": "Selecciona un idioma", + "languageDescription": "Este idioma se usará para las funciones impulsadas por IA, análisis de contenido y texto de la interfaz.", + "autoDetect": "Detección automática", + "updateSuccess": "Perfil actualizado", + "updateFailed": "Error al actualizar el perfil", + "languageUpdateSuccess": "Idioma actualizado exitosamente", + "languageUpdateFailed": "Error al actualizar el idioma", + "profileUpdated": "Perfil actualizado", + "profileError": "Error al actualizar el perfil", + "accountSettings": "Configuración de cuenta", + "manageAISettings": "Administrar configuración IA", + "displaySettings": "Configuración de visualización", + "displaySettingsDescription": "Personaliza la apariencia y el tamaño de fuente.", + "fontSize": "Tamaño de fuente", + "selectFontSize": "Seleccionar tamaño de fuente", + "fontSizeSmall": "Pequeño", + "fontSizeMedium": "Mediano", + "fontSizeLarge": "Grande", + "fontSizeExtraLarge": "Extra grande", + "fontSizeDescription": "Ajusta el tamaño de fuente para mejor legibilidad. Esto se aplica a todo el texto de la interfaz.", + "fontSizeUpdateSuccess": "Tamaño de fuente actualizado exitosamente", + "fontSizeUpdateFailed": "Error al actualizar el tamaño de fuente", + "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": "Configuración IA", "description": "Configura tus funciones y preferencias impulsadas por IA", - "error": "Error al actualizar la configuración", "features": "Funciones de IA", - "frequency": "Frecuencia", - "frequencyDaily": "Diario", - "frequencyWeekly": "Semanal", "provider": "Proveedor de IA", "providerAuto": "Automático (Recomendado)", "providerOllama": "Ollama (Local)", "providerOpenAI": "OpenAI (Nube)", - "saved": "Configuración actualizada", + "frequency": "Frecuencia", + "frequencyDaily": "Diario", + "frequencyWeekly": "Semanal", "saving": "Guardando...", - "title": "Configuración IA", + "saved": "Configuración actualizada", + "error": "Error al actualizar la configuración", "titleSuggestionsDesc": "Sugerir títulos para notas sin título después de 50+ palabras", "paragraphRefactorDesc": "Opciones de mejora de texto con IA", "frequencyDesc": "Frecuencia de análisis de conexiones entre notas", @@ -432,787 +685,518 @@ "providerOllamaDesc": "100% privado, se ejecuta localmente en tu máquina", "providerOpenAIDesc": "Más preciso, requiere clave API" }, - "appearance": { - "description": "Personaliza el aspecto de la aplicación", - "title": "Apariencia", - "notesViewDescription": "Elige cómo se muestran las notas en el inicio y en los cuadernos.", - "notesViewLabel": "Vista de notas", - "notesViewTabs": "Pestañas (estilo OneNote)", - "notesViewMasonry": "Tarjetas (cuadrícula)" - }, - "auth": { - "backToLogin": "Volver al inicio de sesión", - "checkYourEmail": "Revisa tu correo", - "createAccount": "Crea tu cuenta", - "email": "Correo electrónico", - "emailPlaceholder": "Ingrese su correo electrónico", - "forgotPassword": "¿Olvidaste tu contraseña?", - "forgotPasswordDescription": "Ingresa tu correo electrónico y te enviaremos un enlace para restablecer tu contraseña.", - "forgotPasswordTitle": "Contraseña olvidada", - "hasAccount": "¿Ya tienes una cuenta?", - "name": "Nombre", - "namePlaceholder": "Ingrese su nombre", - "noAccount": "¿No tienes una cuenta?", - "orContinueWith": "O continuar con", - "password": "Contraseña", - "passwordMinChars": "Ingrese contraseña (mínimo 6 caracteres)", - "passwordPlaceholder": "Ingrese su contraseña", - "rememberMe": "Recordarme", - "resetEmailSent": "Hemos enviado un enlace de restablecimiento de contraseña a tu correo si existe en nuestro sistema.", - "resetPassword": "Restablecer contraseña", - "resetPasswordInstructions": "Ingrese su correo para restablecer su contraseña", - "returnToLogin": "Volver al inicio de sesión", - "sendResetLink": "Enviar enlace de restablecimiento", - "sending": "Enviando...", - "signIn": "Iniciar sesión", - "signInToAccount": "Inicia sesión en tu cuenta", - "signOut": "Sign out", - "signUp": "Registrarse", - "confirmPassword": "Confirmar contraseña", - "confirmPasswordPlaceholder": "Confirme su contraseña" - }, - "autoLabels": { - "analyzing": "Analizando tus notas...", - "createNewLabel": "Crear esta nueva etiqueta y agregarla", - "created": "{count} etiquetas creadas exitosamente", - "description": "He detectado temas recurrentes en \"{notebookName}\" ({totalNotes} notas). ¿Crear etiquetas para ellos?", - "error": "Error al obtener sugerencias de etiquetas", - "new": "(nuevo)", - "noLabelsSelected": "No hay etiquetas seleccionadas", - "note": "nota", - "notes": "notas", - "title": "Nuevas sugerencias de etiquetas", - "typeContent": "Escribe contenido para obtener sugerencias de etiquetas..." - }, - "batch": { - "organize": "Organizar", - "organizeWithAI": "Organizar con IA" - }, - "batchOrganization": { - "analyzing": "Analizando tus notas...", - "apply": "Aplicar ({count})", - "applying": "Aplicando...", - "confidence": "confianza", - "description": "La IA analizará tus notas y sugerirá organizarlas en cuadernos.", - "error": "Error al crear el plan de organización", - "noNotebooks": "No hay cuadernos disponibles. Crea primero cuadernos para organizar tus notas.", - "noNotesSelected": "No hay notas seleccionadas", - "noSuggestions": "La IA no encontró una buena manera de organizar estas notas.", - "notesToOrganize": "{count} notas para organizar", - "selected": "{count} seleccionado", - "title": "Organizar con IA", - "unorganized": "{count} notas no se pudieron categorizar y permanecerán en Notas Generales." - }, - "collaboration": { - "accessRevoked": "El acceso ha sido revocado", - "addCollaborator": "Agregar colaborador", - "addCollaboratorDescription": "Agrega personas para colaborar en esta nota mediante su correo electrónico.", - "alreadyInList": "Este correo ya está en la lista", - "canEdit": "Puede editar", - "canView": "Puede ver", - "done": "Hecho", - "emailAddress": "Dirección de correo", - "emailPlaceholder": "Ingresa dirección de correo", - "enterEmailAddress": "Ingresa dirección de correo", - "errorLoading": "Error al cargar colaboradores", - "failedToAdd": "Error al agregar colaborador", - "failedToRemove": "Error al eliminar colaborador", - "invite": "Invitar", - "noCollaborators": "Aún no hay colaboradores. ¡Agrega a alguien arriba!", - "noCollaboratorsViewer": "Aún no hay colaboradores.", - "nowHasAccess": "{name} ahora tiene acceso a esta nota", - "owner": "Propietario", - "pending": "Pendiente", - "pendingInvite": "Invitación pendiente", - "peopleWithAccess": "Personas con acceso", - "remove": "Eliminar", - "removeCollaborator": "Eliminar colaborador", - "shareNote": "Compartir nota", - "shareWithCollaborators": "Compartir con colaboradores", - "unnamedUser": "Usuario sin nombre", - "viewerDescription": "Tienes acceso a esta nota. Solo el propietario puede administrar los colaboradores.", - "willBeAdded": "{email} será agregado como colaborador cuando se cree la nota" + "general": { + "loading": "Cargando...", + "save": "Guardar", + "cancel": "Cancelar", + "add": "Agregar", + "edit": "Editar", + "confirm": "Confirmar", + "close": "Cerrar", + "back": "Atrás", + "next": "Siguiente", + "previous": "Anterior", + "submit": "Enviar", + "reset": "Restablecer", + "apply": "Aplicar", + "clear": "Limpiar", + "select": "Seleccionar", + "tryAgain": "Por favor intenta de nuevo", + "error": "Ocurrió un error", + "operationSuccess": "Operación exitosa", + "operationFailed": "Operación fallida", + "testConnection": "Test Connection", + "clean": "Clean", + "indexAll": "Index All", + "preview": "Vista previa" }, "colors": { - "blue": "Azul", "default": "Predeterminado", - "gray": "Gris", - "green": "Verde", - "orange": "Naranja", - "pink": "Rosa", - "purple": "Púrpura", "red": "Rojo", - "yellow": "Amarillo" + "blue": "Azul", + "green": "Verde", + "yellow": "Amarillo", + "purple": "Púrpura", + "pink": "Rosa", + "orange": "Naranja", + "gray": "Gris" }, - "common": { - "add": "Agregar", - "cancel": "Cancelar", - "close": "Cerrar", - "confirm": "Confirmar", - "delete": "Eliminar", - "edit": "Editar", - "error": "Error", - "loading": "Cargando", - "noResults": "Sin resultados", - "notAvailable": "No disponible", - "optional": "Opcional", - "remove": "Eliminar", - "required": "Requerido", - "save": "Guardar", - "search": "Buscar", - "success": "Éxito", - "unknown": "Desconocido" + "reminder": { + "title": "Recordatorio", + "setReminder": "Configurar recordatorio", + "removeReminder": "Eliminar recordatorio", + "reminderDate": "Fecha del recordatorio", + "reminderTime": "Hora del recordatorio", + "save": "Configurar recordatorio", + "cancel": "Cancelar" }, - "connection": { - "clickToView": "Haz clic para ver la nota", - "helpful": "Útil", - "isHelpful": "¿Es útil esta conexión?", - "memoryEchoDiscovery": "Descubrimiento de Memory Echo", - "notHelpful": "No útil", - "similarityInfo": "Estas notas están conectadas por {similarity}% de similitud" - }, - "dataManagement": { - "cleanup": { - "button": "Cleanup", - "description": "Remove labels and connections that reference deleted notes.", - "failed": "Error during cleanup", - "title": "Cleanup Orphaned Data" - }, - "cleanupComplete": "Limpieza completada", - "cleanupError": "Error de limpieza", - "dangerZone": "Zona de peligro", - "dangerZoneDescription": "Estas acciones son irreversibles", - "delete": { - "button": "Delete All Notes", - "confirm": "Are you sure? This will permanently delete all your notes.", - "description": "Permanently delete all your notes. This action cannot be undone.", - "failed": "Failed to delete notes", - "success": "All notes deleted", - "title": "Delete All Notes" - }, - "deleting": "Eliminando", - "export": { - "button": "Export Notes", - "description": "Download all your notes as a JSON file. This includes all content, labels, and metadata.", - "failed": "Failed to export notes", - "success": "Notes exported successfully", - "title": "Export All Notes" - }, - "exporting": "Exportando", - "import": { - "button": "Import Notes", - "description": "Upload a JSON file to import notes. This will add to your existing notes, not replace them.", - "failed": "Failed to import notes", - "success": "Imported {count} notes", - "title": "Import Notes" - }, - "importing": "Importando", - "indexing": { - "button": "Rebuild Index", - "description": "Regenerate embeddings for all notes to improve semantic search.", - "failed": "Error during indexing", - "success": "Indexing complete: {count} notes processed", - "title": "Rebuild Search Index" - }, - "indexingComplete": "Indexación completada", - "indexingError": "Error de indexación", - "title": "Data Management", - "toolsDescription": "Tools to maintain your database health" - }, - "demoMode": { - "activated": "¡Modo demostración activado! Memory Echo funcionará instantáneamente.", - "createNotesTip": "¡Crea 2+ notas similares y ve Memory Echo en acción!", - "deactivated": "Modo demostración desactivado. Parámetros normales restaurados.", - "delayBetweenNotes": "Retraso de 0 días entre notas (normalmente 7 días)", - "description": "Acelera Memory Echo para pruebas. Las conexiones aparecen instantáneamente.", - "parametersActive": "Parámetros de demostración activos:", - "similarityThreshold": "Umbral de similitud del 50% (normalmente 75%)", - "title": "Modo demostración", - "toggleFailed": "Error al alternar modo demostración", - "unlimitedInsights": "Insights ilimitados (sin límites de frecuencia)" - }, - "diagnostics": { - "apiStatus": "Estado de la API", - "checking": "Checking...", - "configuredProvider": "Proveedor configurado", - "description": "Check your AI provider connection status", - "errorStatus": "Error", - "operational": "Operational", - "testDetails": "Detalles de la prueba:", - "tip1": "Asegúrate de que Ollama esté ejecutándose (ollama serve)", - "tip2": "Verifica que el modelo esté instalado (ollama pull llama3)", - "tip3": "Verifica tu clave API de OpenAI", - "tip4": "Revisa la conectividad de red", - "title": "Diagnósticos", - "troubleshootingTitle": "Consejos de solución de problemas:" - }, - "favorites": { - "noFavorites": "Sin favoritos", - "pinToFavorite": "Fijar como favorito", - "title": "Favoritos", - "toggleSection": "Alternar sección" - }, - "footer": { - "openSource": "Clon de código abierto", - "privacy": "Privacidad", - "terms": "Términos" - }, - "general": { - "add": "Agregar", - "apply": "Aplicar", - "back": "Atrás", - "cancel": "Cancelar", - "clean": "Clean", - "clear": "Limpiar", - "close": "Cerrar", - "confirm": "Confirmar", - "edit": "Editar", - "error": "Ocurrió un error", - "indexAll": "Index All", - "loading": "Cargando...", - "next": "Siguiente", - "operationFailed": "Operación fallida", - "operationSuccess": "Operación exitosa", - "preview": "Vista previa", - "previous": "Anterior", - "reset": "Restablecer", - "save": "Guardar", - "select": "Seleccionar", - "submit": "Enviar", - "testConnection": "Test Connection", - "tryAgain": "Por favor intenta de nuevo" - }, - "generalSettings": { - "description": "Configuración general de la aplicación", - "title": "Configuración general" - }, - "labels": { - "addLabel": "Agregar etiqueta", - "allLabels": "Todas las etiquetas", - "changeColor": "Cambiar color", - "changeColorTooltip": "Cambiar color", - "clearAll": "Limpiar todo", - "confirmDelete": "¿Estás seguro de que quieres eliminar esta etiqueta?", - "count": "{count} etiquetas", - "noLabels": "Sin etiquetas", - "confirmDeleteShort": "¿Confirmar?", - "labelRemoved": "Etiqueta \"{label}\" eliminada" - }, - "memoryEcho": { - "clickToView": "Haz clic para ver", - "comparison": { - "clickToView": "Haz clic para ver la nota", - "helpful": "Útil", - "helpfulQuestion": "¿Es útil esta comparación?", - "highSimilarityInsight": "Estas notas tratan el mismo tema con un alto grado de similitud. Podrían fusionarse o consolidarse.", - "notHelpful": "No útil", - "similarityInfo": "Estas notas están conectadas por {similarity}% de similitud", - "title": "💡 Comparación de notas", - "untitled": "Sin título" - }, - "connection": "conexión", - "connections": "Conexiones", - "connectionsBadge": "{count} conexión{plural}", - "dailyInsight": "Perspectiva diaria de tus notas", - "description": "Conexiones proactivas entre tus notas", - "dismiss": "Descartar por ahora", - "editorSection": { - "close": "Cerrar", - "compare": "Comparar", - "compareAll": "Comparar todas", - "loading": "Cargando...", - "merge": "Fusionar", - "mergeAll": "Fusionar todas", - "title": "⚡ Notas conectadas ({count})", - "view": "Ver" - }, - "fused": "Fusionado", - "fusion": { - "archiveOriginals": "Archivar notas originales", - "cancel": "Cancelar", - "confirmFusion": "Confirmar fusión", - "createBacklinks": "Crear retroenlaces a las notas originales", - "edit": "Editar", - "error": "Error al fusionar las notas", - "finishEditing": "Terminar edición", - "generateError": "Error al generar la fusión", - "generateFusion": "Generar la fusión", - "generating": "Generando...", - "keepAllTags": "Mantener todas las etiquetas", - "mergeNotes": "Fusionar {count} nota(s)", - "modify": "Modificar", - "noContentReturned": "No se devolvió contenido de fusión de la API", - "notesToMerge": "📝 Notas para fusionar", - "optionalPrompt": "💬 Prompt de fusión (opcional)", - "optionsTitle": "Opciones de fusión", - "previewTitle": "📝 Vista previa de la nota fusionada", - "promptPlaceholder": "Instrucciones opcionales para la IA (ej. 'Mantener el estilo formal de la nota 1')...", - "success": "¡Notas fusionadas exitosamente!", - "title": "🔗 Fusión inteligente", - "unknownDate": "Fecha desconocida", - "useLatestTitle": "Usar la nota más reciente como título" - }, - "helpful": "Útil", - "insightReady": "¡Tu perspectiva está lista!", - "notHelpful": "No útil", - "overlay": { - "error": "Error", - "loading": "Cargando...", - "noConnections": "No se encontraron conexiones", - "searchPlaceholder": "Buscar conexiones...", - "sortBy": "Ordenar por:", - "sortOldest": "Más antiguo", - "sortRecent": "Reciente", - "sortSimilarity": "Similitud", - "title": "Notas conectadas", - "viewAll": "Ver todas lado a lado" - }, - "thanksFeedback": "¡Gracias por tus comentarios!", - "thanksFeedbackImproving": "¡Gracias! Usaremos esto para mejorar.", - "title": "Noté algo...", - "viewConnection": "Ver conexión", - "match": "{percentage}% coincidencia" - }, - "nav": { - "accountSettings": "Configuración de cuenta", - "adminDashboard": "Panel de administración", - "aiSettings": "Configuración IA", - "archive": "Archivo", - "buyMeACoffee": "Cómprame un café", - "configureAI": "Configura tus funciones impulsadas por IA, proveedor y preferencias", - "diagnostics": "Diagnósticos", - "donateOnKofi": "Donar en Ko-fi", - "donationDescription": "Haz una donación única o conviértete en suscriptor mensual.", - "donationNote": "Sin comisiones de plataforma • Pagos instantáneos • Seguro", - "favorites": "Favoritos", - "generalNotes": "Notas generales", - "home": "Inicio", - "login": "Iniciar sesión", - "logout": "Cerrar sesión", - "manageAISettings": "Administrar configuración IA", - "myLibrary": "Mi biblioteca", - "notebooks": "Cuadernos", - "notes": "Notas", - "proPlan": "Plan Pro", - "profile": "Perfil", - "quickAccess": "Acceso rápido", - "recent": "Recientes", - "reminders": "Recordatorios", - "settings": "Configuración", - "sponsorDescription": "Conviértete en suscriptor mensual y obtén reconocimiento.", - "sponsorOnGithub": "Patrocinar en GitHub", - "support": "Apoyar Memento ☕", - "supportDescription": "Memento es 100% gratuito y de código abierto. Tu apoyo ayuda a mantenerlo así.", - "supportDevelopment": "Apoyar el desarrollo de Memento ☕", - "trash": "Papelera", - "userManagement": "Gestión de usuarios", - "workspace": "Espacio de trabajo", - "chat": "Chat IA", - "lab": "El Laboratorio", - "agents": "Agentes" + "reminders": { + "title": "Recordatorios", + "empty": "Sin recordatorios", + "emptyDescription": "Agrega un recordatorio a una nota para encontrarlo aquí.", + "upcoming": "Próximos", + "overdue": "Vencidos", + "done": "Completados", + "markDone": "Marcar como completado", + "markUndone": "Marcar como no completado", + "todayAt": "Hoy a las {time}", + "tomorrowAt": "Mañana a las {time}" }, "notebook": { - "cancel": "Cancelar", "create": "Crear cuaderno", - "createDescription": "Inicia una nueva colección para organizar tus notas, ideas y proyectos de manera eficiente.", "createNew": "Crear nuevo cuaderno", - "creating": "Creando...", - "delete": "Eliminar cuaderno", - "deleteConfirm": "Eliminar", - "deleteWarning": "¿Estás seguro de que quieres eliminar este cuaderno? Las notas se moverán a Notas generales.", - "edit": "Editar cuaderno", - "editDescription": "Cambia el nombre, icono y color de tu cuaderno.", - "generating": "Generando resumen...", - "labels": "Etiquetas", + "createDescription": "Inicia una nueva colección para organizar tus notas, ideas y proyectos de manera eficiente.", "name": "Nombre del cuaderno", - "noLabels": "Sin etiquetas", - "selectColor": "Color", - "selectIcon": "Icono", - "summary": "Resumen del cuaderno", - "summaryDescription": "Genera un resumen impulsado por IA de todas las notas en este cuaderno.", - "summaryError": "Error al generar el resumen", "namePlaceholder": "ej. Estrategia Marketing Q4", "myNotebook": "Mi cuaderno", "saving": "Guardando...", + "selectIcon": "Icono", + "selectColor": "Color", + "cancel": "Cancelar", + "creating": "Creando...", + "edit": "Editar cuaderno", + "editDescription": "Cambia el nombre, icono y color de tu cuaderno.", + "delete": "Eliminar cuaderno", + "deleteWarning": "¿Estás seguro de que quieres eliminar este cuaderno? Las notas se moverán a Notas generales.", + "deleteConfirm": "Eliminar", + "summary": "Resumen del cuaderno", + "summaryDescription": "Genera un resumen impulsado por IA de todas las notas en este cuaderno.", + "generating": "Generando resumen...", + "summaryError": "Error al generar el resumen", + "labels": "Etiquetas", + "noLabels": "Sin etiquetas", "pdfTitle": "Resumen — {name}", "pdfNotesLabel": "Notas:", "pdfGeneratedOn": "Generado el:", "confidence": "confianza", "savingReminder": "Error al guardar el recordatorio", - "removingReminder": "Error al eliminar el recordatorio" + "removingReminder": "Error al eliminar el recordatorio", + "generatingDescription": "Please wait..." }, "notebookSuggestion": { + "title": "¿Mover a {name}?", "description": "Esta nota parece pertenecer a este cuaderno", + "move": "Mover", "dismiss": "Descartar", "dismissIn": "Descartar (cierra en {timeLeft}s)", - "generalNotes": "Notas generales", - "move": "Mover", "moveToNotebook": "Mover al cuaderno", - "title": "¿Mover a {name}?" + "generalNotes": "Notas generales" }, - "notebooks": { - "allNotebooks": "Todos los cuadernos", - "create": "Crear", - "createFirst": "Crear el primero", - "noNotebooks": "Sin cuadernos" + "admin": { + "title": "Panel de administración", + "userManagement": "Gestión de usuarios", + "chat": "AI Chat", + "lab": "The Lab", + "agents": "Agents", + "workspace": "Workspace", + "settings": "Configuración de administrador", + "security": { + "title": "Configuración de seguridad", + "description": "Gestionar el control de acceso y las políticas de registro.", + "allowPublicRegistration": "Permitir registro público", + "allowPublicRegistrationDescription": "Si está desactivado, los nuevos usuarios solo pueden ser agregados por un administrador a través de la página de gestión de usuarios.", + "updateSuccess": "Configuración de seguridad actualizada", + "updateFailed": "Error al actualizar la configuración de seguridad" + }, + "ai": { + "title": "Configuración de IA", + "description": "Configurar proveedores de IA para etiquetado automático y búsqueda semántica. Use diferentes proveedores para un rendimiento óptimo.", + "tagsGenerationProvider": "Proveedor de generación de etiquetas", + "tagsGenerationDescription": "Proveedor de IA para sugerencias automáticas de etiquetas. Recomendado: Ollama (gratis, local).", + "embeddingsProvider": "Proveedor de embeddings", + "embeddingsDescription": "Proveedor de IA para embeddings de búsqueda semántica. Recomendado: OpenAI (mejor calidad).", + "chatProvider": "Proveedor de chat", + "chatDescription": "Proveedor de IA para el asistente de chat. Usa el proveedor de etiquetas si no está configurado.", + "provider": "Proveedor", + "baseUrl": "URL base", + "model": "Modelo", + "apiKey": "Clave API", + "selectOllamaModel": "Seleccionar un modelo Ollama instalado en tu sistema", + "openAIKeyDescription": "Tu clave API de OpenAI desde platform.openai.com", + "modelRecommendations": "gpt-4o-mini = Mejor valor • gpt-4o = Mejor calidad", + "commonModelsDescription": "Modelos comunes para APIs compatibles con OpenAI", + "selectEmbeddingModel": "Seleccionar un modelo de embedding instalado en tu sistema", + "commonEmbeddingModels": "Modelos de embedding comunes para APIs compatibles con OpenAI", + "saving": "Guardando...", + "saveSettings": "Guardar configuración de IA", + "openTestPanel": "Abrir panel de pruebas de IA", + "updateSuccess": "Configuración de IA actualizada correctamente", + "updateFailed": "Error al actualizar la configuración de IA", + "providerTagsRequired": "AI_PROVIDER_TAGS es requerido", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING es requerido", + "providerOllamaOption": "🦙 Ollama (Local & Free)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 Custom OpenAI-Compatible", + "bestValue": "Mejor relación calidad/precio", + "bestQuality": "Mejor calidad", + "saved": "(Guardado)", + "fetchModelsFailed": "Error al obtener modelos", + "refreshModels": "Actualizar modelos", + "configured": "Configurado", + "fetchingModels": "Obteniendo modelos...", + "clickToLoadModels": "Haga clic en ↺ para cargar modelos", + "searchModel": "Buscar modelo...", + "noModels": "Sin modelos. Haga clic en ↺", + "modelsAvailable": "{count} modelo(s) disponible(s)", + "enterUrlToLoad": "Ingrese la URL y haga clic en ↺", + "currentProvider": "(Actual: {provider})", + "pageTitle": "Gestión de IA", + "pageDescription": "Monitorear y configurar funciones de IA", + "configure": "Configurar", + "features": "Funciones de IA", + "providerStatus": "Estado de proveedores de IA", + "recentRequests": "Solicitudes de IA recientes", + "comingSoon": "Próximamente", + "activeFeatures": "Funciones activas", + "successRate": "Tasa de éxito", + "avgResponseTime": "Tiempo de respuesta promedio", + "configuredProviders": "Proveedores configurados", + "settingUpdated": "Ajuste actualizado", + "updateFailedShort": "Error al actualizar", + "titleSuggestions": "Sugerencias de título", + "titleSuggestionsDesc": "Sugiere títulos para notas después de 50+ palabras", + "aiAssistant": "Asistente de IA", + "aiAssistantDesc": "Habilitar chat IA y herramientas de mejora", + "memoryEchoFeature": "Noté algo...", + "memoryEchoFeatureDesc": "Análisis diario de conexiones entre tus notas", + "languageDetection": "Detección de idioma", + "languageDetectionDesc": "Detecta automáticamente el idioma de cada nota", + "autoLabeling": "Etiquetado automático", + "autoLabelingDesc": "Sugiere y aplica etiquetas automáticamente" + }, + "resend": { + "title": "Resend (Recomendado)", + "description": "Envíe correos electrónicos a través de la API de Resend. Tiene prioridad sobre SMTP si está configurado.", + "apiKey": "Clave API de Resend", + "apiKeyHint": "Obtenga su clave API en resend.com. Se usa para notificaciones de agentes y restablecimiento de contraseñas.", + "saveSettings": "Guardar configuración de Resend", + "updateSuccess": "Configuración de Resend actualizada", + "updateFailed": "Error al actualizar la configuración de Resend", + "configured": "Resend está configurado y activo" + }, + "email": { + "title": "Configuración de correo electrónico", + "description": "Configure el envío de correos para notificaciones de agentes y restablecimiento de contraseñas.", + "provider": "Proveedor de correo", + "saveSettings": "Guardar configuración de correo", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "smtp": { + "title": "Configuración SMTP", + "description": "Configurar el servidor de correo para restablecimiento de contraseñas.", + "host": "Host", + "port": "Puerto", + "username": "Usuario", + "password": "Contraseña", + "fromEmail": "Correo remitente", + "forceSSL": "Forzar SSL/TLS (generalmente para puerto 465)", + "ignoreCertErrors": "Ignorar errores de certificado (Solo autoalojado/Desarrollo)", + "saveSettings": "Guardar configuración SMTP", + "sending": "Enviando...", + "testEmail": "Correo de prueba", + "updateSuccess": "Configuración SMTP actualizada", + "updateFailed": "Error al actualizar la configuración SMTP", + "testSuccess": "¡Correo de prueba enviado correctamente!", + "testFailed": "Error: {error}" + }, + "users": { + "createUser": "Crear usuario", + "addUser": "Agregar usuario", + "createUserDescription": "Agregar un nuevo usuario al sistema.", + "name": "Nombre", + "email": "Correo electrónico", + "password": "Contraseña", + "role": "Rol", + "createSuccess": "Usuario creado correctamente", + "createFailed": "Error al crear usuario", + "deleteSuccess": "Usuario eliminado", + "deleteFailed": "Error al eliminar", + "roleUpdateSuccess": "Rol de usuario actualizado a {role}", + "roleUpdateFailed": "Error al actualizar rol", + "demote": "Degradar", + "promote": "Promover", + "confirmDelete": "¿Estás seguro de que quieres eliminar este usuario?", + "table": { + "name": "Nombre", + "email": "Correo electrónico", + "role": "Rol", + "createdAt": "Creado", + "actions": "Acciones" + }, + "roles": { + "user": "Usuario", + "admin": "Administrador" + }, + "title": "Usuarios", + "description": "Gestionar usuarios y permisos" + }, + "aiTest": { + "title": "Pruebas de proveedor de IA", + "description": "Prueba tus proveedores de IA para generación de etiquetas y embeddings de búsqueda semántica", + "tagsTestTitle": "Prueba de generación de etiquetas", + "tagsTestDescription": "Probar el proveedor de IA responsable de las sugerencias automáticas de etiquetas", + "embeddingsTestTitle": "Prueba de embeddings", + "embeddingsTestDescription": "Probar el proveedor de IA responsable de los embeddings de búsqueda semántica", + "howItWorksTitle": "Cómo funcionan las pruebas", + "tagsGenerationTest": "🏷️ Prueba de generación de etiquetas:", + "tagsStep1": "Envía una nota de ejemplo al proveedor de IA", + "tagsStep2": "Solicita 3-5 etiquetas relevantes basadas en el contenido", + "tagsStep3": "Muestra las etiquetas generadas con puntuaciones de confianza", + "tagsStep4": "Mide el tiempo de respuesta", + "embeddingsTestLabel": "🔍 Prueba de embeddings:", + "embeddingsStep1": "Envía un texto de ejemplo al proveedor de embeddings", + "embeddingsStep2": "Genera una representación vectorial (lista de números)", + "embeddingsStep3": "Muestra las dimensiones del embedding y valores de ejemplo", + "embeddingsStep4": "Verifica que el vector sea válido y esté correctamente formateado", + "tipContent": "¡Puedes usar diferentes proveedores para etiquetas y embeddings! Por ejemplo, usa Ollama (gratis) para etiquetas y OpenAI (mejor calidad) para embeddings para optimizar costos y rendimiento.", + "provider": "Proveedor:", + "model": "Modelo:", + "testing": "Probando...", + "runTest": "Ejecutar prueba", + "testPassed": "Prueba superada", + "testFailed": "Prueba fallida", + "testSuccessToast": "¡Prueba {type} exitosa!", + "testFailedToast": "Prueba {type} fallida", + "testingType": "Probando {type}...", + "technicalDetails": "Detalles técnicos", + "responseTime": "Tiempo de respuesta: {time}ms", + "generatedTags": "Etiquetas generadas:", + "embeddingDimensions": "Dimensiones del embedding:", + "vectorDimensions": "dimensiones del vector", + "first5Values": "Primeros 5 valores:", + "error": "Error:", + "testError": "Error de prueba: {error}", + "tipTitle": "Consejo:", + "tipDescription": "Usa el panel de pruebas de IA para diagnosticar problemas de configuración antes de probar." + }, + "sidebar": { + "dashboard": "Panel", + "users": "Usuarios", + "aiManagement": "Gestión de IA", + "chat": "Chat IA", + "lab": "El Laboratorio (Ideas)", + "agents": "Agentes", + "settings": "Configuración" + }, + "metrics": { + "vsLastPeriod": "vs período anterior" + }, + "tools": { + "title": "Herramientas del Agente", + "description": "Configura herramientas externas para el uso de herramientas del agente: búsqueda web, scraping web y acceso a API.", + "searchProvider": "Proveedor de Búsqueda Web", + "searxng": "SearXNG (Autoalojado)", + "brave": "Brave Search API", + "both": "Ambos (SearXNG primario, Brave alternativo)", + "searxngUrl": "URL de SearXNG", + "braveKey": "Clave de Brave Search API", + "jinaKey": "Clave de Jina Reader API", + "jinaKeyOptional": "Opcional — funciona sin ella pero con límites de tasa", + "jinaKeyDescription": "Usada para scraping web. Funciona sin clave pero con límites de tasa.", + "saveSettings": "Guardar Configuración de Herramientas", + "updateSuccess": "Configuración de herramientas actualizada exitosamente", + "updateFailed": "Error al actualizar la configuración de herramientas", + "testing": "Probando...", + "testSearch": "Probar búsqueda web" + }, + "settingsDescription": "Configurar ajustes de la aplicación", + "dashboard": { + "title": "Panel de control", + "description": "Resumen de las métricas de la aplicación", + "recentActivity": "Actividad reciente", + "recentActivityPlaceholder": "La actividad reciente se mostrará aquí." + }, + "error": { + "title": "Ocurrió un error en la administración", + "description": "Error al renderizar. Puede reintentar.", + "retry": "Reintentar" + } }, - "notes": { - "add": "Agregar", - "addCollaborators": "Agregar colaboradores", - "addImage": "Agregar imagen", - "addItem": "Agregar elemento", - "addLink": "Agregar enlace", - "addListItem": "+ Elemento de lista", - "addNote": "Agregar nota", - "adding": "Agregando...", - "aiAssistant": "Asistente IA", - "archive": "Archivar", - "backgroundOptions": "Opciones de fondo", - "changeColor": "Cambiar color", - "changeSize": "Cambiar tamaño", - "clarifyFailed": "Error al aclarar", - "close": "Cerrar", - "color": "Color", - "confirmDelete": "¿Estás seguro de que quieres eliminar esta nota?", - "confirmLeaveShare": "¿Estás seguro de que quieres abandonar esta nota compartida?", - "contentOrMediaRequired": "Por favor ingresa algún contenido o agrega un enlace/imagen", - "copy": "Copiar", - "copyFailed": "Error al copiar la nota", - "copySuccess": "¡Nota copiada exitosamente!", - "createFirstNote": "Crea tu primera nota", - "date": "Fecha", - "delete": "Eliminar", - "dragToReorder": "Arrastra para reordenar", - "duplicate": "Duplicar", - "edit": "Editar nota", - "emptyState": "Sin notas", - "fileTooLarge": "Archivo demasiado grande: {fileName}. El tamaño máximo es {maxSize}.", - "improveFailed": "Error al mejorar", - "inNotebook": "En cuaderno", - "invalidDateTime": "Fecha u hora inválida", - "invalidFileType": "Tipo de archivo inválido: {fileName}. Solo se permiten JPEG, PNG, GIF y WebP.", - "itemOrMediaRequired": "Por favor agrega al menos un elemento o medio", - "large": "Grande", - "leaveShare": "Abandonar", - "linkAddFailed": "Error al agregar el enlace", - "linkAdded": "Enlace agregado", - "linkMetadataFailed": "No se pudieron obtener los metadatos del enlace", - "listItem": "Elemento de lista", - "makeCopy": "Hacer una copia", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown DESACTIVADO", - "markdownOn": "Markdown ACTIVADO", - "markdownPlaceholder": "Toma una nota... (Markdown compatible)", - "medium": "Mediano", - "more": "Más", - "moreOptions": "Más opciones", - "moveFailed": "Error al mover", - "newChecklist": "Nueva lista de verificación", - "newNote": "Nueva nota", - "noContent": "Sin contenido", - "noNotes": "Sin notas", - "noNotesFound": "No se encontraron notas", - "noteCreateFailed": "Error al crear la nota", - "noteCreated": "Nota creada exitosamente", - "others": "Otros", - "pin": "Fijar", - "pinned": "Fijadas", - "pinnedNotes": "Notas fijadas", - "placeholder": "Toma una nota...", - "preview": "Vista previa", - "readOnly": "Solo lectura", - "recent": "Recientes", - "redo": "Rehacer (Ctrl+Y)", - "redoShortcut": "Rehacer (Ctrl+Y)", - "remindMe": "Recordarme", - "reminderDateTimeRequired": "Por favor ingresa fecha y hora", - "reminderMustBeFuture": "El recordatorio debe ser en el futuro", - "reminderPastError": "El recordatorio debe ser en el futuro", - "reminderRemoved": "Recordatorio eliminado", - "reminderSet": "Recordatorio configurado para {datetime}", - "remove": "Remove", - "saving": "Guardando...", - "setReminder": "Configurar recordatorio", - "setReminderButton": "Configurar recordatorio", - "share": "Compartir", - "shareWithCollaborators": "Compartir con colaboradores", - "sharedBy": "Compartido por", - "sharedReadOnly": "Esta nota está compartida contigo en modo solo lectura", - "shortenFailed": "Error al acortar", - "showCollaborators": "Mostrar colaboradores", - "size": "Tamaño", - "small": "Pequeño", - "takeNote": "Toma una nota...", - "takeNoteMarkdown": "Toma una nota... (Markdown compatible)", - "time": "Hora", - "title": "Notas", - "titlePlaceholder": "Título", - "transformFailed": "Error al transformar", - "unarchive": "Desarchivar", - "undo": "Deshacer (Ctrl+Z)", - "undoShortcut": "Deshacer (Ctrl+Z)", - "unpin": "Desfijar", - "unpinned": "Desfijadas", - "untitled": "Sin título", - "uploadFailed": "Error al cargar {filename}", - "view": "Ver nota", - "emptyStateTabs": "Sin notas en esta vista. Usa \"Nueva nota\" en la barra lateral (sugerencias de título IA en el compositor).", - "viewCards": "Vista tarjetas", - "viewCardsTooltip": "Cuadrícula de tarjetas con reorganización por arrastrar y soltar", - "viewTabs": "Vista lista", - "viewTabsTooltip": "Pestañas arriba, nota abajo — arrastra pestañas para reordenar", - "viewModeGroup": "Modo de visualización de notas", - "reorderTabs": "Reordenar pestaña", - "modified": "Modificada", - "created": "Creada", - "loading": "Cargando...", - "exportPDF": "Exportar PDF", - "savedStatus": "Guardado", - "dirtyStatus": "Modificado", - "completedLabel": "Completados", - "notes.emptyNotebook": "Cuaderno vacío", - "notes.emptyNotebookDesc": "Este cuaderno no tiene notas. Haz clic en + para crear una.", - "notes.noNoteSelected": "Ninguna nota seleccionada", - "notes.selectOrCreateNote": "Selecciona una nota de la lista o crea una nueva.", - "commitVersion": "Guardar versión", - "versionSaved": "Versión guardada", - "deleteVersion": "Eliminar esta versión", - "versionDeleted": "Versión eliminada", - "deleteVersionConfirm": "¿Eliminar esta versión permanentemente?", - "historyMode": "Modo de historial", - "historyModeManual": "Manual (botón commit)", - "historyModeAuto": "Automático (inteligente)", - "historyModeManualDesc": "Crear snapshots manualmente con el botón commit", - "historyModeAutoDesc": "Snapshots automáticos con detección inteligente", - "history": "Historial", - "historyRestored": "Versión restaurada", - "historyEnabled": "Historial activado", - "historyDisabledDesc": "El historial está desactivado para tu cuenta.", - "enableHistory": "Activar historial", - "historyEmpty": "No hay versiones disponibles", - "historySelectVersion": "Selecciona una versión para previsualizar su contenido", - "sortBy": "Ordenar por", - "sortDateDesc": "Fecha (reciente)", - "sortDateAsc": "Fecha (antigua)", - "sortTitleAsc": "Título A → Z", - "sortTitleDesc": "Título Z → A" - }, - "pagination": { - "next": "→", - "pageInfo": "Página {currentPage} / {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "Informal", - "expand": "Expandir", - "formal": "Formal", - "improve": "Mejorar", - "shorten": "Acortar", - "title": "Mejora de texto" - }, - "profile": { - "accountSettings": "Configuración de cuenta", - "autoDetect": "Detección automática", - "changePassword": "Cambiar contraseña", - "changePasswordDescription": "Actualiza tu contraseña. Necesitarás tu contraseña actual.", - "confirmPassword": "Confirmar contraseña", - "currentPassword": "Contraseña actual", - "description": "Actualiza tu información personal", - "displayName": "Nombre para mostrar", - "displaySettings": "Configuración de visualización", - "displaySettingsDescription": "Personaliza la apariencia y el tamaño de fuente.", - "email": "Correo electrónico", - "fontSize": "Tamaño de fuente", - "fontSizeDescription": "Ajusta el tamaño de fuente para mejor legibilidad. Esto se aplica a todo el texto de la interfaz.", - "fontSizeExtraLarge": "Extra grande", - "fontSizeLarge": "Grande", - "fontSizeMedium": "Mediano", - "fontSizeSmall": "Pequeño", - "fontSizeUpdateFailed": "Error al actualizar el tamaño de fuente", - "fontSizeUpdateSuccess": "Tamaño de fuente actualizado exitosamente", - "languageDescription": "Este idioma se usará para las funciones impulsadas por IA, análisis de contenido y texto de la interfaz.", - "languagePreferences": "Preferencias de idioma", - "languagePreferencesDescription": "Elige tu idioma preferido para las funciones de IA y la interfaz.", - "languageUpdateFailed": "Error al actualizar el idioma", - "languageUpdateSuccess": "Idioma actualizado exitosamente", - "manageAISettings": "Administrar configuración IA", - "newPassword": "Nueva contraseña", - "passwordChangeFailed": "Error al cambiar la contraseña", - "passwordChangeSuccess": "Contraseña cambiada exitosamente", - "passwordError": "Error al actualizar la contraseña", - "passwordUpdated": "Contraseña actualizada", - "preferredLanguage": "Idioma preferido", - "profileError": "Error al actualizar el perfil", - "profileUpdated": "Perfil actualizado", - "recentNotesUpdateFailed": "Failed to update recent notes setting", - "recentNotesUpdateSuccess": "Recent notes setting updated successfully", - "selectFontSize": "Seleccionar tamaño de fuente", - "selectLanguage": "Selecciona un idioma", - "showRecentNotes": "Show Recent Notes Section", - "showRecentNotesDescription": "Display recent notes (last 7 days) on the main page", - "title": "Perfil", - "updateFailed": "Error al actualizar el perfil", - "updatePassword": "Actualizar contraseña", - "updateSuccess": "Perfil actualizado" - }, - "reminder": { - "cancel": "Cancelar", - "reminderDate": "Fecha del recordatorio", - "reminderTime": "Hora del recordatorio", - "removeReminder": "Eliminar recordatorio", - "save": "Configurar recordatorio", - "setReminder": "Configurar recordatorio", - "title": "Recordatorio" - }, - "resetPassword": { - "confirmNewPassword": "Confirmar nueva contraseña", - "description": "Ingresa tu nueva contraseña abajo.", - "invalidLinkDescription": "Este enlace de restablecimiento de contraseña es inválido o ha expirado.", - "invalidLinkTitle": "Enlace inválido", - "loading": "Cargando...", - "newPassword": "Nueva contraseña", - "passwordMismatch": "Las contraseñas no coinciden", - "requestNewLink": "Solicitar nuevo enlace", - "resetPassword": "Restablecer contraseña", - "resetting": "Restableciendo...", - "success": "Contraseña restablecida correctamente. Ahora puedes iniciar sesión.", - "title": "Restablecer contraseña" - }, - "search": { - "exactMatch": "Coincidencia exacta", - "noResults": "No se encontraron resultados", - "placeholder": "Buscar", - "related": "Relacionado", - "resultsFound": "{count} notas encontradas", - "searchPlaceholder": "Busca en tus notas...", - "searching": "Buscando...", - "semanticInProgress": "Búsqueda semántica en curso...", - "semanticTooltip": "Búsqueda semántica con IA", - "disabledAdmin": "Búsqueda deshabilitada en modo admin" - }, - "semanticSearch": { - "exactMatch": "Coincidencia exacta", - "related": "Relacionado", - "searching": "Buscando..." - }, - "settings": { - "about": "Acerca de", - "account": "Cuenta", - "appearance": "Apariencia", - "cleanTags": "Clean Orphan Tags", - "cleanTagsDescription": "Remove tags that are no longer used by any notes", - "description": "Administra tu configuración y preferencias", - "language": "Idioma", - "languageAuto": "Automático", - "maintenance": "Maintenance", - "maintenanceDescription": "Tools to maintain your database health", - "notifications": "Notificaciones", - "privacy": "Privacidad", - "profile": "Perfil", - "searchNoResults": "Sin resultados de búsqueda", - "security": "Seguridad", - "selectLanguage": "Seleccionar idioma", - "semanticIndexing": "Semantic Indexing", - "semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search", - "settingsError": "Error al guardar la configuración", - "settingsSaved": "Configuración guardada", - "theme": "Tema", - "themeDark": "Oscuro", - "themeLight": "Claro", - "themeSystem": "Sistema", - "title": "Configuración", + "about": { + "title": "Acerca de", + "description": "Información sobre la aplicación", + "appName": "Memento", + "appDescription": "Una poderosa aplicación de notas con funciones impulsadas por IA", "version": "Versión", - "cleanupDone": "{created} etiqueta(s) sincronizada(s), {deleted} huérfana(s) eliminada(s)", - "cleanupNothing": "Ninguna acción necesaria — las etiquetas ya coinciden con tus notas", - "cleanupWithErrors": "algunas operaciones fallaron", - "cleanupError": "No se pudieron limpiar las etiquetas", - "indexingComplete": "Indexación completa: {count} nota(s) procesada(s)", - "indexingError": "Error durante la indexación", - "emailNotifications": "Notificaciones por correo", - "emailNotificationsDesc": "Recibir notificaciones importantes por correo", - "desktopNotifications": "Notificaciones de escritorio", - "desktopNotificationsDesc": "Recibir notificaciones en el navegador", - "notificationsDesc": "Gestiona tus preferencias de notificaciones" - }, - "sidebar": { - "archive": "Archive", - "editLabels": "Edit labels", - "labels": "Labels", - "notes": "Notes", - "reminders": "Reminders", - "trash": "Trash", - "newNoteTabs": "Nueva nota", - "newNoteTabsHint": "Crear nota en este cuaderno", - "noLabelsInNotebook": "Sin etiquetas en este cuaderno" + "buildDate": "Fecha de compilación", + "platform": "Plataforma", + "platformWeb": "Web", + "features": { + "title": "Funciones", + "description": "Capacidades impulsadas por IA", + "titleSuggestions": "Sugerencias de título con IA", + "semanticSearch": "Búsqueda semántica con embeddings", + "paragraphReformulation": "Reformulación de párrafos", + "memoryEcho": "Insights diarios de Memory Echo", + "notebookOrganization": "Organización por cuadernos", + "dragDrop": "Gestión de notas con arrastrar y soltar", + "labelSystem": "Sistema de etiquetas", + "multipleProviders": "Múltiples proveedores de IA (OpenAI, Ollama)" + }, + "technology": { + "title": "Stack tecnológico", + "description": "Construido con tecnologías modernas", + "frontend": "Frontend", + "backend": "Backend", + "database": "Base de datos", + "authentication": "Autenticación", + "ai": "IA", + "ui": "UI", + "testing": "Pruebas" + }, + "support": { + "title": "Soporte", + "description": "Obtén ayuda y comentarios", + "documentation": "Documentación", + "reportIssues": "Reportar problemas", + "feedback": "Comentarios" + } }, "support": { - "aiApiCosts": "Costos de API de IA:", - "buyMeACoffee": "Cómprame un café", - "contributeCode": "Contribuir código", - "description": "Memento es 100% gratuito y de código abierto. Tu apoyo ayuda a mantenerlo así.", - "directImpact": "Impacto directo", - "domainSSL": "Dominio y SSL:", - "donateOnKofi": "Donar en Ko-fi", - "donationDescription": "Haz una donación única o conviértete en suscriptor mensual.", - "githubDescription": "Apoyo recurrente • Reconocimiento público • Enfocado en desarrolladores", - "hostingServers": "Alojamiento y servidores:", - "howSupportHelps": "Cómo ayuda tu apoyo", - "kofiDescription": "Sin comisiones de plataforma • Pagos instantáneos • Seguro", - "otherWaysTitle": "Otras formas de apoyar", - "reportBug": "Reportar un error", - "shareTwitter": "Compartir en Twitter", - "sponsorDescription": "Conviértete en patrocinador mensual y obtén reconocimiento.", - "sponsorOnGithub": "Patrocinar en GitHub", - "sponsorPerks": "Beneficios del patrocinio", - "starGithub": "Estrella en GitHub", "title": "Apoyar el desarrollo de Memento", - "totalExpenses": "Gastos totales:", + "description": "Memento es 100% gratuito y de código abierto. Tu apoyo ayuda a mantenerlo así.", + "buyMeACoffee": "Cómprame un café", + "donationDescription": "Haz una donación única o conviértete en suscriptor mensual.", + "donateOnKofi": "Donar en Ko-fi", + "kofiDescription": "Sin comisiones de plataforma • Pagos instantáneos • Seguro", + "sponsorOnGithub": "Patrocinar en GitHub", + "sponsorDescription": "Conviértete en patrocinador mensual y obtén reconocimiento.", + "githubDescription": "Apoyo recurrente • Reconocimiento público • Enfocado en desarrolladores", + "howSupportHelps": "Cómo ayuda tu apoyo", + "directImpact": "Impacto directo", + "sponsorPerks": "Beneficios del patrocinio", "transparency": "Transparencia", - "transparencyDescription": "Creo en la transparencia total. Así es como se usan las donaciones:" + "transparencyDescription": "Creo en la transparencia total. Así es como se usan las donaciones:", + "hostingServers": "Alojamiento y servidores:", + "domainSSL": "Dominio y SSL:", + "aiApiCosts": "Costos de API de IA:", + "totalExpenses": "Gastos totales:", + "otherWaysTitle": "Otras formas de apoyar", + "starGithub": "Estrella en GitHub", + "reportBug": "Reportar un error", + "contributeCode": "Contribuir código", + "shareTwitter": "Compartir en Twitter" + }, + "demoMode": { + "title": "Modo demostración", + "activated": "¡Modo demostración activado! Memory Echo funcionará instantáneamente.", + "deactivated": "Modo demostración desactivado. Parámetros normales restaurados.", + "toggleFailed": "Error al alternar modo demostración", + "description": "Acelera Memory Echo para pruebas. Las conexiones aparecen instantáneamente.", + "parametersActive": "Parámetros de demostración activos:", + "similarityThreshold": "Umbral de similitud del 50% (normalmente 75%)", + "delayBetweenNotes": "Retraso de 0 días entre notas (normalmente 7 días)", + "unlimitedInsights": "Insights ilimitados (sin límites de frecuencia)", + "createNotesTip": "¡Crea 2+ notas similares y ve Memory Echo en acción!" + }, + "resetPassword": { + "title": "Restablecer contraseña", + "description": "Ingresa tu nueva contraseña abajo.", + "invalidLinkTitle": "Enlace inválido", + "invalidLinkDescription": "Este enlace de restablecimiento de contraseña es inválido o ha expirado.", + "requestNewLink": "Solicitar nuevo enlace", + "newPassword": "Nueva contraseña", + "confirmNewPassword": "Confirmar nueva contraseña", + "resetting": "Restableciendo...", + "resetPassword": "Restablecer contraseña", + "passwordMismatch": "Las contraseñas no coinciden", + "success": "Contraseña restablecida correctamente. Ahora puedes iniciar sesión.", + "loading": "Cargando..." + }, + "dataManagement": { + "title": "Data Management", + "toolsDescription": "Tools to maintain your database health", + "exporting": "Exportando", + "importing": "Importando", + "deleting": "Eliminando", + "dangerZone": "Zona de peligro", + "dangerZoneDescription": "Estas acciones son irreversibles", + "indexingComplete": "Indexación completada", + "indexingError": "Error de indexación", + "cleanupComplete": "Limpieza completada", + "cleanupError": "Error de limpieza", + "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": "Apariencia", + "description": "Personaliza el aspecto de la aplicación", + "notesViewDescription": "Elige cómo se muestran las notas en el inicio y en los cuadernos.", + "notesViewLabel": "Vista de notas", + "notesViewTabs": "Pestañas (estilo OneNote)", + "notesViewMasonry": "Tarjetas (cuadrícula)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "Configuración general", + "description": "Configuración general de la aplicación" + }, + "toast": { + "saved": "Configuración guardada", + "saveFailed": "Error al guardar configuración", + "operationSuccess": "Operación exitosa", + "operationFailed": "Operación fallida", + "openingConnection": "Abriendo conexión...", + "openConnectionFailed": "Error al abrir conexión", + "thanksFeedback": "¡Gracias por tus comentarios!", + "thanksFeedbackImproving": "¡Gracias! Usaremos esto para mejorar.", + "feedbackFailed": "Error al enviar comentarios", + "notesFusionSuccess": "¡Notas fusionadas correctamente!" }, "testPages": { "titleSuggestions": { - "analyzing": "Analizando...", - "contentLabel": "Contenido (necesitas más de 50 palabras):", - "error": "Error:", - "idle": "Inactivo", - "noSuggestions": "Sin sugerencias aún. Escribe más de 50 palabras y espera 2 segundos.", - "placeholder": "Escribe al menos 50 palabras aquí...", - "status": "Estado:", - "suggestions": "Sugerencias ({count}):", "title": "Probar sugerencias de título", - "wordCount": "Contador de palabras:" + "contentLabel": "Contenido (necesitas más de 50 palabras):", + "placeholder": "Escribe al menos 50 palabras aquí...", + "wordCount": "Contador de palabras:", + "status": "Estado:", + "analyzing": "Analizando...", + "idle": "Inactivo", + "error": "Error:", + "suggestions": "Sugerencias ({count}):", + "noSuggestions": "Sin sugerencias aún. Escribe más de 50 palabras y espera 2 segundos." } }, - "time": { - "daysAgo": "Hace {count} días", - "hoursAgo": "Hace {count} horas", - "justNow": "Justo ahora", - "minutesAgo": "Hace {count} minutos", - "today": "Hoy", - "tomorrow": "Mañana", - "yesterday": "Ayer" - }, - "titleSuggestions": { - "available": "Sugerencias de título", - "dismiss": "Descartar", - "generating": "Generando...", - "selectTitle": "Selecciona un título", - "title": "Sugerencias de IA" - }, - "toast": { - "feedbackFailed": "Error al enviar comentarios", - "notesFusionSuccess": "¡Notas fusionadas correctamente!", - "openConnectionFailed": "Error al abrir conexión", - "openingConnection": "Abriendo conexión...", - "operationFailed": "Operación fallida", - "operationSuccess": "Operación exitosa", - "saveFailed": "Error al guardar configuración", - "saved": "Configuración guardada", - "thanksFeedback": "¡Gracias por tus comentarios!", - "thanksFeedbackImproving": "¡Gracias! Usaremos esto para mejorar." - }, "trash": { "title": "Papelera", "empty": "La papelera está vacía", @@ -1228,11 +1212,83 @@ "permanentDelete": "Eliminar permanentemente", "permanentDeleteConfirm": "Esta nota se eliminará permanentemente. Esta acción no se puede deshacer." }, + "footer": { + "privacy": "Privacidad", + "terms": "Términos", + "openSource": "Clon de código abierto" + }, + "connection": { + "similarityInfo": "Estas notas están conectadas por {similarity}% de similitud", + "clickToView": "Haz clic para ver la nota", + "isHelpful": "¿Es útil esta conexión?", + "helpful": "Útil", + "notHelpful": "No útil", + "memoryEchoDiscovery": "Descubrimiento de Memory Echo" + }, + "diagnostics": { + "title": "Diagnósticos", + "description": "Check your AI provider connection status", + "configuredProvider": "Proveedor configurado", + "apiStatus": "Estado de la API", + "operational": "Operational", + "errorStatus": "Error", + "checking": "Checking...", + "testDetails": "Detalles de la prueba:", + "troubleshootingTitle": "Consejos de solución de problemas:", + "tip1": "Asegúrate de que Ollama esté ejecutándose (ollama serve)", + "tip2": "Verifica que el modelo esté instalado (ollama pull llama3)", + "tip3": "Verifica tu clave API de OpenAI", + "tip4": "Revisa la conectividad de red" + }, + "batch": { + "organizeWithAI": "Organizar con IA", + "organize": "Organizar" + }, + "common": { + "unknown": "Desconocido", + "notAvailable": "No disponible", + "loading": "Cargando", + "error": "Error", + "success": "Éxito", + "confirm": "Confirmar", + "cancel": "Cancelar", + "close": "Cerrar", + "save": "Guardar", + "delete": "Eliminar", + "edit": "Editar", + "add": "Agregar", + "remove": "Eliminar", + "search": "Buscar", + "noResults": "Sin resultados", + "required": "Requerido", + "optional": "Opcional" + }, + "time": { + "justNow": "Justo ahora", + "minutesAgo": "Hace {count} minutos", + "hoursAgo": "Hace {count} horas", + "daysAgo": "Hace {count} días", + "yesterday": "Ayer", + "today": "Hoy", + "tomorrow": "Mañana" + }, + "favorites": { + "title": "Favoritos", + "toggleSection": "Alternar sección", + "noFavorites": "Sin favoritos", + "pinToFavorite": "Fijar como favorito" + }, + "notebooks": { + "create": "Crear", + "allNotebooks": "Todos los cuadernos", + "noNotebooks": "Sin cuadernos", + "createFirst": "Crear el primero" + }, "ui": { "close": "Cerrar", - "collapse": "Colapsar", + "open": "Abrir", "expand": "Expandir", - "open": "Abrir" + "collapse": "Colapsar" }, "mcpSettings": { "title": "Configuración MCP", @@ -1299,6 +1355,10 @@ "subtitle": "Automatiza tus tareas de monitoreo e investigación", "newAgent": "Nuevo agente", "myAgents": "Mis agentes", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "Sin agentes", "noAgentsDescription": "Crea tu primer agente o instala una plantilla abajo para automatizar tus tareas de monitoreo.", "types": { @@ -1341,7 +1401,9 @@ "researchTopic": "Tema de investigación", "researchTopicPlaceholder": "ej: Últimos avances en inteligencia artificial", "notifyEmail": "Notificación por correo", - "notifyEmailHint": "Recibe un correo con los resultados del agente después de cada ejecución" + "notifyEmailHint": "Recibe un correo con los resultados del agente después de cada ejecución", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "Manual", @@ -1350,6 +1412,22 @@ "weekly": "Semanal", "monthly": "Mensual" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "Exitoso", "failure": "Fallido", @@ -1378,7 +1456,9 @@ "toggleError": "Error al alternar el agente", "installSuccess": "\"{name}\" instalado", "installError": "Error durante la instalación", - "saveError": "Error al guardar" + "saveError": "Error al guardar", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "Plantillas", @@ -1491,7 +1571,8 @@ "welcome": "Estoy aquí para ayudarte a sintetizar tus notas, generar nuevas ideas o discutir tus cuadernos.", "searching": "Buscando...", "noNotesFoundForContext": "No se encontraron notas relevantes para esta pregunta. Responde con tu conocimiento general.", - "webSearch": "Búsqueda web" + "webSearch": "Búsqueda web", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "El Laboratorio", @@ -1508,30 +1589,8 @@ "createFailed": "Error al crear", "deleteSpace": "Eliminar espacio", "deleted": "Espacio eliminado", - "deleteError": "Error al eliminar" - }, - "notification": { - "shared": "compartió \"{title}\"", - "untitled": "Sin título", - "notifications": "Notificaciones", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "Uso compartido rechazado", - "noNotifications": "No new notifications", - "removed": "Nota eliminada de la lista" - }, - "reminders": { - "title": "Recordatorios", - "empty": "Sin recordatorios", - "emptyDescription": "Agrega un recordatorio a una nota para encontrarlo aquí.", - "upcoming": "Próximos", - "overdue": "Vencidos", - "done": "Completados", - "markDone": "Marcar como completado", - "markUndone": "Marcar como no completado", - "todayAt": "Hoy a las {time}", - "tomorrowAt": "Mañana a las {time}" + "deleteError": "Error al eliminar", + "rename": "Rename" }, "lab": { "initializing": "Inicializando espacio", diff --git a/memento-note/locales/fa.json b/memento-note/locales/fa.json index 6382984..650a225 100644 --- a/memento-note/locales/fa.json +++ b/memento-note/locales/fa.json @@ -1,77 +1,835 @@ { - "about": { - "appDescription": "یک برنامه یادداشت قدرتمند با قابلیت‌های هوش مصنوعی", - "appName": "Memento", - "buildDate": "تاریخ ساخت", - "description": "اطلاعات درباره برنامه", - "features": { - "description": "قابلیت‌های مبتنی بر هوش مصنوعی", - "dragDrop": "مدیریت یادداشت با کشیدن و رها کردن", - "labelSystem": "سیستم برچسب", - "memoryEcho": "بینش‌های روزانه Memory Echo", - "multipleProviders": "چندین ارائه‌دهنده هوش مصنوعی (OpenAI، Ollama)", - "notebookOrganization": "سازماندهی دفترچه", - "paragraphReformulation": "بازنویسی پاراگراف", - "semanticSearch": "جستجوی معنایی با تعبیه‌ها", - "title": "ویژگی‌ها", - "titleSuggestions": "پیشنهادات عنوان مبتنی بر هوش مصنوعی" + "auth": { + "signIn": "ورود", + "signUp": "ثبت‌نام", + "email": "ایمیل", + "password": "رمز عبور", + "name": "نام", + "emailPlaceholder": "آدرس ایمیل خود را وارد کنید", + "passwordPlaceholder": "رمز عبور خود را وارد کنید", + "namePlaceholder": "نام خود را وارد کنید", + "passwordMinChars": "رمز عبور خود را وارد کنید (حداقل ۶ کاراکتر)", + "resetPassword": "بازنشانی رمز عبور", + "resetPasswordInstructions": "برای بازنشانی رمز عبور ایمیل خود را وارد کنید", + "forgotPassword": "رمز عبور را فراموش کرده‌اید؟", + "noAccount": "حساب کاربری ندارید؟", + "hasAccount": "قبلاً ثبت‌نام کرده‌اید؟", + "signInToAccount": "به حساب کاربری خود وارد شوید", + "createAccount": "ایجاد حساب کاربری", + "rememberMe": "مرا به خاطر بسپار", + "orContinueWith": "یا ادامه با", + "checkYourEmail": "ایمیل خود را بررسی کنید", + "resetEmailSent": "اگر آدرس ایمیل شما در سیستم ما وجود داشته باشد، لینک بازنشانی رمز عبور ارسال شد.", + "returnToLogin": "بازگشت به ورود", + "forgotPasswordTitle": "فراموشی رمز عبور", + "forgotPasswordDescription": "آدرس ایمیل خود را وارد کنید تا لینک بازنشانی رمز عبور برای شما ارسال شود.", + "sending": "در حال ارسال...", + "sendResetLink": "ارسال لینک بازنشانی", + "backToLogin": "بازگشت به ورود", + "signOut": "خروج از حساب", + "confirmPassword": "تکرار رمز عبور", + "confirmPasswordPlaceholder": "رمز عبور را دوباره وارد کنید" + }, + "sidebar": { + "notes": "یادداشت‌ها", + "reminders": "یادآورها", + "labels": "برچسب‌ها", + "editLabels": "ویرایش برچسب‌ها", + "newNoteTabs": "یادداشت جدید", + "newNoteTabsHint": "ایجاد یادداشت جدید در این دفترچه", + "noLabelsInNotebook": "هنوز برچسبی در این دفترچه وجود ندارد", + "archive": "بایگانی", + "trash": "زباله‌دان", + "clearFilter": "Remove filter" + }, + "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": "ایجاد یادداشت شکست خورد", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "aiAssistant": "دستیار هوش مصنوعی", + "changeSize": "تغییر اندازه", + "backgroundOptions": "گزینه‌های پس‌زمینه", + "moreOptions": "گزینه‌های بیشتر", + "remindMe": "یادآوری به من", + "markdownMode": "مارک‌داون", + "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": "بازگردانی", + "redo": "انجام مجدد", + "pinnedNotes": "یادداشت‌های سنجاق شده", + "recent": "اخیر", + "addNote": "افزودن یادداشت", + "remove": "حذف", + "dragToReorder": "بکشید تا مرتب کنید", + "more": "بیشتر", + "emptyState": "یادداشتی نیست", + "emptyStateTabs": "هنوز یادداشتی اینجا نیست. از «یادداشت جدید» در نوار کناری استفاده کنید (پیشنهادات عنوان هوش مصنوعی در ویرایشگر نمایش داده می‌شود).", + "inNotebook": "در دفترچه", + "moveFailed": "انتقال شکست خورد", + "clarifyFailed": "شفاف‌سازی شکست خورد", + "shortenFailed": "کوتاه کردن شکست خورد", + "improveFailed": "بهبود شکست خورد", + "transformFailed": "تبدیل شکست خورد", + "markdown": "مارک‌داون", + "unpinned": "سنجاق نشده", + "redoShortcut": "انجام مجدد (Ctrl+Y)", + "undoShortcut": "بازگردانی (Ctrl+Z)", + "viewCards": "نمایش کارتی", + "viewCardsTooltip": "شبکه کارتی با مرتب‌سازی کشیدن و رها کردن", + "viewTabs": "نمایش لیستی", + "viewTabsTooltip": "زبانه‌ها در بالا، یادداشت در پایین — زبانه‌ها را بکشید تا مرتب شوند", + "viewModeGroup": "حالت نمایش یادداشت‌ها", + "reorderTabs": "مرتب‌سازی زبانه", + "modified": "ویرایش شده", + "created": "ایجاد شده", + "loading": "در حال بارگذاری...", + "exportPDF": "خروجی PDF", + "savedStatus": "ذخیره شد", + "dirtyStatus": "تغییر یافته", + "completedLabel": "تکمیل شده", + "notes.emptyNotebook": "دفترچه خالی", + "notes.emptyNotebookDesc": "این دفترچه یادداشتی ندارد. روی + کلیک کنید تا یکی بسازید.", + "notes.noNoteSelected": "یادداشتی انتخاب نشده", + "notes.selectOrCreateNote": "یک یادداشت از لیست انتخاب کنید یا یکی جدید بسازید.", + "commitVersion": "ذخیره نسخه", + "versionSaved": "نسخه ذخیره شد", + "deleteVersion": "حذف این نسخه", + "versionDeleted": "نسخه حذف شد", + "deleteVersionConfirm": "این نسخه برای همیشه حذف شود؟", + "historyMode": "حالت تاریخچه", + "historyModeManual": "دستی (دکمه ثبت)", + "historyModeAuto": "خودکار (هوشمند)", + "historyModeManualDesc": "ایجاد اسنپ‌شات دستی با دکمه ثبت", + "historyModeAutoDesc": "اسنپ‌شات خودکار با تشخیص هوشمند", + "history": "تاریخچه", + "historyRestored": "نسخه بازیابی شد", + "historyEnabled": "تاریخچه فعال شد", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "تاریخچه برای حساب شما غیرفعال است.", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "فعال‌سازی تاریخچه", + "historyEmpty": "نسخه‌ای موجود نیست", + "historySelectVersion": "نسخه‌ای را برای پیش‌نمایش انتخاب کنید", + "sortBy": "مرتب‌سازی بر اساس", + "sortDateDesc": "تاریخ (جدیدترین)", + "sortDateAsc": "تاریخ (قدیمی‌ترین)", + "sortTitleAsc": "عنوان الف ← ی", + "sortTitleDesc": "عنوان ی ← الف", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "pagination": { + "previous": "←", + "pageInfo": "صفحه {currentPage} / {totalPages}", + "next": "→" + }, + "labels": { + "title": "Labels", + "filter": "Filter by Label", + "manage": "Manage Labels", + "manageTooltip": "Manage Labels", + "changeColor": "تغییر رنگ", + "changeColorTooltip": "تغییر رنگ", + "delete": "Delete", + "deleteTooltip": "Delete label", + "confirmDelete": "آیا مطمئن هستید که می‌خواهید این برچسب را حذف کنید؟", + "newLabelPlaceholder": "Create new label", + "namePlaceholder": "Enter label name", + "addLabel": "افزودن برچسب", + "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": "همه برچسب‌ها", + "clearAll": "پاک کردن همه", + "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} برچسب", + "noLabels": "بدون برچسب", + "confirmDeleteShort": "تأیید؟", + "labelRemoved": "برچسب \"{label}\" حذف شد" + }, + "search": { + "placeholder": "جستجو", + "searchPlaceholder": "در یادداشت‌های خود جستجو کنید...", + "semanticInProgress": "جستجوی هوش مصنوعی در حال انجام...", + "semanticTooltip": "جستجوی معنایی هوش مصنوعی", + "searching": "در حال جستجو...", + "noResults": "نتیجه‌ای یافت نشد", + "resultsFound": "{count} یادداشت یافت شد", + "exactMatch": "تطابق دقیق", + "related": "مرتبط", + "disabledAdmin": "جستجو در حالت ادمین غیرفعال است" + }, + "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": "در حال تحلیل هوش مصنوعی...", + "clickToAddTag": "برای افزودن این برچسب کلیک کنید", + "ignoreSuggestion": "نادیده گرفتن این پیشنهاد", + "generatingTitles": "در حال تولید...", + "generateTitlesTooltip": "تولید عنوان با هوش مصنوعی", + "poweredByAI": "قدرت گرفته از هوش مصنوعی", + "languageDetected": "زبان شناسایی شد", + "processing": "در حال پردازش...", + "tagAdded": "برچسب \"{tag}\" اضافه شد", + "titleGenerating": "در حال تولید...", + "titleGenerateWithAI": "تولید عنوان با هوش مصنوعی", + "titleGenerationMinWords": "محتوا باید حداقل 10 کلمه داشته باشد تا عناوین تولید شوند (فعلاً: {count} کلمه)", + "titleGenerationError": "خطا در تولید عناوین", + "titlesGenerated": "💡 {count} عنوان تولید شد!", + "titleGenerationFailed": "تولید عناوین شکست خورد", + "titleApplied": "عنوان اعمال شد!", + "reformulationNoText": "متن را انتخاب کنید یا محتوایی اضافه کنید", + "reformulationSelectionTooShort": "انتخاب کوتاه است، از محتوای کامل استفاده می‌شود", + "reformulationMinWords": "متن باید حداقل 10 کلمه داشته باشد (فعلاً: {count} کلمه)", + "reformulationMaxWords": "متن نباید بیشتر از 500 کلمه داشته باشد", + "reformulationError": "خطا در بازنویسی متن", + "reformulationFailed": "بازنویسی متن شکست خورد", + "reformulationApplied": "متن بازنویسی شده اعمال شد!", + "transformMarkdown": "تبدیل به مارک‌داون", + "transforming": "در حال تبدیل...", + "transformSuccess": "متن با موفقیت به مارک‌داون تبدیل شد!", + "transformError": "خطا در تبدیل", + "assistant": "دستیار هوش مصنوعی", + "generating": "در حال تولید...", + "generateTitles": "تولید عناوین", + "reformulateText": "بازنویسی متن", + "reformulating": "در حال بازنویسی...", + "clarify": "شفاف‌سازی", + "shorten": "کوتاه کردن", + "improveStyle": "بهبود سبک", + "reformulationComparison": "مقایسه بازنویسی", + "original": "اصلی", + "reformulated": "بازنویسی شده", + "autoLabels": { + "error": "دریافت پیشنهادهای برچسب ناموفق", + "noLabelsSelected": "برچسبی انتخاب نشده", + "created": "{count} برچسب با موفقیت ایجاد شد", + "analyzing": "تحلیل یادداشت‌های شما...", + "title": "پیشنهادهای برچسب جدید", + "description": "من موضوعات تکراری در \"{notebookName}\" ({totalNotes} یادداشت) تشخیص دادم. برچسب برای آنها ایجاد شود؟", + "note": "یادداشت", + "notes": "یادداشت", + "typeContent": "برای دریافت پیشنهاد برچسب محتوا وارد کنید...", + "createNewLabel": "ایجاد این برچسب جدید و اضافه کردن آن", + "new": "(جدید)", + "create": "ایجاد", + "creating": "در حال ایجاد برچسب‌ها...", + "notesCount": "{count} یادداشت", + "typeForSuggestions": "برای دریافت پیشنهاد برچسب محتوا وارد کنید..." }, - "platform": "پلتفرم", - "platformWeb": "وب", - "support": { - "description": "دریافت کمک و بازخورد", - "documentation": "مستندات", - "feedback": "بازخورد", - "reportIssues": "گزارش مشکلات", - "title": "پشتیبانی" + "batchOrganization": { + "title": "سازماندهی با هوش مصنوعی", + "description": "هوش مصنوعی یادداشت‌های شما را تحلیل و پیشنهاد سازماندهی در دفترچه‌ها را می‌دهد.", + "analyzing": "تحلیل یادداشت‌های شما...", + "noNotebooks": "دفترچه‌ای موجود نیست. ابتدا دفترچه ایجاد کنید.", + "noSuggestions": "هوش مصنوعی نتوانست روش خوبی برای سازماندهی این یادداشت‌ها پیدا کند.", + "apply": "اعمال", + "applying": "در حال اعمال...", + "success": "{count} یادداشت با موفقیت جابجا شد", + "error": "ایجاد طرح سازماندهی ناموفق", + "noNotesSelected": "یادداشتی انتخاب نشده", + "applyFailed": "اعمال طرح سازماندهی ناموفق", + "selectAllIn": "انتخاب تمام یادداشت‌ها در {notebook}", + "selectNote": "انتخاب یادداشت: {title}" }, - "technology": { - "ai": "هوش مصنوعی", - "authentication": "احراز هویت", - "backend": "بک‌اند", - "database": "پایگاه داده", - "description": "ساخته شده با فناوری‌های مدرن", - "frontend": "فرانت‌اند", - "testing": "تست", - "title": "پشته فناوری", - "ui": "رابط کاربری" + "notebookSummary": { + "regenerate": "بازسازی خلاصه", + "regenerating": "در حال بازسازی خلاصه...", + "exportPDF": "صادرات به عنوان PDF" }, - "title": "درباره", - "version": "نسخه" + "clarifyDesc": "متن را شفاف‌تر و قابل‌فهم‌تر کنید", + "shortenDesc": "متن را خلاصه کرده و به اصل مطلب برسید", + "improve": "بهبود نگارش", + "improveDesc": "اصلاح گرامر و بهبود سبک نگارش", + "toMarkdown": "قالب‌بندی به عنوان Markdown", + "toMarkdownDesc": "افزودن عناوین، نقاط گلوله‌ای و ساختاردهی متن", + "translate": "ترجمه", + "translateDesc": "تغییر زبان متن", + "translateBack": "بازگشت", + "translationApplied": "ترجمه اعمال شد", + "translationFailed": "ترجمه ناموفق بود", + "undo": "لغو هوش مصنوعی", + "undoAI": "لغو تبدیل هوش مصنوعی", + "undoApplied": "متن اصلی بازگردانده شد", + "minWordsError": "یادداشت باید حداقل ۵ کلمه داشته باشد.", + "genericError": "خطای هوش مصنوعی", + "actionError": "خطا در حین عمل هوش مصنوعی", + "appliedToNote": "در یادداشت اعمال شد", + "applyToNote": "اعمال در یادداشت", + "undoLastAction": "برگرداندن آخرین عمل هوش مصنوعی", + "selectContext": "انتخاب زمینه...", + "selectNotebook": "انتخاب دفترچه", + "chatPlaceholder": "از هوش مصنوعی بخواهید ویرایش، خلاصه یا پیش‌نویس کند...", + "assistantTitle": "دستیار هوش مصنوعی", + "currentNote": "یادداشت فعلی", + "shrinkPanel": "کوچک کردن پنل", + "expandPanel": "بزرگ کردن پنل", + "chatTab": "چت", + "noteActions": "عملیات یادداشت", + "askToStart": "برای شروع سوالی از دستیار بپرسید.", + "contextLabel": "زمینه", + "thisNote": "این یادداشت", + "allMyNotes": "همه یادداشت‌های من", + "notebookGeneric": "دفترچه", + "writingTone": "لحن نوشتن", + "askAboutThisNote": "از هوش مصنوعی درباره این یادداشت بپرسید...", + "askAboutYourNotes": "از هوش مصنوعی درباره یادداشت‌هایتان بپرسید...", + "webSearchLabel": "جستجوی وب", + "newLineHint": "Shift+Enter = خط جدید", + "resultLabel": "نتیجه", + "discardAction": "رد کردن", + "transformationsDesc": "تبدیل‌ها — مستقیماً در یادداشت اعمال می‌شوند", + "writeMinWordsAction": "حداقل ۵ کلمه بنویسید تا عملیات هوش مصنوعی فعال شود.", + "processingAction": "در حال پردازش...", + "noImagesError": "No images in this note", + "overview": "Overview", + "action": { + "clarify": "روشن کردن", + "shorten": "خلاصه کردن", + "improve": "بهبود", + "toMarkdown": "به مارک‌داون", + "describeImages": "Describe images" + }, + "openAssistant": "باز کردن دستیار هوش مصنوعی", + "poweredByMomento": "پشتیبانی شده توسط Momento AI", + "welcomeMsg": "سلام! من دستیار هوش مصنوعی شما هستم. امروز چطور می‌توانم با یادداشت‌هایتان کمکتان کنم؟ می‌توانم لحن را بهبود دهم، پیام‌ها را بسط دهم یا محتوا را خلاصه کنم.", + "summaryLast5": "خلاصه ۵ یادداشت آخر", + "analyzingProgress": "در حال تحلیل...", + "generateInsightsBtn": "تولید بینش", + "newDiscussion": "بحث جدید", + "noRecentConversations": "بدون گفتگوی اخیر.", + "discussionContextLabel": "زمینه بحث", + "webSearchNotConfigured": "جستجوی وب (پیکربندی نشده)", + "historyTab": "تاریخچه", + "insightsTab": "بینش‌ها", + "aiCopilot": "دستیار هوشمند", + "suggestTitle": "پیشنهاد عنوان با هوش مصنوعی", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" + }, + "titleSuggestions": { + "available": "پیشنهادات عنوان", + "title": "پیشنهادات هوش مصنوعی", + "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}", + "match": "{percentage}% تطابق", + "fused": "ادغام شده", + "clickToView": "برای مشاهده یادداشت کلیک کنید", + "overlay": { + "title": "یادداشت‌های مرتبط", + "searchPlaceholder": "جستجوی ارتباطات...", + "sortBy": "مرتب‌سازی بر اساس:", + "sortSimilarity": "شباهت", + "sortRecent": "جدیدترین", + "sortOldest": "قدیمی‌ترین", + "viewAll": "نمایش همه کنار هم", + "loading": "در حال بارگذاری...", + "noConnections": "هیچ ارتباطی یافت نشد", + "error": "خطا در بارگذاری ارتباطات" + }, + "comparison": { + "title": "💡 مقایسه یادداشت‌ها", + "similarityInfo": "این یادداشت‌ها با {similarity}% شباهت مرتبط هستند", + "highSimilarityInsight": "این یادداشت‌ها در مورد یک موضوع با درجه بالایی از شباهت صحبت می‌کنند. می‌توانند ادغام یا تلفیق شوند.", + "untitled": "بدون عنوان", + "clickToView": "برای مشاهده یادداشت کلیک کنید", + "helpfulQuestion": "این مقایسه مفید است؟", + "helpful": "مفید", + "notHelpful": "غیرمفید" + }, + "editorSection": { + "title": "⚡ یادداشت‌های مرتبط ({count})", + "loading": "در حال بارگذاری...", + "view": "مشاهده", + "compare": "مقایسه", + "merge": "ادغام", + "compareAll": "مقایسه همه", + "mergeAll": "ادغام همه", + "close": "بستن" + }, + "fusion": { + "title": "🔗 ادغام هوشمند", + "mergeNotes": "ادغام {count} یادداشت", + "notesToMerge": "📝 یادداشت‌های برای ادغام", + "optionalPrompt": "💠 پیامک ادغام (اختیاری)", + "promptPlaceholder": "دستورات اختیاری برای هوش مصنوعی (مثلاً 'سبک رسمی یادداشت 1 را حفظ کن')...", + "generateFusion": "تولید ادغام", + "generating": "در حال تولید...", + "previewTitle": "📝 پیش‌نمایش یادداشت ادغام شده", + "edit": "ویرایش", + "modify": "تغییر", + "finishEditing": "تمام کردن ویرایش", + "optionsTitle": "گزینه‌های ادغام", + "archiveOriginals": "بایگانی کردن نسخه‌های اصلی", + "keepAllTags": "نگهداری همه برچسب‌ها", + "useLatestTitle": "استفاده از عنوان جدیدترین یادداشت", + "createBacklinks": "ایجاد لینک برگشتی به یادداشت‌های اصلی", + "cancel": "لغو", + "confirmFusion": "تأیید ادغام", + "success": "یادداشت‌ها با موفقیت ادغام شدند!", + "error": "ادغام یادداشت‌ها شکست خورد", + "generateError": "شکست در تولید ادغام", + "noContentReturned": "هیچ محتوای ادغامی از API بازگردانده نشد", + "unknownDate": "تاریخ ناشناخته" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "\"{title}\" به اشتراک گذاشته شد", + "untitled": "بدون عنوان", + "notifications": "اعلان‌ها", + "declined": "اشتراک‌گذاری رد شد", + "removed": "یادداشت از لیست حذف شد" + }, + "nav": { + "home": "خانه", + "notes": "یادداشت‌ها", + "notebooks": "دفترچه‌ها", + "generalNotes": "یادداشت‌های عمومی", + "archive": "بایگانی", + "settings": "تنظیمات", + "profile": "پروفایل", + "aiSettings": "تنظیمات هوش مصنوعی", + "logout": "خروج", + "login": "ورود", + "adminDashboard": "داشبورد مدیریت", + "diagnostics": "تشخیص‌ها", + "trash": "سطل زباله", + "support": "پشتیبانی مامنتو ☕", + "reminders": "یادآوری‌ها", + "userManagement": "مدیریت کاربران", + "accountSettings": "تنظیمات حساب", + "manageAISettings": "مدیریت تنظیمات هوش مصنوعی", + "configureAI": "ویژگی‌های هوش مصنوعی، ارائه‌دهنده و ترجیحات خود را پیکربندی کنید", + "supportDevelopment": "حمایت از توسعه Memento ☕", + "supportDescription": "Memento ۱۰۰٪ رایگان و متن‌باز است. حمایت شما به حفظ این وضعیت کمک می‌کند.", + "buyMeACoffee": "برای من قهوه بخرید", + "donationDescription": "یک کمک مالی یکباره انجام دهید یا حامی ماهانه شوید.", + "donateOnKofi": "کمک مالی در Ko-fi", + "donationNote": "بدون کارمزد پلتفرم • پرداخت فوری • امن", + "sponsorOnGithub": "حمایت در GitHub", + "sponsorDescription": "حامی ماهانه شوید و شناخته شوید.", + "workspace": "فضای کار", + "quickAccess": "دسترسی سریع", + "myLibrary": "کتابخانه من", + "favorites": "مورد علاقه‌ها", + "recent": "اخیر", + "proPlan": "پلن پرو", + "chat": "چت هوش مصنوعی", + "lab": "آزمایشگاه", + "agents": "عامل‌ها" + }, + "settings": { + "title": "تنظیمات", + "description": "مدیریت تنظیمات و ترجیحات خود", + "account": "حساب کاربری", + "appearance": "ظاهر", + "theme": "تم", + "themeLight": "روشن", + "themeDark": "تاریک", + "themeSystem": "سیستم", + "notifications": "اعلان‌ها", + "language": "زبان", + "selectLanguage": "انتخاب زبان", + "security": "امنیت", + "about": "درباره", + "version": "نسخه", + "settingsSaved": "تنظیمات ذخیره شد", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "خطا در ذخیره تنظیمات", + "maintenance": "نگهداری", + "maintenanceDescription": "ابزارهایی برای حفظ سلامت پایگاه داده", + "cleanTags": "پاکسازی برچسب‌های یتیم", + "cleanTagsDescription": "حذف برچسب‌هایی که دیگر توسط هیچ یادداشتی استفاده نمی‌شوند", + "cleanupDone": "{created} رکورد برچسب همگام‌سازی شد، {deleted} یتیم حذف شد", + "cleanupNothing": "کاری برای انجام نیست — برچسب‌ها از قبل با یادداشت‌های شما مطابقت دارند", + "cleanupWithErrors": "برخی عملیات‌ها شکست خورد", + "cleanupError": "پاکسازی برچسب‌ها ناموفق بود", + "indexingComplete": "نمایه‌سازی کامل: {count} یادداشت پردازش شد", + "indexingError": "خطا در حین نمایه‌سازی", + "semanticIndexing": "نمایه‌سازی معنایی", + "semanticIndexingDescription": "تولید بردارها برای همه یادداشت‌ها جهت فعال‌سازی جستجوی مبتنی بر قصد", + "profile": "پروفایل", + "searchNoResults": "تنظیمات مطابق یافت نشد", + "languageAuto": "تشخیص خودکار", + "emailNotifications": "اعلان‌های ایمیل", + "emailNotificationsDesc": "دریافت اعلان‌های مهم از طریق ایمیل", + "desktopNotifications": "اعلان‌های مرورگر", + "desktopNotificationsDesc": "دریافت اعلان‌ها در مرورگر", + "notificationsDesc": "مدیریت تنظیمات اعلان" + }, + "profile": { + "title": "پروفایل", + "description": "اطلاعات شخصی خود را به‌روز کنید", + "displayName": "نام نمایشی", + "email": "ایمیل", + "changePassword": "تغییر رمز عبور", + "changePasswordDescription": "رمز عبور خود را به‌روز کنید. رمز عبور فعلی شما لازم است.", + "currentPassword": "رمز عبور فعلی", + "newPassword": "رمز عبور جدید", + "confirmPassword": "تأیید رمز عبور", + "updatePassword": "به‌روزرسانی رمز عبور", + "passwordChangeSuccess": "رمز عبور با موفقیت تغییر کرد", + "passwordChangeFailed": "تغییر رمز عبور شکست خورد", + "passwordUpdated": "رمز عبور به‌روزرسانی شد", + "passwordError": "خطا در به‌روزرسانی رمز عبور", + "languagePreferences": "ترجیحات زبان", + "languagePreferencesDescription": "زبان مورد نظر خود را برای ویژگی‌های هوش مصنوعی و رابط کاربری انتخاب کنید.", + "preferredLanguage": "زبان مورد نظر", + "selectLanguage": "یک زبان انتخاب کنید", + "languageDescription": "این زبان برای ویژگی‌های هوش مصنوعی، تحلیل محتوا و متن رابط کاربری استفاده خواهد شد.", + "autoDetect": "تشخیص خودکار", + "updateSuccess": "پروفایل به‌روزرسانی شد", + "updateFailed": "به‌روزرسانی پروفایل شکست خورد", + "languageUpdateSuccess": "زبان با موفقیت به‌روزرسانی شد", + "languageUpdateFailed": "به‌روزرسانی زبان شکست خورد", + "profileUpdated": "پروفایل به‌روزرسانی شد", + "profileError": "خطا در به‌روزرسانی پروفایل", + "accountSettings": "تنظیمات حساب", + "manageAISettings": "مدیریت تنظیمات هوش مصنوعی", + "displaySettings": "تنظیمات نمایش", + "displaySettingsDescription": "ظاهر و اندازه فونت را سفارشی کنید.", + "fontSize": "اندازه فونت", + "selectFontSize": "اندازه فونت را انتخاب کنید", + "fontSizeSmall": "کوچک", + "fontSizeMedium": "متوسط", + "fontSizeLarge": "بزرگ", + "fontSizeExtraLarge": "بسیار بزرگ", + "fontSizeDescription": "اندازه فونت را برای خوانایی بهتر تنظیم کنید. این مورد به تمام متن‌های رابط کاربری اعمال می‌شود.", + "fontSizeUpdateSuccess": "اندازه فونت با موفقیت به‌روزرسانی شد", + "fontSizeUpdateFailed": "به‌روزرسانی اندازه فونت شکست خورد", + "showRecentNotes": "نمایش بخش یادداشت‌های اخیر", + "showRecentNotesDescription": "نمایش یادداشت‌های اخیر (۷ روز گذشته) در صفحه اصلی", + "recentNotesUpdateSuccess": "تنظیم یادداشت‌های اخیر با موفقیت به‌روزرسانی شد", + "recentNotesUpdateFailed": "به‌روزرسانی تنظیم یادداشت‌های اخیر شکست خورد" + }, + "aiSettings": { + "title": "تنظیمات هوش مصنوعی", + "description": "ویژگی‌ها و ترجیحات هوش مصنوعی خود را پیکربندی کنید", + "features": "ویژگی‌های هوش مصنوعی", + "provider": "فروشنده هوش مصنوعی", + "providerAuto": "خودکار (توصیه می‌شود)", + "providerOllama": "Ollama (محلی)", + "providerOpenAI": "OpenAI (ابر)", + "frequency": "فرکانس", + "frequencyDaily": "روزانه", + "frequencyWeekly": "هفتگی", + "saving": "در حال ذخیره...", + "saved": "تنظیم به‌روزرسانی شد", + "error": "به‌روزرسانی شکست خورد", + "titleSuggestionsDesc": "پیشنهاد عناوان برای یادداشت‌های بدون عنوان پس از ۵۰+ کلمه", + "paragraphRefactorDesc": "گزینه‌های بهبود متن با هوش مصنوعی", + "frequencyDesc": "فرکانس تحلیل ارتباطات یادداشت", + "providerDesc": "فروشنده هوش مصنوعی مورد نظر خود را انتخاب کنید", + "providerAutoDesc": "Ollama در صورت وجود، در غیر این صورت OpenAI", + "providerOllamaDesc": "۱۰۰٪ خصوصی، به صورت محلی اجرا می‌شود", + "providerOpenAIDesc": "دقیق‌ترین، نیاز به کلید API دارد" + }, + "general": { + "loading": "در حال بارگذاری...", + "save": "ذخیره", + "cancel": "لغو", + "add": "افزودن", + "edit": "ویرایش", + "confirm": "تأیید", + "close": "بستن", + "back": "بازگشت", + "next": "بعدی", + "previous": "قبلی", + "submit": "ارسال", + "reset": "بازنشانی", + "apply": "اعمال", + "clear": "پاک کردن", + "select": "انتخاب", + "tryAgain": "لطفا دوباره تلاش کنید", + "error": "خطایی رخ داد", + "operationSuccess": "عملیات موفقیت‌آمیز بود", + "operationFailed": "عملیات شکست خورد", + "testConnection": "تست اتصال", + "clean": "پاکسازی", + "indexAll": "نمایه‌سازی همه", + "preview": "پیش‌نمایش" + }, + "colors": { + "default": "پیش‌فرض", + "red": "قرمز", + "blue": "آبی", + "green": "سبز", + "yellow": "زرد", + "purple": "بنفش", + "pink": "صورتی", + "orange": "نارنجی", + "gray": "خاکستری" + }, + "reminder": { + "title": "یادآوری", + "setReminder": "تنظیم یادآوری", + "removeReminder": "حذف یادآوری", + "reminderDate": "تاریخ یادآوری", + "reminderTime": "زمان یادآوری", + "save": "تنظیم", + "cancel": "لغو" + }, + "reminders": { + "title": "یادآوری‌ها", + "empty": "بدون یادآوری", + "emptyDescription": "به یک یادداشت یادآوری اضافه کنید تا اینجا نمایش داده شود.", + "upcoming": "پیش رو", + "overdue": "سررسید گذشته", + "done": "انجام شده", + "markDone": "علامت‌گذاری به عنوان انجام شده", + "markUndone": "علامت‌گذاری به عنوان انجام نشده", + "todayAt": "امروز ساعت {time}", + "tomorrowAt": "فردا ساعت {time}" + }, + "notebook": { + "create": "ایجاد دفترچه", + "createNew": "ایجاد دفترچه جدید", + "createDescription": "یک مجموعه جدید برای سازماندهی یادداشت‌ها، ایده‌ها و پروژه‌های خود به طور مؤثر شروع کنید.", + "name": "نام دفترچه", + "namePlaceholder": "مثلاً استراتژی بازاریابی سه‌ماهه چهارم", + "myNotebook": "دفترچه من", + "saving": "در حال ذخیره...", + "selectIcon": "آیکون", + "selectColor": "رنگ", + "cancel": "لغو", + "creating": "در حال ایجاد...", + "edit": "ویرایش دفترچه", + "editDescription": "نام، آیکون و رنگ دفترچه خود را تغییر دهید.", + "delete": "حذف دفترچه", + "deleteWarning": "آیا مطمئن هستید که می‌خواهید این دفترچه را حذف کنید؟ یادداشت‌ها به یادداشت‌های عمومی منتقل می‌شوند.", + "deleteConfirm": "حذف", + "summary": "خلاصه دفترچه", + "summaryDescription": "تولید یک خلاصه مبتنی بر هوش مصنوعی از تمام یادداشت‌های این دفترچه.", + "generating": "در حال تولید خلاصه...", + "summaryError": "خطا در تولید خلاصه", + "labels": "برچسب‌ها", + "noLabels": "بدون برچسب", + "pdfTitle": "خلاصه — {name}", + "pdfNotesLabel": "یادداشت‌ها:", + "pdfGeneratedOn": "تاریخ تولید:", + "confidence": "اطمینان", + "savingReminder": "شکست در ذخیره یادآوری", + "removingReminder": "شکست در حذف یادآوری", + "generatingDescription": "Please wait..." + }, + "notebookSuggestion": { + "title": "انتقال به {name}؟", + "description": "به نظر می‌رسد این یادداشت متعلق به این دفترچه است", + "move": "انتقال", + "dismiss": "نادیده گرفتن", + "dismissIn": "نادیده گرفتن (بسته می‌شود در {timeLeft} ثانیه)", + "moveToNotebook": "انتقال به دفترچه", + "generalNotes": "یادداشت‌های عمومی" }, "admin": { + "title": "داشبورد مدیریت", + "userManagement": "مدیریت کاربران", + "chat": "چت هوش مصنوعی", + "lab": "آزمایشگاه", + "agents": "عامل‌ها", + "workspace": "فضای کار", + "settings": "تنظیمات مدیر", + "security": { + "title": "تنظیمات امنیتی", + "description": "مدیریت کنترل دسترسی و سیاست‌های ثبت‌نام.", + "allowPublicRegistration": "اجازه ثبت‌نام عمومی", + "allowPublicRegistrationDescription": "اگر غیرفعال باشد، کاربران جدید فقط توسط مدیر از طریق صفحه مدیریت کاربران قابل اضافه شدن هستند.", + "updateSuccess": "تنظیمات امنیتی به‌روزرسانی شد", + "updateFailed": "شکست در به‌روزرسانی تنظیمات امنیتی" + }, "ai": { - "apiKey": "کلید API", - "baseUrl": "آدرس پایه", - "commonEmbeddingModels": "مدل‌های تعبیه رایج برای APIهای سازگار با OpenAI", - "commonModelsDescription": "مدل‌های رایج برای APIهای سازگار با OpenAI", - "description": "پیکربندی ارائه‌دهندگان هوش مصنوعی برای برچسب‌گذاری خودکار و جستجوی معنایی. برای عملکرد بهینه از ارائه‌دهندگان مختلف استفاده کنید.", - "embeddingsDescription": "ارائه‌دهنده هوش مصنوعی برای تعبیه‌های جستجوی معنایی. پیشنهادی: OpenAI (بهترین کیفیت).", - "embeddingsProvider": "ارائه‌دهنده تعبیه", - "model": "مدل", - "modelRecommendations": "gpt-4o-mini = بهترین ارزش • gpt-4o = بهترین کیفیت", - "openAIKeyDescription": "کلید OpenAI API شما از platform.openai.com", - "openTestPanel": "باز کردن پنل تست هوش مصنوعی", - "provider": "ارائه‌دهنده", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING الزامی است", - "providerTagsRequired": "AI_PROVIDER_TAGS الزامی است", - "saveSettings": "ذخیره تنظیمات هوش مصنوعی", - "saving": "در حال ذخیره...", - "selectEmbeddingModel": "مدل تعبیه نصب شده روی سیستم خود را انتخاب کنید", - "selectOllamaModel": "مدل Ollama نصب شده روی سیستم خود را انتخاب کنید", - "tagsGenerationDescription": "ارائه‌دهنده هوش مصنوعی برای پیشنهادات برچسب خودکار. پیشنهادی: Ollama (رایگان، محلی).", - "tagsGenerationProvider": "ارائه‌دهنده تولید برچسب", "title": "پیکربندی هوش مصنوعی", - "updateFailed": "شکست در به‌روزرسانی تنظیمات هوش مصنوعی", + "description": "پیکربندی ارائه‌دهندگان هوش مصنوعی برای برچسب‌گذاری خودکار و جستجوی معنایی. برای عملکرد بهینه از ارائه‌دهندگان مختلف استفاده کنید.", + "tagsGenerationProvider": "ارائه‌دهنده تولید برچسب", + "tagsGenerationDescription": "ارائه‌دهنده هوش مصنوعی برای پیشنهادات برچسب خودکار. پیشنهادی: Ollama (رایگان، محلی).", + "embeddingsProvider": "ارائه‌دهنده تعبیه", + "embeddingsDescription": "ارائه‌دهنده هوش مصنوعی برای تعبیه‌های جستجوی معنایی. پیشنهادی: OpenAI (بهترین کیفیت).", + "chatProvider": "ارائه‌دهنده چت", + "chatDescription": "ارائه‌دهنده هوش مصنوعی برای دستیار چت. در صورت عدم پیکربندی، به ارائه‌دهنده برچسب‌ها بازمی‌گردد.", + "provider": "ارائه‌دهنده", + "baseUrl": "آدرس پایه", + "model": "مدل", + "apiKey": "کلید API", + "selectOllamaModel": "مدل Ollama نصب شده روی سیستم خود را انتخاب کنید", + "openAIKeyDescription": "کلید OpenAI API شما از platform.openai.com", + "modelRecommendations": "gpt-4o-mini = بهترین ارزش • gpt-4o = بهترین کیفیت", + "commonModelsDescription": "مدل‌های رایج برای APIهای سازگار با OpenAI", + "selectEmbeddingModel": "مدل تعبیه نصب شده روی سیستم خود را انتخاب کنید", + "commonEmbeddingModels": "مدل‌های تعبیه رایج برای APIهای سازگار با OpenAI", + "saving": "در حال ذخیره...", + "saveSettings": "ذخیره تنظیمات هوش مصنوعی", + "openTestPanel": "باز کردن پنل تست هوش مصنوعی", "updateSuccess": "تنظیمات هوش مصنوعی با موفقیت به‌روزرسانی شد", - "bestValue": "بهترین ارزش", - "bestQuality": "بهترین کیفیت", + "updateFailed": "شکست در به‌روزرسانی تنظیمات هوش مصنوعی", + "providerTagsRequired": "AI_PROVIDER_TAGS الزامی است", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING الزامی است", "providerOllamaOption": "🦙 Ollama (محلی و رایگان)", "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", "providerCustomOption": "🔧 سفارشی سازگار با OpenAI", + "bestValue": "بهترین ارزش", + "bestQuality": "بهترین کیفیت", "saved": "(ذخیره شد)", - "chatProvider": "ارائه‌دهنده چت", - "chatDescription": "ارائه‌دهنده هوش مصنوعی برای دستیار چت. در صورت عدم پیکربندی، به ارائه‌دهنده برچسب‌ها بازمی‌گردد.", "fetchModelsFailed": "دریافت مدل‌ها ناموفق بود", "refreshModels": "بازنشانی مدل‌ها", "configured": "پیکربندی شده", @@ -106,55 +864,6 @@ "autoLabeling": "برچسب‌گذاری خودکار", "autoLabelingDesc": "پیشنهاد و اعمال خودکار برچسب‌ها" }, - "aiTest": { - "description": "تست ارائه‌دهندگان هوش مصنوعی برای تولید برچسب و تعبیه‌های جستجوی معنایی", - "embeddingDimensions": "ابعاد تعبیه:", - "embeddingsTestDescription": "تست ارائه‌دهنده هوش مصنوعی مسئول تعبیه‌های جستجوی معنایی", - "embeddingsTestTitle": "تست تعبیه", - "error": "خطا:", - "first5Values": "۵ مقدار اول:", - "generatedTags": "برچسب‌های تولید شده:", - "howItWorksTitle": "نحوه کار تست", - "model": "مدل:", - "provider": "ارائه‌دهنده:", - "responseTime": "زمان پاسخ: {time} میلی‌ثانیه", - "runTest": "اجرای تست", - "tagsTestDescription": "تست ارائه‌دهنده هوش مصنوعی مسئول پیشنهادات برچسب خودکار", - "tagsTestTitle": "تست تولید برچسب", - "testError": "خطای تست: {error}", - "testFailed": "تست ناموفق", - "testPassed": "تست موفق", - "testing": "در حال تست...", - "tipDescription": "قبل از تست از پنل تست هوش مصنوعی برای تشخیص مشکلات پیکربندی استفاده کنید.", - "tipTitle": "نکته:", - "title": "تست ارائه‌دهنده هوش مصنوعی", - "vectorDimensions": "ابعاد بردار", - "tagsGenerationTest": "🏷️ تست تولید برچسب:", - "tagsStep1": "یک یادداشت نمونه به ارائه‌دهنده هوش مصنوعی ارسال می‌کند", - "tagsStep2": "۳ تا ۵ برچسب مرتبط بر اساس محتوا درخواست می‌کند", - "tagsStep3": "برچسب‌های تولید شده با امتیاز اطمینان نمایش می‌دهد", - "tagsStep4": "زمان پاسخ را اندازه‌گیری می‌کند", - "embeddingsTestLabel": "🔍 تست تعبیه:", - "embeddingsStep1": "یک متن نمونه به ارائه‌دهنده تعبیه ارسال می‌کند", - "embeddingsStep2": "نمایشگر برداری (لیستی از اعداد) تولید می‌کند", - "embeddingsStep3": "ابعاد تعبیه و مقادیر نمونه را نمایش می‌دهد", - "embeddingsStep4": "اعتبارسنجی بردار و قالب‌بندی صحیح را بررسی می‌کند", - "tipContent": "می‌توانید از ارائه‌دهندگان مختلف برای برچسب‌ها و تعبیه‌ها استفاده کنید! مثلاً از Ollama (رایگان) برای برچسب‌ها و OpenAI (بهترین کیفیت) برای تعبیه‌ها بهره ببرید تا هزینه و عملکرد بهینه شود.", - "testSuccessToast": "تست {type} موفق بود!", - "testFailedToast": "تست {type} ناموفق بود", - "testingType": "در حال تست {type}...", - "technicalDetails": "جزئیات فنی" - }, - "aiTesting": "تست هوش مصنوعی", - "security": { - "allowPublicRegistration": "اجازه ثبت‌نام عمومی", - "allowPublicRegistrationDescription": "اگر غیرفعال باشد، کاربران جدید فقط توسط مدیر از طریق صفحه مدیریت کاربران قابل اضافه شدن هستند.", - "description": "مدیریت کنترل دسترسی و سیاست‌های ثبت‌نام.", - "title": "تنظیمات امنیتی", - "updateFailed": "شکست در به‌روزرسانی تنظیمات امنیتی", - "updateSuccess": "تنظیمات امنیتی به‌روزرسانی شد" - }, - "settings": "تنظیمات مدیر", "resend": { "title": "Resend (پیشنهادی)", "description": "ارسال ایمیل از طریق API Resend. در صورت پیکربندی، بر SMTP اولویت دارد.", @@ -169,63 +878,104 @@ "title": "تنظیمات ایمیل", "description": "پیکربندی ارسال ایمیل برای اعلان‌های عامل و بازنشانی رمز عبور.", "provider": "ارائه‌دهنده ایمیل", - "saveSettings": "ذخیره تنظیمات ایمیل" + "saveSettings": "ذخیره تنظیمات ایمیل", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" }, "smtp": { + "title": "پیکربندی SMTP", "description": "پیکربندی سرور ایمیل برای بازنشانی رمز عبور.", - "forceSSL": "اجبار SSL/TLS (معمولاً برای پورت 465)", - "fromEmail": "از ایمیل", "host": "میزبان", - "ignoreCertErrors": "نادیده گرفتن خطاهای گواهی (فقط میزبان خود/توسعه)", - "password": "رمز عبور", "port": "پورت", + "username": "نام کاربری", + "password": "رمز عبور", + "fromEmail": "از ایمیل", + "forceSSL": "اجبار SSL/TLS (معمولاً برای پورت 465)", + "ignoreCertErrors": "نادیده گرفتن خطاهای گواهی (فقط میزبان خود/توسعه)", "saveSettings": "ذخیره تنظیمات SMTP", "sending": "در حال ارسال...", "testEmail": "ایمیل تست", - "testFailed": "شکست: {error}", - "testSuccess": "ایمیل تست با موفقیت ارسال شد!", - "title": "پیکربندی SMTP", - "updateFailed": "شکست در به‌روزرسانی تنظیمات SMTP", "updateSuccess": "تنظیمات SMTP به‌روزرسانی شد", - "username": "نام کاربری" + "updateFailed": "شکست در به‌روزرسانی تنظیمات SMTP", + "testSuccess": "ایمیل تست با موفقیت ارسال شد!", + "testFailed": "شکست: {error}" }, - "title": "داشبورد مدیریت", - "userManagement": "مدیریت کاربران", "users": { - "addUser": "افزودن کاربر", - "confirmDelete": "مطمئن هستید؟ این عمل قابل بازگشت نیست.", - "createFailed": "شکست در ایجاد کاربر", - "createSuccess": "کاربر با موفقیت ایجاد شد", "createUser": "ایجاد کاربر", + "addUser": "افزودن کاربر", "createUserDescription": "افزودن کاربر جدید به سیستم.", - "deleteFailed": "شکست در حذف", - "deleteSuccess": "کاربر حذف شد", - "demote": "تنزل", - "email": "ایمیل", "name": "نام", + "email": "ایمیل", "password": "رمز عبور", - "promote": "ارتقا", "role": "نقش", - "roleUpdateFailed": "شکست در به‌روزرسانی نقش", + "createSuccess": "کاربر با موفقیت ایجاد شد", + "createFailed": "شکست در ایجاد کاربر", + "deleteSuccess": "کاربر حذف شد", + "deleteFailed": "شکست در حذف", "roleUpdateSuccess": "نقش کاربر به {role} به‌روزرسانی شد", - "roles": { - "admin": "مدیر", - "user": "کاربر" - }, + "roleUpdateFailed": "شکست در به‌روزرسانی نقش", + "demote": "تنزل", + "promote": "ارتقا", + "confirmDelete": "مطمئن هستید؟ این عمل قابل بازگشت نیست.", "table": { - "actions": "عملیات", - "createdAt": "تاریخ ایجاد", - "email": "ایمیل", "name": "نام", - "role": "نقش" + "email": "ایمیل", + "role": "نقش", + "createdAt": "تاریخ ایجاد", + "actions": "عملیات" + }, + "roles": { + "user": "کاربر", + "admin": "مدیر" }, "title": "کاربران", "description": "مدیریت کاربران و مجوزهای برنامه" }, - "chat": "چت هوش مصنوعی", - "lab": "آزمایشگاه", - "agents": "عامل‌ها", - "workspace": "فضای کار", + "aiTest": { + "title": "تست ارائه‌دهنده هوش مصنوعی", + "description": "تست ارائه‌دهندگان هوش مصنوعی برای تولید برچسب و تعبیه‌های جستجوی معنایی", + "tagsTestTitle": "تست تولید برچسب", + "tagsTestDescription": "تست ارائه‌دهنده هوش مصنوعی مسئول پیشنهادات برچسب خودکار", + "embeddingsTestTitle": "تست تعبیه", + "embeddingsTestDescription": "تست ارائه‌دهنده هوش مصنوعی مسئول تعبیه‌های جستجوی معنایی", + "howItWorksTitle": "نحوه کار تست", + "tagsGenerationTest": "🏷️ تست تولید برچسب:", + "tagsStep1": "یک یادداشت نمونه به ارائه‌دهنده هوش مصنوعی ارسال می‌کند", + "tagsStep2": "۳ تا ۵ برچسب مرتبط بر اساس محتوا درخواست می‌کند", + "tagsStep3": "برچسب‌های تولید شده با امتیاز اطمینان نمایش می‌دهد", + "tagsStep4": "زمان پاسخ را اندازه‌گیری می‌کند", + "embeddingsTestLabel": "🔍 تست تعبیه:", + "embeddingsStep1": "یک متن نمونه به ارائه‌دهنده تعبیه ارسال می‌کند", + "embeddingsStep2": "نمایشگر برداری (لیستی از اعداد) تولید می‌کند", + "embeddingsStep3": "ابعاد تعبیه و مقادیر نمونه را نمایش می‌دهد", + "embeddingsStep4": "اعتبارسنجی بردار و قالب‌بندی صحیح را بررسی می‌کند", + "tipContent": "می‌توانید از ارائه‌دهندگان مختلف برای برچسب‌ها و تعبیه‌ها استفاده کنید! مثلاً از Ollama (رایگان) برای برچسب‌ها و OpenAI (بهترین کیفیت) برای تعبیه‌ها بهره ببرید تا هزینه و عملکرد بهینه شود.", + "provider": "ارائه‌دهنده:", + "model": "مدل:", + "testing": "در حال تست...", + "runTest": "اجرای تست", + "testPassed": "تست موفق", + "testFailed": "تست ناموفق", + "testSuccessToast": "تست {type} موفق بود!", + "testFailedToast": "تست {type} ناموفق بود", + "testingType": "در حال تست {type}...", + "technicalDetails": "جزئیات فنی", + "responseTime": "زمان پاسخ: {time} میلی‌ثانیه", + "generatedTags": "برچسب‌های تولید شده:", + "embeddingDimensions": "ابعاد تعبیه:", + "vectorDimensions": "ابعاد بردار", + "first5Values": "۵ مقدار اول:", + "error": "خطا:", + "testError": "خطای تست: {error}", + "tipTitle": "نکته:", + "tipDescription": "قبل از تست از پنل تست هوش مصنوعی برای تشخیص مشکلات پیکربندی استفاده کنید." + }, "sidebar": { "dashboard": "داشبورد", "users": "کاربران", @@ -269,1009 +1019,184 @@ "retry": "تلاش مجدد" } }, - "ai": { - "analyzing": "در حال تحلیل هوش مصنوعی...", - "assistant": "دستیار هوش مصنوعی", - "autoLabels": { - "analyzing": "تحلیل یادداشت‌های شما...", - "create": "ایجاد", - "createNewLabel": "ایجاد این برچسب جدید و اضافه کردن آن", - "created": "{count} برچسب با موفقیت ایجاد شد", - "creating": "در حال ایجاد برچسب‌ها...", - "description": "من موضوعات تکراری در \"{notebookName}\" ({totalNotes} یادداشت) تشخیص دادم. برچسب برای آنها ایجاد شود؟", - "error": "دریافت پیشنهادهای برچسب ناموفق", - "new": "(جدید)", - "noLabelsSelected": "برچسبی انتخاب نشده", - "note": "یادداشت", - "notes": "یادداشت", - "title": "پیشنهادهای برچسب جدید", - "typeContent": "برای دریافت پیشنهاد برچسب محتوا وارد کنید...", - "notesCount": "{count} یادداشت", - "typeForSuggestions": "برای دریافت پیشنهاد برچسب محتوا وارد کنید..." + "about": { + "title": "درباره", + "description": "اطلاعات درباره برنامه", + "appName": "Memento", + "appDescription": "یک برنامه یادداشت قدرتمند با قابلیت‌های هوش مصنوعی", + "version": "نسخه", + "buildDate": "تاریخ ساخت", + "platform": "پلتفرم", + "platformWeb": "وب", + "features": { + "title": "ویژگی‌ها", + "description": "قابلیت‌های مبتنی بر هوش مصنوعی", + "titleSuggestions": "پیشنهادات عنوان مبتنی بر هوش مصنوعی", + "semanticSearch": "جستجوی معنایی با تعبیه‌ها", + "paragraphReformulation": "بازنویسی پاراگراف", + "memoryEcho": "بینش‌های روزانه Memory Echo", + "notebookOrganization": "سازماندهی دفترچه", + "dragDrop": "مدیریت یادداشت با کشیدن و رها کردن", + "labelSystem": "سیستم برچسب", + "multipleProviders": "چندین ارائه‌دهنده هوش مصنوعی (OpenAI، Ollama)" }, - "batchOrganization": { - "analyzing": "تحلیل یادداشت‌های شما...", - "apply": "اعمال", - "applyFailed": "اعمال طرح سازماندهی ناموفق", - "applying": "در حال اعمال...", - "description": "هوش مصنوعی یادداشت‌های شما را تحلیل و پیشنهاد سازماندهی در دفترچه‌ها را می‌دهد.", - "error": "ایجاد طرح سازماندهی ناموفق", - "noNotebooks": "دفترچه‌ای موجود نیست. ابتدا دفترچه ایجاد کنید.", - "noNotesSelected": "یادداشتی انتخاب نشده", - "noSuggestions": "هوش مصنوعی نتوانست روش خوبی برای سازماندهی این یادداشت‌ها پیدا کند.", - "selectAllIn": "انتخاب تمام یادداشت‌ها در {notebook}", - "selectNote": "انتخاب یادداشت: {title}", - "success": "{count} یادداشت با موفقیت جابجا شد", - "title": "سازماندهی با هوش مصنوعی" + "technology": { + "title": "پشته فناوری", + "description": "ساخته شده با فناوری‌های مدرن", + "frontend": "فرانت‌اند", + "backend": "بک‌اند", + "database": "پایگاه داده", + "authentication": "احراز هویت", + "ai": "هوش مصنوعی", + "ui": "رابط کاربری", + "testing": "تست" }, - "clarify": "شفاف‌سازی", - "clickToAddTag": "برای افزودن این برچسب کلیک کنید", - "generateTitles": "تولید عناوین", - "generateTitlesTooltip": "تولید عنوان با هوش مصنوعی", - "generating": "در حال تولید...", - "generatingTitles": "در حال تولید...", - "ignoreSuggestion": "نادیده گرفتن این پیشنهاد", - "improveStyle": "بهبود سبک", - "languageDetected": "زبان شناسایی شد", - "notebookSummary": { - "regenerate": "بازسازی خلاصه", - "regenerating": "در حال بازسازی خلاصه...", - "exportPDF": "صادرات به عنوان PDF" - }, - "original": "اصلی", - "poweredByAI": "قدرت گرفته از هوش مصنوعی", - "processing": "در حال پردازش...", - "reformulateText": "بازنویسی متن", - "reformulated": "بازنویسی شده", - "reformulating": "در حال بازنویسی...", - "reformulationApplied": "متن بازنویسی شده اعمال شد!", - "reformulationComparison": "مقایسه بازنویسی", - "reformulationError": "خطا در بازنویسی متن", - "reformulationFailed": "بازنویسی متن شکست خورد", - "reformulationMaxWords": "متن نباید بیشتر از 500 کلمه داشته باشد", - "reformulationMinWords": "متن باید حداقل 10 کلمه داشته باشد (فعلاً: {count} کلمه)", - "reformulationNoText": "متن را انتخاب کنید یا محتوایی اضافه کنید", - "reformulationSelectionTooShort": "انتخاب کوتاه است، از محتوای کامل استفاده می‌شود", - "shorten": "کوتاه کردن", - "tagAdded": "برچسب \"{tag}\" اضافه شد", - "titleApplied": "عنوان اعمال شد!", - "titleGenerateWithAI": "تولید عنوان با هوش مصنوعی", - "titleGenerating": "در حال تولید...", - "titleGenerationError": "خطا در تولید عناوین", - "titleGenerationFailed": "تولید عناوین شکست خورد", - "titleGenerationMinWords": "محتوا باید حداقل 10 کلمه داشته باشد تا عناوین تولید شوند (فعلاً: {count} کلمه)", - "titlesGenerated": "💡 {count} عنوان تولید شد!", - "transformError": "خطا در تبدیل", - "transformMarkdown": "تبدیل به مارک‌داون", - "transformSuccess": "متن با موفقیت به مارک‌داون تبدیل شد!", - "transforming": "در حال تبدیل...", - "translate": "ترجمه", - "translateDesc": "تغییر زبان متن", - "translateBack": "بازگشت", - "translationApplied": "ترجمه اعمال شد", - "translationFailed": "ترجمه ناموفق بود", - "undo": "لغو هوش مصنوعی", - "undoAI": "لغو تبدیل هوش مصنوعی", - "undoApplied": "متن اصلی بازگردانده شد", - "clarifyDesc": "متن را شفاف‌تر و قابل‌فهم‌تر کنید", - "shortenDesc": "متن را خلاصه کرده و به اصل مطلب برسید", - "improve": "بهبود نگارش", - "improveDesc": "اصلاح گرامر و بهبود سبک نگارش", - "toMarkdown": "قالب‌بندی به عنوان Markdown", - "toMarkdownDesc": "افزودن عناوین، نقاط گلوله‌ای و ساختاردهی متن", - "minWordsError": "یادداشت باید حداقل ۵ کلمه داشته باشد.", - "genericError": "خطای هوش مصنوعی", - "actionError": "خطا در حین عمل هوش مصنوعی", - "appliedToNote": "در یادداشت اعمال شد", - "applyToNote": "اعمال در یادداشت", - "undoLastAction": "برگرداندن آخرین عمل هوش مصنوعی", - "selectContext": "انتخاب زمینه...", - "selectNotebook": "انتخاب دفترچه", - "chatPlaceholder": "از هوش مصنوعی بخواهید ویرایش، خلاصه یا پیش‌نویس کند...", - "assistantTitle": "دستیار هوش مصنوعی", - "currentNote": "یادداشت فعلی", - "shrinkPanel": "کوچک کردن پنل", - "expandPanel": "بزرگ کردن پنل", - "chatTab": "چت", - "noteActions": "عملیات یادداشت", - "askToStart": "برای شروع سوالی از دستیار بپرسید.", - "contextLabel": "زمینه", - "thisNote": "این یادداشت", - "allMyNotes": "همه یادداشت‌های من", - "notebookGeneric": "دفترچه", - "writingTone": "لحن نوشتن", - "askAboutThisNote": "از هوش مصنوعی درباره این یادداشت بپرسید...", - "askAboutYourNotes": "از هوش مصنوعی درباره یادداشت‌هایتان بپرسید...", - "webSearchLabel": "جستجوی وب", - "newLineHint": "Shift+Enter = خط جدید", - "resultLabel": "نتیجه", - "discardAction": "رد کردن", - "transformationsDesc": "تبدیل‌ها — مستقیماً در یادداشت اعمال می‌شوند", - "writeMinWordsAction": "حداقل ۵ کلمه بنویسید تا عملیات هوش مصنوعی فعال شود.", - "processingAction": "در حال پردازش...", - "action": { - "clarify": "روشن کردن", - "shorten": "خلاصه کردن", - "improve": "بهبود", - "toMarkdown": "به مارک‌داون" - }, - "openAssistant": "باز کردن دستیار هوش مصنوعی", - "poweredByMomento": "پشتیبانی شده توسط Momento AI", - "welcomeMsg": "سلام! من دستیار هوش مصنوعی شما هستم. امروز چطور می‌توانم با یادداشت‌هایتان کمکتان کنم؟ می‌توانم لحن را بهبود دهم، پیام‌ها را بسط دهم یا محتوا را خلاصه کنم.", - "summaryLast5": "خلاصه ۵ یادداشت آخر", - "analyzingProgress": "در حال تحلیل...", - "generateInsightsBtn": "تولید بینش", - "newDiscussion": "بحث جدید", - "noRecentConversations": "بدون گفتگوی اخیر.", - "discussionContextLabel": "زمینه بحث", - "webSearchNotConfigured": "جستجوی وب (پیکربندی نشده)", - "historyTab": "تاریخچه", - "insightsTab": "بینش‌ها", - "aiCopilot": "دستیار هوشمند", - "suggestTitle": "پیشنهاد عنوان با هوش مصنوعی" + "support": { + "title": "پشتیبانی", + "description": "دریافت کمک و بازخورد", + "documentation": "مستندات", + "reportIssues": "گزارش مشکلات", + "feedback": "بازخورد" + } }, - "aiSettings": { - "description": "ویژگی‌ها و ترجیحات هوش مصنوعی خود را پیکربندی کنید", - "error": "به‌روزرسانی شکست خورد", - "features": "ویژگی‌های هوش مصنوعی", - "frequency": "فرکانس", - "frequencyDaily": "روزانه", - "frequencyWeekly": "هفتگی", - "provider": "فروشنده هوش مصنوعی", - "providerAuto": "خودکار (توصیه می‌شود)", - "providerOllama": "Ollama (محلی)", - "providerOpenAI": "OpenAI (ابر)", - "saved": "تنظیم به‌روزرسانی شد", - "saving": "در حال ذخیره...", - "title": "تنظیمات هوش مصنوعی", - "titleSuggestionsDesc": "پیشنهاد عناوان برای یادداشت‌های بدون عنوان پس از ۵۰+ کلمه", - "paragraphRefactorDesc": "گزینه‌های بهبود متن با هوش مصنوعی", - "frequencyDesc": "فرکانس تحلیل ارتباطات یادداشت", - "providerDesc": "فروشنده هوش مصنوعی مورد نظر خود را انتخاب کنید", - "providerAutoDesc": "Ollama در صورت وجود، در غیر این صورت OpenAI", - "providerOllamaDesc": "۱۰۰٪ خصوصی، به صورت محلی اجرا می‌شود", - "providerOpenAIDesc": "دقیق‌ترین، نیاز به کلید API دارد" - }, - "appearance": { - "description": "سفارشی‌سازی ظاهر برنامه", - "title": "ظاهر", - "notesViewDescription": "نحوه نمایش یادداشت‌ها در صفحه اصلی و دفترچه‌ها را انتخاب کنید.", - "notesViewLabel": "چیدمان یادداشت‌ها", - "notesViewTabs": "زبانه‌ها (سبک OneNote)", - "notesViewMasonry": "کارت‌ها (شبکه‌ای)" - }, - "auth": { - "backToLogin": "بازگشت به ورود", - "checkYourEmail": "ایمیل خود را بررسی کنید", - "createAccount": "ایجاد حساب کاربری", - "email": "ایمیل", - "emailPlaceholder": "آدرس ایمیل خود را وارد کنید", - "forgotPassword": "رمز عبور را فراموش کرده‌اید؟", - "forgotPasswordDescription": "آدرس ایمیل خود را وارد کنید تا لینک بازنشانی رمز عبور برای شما ارسال شود.", - "forgotPasswordTitle": "فراموشی رمز عبور", - "hasAccount": "قبلاً ثبت‌نام کرده‌اید؟", - "name": "نام", - "namePlaceholder": "نام خود را وارد کنید", - "noAccount": "حساب کاربری ندارید؟", - "orContinueWith": "یا ادامه با", - "password": "رمز عبور", - "passwordMinChars": "رمز عبور خود را وارد کنید (حداقل ۶ کاراکتر)", - "passwordPlaceholder": "رمز عبور خود را وارد کنید", - "rememberMe": "مرا به خاطر بسپار", - "resetEmailSent": "اگر آدرس ایمیل شما در سیستم ما وجود داشته باشد، لینک بازنشانی رمز عبور ارسال شد.", - "resetPassword": "بازنشانی رمز عبور", - "resetPasswordInstructions": "برای بازنشانی رمز عبور ایمیل خود را وارد کنید", - "returnToLogin": "بازگشت به ورود", - "sendResetLink": "ارسال لینک بازنشانی", - "sending": "در حال ارسال...", - "signIn": "ورود", - "signInToAccount": "به حساب کاربری خود وارد شوید", - "signOut": "خروج از حساب", - "signUp": "ثبت‌نام", - "confirmPassword": "تکرار رمز عبور", - "confirmPasswordPlaceholder": "رمز عبور را دوباره وارد کنید" - }, - "autoLabels": { - "aiPowered": "قدرت گرفته از هوش مصنوعی", - "analyzing": "در حال تحلیل یادداشت‌های شما...", - "applySuggested": "اعمال پیشنهادها", - "autoLabelBatchDescription": "افزودن خودکار برچسب‌ها برای یادداشت‌های انتخاب شده", - "autoLabelDescription": "افزودن خودکار برچسب‌ها بر اساس تحلیل هوش مصنوعی", - "autoLabelNoteDescription": "افزودن خودکار برچسب‌ها برای این یادداشت", - "confidence": "اطمینان: {score}%", - "contentAnalysis": "تحلیل محتوا", - "createNewLabel": "ایجاد این برچسب جدید و افزودن آن", - "created": "{count} برچسب با موفقیت ایجاد شد", - "description": "موضوعات تکراری در \"{notebookName}\" ({totalNotes} یادداشت) تشخیص دادم. برچسب برای آنها ایجاد شود؟", - "disabled": "غیرفعال", - "dismissAll": "رد کردن همه", - "enabled": "فعال", - "error": "خطا در برچسب‌های خودکار", - "generateMore": "تولید بیشتر", - "keywordExtraction": "استخراج کلمات کلیدی", - "labelCategories": "دسته‌های برچسب", - "labelCategoriesDescription": "انتخاب دسته‌ها برای برچسب‌گذاری خودکار", - "labelsApplied": "برچسب‌ها اعمال شدند", - "learnMore": "بیشتر بدانید", - "maxLabels": "حداکثر برچسب در هر یادداشت", - "maxLabelsDescription": "حداکثر تعداد برچسب در هر یادداشت", - "minConfidence": "حداقل اطمینان", - "minConfidenceDescription": "حداقل امتیاز (0-100) برای پیشنهادات هوش مصنوعی", - "new": "(جدید)", - "noLabelsGenerated": "هیچ برچسبی تولید نشد", - "noLabelsSelected": "برچسبی انتخاب نشده", - "note": "یادداشت", - "notes": "یادداشت‌ها", - "processing": "در حال پردازش...", - "saveSettings": "ذخیره تنظیمات", - "settings": "تنظیمات", - "settingsDescription": "پیکربندی ترجیحات برچسب‌های خودکار", - "settingsDialogTitle": "تنظیمات برچسب‌های خودکار", - "settingsSaved": "تنظیمات به‌روزرسانی شد", - "smartTagging": "برچسب‌گذاری هوشمند", - "suggestedLabels": "برچسب‌های پیشنهادی", - "title": "برچسب‌های خودکار", - "toggle": "فعال‌سازی برچسب‌های خودکار", - "typeContent": "برای دریافت پیشنهاد برچسب محتوا وارد کنید...", - "typeForSuggestions": "برای دریافت پیشنهادات تایپ کنید..." - }, - "batch": { - "organize": "سازماندهی", - "organizeWithAI": "سازماندهی با هوش مصنوعی" - }, - "batchOrganization": { - "addCategories": "افزودن دسته‌ها", - "addTags": "افزودن برچسب‌ها", - "analyzing": "در حال تحلیل یادداشت‌های شما...", - "apply": "اعمال ({count})", - "applyChanges": "اعمال تغییرات", - "applyFailed": "شکست در اعمال سازماندهی", - "applying": "در حال اعمال...", - "backToNote": "بازگشت به یادداشت", - "categories": "دسته‌ها", - "categorized": "دسته‌بندی شده: {count}", - "close": "بستن", - "confidence": "اطمینان", - "description": "هوش مصنوعی یادداشت‌های شما را تحلیل و پیشنهاد سازماندهی در دفترچه‌ها را می‌دهد.", - "done": "انجام شد", - "error": "شکست در ایجاد برنامه سازماندهی", - "finished": "سازماندهی با موفقیت به پایان رسید!", - "noNotebooks": "دفترچه‌ای موجود نیست. ابتدا دفترچه ایجاد کنید.", - "noNotesSelected": "هیچ یادداشتی انتخاب نشده", - "noSuggestions": "هوش مصنوعی نتوانست روش مناسبی برای سازماندهی این یادداشت‌ها پیدا کند.", - "noTagsAdded": "هیچ برچسبی اضافه نشد", - "notesToOrganize": "{count} یادداشت برای سازماندهی", - "organizing": "در حال سازماندهی...", - "results": "نتایج", - "reviewChanges": "مشاهده تغییرات", - "selectAllIn": "انتخاب همه", - "selectNote": "انتخاب یادداشت", - "selectNotes": "یادداشت‌ها را برای سازماندهی انتخاب کنید", - "selected": "{count} انتخاب شده", - "skip": "رد کردن", - "start": "شروع سازماندهی", - "success": "سازماندهی موفق", - "suggestedCategories": "دسته‌های پیشنهادی", - "suggestedTags": "برچسب‌های پیشنهادی", - "tagsAdded": "برچسب‌ها اضافه شده: {count}", - "title": "سازماندهی دسته‌ای", - "totalProcessed": "پردازش شده: {total}", - "unorganized": "{count} یادداشت دسته‌بندی نشدند و در یادداشت‌های عمومی باقی می‌مانند." - }, - "collaboration": { - "accessRevoked": "دسترسی لغو شد", - "addCollaborator": "افزودن همکار", - "addCollaboratorDescription": "افراد را برای همکاری در این یادداشت با آدرس ایمیل آنها اضافه کنید.", - "alreadyInList": "این ایمیل قبلاً در لیست است", - "canEdit": "می‌تواند ویرایش کند", - "canView": "می‌تواند مشاهده کند", - "done": "انجام شد", - "emailAddress": "آدرس ایمیل", - "emailPlaceholder": "آدرس ایمیل را وارد کنید", - "enterEmailAddress": "آدرس ایمیل را وارد کنید", - "errorLoading": "خطا در بارگذاری همکاران", - "failedToAdd": "شکست در افزودن همکار", - "failedToRemove": "شکست در حذف همکار", - "invite": "دعوت", - "noCollaborators": "هنوز همکاری وجود ندارد. کسی را اضافه کنید!", - "noCollaboratorsViewer": "هنوز همکاری وجود ندارد.", - "nowHasAccess": "{name} اکنون به این یادداشت دسترسی دارد", - "owner": "مالک", - "pending": "در انتظار", - "pendingInvite": "دعوت در انتظار", - "peopleWithAccess": "افراد دارای دسترسی", - "remove": "حذف", - "removeCollaborator": "حذف همکار", - "shareNote": "اشتراک‌گذاری یادداشت", - "shareWithCollaborators": "اشتراک‌گذاری با همکاران", - "unnamedUser": "کاربر بدون نام", - "viewerDescription": "شما به این یادداشت دسترسی دارید. فقط مالک می‌تواند همکاران را مدیریت کند.", - "willBeAdded": "{email} به عنوان همکار پس از ایجاد یادداشت اضافه خواهد شد" - }, - "colors": { - "blue": "آبی", - "default": "پیش‌فرض", - "gray": "خاکستری", - "green": "سبز", - "orange": "نارنجی", - "pink": "صورتی", - "purple": "بنفش", - "red": "قرمز", - "yellow": "زرد" - }, - "common": { - "add": "افزودن", - "cancel": "لغو", - "close": "بستن", - "confirm": "تأیید", - "delete": "حذف", - "edit": "ویرایش", - "error": "خطا", - "loading": "در حال بارگذاری...", - "noResults": "نتیجه‌ای یافت نشد", - "notAvailable": "در دسترس نیست", - "optional": "اختیاری", - "remove": "حذف", - "required": "الزامی", - "save": "ذخیره", - "search": "جستجو", - "success": "موفق", - "unknown": "نامشخص" - }, - "connection": { - "clickToView": "کلیک برای مشاهده یادداشت", - "helpful": "مفید", - "isHelpful": "این اتصال مفید است؟", - "memoryEchoDiscovery": "کشف Memory Echo", - "notHelpful": "غیرمفید", - "similarityInfo": "این یادداشت‌ها با شباهت {similarity}% متصل هستند" - }, - "dataManagement": { - "cleanup": { - "button": "پاکسازی", - "description": "حذف برچسب‌ها و اتصال‌هایی که به یادداشت‌های حذف شده ارجاع می‌دهند.", - "failed": "خطا در حین پاکسازی", - "title": "پاکسازی داده‌های یتیم" - }, - "cleanupComplete": "پاکسازی کامل شد", - "cleanupError": "خطای پاکسازی", - "dangerZone": "منطقه خطر", - "dangerZoneDescription": "این عملیات قابل بازگشت نیستند، با احتیاط باشید", - "delete": { - "button": "حذف همه یادداشت‌ها", - "confirm": "مطمئن هستید؟ این همه یادداشت‌های شما را برای همیشه حذف می‌کند.", - "description": "حذف دائمی همه یادداشت‌های شما. این عمل قابل بازگشت نیست.", - "failed": "شکست در حذف یادداشت‌ها", - "success": "همه یادداشت‌ها حذف شدند", - "title": "حذف همه یادداشت‌ها" - }, - "deleting": "در حال حذف...", - "export": { - "button": "صادرات یادداشت‌ها", - "description": "همه یادداشت‌های خود را به صورت فایل JSON دانلود کنید. شامل تمام محتوا، برچسب‌ها و ابرداده‌ها.", - "failed": "شکست در صادرات یادداشت‌ها", - "success": "یادداشت‌ها با موفقیت صادر شدند", - "title": "صادرات همه یادداشت‌ها" - }, - "exporting": "در حال صادرات...", - "import": { - "button": "وارد کردن یادداشت‌ها", - "description": "فایل JSON را برای وارد کردن یادداشت‌ها آپلود کنید. به یادداشت‌های موجود شما اضافه می‌شود، نه جایگزین.", - "failed": "شکست در وارد کردن یادداشت‌ها", - "success": "{count} یادداشت وارد شد", - "title": "وارد کردن یادداشت‌ها" - }, - "importing": "در حال وارد کردن...", - "indexing": { - "button": "بازسازی نمایه", - "description": "تولید مجدد تعبیه‌ها برای همه یادداشت‌ها برای بهبود جستجوی معنایی.", - "failed": "خطا در حین نمایه‌سازی", - "success": "نمایه‌سازی کامل: {count} یادداشت پردازش شد", - "title": "بازسازی نمایه جستجو" - }, - "indexingComplete": "نمایه‌سازی کامل شد", - "indexingError": "خطای نمایه‌سازی", - "title": "مدیریت داده", - "toolsDescription": "ابزارهایی برای حفظ سلامت پایگاه داده" + "support": { + "title": "پشتیبانی از توسعه Memento", + "description": "Memento ۱۰۰٪ رایگان و متن‌باز است. حمایت شما به حفظ این وضعیت کمک می‌کند.", + "buyMeACoffee": "برای من قهوه بخرید", + "donationDescription": "یک کمک مالی یکباره انجام دهید یا حامی ماهانه شوید.", + "donateOnKofi": "کمک در Ko-fi", + "kofiDescription": "بدون کارمزد پلتفرم • پرداخت فوری • امن", + "sponsorOnGithub": "حمایت در GitHub", + "sponsorDescription": "حامی ماهانه شوید و شناخته شوید.", + "githubDescription": "حمایت مکرر • شناخت عمومی • متمرکز بر توسعه‌دهندگان", + "howSupportHelps": "حمایت شما چگونه کمک می‌کند", + "directImpact": "تأثیر مستقیم", + "sponsorPerks": "مزایای حامیان", + "transparency": "شفافیت", + "transparencyDescription": "من به شفافیت کامل اعتقاد دارم. نحوه استفاده از کمک‌ها:", + "hostingServers": "میزبانی و سرورها:", + "domainSSL": "دامنه و SSL:", + "aiApiCosts": "هزینه‌های AI API:", + "totalExpenses": "کل هزینه‌ها:", + "otherWaysTitle": "سایر روش‌های حمایت", + "starGithub": "ستاره در GitHub", + "reportBug": "گزارش باگ", + "contributeCode": "مشارکت در کد", + "shareTwitter": "اشتراک‌گذاری در توییتر" }, "demoMode": { + "title": "حالت دمو", "activated": "حالت دمو فعال شد! Memory Echo اکنون فوراً کار خواهد کرد.", - "createNotesTip": "۲ یادداشت مشابه یا بیشتر بسازید و Memory Echo را در عمل ببینید!", "deactivated": "حالت دمو غیرفعال شد. پارامترهای عادی بازیابی شدند.", - "delayBetweenNotes": "تأخیر ۰ روز بین یادداشت‌ها (معمولاً ۷ روز)", + "toggleFailed": "شکست در تغییر حالت دمو", "description": "تسریع Memory Echo برای تست. اتصال‌ها فوراً ظاهر می‌شوند.", "parametersActive": "پارامترهای دمو فعال:", "similarityThreshold": "آستانه شباهت ۵۰٪ (معمولاً ۷۵٪)", - "title": "حالت دمو", - "toggleFailed": "شکست در تغییر حالت دمو", - "unlimitedInsights": "بینش‌های نامحدود (بدون محدودیت فرکانس)" - }, - "diagnostics": { - "apiStatus": "وضعیت API", - "checking": "در حال بررسی...", - "configuredProvider": "ارائه‌دهنده پیکربندی شده", - "description": "وضعیت اتصال ارائه‌دهنده هوش مصنوعی خود را بررسی کنید", - "errorStatus": "خطا", - "operational": "فعال", - "testDetails": "جزئیات تست:", - "tip1": "مطمئن شوید Ollama در حال اجرا است (ollama serve)", - "tip2": "بررسی کنید که مدل نصب شده است (ollama pull llama3)", - "tip3": "کلید OpenAI API خود را تأیید کنید", - "tip4": "اتصال شبکه را بررسی کنید", - "title": "تشخیص", - "troubleshootingTitle": "نکات عیب‌یابی:" - }, - "favorites": { - "noFavorites": "مورد علاقه‌ای نیست", - "pinToFavorite": "سنجاق به مورد علاقه‌ها", - "title": "مورد علاقه‌ها", - "toggleSection": "تغییر بخش مورد علاقه‌ها" - }, - "footer": { - "openSource": "نسخه متن‌باز", - "privacy": "حریم خصوصی", - "terms": "شرایط" - }, - "general": { - "add": "افزودن", - "apply": "اعمال", - "back": "بازگشت", - "cancel": "لغو", - "clean": "پاکسازی", - "clear": "پاک کردن", - "close": "بستن", - "confirm": "تأیید", - "edit": "ویرایش", - "error": "خطایی رخ داد", - "indexAll": "نمایه‌سازی همه", - "loading": "در حال بارگذاری...", - "next": "بعدی", - "operationFailed": "عملیات شکست خورد", - "operationSuccess": "عملیات موفقیت‌آمیز بود", - "preview": "پیش‌نمایش", - "previous": "قبلی", - "reset": "بازنشانی", - "save": "ذخیره", - "select": "انتخاب", - "submit": "ارسال", - "testConnection": "تست اتصال", - "tryAgain": "لطفا دوباره تلاش کنید" - }, - "generalSettings": { - "description": "تنظیمات عمومی برنامه", - "title": "تنظیمات عمومی" - }, - "labels": { - "addLabel": "افزودن برچسب", - "allLabels": "همه برچسب‌ها", - "changeColor": "تغییر رنگ", - "changeColorTooltip": "تغییر رنگ", - "clearAll": "پاک کردن همه", - "confirmDelete": "آیا مطمئن هستید که می‌خواهید این برچسب را حذف کنید؟", - "count": "{count} برچسب", - "noLabels": "بدون برچسب", - "confirmDeleteShort": "تأیید؟", - "labelRemoved": "برچسب \"{label}\" حذف شد" - }, - "memoryEcho": { - "clickToView": "برای مشاهده یادداشت کلیک کنید", - "comparison": { - "clickToView": "برای مشاهده یادداشت کلیک کنید", - "helpful": "مفید", - "helpfulQuestion": "این مقایسه مفید است؟", - "highSimilarityInsight": "این یادداشت‌ها در مورد یک موضوع با درجه بالایی از شباهت صحبت می‌کنند. می‌توانند ادغام یا تلفیق شوند.", - "notHelpful": "غیرمفید", - "similarityInfo": "این یادداشت‌ها با {similarity}% شباهت مرتبط هستند", - "title": "💡 مقایسه یادداشت‌ها", - "untitled": "بدون عنوان" - }, - "connection": "ارتباط", - "connections": "ارتباطات", - "connectionsBadge": "{count} ارتباط{plural}", - "dailyInsight": "بینش روزانه از یادداشت‌های شما", - "description": "ارتباطات پیشگیرانه بین یادداشت‌های شما", - "dismiss": "نادیده گرفتن برای الان", - "editorSection": { - "close": "بستن", - "compare": "مقایسه", - "compareAll": "مقایسه همه", - "loading": "در حال بارگذاری...", - "merge": "ادغام", - "mergeAll": "ادغام همه", - "title": "⚡ یادداشت‌های مرتبط ({count})", - "view": "مشاهده" - }, - "fused": "ادغام شده", - "fusion": { - "archiveOriginals": "بایگانی کردن نسخه‌های اصلی", - "cancel": "لغو", - "confirmFusion": "تأیید ادغام", - "createBacklinks": "ایجاد لینک برگشتی به یادداشت‌های اصلی", - "edit": "ویرایش", - "error": "ادغام یادداشت‌ها شکست خورد", - "finishEditing": "تمام کردن ویرایش", - "generateError": "شکست در تولید ادغام", - "generateFusion": "تولید ادغام", - "generating": "در حال تولید...", - "keepAllTags": "نگهداری همه برچسب‌ها", - "mergeNotes": "ادغام {count} یادداشت", - "modify": "تغییر", - "noContentReturned": "هیچ محتوای ادغامی از API بازگردانده نشد", - "notesToMerge": "📝 یادداشت‌های برای ادغام", - "optionalPrompt": "💠 پیامک ادغام (اختیاری)", - "optionsTitle": "گزینه‌های ادغام", - "previewTitle": "📝 پیش‌نمایش یادداشت ادغام شده", - "promptPlaceholder": "دستورات اختیاری برای هوش مصنوعی (مثلاً 'سبک رسمی یادداشت 1 را حفظ کن')...", - "success": "یادداشت‌ها با موفقیت ادغام شدند!", - "title": "🔗 ادغام هوشمند", - "unknownDate": "تاریخ ناشناخته", - "useLatestTitle": "استفاده از عنوان جدیدترین یادداشت" - }, - "generateError": "شکست در تولید ادغام", - "helpful": "مفید", - "insightReady": "بینش شما آماده است!", - "noContentReturned": "هیچ محتوایی توسط هوش مصنوعی بازگردانده نشد", - "notHelpful": "غیرمفید", - "overlay": { - "error": "خطا در بارگذاری ارتباطات", - "loading": "در حال بارگذاری...", - "noConnections": "هیچ ارتباطی یافت نشد", - "searchPlaceholder": "جستجوی ارتباطات...", - "sortBy": "مرتب‌سازی بر اساس:", - "sortOldest": "قدیمی‌ترین", - "sortRecent": "جدیدترین", - "sortSimilarity": "شباهت", - "title": "یادداشت‌های مرتبط", - "viewAll": "نمایش همه کنار هم" - }, - "thanksFeedback": "از بازخورد شما متشکرم!", - "thanksFeedbackImproving": "ممنون! ما از این برای بهبود استفاده خواهیم کرد.", - "title": "متوجه چیزی شدم...", - "unknownDate": "تاریخ ناشناخته", - "viewConnection": "مشاهده ارتباط", - "match": "{percentage}% تطابق" - }, - "nav": { - "accountSettings": "تنظیمات حساب", - "adminDashboard": "داشبورد مدیریت", - "aiSettings": "تنظیمات هوش مصنوعی", - "archive": "بایگانی", - "buyMeACoffee": "برای من قهوه بخرید", - "configureAI": "ویژگی‌های هوش مصنوعی، ارائه‌دهنده و ترجیحات خود را پیکربندی کنید", - "diagnostics": "تشخیص‌ها", - "donateOnKofi": "کمک مالی در Ko-fi", - "donationDescription": "یک کمک مالی یکباره انجام دهید یا حامی ماهانه شوید.", - "donationNote": "بدون کارمزد پلتفرم • پرداخت فوری • امن", - "favorites": "مورد علاقه‌ها", - "generalNotes": "یادداشت‌های عمومی", - "home": "خانه", - "login": "ورود", - "logout": "خروج", - "manageAISettings": "مدیریت تنظیمات هوش مصنوعی", - "myLibrary": "کتابخانه من", - "notebooks": "دفترچه‌ها", - "notes": "یادداشت‌ها", - "proPlan": "پلن پرو", - "profile": "پروفایل", - "quickAccess": "دسترسی سریع", - "recent": "اخیر", - "reminders": "یادآوری‌ها", - "settings": "تنظیمات", - "sponsorDescription": "حامی ماهانه شوید و شناخته شوید.", - "sponsorOnGithub": "حمایت در GitHub", - "support": "پشتیبانی مامنتو ☕", - "supportDescription": "Memento ۱۰۰٪ رایگان و متن‌باز است. حمایت شما به حفظ این وضعیت کمک می‌کند.", - "supportDevelopment": "حمایت از توسعه Memento ☕", - "trash": "سطل زباله", - "userManagement": "مدیریت کاربران", - "workspace": "فضای کار", - "chat": "چت هوش مصنوعی", - "lab": "آزمایشگاه", - "agents": "عامل‌ها" - }, - "notebook": { - "cancel": "لغو", - "create": "ایجاد دفترچه", - "createDescription": "یک مجموعه جدید برای سازماندهی یادداشت‌ها، ایده‌ها و پروژه‌های خود به طور مؤثر شروع کنید.", - "createNew": "ایجاد دفترچه جدید", - "creating": "در حال ایجاد...", - "delete": "حذف دفترچه", - "deleteConfirm": "حذف", - "deleteWarning": "آیا مطمئن هستید که می‌خواهید این دفترچه را حذف کنید؟ یادداشت‌ها به یادداشت‌های عمومی منتقل می‌شوند.", - "edit": "ویرایش دفترچه", - "editDescription": "نام، آیکون و رنگ دفترچه خود را تغییر دهید.", - "generating": "در حال تولید خلاصه...", - "labels": "برچسب‌ها", - "name": "نام دفترچه", - "noLabels": "بدون برچسب", - "selectColor": "رنگ", - "selectIcon": "آیکون", - "summary": "خلاصه دفترچه", - "summaryDescription": "تولید یک خلاصه مبتنی بر هوش مصنوعی از تمام یادداشت‌های این دفترچه.", - "summaryError": "خطا در تولید خلاصه", - "namePlaceholder": "مثلاً استراتژی بازاریابی سه‌ماهه چهارم", - "myNotebook": "دفترچه من", - "saving": "در حال ذخیره...", - "pdfTitle": "خلاصه — {name}", - "pdfNotesLabel": "یادداشت‌ها:", - "pdfGeneratedOn": "تاریخ تولید:", - "confidence": "اطمینان", - "savingReminder": "شکست در ذخیره یادآوری", - "removingReminder": "شکست در حذف یادآوری" - }, - "notebookSuggestion": { - "description": "به نظر می‌رسد این یادداشت متعلق به این دفترچه است", - "dismiss": "نادیده گرفتن", - "dismissIn": "نادیده گرفتن (بسته می‌شود در {timeLeft} ثانیه)", - "generalNotes": "یادداشت‌های عمومی", - "move": "انتقال", - "moveToNotebook": "انتقال به دفترچه", - "title": "انتقال به {name}؟" - }, - "notebooks": { - "allNotebooks": "همه دفترچه‌ها", - "create": "ایجاد دفترچه", - "createFirst": "ایجاد اولین دفترچه", - "noNotebooks": "دفترچه‌ای نیست" - }, - "notes": { - "add": "افزودن", - "addCollaborators": "افزودن همکاران", - "addImage": "افزودن تصویر", - "addItem": "افزودن آیتم", - "addLink": "افزودن پیوند", - "addListItem": "+ آیتم لیست", - "addNote": "افزودن یادداشت", - "adding": "در حال افزودن...", - "aiAssistant": "دستیار هوش مصنوعی", - "archive": "بایگانی", - "backgroundOptions": "گزینه‌های پس‌زمینه", - "changeColor": "تغییر رنگ", - "changeSize": "تغییر اندازه", - "clarifyFailed": "شفاف‌سازی شکست خورد", - "close": "بستن", - "color": "رنگ", - "confirmDelete": "آیا مطمئن هستید که می‌خواهید این یادداشت را حذف کنید؟", - "confirmLeaveShare": "آیا مطمئن هستید که می‌خواهید این یادداشت اشتراکی را ترک کنید؟", - "contentOrMediaRequired": "لطفا محتوا وارد کنید یا پیوند/تصویر اضافه کنید", - "copy": "کپی", - "copyFailed": "کپی یادداشت شکست خورد", - "copySuccess": "یادداشت با موفقیت کپی شد!", - "createFirstNote": "اولین یادداشت خود را ایجاد کنید", - "date": "تاریخ", - "delete": "حذف", - "dragToReorder": "بکشید تا مرتب کنید", - "duplicate": "تکثیر", - "edit": "ویرایش", - "emptyState": "یادداشتی نیست", - "fileTooLarge": "فایل خیلی بزرگ است: {fileName}. حداکثر اندازه {maxSize}.", - "improveFailed": "بهبود شکست خورد", - "inNotebook": "در دفترچه", - "invalidDateTime": "تاریخ یا زمان نامعتبر", - "invalidFileType": "نوع فایل نامعتبر: {fileName}. فقط JPEG، PNG، GIF و WebP مجاز است.", - "itemOrMediaRequired": "لطفا حداقل یک آیتم یا رسانه اضافه کنید", - "large": "بزرگ", - "leaveShare": "ترک", - "linkAddFailed": "افزودن پیوند شکست خورد", - "linkAdded": "پیوند اضافه شد", - "linkMetadataFailed": "نمی‌توان ابرداده‌های پیوند را دریافت کرد", - "listItem": "آیتم لیست", - "makeCopy": "ایجاد کپی", - "markdown": "مارک‌داون", - "markdownMode": "مارک‌داون", - "markdownOff": "Markdown خاموش", - "markdownOn": "Markdown روشن", - "markdownPlaceholder": "یادداشت بگیرید... (Markdown پشتیبانی می‌شود)", - "medium": "متوسط", - "more": "بیشتر", - "moreOptions": "گزینه‌های بیشتر", - "moveFailed": "انتقال شکست خورد", - "newChecklist": "لیست جدید", - "newNote": "یادداشت جدید", - "noContent": "بدون محتوا", - "noNotes": "بدون عنوان", - "noNotesFound": "یادداشتی یافت نشد", - "noteCreateFailed": "ایجاد یادداشت شکست خورد", - "noteCreated": "یادداشت با موفقیت ایجاد شد", - "others": "سایر", - "pin": "سنجاق کردن", - "pinned": "سنجاق شده", - "pinnedNotes": "یادداشت‌های سنجاق شده", - "placeholder": "یادداشت بگیرید...", - "preview": "پیش‌نمایش", - "readOnly": "فقط خواندنی", - "recent": "اخیر", - "redo": "انجام مجدد", - "redoShortcut": "انجام مجدد (Ctrl+Y)", - "remindMe": "یادآوری به من", - "reminderDateTimeRequired": "لطفا تاریخ و زمان را وارد کنید", - "reminderMustBeFuture": "یادآوری باید در آینده باشد", - "reminderPastError": "یادآوری باید در آینده باشد", - "reminderRemoved": "یادآوری حذف شد", - "reminderSet": "یادآوری برای {datetime} تنظیم شد", - "remove": "حذف", - "saving": "در حال ذخیره...", - "setReminder": "تنظیم یادآوری", - "setReminderButton": "تنظیم یادآوری", - "share": "اشتراک‌گذاری", - "shareWithCollaborators": "اشتراک‌گذاری با همکاران", - "sharedBy": "به اشتراک گذاشته توسط", - "sharedReadOnly": "این یادداشت در حالت فقط خواندنی با شما به اشتراک گذاشته شده است", - "shortenFailed": "کوتاه کردن شکست خورد", - "showCollaborators": "مشاهده همکاران", - "size": "اندازه", - "small": "کوچک", - "takeNote": "یادداشت بنویسید...", - "takeNoteMarkdown": "یادداشت بنویسید... (Markdown پشتیبانی می‌شود)", - "time": "زمان", - "title": "یادداشت‌ها", - "titlePlaceholder": "عنوان", - "transformFailed": "تبدیل شکست خورد", - "unarchive": "خروج از بایگانی", - "undo": "بازگردانی", - "undoShortcut": "بازگردانی (Ctrl+Z)", - "unpin": "برداشتن سنجاق", - "unpinned": "سنجاق نشده", - "untitled": "بدون عنوان", - "uploadFailed": "آپلود {fileName} شکست خورد", - "view": "مشاهده یادداشت", - "modified": "ویرایش شده", - "created": "ایجاد شده", - "viewTabs": "نمایش لیستی", - "viewCards": "نمایش کارتی", - "emptyStateTabs": "هنوز یادداشتی اینجا نیست. از «یادداشت جدید» در نوار کناری استفاده کنید (پیشنهادات عنوان هوش مصنوعی در ویرایشگر نمایش داده می‌شود).", - "viewCardsTooltip": "شبکه کارتی با مرتب‌سازی کشیدن و رها کردن", - "viewTabsTooltip": "زبانه‌ها در بالا، یادداشت در پایین — زبانه‌ها را بکشید تا مرتب شوند", - "viewModeGroup": "حالت نمایش یادداشت‌ها", - "reorderTabs": "مرتب‌سازی زبانه", - "loading": "در حال بارگذاری...", - "exportPDF": "خروجی PDF", - "savedStatus": "ذخیره شد", - "dirtyStatus": "تغییر یافته", - "completedLabel": "تکمیل شده", - "notes.emptyNotebook": "دفترچه خالی", - "notes.emptyNotebookDesc": "این دفترچه یادداشتی ندارد. روی + کلیک کنید تا یکی بسازید.", - "notes.noNoteSelected": "یادداشتی انتخاب نشده", - "notes.selectOrCreateNote": "یک یادداشت از لیست انتخاب کنید یا یکی جدید بسازید.", - "commitVersion": "ذخیره نسخه", - "versionSaved": "نسخه ذخیره شد", - "deleteVersion": "حذف این نسخه", - "versionDeleted": "نسخه حذف شد", - "deleteVersionConfirm": "این نسخه برای همیشه حذف شود؟", - "historyMode": "حالت تاریخچه", - "historyModeManual": "دستی (دکمه ثبت)", - "historyModeAuto": "خودکار (هوشمند)", - "historyModeManualDesc": "ایجاد اسنپ‌شات دستی با دکمه ثبت", - "historyModeAutoDesc": "اسنپ‌شات خودکار با تشخیص هوشمند", - "history": "تاریخچه", - "historyRestored": "نسخه بازیابی شد", - "historyEnabled": "تاریخچه فعال شد", - "historyDisabledDesc": "تاریخچه برای حساب شما غیرفعال است.", - "enableHistory": "فعال‌سازی تاریخچه", - "historyEmpty": "نسخه‌ای موجود نیست", - "historySelectVersion": "نسخه‌ای را برای پیش‌نمایش انتخاب کنید", - "sortBy": "مرتب‌سازی بر اساس", - "sortDateDesc": "تاریخ (جدیدترین)", - "sortDateAsc": "تاریخ (قدیمی‌ترین)", - "sortTitleAsc": "عنوان الف ← ی", - "sortTitleDesc": "عنوان ی ← الف" - }, - "pagination": { - "next": "→", - "pageInfo": "صفحه {currentPage} / {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "غیررسمی", - "expand": "بسط دادن", - "formal": "رسمی", - "improve": "بهبود", - "shorten": "کوتاه کردن", - "title": "بهبود متن" - }, - "profile": { - "accountSettings": "تنظیمات حساب", - "autoDetect": "تشخیص خودکار", - "changePassword": "تغییر رمز عبور", - "changePasswordDescription": "رمز عبور خود را به‌روز کنید. رمز عبور فعلی شما لازم است.", - "confirmPassword": "تأیید رمز عبور", - "currentPassword": "رمز عبور فعلی", - "description": "اطلاعات شخصی خود را به‌روز کنید", - "displayName": "نام نمایشی", - "displaySettings": "تنظیمات نمایش", - "displaySettingsDescription": "ظاهر و اندازه فونت را سفارشی کنید.", - "email": "ایمیل", - "fontSize": "اندازه فونت", - "fontSizeDescription": "اندازه فونت را برای خوانایی بهتر تنظیم کنید. این مورد به تمام متن‌های رابط کاربری اعمال می‌شود.", - "fontSizeExtraLarge": "بسیار بزرگ", - "fontSizeLarge": "بزرگ", - "fontSizeMedium": "متوسط", - "fontSizeSmall": "کوچک", - "fontSizeUpdateFailed": "به‌روزرسانی اندازه فونت شکست خورد", - "fontSizeUpdateSuccess": "اندازه فونت با موفقیت به‌روزرسانی شد", - "languageDescription": "این زبان برای ویژگی‌های هوش مصنوعی، تحلیل محتوا و متن رابط کاربری استفاده خواهد شد.", - "languagePreferences": "ترجیحات زبان", - "languagePreferencesDescription": "زبان مورد نظر خود را برای ویژگی‌های هوش مصنوعی و رابط کاربری انتخاب کنید.", - "languageUpdateFailed": "به‌روزرسانی زبان شکست خورد", - "languageUpdateSuccess": "زبان با موفقیت به‌روزرسانی شد", - "manageAISettings": "مدیریت تنظیمات هوش مصنوعی", - "newPassword": "رمز عبور جدید", - "passwordChangeFailed": "تغییر رمز عبور شکست خورد", - "passwordChangeSuccess": "رمز عبور با موفقیت تغییر کرد", - "passwordError": "خطا در به‌روزرسانی رمز عبور", - "passwordUpdated": "رمز عبور به‌روزرسانی شد", - "preferredLanguage": "زبان مورد نظر", - "profileError": "خطا در به‌روزرسانی پروفایل", - "profileUpdated": "پروفایل به‌روزرسانی شد", - "recentNotesUpdateFailed": "به‌روزرسانی تنظیم یادداشت‌های اخیر شکست خورد", - "recentNotesUpdateSuccess": "تنظیم یادداشت‌های اخیر با موفقیت به‌روزرسانی شد", - "selectFontSize": "اندازه فونت را انتخاب کنید", - "selectLanguage": "یک زبان انتخاب کنید", - "showRecentNotes": "نمایش بخش یادداشت‌های اخیر", - "showRecentNotesDescription": "نمایش یادداشت‌های اخیر (۷ روز گذشته) در صفحه اصلی", - "title": "پروفایل", - "updateFailed": "به‌روزرسانی پروفایل شکست خورد", - "updatePassword": "به‌روزرسانی رمز عبور", - "updateSuccess": "پروفایل به‌روزرسانی شد" - }, - "reminder": { - "cancel": "لغو", - "reminderDate": "تاریخ یادآوری", - "reminderTime": "زمان یادآوری", - "removeReminder": "حذف یادآوری", - "save": "تنظیم", - "setReminder": "تنظیم یادآوری", - "title": "یادآوری" + "delayBetweenNotes": "تأخیر ۰ روز بین یادداشت‌ها (معمولاً ۷ روز)", + "unlimitedInsights": "بینش‌های نامحدود (بدون محدودیت فرکانس)", + "createNotesTip": "۲ یادداشت مشابه یا بیشتر بسازید و Memory Echo را در عمل ببینید!" }, "resetPassword": { - "confirmNewPassword": "تأیید رمز عبور جدید", + "title": "بازنشانی رمز عبور", "description": "رمز عبور جدید خود را در زیر وارد کنید.", - "invalidLinkDescription": "این لینک بازنشانی رمز عبور نامعتبر یا منقضی شده است.", "invalidLinkTitle": "لینک نامعتبر", - "loading": "در حال بارگذاری...", - "newPassword": "رمز عبور جدید", - "passwordMismatch": "رمزهای عبور مطابقت ندارند", + "invalidLinkDescription": "این لینک بازنشانی رمز عبور نامعتبر یا منقضی شده است.", "requestNewLink": "درخواست لینک جدید", - "resetPassword": "بازنشانی رمز عبور", + "newPassword": "رمز عبور جدید", + "confirmNewPassword": "تأیید رمز عبور جدید", "resetting": "در حال بازنشانی...", + "resetPassword": "بازنشانی رمز عبور", + "passwordMismatch": "رمزهای عبور مطابقت ندارند", "success": "رمز عبور با موفقیت بازنشانی شد. اکنون می‌توانید وارد شوید.", - "title": "بازنشانی رمز عبور" + "loading": "در حال بارگذاری..." }, - "search": { - "exactMatch": "تطابق دقیق", - "noResults": "نتیجه‌ای یافت نشد", - "placeholder": "جستجو", - "related": "مرتبط", - "resultsFound": "{count} یادداشت یافت شد", - "searchPlaceholder": "در یادداشت‌های خود جستجو کنید...", - "searching": "در حال جستجو...", - "semanticInProgress": "جستجوی هوش مصنوعی در حال انجام...", - "semanticTooltip": "جستجوی معنایی هوش مصنوعی", - "disabledAdmin": "جستجو در حالت ادمین غیرفعال است" + "dataManagement": { + "title": "مدیریت داده", + "toolsDescription": "ابزارهایی برای حفظ سلامت پایگاه داده", + "exporting": "در حال صادرات...", + "importing": "در حال وارد کردن...", + "deleting": "در حال حذف...", + "dangerZone": "منطقه خطر", + "dangerZoneDescription": "این عملیات قابل بازگشت نیستند، با احتیاط باشید", + "indexingComplete": "نمایه‌سازی کامل شد", + "indexingError": "خطای نمایه‌سازی", + "cleanupComplete": "پاکسازی کامل شد", + "cleanupError": "خطای پاکسازی", + "export": { + "title": "صادرات همه یادداشت‌ها", + "description": "همه یادداشت‌های خود را به صورت فایل JSON دانلود کنید. شامل تمام محتوا، برچسب‌ها و ابرداده‌ها.", + "button": "صادرات یادداشت‌ها", + "success": "یادداشت‌ها با موفقیت صادر شدند", + "failed": "شکست در صادرات یادداشت‌ها" + }, + "import": { + "title": "وارد کردن یادداشت‌ها", + "description": "فایل JSON را برای وارد کردن یادداشت‌ها آپلود کنید. به یادداشت‌های موجود شما اضافه می‌شود، نه جایگزین.", + "button": "وارد کردن یادداشت‌ها", + "success": "{count} یادداشت وارد شد", + "failed": "شکست در وارد کردن یادداشت‌ها" + }, + "delete": { + "title": "حذف همه یادداشت‌ها", + "description": "حذف دائمی همه یادداشت‌های شما. این عمل قابل بازگشت نیست.", + "button": "حذف همه یادداشت‌ها", + "confirm": "مطمئن هستید؟ این همه یادداشت‌های شما را برای همیشه حذف می‌کند.", + "success": "همه یادداشت‌ها حذف شدند", + "failed": "شکست در حذف یادداشت‌ها" + }, + "indexing": { + "title": "بازسازی نمایه جستجو", + "description": "تولید مجدد تعبیه‌ها برای همه یادداشت‌ها برای بهبود جستجوی معنایی.", + "button": "بازسازی نمایه", + "success": "نمایه‌سازی کامل: {count} یادداشت پردازش شد", + "failed": "خطا در حین نمایه‌سازی" + }, + "cleanup": { + "title": "پاکسازی داده‌های یتیم", + "description": "حذف برچسب‌ها و اتصال‌هایی که به یادداشت‌های حذف شده ارجاع می‌دهند.", + "button": "پاکسازی", + "failed": "خطا در حین پاکسازی" + } }, - "semanticSearch": { - "exactMatch": "تطابق دقیق", - "related": "مرتبط", - "searching": "در حال جستجو..." + "appearance": { + "title": "ظاهر", + "description": "سفارشی‌سازی ظاهر برنامه", + "notesViewDescription": "نحوه نمایش یادداشت‌ها در صفحه اصلی و دفترچه‌ها را انتخاب کنید.", + "notesViewLabel": "چیدمان یادداشت‌ها", + "notesViewTabs": "زبانه‌ها (سبک OneNote)", + "notesViewMasonry": "کارت‌ها (شبکه‌ای)", + "selectTheme": "Select theme" }, - "settings": { - "about": "درباره", - "account": "حساب کاربری", - "appearance": "ظاهر", - "cleanTags": "پاکسازی برچسب‌های یتیم", - "cleanTagsDescription": "حذف برچسب‌هایی که دیگر توسط هیچ یادداشتی استفاده نمی‌شوند", - "description": "مدیریت تنظیمات و ترجیحات خود", - "language": "زبان", - "languageAuto": "تشخیص خودکار", - "maintenance": "نگهداری", - "maintenanceDescription": "ابزارهایی برای حفظ سلامت پایگاه داده", - "notifications": "اعلان‌ها", - "privacy": "حریم خصوصی", - "profile": "پروفایل", - "searchNoResults": "تنظیمات مطابق یافت نشد", - "security": "امنیت", - "selectLanguage": "انتخاب زبان", - "semanticIndexing": "نمایه‌سازی معنایی", - "semanticIndexingDescription": "تولید بردارها برای همه یادداشت‌ها جهت فعال‌سازی جستجوی مبتنی بر قصد", - "settingsError": "خطا در ذخیره تنظیمات", - "settingsSaved": "تنظیمات ذخیره شد", - "theme": "تم", - "themeDark": "تاریک", - "themeLight": "روشن", - "themeSystem": "سیستم", - "title": "تنظیمات", - "version": "نسخه", - "emailNotifications": "اعلان‌های ایمیل", - "emailNotificationsDesc": "دریافت اعلان‌های مهم از طریق ایمیل", - "desktopNotifications": "اعلان‌های مرورگر", - "desktopNotificationsDesc": "دریافت اعلان‌ها در مرورگر", - "notificationsDesc": "مدیریت تنظیمات اعلان", - "cleanupDone": "{created} رکورد برچسب همگام‌سازی شد، {deleted} یتیم حذف شد", - "cleanupNothing": "کاری برای انجام نیست — برچسب‌ها از قبل با یادداشت‌های شما مطابقت دارند", - "cleanupWithErrors": "برخی عملیات‌ها شکست خورد", - "cleanupError": "پاکسازی برچسب‌ها ناموفق بود", - "indexingComplete": "نمایه‌سازی کامل: {count} یادداشت پردازش شد", - "indexingError": "خطا در حین نمایه‌سازی" + "generalSettings": { + "title": "تنظیمات عمومی", + "description": "تنظیمات عمومی برنامه" }, - "sidebar": { - "archive": "بایگانی", - "editLabels": "ویرایش برچسب‌ها", - "labels": "برچسب‌ها", - "notes": "یادداشت‌ها", - "reminders": "یادآورها", - "trash": "زباله‌دان", - "newNoteTabs": "یادداشت جدید", - "newNoteTabsHint": "ایجاد یادداشت جدید در این دفترچه", - "edit": "ویرایش یادداشت", - "noLabelsInNotebook": "هنوز برچسبی در این دفترچه وجود ندارد" - }, - "support": { - "aiApiCosts": "هزینه‌های AI API:", - "buyMeACoffee": "برای من قهوه بخرید", - "contributeCode": "مشارکت در کد", - "description": "Memento ۱۰۰٪ رایگان و متن‌باز است. حمایت شما به حفظ این وضعیت کمک می‌کند.", - "directImpact": "تأثیر مستقیم", - "domainSSL": "دامنه و SSL:", - "donateOnKofi": "کمک در Ko-fi", - "donationDescription": "یک کمک مالی یکباره انجام دهید یا حامی ماهانه شوید.", - "githubDescription": "حمایت مکرر • شناخت عمومی • متمرکز بر توسعه‌دهندگان", - "hostingServers": "میزبانی و سرورها:", - "howSupportHelps": "حمایت شما چگونه کمک می‌کند", - "kofiDescription": "بدون کارمزد پلتفرم • پرداخت فوری • امن", - "otherWaysTitle": "سایر روش‌های حمایت", - "reportBug": "گزارش باگ", - "shareTwitter": "اشتراک‌گذاری در توییتر", - "sponsorDescription": "حامی ماهانه شوید و شناخته شوید.", - "sponsorOnGithub": "حمایت در GitHub", - "sponsorPerks": "مزایای حامیان", - "starGithub": "ستاره در GitHub", - "title": "پشتیبانی از توسعه Memento", - "totalExpenses": "کل هزینه‌ها:", - "transparency": "شفافیت", - "transparencyDescription": "من به شفافیت کامل اعتقاد دارم. نحوه استفاده از کمک‌ها:" + "toast": { + "saved": "تنظیم ذخیره شد", + "saveFailed": "شکست در ذخیره تنظیم", + "operationSuccess": "عملیات موفق", + "operationFailed": "عملیات ناموفق", + "openingConnection": "در حال باز کردن اتصال...", + "openConnectionFailed": "شکست در باز کردن اتصال", + "thanksFeedback": "ممنون از بازخورد شما!", + "thanksFeedbackImproving": "ممنون! از این برای بهبود استفاده می‌کنیم.", + "feedbackFailed": "شکست در ارسال بازخورد", + "notesFusionSuccess": "یادداشت‌ها با موفقیت ادغام شدند!" }, "testPages": { "titleSuggestions": { - "analyzing": "در حال تحلیل...", - "contentLabel": "محتوا (نیاز به ۵۰ کلمه یا بیشتر):", - "error": "خطا:", - "idle": "بیکار", - "noSuggestions": "هنوز پیشنهادی نیست. ۵۰ کلمه یا بیشتر تایپ کنید و ۲ ثانیه صبر کنید.", - "placeholder": "حداقل ۵۰ کلمه اینجا تایپ کنید...", - "status": "وضعیت:", - "suggestions": "پیشنهادات ({count}):", "title": "تست پیشنهادات عنوان", - "wordCount": "تعداد کلمات:" + "contentLabel": "محتوا (نیاز به ۵۰ کلمه یا بیشتر):", + "placeholder": "حداقل ۵۰ کلمه اینجا تایپ کنید...", + "wordCount": "تعداد کلمات:", + "status": "وضعیت:", + "analyzing": "در حال تحلیل...", + "idle": "بیکار", + "error": "خطا:", + "suggestions": "پیشنهادات ({count}):", + "noSuggestions": "هنوز پیشنهادی نیست. ۵۰ کلمه یا بیشتر تایپ کنید و ۲ ثانیه صبر کنید." } }, - "time": { - "daysAgo": "{count} روز پیش", - "hoursAgo": "{count} ساعت پیش", - "justNow": "همین الان", - "minutesAgo": "{count} دقیقه پیش", - "today": "امروز", - "tomorrow": "فردا", - "yesterday": "دیروز" - }, - "titleSuggestions": { - "available": "پیشنهادات عنوان", - "dismiss": "نادیده گرفتن", - "generating": "در حال تولید...", - "selectTitle": "یک عنوان را انتخاب کنید", - "title": "پیشنهادات هوش مصنوعی" - }, - "toast": { - "feedbackFailed": "شکست در ارسال بازخورد", - "notesFusionSuccess": "یادداشت‌ها با موفقیت ادغام شدند!", - "openConnectionFailed": "شکست در باز کردن اتصال", - "openingConnection": "در حال باز کردن اتصال...", - "operationFailed": "عملیات ناموفق", - "operationSuccess": "عملیات موفق", - "saveFailed": "شکست در ذخیره تنظیم", - "saved": "تنظیم ذخیره شد", - "thanksFeedback": "ممنون از بازخورد شما!", - "thanksFeedbackImproving": "ممنون! از این برای بهبود استفاده می‌کنیم." - }, "trash": { "title": "سطل زباله", "empty": "سطل زباله خالی است", @@ -1287,11 +1212,83 @@ "permanentDelete": "حذف دائمی", "permanentDeleteConfirm": "این یادداشت برای همیشه حذف خواهد شد. این عمل قابل بازگشت نیست." }, + "footer": { + "privacy": "حریم خصوصی", + "terms": "شرایط", + "openSource": "نسخه متن‌باز" + }, + "connection": { + "similarityInfo": "این یادداشت‌ها با شباهت {similarity}% متصل هستند", + "clickToView": "کلیک برای مشاهده یادداشت", + "isHelpful": "این اتصال مفید است؟", + "helpful": "مفید", + "notHelpful": "غیرمفید", + "memoryEchoDiscovery": "کشف Memory Echo" + }, + "diagnostics": { + "title": "تشخیص", + "description": "وضعیت اتصال ارائه‌دهنده هوش مصنوعی خود را بررسی کنید", + "configuredProvider": "ارائه‌دهنده پیکربندی شده", + "apiStatus": "وضعیت API", + "operational": "فعال", + "errorStatus": "خطا", + "checking": "در حال بررسی...", + "testDetails": "جزئیات تست:", + "troubleshootingTitle": "نکات عیب‌یابی:", + "tip1": "مطمئن شوید Ollama در حال اجرا است (ollama serve)", + "tip2": "بررسی کنید که مدل نصب شده است (ollama pull llama3)", + "tip3": "کلید OpenAI API خود را تأیید کنید", + "tip4": "اتصال شبکه را بررسی کنید" + }, + "batch": { + "organizeWithAI": "سازماندهی با هوش مصنوعی", + "organize": "سازماندهی" + }, + "common": { + "unknown": "نامشخص", + "notAvailable": "در دسترس نیست", + "loading": "در حال بارگذاری...", + "error": "خطا", + "success": "موفق", + "confirm": "تأیید", + "cancel": "لغو", + "close": "بستن", + "save": "ذخیره", + "delete": "حذف", + "edit": "ویرایش", + "add": "افزودن", + "remove": "حذف", + "search": "جستجو", + "noResults": "نتیجه‌ای یافت نشد", + "required": "الزامی", + "optional": "اختیاری" + }, + "time": { + "justNow": "همین الان", + "minutesAgo": "{count} دقیقه پیش", + "hoursAgo": "{count} ساعت پیش", + "daysAgo": "{count} روز پیش", + "yesterday": "دیروز", + "today": "امروز", + "tomorrow": "فردا" + }, + "favorites": { + "title": "مورد علاقه‌ها", + "toggleSection": "تغییر بخش مورد علاقه‌ها", + "noFavorites": "مورد علاقه‌ای نیست", + "pinToFavorite": "سنجاق به مورد علاقه‌ها" + }, + "notebooks": { + "create": "ایجاد دفترچه", + "allNotebooks": "همه دفترچه‌ها", + "noNotebooks": "دفترچه‌ای نیست", + "createFirst": "ایجاد اولین دفترچه" + }, "ui": { "close": "بستن", - "collapse": "جمع کردن", + "open": "باز کردن", "expand": "بسط دادن", - "open": "باز کردن" + "collapse": "جمع کردن" }, "mcpSettings": { "title": "تنظیمات MCP", @@ -1358,6 +1355,10 @@ "subtitle": "خودکارسازی وظایف پایش و تحقیق شما", "newAgent": "عامل جدید", "myAgents": "عامل‌های من", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "بدون عامل", "noAgentsDescription": "اولین عامل خود را بسازید یا قالب زیر را نصب کنید تا وظایف پایش خود را خودکار کنید.", "types": { @@ -1400,7 +1401,9 @@ "researchTopic": "موضوع تحقیق", "researchTopicPlaceholder": "مثال: آخرین پیشرفت‌ها در هوش مصنوعی", "notifyEmail": "اعلان ایمیل", - "notifyEmailHint": "پس از هر اجرا، ایمیل حاوی نتایج عامل دریافت کنید" + "notifyEmailHint": "پس از هر اجرا، ایمیل حاوی نتایج عامل دریافت کنید", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "دستی", @@ -1409,6 +1412,22 @@ "weekly": "هفتگی", "monthly": "ماهانه" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "موفق", "failure": "ناموفق", @@ -1437,7 +1456,9 @@ "toggleError": "خطا در تغییر وضعیت عامل", "installSuccess": "\"{name}\" نصب شد", "installError": "خطا در حین نصب", - "saveError": "خطا در ذخیره" + "saveError": "خطا در ذخیره", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "قالب‌ها", @@ -1550,7 +1571,8 @@ "welcome": "من اینجا هستم تا در خلاصه‌سازی یادداشت‌ها، تولید ایده‌های جدید یا بحث درباره دفترچه‌هایتان به شما کمک کنم.", "searching": "در حال جستجو...", "noNotesFoundForContext": "هیچ یادداشت مرتبطی برای این سوال یافت نشد. با دانش عمومی خود پاسخ دهید.", - "webSearch": "جستجوی وب" + "webSearch": "جستجوی وب", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "آزمایشگاه", @@ -1567,30 +1589,8 @@ "createFailed": "ایجاد ناموفق بود", "deleteSpace": "حذف فضا", "deleted": "فضا حذف شد", - "deleteError": "خطا در حذف" - }, - "notification": { - "shared": "\"{title}\" به اشتراک گذاشته شد", - "untitled": "بدون عنوان", - "notifications": "اعلان‌ها", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "اشتراک‌گذاری رد شد", - "noNotifications": "No new notifications", - "removed": "یادداشت از لیست حذف شد" - }, - "reminders": { - "title": "یادآوری‌ها", - "empty": "بدون یادآوری", - "emptyDescription": "به یک یادداشت یادآوری اضافه کنید تا اینجا نمایش داده شود.", - "upcoming": "پیش رو", - "overdue": "سررسید گذشته", - "done": "انجام شده", - "markDone": "علامت‌گذاری به عنوان انجام شده", - "markUndone": "علامت‌گذاری به عنوان انجام نشده", - "todayAt": "امروز ساعت {time}", - "tomorrowAt": "فردا ساعت {time}" + "deleteError": "خطا در حذف", + "rename": "Rename" }, "lab": { "initializing": "راه‌اندازی فضای کاری", diff --git a/memento-note/locales/fr.json b/memento-note/locales/fr.json index 599a2f9..1054b9b 100644 --- a/memento-note/locales/fr.json +++ b/memento-note/locales/fr.json @@ -1,357 +1,366 @@ { - "about": { - "appDescription": "Une application de prise de notes puissante avec des fonctionnalités IA", - "appName": "Memento", - "buildDate": "Date de build", - "description": "Informations sur l'application", - "features": { - "description": "Capacités alimentées par l'IA", - "dragDrop": "Gestion des notes par glisser-déposer", - "labelSystem": "Système d'étiquettes", - "memoryEcho": "Perspectives quotidiennes Memory Echo", - "multipleProviders": "Plusieurs fournisseurs IA (OpenAI, Ollama)", - "notebookOrganization": "Organisation en carnets", - "paragraphReformulation": "Reformulation de paragraphes", - "semanticSearch": "Recherche sémantique avec embeddings", - "title": "Fonctionnalités", - "titleSuggestions": "Suggestions de titre alimentées par l'IA" - }, - "platform": "Plateforme", - "platformWeb": "Web", - "support": { - "description": "Obtenez de l'aide et donnez votre avis", - "documentation": "Documentation", - "feedback": "Commentaires", - "reportIssues": "Signaler des problèmes", - "title": "Support" - }, - "technology": { - "ai": "IA", - "authentication": "Authentification", - "backend": "Backend", - "database": "Base de données", - "description": "Construit avec des technologies modernes", - "frontend": "Frontend", - "testing": "Tests", - "title": "Stack technologique", - "ui": "UI" - }, - "title": "À propos", - "version": "Version" + "auth": { + "signIn": "Connexion", + "signUp": "S'inscrire", + "email": "Email", + "password": "Mot de passe", + "name": "Nom", + "emailPlaceholder": "Entrez votre adresse email", + "passwordPlaceholder": "Entrez votre mot de passe", + "namePlaceholder": "Entrez votre nom", + "passwordMinChars": "Entrez votre mot de passe (min 6 caractères)", + "resetPassword": "Réinitialiser le mot de passe", + "resetPasswordInstructions": "Entrez votre email pour réinitialiser votre mot de passe", + "forgotPassword": "Mot de passe oublié ?", + "noAccount": "Pas de compte ?", + "hasAccount": "Déjà un compte ?", + "signInToAccount": "Connectez-vous à votre compte", + "createAccount": "Créez votre compte", + "rememberMe": "Se souvenir de moi", + "orContinueWith": "Ou continuer avec", + "checkYourEmail": "Vérifiez votre email", + "resetEmailSent": "Nous avons envoyé un lien de réinitialisation à votre adresse email si elle existe dans notre système.", + "returnToLogin": "Retour à la connexion", + "forgotPasswordTitle": "Mot de passe oublié", + "forgotPasswordDescription": "Entrez votre adresse email et nous vous enverrons un lien pour réinitialiser votre mot de passe.", + "sending": "Envoi en cours...", + "sendResetLink": "Envoyer le lien de réinitialisation", + "backToLogin": "Retour à la connexion", + "signOut": "Déconnexion", + "confirmPassword": "Confirmer le mot de passe", + "confirmPasswordPlaceholder": "Confirmez votre mot de passe" }, - "admin": { - "ai": { - "apiKey": "Clé API", - "baseUrl": "URL de base", - "commonEmbeddingModels": "Modèles d'embeddings courants pour API compatibles OpenAI", - "commonModelsDescription": "Modèles courants pour API compatibles OpenAI", - "description": "Configurez les fournisseurs IA pour l'étiquetage auto et la recherche sémantique. Utilisez différents fournisseurs pour des performances optimales.", - "embeddingsDescription": "Fournisseur IA pour la recherche sémantique. Recommandé : OpenAI (meilleure qualité).", - "embeddingsProvider": "Fournisseur d'embeddings", - "chatProvider": "Fournisseur de chat", - "chatDescription": "Fournisseur IA pour l'assistant chat. Utilise le fournisseur d'étiquettes si non configuré.", - "model": "Modèle", - "modelRecommendations": "gpt-4o-mini = Meilleur rapport qualité/prix • gpt-4o = Meilleure qualité", - "openAIKeyDescription": "Votre clé API OpenAI depuis platform.openai.com", - "openTestPanel": "Ouvrir le panneau de test IA", - "provider": "Fournisseur", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING est requis", - "providerTagsRequired": "AI_PROVIDER_TAGS est requis", - "providerOllamaOption": "🦙 Ollama (Local & Gratuit)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Custom Compatible OpenAI", - "bestValue": "Meilleur rapport qualité/prix", - "bestQuality": "Meilleure qualité", - "saved": "(Enregistré)", - "saveSettings": "Enregistrer les paramètres IA", - "saving": "Enregistrement...", - "selectEmbeddingModel": "Sélectionnez un modèle d'embedding installé localement", - "selectOllamaModel": "Sélectionnez un modèle Ollama installé localement", - "tagsGenerationDescription": "Fournisseur IA pour les suggestions d'étiquettes. Recommandé : Ollama (gratuit, local).", - "tagsGenerationProvider": "Fournisseur de génération d'étiquettes", - "title": "Configuration IA", - "updateFailed": "Échec de la mise à jour des paramètres IA", - "updateSuccess": "Paramètres IA mis à jour avec succès", - "fetchModelsFailed": "Échec du chargement des modèles", - "refreshModels": "Rafraîchir les modèles", - "configured": "Configuré", - "fetchingModels": "Chargement des modèles...", - "clickToLoadModels": "Cliquez ↺ pour charger les modèles", - "searchModel": "Rechercher un modèle...", - "noModels": "Aucun modèle. Cliquez ↺", - "modelsAvailable": "{count} modèle(s) disponible(s)", - "enterUrlToLoad": "Entrez l'URL et cliquez ↺ pour charger les modèles", - "currentProvider": "(Actuel : {provider})", - "pageTitle": "Gestion IA", - "pageDescription": "Surveillez et configurez les fonctionnalités IA", - "configure": "Configurer", - "features": "Fonctionnalités IA", - "providerStatus": "État des fournisseurs IA", - "recentRequests": "Requêtes IA récentes", - "comingSoon": "Bientôt disponible", - "activeFeatures": "Fonctionnalités actives", - "successRate": "Taux de réussite", - "avgResponseTime": "Temps de réponse moyen", - "configuredProviders": "Fournisseurs configurés", - "settingUpdated": "Paramètre mis à jour", - "updateFailedShort": "Échec de la mise à jour", - "titleSuggestions": "Suggestions de titre", - "titleSuggestionsDesc": "Suggère des titres pour les notes après 50+ mots", - "aiAssistant": "Assistant IA", - "aiAssistantDesc": "Activer le chat IA et les outils d'amélioration de texte", - "memoryEchoFeature": "J'ai remarqué quelque chose...", - "memoryEchoFeatureDesc": "Analyse quotidienne des connexions entre vos notes", - "languageDetection": "Détection de langue", - "languageDetectionDesc": "Détecte automatiquement la langue de chaque note", - "autoLabeling": "Étiquetage automatique", - "autoLabelingDesc": "Suggère et applique des étiquettes automatiquement" - }, - "aiTest": { - "description": "Testez vos fournisseurs IA pour la génération d'étiquettes et les embeddings de recherche sémantique", - "embeddingDimensions": "Dimensions de l'embedding :", - "embeddingsTestDescription": "Testez le fournisseur IA responsable des embeddings de recherche sémantique", - "embeddingsTestTitle": "Test d'embeddings", - "error": "Erreur :", - "first5Values": "5 premières valeurs :", - "generatedTags": "Étiquettes générées :", - "howItWorksTitle": "Fonctionnement des tests", - "tagsGenerationTest": "🏷️ Test de génération d'étiquettes :", - "tagsStep1": "Envoie une note exemple au fournisseur IA", - "tagsStep2": "Demande 3-5 étiquettes pertinentes basées sur le contenu", - "tagsStep3": "Affiche les étiquettes générées avec les scores de confiance", - "tagsStep4": "Mesure le temps de réponse", - "embeddingsTestLabel": "🔍 Test d'embeddings :", - "embeddingsStep1": "Envoie un texte exemple au fournisseur d'embeddings", - "embeddingsStep2": "Génère une représentation vectorielle (liste de nombres)", - "embeddingsStep3": "Affiche les dimensions de l'embedding et des exemples de valeurs", - "embeddingsStep4": "Vérifie que le vecteur est valide et correctement formaté", - "tipContent": "Vous pouvez utiliser différents fournisseurs pour les étiquettes et les embeddings ! Par exemple, utilisez Ollama (gratuit) pour les étiquettes et OpenAI (meilleure qualité) pour les embeddings afin d'optimiser les coûts et les performances.", - "model": "Modèle :", - "provider": "Fournisseur :", - "responseTime": "Temps de réponse : {time}ms", - "runTest": "Lancer le test", - "tagsTestDescription": "Testez le fournisseur IA responsable des suggestions d'étiquettes automatiques", - "tagsTestTitle": "Test de génération d'étiquettes", - "testError": "Erreur de test : {error}", - "testFailed": "Test échoué", - "testPassed": "Test réussi", - "testSuccessToast": "Test {type} réussi !", - "testFailedToast": "Test {type} échoué", - "testingType": "Test de {type} en cours...", - "technicalDetails": "Détails techniques", - "testing": "Test en cours...", - "tipDescription": "Utilisez le panneau de test IA pour diagnostiquer les problèmes de configuration avant de tester.", - "tipTitle": "Astuce :", - "title": "Test des fournisseurs IA", - "vectorDimensions": "dimensions vectorielles" - }, - "sidebar": { - "dashboard": "Tableau de bord", - "users": "Utilisateurs", - "aiManagement": "Gestion IA", - "chat": "Chat IA", - "lab": "Le Lab (Idées)", - "agents": "Agents", - "settings": "Paramètres" - }, - "metrics": { - "vsLastPeriod": "vs période précédente" - }, - "tools": { - "title": "Outils Agents", - "description": "Configurer les outils externes pour le tool-use des agents : recherche web, scraping et accès API.", - "searchProvider": "Fournisseur de recherche web", - "searxng": "SearXNG (Auto-hébergé)", - "brave": "Brave Search API", - "both": "Les deux (SearXNG principal, Brave secours)", - "searxngUrl": "URL SearXNG", - "braveKey": "Clé API Brave Search", - "jinaKey": "Clé API Jina Reader", - "jinaKeyOptional": "Optionnel — fonctionne sans mais avec des limites", - "jinaKeyDescription": "Utilisée pour le scraping web. Fonctionne sans clé mais avec des limites de débit.", - "saveSettings": "Enregistrer les paramètres outils", - "updateSuccess": "Paramètres outils mis à jour avec succès", - "updateFailed": "Échec de la mise à jour des paramètres outils", - "testing": "Test en cours...", - "testSearch": "Test recherche web" - }, - "security": { - "allowPublicRegistration": "Autoriser l'inscription publique", - "allowPublicRegistrationDescription": "Si désactivé, les nouveaux utilisateurs ne peuvent être ajoutés que par un administrateur via la page de gestion des utilisateurs.", - "description": "Gérez le contrôle d'accès et les politiques d'inscription.", - "title": "Paramètres de sécurité", - "updateFailed": "Échec de la mise à jour des paramètres de sécurité", - "updateSuccess": "Paramètres de sécurité mis à jour" - }, - "settings": "Paramètres administrateur", - "resend": { - "title": "Resend (Recommandé)", - "description": "Envoyez des emails via l'API Resend. Prioritaire sur SMTP si configuré.", - "apiKey": "Clé API Resend", - "apiKeyHint": "Obtenez votre clé API sur resend.com. Utilisée pour les notifications d'agents et les réinitialisations de mot de passe.", - "saveSettings": "Enregistrer les paramètres Resend", - "updateSuccess": "Paramètres Resend mis à jour", - "updateFailed": "Échec de la mise à jour des paramètres Resend", - "configured": "Resend est configuré et actif" - }, - "email": { - "title": "Configuration Email", - "description": "Configurez l'envoi d'emails pour les notifications d'agents et les réinitialisations de mot de passe.", - "provider": "Fournisseur Email", - "saveSettings": "Enregistrer les paramètres", - "status": "État des services", - "keySet": "clé configurée", - "activeAuto": "Mode auto : Resend sera utilisé en priorité, SMTP en secours.", - "activeSmtp": "Mode auto : SMTP sera utilisé (Resend non configuré).", - "noneConfigured": "Aucun service email configuré. Configurez Resend ou SMTP.", - "activeProvider": "Fournisseur actif", - "testOk": "test réussi", - "testFail": "test échoué" - }, - "smtp": { - "description": "Configurez le serveur email pour les réinitialisations de mot de passe. Utilisé si Resend n'est pas configuré.", - "forceSSL": "Forcer SSL/TLS (généralement pour le port 465)", - "fromEmail": "Email d'expédition", - "host": "Hôte", - "ignoreCertErrors": "Ignorer les erreurs de certificat (Auto-hébergé/Dev uniquement)", - "password": "Mot de passe", - "port": "Port", - "saveSettings": "Enregistrer les paramètres SMTP", - "sending": "Envoi en cours...", - "testEmail": "Email de test", - "testFailed": "Échec : {error}", - "testSuccess": "Email de test envoyé avec succès !", - "title": "Configuration SMTP", - "updateFailed": "Échec de la mise à jour des paramètres SMTP", - "updateSuccess": "Paramètres SMTP mis à jour", - "username": "Nom d'utilisateur" - }, - "title": "Tableau de bord Admin", - "userManagement": "Gestion des utilisateurs", - "users": { - "addUser": "Ajouter un utilisateur", - "confirmDelete": "Êtes-vous sûr ? Cette action est irréversible.", - "createFailed": "Échec de la création de l'utilisateur", - "createSuccess": "Utilisateur créé avec succès", - "createUser": "Créer un utilisateur", - "createUserDescription": "Ajouter un nouvel utilisateur au système.", - "deleteFailed": "Échec de la suppression", - "deleteSuccess": "Utilisateur supprimé", - "demote": "Rétrograder en utilisateur", - "email": "Email", - "name": "Nom", - "password": "Mot de passe", - "promote": "Promouvoir en admin", - "role": "Rôle", - "roleUpdateFailed": "Échec de la mise à jour du rôle", - "roleUpdateSuccess": "Rôle de l'utilisateur mis à jour à {role}", - "roles": { - "admin": "Admin", - "user": "Utilisateur" - }, - "table": { - "actions": "Actions", - "createdAt": "Créé le", - "email": "Email", - "name": "Nom", - "role": "Rôle" - }, - "title": "Utilisateurs", - "description": "Gérer les utilisateurs et les permissions" - }, - "settingsDescription": "Configurer les paramètres de l'application", - "dashboard": { - "title": "Tableau de bord", - "description": "Vue d'ensemble des métriques de l'application", - "recentActivity": "Activité récente", - "recentActivityPlaceholder": "L'activité récente sera affichée ici." - }, - "error": { - "title": "Une erreur s'est produite dans le panneau d'administration", - "description": "Cette page n'a pas pu être affichée. Vous pouvez réessayer sans recharger.", - "retry": "Réessayer" - }, - "agents": "Agents", - "chat": "Chat IA", - "lab": "Le Lab", - "workspace": "Espace de travail" + "sidebar": { + "notes": "Notes", + "reminders": "Rappels", + "labels": "Étiquettes", + "editLabels": "Modifier les étiquettes", + "newNoteTabs": "Nouvelle note", + "newNoteTabsHint": "Créer une note dans ce carnet", + "noLabelsInNotebook": "Aucune étiquette dans ce carnet", + "archive": "Archives", + "trash": "Corbeille", + "clearFilter": "Retirer le filtre" + }, + "notes": { + "title": "Notes", + "newNote": "Nouvelle note", + "untitled": "Sans titre", + "placeholder": "Prenez une note...", + "markdownPlaceholder": "Prenez une note... (Markdown supporté)", + "titlePlaceholder": "Titre", + "listItem": "Élément de liste", + "addListItem": "+ Élément de liste", + "newChecklist": "Nouvelle checklist", + "add": "Ajouter", + "adding": "Ajout...", + "close": "Fermer", + "confirmDelete": "Êtes-vous sûr de vouloir supprimer cette note ?", + "confirmLeaveShare": "Êtes-vous sûr de vouloir quitter cette note partagée ?", + "sharedBy": "Partagé par", + "leaveShare": "Quitter", + "delete": "Supprimer", + "archive": "Archiver", + "unarchive": "Désarchiver", + "pin": "Épingler", + "unpin": "Désépingler", + "color": "Couleur", + "changeColor": "Changer la couleur", + "setReminder": "Définir un rappel", + "setReminderButton": "Définir un rappel", + "date": "Date", + "time": "Heure", + "reminderDateTimeRequired": "Veuillez entrer la date et l'heure", + "invalidDateTime": "Date ou heure invalide", + "reminderMustBeFuture": "Le rappel doit être dans le futur", + "reminderSet": "Rappel défini pour {datetime}", + "reminderPastError": "Le rappel doit être dans le futur", + "reminderRemoved": "Rappel supprimé", + "addImage": "Ajouter une image", + "addLink": "Ajouter un lien", + "linkAdded": "Lien ajouté", + "linkMetadataFailed": "Impossible de récupérer les métadonnées du lien", + "linkAddFailed": "Échec de l'ajout du lien", + "invalidFileType": "Type de fichier invalide : {fileName}. Seuls JPEG, PNG, GIF et WebP sont autorisés.", + "fileTooLarge": "Fichier trop volumineux : {fileName}. Taille maximale : {maxSize}.", + "uploadFailed": "Échec du téléchargement", + "contentOrMediaRequired": "Veuillez entrer du contenu ou ajouter un lien/image", + "itemOrMediaRequired": "Veuillez ajouter au moins un élément ou média", + "noteCreated": "Note créée avec succès", + "noteCreateFailed": "Échec de la création de la note", + "deleted": "Note supprimée", + "deleteFailed": "Échec de la suppression de la note", + "aiAssistant": "Assistant IA", + "changeSize": "Changer la taille", + "backgroundOptions": "Options d'arrière-plan", + "moreOptions": "Plus d'options", + "remindMe": "Me rappeler", + "markdownMode": "Markdown", + "addCollaborators": "Ajouter des collaborateurs", + "duplicate": "Dupliquer", + "share": "Partager", + "showCollaborators": "Voir les collaborateurs", + "pinned": "Épinglées", + "others": "Autres", + "noNotes": "Aucune note", + "noNotesFound": "Aucune note trouvée", + "createFirstNote": "Créez votre première note", + "size": "Taille", + "small": "Petite", + "medium": "Moyenne", + "large": "Grande", + "shareWithCollaborators": "Partager avec les collaborateurs", + "view": "Voir la note", + "edit": "Éditer", + "readOnly": "Lecture seule", + "preview": "Aperçu", + "noContent": "Pas de contenu", + "takeNote": "Prenez une note...", + "takeNoteMarkdown": "Prenez une note... (Markdown supporté)", + "addItem": "Ajouter un élément", + "sharedReadOnly": "Cette note est partagée avec vous en lecture seule", + "makeCopy": "Faire une copie", + "saving": "Enregistrement...", + "copySuccess": "Note copiée avec succès !", + "copyFailed": "Échec de la copie de la note", + "copy": "Copier", + "markdownOn": "Markdown ACTIVÉ", + "markdownOff": "Markdown DÉSACTIVÉ", + "undo": "Annuler (Ctrl+Z)", + "redo": "Rétablir (Ctrl+Y)", + "pinnedNotes": "Notes épinglées", + "recent": "Récent", + "addNote": "Ajouter une note", + "remove": "Supprimer", + "dragToReorder": "Glisser pour réorganiser", + "more": "Plus d'options", + "emptyState": "Aucune note encore. Créez votre première note !", + "emptyStateTabs": "Aucune note dans cette vue. Utilisez « Nouvelle note » dans la barre latérale pour en ajouter une (titres suggérés par l’IA disponibles dans le compositeur).", + "inNotebook": "Dans le carnet", + "moveFailed": "Échec du déplacement de la note. Veuillez réessayer.", + "clarifyFailed": "Échec de la clarification du texte", + "shortenFailed": "Échec du raccourcissement du texte", + "improveFailed": "Échec de l'amélioration du texte", + "transformFailed": "Échec de la transformation du texte", + "markdown": "Markdown", + "unpinned": "Désépinglées", + "redoShortcut": "Rétablir (Ctrl+Y)", + "undoShortcut": "Annuler (Ctrl+Z)", + "viewCards": "Vue par cartes", + "viewCardsTooltip": "Grille de cartes et réorganisation par glisser-déposer", + "viewTabs": "Vue en liste", + "viewTabsTooltip": "Onglets en haut, contenu dessous — glisser les onglets pour réordonner", + "viewModeGroup": "Mode d'affichage des notes", + "reorderTabs": "Réordonner l'onglet", + "modified": "Modifiée", + "created": "Créée", + "loading": "Chargement...", + "exportPDF": "Exporter en PDF", + "savedStatus": "Enregistré", + "dirtyStatus": "Modifié", + "completedLabel": "Terminé", + "notes.emptyNotebook": "Carnet vide", + "notes.emptyNotebookDesc": "Ce carnet n'a pas de notes. Cliquez sur + pour en créer une.", + "notes.noNoteSelected": "Aucune note sélectionnée", + "notes.selectOrCreateNote": "Sélectionnez une note dans la liste ou créez-en une nouvelle.", + "commitVersion": "Enregistrer la version", + "versionSaved": "Version enregistrée", + "deleteVersion": "Supprimer cette version", + "versionDeleted": "Version supprimée", + "deleteVersionConfirm": "Supprimer cette version définitivement ?", + "historyMode": "Mode d'historique", + "historyModeManual": "Manuel (bouton commit)", + "historyModeAuto": "Automatique (intelligent)", + "historyModeManualDesc": "Créer des snapshots manuellement avec le bouton commit", + "historyModeAutoDesc": "Snapshots automatiques avec détection intelligente", + "history": "Historique", + "historyRestored": "Version restaurée", + "historyEnabled": "Historique activé", + "historyDisabledTitle": "Historique des versions", + "historyDisabledDesc": "Suivez les modifications de cette note au fil du temps. Activez l'historique pour commencer à enregistrer des versions.", + "historyEnabledTitle": "Historique activé !", + "historyEnabledDesc": "Les versions de cette note seront désormais enregistrées.", + "enableHistory": "Activer l'historique", + "historyEmpty": "Aucune version disponible", + "historySelectVersion": "Sélectionnez une version pour prévisualiser son contenu", + "sortBy": "Trier par", + "sortDateDesc": "Date (récent)", + "sortDateAsc": "Date (ancien)", + "sortTitleAsc": "Titre A → Z", + "sortTitleDesc": "Titre Z → A", + "suggestTitle": "Titre IA", + "generateTitleFromImage": "Générer un titre à partir de l'image", + "titleGenerated": "Titre généré", + "content": "Contenu", + "restore": "Restaurer", + "createFailed": "Impossible de créer la note", + "updateFailed": "Mise à jour échouée", + "archived": "Note archivée", + "archiveFailed": "Échec de l'archivage", + "sort": "Trier", + "confirmDeleteTitle": "Supprimer la note", + "leftShare": "Partage retiré", + "dismissed": "Note retirée des récentes", + "generalNotes": "Notes générales" + }, + "pagination": { + "previous": "←", + "pageInfo": "Page {currentPage} / {totalPages}", + "next": "→" + }, + "labels": { + "title": "Étiquettes", + "filter": "Filtrer par étiquette", + "manage": "Gérer les étiquettes", + "manageTooltip": "Gérer les étiquettes", + "changeColor": "Changer la couleur", + "changeColorTooltip": "Changer la couleur", + "delete": "Supprimer", + "deleteTooltip": "Supprimer l'étiquette", + "confirmDelete": "Êtes-vous sûr de vouloir supprimer cette étiquette ?", + "newLabelPlaceholder": "Créer une nouvelle étiquette", + "namePlaceholder": "Entrez le nom de l'étiquette", + "addLabel": "Ajouter une étiquette", + "createLabel": "Créer une étiquette", + "labelName": "Nom de l'étiquette", + "labelColor": "Couleur de l'étiquette", + "manageLabels": "Gérer les étiquettes", + "manageLabelsDescription": "Ajouter ou supprimer des étiquettes pour cette note. Cliquez sur une étiquette pour changer sa couleur.", + "selectedLabels": "Étiquettes sélectionnées", + "allLabels": "Toutes les étiquettes", + "clearAll": "Tout effacer", + "filterByLabel": "Filtrer par étiquette", + "tagAdded": "Étiquette \"{tag}\" ajoutée", + "showLess": "Voir moins", + "showMore": "Voir plus", + "editLabels": "Modifier les étiquettes", + "editLabelsDescription": "Créer, modifier les couleurs ou supprimer des étiquettes.", + "noLabelsFound": "Aucune étiquette trouvée.", + "loading": "Chargement...", + "notebookRequired": "⚠️ Les étiquettes sont uniquement disponibles dans les carnets. Déplacez cette note dans un carnet d'abord.", + "count": "{count} étiquettes", + "noLabels": "Aucune étiquette", + "confirmDeleteShort": "Confirmer ?", + "labelRemoved": "Étiquette \"{label}\" supprimée" + }, + "search": { + "placeholder": "Rechercher", + "searchPlaceholder": "Rechercher dans vos notes...", + "semanticInProgress": "Recherche IA en cours...", + "semanticTooltip": "Recherche sémantique IA", + "searching": "Recherche en cours...", + "noResults": "Aucun résultat trouvé", + "resultsFound": "{count} notes trouvées", + "exactMatch": "Correspondance exacte", + "related": "Connexe", + "disabledAdmin": "Recherche désactivée en mode admin" + }, + "collaboration": { + "emailPlaceholder": "Entrez l'adresse email", + "addCollaborator": "Ajouter un collaborateur", + "removeCollaborator": "Supprimer le collaborateur", + "owner": "Propriétaire", + "canEdit": "Peut modifier", + "canView": "Peut voir", + "shareNote": "Partager la note", + "shareWithCollaborators": "Partager avec les collaborateurs", + "addCollaboratorDescription": "Ajoutez des personnes pour collaborer à cette note par leur adresse email.", + "viewerDescription": "Vous avez accès à cette note. Seul le propriétaire peut gérer les collaborateurs.", + "emailAddress": "Adresse email", + "enterEmailAddress": "Entrez l'adresse email", + "invite": "Inviter", + "peopleWithAccess": "Personnes ayant accès", + "noCollaborators": "Aucun collaborateur encore. Ajoutez quelqu'un ci-dessus !", + "noCollaboratorsViewer": "Aucun collaborateur encore.", + "pendingInvite": "Invitation en attente", + "pending": "En attente", + "remove": "Supprimer", + "unnamedUser": "Utilisateur sans nom", + "done": "Terminé", + "willBeAdded": "{email} sera ajouté comme collaborateur lorsque la note sera créée", + "alreadyInList": "Cet email est déjà dans la liste", + "nowHasAccess": "{name} a maintenant accès à cette note", + "accessRevoked": "L'accès a été révoqué", + "errorLoading": "Erreur lors du chargement des collaborateurs", + "failedToAdd": "Échec de l'ajout du collaborateur", + "failedToRemove": "Échec de la suppression du collaborateur" }, "ai": { "analyzing": "Analyse IA en cours...", + "clickToAddTag": "Cliquer pour ajouter cette étiquette", + "ignoreSuggestion": "Ignorer cette suggestion", + "generatingTitles": "Génération de titres...", + "generateTitlesTooltip": "Générer des titres avec l'IA", + "poweredByAI": "Propulsé par l'IA", + "languageDetected": "Langue détectée", + "processing": "Traitement en cours...", + "tagAdded": "Étiquette \"{tag}\" ajoutée", + "titleGenerating": "Génération...", + "titleGenerateWithAI": "Générer des titres avec l'IA", + "titleGenerationMinWords": "Le contenu doit avoir au moins 10 mots pour générer des titres (actuel : {count} mots)", + "titleGenerationError": "Erreur lors de la génération des titres", + "titlesGenerated": "💡 {count} titres générés !", + "titleGenerationFailed": "Échec de la génération des titres", + "titleApplied": "Titre appliqué !", + "reformulationNoText": "Veuillez sélectionner du texte ou ajouter du contenu", + "reformulationSelectionTooShort": "Sélection trop courte, utilisation du contenu complet", + "reformulationMinWords": "Le texte doit avoir au moins 10 mots (actuel : {count} mots)", + "reformulationMaxWords": "Le texte doit avoir au maximum 500 mots", + "reformulationError": "Erreur lors de la reformulation", + "reformulationFailed": "Échec de la reformulation du texte", + "reformulationApplied": "Texte reformulé appliqué !", + "transformMarkdown": "Transformer en Markdown", + "transforming": "Transformation...", + "transformSuccess": "Texte transformé en Markdown avec succès !", + "transformError": "Erreur lors de la transformation", "assistant": "Assistant IA", + "generating": "Génération...", + "generateTitles": "Générer des titres", + "reformulateText": "Reformuler le texte", + "reformulating": "Reformulation...", + "clarify": "Clarifier", + "shorten": "Raccourcir", + "improveStyle": "Améliorer le style", + "reformulationComparison": "Comparaison de reformulation", + "original": "Original", + "reformulated": "Reformulé", "autoLabels": { - "analyzing": "Analyse de vos notes pour les suggestions d'étiquettes...", - "create": "Créer", - "createNewLabel": "Créer cette nouvelle étiquette et l'ajouter", - "created": "{count} étiquettes créées avec succès", - "creating": "Création des étiquettes...", - "description": "J'ai détecté des thèmes récurrents dans \"{notebookName}\" ({totalNotes} notes). Créer des étiquettes pour eux ?", "error": "Échec de la récupération des suggestions d'étiquettes", - "new": "(nouveau)", "noLabelsSelected": "Aucune étiquette sélectionnée", + "created": "{count} étiquettes créées avec succès", + "analyzing": "Analyse de vos notes pour les suggestions d'étiquettes...", + "title": "Suggestions d'étiquettes", + "description": "J'ai détecté des thèmes récurrents dans \"{notebookName}\" ({totalNotes} notes). Créer des étiquettes pour eux ?", "note": "note", "notes": "notes", - "title": "Suggestions d'étiquettes", "typeContent": "Tapez du contenu pour obtenir des suggestions d'étiquettes...", - "typeForSuggestions": "Tapez du contenu pour obtenir des suggestions d'étiquettes...", - "notesCount": "{count} notes" + "createNewLabel": "Créer cette nouvelle étiquette et l'ajouter", + "new": "(nouveau)", + "create": "Créer", + "creating": "Création des étiquettes...", + "notesCount": "{count} notes", + "typeForSuggestions": "Tapez du contenu pour obtenir des suggestions d'étiquettes..." }, "batchOrganization": { - "analyzing": "Analyse de vos notes...", - "apply": "Appliquer", - "applyFailed": "Échec de l'application du plan d'organisation", - "applying": "Application...", + "title": "Organiser avec l'IA", "description": "L'IA analysera vos notes et suggérera de les organiser dans des carnets.", - "error": "Échec de la création du plan d'organisation", + "analyzing": "Analyse de vos notes...", "noNotebooks": "Aucun carnet disponible. Créez d'abord des carnets pour organiser vos notes.", - "noNotesSelected": "Aucune note sélectionnée", "noSuggestions": "L'IA n'a pas trouvé de bonne manière d'organiser ces notes.", - "selectAllIn": "Sélectionner toutes les notes dans {notebook}", - "selectNote": "Sélectionner la note : {title}", + "apply": "Appliquer", + "applying": "Application...", "success": "{count} notes déplacées avec succès", - "title": "Organiser avec l'IA" + "error": "Échec de la création du plan d'organisation", + "noNotesSelected": "Aucune note sélectionnée", + "applyFailed": "Échec de l'application du plan d'organisation", + "selectAllIn": "Sélectionner toutes les notes dans {notebook}", + "selectNote": "Sélectionner la note : {title}" }, - "clarify": "Clarifier", - "clickToAddTag": "Cliquer pour ajouter cette étiquette", - "generateTitles": "Générer des titres", - "generateTitlesTooltip": "Générer des titres avec l'IA", - "generating": "Génération...", - "generatingTitles": "Génération de titres...", - "ignoreSuggestion": "Ignorer cette suggestion", - "improveStyle": "Améliorer le style", - "languageDetected": "Langue détectée", "notebookSummary": { "regenerate": "Régénérer le résumé", "regenerating": "Régénération du résumé...", "exportPDF": "Exporter en PDF" }, - "original": "Original", - "poweredByAI": "Propulsé par l'IA", - "processing": "Traitement en cours...", - "reformulateText": "Reformuler le texte", - "reformulated": "Reformulé", - "reformulating": "Reformulation...", - "reformulationApplied": "Texte reformulé appliqué !", - "reformulationComparison": "Comparaison de reformulation", - "reformulationError": "Erreur lors de la reformulation", - "reformulationFailed": "Échec de la reformulation du texte", - "reformulationMaxWords": "Le texte doit avoir au maximum 500 mots", - "reformulationMinWords": "Le texte doit avoir au moins 10 mots (actuel : {count} mots)", - "reformulationNoText": "Veuillez sélectionner du texte ou ajouter du contenu", - "reformulationSelectionTooShort": "Sélection trop courte, utilisation du contenu complet", - "shorten": "Raccourcir", - "tagAdded": "Étiquette \"{tag}\" ajoutée", - "titleApplied": "Titre appliqué !", - "titleGenerateWithAI": "Générer des titres avec l'IA", - "titleGenerating": "Génération...", - "titleGenerationError": "Erreur lors de la génération des titres", - "titleGenerationFailed": "Échec de la génération des titres", - "titleGenerationMinWords": "Le contenu doit avoir au moins 10 mots pour générer des titres (actuel : {count} mots)", - "titlesGenerated": "💡 {count} titres générés !", - "transformError": "Erreur lors de la transformation", - "transformMarkdown": "Transformer en Markdown", - "transformSuccess": "Texte transformé en Markdown avec succès !", - "transforming": "Transformation...", "clarifyDesc": "Rendre le propos plus clair et compréhensible", "shortenDesc": "Résumer le texte et aller à l'essentiel", "improve": "Améliorer la rédaction", @@ -422,329 +431,65 @@ "generateTitleFromImage": "Générer un titre à partir de l'image", "titleGenerated": "Titre généré à partir de l'image" }, - "aiSettings": { - "description": "Configurez vos fonctionnalités IA et préférences", - "error": "Échec de la mise à jour", - "features": "Fonctionnalités IA", - "frequency": "Fréquence", - "frequencyDaily": "Quotidienne", - "frequencyWeekly": "Hebdomadaire", - "provider": "Fournisseur IA", - "providerAuto": "Auto (Recommandé)", - "providerOllama": "Ollama (Local)", - "providerOpenAI": "OpenAI (Cloud)", - "saved": "Paramètre mis à jour", - "saving": "Enregistrement...", - "title": "Paramètres IA", - "titleSuggestionsDesc": "Suggérer des titres pour les notes sans titre après 50+ mots", - "paragraphRefactorDesc": "Options d'amélioration de texte propulsées par l'IA", - "frequencyDesc": "Fréquence d'analyse des connexions entre notes", - "providerDesc": "Choisissez votre fournisseur IA préféré", - "providerAutoDesc": "Ollama si disponible, sinon OpenAI", - "providerOllamaDesc": "100% privé, fonctionne localement sur votre machine", - "providerOpenAIDesc": "Plus précis, nécessite une clé API" + "titleSuggestions": { + "available": "Suggestions de titre", + "title": "Suggestions IA", + "generating": "Génération en cours...", + "selectTitle": "Sélectionnez un titre", + "dismiss": "Ignorer" }, - "appearance": { - "description": "Personnaliser l'apparence de l'application", - "notesViewDescription": "Choisissez comment afficher les notes sur l'accueil et dans les carnets.", - "notesViewLabel": "Affichage des notes", - "notesViewTabs": "Onglets (type OneNote)", - "notesViewMasonry": "Cartes (grille)", - "selectTheme": "Sélectionner le thème", - "title": "Apparence" + "semanticSearch": { + "exactMatch": "Correspondance exacte", + "related": "Connexe", + "searching": "Recherche en cours..." }, - "auth": { - "backToLogin": "Retour à la connexion", - "checkYourEmail": "Vérifiez votre email", - "createAccount": "Créez votre compte", - "email": "Email", - "emailPlaceholder": "Entrez votre adresse email", - "forgotPassword": "Mot de passe oublié ?", - "forgotPasswordDescription": "Entrez votre adresse email et nous vous enverrons un lien pour réinitialiser votre mot de passe.", - "forgotPasswordTitle": "Mot de passe oublié", - "hasAccount": "Déjà un compte ?", - "name": "Nom", - "namePlaceholder": "Entrez votre nom", - "noAccount": "Pas de compte ?", - "orContinueWith": "Ou continuer avec", - "password": "Mot de passe", - "passwordMinChars": "Entrez votre mot de passe (min 6 caractères)", - "passwordPlaceholder": "Entrez votre mot de passe", - "rememberMe": "Se souvenir de moi", - "resetEmailSent": "Nous avons envoyé un lien de réinitialisation à votre adresse email si elle existe dans notre système.", - "resetPassword": "Réinitialiser le mot de passe", - "resetPasswordInstructions": "Entrez votre email pour réinitialiser votre mot de passe", - "returnToLogin": "Retour à la connexion", - "sendResetLink": "Envoyer le lien de réinitialisation", - "sending": "Envoi en cours...", - "signIn": "Connexion", - "signInToAccount": "Connectez-vous à votre compte", - "signOut": "Déconnexion", - "signUp": "S'inscrire", - "confirmPassword": "Confirmer le mot de passe", - "confirmPasswordPlaceholder": "Confirmez votre mot de passe" - }, - "batch": { - "organize": "Organiser", - "organizeWithAI": "Organiser avec l'IA" - }, - "collaboration": { - "accessRevoked": "L'accès a été révoqué", - "addCollaborator": "Ajouter un collaborateur", - "addCollaboratorDescription": "Ajoutez des personnes pour collaborer à cette note par leur adresse email.", - "alreadyInList": "Cet email est déjà dans la liste", - "canEdit": "Peut modifier", - "canView": "Peut voir", - "done": "Terminé", - "emailAddress": "Adresse email", - "emailPlaceholder": "Entrez l'adresse email", - "enterEmailAddress": "Entrez l'adresse email", - "errorLoading": "Erreur lors du chargement des collaborateurs", - "failedToAdd": "Échec de l'ajout du collaborateur", - "failedToRemove": "Échec de la suppression du collaborateur", - "invite": "Inviter", - "noCollaborators": "Aucun collaborateur encore. Ajoutez quelqu'un ci-dessus !", - "noCollaboratorsViewer": "Aucun collaborateur encore.", - "nowHasAccess": "{name} a maintenant accès à cette note", - "owner": "Propriétaire", - "pending": "En attente", - "pendingInvite": "Invitation en attente", - "peopleWithAccess": "Personnes ayant accès", - "remove": "Supprimer", - "removeCollaborator": "Supprimer le collaborateur", - "shareNote": "Partager la note", - "shareWithCollaborators": "Partager avec les collaborateurs", - "unnamedUser": "Utilisateur sans nom", - "viewerDescription": "Vous avez accès à cette note. Seul le propriétaire peut gérer les collaborateurs.", - "willBeAdded": "{email} sera ajouté comme collaborateur lorsque la note sera créée" - }, - "colors": { - "blue": "Bleu", - "default": "Défaut", - "gray": "Gris", - "green": "Vert", - "orange": "Orange", - "pink": "Rose", - "purple": "Violet", - "red": "Rouge", - "yellow": "Jaune" - }, - "common": { - "add": "Ajouter", - "cancel": "Annuler", - "close": "Fermer", - "confirm": "Confirmer", - "delete": "Supprimer", - "edit": "Modifier", - "error": "Erreur", - "loading": "Chargement...", - "noResults": "Aucun résultat", - "notAvailable": "N/A", - "optional": "Optionnel", - "remove": "Supprimer", - "required": "Requis", - "save": "Enregistrer", - "search": "Rechercher", - "success": "Succès", - "unknown": "Inconnu" - }, - "connection": { - "clickToView": "Cliquer pour voir la note", - "helpful": "Utile", - "isHelpful": "Cette connexion est-elle utile ?", - "memoryEchoDiscovery": "Découverte Memory Echo", - "notHelpful": "Pas utile", - "similarityInfo": "Ces notes sont connectées par {similarity}% de similarité" - }, - "dataManagement": { - "cleanup": { - "button": "Nettoyer", - "description": "Supprimer les étiquettes et connexions qui référencent des notes supprimées.", - "failed": "Erreur lors du nettoyage", - "title": "Nettoyer les données orphelines" - }, - "cleanupComplete": "Nettoyage terminé : {created} créés, {deleted} supprimés", - "cleanupError": "Erreur lors du nettoyage", - "dangerZone": "Zone de danger", - "dangerZoneDescription": "Supprimer définitivement vos données", - "delete": { - "button": "Supprimer toutes les notes", - "confirm": "Êtes-vous sûr ? Cette action supprimera définitivement toutes vos notes.", - "description": "Supprimer définitivement toutes vos notes. Cette action est irréversible.", - "failed": "Échec de la suppression des notes", - "success": "Toutes les notes ont été supprimées", - "title": "Supprimer toutes les notes" - }, - "deleting": "Suppression...", - "export": { - "button": "Exporter les notes", - "description": "Télécharger toutes vos notes au format JSON. Inclut tout le contenu, les étiquettes et les métadonnées.", - "failed": "Échec de l'exportation des notes", - "success": "Notes exportées avec succès", - "title": "Exporter toutes les notes" - }, - "exporting": "Exportation...", - "import": { - "button": "Importer des notes", - "description": "Téléchargez un fichier JSON pour importer des notes. Les notes seront ajoutées aux existantes, pas remplacées.", - "failed": "Échec de l'importation des notes", - "success": "{count} notes importées", - "title": "Importer des notes" - }, - "importing": "Importation...", - "indexing": { - "button": "Reconstruire l'index", - "description": "Régénérer les embeddings pour toutes les notes afin d'améliorer la recherche sémantique.", - "failed": "Erreur lors de l'indexation", - "success": "Indexation terminée : {count} notes traitées", - "title": "Reconstruire l'index de recherche" - }, - "indexingComplete": "Indexation terminée : {count} notes traitées", - "indexingError": "Erreur lors de l'indexation", - "title": "Gestion des données", - "toolsDescription": "Outils pour maintenir la santé de votre base de données" - }, - "demoMode": { - "activated": "Mode Démo activé ! Memory Echo fonctionnera maintenant instantanément.", - "createNotesTip": "Créez 2+ notes similaires et voyez Memory Echo en action !", - "deactivated": "Mode Démo désactivé. Paramètres normaux restaurés.", - "delayBetweenNotes": "Délai de 0 jour entre les notes (normalement 7 jours)", - "description": "Accélère Memory Echo pour les tests. Les connexions apparaissent instantanément.", - "parametersActive": "Paramètres démo actifs :", - "similarityThreshold": "Seuil de similarité de 50% (normalement 75%)", - "title": "Mode Démo", - "toggleFailed": "Échec du basculement du mode démo", - "unlimitedInsights": "Perspectives illimitées (pas de limites de fréquence)" - }, - "diagnostics": { - "apiStatus": "Statut de l'API", - "checking": "Vérification...", - "configuredProvider": "Fournisseur configuré", - "description": "Vérifiez l'état de la connexion de votre fournisseur IA", - "errorStatus": "Erreur", - "operational": "Opérationnel", - "testDetails": "Détails du test :", - "tip1": "Assurez-vous qu'Ollama fonctionne (ollama serve)", - "tip2": "Vérifiez que le modèle est installé (ollama pull llama3)", - "tip3": "Vérifiez votre clé API pour OpenAI", - "tip4": "Vérifiez la connectivité réseau", - "title": "Diagnostics", - "troubleshootingTitle": "Conseils de dépannage :" - }, - "favorites": { - "noFavorites": "Aucune note épinglée encore", - "pinToFavorite": "Épinglez une note pour l'ajouter aux favoris", - "title": "Favoris", - "toggleSection": "Basculer la section des notes épinglées" - }, - "footer": { - "openSource": "Clone Open Source", - "privacy": "Confidentialité", - "terms": "Conditions" - }, - "general": { - "add": "Ajouter", - "apply": "Appliquer", - "back": "Retour", - "cancel": "Annuler", - "clean": "Nettoyer", - "clear": "Effacer", - "close": "Fermer", - "confirm": "Confirmer", - "edit": "Modifier", - "error": "Une erreur est survenue", - "indexAll": "Tout indexer", - "loading": "Chargement...", - "next": "Suivant", - "operationFailed": "Opération échouée", - "operationSuccess": "Opération réussie", - "preview": "Aperçu", - "previous": "Précédent", - "reset": "Réinitialiser", - "save": "Enregistrer", - "select": "Sélectionner", - "submit": "Soumettre", - "testConnection": "Tester la connexion", - "tryAgain": "Veuillez réessayer" - }, - "generalSettings": { - "description": "Paramètres généraux de l'application", - "title": "Paramètres généraux" - }, - "labels": { - "addLabel": "Ajouter une étiquette", - "allLabels": "Toutes les étiquettes", - "changeColor": "Changer la couleur", - "changeColorTooltip": "Changer la couleur", - "clearAll": "Tout effacer", - "confirmDelete": "Êtes-vous sûr de vouloir supprimer cette étiquette ?", - "count": "{count} étiquettes", - "createLabel": "Créer une étiquette", - "delete": "Supprimer", - "deleteTooltip": "Supprimer l'étiquette", - "editLabels": "Modifier les étiquettes", - "editLabelsDescription": "Créer, modifier les couleurs ou supprimer des étiquettes.", - "filter": "Filtrer par étiquette", - "filterByLabel": "Filtrer par étiquette", - "labelColor": "Couleur de l'étiquette", - "labelName": "Nom de l'étiquette", - "labelRemoved": "Étiquette \"{label}\" supprimée", - "loading": "Chargement...", - "manage": "Gérer les étiquettes", - "manageLabels": "Gérer les étiquettes", - "manageLabelsDescription": "Ajouter ou supprimer des étiquettes pour cette note. Cliquez sur une étiquette pour changer sa couleur.", - "manageTooltip": "Gérer les étiquettes", - "namePlaceholder": "Entrez le nom de l'étiquette", - "newLabelPlaceholder": "Créer une nouvelle étiquette", - "noLabels": "Aucune étiquette", - "noLabelsFound": "Aucune étiquette trouvée.", - "notebookRequired": "⚠️ Les étiquettes sont uniquement disponibles dans les carnets. Déplacez cette note dans un carnet d'abord.", - "selectedLabels": "Étiquettes sélectionnées", - "showLess": "Voir moins", - "showMore": "Voir plus", - "tagAdded": "Étiquette \"{tag}\" ajoutée", - "title": "Étiquettes", - "confirmDeleteShort": "Confirmer ?" + "paragraphRefactor": { + "title": "Amélioration du texte", + "shorten": "Raccourcir", + "expand": "Développer", + "improve": "Améliorer", + "formal": "Formel", + "casual": "Décontracté" }, "memoryEcho": { - "clickToView": "Cliquer pour voir la note →", - "comparison": { - "clickToView": "Cliquer pour voir la note", - "helpful": "Utile", - "helpfulQuestion": "Cette comparaison est-elle utile ?", - "highSimilarityInsight": "Ces notes traitent du même sujet avec un fort degré de similarité. Elles pourraient être fusionnées ou consolidées.", - "notHelpful": "Pas utile", - "similarityInfo": "Ces notes sont connectées par {similarity}% de similarité", - "title": "💡 Comparaison de notes", - "untitled": "Sans titre" - }, - "connection": "connexion", - "connections": "Connexions", - "connectionsBadge": "{count} connexion{plural}", - "match": "{percentage}% correspondance", "title": "💡 J'ai remarqué quelque chose...", "description": "Connexions proactives entre vos notes", "dailyInsight": "Aperçu quotidien de vos notes", + "insightReady": "Votre aperçu est prêt !", "viewConnection": "Voir la connexion", "helpful": "Utile", "notHelpful": "Pas utile", "dismiss": "Ignorer pour l'instant", - "insightReady": "Votre aperçu est prêt !", - "overlay": { - "title": "Notes connectées", - "loading": "Chargement...", - "error": "Échec du chargement des connexions", - "noConnections": "Aucune connexion trouvée", - "viewAll": "Tout voir côte à côte", - "searchPlaceholder": "Rechercher des connexions...", - "sortBy": "Trier par :", - "sortRecent": "Récent", - "sortSimilarity": "Similarité", - "sortOldest": "Plus ancien" - }, "thanksFeedback": "Merci pour votre retour !", "thanksFeedbackImproving": "Merci ! Nous l'utiliserons pour nous améliorer.", + "connections": "Connexions", + "connection": "connexion", + "connectionsBadge": "{count} connexion{plural}", + "match": "{percentage}% correspondance", "fused": "Fusionné", + "clickToView": "Cliquer pour voir la note →", + "overlay": { + "title": "Notes connectées", + "searchPlaceholder": "Rechercher des connexions...", + "sortBy": "Trier par :", + "sortSimilarity": "Similarité", + "sortRecent": "Récent", + "sortOldest": "Plus ancien", + "viewAll": "Tout voir côte à côte", + "loading": "Chargement...", + "noConnections": "Aucune connexion trouvée", + "error": "Échec du chargement des connexions" + }, + "comparison": { + "title": "💡 Comparaison de notes", + "similarityInfo": "Ces notes sont connectées par {similarity}% de similarité", + "highSimilarityInsight": "Ces notes traitent du même sujet avec un fort degré de similarité. Elles pourraient être fusionnées ou consolidées.", + "untitled": "Sans titre", + "clickToView": "Cliquer pour voir la note", + "helpfulQuestion": "Cette comparaison est-elle utile ?", + "helpful": "Utile", + "notHelpful": "Pas utile" + }, "editorSection": { "title": "⚡ Notes connectées ({count})", "loading": "Chargement...", @@ -793,352 +538,67 @@ "removed": "Note retirée de la liste" }, "nav": { - "accountSettings": "Paramètres du compte", - "adminDashboard": "Tableau de bord Admin", - "aiSettings": "Paramètres IA", - "archive": "Archives", - "buyMeACoffee": "Offrez-moi un café", - "configureAI": "Configurez vos fonctionnalités IA, votre fournisseur et vos préférences", - "diagnostics": "Diagnostics", - "donateOnKofi": "Faire un don sur Ko-fi", - "donationDescription": "Faites un don ponctuel ou devenez supporter mensuel.", - "donationNote": "Sans frais de plateforme • Paiements instantanés • Sécurisé", - "favorites": "Favoris", - "generalNotes": "Notes générales", "home": "Accueil", - "login": "Connexion", - "logout": "Déconnexion", - "manageAISettings": "Gérer les paramètres IA", - "myLibrary": "Ma bibliothèque", - "notebooks": "CARNETS", "notes": "Notes", - "proPlan": "Pro Plan", - "profile": "Profil", - "quickAccess": "Accès rapide", - "recent": "Récent", - "reminders": "Rappels", + "notebooks": "CARNETS", + "generalNotes": "Notes générales", + "archive": "Archives", "settings": "Paramètres", - "sponsorDescription": "Devenez sponsor mensuel et obtenez une reconnaissance.", - "sponsorOnGithub": "Sponsoriser sur GitHub", - "support": "Support Memento ☕", - "supportDescription": "Memento est 100% gratuit et open-source. Votre soutien aide à le garder ainsi.", - "supportDevelopment": "Supporter le développement de Memento ☕", + "profile": "Profil", + "aiSettings": "Paramètres IA", + "logout": "Déconnexion", + "login": "Connexion", + "adminDashboard": "Tableau de bord Admin", + "diagnostics": "Diagnostics", "trash": "Corbeille", + "support": "Support Memento ☕", + "reminders": "Rappels", "userManagement": "Gestion des utilisateurs", + "accountSettings": "Paramètres du compte", + "manageAISettings": "Gérer les paramètres IA", + "configureAI": "Configurez vos fonctionnalités IA, votre fournisseur et vos préférences", + "supportDevelopment": "Supporter le développement de Memento ☕", + "supportDescription": "Memento est 100% gratuit et open-source. Votre soutien aide à le garder ainsi.", + "buyMeACoffee": "Offrez-moi un café", + "donationDescription": "Faites un don ponctuel ou devenez supporter mensuel.", + "donateOnKofi": "Faire un don sur Ko-fi", + "donationNote": "Sans frais de plateforme • Paiements instantanés • Sécurisé", + "sponsorOnGithub": "Sponsoriser sur GitHub", + "sponsorDescription": "Devenez sponsor mensuel et obtenez une reconnaissance.", + "workspace": "Espace de travail", + "quickAccess": "Accès rapide", + "myLibrary": "Ma bibliothèque", + "favorites": "Favoris", + "recent": "Récent", + "proPlan": "Pro Plan", "chat": "Chat IA", "lab": "Le Lab", - "agents": "Agents", - "workspace": "Espace de travail" - }, - "notebook": { - "cancel": "Annuler", - "create": "Créer un carnet", - "createDescription": "Commencez une nouvelle collection pour organiser vos notes, idées et projets efficacement.", - "createNew": "Créer un nouveau carnet", - "creating": "Création...", - "delete": "Supprimer le carnet", - "deleteConfirm": "Supprimer", - "deleteWarning": "Êtes-vous sûr de vouloir supprimer ce carnet ? Les notes seront déplacées dans les Notes générales.", - "edit": "Modifier le carnet", - "editDescription": "Changer le nom, l'icône et la couleur de votre carnet.", - "generating": "Génération du résumé...", - "labels": "Étiquettes :", - "name": "Nom du carnet", - "namePlaceholder": "ex. Stratégie Marketing Q4", - "myNotebook": "Mon carnet", - "saving": "Enregistrement...", - "noLabels": "Aucune étiquette", - "selectColor": "Couleur", - "selectIcon": "Icône", - "summary": "Résumé du carnet", - "summaryDescription": "Générer un résumé alimenté par l'IA de toutes les notes de ce carnet.", - "summaryError": "Erreur lors de la génération du résumé", - "pdfTitle": "Résumé — {name}", - "pdfNotesLabel": "Notes :", - "pdfGeneratedOn": "Généré le :", - "confidence": "confiance", - "savingReminder": "Erreur lors de la sauvegarde du rappel", - "removingReminder": "Erreur lors de la suppression du rappel", - "generatingDescription": "Veuillez patienter..." - }, - "notebookSuggestion": { - "description": "Cette note semble appartenir à ce carnet", - "dismiss": "Rejeter", - "dismissIn": "Rejeter (ferme dans {timeLeft}s)", - "generalNotes": "Notes générales", - "move": "Déplacer", - "moveToNotebook": "Déplacer vers un carnet", - "title": "Déplacer vers {name} ?" - }, - "notebooks": { - "allNotebooks": "Tous les carnets", - "create": "Créer un carnet", - "createFirst": "Créez votre premier carnet", - "noNotebooks": "Aucun carnet encore" - }, - "notes": { - "add": "Ajouter", - "addCollaborators": "Ajouter des collaborateurs", - "addImage": "Ajouter une image", - "addItem": "Ajouter un élément", - "addLink": "Ajouter un lien", - "addListItem": "+ Élément de liste", - "addNote": "Ajouter une note", - "adding": "Ajout...", - "aiAssistant": "Assistant IA", - "archive": "Archiver", - "backgroundOptions": "Options d'arrière-plan", - "changeColor": "Changer la couleur", - "changeSize": "Changer la taille", - "clarifyFailed": "Échec de la clarification du texte", - "close": "Fermer", - "color": "Couleur", - "confirmDelete": "Êtes-vous sûr de vouloir supprimer cette note ?", - "confirmLeaveShare": "Êtes-vous sûr de vouloir quitter cette note partagée ?", - "contentOrMediaRequired": "Veuillez entrer du contenu ou ajouter un lien/image", - "copy": "Copier", - "copyFailed": "Échec de la copie de la note", - "copySuccess": "Note copiée avec succès !", - "createFirstNote": "Créez votre première note", - "date": "Date", - "delete": "Supprimer", - "dragToReorder": "Glisser pour réorganiser", - "duplicate": "Dupliquer", - "edit": "Éditer", - "emptyState": "Aucune note encore. Créez votre première note !", - "emptyStateTabs": "Aucune note dans cette vue. Utilisez « Nouvelle note » dans la barre latérale pour en ajouter une (titres suggérés par l’IA disponibles dans le compositeur).", - "fileTooLarge": "Fichier trop volumineux : {fileName}. Taille maximale : {maxSize}.", - "improveFailed": "Échec de l'amélioration du texte", - "inNotebook": "Dans le carnet", - "invalidDateTime": "Date ou heure invalide", - "invalidFileType": "Type de fichier invalide : {fileName}. Seuls JPEG, PNG, GIF et WebP sont autorisés.", - "itemOrMediaRequired": "Veuillez ajouter au moins un élément ou média", - "large": "Grande", - "leaveShare": "Quitter", - "linkAddFailed": "Échec de l'ajout du lien", - "linkAdded": "Lien ajouté", - "linkMetadataFailed": "Impossible de récupérer les métadonnées du lien", - "listItem": "Élément de liste", - "makeCopy": "Faire une copie", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown DÉSACTIVÉ", - "markdownOn": "Markdown ACTIVÉ", - "markdownPlaceholder": "Prenez une note... (Markdown supporté)", - "medium": "Moyenne", - "more": "Plus d'options", - "moreOptions": "Plus d'options", - "moveFailed": "Échec du déplacement de la note. Veuillez réessayer.", - "newChecklist": "Nouvelle checklist", - "newNote": "Nouvelle note", - "noContent": "Pas de contenu", - "noNotes": "Aucune note", - "noNotesFound": "Aucune note trouvée", - "noteCreateFailed": "Échec de la création de la note", - "noteCreated": "Note créée avec succès", - "deleted": "Note supprimée", - "deleteFailed": "Échec de la suppression de la note", - "others": "Autres", - "pin": "Épingler", - "pinned": "Épinglées", - "pinnedNotes": "Notes épinglées", - "placeholder": "Prenez une note...", - "preview": "Aperçu", - "readOnly": "Lecture seule", - "recent": "Récent", - "redo": "Rétablir (Ctrl+Y)", - "redoShortcut": "Rétablir (Ctrl+Y)", - "remindMe": "Me rappeler", - "reminderDateTimeRequired": "Veuillez entrer la date et l'heure", - "reminderMustBeFuture": "Le rappel doit être dans le futur", - "reminderPastError": "Le rappel doit être dans le futur", - "reminderRemoved": "Rappel supprimé", - "reminderSet": "Rappel défini pour {datetime}", - "remove": "Supprimer", - "saving": "Enregistrement...", - "setReminder": "Définir un rappel", - "setReminderButton": "Définir un rappel", - "share": "Partager", - "shareWithCollaborators": "Partager avec les collaborateurs", - "sharedBy": "Partagé par", - "sharedReadOnly": "Cette note est partagée avec vous en lecture seule", - "shortenFailed": "Échec du raccourcissement du texte", - "showCollaborators": "Voir les collaborateurs", - "size": "Taille", - "small": "Petite", - "takeNote": "Prenez une note...", - "takeNoteMarkdown": "Prenez une note... (Markdown supporté)", - "time": "Heure", - "title": "Notes", - "titlePlaceholder": "Titre", - "transformFailed": "Échec de la transformation du texte", - "unarchive": "Désarchiver", - "undo": "Annuler (Ctrl+Z)", - "undoShortcut": "Annuler (Ctrl+Z)", - "unpin": "Désépingler", - "unpinned": "Désépinglées", - "untitled": "Sans titre", - "uploadFailed": "Échec du téléchargement", - "view": "Voir la note", - "viewCards": "Vue par cartes", - "viewCardsTooltip": "Grille de cartes et réorganisation par glisser-déposer", - "viewTabs": "Vue en liste", - "viewTabsTooltip": "Onglets en haut, contenu dessous — glisser les onglets pour réordonner", - "viewModeGroup": "Mode d'affichage des notes", - "reorderTabs": "Réordonner l'onglet", - "modified": "Modifiée", - "created": "Créée", - "loading": "Chargement...", - "exportPDF": "Exporter en PDF", - "savedStatus": "Enregistré", - "dirtyStatus": "Modifié", - "completedLabel": "Terminé", - "notes.emptyNotebook": "Carnet vide", - "notes.emptyNotebookDesc": "Ce carnet n'a pas de notes. Cliquez sur + pour en créer une.", - "notes.noNoteSelected": "Aucune note sélectionnée", - "notes.selectOrCreateNote": "Sélectionnez une note dans la liste ou créez-en une nouvelle.", - "commitVersion": "Enregistrer la version", - "versionSaved": "Version enregistrée", - "deleteVersion": "Supprimer cette version", - "versionDeleted": "Version supprimée", - "deleteVersionConfirm": "Supprimer cette version définitivement ?", - "historyMode": "Mode d'historique", - "historyModeManual": "Manuel (bouton commit)", - "historyModeAuto": "Automatique (intelligent)", - "historyModeManualDesc": "Créer des snapshots manuellement avec le bouton commit", - "historyModeAutoDesc": "Snapshots automatiques avec détection intelligente", - "history": "Historique", - "historyRestored": "Version restaurée", - "historyEnabled": "Historique activé", - "historyDisabledTitle": "Historique des versions", - "historyDisabledDesc": "Suivez les modifications de cette note au fil du temps. Activez l'historique pour commencer à enregistrer des versions.", - "historyEnabledTitle": "Historique activé !", - "historyEnabledDesc": "Les versions de cette note seront désormais enregistrées.", - "enableHistory": "Activer l'historique", - "historyEmpty": "Aucune version disponible", - "historySelectVersion": "Sélectionnez une version pour prévisualiser son contenu", - "sortBy": "Trier par", - "sortDateDesc": "Date (récent)", - "sortDateAsc": "Date (ancien)", - "sortTitleAsc": "Titre A → Z", - "sortTitleDesc": "Titre Z → A", - "suggestTitle": "Titre IA", - "generateTitleFromImage": "Générer un titre à partir de l'image", - "titleGenerated": "Titre généré", - "content": "Contenu", - "restore": "Restaurer", - "createFailed": "Impossible de créer la note", - "updateFailed": "Mise à jour échouée", - "archived": "Note archivée", - "archiveFailed": "Échec de l'archivage", - "sort": "Trier", - "confirmDeleteTitle": "Supprimer la note", - "leftShare": "Partage retiré", - "dismissed": "Note retirée des récentes", - "generalNotes": "Notes générales" - }, - "pagination": { - "next": "→", - "pageInfo": "Page {currentPage} / {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "Décontracté", - "expand": "Développer", - "formal": "Formel", - "improve": "Améliorer", - "shorten": "Raccourcir", - "title": "Amélioration du texte" - }, - "profile": { - "accountSettings": "Paramètres du compte", - "autoDetect": "Détection automatique", - "changePassword": "Changer le mot de passe", - "changePasswordDescription": "Mettez à jour votre mot de passe. Vous aurez besoin de votre mot de passe actuel.", - "confirmPassword": "Confirmer le mot de passe", - "currentPassword": "Mot de passe actuel", - "description": "Mettez à jour vos informations personnelles", - "displayName": "Nom d'affichage", - "displaySettings": "Paramètres d'affichage", - "displaySettingsDescription": "Personnalisez l'apparence et la taille de la police.", - "email": "Email", - "fontSize": "Taille de la police", - "fontSizeDescription": "Ajustez la taille de la police pour une meilleure lisibilité. Cela s'applique à tout le texte de l'interface.", - "fontSizeExtraLarge": "Très grande", - "fontSizeLarge": "Grande", - "fontSizeMedium": "Moyenne", - "fontSizeSmall": "Petite", - "fontSizeUpdateFailed": "Échec de la mise à jour de la taille de police", - "fontSizeUpdateSuccess": "Taille de police mise à jour avec succès", - "languageDescription": "Cette langue sera utilisée pour les fonctionnalités IA, l'analyse de contenu et le texte de l'interface.", - "languagePreferences": "Préférences linguistiques", - "languagePreferencesDescription": "Choisissez votre langue préférée pour les fonctionnalités IA et l'interface.", - "languageUpdateFailed": "Échec de la mise à jour de la langue", - "languageUpdateSuccess": "Langue mise à jour avec succès", - "manageAISettings": "Gérer les paramètres IA", - "newPassword": "Nouveau mot de passe", - "passwordChangeFailed": "Échec du changement de mot de passe", - "passwordChangeSuccess": "Mot de passe changé avec succès", - "passwordError": "Erreur lors de la mise à jour du mot de passe", - "passwordUpdated": "Mot de passe mis à jour", - "preferredLanguage": "Langue préférée", - "profileError": "Erreur lors de la mise à jour du profil", - "profileUpdated": "Profil mis à jour", - "recentNotesUpdateFailed": "Échec de la mise à jour du paramètre des notes récentes", - "recentNotesUpdateSuccess": "Paramètre des notes récentes mis à jour avec succès", - "selectFontSize": "Sélectionner la taille de la police", - "selectLanguage": "Sélectionner une langue", - "showRecentNotes": "Afficher la section Récent", - "showRecentNotesDescription": "Afficher les notes récentes (7 derniers jours) sur la page principale", - "title": "Profil", - "updateFailed": "Échec de la mise à jour du profil", - "updatePassword": "Mettre à jour le mot de passe", - "updateSuccess": "Profil mis à jour" - }, - "reminder": { - "cancel": "Annuler", - "reminderDate": "Date du rappel", - "reminderTime": "Heure du rappel", - "removeReminder": "Supprimer le rappel", - "save": "Définir", - "setReminder": "Définir un rappel", - "title": "Rappel" - }, - "resetPassword": { - "confirmNewPassword": "Confirmer le nouveau mot de passe", - "description": "Entrez votre nouveau mot de passe ci-dessous.", - "invalidLinkDescription": "Ce lien de réinitialisation de mot de passe est invalide ou a expiré.", - "invalidLinkTitle": "Lien invalide", - "loading": "Chargement...", - "newPassword": "Nouveau mot de passe", - "passwordMismatch": "Les mots de passe ne correspondent pas", - "requestNewLink": "Demander un nouveau lien", - "resetPassword": "Réinitialiser le mot de passe", - "resetting": "Réinitialisation...", - "success": "Mot de passe réinitialisé avec succès. Vous pouvez maintenant vous connecter.", - "title": "Réinitialiser le mot de passe" - }, - "search": { - "exactMatch": "Correspondance exacte", - "noResults": "Aucun résultat trouvé", - "placeholder": "Rechercher", - "related": "Connexe", - "resultsFound": "{count} notes trouvées", - "searchPlaceholder": "Rechercher dans vos notes...", - "searching": "Recherche en cours...", - "semanticInProgress": "Recherche IA en cours...", - "semanticTooltip": "Recherche sémantique IA", - "disabledAdmin": "Recherche désactivée en mode admin" - }, - "semanticSearch": { - "exactMatch": "Correspondance exacte", - "related": "Connexe", - "searching": "Recherche en cours..." + "agents": "Agents" }, "settings": { - "about": "À propos", + "title": "Paramètres", + "description": "Gérez vos paramètres et préférences", "account": "Compte", "appearance": "Apparence", + "theme": "Thème", + "themeLight": "Clair", + "themeDark": "Sombre", + "themeSystem": "Système", + "notifications": "Notifications", + "language": "Langue", + "selectLanguage": "Sélectionner une langue", + "security": "Sécurité", + "about": "À propos", + "version": "Version", + "settingsSaved": "Paramètres enregistrés", + "cardSizeMode": "Taille des notes", + "cardSizeModeDescription": "Choisir entre des notes de tailles différentes ou uniformes", + "selectCardSizeMode": "Sélectionner le mode d'affichage", + "cardSizeVariable": "Tailles variables (small/medium/large)", + "cardSizeUniform": "Taille uniforme", + "settingsError": "Erreur lors de la sauvegarde des paramètres", + "maintenance": "Maintenance", + "maintenanceDescription": "Outils pour maintenir la santé de votre base de données", "cleanTags": "Nettoyer les étiquettes orphelines", "cleanTagsDescription": "Supprimer les étiquettes qui ne sont plus utilisées par aucune note", "cleanupDone": "{created} étiquette(s) synchronisée(s), {deleted} orpheline(s) supprimée(s)", @@ -1147,37 +607,129 @@ "cleanupError": "Impossible de nettoyer les étiquettes", "indexingComplete": "Indexation terminée : {count} note(s) traitée(s)", "indexingError": "Erreur pendant l’indexation", - "description": "Gérez vos paramètres et préférences", - "language": "Langue", - "languageAuto": "Langue définie sur Auto", - "maintenance": "Maintenance", - "maintenanceDescription": "Outils pour maintenir la santé de votre base de données", - "notifications": "Notifications", - "profile": "Profil", - "searchNoResults": "Aucun paramètre trouvé", - "security": "Sécurité", - "selectLanguage": "Sélectionner une langue", "semanticIndexing": "Indexation sémantique", "semanticIndexingDescription": "Générer des vecteurs pour toutes les notes afin de permettre la recherche par intention", - "settingsError": "Erreur lors de la sauvegarde des paramètres", - "settingsSaved": "Paramètres enregistrés", - "cardSizeMode": "Taille des notes", - "cardSizeModeDescription": "Choisir entre des notes de tailles différentes ou uniformes", - "selectCardSizeMode": "Sélectionner le mode d'affichage", - "cardSizeVariable": "Tailles variables (small/medium/large)", - "cardSizeUniform": "Taille uniforme", - "theme": "Thème", - "themeDark": "Sombre", - "themeLight": "Clair", - "themeSystem": "Système", - "title": "Paramètres", - "version": "Version", + "profile": "Profil", + "searchNoResults": "Aucun paramètre trouvé", + "languageAuto": "Langue définie sur Auto", "emailNotifications": "Notifications par email", "emailNotificationsDesc": "Recevoir des notifications importantes par email", "desktopNotifications": "Notifications bureau", "desktopNotificationsDesc": "Recevoir des notifications dans votre navigateur", "notificationsDesc": "Gérez vos préférences de notifications" }, + "profile": { + "title": "Profil", + "description": "Mettez à jour vos informations personnelles", + "displayName": "Nom d'affichage", + "email": "Email", + "changePassword": "Changer le mot de passe", + "changePasswordDescription": "Mettez à jour votre mot de passe. Vous aurez besoin de votre mot de passe actuel.", + "currentPassword": "Mot de passe actuel", + "newPassword": "Nouveau mot de passe", + "confirmPassword": "Confirmer le mot de passe", + "updatePassword": "Mettre à jour le mot de passe", + "passwordChangeSuccess": "Mot de passe changé avec succès", + "passwordChangeFailed": "Échec du changement de mot de passe", + "passwordUpdated": "Mot de passe mis à jour", + "passwordError": "Erreur lors de la mise à jour du mot de passe", + "languagePreferences": "Préférences linguistiques", + "languagePreferencesDescription": "Choisissez votre langue préférée pour les fonctionnalités IA et l'interface.", + "preferredLanguage": "Langue préférée", + "selectLanguage": "Sélectionner une langue", + "languageDescription": "Cette langue sera utilisée pour les fonctionnalités IA, l'analyse de contenu et le texte de l'interface.", + "autoDetect": "Détection automatique", + "updateSuccess": "Profil mis à jour", + "updateFailed": "Échec de la mise à jour du profil", + "languageUpdateSuccess": "Langue mise à jour avec succès", + "languageUpdateFailed": "Échec de la mise à jour de la langue", + "profileUpdated": "Profil mis à jour", + "profileError": "Erreur lors de la mise à jour du profil", + "accountSettings": "Paramètres du compte", + "manageAISettings": "Gérer les paramètres IA", + "displaySettings": "Paramètres d'affichage", + "displaySettingsDescription": "Personnalisez l'apparence et la taille de la police.", + "fontSize": "Taille de la police", + "selectFontSize": "Sélectionner la taille de la police", + "fontSizeSmall": "Petite", + "fontSizeMedium": "Moyenne", + "fontSizeLarge": "Grande", + "fontSizeExtraLarge": "Très grande", + "fontSizeDescription": "Ajustez la taille de la police pour une meilleure lisibilité. Cela s'applique à tout le texte de l'interface.", + "fontSizeUpdateSuccess": "Taille de police mise à jour avec succès", + "fontSizeUpdateFailed": "Échec de la mise à jour de la taille de police", + "showRecentNotes": "Afficher la section Récent", + "showRecentNotesDescription": "Afficher les notes récentes (7 derniers jours) sur la page principale", + "recentNotesUpdateSuccess": "Paramètre des notes récentes mis à jour avec succès", + "recentNotesUpdateFailed": "Échec de la mise à jour du paramètre des notes récentes" + }, + "aiSettings": { + "title": "Paramètres IA", + "description": "Configurez vos fonctionnalités IA et préférences", + "features": "Fonctionnalités IA", + "provider": "Fournisseur IA", + "providerAuto": "Auto (Recommandé)", + "providerOllama": "Ollama (Local)", + "providerOpenAI": "OpenAI (Cloud)", + "frequency": "Fréquence", + "frequencyDaily": "Quotidienne", + "frequencyWeekly": "Hebdomadaire", + "saving": "Enregistrement...", + "saved": "Paramètre mis à jour", + "error": "Échec de la mise à jour", + "titleSuggestionsDesc": "Suggérer des titres pour les notes sans titre après 50+ mots", + "paragraphRefactorDesc": "Options d'amélioration de texte propulsées par l'IA", + "frequencyDesc": "Fréquence d'analyse des connexions entre notes", + "providerDesc": "Choisissez votre fournisseur IA préféré", + "providerAutoDesc": "Ollama si disponible, sinon OpenAI", + "providerOllamaDesc": "100% privé, fonctionne localement sur votre machine", + "providerOpenAIDesc": "Plus précis, nécessite une clé API" + }, + "general": { + "loading": "Chargement...", + "save": "Enregistrer", + "cancel": "Annuler", + "add": "Ajouter", + "edit": "Modifier", + "confirm": "Confirmer", + "close": "Fermer", + "back": "Retour", + "next": "Suivant", + "previous": "Précédent", + "submit": "Soumettre", + "reset": "Réinitialiser", + "apply": "Appliquer", + "clear": "Effacer", + "select": "Sélectionner", + "tryAgain": "Veuillez réessayer", + "error": "Une erreur est survenue", + "operationSuccess": "Opération réussie", + "operationFailed": "Opération échouée", + "testConnection": "Tester la connexion", + "clean": "Nettoyer", + "indexAll": "Tout indexer", + "preview": "Aperçu" + }, + "colors": { + "default": "Défaut", + "red": "Rouge", + "blue": "Bleu", + "green": "Vert", + "yellow": "Jaune", + "purple": "Violet", + "pink": "Rose", + "orange": "Orange", + "gray": "Gris" + }, + "reminder": { + "title": "Rappel", + "setReminder": "Définir un rappel", + "removeReminder": "Supprimer le rappel", + "reminderDate": "Date du rappel", + "reminderTime": "Heure du rappel", + "save": "Définir", + "cancel": "Annuler" + }, "reminders": { "title": "Rappels", "empty": "Aucun rappel", @@ -1190,85 +742,461 @@ "todayAt": "Aujourd'hui à {time}", "tomorrowAt": "Demain à {time}" }, - "sidebar": { - "archive": "Archives", - "editLabels": "Modifier les étiquettes", - "labels": "Étiquettes", - "newNoteTabs": "Nouvelle note", - "newNoteTabsHint": "Créer une note dans ce carnet", - "noLabelsInNotebook": "Aucune étiquette dans ce carnet", - "notes": "Notes", - "reminders": "Rappels", - "trash": "Corbeille", - "clearFilter": "Retirer le filtre" + "notebook": { + "create": "Créer un carnet", + "createNew": "Créer un nouveau carnet", + "createDescription": "Commencez une nouvelle collection pour organiser vos notes, idées et projets efficacement.", + "name": "Nom du carnet", + "namePlaceholder": "ex. Stratégie Marketing Q4", + "myNotebook": "Mon carnet", + "saving": "Enregistrement...", + "selectIcon": "Icône", + "selectColor": "Couleur", + "cancel": "Annuler", + "creating": "Création...", + "edit": "Modifier le carnet", + "editDescription": "Changer le nom, l'icône et la couleur de votre carnet.", + "delete": "Supprimer le carnet", + "deleteWarning": "Êtes-vous sûr de vouloir supprimer ce carnet ? Les notes seront déplacées dans les Notes générales.", + "deleteConfirm": "Supprimer", + "summary": "Résumé du carnet", + "summaryDescription": "Générer un résumé alimenté par l'IA de toutes les notes de ce carnet.", + "generating": "Génération du résumé...", + "summaryError": "Erreur lors de la génération du résumé", + "labels": "Étiquettes :", + "noLabels": "Aucune étiquette", + "pdfTitle": "Résumé — {name}", + "pdfNotesLabel": "Notes :", + "pdfGeneratedOn": "Généré le :", + "confidence": "confiance", + "savingReminder": "Erreur lors de la sauvegarde du rappel", + "removingReminder": "Erreur lors de la suppression du rappel", + "generatingDescription": "Veuillez patienter..." + }, + "notebookSuggestion": { + "title": "Déplacer vers {name} ?", + "description": "Cette note semble appartenir à ce carnet", + "move": "Déplacer", + "dismiss": "Rejeter", + "dismissIn": "Rejeter (ferme dans {timeLeft}s)", + "moveToNotebook": "Déplacer vers un carnet", + "generalNotes": "Notes générales" + }, + "admin": { + "title": "Tableau de bord Admin", + "userManagement": "Gestion des utilisateurs", + "chat": "Chat IA", + "lab": "Le Lab", + "agents": "Agents", + "workspace": "Espace de travail", + "settings": "Paramètres administrateur", + "security": { + "title": "Paramètres de sécurité", + "description": "Gérez le contrôle d'accès et les politiques d'inscription.", + "allowPublicRegistration": "Autoriser l'inscription publique", + "allowPublicRegistrationDescription": "Si désactivé, les nouveaux utilisateurs ne peuvent être ajoutés que par un administrateur via la page de gestion des utilisateurs.", + "updateSuccess": "Paramètres de sécurité mis à jour", + "updateFailed": "Échec de la mise à jour des paramètres de sécurité" + }, + "ai": { + "title": "Configuration IA", + "description": "Configurez les fournisseurs IA pour l'étiquetage auto et la recherche sémantique. Utilisez différents fournisseurs pour des performances optimales.", + "tagsGenerationProvider": "Fournisseur de génération d'étiquettes", + "tagsGenerationDescription": "Fournisseur IA pour les suggestions d'étiquettes. Recommandé : Ollama (gratuit, local).", + "embeddingsProvider": "Fournisseur d'embeddings", + "embeddingsDescription": "Fournisseur IA pour la recherche sémantique. Recommandé : OpenAI (meilleure qualité).", + "chatProvider": "Fournisseur de chat", + "chatDescription": "Fournisseur IA pour l'assistant chat. Utilise le fournisseur d'étiquettes si non configuré.", + "provider": "Fournisseur", + "baseUrl": "URL de base", + "model": "Modèle", + "apiKey": "Clé API", + "selectOllamaModel": "Sélectionnez un modèle Ollama installé localement", + "openAIKeyDescription": "Votre clé API OpenAI depuis platform.openai.com", + "modelRecommendations": "gpt-4o-mini = Meilleur rapport qualité/prix • gpt-4o = Meilleure qualité", + "commonModelsDescription": "Modèles courants pour API compatibles OpenAI", + "selectEmbeddingModel": "Sélectionnez un modèle d'embedding installé localement", + "commonEmbeddingModels": "Modèles d'embeddings courants pour API compatibles OpenAI", + "saving": "Enregistrement...", + "saveSettings": "Enregistrer les paramètres IA", + "openTestPanel": "Ouvrir le panneau de test IA", + "updateSuccess": "Paramètres IA mis à jour avec succès", + "updateFailed": "Échec de la mise à jour des paramètres IA", + "providerTagsRequired": "AI_PROVIDER_TAGS est requis", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING est requis", + "providerOllamaOption": "🦙 Ollama (Local & Gratuit)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 Custom Compatible OpenAI", + "bestValue": "Meilleur rapport qualité/prix", + "bestQuality": "Meilleure qualité", + "saved": "(Enregistré)", + "fetchModelsFailed": "Échec du chargement des modèles", + "refreshModels": "Rafraîchir les modèles", + "configured": "Configuré", + "fetchingModels": "Chargement des modèles...", + "clickToLoadModels": "Cliquez ↺ pour charger les modèles", + "searchModel": "Rechercher un modèle...", + "noModels": "Aucun modèle. Cliquez ↺", + "modelsAvailable": "{count} modèle(s) disponible(s)", + "enterUrlToLoad": "Entrez l'URL et cliquez ↺ pour charger les modèles", + "currentProvider": "(Actuel : {provider})", + "pageTitle": "Gestion IA", + "pageDescription": "Surveillez et configurez les fonctionnalités IA", + "configure": "Configurer", + "features": "Fonctionnalités IA", + "providerStatus": "État des fournisseurs IA", + "recentRequests": "Requêtes IA récentes", + "comingSoon": "Bientôt disponible", + "activeFeatures": "Fonctionnalités actives", + "successRate": "Taux de réussite", + "avgResponseTime": "Temps de réponse moyen", + "configuredProviders": "Fournisseurs configurés", + "settingUpdated": "Paramètre mis à jour", + "updateFailedShort": "Échec de la mise à jour", + "titleSuggestions": "Suggestions de titre", + "titleSuggestionsDesc": "Suggère des titres pour les notes après 50+ mots", + "aiAssistant": "Assistant IA", + "aiAssistantDesc": "Activer le chat IA et les outils d'amélioration de texte", + "memoryEchoFeature": "J'ai remarqué quelque chose...", + "memoryEchoFeatureDesc": "Analyse quotidienne des connexions entre vos notes", + "languageDetection": "Détection de langue", + "languageDetectionDesc": "Détecte automatiquement la langue de chaque note", + "autoLabeling": "Étiquetage automatique", + "autoLabelingDesc": "Suggère et applique des étiquettes automatiquement" + }, + "resend": { + "title": "Resend (Recommandé)", + "description": "Envoyez des emails via l'API Resend. Prioritaire sur SMTP si configuré.", + "apiKey": "Clé API Resend", + "apiKeyHint": "Obtenez votre clé API sur resend.com. Utilisée pour les notifications d'agents et les réinitialisations de mot de passe.", + "saveSettings": "Enregistrer les paramètres Resend", + "updateSuccess": "Paramètres Resend mis à jour", + "updateFailed": "Échec de la mise à jour des paramètres Resend", + "configured": "Resend est configuré et actif" + }, + "email": { + "title": "Configuration Email", + "description": "Configurez l'envoi d'emails pour les notifications d'agents et les réinitialisations de mot de passe.", + "provider": "Fournisseur Email", + "saveSettings": "Enregistrer les paramètres", + "status": "État des services", + "keySet": "clé configurée", + "activeAuto": "Mode auto : Resend sera utilisé en priorité, SMTP en secours.", + "activeSmtp": "Mode auto : SMTP sera utilisé (Resend non configuré).", + "noneConfigured": "Aucun service email configuré. Configurez Resend ou SMTP.", + "activeProvider": "Fournisseur actif", + "testOk": "test réussi", + "testFail": "test échoué" + }, + "smtp": { + "title": "Configuration SMTP", + "description": "Configurez le serveur email pour les réinitialisations de mot de passe. Utilisé si Resend n'est pas configuré.", + "host": "Hôte", + "port": "Port", + "username": "Nom d'utilisateur", + "password": "Mot de passe", + "fromEmail": "Email d'expédition", + "forceSSL": "Forcer SSL/TLS (généralement pour le port 465)", + "ignoreCertErrors": "Ignorer les erreurs de certificat (Auto-hébergé/Dev uniquement)", + "saveSettings": "Enregistrer les paramètres SMTP", + "sending": "Envoi en cours...", + "testEmail": "Email de test", + "updateSuccess": "Paramètres SMTP mis à jour", + "updateFailed": "Échec de la mise à jour des paramètres SMTP", + "testSuccess": "Email de test envoyé avec succès !", + "testFailed": "Échec : {error}" + }, + "users": { + "createUser": "Créer un utilisateur", + "addUser": "Ajouter un utilisateur", + "createUserDescription": "Ajouter un nouvel utilisateur au système.", + "name": "Nom", + "email": "Email", + "password": "Mot de passe", + "role": "Rôle", + "createSuccess": "Utilisateur créé avec succès", + "createFailed": "Échec de la création de l'utilisateur", + "deleteSuccess": "Utilisateur supprimé", + "deleteFailed": "Échec de la suppression", + "roleUpdateSuccess": "Rôle de l'utilisateur mis à jour à {role}", + "roleUpdateFailed": "Échec de la mise à jour du rôle", + "demote": "Rétrograder en utilisateur", + "promote": "Promouvoir en admin", + "confirmDelete": "Êtes-vous sûr ? Cette action est irréversible.", + "table": { + "name": "Nom", + "email": "Email", + "role": "Rôle", + "createdAt": "Créé le", + "actions": "Actions" + }, + "roles": { + "user": "Utilisateur", + "admin": "Admin" + }, + "title": "Utilisateurs", + "description": "Gérer les utilisateurs et les permissions" + }, + "aiTest": { + "title": "Test des fournisseurs IA", + "description": "Testez vos fournisseurs IA pour la génération d'étiquettes et les embeddings de recherche sémantique", + "tagsTestTitle": "Test de génération d'étiquettes", + "tagsTestDescription": "Testez le fournisseur IA responsable des suggestions d'étiquettes automatiques", + "embeddingsTestTitle": "Test d'embeddings", + "embeddingsTestDescription": "Testez le fournisseur IA responsable des embeddings de recherche sémantique", + "howItWorksTitle": "Fonctionnement des tests", + "tagsGenerationTest": "🏷️ Test de génération d'étiquettes :", + "tagsStep1": "Envoie une note exemple au fournisseur IA", + "tagsStep2": "Demande 3-5 étiquettes pertinentes basées sur le contenu", + "tagsStep3": "Affiche les étiquettes générées avec les scores de confiance", + "tagsStep4": "Mesure le temps de réponse", + "embeddingsTestLabel": "🔍 Test d'embeddings :", + "embeddingsStep1": "Envoie un texte exemple au fournisseur d'embeddings", + "embeddingsStep2": "Génère une représentation vectorielle (liste de nombres)", + "embeddingsStep3": "Affiche les dimensions de l'embedding et des exemples de valeurs", + "embeddingsStep4": "Vérifie que le vecteur est valide et correctement formaté", + "tipContent": "Vous pouvez utiliser différents fournisseurs pour les étiquettes et les embeddings ! Par exemple, utilisez Ollama (gratuit) pour les étiquettes et OpenAI (meilleure qualité) pour les embeddings afin d'optimiser les coûts et les performances.", + "provider": "Fournisseur :", + "model": "Modèle :", + "testing": "Test en cours...", + "runTest": "Lancer le test", + "testPassed": "Test réussi", + "testFailed": "Test échoué", + "testSuccessToast": "Test {type} réussi !", + "testFailedToast": "Test {type} échoué", + "testingType": "Test de {type} en cours...", + "technicalDetails": "Détails techniques", + "responseTime": "Temps de réponse : {time}ms", + "generatedTags": "Étiquettes générées :", + "embeddingDimensions": "Dimensions de l'embedding :", + "vectorDimensions": "dimensions vectorielles", + "first5Values": "5 premières valeurs :", + "error": "Erreur :", + "testError": "Erreur de test : {error}", + "tipTitle": "Astuce :", + "tipDescription": "Utilisez le panneau de test IA pour diagnostiquer les problèmes de configuration avant de tester." + }, + "sidebar": { + "dashboard": "Tableau de bord", + "users": "Utilisateurs", + "aiManagement": "Gestion IA", + "chat": "Chat IA", + "lab": "Le Lab (Idées)", + "agents": "Agents", + "settings": "Paramètres" + }, + "metrics": { + "vsLastPeriod": "vs période précédente" + }, + "tools": { + "title": "Outils Agents", + "description": "Configurer les outils externes pour le tool-use des agents : recherche web, scraping et accès API.", + "searchProvider": "Fournisseur de recherche web", + "searxng": "SearXNG (Auto-hébergé)", + "brave": "Brave Search API", + "both": "Les deux (SearXNG principal, Brave secours)", + "searxngUrl": "URL SearXNG", + "braveKey": "Clé API Brave Search", + "jinaKey": "Clé API Jina Reader", + "jinaKeyOptional": "Optionnel — fonctionne sans mais avec des limites", + "jinaKeyDescription": "Utilisée pour le scraping web. Fonctionne sans clé mais avec des limites de débit.", + "saveSettings": "Enregistrer les paramètres outils", + "updateSuccess": "Paramètres outils mis à jour avec succès", + "updateFailed": "Échec de la mise à jour des paramètres outils", + "testing": "Test en cours...", + "testSearch": "Test recherche web" + }, + "settingsDescription": "Configurer les paramètres de l'application", + "dashboard": { + "title": "Tableau de bord", + "description": "Vue d'ensemble des métriques de l'application", + "recentActivity": "Activité récente", + "recentActivityPlaceholder": "L'activité récente sera affichée ici." + }, + "error": { + "title": "Une erreur s'est produite dans le panneau d'administration", + "description": "Cette page n'a pas pu être affichée. Vous pouvez réessayer sans recharger.", + "retry": "Réessayer" + } + }, + "about": { + "title": "À propos", + "description": "Informations sur l'application", + "appName": "Memento", + "appDescription": "Une application de prise de notes puissante avec des fonctionnalités IA", + "version": "Version", + "buildDate": "Date de build", + "platform": "Plateforme", + "platformWeb": "Web", + "features": { + "title": "Fonctionnalités", + "description": "Capacités alimentées par l'IA", + "titleSuggestions": "Suggestions de titre alimentées par l'IA", + "semanticSearch": "Recherche sémantique avec embeddings", + "paragraphReformulation": "Reformulation de paragraphes", + "memoryEcho": "Perspectives quotidiennes Memory Echo", + "notebookOrganization": "Organisation en carnets", + "dragDrop": "Gestion des notes par glisser-déposer", + "labelSystem": "Système d'étiquettes", + "multipleProviders": "Plusieurs fournisseurs IA (OpenAI, Ollama)" + }, + "technology": { + "title": "Stack technologique", + "description": "Construit avec des technologies modernes", + "frontend": "Frontend", + "backend": "Backend", + "database": "Base de données", + "authentication": "Authentification", + "ai": "IA", + "ui": "UI", + "testing": "Tests" + }, + "support": { + "title": "Support", + "description": "Obtenez de l'aide et donnez votre avis", + "documentation": "Documentation", + "reportIssues": "Signaler des problèmes", + "feedback": "Commentaires" + } }, "support": { - "aiApiCosts": "Coûts API IA :", - "buyMeACoffee": "Offrez-moi un café", - "contributeCode": "Contribuer au code", - "description": "Memento est 100% gratuit et open-source. Votre soutien aide à le garder ainsi.", - "directImpact": "Impact direct", - "domainSSL": "Domaine et SSL :", - "donateOnKofi": "Faire un don sur Ko-fi", - "donationDescription": "Faites un don ponctuel ou devenez supporter mensuel.", - "githubDescription": "Support récurrent • Reconnaissance publique • Axé développeurs", - "hostingServers": "Hébergement et serveurs :", - "howSupportHelps": "Comment votre soutien aide", - "kofiDescription": "Sans frais de plateforme • Paiements instantanés • Sécurisé", - "otherWaysTitle": "Autres façons de soutenir", - "reportBug": "Signaler un bug", - "shareTwitter": "Partager sur Twitter", - "sponsorDescription": "Devenez sponsor mensuel et obtenez une reconnaissance.", - "sponsorOnGithub": "Sponsoriser sur GitHub", - "sponsorPerks": "Avantages sponsors", - "starGithub": "Étoiler sur GitHub", "title": "Supporter le développement de Memento", - "totalExpenses": "Total des dépenses :", + "description": "Memento est 100% gratuit et open-source. Votre soutien aide à le garder ainsi.", + "buyMeACoffee": "Offrez-moi un café", + "donationDescription": "Faites un don ponctuel ou devenez supporter mensuel.", + "donateOnKofi": "Faire un don sur Ko-fi", + "kofiDescription": "Sans frais de plateforme • Paiements instantanés • Sécurisé", + "sponsorOnGithub": "Sponsoriser sur GitHub", + "sponsorDescription": "Devenez sponsor mensuel et obtenez une reconnaissance.", + "githubDescription": "Support récurrent • Reconnaissance publique • Axé développeurs", + "howSupportHelps": "Comment votre soutien aide", + "directImpact": "Impact direct", + "sponsorPerks": "Avantages sponsors", "transparency": "Transparence", - "transparencyDescription": "Je crois en une transparence totale. Voici comment les dons sont utilisés :" + "transparencyDescription": "Je crois en une transparence totale. Voici comment les dons sont utilisés :", + "hostingServers": "Hébergement et serveurs :", + "domainSSL": "Domaine et SSL :", + "aiApiCosts": "Coûts API IA :", + "totalExpenses": "Total des dépenses :", + "otherWaysTitle": "Autres façons de soutenir", + "starGithub": "Étoiler sur GitHub", + "reportBug": "Signaler un bug", + "contributeCode": "Contribuer au code", + "shareTwitter": "Partager sur Twitter" + }, + "demoMode": { + "title": "Mode Démo", + "activated": "Mode Démo activé ! Memory Echo fonctionnera maintenant instantanément.", + "deactivated": "Mode Démo désactivé. Paramètres normaux restaurés.", + "toggleFailed": "Échec du basculement du mode démo", + "description": "Accélère Memory Echo pour les tests. Les connexions apparaissent instantanément.", + "parametersActive": "Paramètres démo actifs :", + "similarityThreshold": "Seuil de similarité de 50% (normalement 75%)", + "delayBetweenNotes": "Délai de 0 jour entre les notes (normalement 7 jours)", + "unlimitedInsights": "Perspectives illimitées (pas de limites de fréquence)", + "createNotesTip": "Créez 2+ notes similaires et voyez Memory Echo en action !" + }, + "resetPassword": { + "title": "Réinitialiser le mot de passe", + "description": "Entrez votre nouveau mot de passe ci-dessous.", + "invalidLinkTitle": "Lien invalide", + "invalidLinkDescription": "Ce lien de réinitialisation de mot de passe est invalide ou a expiré.", + "requestNewLink": "Demander un nouveau lien", + "newPassword": "Nouveau mot de passe", + "confirmNewPassword": "Confirmer le nouveau mot de passe", + "resetting": "Réinitialisation...", + "resetPassword": "Réinitialiser le mot de passe", + "passwordMismatch": "Les mots de passe ne correspondent pas", + "success": "Mot de passe réinitialisé avec succès. Vous pouvez maintenant vous connecter.", + "loading": "Chargement..." + }, + "dataManagement": { + "title": "Gestion des données", + "toolsDescription": "Outils pour maintenir la santé de votre base de données", + "exporting": "Exportation...", + "importing": "Importation...", + "deleting": "Suppression...", + "dangerZone": "Zone de danger", + "dangerZoneDescription": "Supprimer définitivement vos données", + "indexingComplete": "Indexation terminée : {count} notes traitées", + "indexingError": "Erreur lors de l'indexation", + "cleanupComplete": "Nettoyage terminé : {created} créés, {deleted} supprimés", + "cleanupError": "Erreur lors du nettoyage", + "export": { + "title": "Exporter toutes les notes", + "description": "Télécharger toutes vos notes au format JSON. Inclut tout le contenu, les étiquettes et les métadonnées.", + "button": "Exporter les notes", + "success": "Notes exportées avec succès", + "failed": "Échec de l'exportation des notes" + }, + "import": { + "title": "Importer des notes", + "description": "Téléchargez un fichier JSON pour importer des notes. Les notes seront ajoutées aux existantes, pas remplacées.", + "button": "Importer des notes", + "success": "{count} notes importées", + "failed": "Échec de l'importation des notes" + }, + "delete": { + "title": "Supprimer toutes les notes", + "description": "Supprimer définitivement toutes vos notes. Cette action est irréversible.", + "button": "Supprimer toutes les notes", + "confirm": "Êtes-vous sûr ? Cette action supprimera définitivement toutes vos notes.", + "success": "Toutes les notes ont été supprimées", + "failed": "Échec de la suppression des notes" + }, + "indexing": { + "title": "Reconstruire l'index de recherche", + "description": "Régénérer les embeddings pour toutes les notes afin d'améliorer la recherche sémantique.", + "button": "Reconstruire l'index", + "success": "Indexation terminée : {count} notes traitées", + "failed": "Erreur lors de l'indexation" + }, + "cleanup": { + "title": "Nettoyer les données orphelines", + "description": "Supprimer les étiquettes et connexions qui référencent des notes supprimées.", + "button": "Nettoyer", + "failed": "Erreur lors du nettoyage" + } + }, + "appearance": { + "title": "Apparence", + "description": "Personnaliser l'apparence de l'application", + "notesViewDescription": "Choisissez comment afficher les notes sur l'accueil et dans les carnets.", + "notesViewLabel": "Affichage des notes", + "notesViewTabs": "Onglets (type OneNote)", + "notesViewMasonry": "Cartes (grille)", + "selectTheme": "Sélectionner le thème" + }, + "generalSettings": { + "title": "Paramètres généraux", + "description": "Paramètres généraux de l'application" + }, + "toast": { + "saved": "Paramètre enregistré", + "saveFailed": "Échec de l'enregistrement du paramètre", + "operationSuccess": "Opération réussie", + "operationFailed": "Opération échouée", + "openingConnection": "Ouverture de la connexion...", + "openConnectionFailed": "Échec de l'ouverture de la connexion", + "thanksFeedback": "Merci pour votre feedback !", + "thanksFeedbackImproving": "Merci ! Nous l'utiliserons pour nous améliorer.", + "feedbackFailed": "Échec de l'envoi du feedback", + "notesFusionSuccess": "Notes fusionnées avec succès !" }, "testPages": { "titleSuggestions": { - "analyzing": "Analyse...", - "contentLabel": "Contenu (besoin de 50+ mots) :", - "error": "Erreur :", - "idle": "Inactif", - "noSuggestions": "Pas encore de suggestions. Tapez 50+ mots et attendez 2 secondes.", - "placeholder": "Tapez au moins 50 mots ici...", - "status": "Statut :", - "suggestions": "Suggestions ({count}) :", "title": "Test des suggestions de titre", - "wordCount": "Nombre de mots :" + "contentLabel": "Contenu (besoin de 50+ mots) :", + "placeholder": "Tapez au moins 50 mots ici...", + "wordCount": "Nombre de mots :", + "status": "Statut :", + "analyzing": "Analyse...", + "idle": "Inactif", + "error": "Erreur :", + "suggestions": "Suggestions ({count}) :", + "noSuggestions": "Pas encore de suggestions. Tapez 50+ mots et attendez 2 secondes." } }, - "time": { - "daysAgo": "il y a {count}j", - "hoursAgo": "il y a {count}h", - "justNow": "à l'instant", - "minutesAgo": "il y a {count}m", - "today": "Aujourd'hui", - "tomorrow": "Demain", - "yesterday": "Hier" - }, - "titleSuggestions": { - "available": "Suggestions de titre", - "dismiss": "Ignorer", - "generating": "Génération en cours...", - "selectTitle": "Sélectionnez un titre", - "title": "Suggestions IA" - }, - "toast": { - "feedbackFailed": "Échec de l'envoi du feedback", - "notesFusionSuccess": "Notes fusionnées avec succès !", - "openConnectionFailed": "Échec de l'ouverture de la connexion", - "openingConnection": "Ouverture de la connexion...", - "operationFailed": "Opération échouée", - "operationSuccess": "Opération réussie", - "saveFailed": "Échec de l'enregistrement du paramètre", - "saved": "Paramètre enregistré", - "thanksFeedback": "Merci pour votre feedback !", - "thanksFeedbackImproving": "Merci ! Nous l'utiliserons pour nous améliorer." - }, "trash": { "title": "Corbeille", "empty": "La corbeille est vide", @@ -1284,11 +1212,83 @@ "permanentDelete": "Supprimer définitivement", "permanentDeleteConfirm": "Cette note sera supprimée définitivement. Cette action est irréversible." }, + "footer": { + "privacy": "Confidentialité", + "terms": "Conditions", + "openSource": "Clone Open Source" + }, + "connection": { + "similarityInfo": "Ces notes sont connectées par {similarity}% de similarité", + "clickToView": "Cliquer pour voir la note", + "isHelpful": "Cette connexion est-elle utile ?", + "helpful": "Utile", + "notHelpful": "Pas utile", + "memoryEchoDiscovery": "Découverte Memory Echo" + }, + "diagnostics": { + "title": "Diagnostics", + "description": "Vérifiez l'état de la connexion de votre fournisseur IA", + "configuredProvider": "Fournisseur configuré", + "apiStatus": "Statut de l'API", + "operational": "Opérationnel", + "errorStatus": "Erreur", + "checking": "Vérification...", + "testDetails": "Détails du test :", + "troubleshootingTitle": "Conseils de dépannage :", + "tip1": "Assurez-vous qu'Ollama fonctionne (ollama serve)", + "tip2": "Vérifiez que le modèle est installé (ollama pull llama3)", + "tip3": "Vérifiez votre clé API pour OpenAI", + "tip4": "Vérifiez la connectivité réseau" + }, + "batch": { + "organizeWithAI": "Organiser avec l'IA", + "organize": "Organiser" + }, + "common": { + "unknown": "Inconnu", + "notAvailable": "N/A", + "loading": "Chargement...", + "error": "Erreur", + "success": "Succès", + "confirm": "Confirmer", + "cancel": "Annuler", + "close": "Fermer", + "save": "Enregistrer", + "delete": "Supprimer", + "edit": "Modifier", + "add": "Ajouter", + "remove": "Supprimer", + "search": "Rechercher", + "noResults": "Aucun résultat", + "required": "Requis", + "optional": "Optionnel" + }, + "time": { + "justNow": "à l'instant", + "minutesAgo": "il y a {count}m", + "hoursAgo": "il y a {count}h", + "daysAgo": "il y a {count}j", + "yesterday": "Hier", + "today": "Aujourd'hui", + "tomorrow": "Demain" + }, + "favorites": { + "title": "Favoris", + "toggleSection": "Basculer la section des notes épinglées", + "noFavorites": "Aucune note épinglée encore", + "pinToFavorite": "Épinglez une note pour l'ajouter aux favoris" + }, + "notebooks": { + "create": "Créer un carnet", + "allNotebooks": "Tous les carnets", + "noNotebooks": "Aucun carnet encore", + "createFirst": "Créez votre premier carnet" + }, "ui": { "close": "Fermer", - "collapse": "Réduire", + "open": "Ouvrir", "expand": "Développer", - "open": "Ouvrir" + "collapse": "Réduire" }, "mcpSettings": { "title": "Paramètres MCP", diff --git a/memento-note/locales/hi.json b/memento-note/locales/hi.json index 304c039..d28a17d 100644 --- a/memento-note/locales/hi.json +++ b/memento-note/locales/hi.json @@ -1,350 +1,366 @@ { - "about": { - "appDescription": "AI-संचालित सुविधाओं के साथ एक शक्तिशाली नोट लेने वाला एप्लिकेशन", - "appName": "Memento", - "buildDate": "बिल्ड तिथि", - "description": "एप्लिकेशन के बारे में जानकारी", - "features": { - "description": "AI-संचालित क्षमताएं", - "dragDrop": "ड्रैग और ड्रॉप नोट प्रबंधन", - "labelSystem": "लेबल सिस्टम", - "memoryEcho": "Memory Echo दैनिक अंतर्दृष्टि", - "multipleProviders": "कई AI प्रदाता (OpenAI, Ollama)", - "notebookOrganization": "नोटबुक संगठन", - "paragraphReformulation": "अनुच्छेद पुनर्सुधार", - "semanticSearch": "एम्बेडिंग्स के साथ सिमेंटिक खोज", - "title": "सुविधाएं", - "titleSuggestions": "AI-संचालित शीर्षक सुझाव" - }, - "platform": "प्लेटफ़ॉर्म", - "platformWeb": "वेब", - "support": { - "description": "सहायता और प्रतिक्रिया प्राप्त करें", - "documentation": "प्रलेखन", - "feedback": "प्रतिक्रिया", - "reportIssues": "समस्याएं रिपोर्ट करें", - "title": "समर्थन" - }, - "technology": { - "ai": "AI", - "authentication": "प्रमाणीकरण", - "backend": "बैकएंड", - "database": "डेटाबेस", - "description": "आधुनिक तकनीकों के साथ निर्मित", - "frontend": "फ्रंटएंड", - "testing": "परीक्षण", - "title": "तकनीकी स्टैक", - "ui": "UI" - }, - "title": "के बारे में", - "version": "संस्करण" + "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": "लॉगिन पर वापस जाएं", + "signOut": "Sign out", + "confirmPassword": "पासवर्ड की पुष्टि करें", + "confirmPasswordPlaceholder": "अपना पासवर्ड दोबारा दर्ज करें" }, - "admin": { - "ai": { - "apiKey": "API कुंजी", - "baseUrl": "बेस URL", - "commonEmbeddingModels": "OpenAI-संगत API के लिए सामान्य एम्बेडिंग मॉडल", - "commonModelsDescription": "OpenAI-संगत API के लिए सामान्य मॉडल", - "description": "स्वचालित टैगिंग और सिमेंटिक खोज के लिए AI प्रदाताओं को कॉन्फ़िगर करें। इष्टतम प्रदर्शन के लिए विभिन्न प्रदाताओं का उपयोग करें।", - "embeddingsDescription": "सिमेंटिक खोज एम्बेडिंग्स के लिए AI प्रदाता। अनुशंसित: OpenAI (सर्वोत्तम गुणवत्ता)।", - "embeddingsProvider": "एम्बेडिंग्स प्रदाता", - "model": "मॉडल", - "modelRecommendations": "gpt-4o-mini = सर्वोत्तम मूल्य • gpt-4o = सर्वोत्तम गुणवत्ता", - "openAIKeyDescription": "platform.openai.com से आपकी OpenAI API कुंजी", - "openTestPanel": "AI परीक्षण पैनल खोलें", - "provider": "प्रदाता", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING आवश्यक है", - "providerTagsRequired": "AI_PROVIDER_TAGS आवश्यक है", - "saveSettings": "AI सेटिंग्स सहेजें", - "saving": "सहेज रहे हैं...", - "selectEmbeddingModel": "अपने सिस्टम पर इंस्टॉल किए गए एम्बेडिंग मॉडल का चयन करें", - "selectOllamaModel": "अपने सिस्टम पर इंस्टॉल किए गए Ollama मॉडल का चयन करें", - "tagsGenerationDescription": "स्वचालित टैग सुझावों के लिए AI प्रदाता। अनुशंसित: Ollama (मुफ्त, स्थानीय)।", - "tagsGenerationProvider": "टैग जनरेशन प्रदाता", - "title": "AI कॉन्फ़िगरेशन", - "updateFailed": "AI सेटिंग्स अपडेट करने में विफल", - "updateSuccess": "AI सेटिंग्स सफलतापूर्वक अपडेट की गईं", - "bestValue": "सर्वोत्तम मूल्य", - "bestQuality": "सर्वोत्तम गुणवत्ता", - "providerOllamaOption": "🦙 Ollama (Local & Free)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Custom OpenAI-Compatible", - "saved": "(सहेजा गया)", - "chatProvider": "चैट प्रदाता", - "chatDescription": "चैट सहायक के लिए AI प्रदाता। कॉन्फ़िगर नहीं होने पर टैग प्रदाता का उपयोग करता है।", - "fetchModelsFailed": "मॉडल लाने में विफल", - "refreshModels": "मॉडल रीफ़्रेश करें", - "configured": "कॉन्फ़िगर किया गया", - "fetchingModels": "मॉडल ला रहे हैं...", - "clickToLoadModels": "मॉडल लोड करने के लिए ↺ पर क्लिक करें", - "searchModel": "मॉडल खोजें...", - "noModels": "कोई मॉडल नहीं। ↺ पर क्लिक करें", - "modelsAvailable": "{count} मॉडल उपलब्ध", - "enterUrlToLoad": "URL दर्ज करें और ↺ पर क्लिक करें", - "currentProvider": "(वर्तमान: {provider})", - "pageTitle": "AI प्रबंधन", - "pageDescription": "AI सुविधाओं की निगरानी और कॉन्फ़िगर करें", - "configure": "कॉन्फ़िगर करें", - "features": "AI सुविधाएँ", - "providerStatus": "AI प्रदाता स्थिति", - "recentRequests": "हालिया AI अनुरोध", - "comingSoon": "जल्द आ रहा है", - "activeFeatures": "सक्रिय सुविधाएँ", - "successRate": "सफलता दर", - "avgResponseTime": "औसत प्रतिक्रिया समय", - "configuredProviders": "कॉन्फ़िगर किए गए प्रदाता", - "settingUpdated": "सेटिंग अपडेट की गई", - "updateFailedShort": "अपडेट विफल", - "titleSuggestions": "शीर्षक सुझाव", - "titleSuggestionsDesc": "50+ शब्दों के बाद नोट्स के लिए शीर्षक सुझाव", - "aiAssistant": "AI सहायक", - "aiAssistantDesc": "AI चैट और पाठ सुधार उपकरण सक्षम करें", - "memoryEchoFeature": "मैंने कुछ नोटिस किया...", - "memoryEchoFeatureDesc": "आपके नोट्स के बीच कनेक्शन का दैनिक विश्लेषण", - "languageDetection": "भाषा पहचान", - "languageDetectionDesc": "प्रत्येक नोट की भाषा का स्वचालित पता लगाएं", - "autoLabeling": "स्वतः लेबलिंग", - "autoLabelingDesc": "लेबल स्वचालित रूप से सुझाएँ और लागू करें" - }, - "aiTest": { - "description": "टैग जनरेशन और सिमेंटिक खोज एम्बेडिंग्स के लिए अपने AI प्रदाताओं का परीक्षण करें", - "embeddingDimensions": "एम्बेडिंग आयाम:", - "embeddingsTestDescription": "सिमेंटिक खोज एम्बेडिंग्स के लिए जिम्मेदार AI प्रदाता का परीक्षण करें", - "embeddingsTestTitle": "एम्बेडिंग्स परीक्षण", - "error": "त्रुटि:", - "first5Values": "पहले 5 मान:", - "generatedTags": "उत्पन्न टैग:", - "howItWorksTitle": "परीक्षण कैसे काम करता है", - "model": "मॉडल:", - "provider": "प्रदाता:", - "responseTime": "प्रतिक्रिया समय: {time}ms", - "runTest": "परीक्षण चलाएं", - "tagsTestDescription": "स्वचालित टैग सुझावों के लिए जिम्मेदार AI प्रदाता का परीक्षण करें", - "tagsTestTitle": "टैग जनरेशन परीक्षण", - "testError": "परीक्षण त्रुटि: {error}", - "testFailed": "परीक्षण विफल", - "testPassed": "परीक्षण पास", - "testing": "परीक्षण हो रहा है...", - "tipDescription": "परीक्षण से पहले कॉन्फ़िगरेशन समस्याओं का निदान करने के लिए AI परीक्षण पैनल का उपयोग करें।", - "tipTitle": "सुझाव:", - "title": "AI प्रदाता परीक्षण", - "vectorDimensions": "वेक्टर आयाम", - "tagsGenerationTest": "🏷️ टैग जनरेशन टेस्ट:", - "tagsStep1": "AI प्रदाता को एक नमूना नोट भेजता है", - "tagsStep2": "सामग्री के आधार पर 3-5 प्रासंगिक टैग का अनुरोध करता है", - "tagsStep3": "विश्वास स्कोर के साथ जेनरेट किए गए टैग प्रदर्शित करता है", - "tagsStep4": "प्रतिक्रिया समय मापता है", - "embeddingsTestLabel": "🔍 एम्बेडिंग्स टेस्ट:", - "embeddingsStep1": "एम्बेडिंग प्रदाता को एक नमूना पाठ भेजता है", - "embeddingsStep2": "एक वेक्टर प्रतिनिधित्व (संख्याओं की सूची) उत्पन्न करता है", - "embeddingsStep3": "एम्बेडिंग आयाम और नमूना मान प्रदर्शित करता है", - "embeddingsStep4": "सत्यापित करता है कि वेक्टर मान्य और उचित रूप से स्वरूपित है", - "tipContent": "आप टैग और एम्बेडिंग्स के लिए अलग-अलग प्रदाताओं का उपयोग कर सकते हैं! लागत और प्रदर्शन को अनुकूलित करने के लिए Ollama (मुफ्त) का उपयोग टैग के लिए और OpenAI (सर्वोत्तम गुणवत्ता) एम्बेडिंग्स के लिए करें।", - "testSuccessToast": "{type} परीक्षण सफल!", - "testFailedToast": "{type} परीक्षण विफल", - "testingType": "{type} परीक्षण हो रहा है...", - "technicalDetails": "तकनीकी विवरण" - }, - "aiTesting": "AI परीक्षण", - "security": { - "allowPublicRegistration": "सार्वजनिक पंजीकरण की अनुमति दें", - "allowPublicRegistrationDescription": "यदि अक्षम है, तो नए उपयोगकर्ताओं को केवल एडमिन द्वारा उपयोगकर्ता प्रबंधन पृष्ठ के माध्यम से जोड़ा जा सकता है।", - "description": "पहुंच नियंत्रण और पंजीकरण नीतियां प्रबंधित करें।", - "title": "सुरक्षा सेटिंग्स", - "updateFailed": "सुरक्षा सेटिंग्स अपडेट करने में विफल", - "updateSuccess": "सुरक्षा सेटिंग्स अपडेट की गईं" - }, - "settings": "एडमिन सेटिंग्स", - "resend": { - "title": "Resend (अनुशंसित)", - "description": "Resend API के माध्यम से ईमेल भेजें। कॉन्फ़िगर होने पर SMTP से प्राथमिकता लेता है।", - "apiKey": "Resend API कुंजी", - "apiKeyHint": "resend.com से अपनी API कुंजी प्राप्त करें। एजेंट सूचनाओं और पासवर्ड रीसेट के लिए उपयोग किया जाता है।", - "saveSettings": "Resend सेटिंग्स सहेजें", - "updateSuccess": "Resend सेटिंग्स अपडेट की गईं", - "updateFailed": "Resend सेटिंग्स अपडेट करने में विफल", - "configured": "Resend कॉन्फ़िगर और सक्रिय है" - }, - "email": { - "title": "ईमेल कॉन्फ़िगरेशन", - "description": "एजेंट सूचनाओं और पासवर्ड रीसेट के लिए ईमेल वितरण कॉन्फ़िगर करें।", - "provider": "ईमेल प्रदाता", - "saveSettings": "ईमेल सेटिंग्स सहेजें" - }, - "smtp": { - "description": "पासवर्ड रीसेट के लिए ईमेल सर्वर कॉन्फ़िगर करें।", - "forceSSL": "SSL/TLS बाध्य करें (आमतौर पर पोर्ट 465 के लिए)", - "fromEmail": "प्रेषक ईमेल", - "host": "होस्ट", - "ignoreCertErrors": "प्रमाणपत्र त्रुटियों को अनदेखा करें (केवल स्व-होस्ट/विकास)", - "password": "पासवर्ड", - "port": "पोर्ट", - "saveSettings": "SMTP सेटिंग्स सहेजें", - "sending": "भेज रहे हैं...", - "testEmail": "परीक्षण ईमेल", - "testFailed": "विफल: {error}", - "testSuccess": "परीक्षण ईमेल सफलतापूर्वक भेजा गया!", - "title": "SMTP कॉन्फ़िगरेशन", - "updateFailed": "SMTP सेटिंग्स अपडेट करने में विफल", - "updateSuccess": "SMTP सेटिंग्स अपडेट की गईं", - "username": "उपयोगकर्ता नाम" - }, - "title": "एडमिन डैशबोर्ड", - "userManagement": "उपयोगकर्ता प्रबंधन", - "users": { - "addUser": "उपयोगकर्ता जोड़ें", - "confirmDelete": "Are you sure? This action cannot be undone.", - "createFailed": "उपयोगकर्ता बनाने में विफल", - "createSuccess": "उपयोगकर्ता सफलतापूर्वक बनाया गया", - "createUser": "उपयोगकर्ता बनाएं", - "createUserDescription": "सिस्टम में एक नया उपयोगकर्ता जोड़ें।", - "deleteFailed": "हटाने में विफल", - "deleteSuccess": "उपयोगकर्ता हटाया गया", - "demote": "अवमत करें", - "email": "ईमेल", - "name": "नाम", - "password": "पासवर्ड", - "promote": "पदोन्नत करें", - "role": "भूमिका", - "roleUpdateFailed": "भूमिका अपडेट करने में विफल", - "roleUpdateSuccess": "उपयोगकर्ता भूमिका को {role} में अपडेट किया गया", - "roles": { - "admin": "व्यवस्थापक", - "user": "उपयोगकर्ता" - }, - "table": { - "actions": "कार्रवाई", - "createdAt": "बनाया गया", - "email": "ईमेल", - "name": "नाम", - "role": "भूमिका" - }, - "title": "उपयोगकर्ता", - "description": "एप्लिकेशन उपयोगकर्ताओं और अनुमतियों का प्रबंधन" - }, - "chat": "AI Chat", - "lab": "The Lab", - "agents": "Agents", - "workspace": "Workspace", - "sidebar": { - "dashboard": "डैशबोर्ड", - "users": "उपयोगकर्ता", - "aiManagement": "AI प्रबंधन", - "chat": "AI चैट", - "lab": "लैब (विचार)", - "agents": "एजेंट", - "settings": "सेटिंग्स" - }, - "metrics": { - "vsLastPeriod": "vs पिछली अवधि" - }, - "tools": { - "title": "एजेंट टूल", - "description": "एजेंट टूल-उपयोग के लिए बाहरी टूल कॉन्फ़िगर करें: वेब खोज, वेब स्क्रैपिंग और API एक्सेस।", - "searchProvider": "वेब खोज प्रदाता", - "searxng": "SearXNG (स्व-होस्टेड)", - "brave": "Brave Search API", - "both": "दोनों (SearXNG प्राथमिक, Brave फ़ॉलबैक)", - "searxngUrl": "SearXNG URL", - "braveKey": "Brave Search API कुंजी", - "jinaKey": "Jina Reader API कुंजी", - "jinaKeyOptional": "वैकल्पिक — बिना काम करता है लेकिन दर सीमा के साथ", - "jinaKeyDescription": "वेब स्क्रैपिंग के लिए उपयोग किया जाता है। बिना कुंजी के काम करता है लेकिन दर सीमा के साथ।", - "saveSettings": "टूल सेटिंग्स सहेजें", - "updateSuccess": "टूल सेटिंग्स सफलतापूर्वक अपडेट की गईं", - "updateFailed": "टूल सेटिंग्स अपडेट करने में विफल", - "testing": "परीक्षण हो रहा है...", - "testSearch": "वेब खोज परीक्षण" - }, - "settingsDescription": "एप्लिकेशन-वाइड सेटिंग्स कॉन्फ़िगर करें", - "dashboard": { - "title": "डैशबोर्ड", - "description": "एप्लिकेशन मेट्रिक्स का अवलोकन", - "recentActivity": "हालिया गतिविधि", - "recentActivityPlaceholder": "हालिया गतिविधि यहां प्रदर्शित होगी।" - }, - "error": { - "title": "एडमिन पैनल में त्रुटि हुई", - "description": "पेज रेंडर करने में विफल। पुनः प्रयास करें।", - "retry": "पुनः प्रयास करें" - } + "sidebar": { + "notes": "Notes", + "reminders": "Reminders", + "labels": "Labels", + "editLabels": "Edit labels", + "newNoteTabs": "नया नोट", + "newNoteTabsHint": "इस नोटबुक में नोट बनाएं", + "noLabelsInNotebook": "इस नोटबुक में कोई लेबल नहीं", + "archive": "Archive", + "trash": "Trash", + "clearFilter": "Remove filter" + }, + "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": "नोट बनाने में विफल", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "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)", + "pinnedNotes": "पिन किए गए नोट्स", + "recent": "हालिया", + "addNote": "नोट जोड़ें", + "remove": "हटाएं", + "dragToReorder": "पुनर्व्यवस्थित करने के लिए खींचें", + "more": "अधिक", + "emptyState": "कोई नोट नहीं", + "emptyStateTabs": "इस दृश्य में कोई नोट नहीं। साइडबार में \"नया नोट\" का उपयोग करें (कंपोज़र में AI शीर्षक सुझाव उपलब्ध)।", + "inNotebook": "नोटबुक में", + "moveFailed": "ले जाने में विफल", + "clarifyFailed": "स्पष्ट करने में विफल", + "shortenFailed": "छोटा करने में विफल", + "improveFailed": "सुधारने में विफल", + "transformFailed": "रूपांतरित करने में विफल", + "markdown": "Markdown", + "unpinned": "अनपिन किया गया", + "redoShortcut": "फिर से करें (Ctrl+Y)", + "undoShortcut": "पूर्ववत करें (Ctrl+Z)", + "viewCards": "कार्ड दृश्य", + "viewCardsTooltip": "ड्रैग-एंड-ड्रॉप पुनर्व्यवस्था के साथ कार्ड ग्रिड", + "viewTabs": "सूची दृश्य", + "viewTabsTooltip": "ऊपर टैब, नीचे नोट — पुनर्व्यवस्थित करने के लिए टैब खींचें", + "viewModeGroup": "नोट्स प्रदर्शन मोड", + "reorderTabs": "टैब पुनर्व्यवस्थित करें", + "modified": "संशोधित", + "created": "बनाया गया", + "loading": "लोड हो रहा है...", + "exportPDF": "PDF निर्यात करें", + "savedStatus": "सहेजा गया", + "dirtyStatus": "संशोधित", + "completedLabel": "पूर्ण", + "notes.emptyNotebook": "खाली नोटबुक", + "notes.emptyNotebookDesc": "इस नोटबुक में कोई नोट नहीं है। एक बनाने के लिए + पर क्लिक करें।", + "notes.noNoteSelected": "कोई नोट चुना नहीं गया", + "notes.selectOrCreateNote": "सूची से एक नोट चुनें या एक नया बनाएं।", + "commitVersion": "संस्करण सहेजें", + "versionSaved": "संस्करण सहेजा गया", + "deleteVersion": "इस संस्करण को हटाएं", + "versionDeleted": "संस्करण हटाया गया", + "deleteVersionConfirm": "क्या आप इस संस्करण को स्थायी रूप से हटाना चाहते हैं?", + "historyMode": "इतिहास मोड", + "historyModeManual": "मैनुअल (कमिट बटन)", + "historyModeAuto": "स्वचालित (स्मार्ट)", + "historyModeManualDesc": "कमिट बटन से मैन्युअल स्नैपशॉट बनाएं", + "historyModeAutoDesc": "स्मार्ट डिटेक्शन के साथ ऑटो स्नैपशॉट", + "history": "इतिहास", + "historyRestored": "संस्करण पुनर्स्थापित", + "historyEnabled": "इतिहास सक्षम किया गया", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "आपके खाते के लिए इतिहास अक्षम है।", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "इतिहास सक्षम करें", + "historyEmpty": "कोई संस्करण उपलब्ध नहीं", + "historySelectVersion": "पूर्वावलोकन के लिए एक संस्करण चुनें", + "sortBy": "इसके अनुसार क्रमबद्ध करें", + "sortDateDesc": "तिथि (नवीनतम)", + "sortDateAsc": "तिथि (पुराना)", + "sortTitleAsc": "शीर्षक A → Z", + "sortTitleDesc": "शीर्षक Z → A", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "pagination": { + "previous": "←", + "pageInfo": "पृष्ठ {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?", + "labelRemoved": "Label \"{label}\" removed" + }, + "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", + "disabledAdmin": "एडमिन मोड में खोज अक्षम" + }, + "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 विश्लेषण जारी है...", + "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": "पुनर्प्रारूपित", "autoLabels": { - "analyzing": "आपके नोट्स का विश्लेषण हो रहा है...", - "create": "बनाएं", - "createNewLabel": "यह नया लेबल बनाएं और जोड़ें", - "created": "{count} लेबल सफलतापूर्वक बनाए गए", - "creating": "लेबल बनाए जा रहे हैं...", - "description": "मैंने \"{notebookName}\" ({totalNotes} नोट्स) में बार-बार आने वाले विषयों का पता लगाया। उनके लिए लेबल बनाएं?", "error": "लेबल सुझाव प्राप्त करने में विफल", - "new": "(नया)", "noLabelsSelected": "कोई लेबल चयनित नहीं", + "created": "{count} लेबल सफलतापूर्वक बनाए गए", + "analyzing": "आपके नोट्स का विश्लेषण हो रहा है...", + "title": "नए लेबल सुझाव", + "description": "मैंने \"{notebookName}\" ({totalNotes} नोट्स) में बार-बार आने वाले विषयों का पता लगाया। उनके लिए लेबल बनाएं?", "note": "नोट", "notes": "नोट्स", - "title": "नए लेबल सुझाव", "typeContent": "लेबल सुझाव प्राप्त करने के लिए सामग्री लिखें...", + "createNewLabel": "यह नया लेबल बनाएं और जोड़ें", + "new": "(नया)", + "create": "बनाएं", + "creating": "लेबल बनाए जा रहे हैं...", "notesCount": "{count} नोट्स", "typeForSuggestions": "लेबल सुझाव प्राप्त करने के लिए सामग्री लिखें..." }, "batchOrganization": { - "analyzing": "आपके नोट्स का विश्लेषण हो रहा है...", - "apply": "लागू करें", - "applyFailed": "संगठन योजना लागू करने में विफल", - "applying": "लागू हो रहा है...", + "title": "AI से व्यवस्थित करें", "description": "AI आपके नोट्स का विश्लेषण करेगा और नोटबुक में व्यवस्थित करने का सुझाव देगा।", - "error": "संगठन योजना बनाने में विफल", + "analyzing": "आपके नोट्स का विश्लेषण हो रहा है...", "noNotebooks": "कोई नोटबुक उपलब्ध नहीं। पहले नोटबुक बनाएं।", - "noNotesSelected": "कोई नोट चयनित नहीं", "noSuggestions": "AI इन नोट्स को व्यवस्थित करने का अच्छा तरीका नहीं ढूंढ सका।", - "selectAllIn": "{notebook} में सभी नोट्स चुनें", - "selectNote": "नोट चुनें: {title}", + "apply": "लागू करें", + "applying": "लागू हो रहा है...", "success": "{count} नोट्स सफलतापूर्वक स्थानांतरित", - "title": "AI से व्यवस्थित करें" + "error": "संगठन योजना बनाने में विफल", + "noNotesSelected": "कोई नोट चयनित नहीं", + "applyFailed": "संगठन योजना लागू करने में विफल", + "selectAllIn": "{notebook} में सभी नोट्स चुनें", + "selectNote": "नोट चुनें: {title}" }, - "clarify": "स्पष्ट करें", - "clickToAddTag": "इस टैग को जोड़ने के लिए क्लिक करें", - "generateTitles": "शीर्षक उत्पन्न करें", - "generateTitlesTooltip": "AI से शीर्षक उत्पन्न करें", - "generating": "उत्पन्न हो रहा है...", - "generatingTitles": "शीर्षक उत्पन्न किए जा रहे हैं...", - "ignoreSuggestion": "इस सुझाव को अनदेखा करें", - "improveStyle": "शैली में सुधार करें", - "languageDetected": "भाषा का पता लगाया गया", "notebookSummary": { "regenerate": "सारांश पुनः उत्पन्न करें", "regenerating": "सारांश पुनः उत्पन्न हो रहा है...", "exportPDF": "PDF के रूप में निर्यात करें" }, - "original": "मूल", - "poweredByAI": "AI द्वारा संचालित", - "processing": "प्रसंस्करण...", - "reformulateText": "पाठ पुनर्प्रारूपित करें", - "reformulated": "पुनर्प्रारूपित", - "reformulating": "पुनर्प्रारूपित हो रहा है...", - "reformulationApplied": "पुनर्प्रारूपित पाठ लागू किया गया!", - "reformulationComparison": "पुनर्प्रारूपण तुलना", - "reformulationError": "पुनर्प्रारूपण के दौरान त्रुटि", - "reformulationFailed": "पाठ पुनर्प्रारूपित करने में विफल", - "reformulationMaxWords": "पाठ में अधिकतम 500 शब्द होने चाहिए", - "reformulationMinWords": "पाठ में कम से कम 10 शब्द होने चाहिए (वर्तमान: {count} शब्द)", - "reformulationNoText": "कृपया पाठ चुनें या सामग्री जोड़ें", - "reformulationSelectionTooShort": "चयन बहुत छोटा है, पूर्ण सामग्री का उपयोग किया जा रहा है", - "shorten": "छोटा करें", - "tagAdded": "टैग \"{tag}\" जोड़ा गया", - "titleApplied": "शीर्षक लागू किया गया!", - "titleGenerateWithAI": "AI से शीर्षक उत्पन्न करें", - "titleGenerating": "उत्पन्न हो रहा है...", - "titleGenerationError": "शीर्षक उत्पन्न करने में त्रुटि", - "titleGenerationFailed": "शीर्षक उत्पन्न करने में विफल", - "titleGenerationMinWords": "शीर्षक उत्पन्न करने के लिए सामग्री में कम से कम 10 शब्द होने चाहिए (वर्तमान: {count} शब्द)", - "titlesGenerated": "💡 {count} शीर्षक उत्पन्न हुए!", - "transformError": "रूपांतरण के दौरान त्रुटि", - "transformMarkdown": "Markdown में रूपांतरित करें", - "transformSuccess": "पाठ सफलतापूर्वक Markdown में रूपांतरित हो गया!", - "transforming": "रूपांतरित हो रहा है...", "clarifyDesc": "पाठ को स्पष्ट और समझने योग्य बनाएं", "shortenDesc": "पाठ को संक्षेप में सारांशित करें", "improve": "लेखन सुधारें", @@ -389,11 +405,14 @@ "transformationsDesc": "रूपांतरण — सीधे नोट में लागू", "writeMinWordsAction": "AI कार्रवाई सक्रिय करने के लिए कम से कम 5 शब्द लिखें।", "processingAction": "प्रसंस्करण हो रहा है...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "स्पष्ट करें", "shorten": "छोटा करें", "improve": "सुधार", - "toMarkdown": "Markdown में" + "toMarkdown": "Markdown में", + "describeImages": "Describe images" }, "openAssistant": "AI सहायक खोलें", "poweredByMomento": "Momento AI द्वारा संचालित", @@ -408,22 +427,256 @@ "historyTab": "इतिहास", "insightsTab": "इनसाइट्स", "aiCopilot": "AI सह-पायलट", - "suggestTitle": "AI शीर्षक सुझाव" + "suggestTitle": "AI शीर्षक सुझाव", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" + }, + "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} कनेक्शन", + "match": "{percentage}% मेल", + "fused": "फ्यूज्ड", + "clickToView": "नोट देखने के लिए क्लिक करें", + "overlay": { + "title": "कनेक्टेड नोट्स", + "searchPlaceholder": "कनेक्शन खोजें...", + "sortBy": "इससे क्रमबद्ध करें:", + "sortSimilarity": "समानता", + "sortRecent": "हालिया", + "sortOldest": "सबसे पुराना", + "viewAll": "सभी को साथ-साथ देखें", + "loading": "लोड हो रहा है...", + "noConnections": "कोई कनेक्शन नहीं मिला", + "error": "कनेक्शन लोड करने में त्रुटि" + }, + "comparison": { + "title": "💡 नोट्स की तुलना", + "similarityInfo": "ये नोट्स {similarity}% समानता से कनेक्टेड हैं", + "highSimilarityInsight": "ये नोट्स उच्च समानता के साथ एक ही विषय से संबंधित हैं। इन्हें मर्ज या समेकित किया जा सकता है।", + "untitled": "शीर्षकहीन", + "clickToView": "नोट देखने के लिए क्लिक करें", + "helpfulQuestion": "क्या यह तुलना मददगार है?", + "helpful": "मददगार", + "notHelpful": "असहायक" + }, + "editorSection": { + "title": "⚡ कनेक्टेड नोट्स ({count})", + "loading": "लोड हो रहा है...", + "view": "देखें", + "compare": "तुलना करें", + "merge": "मर्ज करें", + "compareAll": "सभी की तुलना करें", + "mergeAll": "सभी को मर्ज करें", + "close": "बंद करें" + }, + "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": "Failed to generate fusion", + "noContentReturned": "No fusion content returned from API", + "unknownDate": "Unknown date" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "ने \"{title}\" साझा किया", + "untitled": "शीर्षकहीन", + "notifications": "सूचनाएं", + "declined": "साझाकरण अस्वीकृत", + "removed": "सूची से नोट हटाया गया" + }, + "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": "प्रो योजना", + "chat": "AI चैट", + "lab": "लैब", + "agents": "एजेंट" + }, + "settings": { + "title": "सेटिंग्स", + "description": "अपनी सेटिंग्स और प्राथमिकताएं प्रबंधित करें", + "account": "खाता", + "appearance": "दिखावट", + "theme": "थीम", + "themeLight": "लाइट", + "themeDark": "डार्क", + "themeSystem": "सिस्टम", + "notifications": "सूचनाएं", + "language": "भाषा", + "selectLanguage": "भाषा चुनें", + "security": "सुरक्षा", + "about": "के बारे में", + "version": "संस्करण", + "settingsSaved": "सेटिंग्स सहेजी गई", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "सेटिंग्स सहेजने में त्रुटि", + "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": "{created} लेबल सिंक किए, {deleted} अनाथ हटाए", + "cleanupNothing": "कोई कार्रवाई आवश्यक नहीं — लेबल पहले से सिंक हैं", + "cleanupWithErrors": "कुछ ऑपरेशन विफल", + "cleanupError": "लेबल साफ़ नहीं कर सके", + "indexingComplete": "इंडेक्सिंग पूर्ण: {count} नोट प्रोसेस किए", + "indexingError": "इंडेक्सिंग में त्रुटि", + "semanticIndexing": "Semantic Indexing", + "semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search", + "profile": "प्रोफ़ाइल", + "searchNoResults": "कोई मिलान सेटिंग्स नहीं मिली", + "languageAuto": "स्वचालित पता लगाना", + "emailNotifications": "ईमेल सूचनाएं", + "emailNotificationsDesc": "ईमेल द्वारा महत्वपूर्ण सूचनाएं प्राप्त करें", + "desktopNotifications": "डेस्कटॉप सूचनाएं", + "desktopNotificationsDesc": "ब्राउज़र में सूचनाएं प्राप्त करें", + "notificationsDesc": "अपनी सूचना वरीयताएं प्रबंधित करें" + }, + "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": "फ़ॉन्ट आकार अपडेट करने में विफल", + "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 सेटिंग्स", "description": "अपनी AI-संचालित सुविधाओं और प्राथमिकताओं को कॉन्फ़िगर करें", - "error": "सेटिंग अपडेट करने में विफल", "features": "AI सुविधाएं", - "frequency": "आवृत्ति", - "frequencyDaily": "दैनिक", - "frequencyWeekly": "साप्ताहिक", "provider": "AI प्रदाता", "providerAuto": "ऑटो (अनुशंसित)", "providerOllama": "Ollama (स्थानीय)", "providerOpenAI": "OpenAI (क्लाउड)", - "saved": "सेटिंग अपडेट की गई", + "frequency": "आवृत्ति", + "frequencyDaily": "दैनिक", + "frequencyWeekly": "साप्ताहिक", "saving": "सहेज रहे हैं...", - "title": "AI सेटिंग्स", + "saved": "सेटिंग अपडेट की गई", + "error": "सेटिंग अपडेट करने में विफल", "titleSuggestionsDesc": "50+ शब्दों के बाद शीर्षक रहित नोट्स के लिए शीर्षक सुझाएं", "paragraphRefactorDesc": "AI-संचालित पाठ सुधार विकल्प", "frequencyDesc": "नोट कनेक्शन कितनी बार विश्लेषण करें", @@ -432,792 +685,518 @@ "providerOllamaDesc": "100% निजी, स्थानीय रूप से चलता है", "providerOpenAIDesc": "सबसे सटीक, API कुंजी की आवश्यकता है" }, - "appearance": { - "description": "ऐप के दिखने के तरीके को अनुकूलित करें", - "title": "दिखावट", - "notesViewDescription": "चुनें कि होम और नोटबुक में नोट्स कैसे दिखाए जाएं।", - "notesViewLabel": "नोट्स दृश्य", - "notesViewTabs": "टैब (OneNote-शैली)", - "notesViewMasonry": "कार्ड (ग्रिड)" - }, - "auth": { - "backToLogin": "लॉगिन पर वापस जाएं", - "checkYourEmail": "अपना ईमेल जांचें", - "createAccount": "अपना खाता बनाएं", - "email": "ईमेल", - "emailPlaceholder": "अपना ईमेल पता दर्ज करें", - "forgotPassword": "पासवर्ड भूल गए?", - "forgotPasswordDescription": "अपना ईमेल पता दर्ज करें और हम आपको पासवर्ड रीसेट करने का लिंक भेजेंगे।", - "forgotPasswordTitle": "पासवर्ड भूल गए", - "hasAccount": "पहले से खाता है?", - "name": "नाम", - "namePlaceholder": "अपना नाम दर्ज करें", - "noAccount": "खाता नहीं है?", - "orContinueWith": "या जारी रखें", - "password": "पासवर्ड", - "passwordMinChars": "पासवर्ड दर्ज करें (न्यूनतम 6 वर्ण)", - "passwordPlaceholder": "अपना पासवर्ड दर्ज करें", - "rememberMe": "मुझे याद रखें", - "resetEmailSent": "यदि आपका ईमेल हमारे सिस्टम में मौजूद है, तो हमने आपके पासवर्ड रीसेट लिंक भेज दिया है।", - "resetPassword": "पासवर्ड रीसेट करें", - "resetPasswordInstructions": "पासवर्ड रीसेट करने के लिए अपना ईमेल दर्ज करें", - "returnToLogin": "लॉगिन पर वापस जाएं", - "sendResetLink": "रीसेट लिंक भेजें", - "sending": "भेज रहे हैं...", - "signIn": "साइन इन करें", - "signInToAccount": "अपने खाते में साइन इन करें", - "signOut": "Sign out", - "signUp": "साइन अप करें", - "confirmPassword": "पासवर्ड की पुष्टि करें", - "confirmPasswordPlaceholder": "अपना पासवर्ड दोबारा दर्ज करें" - }, - "autoLabels": { - "analyzing": "नोट्स का विश्लेषण जारी है...", - "createNewLabel": "इस नए लेबल को बनाएं और जोड़ें", - "created": "{count} लेबल सफलतापूर्वक बनाए गए", - "description": "मैंने \"{notebookName}\" ({totalNotes} नोट्स) में पुनरावर्ती विषयों का पता लगाया है। उनके लिए लेबल बनाना है?", - "error": "लेबल सुझाव प्राप्त करने में विफल", - "new": "(नया)", - "noLabelsSelected": "कोई लेबल चयनित नहीं", - "note": "नोट", - "notes": "नोट्स", - "title": "नए लेबल सुझाव", - "typeContent": "लेबल सुझाव प्राप्त करने के लिए सामग्री टाइप करें...", - "typeForSuggestions": "सुझाव प्राप्त करने के लिए टाइप करें..." - }, - "batch": { - "organize": "व्यवस्थित करें", - "organizeWithAI": "AI से व्यवस्थित करें" - }, - "batchOrganization": { - "analyzing": "नोट्स का विश्लेषण जारी है...", - "apply": "लागू करें ({count})", - "applyFailed": "व्यवस्थित करने में विफल", - "applying": "लागू हो रहा है...", - "confidence": "विश्वसनीता", - "description": "AI आपके नोट्स का विश्लेषण करेगा और उन्हें नोटबुक में व्यवस्थित करने का प्रस्ताव देगा।", - "error": "संगठन योजना बनाने में विफल", - "noNotebooks": "कोई नोटबुक उपलब्ध नहीं है। अपने नोट्स को व्यवस्थित करने के लिए पहले नोटबुक बनाएं।", - "noNotesSelected": "कोई नोट चयनित नहीं", - "noSuggestions": "AI इन नोट्स को व्यवस्थित करने का कोई अच्छा तरीका नहीं ढूंढ सका।", - "notesToOrganize": "{count} नोट्स का संगठन करें", - "selectAllIn": "सभी का चयन करें", - "selectNote": "नोट चुनें", - "selected": "{count} चयनित", - "success": "व्यवस्थित करना सफल", - "title": "AI से व्यवस्थित करें", - "unorganized": "{count} नोट्स को वर्गीकृत नहीं किया गया और वे सामान्य नोट्स में रहेंगे।" - }, - "collaboration": { - "accessRevoked": "Access has been revoked", - "addCollaborator": "Add collaborator", - "addCollaboratorDescription": "Add people to collaborate on this note by their email address.", - "alreadyInList": "This email is already in the list", - "canEdit": "Can edit", - "canView": "Can view", - "done": "Done", - "emailAddress": "Email address", - "emailPlaceholder": "Enter email address", - "enterEmailAddress": "Enter email address", - "errorLoading": "Error loading collaborators", - "failedToAdd": "Failed to add collaborator", - "failedToRemove": "Failed to remove collaborator", - "invite": "Invite", - "noCollaborators": "No collaborators yet. Add someone above!", - "noCollaboratorsViewer": "No collaborators yet.", - "nowHasAccess": "{name} now has access to this note", - "owner": "Owner", - "pending": "Pending", - "pendingInvite": "Pending Invite", - "peopleWithAccess": "People with access", - "remove": "Remove", - "removeCollaborator": "Remove collaborator", - "shareNote": "Share note", - "shareWithCollaborators": "Share with collaborators", - "unnamedUser": "Unnamed User", - "viewerDescription": "You have access to this note. Only the owner can manage collaborators.", - "willBeAdded": "{email} will be added as collaborator when note is created" + "general": { + "loading": "लोड हो रहा है...", + "save": "सहेजें", + "cancel": "रद्द करें", + "add": "जोड़ें", + "edit": "संपादित करें", + "confirm": "पुष्टि करें", + "close": "बंद करें", + "back": "वापस", + "next": "अगला", + "previous": "पिछला", + "submit": "जमा करें", + "reset": "रीसेट करें", + "apply": "लागू करें", + "clear": "साफ़ करें", + "select": "चुनें", + "tryAgain": "कृपया पुनः प्रयास करें", + "error": "एक त्रुटि हुई", + "operationSuccess": "ऑपरेशन सफल", + "operationFailed": "ऑपरेशन विफल", + "testConnection": "Test Connection", + "clean": "Clean", + "indexAll": "Index All", + "preview": "पूर्वावलोकन" }, "colors": { - "blue": "नीला", "default": "डिफ़ॉल्ट", - "gray": "ग्रे", - "green": "हरा", - "orange": "नारंगी", - "pink": "गुलाबी", - "purple": "बैंगनी", "red": "लाल", - "yellow": "पीला" + "blue": "नीला", + "green": "हरा", + "yellow": "पीला", + "purple": "बैंगनी", + "pink": "गुलाबी", + "orange": "नारंगी", + "gray": "ग्रे" }, - "common": { - "add": "जोड़ें", - "cancel": "रद्द करें", - "close": "बंद करें", - "confirm": "पुष्टि करें", - "delete": "हटाएं", - "edit": "संपादित करें", - "error": "त्रुटि", - "loading": "लोड हो रहा है...", - "noResults": "कोई परिणाम नहीं", - "notAvailable": "उपलब्ध नहीं", - "optional": "वैकल्पिक", - "remove": "हटाएं", - "required": "आवश्यक", - "save": "सहेजें", - "search": "खोजें", - "success": "सफल", - "unknown": "अज्ञात" + "reminder": { + "title": "रिमाइंडर", + "setReminder": "रिमाइंडर सेट करें", + "removeReminder": "रिमाइंडर हटाएं", + "reminderDate": "रिमाइंडर दिनांक", + "reminderTime": "रिमाइंडर समय", + "save": "रिमाइंडर सेट करें", + "cancel": "रद्द करें" }, - "connection": { - "clickToView": "नोट देखने के लिए क्लिक करें", - "helpful": "मददगार", - "isHelpful": "क्या यह कनेक्शन मददगार है?", - "memoryEchoDiscovery": "Memory Echo खोज", - "notHelpful": "असहायक", - "similarityInfo": "ये नोट्स {similarity}% समानता से जुड़े हैं" - }, - "dataManagement": { - "cleanup": { - "button": "साफ़ करें", - "description": "हटाए गए नोट्स का संदर्भ देने वाले लेबल और कनेक्शन हटाएं।", - "failed": "सफ़ाई के दौरान त्रुटि", - "title": "ऑर्फन डेटा साफ़ करें" - }, - "cleanupComplete": "सफ़ाई पूर्ण", - "cleanupError": "सफ़ाई त्रुटि", - "dangerZone": "खतरे का क्षेत्र", - "dangerZoneDescription": "ये कार्रवाई पूर्ववत नहीं की जा सकती, सावधान रहें", - "delete": { - "button": "सभी नोट्स हटाएं", - "confirm": "क्या आप सुनिश्चित हैं? यह आपके सभी नोट्स को स्थायी रूप से हटा देगा।", - "description": "अपने सभी नोट्स को स्थायी रूप से हटाएं। यह क्रिया पूर्ववत नहीं की जा सकती।", - "failed": "नोट्स हटाने में विफल", - "success": "सभी नोट्स हटा दिए गए", - "title": "सभी नोट्स हटाएं" - }, - "deleting": "हटाया जा रहा है...", - "export": { - "button": "नोट्स निर्यात करें", - "description": "अपने सभी नोट्स को JSON फ़ाइल के रूप में डाउनलोड करें। इसमें सभी सामग्री, लेबल और मेटाडेटा शामिल हैं।", - "failed": "नोट्स निर्यात करने में विफल", - "success": "नोट्स सफलतापूर्वक निर्यात किए गए", - "title": "सभी नोट्स निर्यात करें" - }, - "exporting": "निर्यात हो रहा है...", - "import": { - "button": "नोट्स आयात करें", - "description": "नोट्स आयात करने के लिए JSON फ़ाइल अपलोड करें। यह आपके मौजूदा नोट्स में जोड़ेगा, बदले नहीं।", - "failed": "नोट्स आयात करने में विफल", - "success": "{count} नोट्स आयात किए गए", - "title": "नोट्स आयात करें" - }, - "importing": "आयात हो रहा है...", - "indexing": { - "button": "इंडेक्स पुनर्निर्माण करें", - "description": "सिमेंटिक खोज में सुधार के लिए सभी नोट्स के लिए एम्बेडिंग्स पुनः उत्पन्न करें।", - "failed": "इंडेक्सिंग के दौरान त्रुटि", - "success": "इंडेक्सिंग पूर्ण: {count} नोट्स संसाधित", - "title": "खोज इंडेक्स पुनर्निर्माण करें" - }, - "indexingComplete": "इंडेक्सिंग पूर्ण", - "indexingError": "इंडेक्सिंग त्रुटि", - "title": "डेटा प्रबंधन", - "toolsDescription": "अपने डेटाबेस स्वास्थ्य को बनाए रखने के लिए उपकरण" - }, - "demoMode": { - "activated": "डेमो मोड सक्रिय! Memory Echo अब तुरंत काम करेगा।", - "createNotesTip": "2+ समान नोट्स बनाएं और Memory Echo को काम करते हुए देखें!", - "deactivated": "डेमो मोड अक्षम। सामान्य पैरामीटर बहाल।", - "delayBetweenNotes": "नोट्स के बीच 0-दिन की देरी (आमतौर पर 7 दिन)", - "description": "परीक्षण के लिए Memory Echo को तेज करता है। कनेक्शन तुरंत दिखाई देते हैं।", - "parametersActive": "डेमो पैरामीटर सक्रिय:", - "similarityThreshold": "50% समानता थ्रेशोल्ड (आमतौर पर 75%)", - "title": "डेमो मोड", - "toggleFailed": "डेमो मोड टॉगल करने में विफल", - "unlimitedInsights": "असीमित अंतर्दृष्टि (कोई आवृत्ति सीमा नहीं)" - }, - "diagnostics": { - "apiStatus": "API स्थिति", - "checking": "Checking...", - "configuredProvider": "कॉन्फ़िगर किया गया प्रदाता", - "description": "Check your AI provider connection status", - "errorStatus": "Error", - "operational": "Operational", - "testDetails": "परीक्षण विवरण:", - "tip1": "सुनिश्चित करें कि Ollama चल रहा है (ollama serve)", - "tip2": "जांचें कि मॉडल इंस्टॉल है (ollama pull llama3)", - "tip3": "अपनी OpenAI API कुंजी सत्यापित करें", - "tip4": "नेटवर्क कनेक्टिविटी जांचें", - "title": "निदान", - "troubleshootingTitle": "समस्या निवारण सुझाव:" - }, - "favorites": { - "noFavorites": "कोई पसंदीदा नहीं", - "pinToFavorite": "पसंदीदा में पिन करें", - "title": "पसंदीदा", - "toggleSection": "पसंदीदा अनुभाग टॉगल करें" - }, - "footer": { - "openSource": "ओपन सोर्स क्लोन", - "privacy": "गोपनीयता", - "terms": "नियम" - }, - "general": { - "add": "जोड़ें", - "apply": "लागू करें", - "back": "वापस", - "cancel": "रद्द करें", - "clean": "Clean", - "clear": "साफ़ करें", - "close": "बंद करें", - "confirm": "पुष्टि करें", - "edit": "संपादित करें", - "error": "एक त्रुटि हुई", - "indexAll": "Index All", - "loading": "लोड हो रहा है...", - "next": "अगला", - "operationFailed": "ऑपरेशन विफल", - "operationSuccess": "ऑपरेशन सफल", - "preview": "पूर्वावलोकन", - "previous": "पिछला", - "reset": "रीसेट करें", - "save": "सहेजें", - "select": "चुनें", - "submit": "जमा करें", - "testConnection": "Test Connection", - "tryAgain": "कृपया पुनः प्रयास करें" - }, - "generalSettings": { - "description": "सामान्य एप्लिकेशन सेटिंग्स", - "title": "सामान्य सेटिंग्स" - }, - "labels": { - "addLabel": "Add label", - "allLabels": "All Labels", - "changeColor": "Change Color", - "changeColorTooltip": "Change color", - "clearAll": "Clear all", - "confirmDelete": "Are you sure you want to delete this label?", - "count": "{count} labels", - "noLabels": "No labels", - "confirmDeleteShort": "Confirm?", - "labelRemoved": "Label \"{label}\" removed" - }, - "memoryEcho": { - "clickToView": "नोट देखने के लिए क्लिक करें", - "comparison": { - "clickToView": "नोट देखने के लिए क्लिक करें", - "helpful": "मददगार", - "helpfulQuestion": "क्या यह तुलना मददगार है?", - "highSimilarityInsight": "ये नोट्स उच्च समानता के साथ एक ही विषय से संबंधित हैं। इन्हें मर्ज या समेकित किया जा सकता है।", - "notHelpful": "असहायक", - "similarityInfo": "ये नोट्स {similarity}% समानता से कनेक्टेड हैं", - "title": "💡 नोट्स की तुलना", - "untitled": "शीर्षकहीन" - }, - "connection": "कनेक्शन", - "connections": "कनेक्शन", - "connectionsBadge": "{count} कनेक्शन", - "dailyInsight": "अपने नोट्स से दैनिक अंतर्दृष्टि", - "description": "आपके नोट्स के बीच सक्रिय कनेक्शन", - "dismiss": "अभी खारिज करें", - "editorSection": { - "close": "बंद करें", - "compare": "तुलना करें", - "compareAll": "सभी की तुलना करें", - "loading": "लोड हो रहा है...", - "merge": "मर्ज करें", - "mergeAll": "सभी को मर्ज करें", - "title": "⚡ कनेक्टेड नोट्स ({count})", - "view": "देखें" - }, - "fused": "फ्यूज्ड", - "fusion": { - "archiveOriginals": "मूल नोट्स संग्रहित करें", - "cancel": "रद्द करें", - "confirmFusion": "फ्यूजन पुष्टि करें", - "createBacklinks": "मूल नोट्स के लिए बैकलिंक बनाएं", - "edit": "संपादित करें", - "error": "नोट्स मर्ज करने में विफल", - "finishEditing": "संपादन समाप्त करें", - "generateError": "Failed to generate fusion", - "generateFusion": "फ्यूजन उत्पन्न करें", - "generating": "उत्पन्न हो रहा है...", - "keepAllTags": "सभी टैग रखें", - "mergeNotes": "{count} नोट मर्ज करें", - "modify": "संशोधित करें", - "noContentReturned": "No fusion content returned from API", - "notesToMerge": "📝 मर्ज करने के लिए नोट्स", - "optionalPrompt": "💬 फ्यूजन प्रॉम्प्ट (वैकल्पिक)", - "optionsTitle": "फ्यूजन विकल्प", - "previewTitle": "📝 मर्ज किए गए नोट का पूर्वावलोकन", - "promptPlaceholder": "AI के लिए वैकल्पिक निर्देश (जैसे, 'नोट 1 की औपचारिक शैली बनाए रखें')...", - "success": "नोट्स सफलतापूर्वक मर्ज किए गए!", - "title": "🔗 इंटेलिजेंट फ्यूजन", - "unknownDate": "Unknown date", - "useLatestTitle": "नवीनतम नोट को शीर्षक के रूप में उपयोग करें" - }, - "helpful": "मददगार", - "insightReady": "आपकी अंतर्दृष्टि तैयार है!", - "notHelpful": "असहायक", - "overlay": { - "error": "कनेक्शन लोड करने में त्रुटि", - "loading": "लोड हो रहा है...", - "noConnections": "कोई कनेक्शन नहीं मिला", - "searchPlaceholder": "कनेक्शन खोजें...", - "sortBy": "इससे क्रमबद्ध करें:", - "sortOldest": "सबसे पुराना", - "sortRecent": "हालिया", - "sortSimilarity": "समानता", - "title": "कनेक्टेड नोट्स", - "viewAll": "सभी को साथ-साथ देखें" - }, - "thanksFeedback": "आपकी प्रतिक्रिया के लिए धन्यवाद!", - "thanksFeedbackImproving": "धन्यवाद! हम इसे सुधार के लिए उपयोग करेंगे।", - "title": "मैंने कुछ नोटिस किया...", - "viewConnection": "कनेक्शन देखें", - "match": "{percentage}% मेल" - }, - "nav": { - "accountSettings": "खाता सेटिंग्स", - "adminDashboard": "एडमिन डैशबोर्ड", - "aiSettings": "AI सेटिंग्स", - "archive": "संग्रह", - "buyMeACoffee": "मुझे कॉफी खरीदें", - "configureAI": "अपनी AI-संचालित सुविधाओं, प्रदाता और प्राथमिकताओं को कॉन्फ़िगर करें", - "diagnostics": "निदान", - "donateOnKofi": "Ko-fi पर दान करें", - "donationDescription": "एक बार का दान करें या मासिक समर्थक बनें।", - "donationNote": "कोई प्लेटफ़ॉर्म शुल्क नहीं • त्वरित भुगतान • सुरक्षित", - "favorites": "पसंदीदा", - "generalNotes": "सामान्य नोट्स", - "home": "होम", - "login": "लॉग इन", - "logout": "लॉग आउट", - "manageAISettings": "AI सेटिंग्स प्रबंधित करें", - "myLibrary": "मेरी लाइब्रेरी", - "notebooks": "नोटबुक", - "notes": "नोट्स", - "proPlan": "प्रो योजना", - "profile": "प्रोफ़ाइल", - "quickAccess": "त्वरित पहुँच", - "recent": "हालिया", - "reminders": "रिमाइंडर", - "settings": "सेटिंग्स", - "sponsorDescription": "मासिक प्रायोजक बनें और मान्यता प्राप्त करें।", - "sponsorOnGithub": "GitHub पर प्रायोजित करें", - "support": "Memento का समर्थन करें ☕", - "supportDescription": "Memento 100% निःशुल्क और ओपन-सोर्स है। आपका समर्थन इसे ऐसे ही बनाए रखने में मदद करता है।", - "supportDevelopment": "Memento विकास का समर्थन करें ☕", - "trash": "कचरा", - "userManagement": "उपयोगकर्ता प्रबंधन", - "workspace": "कार्यस्थल", - "chat": "AI चैट", - "lab": "लैब", - "agents": "एजेंट" + "reminders": { + "title": "रिमाइंडर", + "empty": "कोई रिमाइंडर नहीं", + "emptyDescription": "रिमाइंडर यहां पाने के लिए नोट में जोड़ें।", + "upcoming": "आगामी", + "overdue": "अतिदेय", + "done": "पूर्ण", + "markDone": "पूर्ण चिह्नित करें", + "markUndone": "अपूर्ण चिह्नित करें", + "todayAt": "आज {time} बजे", + "tomorrowAt": "कल {time} बजे" }, "notebook": { - "cancel": "रद्द करें", "create": "नोटबुक बनाएं", - "createDescription": "अपने नोट्स, विचारों और परियोजनाओं को कुशलता से व्यवस्थित करने के लिए एक नया संग्रह शुरू करें।", "createNew": "नया नोटबुक बनाएं", - "creating": "बना रहे हैं...", - "delete": "नोटबुक हटाएं", - "deleteConfirm": "हटाएं", - "deleteWarning": "क्या आप वाकई इस नोटबुक को हटाना चाहते हैं? नोट्स को सामान्य नोट्स में ले जाया जाएगा।", - "edit": "नोटबुक संपादित करें", - "editDescription": "नोटबुक का नाम, आइकन और रंग बदलें।", - "generating": "सारांश उत्पन्न हो रहा है...", - "labels": "लेबल", + "createDescription": "अपने नोट्स, विचारों और परियोजनाओं को कुशलता से व्यवस्थित करने के लिए एक नया संग्रह शुरू करें।", "name": "नोटबुक नाम", - "noLabels": "कोई लेबल नहीं", - "selectColor": "रंग", - "selectIcon": "आइकन", - "summary": "नोटबुक सारांश", - "summaryDescription": "इस नोटबुक के सभी नोट्स का AI-संचालित सारांश उत्पन्न करें।", - "summaryError": "सारांश उत्पन्न करने में त्रुटि", "namePlaceholder": "उदा. Q4 मार्केटिंग रणनीति", "myNotebook": "मेरी नोटबुक", "saving": "सहेज रहा है...", + "selectIcon": "आइकन", + "selectColor": "रंग", + "cancel": "रद्द करें", + "creating": "बना रहे हैं...", + "edit": "नोटबुक संपादित करें", + "editDescription": "नोटबुक का नाम, आइकन और रंग बदलें।", + "delete": "नोटबुक हटाएं", + "deleteWarning": "क्या आप वाकई इस नोटबुक को हटाना चाहते हैं? नोट्स को सामान्य नोट्स में ले जाया जाएगा।", + "deleteConfirm": "हटाएं", + "summary": "नोटबुक सारांश", + "summaryDescription": "इस नोटबुक के सभी नोट्स का AI-संचालित सारांश उत्पन्न करें।", + "generating": "सारांश उत्पन्न हो रहा है...", + "summaryError": "सारांश उत्पन्न करने में त्रुटि", + "labels": "लेबल", + "noLabels": "कोई लेबल नहीं", "pdfTitle": "सारांश — {name}", "pdfNotesLabel": "नोट्स:", "pdfGeneratedOn": "जनरेट किया गया:", "confidence": "विश्वास", "savingReminder": "रिमाइंडर सहेजने में त्रुटि", - "removingReminder": "रिमाइंडर हटाने में त्रुटि" + "removingReminder": "रिमाइंडर हटाने में त्रुटि", + "generatingDescription": "Please wait..." }, "notebookSuggestion": { + "title": "{name} में ले जाएं?", "description": "यह नोट इस नोटबुक से संबंधित प्रतीत होता है", + "move": "ले जाएं", "dismiss": "खारिज करें", "dismissIn": "खारिज करें ({timeLeft}सेकंड में बंद होगा)", - "generalNotes": "सामान्य नोट्स", - "move": "ले जाएं", "moveToNotebook": "नोटबुक में ले जाएं", - "title": "{name} में ले जाएं?" + "generalNotes": "सामान्य नोट्स" }, - "notebooks": { - "allNotebooks": "सभी नोटबुक", - "create": "नोटबुक बनाएं", - "createFirst": "अपनी पहली नोटबुक बनाएं", - "noNotebooks": "कोई नोटबुक नहीं" + "admin": { + "title": "एडमिन डैशबोर्ड", + "userManagement": "उपयोगकर्ता प्रबंधन", + "chat": "AI Chat", + "lab": "The Lab", + "agents": "Agents", + "workspace": "Workspace", + "settings": "एडमिन सेटिंग्स", + "security": { + "title": "सुरक्षा सेटिंग्स", + "description": "पहुंच नियंत्रण और पंजीकरण नीतियां प्रबंधित करें।", + "allowPublicRegistration": "सार्वजनिक पंजीकरण की अनुमति दें", + "allowPublicRegistrationDescription": "यदि अक्षम है, तो नए उपयोगकर्ताओं को केवल एडमिन द्वारा उपयोगकर्ता प्रबंधन पृष्ठ के माध्यम से जोड़ा जा सकता है।", + "updateSuccess": "सुरक्षा सेटिंग्स अपडेट की गईं", + "updateFailed": "सुरक्षा सेटिंग्स अपडेट करने में विफल" + }, + "ai": { + "title": "AI कॉन्फ़िगरेशन", + "description": "स्वचालित टैगिंग और सिमेंटिक खोज के लिए AI प्रदाताओं को कॉन्फ़िगर करें। इष्टतम प्रदर्शन के लिए विभिन्न प्रदाताओं का उपयोग करें।", + "tagsGenerationProvider": "टैग जनरेशन प्रदाता", + "tagsGenerationDescription": "स्वचालित टैग सुझावों के लिए AI प्रदाता। अनुशंसित: Ollama (मुफ्त, स्थानीय)।", + "embeddingsProvider": "एम्बेडिंग्स प्रदाता", + "embeddingsDescription": "सिमेंटिक खोज एम्बेडिंग्स के लिए AI प्रदाता। अनुशंसित: OpenAI (सर्वोत्तम गुणवत्ता)।", + "chatProvider": "चैट प्रदाता", + "chatDescription": "चैट सहायक के लिए AI प्रदाता। कॉन्फ़िगर नहीं होने पर टैग प्रदाता का उपयोग करता है।", + "provider": "प्रदाता", + "baseUrl": "बेस URL", + "model": "मॉडल", + "apiKey": "API कुंजी", + "selectOllamaModel": "अपने सिस्टम पर इंस्टॉल किए गए Ollama मॉडल का चयन करें", + "openAIKeyDescription": "platform.openai.com से आपकी OpenAI API कुंजी", + "modelRecommendations": "gpt-4o-mini = सर्वोत्तम मूल्य • gpt-4o = सर्वोत्तम गुणवत्ता", + "commonModelsDescription": "OpenAI-संगत API के लिए सामान्य मॉडल", + "selectEmbeddingModel": "अपने सिस्टम पर इंस्टॉल किए गए एम्बेडिंग मॉडल का चयन करें", + "commonEmbeddingModels": "OpenAI-संगत API के लिए सामान्य एम्बेडिंग मॉडल", + "saving": "सहेज रहे हैं...", + "saveSettings": "AI सेटिंग्स सहेजें", + "openTestPanel": "AI परीक्षण पैनल खोलें", + "updateSuccess": "AI सेटिंग्स सफलतापूर्वक अपडेट की गईं", + "updateFailed": "AI सेटिंग्स अपडेट करने में विफल", + "providerTagsRequired": "AI_PROVIDER_TAGS आवश्यक है", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING आवश्यक है", + "providerOllamaOption": "🦙 Ollama (Local & Free)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 Custom OpenAI-Compatible", + "bestValue": "सर्वोत्तम मूल्य", + "bestQuality": "सर्वोत्तम गुणवत्ता", + "saved": "(सहेजा गया)", + "fetchModelsFailed": "मॉडल लाने में विफल", + "refreshModels": "मॉडल रीफ़्रेश करें", + "configured": "कॉन्फ़िगर किया गया", + "fetchingModels": "मॉडल ला रहे हैं...", + "clickToLoadModels": "मॉडल लोड करने के लिए ↺ पर क्लिक करें", + "searchModel": "मॉडल खोजें...", + "noModels": "कोई मॉडल नहीं। ↺ पर क्लिक करें", + "modelsAvailable": "{count} मॉडल उपलब्ध", + "enterUrlToLoad": "URL दर्ज करें और ↺ पर क्लिक करें", + "currentProvider": "(वर्तमान: {provider})", + "pageTitle": "AI प्रबंधन", + "pageDescription": "AI सुविधाओं की निगरानी और कॉन्फ़िगर करें", + "configure": "कॉन्फ़िगर करें", + "features": "AI सुविधाएँ", + "providerStatus": "AI प्रदाता स्थिति", + "recentRequests": "हालिया AI अनुरोध", + "comingSoon": "जल्द आ रहा है", + "activeFeatures": "सक्रिय सुविधाएँ", + "successRate": "सफलता दर", + "avgResponseTime": "औसत प्रतिक्रिया समय", + "configuredProviders": "कॉन्फ़िगर किए गए प्रदाता", + "settingUpdated": "सेटिंग अपडेट की गई", + "updateFailedShort": "अपडेट विफल", + "titleSuggestions": "शीर्षक सुझाव", + "titleSuggestionsDesc": "50+ शब्दों के बाद नोट्स के लिए शीर्षक सुझाव", + "aiAssistant": "AI सहायक", + "aiAssistantDesc": "AI चैट और पाठ सुधार उपकरण सक्षम करें", + "memoryEchoFeature": "मैंने कुछ नोटिस किया...", + "memoryEchoFeatureDesc": "आपके नोट्स के बीच कनेक्शन का दैनिक विश्लेषण", + "languageDetection": "भाषा पहचान", + "languageDetectionDesc": "प्रत्येक नोट की भाषा का स्वचालित पता लगाएं", + "autoLabeling": "स्वतः लेबलिंग", + "autoLabelingDesc": "लेबल स्वचालित रूप से सुझाएँ और लागू करें" + }, + "resend": { + "title": "Resend (अनुशंसित)", + "description": "Resend API के माध्यम से ईमेल भेजें। कॉन्फ़िगर होने पर SMTP से प्राथमिकता लेता है।", + "apiKey": "Resend API कुंजी", + "apiKeyHint": "resend.com से अपनी API कुंजी प्राप्त करें। एजेंट सूचनाओं और पासवर्ड रीसेट के लिए उपयोग किया जाता है।", + "saveSettings": "Resend सेटिंग्स सहेजें", + "updateSuccess": "Resend सेटिंग्स अपडेट की गईं", + "updateFailed": "Resend सेटिंग्स अपडेट करने में विफल", + "configured": "Resend कॉन्फ़िगर और सक्रिय है" + }, + "email": { + "title": "ईमेल कॉन्फ़िगरेशन", + "description": "एजेंट सूचनाओं और पासवर्ड रीसेट के लिए ईमेल वितरण कॉन्फ़िगर करें।", + "provider": "ईमेल प्रदाता", + "saveSettings": "ईमेल सेटिंग्स सहेजें", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "smtp": { + "title": "SMTP कॉन्फ़िगरेशन", + "description": "पासवर्ड रीसेट के लिए ईमेल सर्वर कॉन्फ़िगर करें।", + "host": "होस्ट", + "port": "पोर्ट", + "username": "उपयोगकर्ता नाम", + "password": "पासवर्ड", + "fromEmail": "प्रेषक ईमेल", + "forceSSL": "SSL/TLS बाध्य करें (आमतौर पर पोर्ट 465 के लिए)", + "ignoreCertErrors": "प्रमाणपत्र त्रुटियों को अनदेखा करें (केवल स्व-होस्ट/विकास)", + "saveSettings": "SMTP सेटिंग्स सहेजें", + "sending": "भेज रहे हैं...", + "testEmail": "परीक्षण ईमेल", + "updateSuccess": "SMTP सेटिंग्स अपडेट की गईं", + "updateFailed": "SMTP सेटिंग्स अपडेट करने में विफल", + "testSuccess": "परीक्षण ईमेल सफलतापूर्वक भेजा गया!", + "testFailed": "विफल: {error}" + }, + "users": { + "createUser": "उपयोगकर्ता बनाएं", + "addUser": "उपयोगकर्ता जोड़ें", + "createUserDescription": "सिस्टम में एक नया उपयोगकर्ता जोड़ें।", + "name": "नाम", + "email": "ईमेल", + "password": "पासवर्ड", + "role": "भूमिका", + "createSuccess": "उपयोगकर्ता सफलतापूर्वक बनाया गया", + "createFailed": "उपयोगकर्ता बनाने में विफल", + "deleteSuccess": "उपयोगकर्ता हटाया गया", + "deleteFailed": "हटाने में विफल", + "roleUpdateSuccess": "उपयोगकर्ता भूमिका को {role} में अपडेट किया गया", + "roleUpdateFailed": "भूमिका अपडेट करने में विफल", + "demote": "अवमत करें", + "promote": "पदोन्नत करें", + "confirmDelete": "Are you sure? This action cannot be undone.", + "table": { + "name": "नाम", + "email": "ईमेल", + "role": "भूमिका", + "createdAt": "बनाया गया", + "actions": "कार्रवाई" + }, + "roles": { + "user": "उपयोगकर्ता", + "admin": "व्यवस्थापक" + }, + "title": "उपयोगकर्ता", + "description": "एप्लिकेशन उपयोगकर्ताओं और अनुमतियों का प्रबंधन" + }, + "aiTest": { + "title": "AI प्रदाता परीक्षण", + "description": "टैग जनरेशन और सिमेंटिक खोज एम्बेडिंग्स के लिए अपने AI प्रदाताओं का परीक्षण करें", + "tagsTestTitle": "टैग जनरेशन परीक्षण", + "tagsTestDescription": "स्वचालित टैग सुझावों के लिए जिम्मेदार AI प्रदाता का परीक्षण करें", + "embeddingsTestTitle": "एम्बेडिंग्स परीक्षण", + "embeddingsTestDescription": "सिमेंटिक खोज एम्बेडिंग्स के लिए जिम्मेदार AI प्रदाता का परीक्षण करें", + "howItWorksTitle": "परीक्षण कैसे काम करता है", + "tagsGenerationTest": "🏷️ टैग जनरेशन टेस्ट:", + "tagsStep1": "AI प्रदाता को एक नमूना नोट भेजता है", + "tagsStep2": "सामग्री के आधार पर 3-5 प्रासंगिक टैग का अनुरोध करता है", + "tagsStep3": "विश्वास स्कोर के साथ जेनरेट किए गए टैग प्रदर्शित करता है", + "tagsStep4": "प्रतिक्रिया समय मापता है", + "embeddingsTestLabel": "🔍 एम्बेडिंग्स टेस्ट:", + "embeddingsStep1": "एम्बेडिंग प्रदाता को एक नमूना पाठ भेजता है", + "embeddingsStep2": "एक वेक्टर प्रतिनिधित्व (संख्याओं की सूची) उत्पन्न करता है", + "embeddingsStep3": "एम्बेडिंग आयाम और नमूना मान प्रदर्शित करता है", + "embeddingsStep4": "सत्यापित करता है कि वेक्टर मान्य और उचित रूप से स्वरूपित है", + "tipContent": "आप टैग और एम्बेडिंग्स के लिए अलग-अलग प्रदाताओं का उपयोग कर सकते हैं! लागत और प्रदर्शन को अनुकूलित करने के लिए Ollama (मुफ्त) का उपयोग टैग के लिए और OpenAI (सर्वोत्तम गुणवत्ता) एम्बेडिंग्स के लिए करें।", + "provider": "प्रदाता:", + "model": "मॉडल:", + "testing": "परीक्षण हो रहा है...", + "runTest": "परीक्षण चलाएं", + "testPassed": "परीक्षण पास", + "testFailed": "परीक्षण विफल", + "testSuccessToast": "{type} परीक्षण सफल!", + "testFailedToast": "{type} परीक्षण विफल", + "testingType": "{type} परीक्षण हो रहा है...", + "technicalDetails": "तकनीकी विवरण", + "responseTime": "प्रतिक्रिया समय: {time}ms", + "generatedTags": "उत्पन्न टैग:", + "embeddingDimensions": "एम्बेडिंग आयाम:", + "vectorDimensions": "वेक्टर आयाम", + "first5Values": "पहले 5 मान:", + "error": "त्रुटि:", + "testError": "परीक्षण त्रुटि: {error}", + "tipTitle": "सुझाव:", + "tipDescription": "परीक्षण से पहले कॉन्फ़िगरेशन समस्याओं का निदान करने के लिए AI परीक्षण पैनल का उपयोग करें।" + }, + "sidebar": { + "dashboard": "डैशबोर्ड", + "users": "उपयोगकर्ता", + "aiManagement": "AI प्रबंधन", + "chat": "AI चैट", + "lab": "लैब (विचार)", + "agents": "एजेंट", + "settings": "सेटिंग्स" + }, + "metrics": { + "vsLastPeriod": "vs पिछली अवधि" + }, + "tools": { + "title": "एजेंट टूल", + "description": "एजेंट टूल-उपयोग के लिए बाहरी टूल कॉन्फ़िगर करें: वेब खोज, वेब स्क्रैपिंग और API एक्सेस।", + "searchProvider": "वेब खोज प्रदाता", + "searxng": "SearXNG (स्व-होस्टेड)", + "brave": "Brave Search API", + "both": "दोनों (SearXNG प्राथमिक, Brave फ़ॉलबैक)", + "searxngUrl": "SearXNG URL", + "braveKey": "Brave Search API कुंजी", + "jinaKey": "Jina Reader API कुंजी", + "jinaKeyOptional": "वैकल्पिक — बिना काम करता है लेकिन दर सीमा के साथ", + "jinaKeyDescription": "वेब स्क्रैपिंग के लिए उपयोग किया जाता है। बिना कुंजी के काम करता है लेकिन दर सीमा के साथ।", + "saveSettings": "टूल सेटिंग्स सहेजें", + "updateSuccess": "टूल सेटिंग्स सफलतापूर्वक अपडेट की गईं", + "updateFailed": "टूल सेटिंग्स अपडेट करने में विफल", + "testing": "परीक्षण हो रहा है...", + "testSearch": "वेब खोज परीक्षण" + }, + "settingsDescription": "एप्लिकेशन-वाइड सेटिंग्स कॉन्फ़िगर करें", + "dashboard": { + "title": "डैशबोर्ड", + "description": "एप्लिकेशन मेट्रिक्स का अवलोकन", + "recentActivity": "हालिया गतिविधि", + "recentActivityPlaceholder": "हालिया गतिविधि यहां प्रदर्शित होगी।" + }, + "error": { + "title": "एडमिन पैनल में त्रुटि हुई", + "description": "पेज रेंडर करने में विफल। पुनः प्रयास करें।", + "retry": "पुनः प्रयास करें" + } }, - "notes": { - "add": "जोड़ें", - "addCollaborators": "सहयोगी जोड़ें", - "addImage": "छवि जोड़ें", - "addItem": "आइटम जोड़ें", - "addLink": "लिंक जोड़ें", - "addListItem": "+ सूची आइटम", - "addNote": "नोट जोड़ें", - "adding": "जोड़ रहे हैं...", - "aiAssistant": "AI सहायक", - "archive": "संग्रहित करें", - "backgroundOptions": "बैकग्राउंड विकल्प", - "changeColor": "रंग बदलें", - "changeSize": "आकार बदलें", - "clarifyFailed": "स्पष्ट करने में विफल", - "close": "बंद करें", - "color": "रंग", - "confirmDelete": "क्या आप वाकई इस नोट को हटाना चाहते हैं?", - "confirmLeaveShare": "क्या आप वाकई इस साझा नोट को छोड़ना चाहते हैं?", - "contentOrMediaRequired": "कृपया कुछ सामग्री दर्ज करें या लिंक/छवि जोड़ें", - "copy": "कॉपी", - "copyFailed": "नोट कॉपी करने में विफल", - "copySuccess": "नोट सफलतापूर्वक कॉपी किया गया!", - "createFirstNote": "अपना पहला नोट बनाएं", - "date": "दिनांक", - "delete": "हटाएं", - "dragToReorder": "पुनर्व्यवस्थित करने के लिए खींचें", - "duplicate": "डुप्लिकेट", - "edit": "नोट संपादित करें", - "emptyState": "कोई नोट नहीं", - "fileTooLarge": "फ़ाइल बहुत बड़ी है: {fileName}. अधिकतम आकार {maxSize} है।", - "improveFailed": "सुधारने में विफल", - "inNotebook": "नोटबुक में", - "invalidDateTime": "अमान्य दिनांक या समय", - "invalidFileType": "अमान्य फ़ाइल प्रकार: {fileName}. केवल JPEG, PNG, GIF और WebP अनुमत हैं।", - "itemOrMediaRequired": "कृपया कम से कम एक आइटम या मीडिया जोड़ें", - "large": "बड़ा", - "leaveShare": "छोड़ें", - "linkAddFailed": "लिंक जोड़ने में विफल", - "linkAdded": "लिंक जोड़ा गया", - "linkMetadataFailed": "लिंक मेटाडेटा प्राप्त नहीं किया जा सका", - "listItem": "सूची आइटम", - "makeCopy": "कॉपी बनाएं", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown बंद", - "markdownOn": "Markdown चालू", - "markdownPlaceholder": "नोट लें... (Markdown समर्थित)", - "medium": "मध्यम", - "more": "अधिक", - "moreOptions": "अधिक विकल्प", - "moveFailed": "ले जाने में विफल", - "newChecklist": "नई चेकलिस्ट", - "newNote": "नया नोट", - "noContent": "कोई सामग्री नहीं", - "noNotes": "कोई नोट नहीं", - "noNotesFound": "कोई नोट नहीं मिला", - "noteCreateFailed": "नोट बनाने में विफल", - "noteCreated": "नोट सफलतापूर्वक बनाया गया", - "others": "अन्य", - "pin": "पिन करें", - "pinned": "पिन किए गए", - "pinnedNotes": "पिन किए गए नोट्स", - "placeholder": "नोट लें...", - "preview": "पूर्वावलोकन", - "readOnly": "केवल पढ़ने के लिए", - "recent": "हालिया", - "redo": "फिर से करें (Ctrl+Y)", - "redoShortcut": "फिर से करें (Ctrl+Y)", - "remindMe": "मुझे याद दिलाएं", - "reminderDateTimeRequired": "कृपया दिनांक और समय दर्ज करें", - "reminderMustBeFuture": "रिमाइंडर भविष्य में होना चाहिए", - "reminderPastError": "रिमाइंडर भविष्य में होना चाहिए", - "reminderRemoved": "रिमाइंडर हटा दिया गया", - "reminderSet": "{datetime} के लिए रिमाइंडर सेट किया गया", - "remove": "हटाएं", - "saving": "सहेज रहे हैं...", - "setReminder": "रिमाइंडर सेट करें", - "setReminderButton": "रिमाइंडर सेट करें", - "share": "साझा करें", - "shareWithCollaborators": "सहयोगियों के साथ साझा करें", - "sharedBy": "द्वारा साझा किया गया", - "sharedReadOnly": "यह नोट आपके साथ केवल-पढ़ने के मोड में साझा किया गया है", - "shortenFailed": "छोटा करने में विफल", - "showCollaborators": "सहयोगी दिखाएं", - "size": "आकार", - "small": "छोटा", - "takeNote": "नोट लें...", - "takeNoteMarkdown": "नोट लें... (Markdown समर्थित)", - "time": "समय", - "title": "नोट्स", - "titlePlaceholder": "शीर्षक", - "transformFailed": "रूपांतरित करने में विफल", - "unarchive": "संग्रह से निकालें", - "undo": "पूर्ववत करें (Ctrl+Z)", - "undoShortcut": "पूर्ववत करें (Ctrl+Z)", - "unpin": "अनपिन करें", - "unpinned": "अनपिन किया गया", - "untitled": "शीर्षकहीन", - "uploadFailed": "{filename} अपलोड करने में विफल", - "view": "नोट देखें", - "emptyStateTabs": "इस दृश्य में कोई नोट नहीं। साइडबार में \"नया नोट\" का उपयोग करें (कंपोज़र में AI शीर्षक सुझाव उपलब्ध)।", - "viewCards": "कार्ड दृश्य", - "viewCardsTooltip": "ड्रैग-एंड-ड्रॉप पुनर्व्यवस्था के साथ कार्ड ग्रिड", - "viewTabs": "सूची दृश्य", - "viewTabsTooltip": "ऊपर टैब, नीचे नोट — पुनर्व्यवस्थित करने के लिए टैब खींचें", - "viewModeGroup": "नोट्स प्रदर्शन मोड", - "reorderTabs": "टैब पुनर्व्यवस्थित करें", - "modified": "संशोधित", - "created": "बनाया गया", - "loading": "लोड हो रहा है...", - "exportPDF": "PDF निर्यात करें", - "savedStatus": "सहेजा गया", - "dirtyStatus": "संशोधित", - "completedLabel": "पूर्ण", - "notes.emptyNotebook": "खाली नोटबुक", - "notes.emptyNotebookDesc": "इस नोटबुक में कोई नोट नहीं है। एक बनाने के लिए + पर क्लिक करें।", - "notes.noNoteSelected": "कोई नोट चुना नहीं गया", - "notes.selectOrCreateNote": "सूची से एक नोट चुनें या एक नया बनाएं।", - "commitVersion": "संस्करण सहेजें", - "versionSaved": "संस्करण सहेजा गया", - "deleteVersion": "इस संस्करण को हटाएं", - "versionDeleted": "संस्करण हटाया गया", - "deleteVersionConfirm": "क्या आप इस संस्करण को स्थायी रूप से हटाना चाहते हैं?", - "historyMode": "इतिहास मोड", - "historyModeManual": "मैनुअल (कमिट बटन)", - "historyModeAuto": "स्वचालित (स्मार्ट)", - "historyModeManualDesc": "कमिट बटन से मैन्युअल स्नैपशॉट बनाएं", - "historyModeAutoDesc": "स्मार्ट डिटेक्शन के साथ ऑटो स्नैपशॉट", - "history": "इतिहास", - "historyRestored": "संस्करण पुनर्स्थापित", - "historyEnabled": "इतिहास सक्षम किया गया", - "historyDisabledDesc": "आपके खाते के लिए इतिहास अक्षम है।", - "enableHistory": "इतिहास सक्षम करें", - "historyEmpty": "कोई संस्करण उपलब्ध नहीं", - "historySelectVersion": "पूर्वावलोकन के लिए एक संस्करण चुनें", - "sortBy": "इसके अनुसार क्रमबद्ध करें", - "sortDateDesc": "तिथि (नवीनतम)", - "sortDateAsc": "तिथि (पुराना)", - "sortTitleAsc": "शीर्षक A → Z", - "sortTitleDesc": "शीर्षक Z → A" - }, - "pagination": { - "next": "→", - "pageInfo": "पृष्ठ {currentPage} / {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "अनौपचारिक", - "expand": "विस्तार करें", - "formal": "औपचारिक", - "improve": "सुधारें", - "shorten": "छोटा करें", - "title": "पाठ सुधार" - }, - "profile": { - "accountSettings": "खाता सेटिंग्स", - "autoDetect": "स्वचालित पता लगाना", - "changePassword": "पासवर्ड बदलें", - "changePasswordDescription": "अपना पासवर्ड अपडेट करें। आपको वर्तमान पासवर्ड की आवश्यकता होगी।", - "confirmPassword": "पासवर्ड की पुष्टि करें", - "currentPassword": "वर्तमान पासवर्ड", - "description": "अपनी व्यक्तिगत जानकारी अपडेट करें", - "displayName": "प्रदर्शन नाम", - "displaySettings": "प्रदर्शन सेटिंग्स", - "displaySettingsDescription": "दिखावट और फ़ॉन्ट आकार को अनुकूलित करें।", - "email": "ईमेल", - "fontSize": "फ़ॉन्ट आकार", - "fontSizeDescription": "बेहतर पठनीयता के लिए फ़ॉन्ट आकार समायोजित करें। यह इंटरफेस के सभी पाठ पर लागू होता है।", - "fontSizeExtraLarge": "बहुत बड़ा", - "fontSizeLarge": "बड़ा", - "fontSizeMedium": "मध्यम", - "fontSizeSmall": "छोटा", - "fontSizeUpdateFailed": "फ़ॉन्ट आकार अपडेट करने में विफल", - "fontSizeUpdateSuccess": "फ़ॉन्ट आकार सफलतापूर्वक अपडेट किया गया", - "languageDescription": "यह भाषा AI-संचालित सुविधाओं, सामग्री विश्लेषण और इंटरफेस पाठ के लिए उपयोग की जाएगी।", - "languagePreferences": "भाषा प्राथमिकताएं", - "languagePreferencesDescription": "AI सुविधाओं और इंटरफेस के लिए अपनी पसंदीदा भाषा चुनें।", - "languageUpdateFailed": "भाषा अपडेट करने में विफल", - "languageUpdateSuccess": "भाषा सफलतापूर्वक अपडेट की गई", - "manageAISettings": "AI सेटिंग्स प्रबंधित करें", - "newPassword": "नया पासवर्ड", - "passwordChangeFailed": "पासवर्ड बदलने में विफल", - "passwordChangeSuccess": "पासवर्ड सफलतापूर्वक बदला गया", - "passwordError": "पासवर्ड अपडेट करने में त्रुटि", - "passwordUpdated": "पासवर्ड अपडेट किया गया", - "preferredLanguage": "पसंदीदा भाषा", - "profileError": "प्रोफ़ाइल अपडेट करने में त्रुटि", - "profileUpdated": "प्रोफ़ाइल अपडेट किया गया", - "recentNotesUpdateFailed": "Failed to update recent notes setting", - "recentNotesUpdateSuccess": "Recent notes setting updated successfully", - "selectFontSize": "फ़ॉन्ट आकार चुनें", - "selectLanguage": "भाषा चुनें", - "showRecentNotes": "Show Recent Notes Section", - "showRecentNotesDescription": "Display recent notes (last 7 days) on the main page", - "title": "प्रोफ़ाइल", - "updateFailed": "प्रोफ़ाइल अपडेट करने में विफल", - "updatePassword": "पासवर्ड अपडेट करें", - "updateSuccess": "प्रोफ़ाइल अपडेट किया गया" - }, - "reminder": { - "cancel": "रद्द करें", - "reminderDate": "रिमाइंडर दिनांक", - "reminderTime": "रिमाइंडर समय", - "removeReminder": "रिमाइंडर हटाएं", - "save": "रिमाइंडर सेट करें", - "setReminder": "रिमाइंडर सेट करें", - "title": "रिमाइंडर" - }, - "resetPassword": { - "confirmNewPassword": "नए पासवर्ड की पुष्टि करें", - "description": "नीचे अपना नया पासवर्ड दर्ज करें।", - "invalidLinkDescription": "यह पासवर्ड रीसेट लिंक अमान्य या समाप्त हो गया है।", - "invalidLinkTitle": "अमान्य लिंक", - "loading": "लोड हो रहा है...", - "newPassword": "नया पासवर्ड", - "passwordMismatch": "पासवर्ड मेल नहीं खाते", - "requestNewLink": "नया लिंक अनुरोध करें", - "resetPassword": "पासवर्ड रीसेट करें", - "resetting": "रीसेट हो रहा है...", - "success": "पासवर्ड सफलतापूर्वक रीसेट किया गया। अब आप लॉगिन कर सकते हैं।", - "title": "पासवर्ड रीसेट करें" - }, - "search": { - "exactMatch": "Exact match", - "noResults": "No results found", - "placeholder": "Search", - "related": "Related", - "resultsFound": "{count} notes found", - "searchPlaceholder": "Search your notes...", - "searching": "Searching...", - "semanticInProgress": "AI search in progress...", - "semanticTooltip": "AI semantic search", - "disabledAdmin": "एडमिन मोड में खोज अक्षम" - }, - "semanticSearch": { - "exactMatch": "सटीक मेल", - "related": "संबंधित", - "searching": "खोज रहे हैं..." - }, - "settings": { - "about": "के बारे में", - "account": "खाता", - "appearance": "दिखावट", - "cleanTags": "Clean Orphan Tags", - "cleanTagsDescription": "Remove tags that are no longer used by any notes", - "description": "अपनी सेटिंग्स और प्राथमिकताएं प्रबंधित करें", - "language": "भाषा", - "languageAuto": "स्वचालित पता लगाना", - "maintenance": "Maintenance", - "maintenanceDescription": "Tools to maintain your database health", - "notifications": "सूचनाएं", - "privacy": "गोपनीयता", - "profile": "प्रोफ़ाइल", - "searchNoResults": "कोई मिलान सेटिंग्स नहीं मिली", - "security": "सुरक्षा", - "selectLanguage": "भाषा चुनें", - "semanticIndexing": "Semantic Indexing", - "semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search", - "settingsError": "सेटिंग्स सहेजने में त्रुटि", - "settingsSaved": "सेटिंग्स सहेजी गई", - "theme": "थीम", - "themeDark": "डार्क", - "themeLight": "लाइट", - "themeSystem": "सिस्टम", - "title": "सेटिंग्स", + "about": { + "title": "के बारे में", + "description": "एप्लिकेशन के बारे में जानकारी", + "appName": "Memento", + "appDescription": "AI-संचालित सुविधाओं के साथ एक शक्तिशाली नोट लेने वाला एप्लिकेशन", "version": "संस्करण", - "cleanupDone": "{created} लेबल सिंक किए, {deleted} अनाथ हटाए", - "cleanupNothing": "कोई कार्रवाई आवश्यक नहीं — लेबल पहले से सिंक हैं", - "cleanupWithErrors": "कुछ ऑपरेशन विफल", - "cleanupError": "लेबल साफ़ नहीं कर सके", - "indexingComplete": "इंडेक्सिंग पूर्ण: {count} नोट प्रोसेस किए", - "indexingError": "इंडेक्सिंग में त्रुटि", - "emailNotifications": "ईमेल सूचनाएं", - "emailNotificationsDesc": "ईमेल द्वारा महत्वपूर्ण सूचनाएं प्राप्त करें", - "desktopNotifications": "डेस्कटॉप सूचनाएं", - "desktopNotificationsDesc": "ब्राउज़र में सूचनाएं प्राप्त करें", - "notificationsDesc": "अपनी सूचना वरीयताएं प्रबंधित करें" - }, - "sidebar": { - "archive": "Archive", - "editLabels": "Edit labels", - "labels": "Labels", - "notes": "Notes", - "reminders": "Reminders", - "trash": "Trash", - "newNoteTabs": "नया नोट", - "newNoteTabsHint": "इस नोटबुक में नोट बनाएं", - "noLabelsInNotebook": "इस नोटबुक में कोई लेबल नहीं" + "buildDate": "बिल्ड तिथि", + "platform": "प्लेटफ़ॉर्म", + "platformWeb": "वेब", + "features": { + "title": "सुविधाएं", + "description": "AI-संचालित क्षमताएं", + "titleSuggestions": "AI-संचालित शीर्षक सुझाव", + "semanticSearch": "एम्बेडिंग्स के साथ सिमेंटिक खोज", + "paragraphReformulation": "अनुच्छेद पुनर्सुधार", + "memoryEcho": "Memory Echo दैनिक अंतर्दृष्टि", + "notebookOrganization": "नोटबुक संगठन", + "dragDrop": "ड्रैग और ड्रॉप नोट प्रबंधन", + "labelSystem": "लेबल सिस्टम", + "multipleProviders": "कई AI प्रदाता (OpenAI, Ollama)" + }, + "technology": { + "title": "तकनीकी स्टैक", + "description": "आधुनिक तकनीकों के साथ निर्मित", + "frontend": "फ्रंटएंड", + "backend": "बैकएंड", + "database": "डेटाबेस", + "authentication": "प्रमाणीकरण", + "ai": "AI", + "ui": "UI", + "testing": "परीक्षण" + }, + "support": { + "title": "समर्थन", + "description": "सहायता और प्रतिक्रिया प्राप्त करें", + "documentation": "प्रलेखन", + "reportIssues": "समस्याएं रिपोर्ट करें", + "feedback": "प्रतिक्रिया" + } }, "support": { - "aiApiCosts": "AI API लागत:", - "buyMeACoffee": "मुझे कॉफी खरीदें", - "contributeCode": "कोड योगदान करें", - "description": "Memento 100% निःशुल्क और ओपन-सोर्स है। आपका समर्थन इसे ऐसे ही बनाए रखने में मदद करता है।", - "directImpact": "प्रत्यक्ष प्रभाव", - "domainSSL": "डोमेन और SSL:", - "donateOnKofi": "Ko-fi पर दान करें", - "donationDescription": "एक बार का दान करें या मासिक समर्थक बनें।", - "githubDescription": "आवर्ती समर्थन • सार्वजनिक मान्यता • डेवलपर-केंद्रित", - "hostingServers": "होस्टिंग और सर्वर:", - "howSupportHelps": "आपका समर्थन कैसे मदद करता है", - "kofiDescription": "कोई प्लेटफ़ॉर्म शुल्क नहीं • त्वरित भुगतान • सुरक्षित", - "otherWaysTitle": "समर्थन करने के अन्य तरीके", - "reportBug": "बग रिपोर्ट करें", - "shareTwitter": "ट्विटर पर साझा करें", - "sponsorDescription": "मासिक प्रायोजक बनें और मान्यता प्राप्त करें।", - "sponsorOnGithub": "GitHub पर प्रायोजित करें", - "sponsorPerks": "प्रायोजक विशेषाधिकार", - "starGithub": "GitHub पर स्टार करें", "title": "Memento विकास का समर्थन करें", - "totalExpenses": "कुल व्यय:", + "description": "Memento 100% निःशुल्क और ओपन-सोर्स है। आपका समर्थन इसे ऐसे ही बनाए रखने में मदद करता है।", + "buyMeACoffee": "मुझे कॉफी खरीदें", + "donationDescription": "एक बार का दान करें या मासिक समर्थक बनें।", + "donateOnKofi": "Ko-fi पर दान करें", + "kofiDescription": "कोई प्लेटफ़ॉर्म शुल्क नहीं • त्वरित भुगतान • सुरक्षित", + "sponsorOnGithub": "GitHub पर प्रायोजित करें", + "sponsorDescription": "मासिक प्रायोजक बनें और मान्यता प्राप्त करें।", + "githubDescription": "आवर्ती समर्थन • सार्वजनिक मान्यता • डेवलपर-केंद्रित", + "howSupportHelps": "आपका समर्थन कैसे मदद करता है", + "directImpact": "प्रत्यक्ष प्रभाव", + "sponsorPerks": "प्रायोजक विशेषाधिकार", "transparency": "पारदर्शिता", - "transparencyDescription": "मैं पूर्ण पारदर्शिता में विश्वास करता हूं। दान का उपयोग इस प्रकार किया जाता है:" + "transparencyDescription": "मैं पूर्ण पारदर्शिता में विश्वास करता हूं। दान का उपयोग इस प्रकार किया जाता है:", + "hostingServers": "होस्टिंग और सर्वर:", + "domainSSL": "डोमेन और SSL:", + "aiApiCosts": "AI API लागत:", + "totalExpenses": "कुल व्यय:", + "otherWaysTitle": "समर्थन करने के अन्य तरीके", + "starGithub": "GitHub पर स्टार करें", + "reportBug": "बग रिपोर्ट करें", + "contributeCode": "कोड योगदान करें", + "shareTwitter": "ट्विटर पर साझा करें" + }, + "demoMode": { + "title": "डेमो मोड", + "activated": "डेमो मोड सक्रिय! Memory Echo अब तुरंत काम करेगा।", + "deactivated": "डेमो मोड अक्षम। सामान्य पैरामीटर बहाल।", + "toggleFailed": "डेमो मोड टॉगल करने में विफल", + "description": "परीक्षण के लिए Memory Echo को तेज करता है। कनेक्शन तुरंत दिखाई देते हैं।", + "parametersActive": "डेमो पैरामीटर सक्रिय:", + "similarityThreshold": "50% समानता थ्रेशोल्ड (आमतौर पर 75%)", + "delayBetweenNotes": "नोट्स के बीच 0-दिन की देरी (आमतौर पर 7 दिन)", + "unlimitedInsights": "असीमित अंतर्दृष्टि (कोई आवृत्ति सीमा नहीं)", + "createNotesTip": "2+ समान नोट्स बनाएं और Memory Echo को काम करते हुए देखें!" + }, + "resetPassword": { + "title": "पासवर्ड रीसेट करें", + "description": "नीचे अपना नया पासवर्ड दर्ज करें।", + "invalidLinkTitle": "अमान्य लिंक", + "invalidLinkDescription": "यह पासवर्ड रीसेट लिंक अमान्य या समाप्त हो गया है।", + "requestNewLink": "नया लिंक अनुरोध करें", + "newPassword": "नया पासवर्ड", + "confirmNewPassword": "नए पासवर्ड की पुष्टि करें", + "resetting": "रीसेट हो रहा है...", + "resetPassword": "पासवर्ड रीसेट करें", + "passwordMismatch": "पासवर्ड मेल नहीं खाते", + "success": "पासवर्ड सफलतापूर्वक रीसेट किया गया। अब आप लॉगिन कर सकते हैं।", + "loading": "लोड हो रहा है..." + }, + "dataManagement": { + "title": "डेटा प्रबंधन", + "toolsDescription": "अपने डेटाबेस स्वास्थ्य को बनाए रखने के लिए उपकरण", + "exporting": "निर्यात हो रहा है...", + "importing": "आयात हो रहा है...", + "deleting": "हटाया जा रहा है...", + "dangerZone": "खतरे का क्षेत्र", + "dangerZoneDescription": "ये कार्रवाई पूर्ववत नहीं की जा सकती, सावधान रहें", + "indexingComplete": "इंडेक्सिंग पूर्ण", + "indexingError": "इंडेक्सिंग त्रुटि", + "cleanupComplete": "सफ़ाई पूर्ण", + "cleanupError": "सफ़ाई त्रुटि", + "export": { + "title": "सभी नोट्स निर्यात करें", + "description": "अपने सभी नोट्स को JSON फ़ाइल के रूप में डाउनलोड करें। इसमें सभी सामग्री, लेबल और मेटाडेटा शामिल हैं।", + "button": "नोट्स निर्यात करें", + "success": "नोट्स सफलतापूर्वक निर्यात किए गए", + "failed": "नोट्स निर्यात करने में विफल" + }, + "import": { + "title": "नोट्स आयात करें", + "description": "नोट्स आयात करने के लिए JSON फ़ाइल अपलोड करें। यह आपके मौजूदा नोट्स में जोड़ेगा, बदले नहीं।", + "button": "नोट्स आयात करें", + "success": "{count} नोट्स आयात किए गए", + "failed": "नोट्स आयात करने में विफल" + }, + "delete": { + "title": "सभी नोट्स हटाएं", + "description": "अपने सभी नोट्स को स्थायी रूप से हटाएं। यह क्रिया पूर्ववत नहीं की जा सकती।", + "button": "सभी नोट्स हटाएं", + "confirm": "क्या आप सुनिश्चित हैं? यह आपके सभी नोट्स को स्थायी रूप से हटा देगा।", + "success": "सभी नोट्स हटा दिए गए", + "failed": "नोट्स हटाने में विफल" + }, + "indexing": { + "title": "खोज इंडेक्स पुनर्निर्माण करें", + "description": "सिमेंटिक खोज में सुधार के लिए सभी नोट्स के लिए एम्बेडिंग्स पुनः उत्पन्न करें।", + "button": "इंडेक्स पुनर्निर्माण करें", + "success": "इंडेक्सिंग पूर्ण: {count} नोट्स संसाधित", + "failed": "इंडेक्सिंग के दौरान त्रुटि" + }, + "cleanup": { + "title": "ऑर्फन डेटा साफ़ करें", + "description": "हटाए गए नोट्स का संदर्भ देने वाले लेबल और कनेक्शन हटाएं।", + "button": "साफ़ करें", + "failed": "सफ़ाई के दौरान त्रुटि" + } + }, + "appearance": { + "title": "दिखावट", + "description": "ऐप के दिखने के तरीके को अनुकूलित करें", + "notesViewDescription": "चुनें कि होम और नोटबुक में नोट्स कैसे दिखाए जाएं।", + "notesViewLabel": "नोट्स दृश्य", + "notesViewTabs": "टैब (OneNote-शैली)", + "notesViewMasonry": "कार्ड (ग्रिड)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "सामान्य सेटिंग्स", + "description": "सामान्य एप्लिकेशन सेटिंग्स" + }, + "toast": { + "saved": "सेटिंग सहेजी गई", + "saveFailed": "सेटिंग सहेजने में विफल", + "operationSuccess": "ऑपरेशन सफल", + "operationFailed": "ऑपरेशन विफल", + "openingConnection": "कनेक्शन खोल रहे हैं...", + "openConnectionFailed": "कनेक्शन खोलने में विफल", + "thanksFeedback": "आपकी प्रतिक्रिया के लिए धन्यवाद!", + "thanksFeedbackImproving": "धन्यवाद! हम इसे सुधार के लिए उपयोग करेंगे।", + "feedbackFailed": "प्रतिक्रिया भेजने में विफल", + "notesFusionSuccess": "नोट्स सफलतापूर्वक मर्ज किए गए!" }, "testPages": { "titleSuggestions": { - "analyzing": "विश्लेषण हो रहा है...", - "contentLabel": "सामग्री (50+ शब्दों की आवश्यकता):", - "error": "त्रुटि:", - "idle": "निष्क्रिय", - "noSuggestions": "अभी तक कोई सुझाव नहीं। 50+ शब्द टाइप करें और 2 सेकंड प्रतीक्षा करें।", - "placeholder": "यहां कम से कम 50 शब्द टाइप करें...", - "status": "स्थिति:", - "suggestions": "सुझाव ({count}):", "title": "शीर्षक सुझाव परीक्षण", - "wordCount": "शब्द गणना:" + "contentLabel": "सामग्री (50+ शब्दों की आवश्यकता):", + "placeholder": "यहां कम से कम 50 शब्द टाइप करें...", + "wordCount": "शब्द गणना:", + "status": "स्थिति:", + "analyzing": "विश्लेषण हो रहा है...", + "idle": "निष्क्रिय", + "error": "त्रुटि:", + "suggestions": "सुझाव ({count}):", + "noSuggestions": "अभी तक कोई सुझाव नहीं। 50+ शब्द टाइप करें और 2 सेकंड प्रतीक्षा करें।" } }, - "time": { - "daysAgo": "{count} दिन पहले", - "hoursAgo": "{count} घंटे पहले", - "justNow": "अभी", - "minutesAgo": "{count} मिनट पहले", - "today": "आज", - "tomorrow": "कल", - "yesterday": "कल" - }, - "titleSuggestions": { - "available": "शीर्षक सुझाव", - "dismiss": "खारिज करें", - "generating": "उत्पन्न हो रहा है...", - "selectTitle": "शीर्षक चुनें", - "title": "AI सुझाव" - }, - "toast": { - "feedbackFailed": "प्रतिक्रिया भेजने में विफल", - "notesFusionSuccess": "नोट्स सफलतापूर्वक मर्ज किए गए!", - "openConnectionFailed": "कनेक्शन खोलने में विफल", - "openingConnection": "कनेक्शन खोल रहे हैं...", - "operationFailed": "ऑपरेशन विफल", - "operationSuccess": "ऑपरेशन सफल", - "saveFailed": "सेटिंग सहेजने में विफल", - "saved": "सेटिंग सहेजी गई", - "thanksFeedback": "आपकी प्रतिक्रिया के लिए धन्यवाद!", - "thanksFeedbackImproving": "धन्यवाद! हम इसे सुधार के लिए उपयोग करेंगे।" - }, "trash": { "title": "रीसायकल बिन", "empty": "रीसायकल बिन खाली है", @@ -1233,11 +1212,83 @@ "permanentDelete": "स्थायी रूप से हटाएं", "permanentDeleteConfirm": "यह नोट स्थायी रूप से हटा दी जाएगी। इसे पूर्ववत नहीं किया जा सकता।" }, + "footer": { + "privacy": "गोपनीयता", + "terms": "नियम", + "openSource": "ओपन सोर्स क्लोन" + }, + "connection": { + "similarityInfo": "ये नोट्स {similarity}% समानता से जुड़े हैं", + "clickToView": "नोट देखने के लिए क्लिक करें", + "isHelpful": "क्या यह कनेक्शन मददगार है?", + "helpful": "मददगार", + "notHelpful": "असहायक", + "memoryEchoDiscovery": "Memory Echo खोज" + }, + "diagnostics": { + "title": "निदान", + "description": "Check your AI provider connection status", + "configuredProvider": "कॉन्फ़िगर किया गया प्रदाता", + "apiStatus": "API स्थिति", + "operational": "Operational", + "errorStatus": "Error", + "checking": "Checking...", + "testDetails": "परीक्षण विवरण:", + "troubleshootingTitle": "समस्या निवारण सुझाव:", + "tip1": "सुनिश्चित करें कि Ollama चल रहा है (ollama serve)", + "tip2": "जांचें कि मॉडल इंस्टॉल है (ollama pull llama3)", + "tip3": "अपनी OpenAI API कुंजी सत्यापित करें", + "tip4": "नेटवर्क कनेक्टिविटी जांचें" + }, + "batch": { + "organizeWithAI": "AI से व्यवस्थित करें", + "organize": "व्यवस्थित करें" + }, + "common": { + "unknown": "अज्ञात", + "notAvailable": "उपलब्ध नहीं", + "loading": "लोड हो रहा है...", + "error": "त्रुटि", + "success": "सफल", + "confirm": "पुष्टि करें", + "cancel": "रद्द करें", + "close": "बंद करें", + "save": "सहेजें", + "delete": "हटाएं", + "edit": "संपादित करें", + "add": "जोड़ें", + "remove": "हटाएं", + "search": "खोजें", + "noResults": "कोई परिणाम नहीं", + "required": "आवश्यक", + "optional": "वैकल्पिक" + }, + "time": { + "justNow": "अभी", + "minutesAgo": "{count} मिनट पहले", + "hoursAgo": "{count} घंटे पहले", + "daysAgo": "{count} दिन पहले", + "yesterday": "कल", + "today": "आज", + "tomorrow": "कल" + }, + "favorites": { + "title": "पसंदीदा", + "toggleSection": "पसंदीदा अनुभाग टॉगल करें", + "noFavorites": "कोई पसंदीदा नहीं", + "pinToFavorite": "पसंदीदा में पिन करें" + }, + "notebooks": { + "create": "नोटबुक बनाएं", + "allNotebooks": "सभी नोटबुक", + "noNotebooks": "कोई नोटबुक नहीं", + "createFirst": "अपनी पहली नोटबुक बनाएं" + }, "ui": { "close": "बंद करें", - "collapse": "संकुचित करें", + "open": "खोलें", "expand": "विस्तार करें", - "open": "खोलें" + "collapse": "संकुचित करें" }, "mcpSettings": { "title": "MCP सेटिंग्स", @@ -1304,6 +1355,10 @@ "subtitle": "अपने निगरानी और अनुसंधान कार्यों को स्वचालित करें", "newAgent": "नया एजेंट", "myAgents": "मेरे एजेंट", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "कोई एजेंट नहीं", "noAgentsDescription": "अपना पहला एजेंट बनाएं या नीचे टेम्पलेट इंस्टॉल करें और अपने निगरानी कार्यों को स्वचालित करें।", "types": { @@ -1346,7 +1401,9 @@ "researchTopic": "शोध विषय", "researchTopicPlaceholder": "उदा: AI में नवीनतम प्रगति", "notifyEmail": "ईमेल सूचना", - "notifyEmailHint": "प्रत्येक रन के बाद एजेंट के परिणामों के साथ ईमेल प्राप्त करें" + "notifyEmailHint": "प्रत्येक रन के बाद एजेंट के परिणामों के साथ ईमेल प्राप्त करें", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "मैनुअल", @@ -1355,6 +1412,22 @@ "weekly": "साप्ताहिक", "monthly": "मासिक" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "सफल", "failure": "विफल", @@ -1383,7 +1456,9 @@ "toggleError": "एजेंट टॉगल करने में त्रुटि", "installSuccess": "\"{name}\" इंस्टॉल किया गया", "installError": "इंस्टॉल करने में त्रुटि", - "saveError": "सहेजने में त्रुटि" + "saveError": "सहेजने में त्रुटि", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "टेम्पलेट", @@ -1496,7 +1571,8 @@ "welcome": "मैं आपके नोट्स को संश्लेषित करने, नए विचार उत्पन्न करने या आपके नोटबुक पर चर्चा करने में मदद करने के लिए यहां हूं।", "searching": "खोज रहे हैं...", "noNotesFoundForContext": "इस प्रश्न के लिए कोई प्रासंगिक नोट्स नहीं मिले। अपने सामान्य ज्ञान से उत्तर दें।", - "webSearch": "वेब खोज" + "webSearch": "वेब खोज", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "लैब", @@ -1513,30 +1589,8 @@ "createFailed": "निर्माण विफल", "deleteSpace": "स्पेस हटाएं", "deleted": "स्पेस हटाया गया", - "deleteError": "हटाने में त्रुटि" - }, - "notification": { - "shared": "ने \"{title}\" साझा किया", - "untitled": "शीर्षकहीन", - "notifications": "सूचनाएं", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "साझाकरण अस्वीकृत", - "noNotifications": "No new notifications", - "removed": "सूची से नोट हटाया गया" - }, - "reminders": { - "title": "रिमाइंडर", - "empty": "कोई रिमाइंडर नहीं", - "emptyDescription": "रिमाइंडर यहां पाने के लिए नोट में जोड़ें।", - "upcoming": "आगामी", - "overdue": "अतिदेय", - "done": "पूर्ण", - "markDone": "पूर्ण चिह्नित करें", - "markUndone": "अपूर्ण चिह्नित करें", - "todayAt": "आज {time} बजे", - "tomorrowAt": "कल {time} बजे" + "deleteError": "हटाने में त्रुटि", + "rename": "Rename" }, "lab": { "initializing": "कार्यक्षेत्र प्रारंभ हो रहा है", diff --git a/memento-note/locales/it.json b/memento-note/locales/it.json index 0eebac9..a48c4fd 100644 --- a/memento-note/locales/it.json +++ b/memento-note/locales/it.json @@ -1,350 +1,366 @@ { - "about": { - "appDescription": "A powerful note-taking application with AI-powered features", - "appName": "Memento", - "buildDate": "Build Date", - "description": "Information about the application", - "features": { - "description": "AI-powered capabilities", - "dragDrop": "Drag & drop note management", - "labelSystem": "Label system", - "memoryEcho": "Memory Echo daily insights", - "multipleProviders": "Multiple AI providers (OpenAI, Ollama)", - "notebookOrganization": "Notebook organization", - "paragraphReformulation": "Paragraph reformulation", - "semanticSearch": "Semantic search with embeddings", - "title": "Features", - "titleSuggestions": "AI-powered title suggestions" - }, - "platform": "Platform", - "platformWeb": "Web", - "support": { - "description": "Get help and feedback", - "documentation": "Documentation", - "feedback": "Feedback", - "reportIssues": "Report Issues", - "title": "Support" - }, - "technology": { - "ai": "AI", - "authentication": "Authentication", - "backend": "Backend", - "database": "Database", - "description": "Built with modern technologies", - "frontend": "Frontend", - "testing": "Testing", - "title": "Technology Stack", - "ui": "UI" - }, - "title": "About", - "version": "Version" + "auth": { + "signIn": "Accedi", + "signUp": "Registrati", + "email": "Email", + "password": "Password", + "name": "Nome", + "emailPlaceholder": "Inserisci il tuo indirizzo email", + "passwordPlaceholder": "Inserisci la tua password", + "namePlaceholder": "Inserisci il tuo nome", + "passwordMinChars": "Inserisci la password (minimo 6 caratteri)", + "resetPassword": "Reimposta password", + "resetPasswordInstructions": "Inserisci la tua email per reimpostare la password", + "forgotPassword": "Password dimenticata?", + "noAccount": "Non hai un account?", + "hasAccount": "Hai già un account?", + "signInToAccount": "Accedi al tuo account", + "createAccount": "Crea il tuo account", + "rememberMe": "Ricordami", + "orContinueWith": "Oppure continua con", + "checkYourEmail": "Controlla la tua email", + "resetEmailSent": "Se esiste nel nostro sistema, abbiamo inviato un link per la reimpostazione della password al tuo indirizzo email.", + "returnToLogin": "Torna al login", + "forgotPasswordTitle": "Password dimenticata", + "forgotPasswordDescription": "Inserisci il tuo indirizzo email e ti invieremo un link per reimpostare la password.", + "sending": "Invio in corso...", + "sendResetLink": "Invia link di reimpostazione", + "backToLogin": "Torna al login", + "signOut": "Sign out", + "confirmPassword": "Conferma password", + "confirmPasswordPlaceholder": "Conferma la tua password" }, - "admin": { - "ai": { - "apiKey": "API Key", - "baseUrl": "Base URL", - "commonEmbeddingModels": "Common embedding models for OpenAI-compatible APIs", - "commonModelsDescription": "Common models for OpenAI-compatible APIs", - "description": "Configure AI providers for auto-tagging and semantic search. Use different providers for optimal performance.", - "embeddingsDescription": "AI provider for semantic search embeddings. Recommended: OpenAI (best quality).", - "embeddingsProvider": "Embeddings Provider", - "model": "Model", - "modelRecommendations": "gpt-4o-mini = Best value • gpt-4o = Best quality", - "openAIKeyDescription": "Your OpenAI API key from platform.openai.com", - "openTestPanel": "Open AI Test Panel", - "provider": "Provider", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING is required", - "providerTagsRequired": "AI_PROVIDER_TAGS is required", - "saveSettings": "Save AI Settings", - "saving": "Saving...", - "selectEmbeddingModel": "Select an embedding model installed on your system", - "selectOllamaModel": "Select an Ollama model installed on your system", - "tagsGenerationDescription": "AI provider for automatic tag suggestions. Recommended: Ollama (free, local).", - "tagsGenerationProvider": "Tags Generation Provider", - "title": "AI Configuration", - "updateFailed": "Failed to update AI settings", - "updateSuccess": "AI Settings updated successfully", - "bestValue": "Miglior rapporto qualità/prezzo", - "bestQuality": "Miglior qualità", - "providerOllamaOption": "🦙 Ollama (Local & Free)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Custom OpenAI-Compatible", - "saved": "(Salvato)", - "chatProvider": "Provider chat", - "chatDescription": "Provider IA per l'assistente chat. Usa il provider tag se non configurato.", - "fetchModelsFailed": "Impossibile recuperare i modelli", - "refreshModels": "Aggiorna modelli", - "configured": "Configurato", - "fetchingModels": "Recupero modelli...", - "clickToLoadModels": "Clicca ↺ per caricare i modelli", - "searchModel": "Cerca modello...", - "noModels": "Nessun modello. Clicca ↺", - "modelsAvailable": "{count} modello/i disponibile/i", - "enterUrlToLoad": "Inserisci URL e clicca ↺ per caricare", - "currentProvider": "(Attuale: {provider})", - "pageTitle": "Gestione IA", - "pageDescription": "Monitora e configura le funzioni IA", - "configure": "Configura", - "features": "Funzioni IA", - "providerStatus": "Stato provider IA", - "recentRequests": "Richieste IA recenti", - "comingSoon": "Prossimamente", - "activeFeatures": "Funzioni attive", - "successRate": "Tasso di successo", - "avgResponseTime": "Tempo di risposta medio", - "configuredProviders": "Provider configurati", - "settingUpdated": "Impostazione aggiornata", - "updateFailedShort": "Aggiornamento fallito", - "titleSuggestions": "Suggerimenti titolo", - "titleSuggestionsDesc": "Suggerisce titoli per note dopo 50+ parole", - "aiAssistant": "Assistente IA", - "aiAssistantDesc": "Abilita chat IA e strumenti di miglioramento", - "memoryEchoFeature": "Ho notato qualcosa...", - "memoryEchoFeatureDesc": "Analisi giornaliera delle connessioni tra le note", - "languageDetection": "Rilevamento lingua", - "languageDetectionDesc": "Rileva automaticamente la lingua di ogni nota", - "autoLabeling": "Etichettatura automatica", - "autoLabelingDesc": "Suggerisce e applica etichette automaticamente" - }, - "aiTest": { - "description": "Test your AI providers for tag generation and semantic search embeddings", - "embeddingDimensions": "Embedding Dimensions:", - "embeddingsTestDescription": "Test the AI provider responsible for semantic search embeddings", - "embeddingsTestTitle": "Embeddings Test", - "error": "Error:", - "first5Values": "First 5 values:", - "generatedTags": "Generated Tags:", - "howItWorksTitle": "How Testing Works", - "model": "Model:", - "provider": "Provider:", - "responseTime": "Response time: {time}ms", - "runTest": "Run Test", - "tagsTestDescription": "Test the AI provider responsible for automatic tag suggestions", - "tagsTestTitle": "Tags Generation Test", - "testError": "Test Error: {error}", - "testFailed": "Test Failed", - "testPassed": "Test Passed", - "testing": "Testing...", - "tipDescription": "Use the AI Test Panel to diagnose configuration issues before testing.", - "tipTitle": "Tip:", - "title": "AI Provider Testing", - "vectorDimensions": "vector dimensions", - "tagsGenerationTest": "🏷️ Test generazione tag:", - "tagsStep1": "Invia una nota di esempio al provider IA", - "tagsStep2": "Richiede 3-5 tag pertinenti basati sul contenuto", - "tagsStep3": "Mostra i tag generati con punteggi di confidenza", - "tagsStep4": "Misura il tempo di risposta", - "embeddingsTestLabel": "🔍 Test embeddings:", - "embeddingsStep1": "Invia un testo di esempio al provider di embeddings", - "embeddingsStep2": "Genera una rappresentazione vettoriale (lista di numeri)", - "embeddingsStep3": "Mostra le dimensioni dell'embedding e valori di esempio", - "embeddingsStep4": "Verifica che il vettore sia valido e formattato correttamente", - "tipContent": "Puoi usare provider diversi per tag ed embeddings! Ad esempio, usa Ollama (gratuito) per i tag e OpenAI (migliore qualità) per gli embeddings per ottimizzare costi e prestazioni.", - "testSuccessToast": "Test {type} riuscito!", - "testFailedToast": "Test {type} fallito", - "testingType": "Test di {type} in corso...", - "technicalDetails": "Dettagli tecnici" - }, - "aiTesting": "AI Testing", - "security": { - "allowPublicRegistration": "Allow Public Registration", - "allowPublicRegistrationDescription": "If disabled, new users can only be added by an Administrator via the User Management page.", - "description": "Manage access control and registration policies.", - "title": "Security Settings", - "updateFailed": "Failed to update security settings", - "updateSuccess": "Security Settings updated" - }, - "settings": "Admin Settings", - "resend": { - "title": "Resend (Consigliato)", - "description": "Invia email tramite l'API Resend. Ha priorità su SMTP se configurato.", - "apiKey": "Chiave API Resend", - "apiKeyHint": "Ottieni la tua chiave API da resend.com. Utilizzata per le notifiche degli agent e il ripristino della password.", - "saveSettings": "Salva impostazioni Resend", - "updateSuccess": "Impostazioni Resend aggiornate", - "updateFailed": "Aggiornamento impostazioni Resend fallito", - "configured": "Resend è configurato e attivo" - }, - "email": { - "title": "Configurazione Email", - "description": "Configura l'invio di email per le notifiche degli agent e il ripristino della password.", - "provider": "Provider Email", - "saveSettings": "Salva impostazioni email" - }, - "smtp": { - "description": "Configure email server for password resets.", - "forceSSL": "Force SSL/TLS (usually for port 465)", - "fromEmail": "From Email", - "host": "Host", - "ignoreCertErrors": "Ignore Certificate Errors (Self-hosted/Dev only)", - "password": "Password", - "port": "Port", - "saveSettings": "Save SMTP Settings", - "sending": "Sending...", - "testEmail": "Test Email", - "testFailed": "Failed: {error}", - "testSuccess": "Test email sent successfully!", - "title": "SMTP Configuration", - "updateFailed": "Failed to update SMTP settings", - "updateSuccess": "SMTP Settings updated", - "username": "Username" - }, - "title": "Admin Dashboard", - "userManagement": "User Management", - "users": { - "addUser": "Add User", - "confirmDelete": "Sei sicuro di voler eliminare questo utente?", - "createFailed": "Failed to create user", - "createSuccess": "User created successfully", - "createUser": "Create User", - "createUserDescription": "Add a new user to the system.", - "deleteFailed": "Failed to delete", - "deleteSuccess": "User deleted", - "demote": "Declassa", - "email": "Email", - "name": "Name", - "password": "Password", - "promote": "Promuovi", - "role": "Role", - "roleUpdateFailed": "Failed to update role", - "roleUpdateSuccess": "User role updated to {role}", - "roles": { - "admin": "Amministratore", - "user": "Utente" - }, - "table": { - "actions": "Actions", - "createdAt": "Created At", - "email": "Email", - "name": "Name", - "role": "Role" - }, - "title": "Utenti", - "description": "Gestisci utenti e permessi" - }, - "chat": "AI Chat", - "lab": "The Lab", - "agents": "Agents", - "workspace": "Workspace", - "sidebar": { - "dashboard": "Dashboard", - "users": "Utenti", - "aiManagement": "Gestione IA", - "chat": "Chat IA", - "lab": "Il Lab (Idee)", - "agents": "Agenti", - "settings": "Impostazioni" - }, - "metrics": { - "vsLastPeriod": "vs periodo precedente" - }, - "tools": { - "title": "Strumenti Agente", - "description": "Configura strumenti esterni per l'uso da parte degli agenti: ricerca web, scraping web e accesso API.", - "searchProvider": "Provider Ricerca Web", - "searxng": "SearXNG (Self-hosted)", - "brave": "Brave Search API", - "both": "Entrambi (SearXNG primario, Brave fallback)", - "searxngUrl": "URL SearXNG", - "braveKey": "Chiave Brave Search API", - "jinaKey": "Chiave Jina Reader API", - "jinaKeyOptional": "Opzionale — funziona senza ma con limiti di velocità", - "jinaKeyDescription": "Utilizzato per lo scraping web. Funziona senza chiave ma con limiti di velocità.", - "saveSettings": "Salva Impostazioni Strumenti", - "updateSuccess": "Impostazioni strumenti aggiornate con successo", - "updateFailed": "Impossibile aggiornare le impostazioni strumenti", - "testing": "Test in corso...", - "testSearch": "Test ricerca web" - }, - "settingsDescription": "Configura le impostazioni dell applicazione", - "dashboard": { - "title": "Dashboard", - "description": "Panoramica delle metriche", - "recentActivity": "Attività recenti", - "recentActivityPlaceholder": "Le attività recenti verranno visualizzate qui." - }, - "error": { - "title": "Errore nel pannello admin", - "description": "Rendering pagina fallito. Puoi riprovare.", - "retry": "Riprova" - } + "sidebar": { + "notes": "Notes", + "reminders": "Reminders", + "labels": "Labels", + "editLabels": "Edit labels", + "newNoteTabs": "Nuova nota", + "newNoteTabsHint": "Crea nota in questo quaderno", + "noLabelsInNotebook": "Nessuna etichetta in questo quaderno", + "archive": "Archive", + "trash": "Trash", + "clearFilter": "Remove filter" + }, + "notes": { + "title": "Note", + "newNote": "Nuova nota", + "untitled": "Senza titolo", + "placeholder": "Scrivi una nota...", + "markdownPlaceholder": "Scrivi una nota... (Markdown supportato)", + "titlePlaceholder": "Titolo", + "listItem": "Elemento elenco", + "addListItem": "+ Elemento elenco", + "newChecklist": "Nuova checklist", + "add": "Aggiungi", + "adding": "Aggiunta in corso...", + "close": "Chiudi", + "confirmDelete": "Sei sicuro di voler eliminare questa nota?", + "confirmLeaveShare": "Sei sicuro di voler abbandonare questa nota condivisa?", + "sharedBy": "Condivisa da", + "leaveShare": "Abbandona", + "delete": "Elimina", + "archive": "Archivia", + "unarchive": "Rimuovi dall’archivio", + "pin": "Fissa", + "unpin": "Rimuovi fissaggio", + "color": "Colore", + "changeColor": "Cambia colore", + "setReminder": "Imposta promemoria", + "setReminderButton": "Imposta promemoria", + "date": "Data", + "time": "Ora", + "reminderDateTimeRequired": "Inserisci data e ora", + "invalidDateTime": "Data o ora non valide", + "reminderMustBeFuture": "Il promemoria deve essere nel futuro", + "reminderSet": "Promemoria impostato per {datetime}", + "reminderPastError": "Il promemoria deve essere nel futuro", + "reminderRemoved": "Promemoria rimosso", + "addImage": "Aggiungi immagine", + "addLink": "Aggiungi link", + "linkAdded": "Link aggiunto", + "linkMetadataFailed": "Impossibile recuperare i metadati del link", + "linkAddFailed": "Aggiunta del link non riuscita", + "invalidFileType": "Tipo di file non valido: {fileName}. Sono consentiti solo JPEG, PNG, GIF e WebP.", + "fileTooLarge": "File troppo grande: {fileName}. La dimensione massima è {maxSize}.", + "uploadFailed": "Caricamento non riuscito: {filename}", + "contentOrMediaRequired": "Inserisci del contenuto o aggiungi un link/immagine", + "itemOrMediaRequired": "Aggiungi almeno un elemento o un contenuto multimediale", + "noteCreated": "Nota creata con successo", + "noteCreateFailed": "Creazione della nota non riuscita", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "aiAssistant": "Assistente AI", + "changeSize": "Cambia dimensione", + "backgroundOptions": "Opzioni di sfondo", + "moreOptions": "Altre opzioni", + "remindMe": "Ricordamelo", + "markdownMode": "Markdown", + "addCollaborators": "Aggiungi collaboratori", + "duplicate": "Duplica", + "share": "Condividi", + "showCollaborators": "Mostra collaboratori", + "pinned": "Fissate", + "others": "Altre", + "noNotes": "Nessuna nota", + "noNotesFound": "Nessuna nota trovata", + "createFirstNote": "Crea la tua prima nota", + "size": "Dimensione", + "small": "Piccola", + "medium": "Media", + "large": "Grande", + "shareWithCollaborators": "Condividi con collaboratori", + "view": "Visualizza nota", + "edit": "Modifica nota", + "readOnly": "Sola lettura", + "preview": "Anteprima", + "noContent": "Nessun contenuto", + "takeNote": "Scrivi una nota...", + "takeNoteMarkdown": "Scrivi una nota... (Markdown supportato)", + "addItem": "Aggiungi elemento", + "sharedReadOnly": "Questa nota è condivisa con te in modalità sola lettura", + "makeCopy": "Crea una copia", + "saving": "Salvataggio in corso...", + "copySuccess": "Nota copiata con successo!", + "copyFailed": "Copia della nota non riuscita", + "copy": "Copia", + "markdownOn": "Markdown ATTIVO", + "markdownOff": "Markdown DISATTIVATO", + "undo": "Annulla", + "redo": "Ripeti", + "pinnedNotes": "Note fissate", + "recent": "Recenti", + "addNote": "Aggiungi nota", + "remove": "Remove", + "dragToReorder": "Trascina per riordinare", + "more": "Altro", + "emptyState": "Nessuna nota qui", + "emptyStateTabs": "Nessuna nota in questa vista. Usa \"Nuova nota\" nella barra laterale (suggerimenti titolo IA nel compositore).", + "inNotebook": "Nel notebook", + "moveFailed": "Spostamento non riuscito", + "clarifyFailed": "Chiarimento non riuscito", + "shortenFailed": "Accorciamento non riuscito", + "improveFailed": "Miglioramento non riuscito", + "transformFailed": "Trasformazione non riuscita", + "markdown": "Markdown", + "unpinned": "Non fissato", + "redoShortcut": "Ripeti (Ctrl+Y)", + "undoShortcut": "Annulla (Ctrl+Z)", + "viewCards": "Vista schede", + "viewCardsTooltip": "Griglia di schede con riordino tramite trascinamento", + "viewTabs": "Vista elenco", + "viewTabsTooltip": "Schede in alto, nota sotto — trascina per riordinare", + "viewModeGroup": "Modalità di visualizzazione note", + "reorderTabs": "Riordina scheda", + "modified": "Modificata", + "created": "Creata", + "loading": "Caricamento...", + "exportPDF": "Esporta PDF", + "savedStatus": "Salvato", + "dirtyStatus": "Modificato", + "completedLabel": "Completati", + "notes.emptyNotebook": "Quaderno vuoto", + "notes.emptyNotebookDesc": "Questo quaderno non ha note. Clicca + per crearne una.", + "notes.noNoteSelected": "Nessuna nota selezionata", + "notes.selectOrCreateNote": "Seleziona una nota dalla lista o creane una nuova.", + "commitVersion": "Salva versione", + "versionSaved": "Versione salvata", + "deleteVersion": "Elimina questa versione", + "versionDeleted": "Versione eliminata", + "deleteVersionConfirm": "Eliminare questa versione definitivamente?", + "historyMode": "Modalità cronologia", + "historyModeManual": "Manuale (pulsante commit)", + "historyModeAuto": "Automatico (intelligente)", + "historyModeManualDesc": "Crea snapshot manualmente con il pulsante commit", + "historyModeAutoDesc": "Snapshot automatici con rilevamento intelligente", + "history": "Cronologia", + "historyRestored": "Versione ripristinata", + "historyEnabled": "Cronologia attivata", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "La cronologia è disattivata per il tuo account.", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "Attiva cronologia", + "historyEmpty": "Nessuna versione disponibile", + "historySelectVersion": "Seleziona una versione per visualizzarne l'anteprima", + "sortBy": "Ordina per", + "sortDateDesc": "Data (recente)", + "sortDateAsc": "Data (meno recente)", + "sortTitleAsc": "Titolo A → Z", + "sortTitleDesc": "Titolo Z → A", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "pagination": { + "previous": "←", + "pageInfo": "Pagina {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} etichette", + "noLabels": "Nessuna etichetta", + "confirmDeleteShort": "Confermare?", + "labelRemoved": "Etichetta \"{label}\" rimossa" + }, + "search": { + "placeholder": "Cerca", + "searchPlaceholder": "Cerca nelle tue note...", + "semanticInProgress": "Ricerca AI in corso...", + "semanticTooltip": "Ricerca semantica AI", + "searching": "Ricerca in corso...", + "noResults": "Nessun risultato trovato", + "resultsFound": "{count} note trovate", + "exactMatch": "Corrispondenza esatta", + "related": "Correlate", + "disabledAdmin": "Ricerca disabilitata in modalità admin" + }, + "collaboration": { + "emailPlaceholder": "Inserisci indirizzo email", + "addCollaborator": "Aggiungi collaboratore", + "removeCollaborator": "Rimuovi collaboratore", + "owner": "Proprietario", + "canEdit": "Può modificare", + "canView": "Può visualizzare", + "shareNote": "Condividi nota", + "shareWithCollaborators": "Condividi con collaboratori", + "addCollaboratorDescription": "Aggiungi persone per collaborare a questa nota tramite il loro indirizzo email.", + "viewerDescription": "Hai accesso a questa nota. Solo il proprietario può gestire i collaboratori.", + "emailAddress": "Indirizzo email", + "enterEmailAddress": "Inserisci indirizzo email", + "invite": "Invita", + "peopleWithAccess": "Persone con accesso", + "noCollaborators": "Nessun collaboratore. Aggiungine uno sopra!", + "noCollaboratorsViewer": "Nessun collaboratore.", + "pendingInvite": "Invito in sospeso", + "pending": "In sospeso", + "remove": "Rimuovi", + "unnamedUser": "Utente senza nome", + "done": "Fatto", + "willBeAdded": "{email} sarà aggiunto come collaboratore quando la nota verrà creata", + "alreadyInList": "Questa email è già nella lista", + "nowHasAccess": "{name} ora ha accesso a questa nota", + "accessRevoked": "L’accesso è stato revocato", + "errorLoading": "Errore nel caricamento dei collaboratori", + "failedToAdd": "Impossibile aggiungere il collaboratore", + "failedToRemove": "Impossibile rimuovere il collaboratore" }, "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": { - "analyzing": "Analisi delle tue note per suggerimenti etichette...", - "create": "Crea", - "createNewLabel": "Crea nuova etichetta", - "created": "{count} etichette create con successo", - "creating": "Creazione etichette...", - "description": "Ho rilevato temi ricorrenti in \"{notebookName}\" ({totalNotes} note). Creare etichette per essi?", "error": "Failed to fetch label suggestions", - "new": "(nuovo)", "noLabelsSelected": "No labels selected", + "created": "{count} etichette create con successo", + "analyzing": "Analisi delle tue note per suggerimenti etichette...", + "title": "Suggerimenti Etichette", + "description": "Ho rilevato temi ricorrenti in \"{notebookName}\" ({totalNotes} note). Creare etichette per essi?", "note": "note", "notes": "notes", - "title": "Suggerimenti Etichette", "typeContent": "Type content to get label suggestions...", - "typeForSuggestions": "Digita per suggerimenti", - "notesCount": "{count} note" + "createNewLabel": "Crea nuova etichetta", + "new": "(nuovo)", + "create": "Crea", + "creating": "Creazione etichette...", + "notesCount": "{count} note", + "typeForSuggestions": "Digita per suggerimenti" }, "batchOrganization": { - "analyzing": "Analyzing your notes...", - "apply": "Apply", - "applyFailed": "Applicazione non riuscita", - "applying": "Applying...", + "title": "Organizzazione batch", "description": "L'IA analizzerà le tue note e suggerirà di organizzarle in quaderni.", - "error": "Errore nell'organizzazione", + "analyzing": "Analyzing your notes...", "noNotebooks": "No notebooks available. Create notebooks first to organize your notes.", - "noNotesSelected": "Nessuna nota selezionata", "noSuggestions": "AI could not find a good way to organize these notes.", - "selectAllIn": "Seleziona tutto in", - "selectNote": "Seleziona nota", + "apply": "Apply", + "applying": "Applying...", "success": "Organizzazione completata", - "title": "Organizzazione batch" + "error": "Errore nell'organizzazione", + "noNotesSelected": "Nessuna nota selezionata", + "applyFailed": "Applicazione non riuscita", + "selectAllIn": "Seleziona tutto in", + "selectNote": "Seleziona nota" }, - "clarify": "Clarify", - "clickToAddTag": "Click to add this tag", - "generateTitles": "Generate titles", - "generateTitlesTooltip": "Generate titles with AI", - "generating": "Generating...", - "generatingTitles": "Generating titles...", - "ignoreSuggestion": "Ignore this suggestion", - "improveStyle": "Improve style", - "languageDetected": "Language detected", "notebookSummary": { "regenerate": "Rigenera Riassunto", "regenerating": "Rigenerazione riassunto...", "exportPDF": "Esporta come PDF" }, - "original": "Original", - "poweredByAI": "Powered by AI", - "processing": "Processing...", - "reformulateText": "Reformulate text", - "reformulated": "Reformulated", - "reformulating": "Reformulating...", - "reformulationApplied": "Reformulated text applied!", - "reformulationComparison": "Reformulation Comparison", - "reformulationError": "Error during reformulation", - "reformulationFailed": "Failed to reformulate text", - "reformulationMaxWords": "Text must have maximum 500 words", - "reformulationMinWords": "Text must have at least 10 words (current: {count} words)", - "reformulationNoText": "Please select text or add content", - "reformulationSelectionTooShort": "Selection too short, using full content", - "shorten": "Shorten", - "tagAdded": "Tag \"{tag}\" added", - "titleApplied": "Title applied!", - "titleGenerateWithAI": "Generate titles with AI", - "titleGenerating": "Generating...", - "titleGenerationError": "Error generating titles", - "titleGenerationFailed": "Failed to generate titles", - "titleGenerationMinWords": "Content must have at least 10 words to generate titles (current: {count} words)", - "titlesGenerated": "💡 {count} titles generated!", - "transformError": "Error during transformation", - "transformMarkdown": "Transform to Markdown", - "transformSuccess": "Text transformed to Markdown successfully!", - "transforming": "Transforming...", "clarifyDesc": "Rendere il testo più chiaro e comprensibile", "shortenDesc": "Riassumere il testo e andare al sodo", "improve": "Migliora scrittura", @@ -389,11 +405,14 @@ "transformationsDesc": "Trasformazioni — applicate direttamente alla nota", "writeMinWordsAction": "Scrivi almeno 5 parole per attivare le azioni IA.", "processingAction": "Elaborazione...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "Chiarire", "shorten": "Accorciare", "improve": "Migliorare", - "toMarkdown": "In Markdown" + "toMarkdown": "In Markdown", + "describeImages": "Describe images" }, "openAssistant": "Apri assistente IA", "poweredByMomento": "Offerto da Momento AI", @@ -408,348 +427,59 @@ "historyTab": "Cronologia", "insightsTab": "Approfondimenti", "aiCopilot": "Copilot IA", - "suggestTitle": "Suggerimento titolo IA" + "suggestTitle": "Suggerimento titolo IA", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" }, - "aiSettings": { - "description": "Configura le funzionalità AI e le preferenze", - "error": "Aggiornamento dell'impostazione non riuscito", - "features": "Funzionalità AI", - "frequency": "Frequenza", - "frequencyDaily": "Giornaliera", - "frequencyWeekly": "Settimanale", - "provider": "Provider AI", - "providerAuto": "Automatico (Consigliato)", - "providerOllama": "Ollama (Locale)", - "providerOpenAI": "OpenAI (Cloud)", - "saved": "Impostazione aggiornata", - "saving": "Salvataggio in corso...", - "title": "Impostazioni AI", - "titleSuggestionsDesc": "Suggerisci titoli per note senza titolo dopo 50+ parole", - "paragraphRefactorDesc": "Opzioni di miglioramento del testo basate sull'AI", - "frequencyDesc": "Frequenza di analisi delle connessioni tra note", - "providerDesc": "Scegli il tuo provider AI preferito", - "providerAutoDesc": "Ollama se disponibile, altrimenti OpenAI", - "providerOllamaDesc": "100% privato, viene eseguito localmente sul tuo dispositivo", - "providerOpenAIDesc": "Più preciso, richiede chiave API" + "titleSuggestions": { + "available": "Suggerimenti titolo", + "title": "Suggerimenti AI", + "generating": "Generazione in corso...", + "selectTitle": "Seleziona un titolo", + "dismiss": "Ignora" }, - "appearance": { - "description": "Personalizza l'aspetto dell'app", - "title": "Aspetto", - "notesViewDescription": "Scegli come mostrare le note nella home e nei quaderni.", - "notesViewLabel": "Vista note", - "notesViewTabs": "Schede (stile OneNote)", - "notesViewMasonry": "Schede (griglia)" + "semanticSearch": { + "exactMatch": "Corrispondenza esatta", + "related": "Correlate", + "searching": "Ricerca in corso..." }, - "auth": { - "backToLogin": "Torna al login", - "checkYourEmail": "Controlla la tua email", - "createAccount": "Crea il tuo account", - "email": "Email", - "emailPlaceholder": "Inserisci il tuo indirizzo email", - "forgotPassword": "Password dimenticata?", - "forgotPasswordDescription": "Inserisci il tuo indirizzo email e ti invieremo un link per reimpostare la password.", - "forgotPasswordTitle": "Password dimenticata", - "hasAccount": "Hai già un account?", - "name": "Nome", - "namePlaceholder": "Inserisci il tuo nome", - "noAccount": "Non hai un account?", - "orContinueWith": "Oppure continua con", - "password": "Password", - "passwordMinChars": "Inserisci la password (minimo 6 caratteri)", - "passwordPlaceholder": "Inserisci la tua password", - "rememberMe": "Ricordami", - "resetEmailSent": "Se esiste nel nostro sistema, abbiamo inviato un link per la reimpostazione della password al tuo indirizzo email.", - "resetPassword": "Reimposta password", - "resetPasswordInstructions": "Inserisci la tua email per reimpostare la password", - "returnToLogin": "Torna al login", - "sendResetLink": "Invia link di reimpostazione", - "sending": "Invio in corso...", - "signIn": "Accedi", - "signInToAccount": "Accedi al tuo account", - "signOut": "Sign out", - "signUp": "Registrati", - "confirmPassword": "Conferma password", - "confirmPasswordPlaceholder": "Conferma la tua password" - }, - "autoLabels": { - "aiPowered": "Alimentato da AI", - "analyzing": "Analyzing your notes...", - "applySuggested": "Applica suggerite", - "autoLabelBatchDescription": "Aggiungi automaticamente etichette per le note selezionate", - "autoLabelDescription": "Aggiungi automaticamente etichette basate sull'analisi AI", - "autoLabelNoteDescription": "Aggiungi automaticamente etichette per questa nota", - "confidence": "Fiducia: {score}%", - "contentAnalysis": "Analisi contenuto", - "createNewLabel": "Create this new label and add it", - "created": "{count} labels created successfully", - "description": "I've detected recurring themes in \"{notebookName}\" ({totalNotes} notes). Create labels for them?", - "disabled": "Disattivato", - "dismissAll": "Ignora tutto", - "enabled": "Attivato", - "error": "Errore auto etichette", - "generateMore": "Genera di più", - "keywordExtraction": "Estrazione parole chiave", - "labelCategories": "Categorie etichette", - "labelCategoriesDescription": "Seleziona categorie per auto etichettatura", - "labelsApplied": "Etichette applicate", - "learnMore": "Scopri di più", - "maxLabels": "Massimo etichette per nota", - "maxLabelsDescription": "Numero massimo di etichette per nota", - "minConfidence": "Minima fiducia", - "minConfidenceDescription": "Punteggio minimo (0-100) per suggerimenti AI", - "new": "(new)", - "noLabelsGenerated": "Nessuna etichetta generata", - "noLabelsSelected": "No labels selected", - "note": "note", - "notes": "notes", - "processing": "Elaborazione in corso...", - "saveSettings": "Salva impostazioni", - "settings": "Impostazioni", - "settingsDescription": "Configura preferenze auto etichette", - "settingsDialogTitle": "Impostazioni auto etichette", - "settingsSaved": "Impostazioni salvate", - "smartTagging": "Smart tagging", - "suggestedLabels": "Etichette suggerite", - "title": "Auto etichette", - "toggle": "Attiva auto etichette", - "typeContent": "Type content to get label suggestions..." - }, - "batch": { - "organize": "Organizza", - "organizeWithAI": "Organizza con AI" - }, - "batchOrganization": { - "addCategories": "Aggiungi categorie", - "addTags": "Aggiungi tag", - "analyzing": "Analyzing your notes...", - "apply": "Apply ({count})", - "applyChanges": "Applica modifiche", - "applying": "Applying...", - "backToNote": "Torna alla nota", - "categories": "Categorie", - "categorized": "Categorizzate: {count}", - "close": "Chiudi", - "confidence": "confidence", - "description": "AI will analyze your notes and suggest organizing them into notebooks.", - "done": "Fatto", - "error": "Errore nella creazione del piano di organizzazione", - "finished": "Organizzazione completata!", - "noNotebooks": "No notebooks available. Create notebooks first to organize your notes.", - "noNotesSelected": "Nessuna nota selezionata", - "noSuggestions": "AI could not find a good way to organize these notes.", - "noTagsAdded": "Nessun tag aggiunto", - "notesToOrganize": "{count} notes to organize", - "organizing": "Organizzazione in corso...", - "results": "Risultati", - "reviewChanges": "Rivedi modifiche", - "selectNotes": "Seleziona note da organizzare", - "selected": "{count} selected", - "skip": "Salta", - "start": "Avvia organizzazione", - "suggestedCategories": "Categorie suggerite", - "suggestedTags": "Tag suggeriti", - "tagsAdded": "Tag aggiunti: {count}", - "title": "Organizzazione batch", - "totalProcessed": "Elaborate: {total}", - "unorganized": "{count} notes couldn't be categorized and will stay in General Notes." - }, - "collaboration": { - "accessRevoked": "L’accesso è stato revocato", - "addCollaborator": "Aggiungi collaboratore", - "addCollaboratorDescription": "Aggiungi persone per collaborare a questa nota tramite il loro indirizzo email.", - "alreadyInList": "Questa email è già nella lista", - "canEdit": "Può modificare", - "canView": "Può visualizzare", - "done": "Fatto", - "emailAddress": "Indirizzo email", - "emailPlaceholder": "Inserisci indirizzo email", - "enterEmailAddress": "Inserisci indirizzo email", - "errorLoading": "Errore nel caricamento dei collaboratori", - "failedToAdd": "Impossibile aggiungere il collaboratore", - "failedToRemove": "Impossibile rimuovere il collaboratore", - "invite": "Invita", - "noCollaborators": "Nessun collaboratore. Aggiungine uno sopra!", - "noCollaboratorsViewer": "Nessun collaboratore.", - "nowHasAccess": "{name} ora ha accesso a questa nota", - "owner": "Proprietario", - "pending": "In sospeso", - "pendingInvite": "Invito in sospeso", - "peopleWithAccess": "Persone con accesso", - "remove": "Rimuovi", - "removeCollaborator": "Rimuovi collaboratore", - "shareNote": "Condividi nota", - "shareWithCollaborators": "Condividi con collaboratori", - "unnamedUser": "Utente senza nome", - "viewerDescription": "Hai accesso a questa nota. Solo il proprietario può gestire i collaboratori.", - "willBeAdded": "{email} sarà aggiunto come collaboratore quando la nota verrà creata" - }, - "colors": { - "blue": "Blu", - "default": "Predefinito", - "gray": "Grigio", - "green": "Verde", - "orange": "Arancione", - "pink": "Rosa", - "purple": "Viola", - "red": "Rosso", - "yellow": "Giallo" - }, - "common": { - "add": "Aggiungi", - "cancel": "Annulla", - "close": "Chiudi", - "confirm": "Conferma", - "delete": "Elimina", - "edit": "Modifica", - "error": "Errore", - "loading": "Caricamento...", - "noResults": "Nessun risultato", - "notAvailable": "Non disponibile", - "optional": "Opzionale", - "remove": "Rimuovi", - "required": "Obbligatorio", - "save": "Salva", - "search": "Cerca", - "success": "Successo", - "unknown": "Sconosciuto" - }, - "connection": { - "clickToView": "Clicca per visualizzare la nota", - "helpful": "Utile", - "isHelpful": "Questa connessione è utile?", - "memoryEchoDiscovery": "Scoperta Memory Echo", - "notHelpful": "Non utile", - "similarityInfo": "Queste note sono collegate da {similarity}% di similarità" - }, - "dataManagement": { - "cleanup": { - "button": "Cleanup", - "description": "Remove labels and connections that reference deleted notes.", - "failed": "Error during cleanup", - "title": "Cleanup Orphaned Data" - }, - "cleanupComplete": "Pulizia completata", - "cleanupError": "Errore nella pulizia", - "dangerZone": "Zona pericolosa", - "dangerZoneDescription": "Queste azioni sono irreversibili", - "delete": { - "button": "Delete All Notes", - "confirm": "Are you sure? This will permanently delete all your notes.", - "description": "Permanently delete all your notes. This action cannot be undone.", - "failed": "Failed to delete notes", - "success": "All notes deleted", - "title": "Delete All Notes" - }, - "deleting": "Eliminazione in corso...", - "export": { - "button": "Export Notes", - "description": "Download all your notes as a JSON file. This includes all content, labels, and metadata.", - "failed": "Failed to export notes", - "success": "Notes exported successfully", - "title": "Export All Notes" - }, - "exporting": "Esportazione in corso...", - "import": { - "button": "Import Notes", - "description": "Upload a JSON file to import notes. This will add to your existing notes, not replace them.", - "failed": "Failed to import notes", - "success": "Imported {count} notes", - "title": "Import Notes" - }, - "importing": "Importazione in corso...", - "indexing": { - "button": "Rebuild Index", - "description": "Regenerate embeddings for all notes to improve semantic search.", - "failed": "Error during indexing", - "success": "Indexing complete: {count} notes processed", - "title": "Rebuild Search Index" - }, - "indexingComplete": "Indicizzazione completata", - "indexingError": "Errore nell'indicizzazione", - "title": "Data Management", - "toolsDescription": "Tools to maintain your database health" - }, - "demoMode": { - "activated": "Modalità demo attivata! Memory Echo funzionerà istantaneamente.", - "createNotesTip": "Crea 2+ note simili e vedi Memory Echo in azione!", - "deactivated": "Modalità demo disattivata. Parametri normali ripristinati.", - "delayBetweenNotes": "Ritardo di 0 giorni tra le note (normalmente 7 giorni)", - "description": "Accelera Memory Echo per i test. Le connessioni appaiono istantaneamente.", - "parametersActive": "Parametri demo attivi:", - "similarityThreshold": "Soglia di similarità del 50% (normalmente 75%)", - "title": "Modalità demo", - "toggleFailed": "Impossibile attivare/disattivare la modalità demo", - "unlimitedInsights": "Insight illimitati (nessun limite di frequenza)" - }, - "diagnostics": { - "apiStatus": "Stato API", - "checking": "Checking...", - "configuredProvider": "Provider configurato", - "description": "Check your AI provider connection status", - "errorStatus": "Error", - "operational": "Operational", - "testDetails": "Dettagli test:", - "tip1": "Assicurati che Ollama sia in esecuzione (ollama serve)", - "tip2": "Verifica che il modello sia installato (ollama pull llama3)", - "tip3": "Verifica la tua chiave API per OpenAI", - "tip4": "Controlla la connettività di rete", - "title": "Diagnostica", - "troubleshootingTitle": "Suggerimenti per la risoluzione dei problemi:" - }, - "favorites": { - "noFavorites": "Nessun preferito", - "pinToFavorite": "Aggiungi ai preferiti", - "title": "Preferiti", - "toggleSection": "Attiva/disattiva sezione" - }, - "footer": { - "openSource": "Clone open source", - "privacy": "Privacy", - "terms": "Termini" - }, - "general": { - "add": "Aggiungi", - "apply": "Applica", - "back": "Indietro", - "cancel": "Annulla", - "clean": "Clean", - "clear": "Cancella", - "close": "Chiudi", - "confirm": "Conferma", - "edit": "Modifica", - "error": "Si è verificato un errore", - "indexAll": "Index All", - "loading": "Caricamento...", - "next": "Avanti", - "operationFailed": "Operazione non riuscita", - "operationSuccess": "Operazione completata", - "preview": "Anteprima", - "previous": "Precedente", - "reset": "Reimposta", - "save": "Salva", - "select": "Seleziona", - "submit": "Invia", - "testConnection": "Test Connection", - "tryAgain": "Riprova" - }, - "generalSettings": { - "description": "Impostazioni generali dell'applicazione", - "title": "Impostazioni generali" - }, - "labels": { - "addLabel": "Add label", - "allLabels": "All Labels", - "changeColor": "Change Color", - "changeColorTooltip": "Change color", - "clearAll": "Clear all", - "confirmDelete": "Are you sure you want to delete this label?", - "count": "{count} etichette", - "noLabels": "Nessuna etichetta", - "confirmDeleteShort": "Confermare?", - "labelRemoved": "Etichetta \"{label}\" rimossa" + "paragraphRefactor": { + "title": "Miglioramento del testo", + "shorten": "Accorcia", + "expand": "Espandi", + "improve": "Migliora", + "formal": "Formale", + "casual": "Informale" }, "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}% corrispondenza", + "fused": "Fuso", "clickToView": "Clicca per visualizzare", + "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": "Errore" + }, "comparison": { "title": "💡 Confronto note", "similarityInfo": "Queste note sono collegate da {similarity}% di similarità", @@ -760,12 +490,6 @@ "helpful": "Utile", "notHelpful": "Non utile" }, - "connection": "connection", - "connections": "Connections", - "connectionsBadge": "{count} connection{plural}", - "dailyInsight": "Daily insight from your notes", - "description": "Proactive connections between your notes", - "dismiss": "Dismiss for now", "editorSection": { "title": "⚡ Note connesse ({count})", "loading": "Caricamento...", @@ -776,7 +500,6 @@ "mergeAll": "Unisci tutto", "close": "Chiudi" }, - "fused": "Fuso", "fusion": { "title": "🔗 Fusione intelligente", "mergeNotes": "Unisci {count} nota/e", @@ -801,468 +524,679 @@ "generateError": "Impossibile generare la fusione", "noContentReturned": "Nessun contenuto di fusione restituito dall'API", "unknownDate": "Data sconosciuta" - }, - "helpful": "Helpful", - "insightReady": "Your insight is ready!", - "notHelpful": "Not Helpful", - "overlay": { - "error": "Errore", - "loading": "Loading...", - "noConnections": "No connections found", - "searchPlaceholder": "Search connections...", - "sortBy": "Sort by:", - "sortOldest": "Oldest", - "sortRecent": "Recent", - "sortSimilarity": "Similarity", - "title": "Connected Notes", - "viewAll": "View all side by side" - }, - "thanksFeedback": "Thanks for your feedback!", - "thanksFeedbackImproving": "Thanks! We'll use this to improve.", - "title": "I noticed something...", - "viewConnection": "View Connection", - "match": "{percentage}% corrispondenza" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "ha condiviso \"{title}\"", + "untitled": "Senza titolo", + "notifications": "Notifiche", + "declined": "Condivisione rifiutata", + "removed": "Nota rimossa dalla lista" }, "nav": { - "accountSettings": "Impostazioni account", - "adminDashboard": "Dashboard amministratore", - "aiSettings": "Impostazioni AI", - "archive": "Archivio", - "buyMeACoffee": "Offrimi un caffè", - "configureAI": "Configura le funzionalità AI, il provider e le preferenze", - "diagnostics": "Diagnostica", - "donateOnKofi": "Dona su Ko-fi", - "donationDescription": "Fai una donazione una tantum o diventa un sostenitore mensile.", - "donationNote": "Nessuna commissione • Pagamenti immediati • Sicuro", - "favorites": "Preferiti", - "generalNotes": "General Notes", "home": "Home", - "login": "Login", - "logout": "Logout", - "manageAISettings": "Gestisci impostazioni AI", - "myLibrary": "La mia libreria", - "notebooks": "Notebooks", "notes": "Note", - "proPlan": "Piano Pro", - "profile": "Profilo", - "quickAccess": "Accesso rapido", - "recent": "Recenti", - "reminders": "Promemoria", + "notebooks": "Notebooks", + "generalNotes": "General Notes", + "archive": "Archivio", "settings": "Impostazioni", - "sponsorDescription": "Diventa uno sponsor mensile e ricevi riconoscimento.", - "sponsorOnGithub": "Sponsorizza su GitHub", - "support": "Supporta Memento ☕", - "supportDescription": "Memento è 100% gratuito e open-source. Il tuo supporto aiuta a mantenerlo tale.", - "supportDevelopment": "Supporta lo sviluppo di Memento ☕", + "profile": "Profilo", + "aiSettings": "Impostazioni AI", + "logout": "Logout", + "login": "Login", + "adminDashboard": "Dashboard amministratore", + "diagnostics": "Diagnostica", "trash": "Cestino", + "support": "Supporta Memento ☕", + "reminders": "Promemoria", "userManagement": "Gestione utenti", + "accountSettings": "Impostazioni account", + "manageAISettings": "Gestisci impostazioni AI", + "configureAI": "Configura le funzionalità AI, il provider e le preferenze", + "supportDevelopment": "Supporta lo sviluppo di Memento ☕", + "supportDescription": "Memento è 100% gratuito e open-source. Il tuo supporto aiuta a mantenerlo tale.", + "buyMeACoffee": "Offrimi un caffè", + "donationDescription": "Fai una donazione una tantum o diventa un sostenitore mensile.", + "donateOnKofi": "Dona su Ko-fi", + "donationNote": "Nessuna commissione • Pagamenti immediati • Sicuro", + "sponsorOnGithub": "Sponsorizza su GitHub", + "sponsorDescription": "Diventa uno sponsor mensile e ricevi riconoscimento.", "workspace": "Area di lavoro", + "quickAccess": "Accesso rapido", + "myLibrary": "La mia libreria", + "favorites": "Preferiti", + "recent": "Recenti", + "proPlan": "Piano Pro", "chat": "Chat IA", "lab": "Il Lab", "agents": "Agenti" }, - "notebook": { - "cancel": "Annulla", - "create": "Crea notebook", - "createDescription": "Avvia una nuova raccolta per organizzare note, idee e progetti in modo efficiente.", - "createNew": "Crea nuovo notebook", - "creating": "Creazione...", - "delete": "Elimina notebook", - "deleteConfirm": "Elimina", - "deleteWarning": "Sei sicuro di voler eliminare questo notebook? Le note verranno spostate in Note generali.", - "edit": "Modifica notebook", - "editDescription": "Cambia nome, icona e colore del tuo notebook.", - "generating": "Generazione riepilogo...", - "labels": "Labels:", - "name": "Nome del notebook", - "noLabels": "No labels", - "selectColor": "Colore", - "selectIcon": "Icona", - "summary": "Riepilogo notebook", - "summaryDescription": "Genera un riepilogo basato su IA di tutte le note in questo notebook.", - "summaryError": "Errore nella generazione del riepilogo", - "namePlaceholder": "es. Strategia Marketing Q4", - "myNotebook": "Il mio quaderno", - "saving": "Salvataggio...", - "pdfTitle": "Riepilogo — {name}", - "pdfNotesLabel": "Note:", - "pdfGeneratedOn": "Generato il:", - "confidence": "confidenza", - "savingReminder": "Errore nel salvataggio del promemoria", - "removingReminder": "Errore nella rimozione del promemoria" - }, - "notebookSuggestion": { - "description": "Questa nota sembra appartenere a questo notebook", - "dismiss": "Ignora", - "dismissIn": "Ignora (chiude in {timeLeft}s)", - "generalNotes": "Note generali", - "move": "Sposta", - "moveToNotebook": "Sposta nel notebook", - "title": "Spostare in {name}?" - }, - "notebooks": { - "allNotebooks": "Tutti i notebook", - "create": "Crea notebook", - "createFirst": "Crea il tuo primo notebook", - "noNotebooks": "Nessun notebook" - }, - "notes": { - "add": "Aggiungi", - "addCollaborators": "Aggiungi collaboratori", - "addImage": "Aggiungi immagine", - "addItem": "Aggiungi elemento", - "addLink": "Aggiungi link", - "addListItem": "+ Elemento elenco", - "addNote": "Aggiungi nota", - "adding": "Aggiunta in corso...", - "aiAssistant": "Assistente AI", - "archive": "Archivia", - "backgroundOptions": "Opzioni di sfondo", - "changeColor": "Cambia colore", - "changeSize": "Cambia dimensione", - "clarifyFailed": "Chiarimento non riuscito", - "close": "Chiudi", - "color": "Colore", - "confirmDelete": "Sei sicuro di voler eliminare questa nota?", - "confirmLeaveShare": "Sei sicuro di voler abbandonare questa nota condivisa?", - "contentOrMediaRequired": "Inserisci del contenuto o aggiungi un link/immagine", - "copy": "Copia", - "copyFailed": "Copia della nota non riuscita", - "copySuccess": "Nota copiata con successo!", - "createFirstNote": "Crea la tua prima nota", - "date": "Data", - "delete": "Elimina", - "dragToReorder": "Trascina per riordinare", - "duplicate": "Duplica", - "edit": "Modifica nota", - "emptyState": "Nessuna nota qui", - "fileTooLarge": "File troppo grande: {fileName}. La dimensione massima è {maxSize}.", - "improveFailed": "Miglioramento non riuscito", - "inNotebook": "Nel notebook", - "invalidDateTime": "Data o ora non valide", - "invalidFileType": "Tipo di file non valido: {fileName}. Sono consentiti solo JPEG, PNG, GIF e WebP.", - "itemOrMediaRequired": "Aggiungi almeno un elemento o un contenuto multimediale", - "large": "Grande", - "leaveShare": "Abbandona", - "linkAddFailed": "Aggiunta del link non riuscita", - "linkAdded": "Link aggiunto", - "linkMetadataFailed": "Impossibile recuperare i metadati del link", - "listItem": "Elemento elenco", - "makeCopy": "Crea una copia", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown DISATTIVATO", - "markdownOn": "Markdown ATTIVO", - "markdownPlaceholder": "Scrivi una nota... (Markdown supportato)", - "medium": "Media", - "more": "Altro", - "moreOptions": "Altre opzioni", - "moveFailed": "Spostamento non riuscito", - "newChecklist": "Nuova checklist", - "newNote": "Nuova nota", - "noContent": "Nessun contenuto", - "noNotes": "Nessuna nota", - "noNotesFound": "Nessuna nota trovata", - "noteCreateFailed": "Creazione della nota non riuscita", - "noteCreated": "Nota creata con successo", - "others": "Altre", - "pin": "Fissa", - "pinned": "Fissate", - "pinnedNotes": "Note fissate", - "placeholder": "Scrivi una nota...", - "preview": "Anteprima", - "readOnly": "Sola lettura", - "recent": "Recenti", - "redo": "Ripeti", - "redoShortcut": "Ripeti (Ctrl+Y)", - "remindMe": "Ricordamelo", - "reminderDateTimeRequired": "Inserisci data e ora", - "reminderMustBeFuture": "Il promemoria deve essere nel futuro", - "reminderPastError": "Il promemoria deve essere nel futuro", - "reminderRemoved": "Promemoria rimosso", - "reminderSet": "Promemoria impostato per {datetime}", - "remove": "Remove", - "saving": "Salvataggio in corso...", - "setReminder": "Imposta promemoria", - "setReminderButton": "Imposta promemoria", - "share": "Condividi", - "shareWithCollaborators": "Condividi con collaboratori", - "sharedBy": "Condivisa da", - "sharedReadOnly": "Questa nota è condivisa con te in modalità sola lettura", - "shortenFailed": "Accorciamento non riuscito", - "showCollaborators": "Mostra collaboratori", - "size": "Dimensione", - "small": "Piccola", - "takeNote": "Scrivi una nota...", - "takeNoteMarkdown": "Scrivi una nota... (Markdown supportato)", - "time": "Ora", - "title": "Note", - "titlePlaceholder": "Titolo", - "transformFailed": "Trasformazione non riuscita", - "unarchive": "Rimuovi dall’archivio", - "undo": "Annulla", - "undoShortcut": "Annulla (Ctrl+Z)", - "unpin": "Rimuovi fissaggio", - "unpinned": "Non fissato", - "untitled": "Senza titolo", - "uploadFailed": "Caricamento non riuscito: {filename}", - "view": "Visualizza nota", - "emptyStateTabs": "Nessuna nota in questa vista. Usa \"Nuova nota\" nella barra laterale (suggerimenti titolo IA nel compositore).", - "viewCards": "Vista schede", - "viewCardsTooltip": "Griglia di schede con riordino tramite trascinamento", - "viewTabs": "Vista elenco", - "viewTabsTooltip": "Schede in alto, nota sotto — trascina per riordinare", - "viewModeGroup": "Modalità di visualizzazione note", - "reorderTabs": "Riordina scheda", - "modified": "Modificata", - "created": "Creata", - "loading": "Caricamento...", - "exportPDF": "Esporta PDF", - "savedStatus": "Salvato", - "dirtyStatus": "Modificato", - "completedLabel": "Completati", - "notes.emptyNotebook": "Quaderno vuoto", - "notes.emptyNotebookDesc": "Questo quaderno non ha note. Clicca + per crearne una.", - "notes.noNoteSelected": "Nessuna nota selezionata", - "notes.selectOrCreateNote": "Seleziona una nota dalla lista o creane una nuova.", - "commitVersion": "Salva versione", - "versionSaved": "Versione salvata", - "deleteVersion": "Elimina questa versione", - "versionDeleted": "Versione eliminata", - "deleteVersionConfirm": "Eliminare questa versione definitivamente?", - "historyMode": "Modalità cronologia", - "historyModeManual": "Manuale (pulsante commit)", - "historyModeAuto": "Automatico (intelligente)", - "historyModeManualDesc": "Crea snapshot manualmente con il pulsante commit", - "historyModeAutoDesc": "Snapshot automatici con rilevamento intelligente", - "history": "Cronologia", - "historyRestored": "Versione ripristinata", - "historyEnabled": "Cronologia attivata", - "historyDisabledDesc": "La cronologia è disattivata per il tuo account.", - "enableHistory": "Attiva cronologia", - "historyEmpty": "Nessuna versione disponibile", - "historySelectVersion": "Seleziona una versione per visualizzarne l'anteprima", - "sortBy": "Ordina per", - "sortDateDesc": "Data (recente)", - "sortDateAsc": "Data (meno recente)", - "sortTitleAsc": "Titolo A → Z", - "sortTitleDesc": "Titolo Z → A" - }, - "pagination": { - "next": "→", - "pageInfo": "Pagina {currentPage} / {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "Informale", - "expand": "Espandi", - "formal": "Formale", - "improve": "Migliora", - "shorten": "Accorcia", - "title": "Miglioramento del testo" - }, - "profile": { - "accountSettings": "Impostazioni account", - "autoDetect": "Rilevamento automatico", - "changePassword": "Cambia password", - "changePasswordDescription": "Aggiorna la tua password. È necessaria la password attuale.", - "confirmPassword": "Conferma password", - "currentPassword": "Password attuale", - "description": "Aggiorna le tue informazioni personali", - "displayName": "Nome visualizzato", - "displaySettings": "Impostazioni di visualizzazione", - "displaySettingsDescription": "Personalizza l’aspetto e la dimensione del testo.", - "email": "Email", - "fontSize": "Dimensione carattere", - "fontSizeDescription": "Regola la dimensione del testo per una migliore leggibilità.", - "fontSizeExtraLarge": "Molto grande", - "fontSizeLarge": "Grande", - "fontSizeMedium": "Media", - "fontSizeSmall": "Piccola", - "fontSizeUpdateFailed": "Aggiornamento della dimensione del carattere non riuscito", - "fontSizeUpdateSuccess": "Dimensione del carattere aggiornata", - "languageDescription": "Questa lingua sarà usata per le funzionalità AI, l’analisi dei contenuti e l’interfaccia.", - "languagePreferences": "Preferenze lingua", - "languagePreferencesDescription": "Scegli la lingua preferita per le funzionalità AI e l’interfaccia.", - "languageUpdateFailed": "Aggiornamento della lingua non riuscito", - "languageUpdateSuccess": "Lingua aggiornata con successo", - "manageAISettings": "Gestisci impostazioni AI", - "newPassword": "Nuova password", - "passwordChangeFailed": "Cambio password non riuscito", - "passwordChangeSuccess": "Password cambiata con successo", - "passwordError": "Errore nell’aggiornamento della password", - "passwordUpdated": "Password aggiornata", - "preferredLanguage": "Lingua preferita", - "profileError": "Errore nell’aggiornamento del profilo", - "profileUpdated": "Profilo aggiornato", - "recentNotesUpdateFailed": "Failed to update recent notes setting", - "recentNotesUpdateSuccess": "Recent notes setting updated successfully", - "selectFontSize": "Seleziona dimensione carattere", - "selectLanguage": "Seleziona una lingua", - "showRecentNotes": "Show Recent Notes Section", - "showRecentNotesDescription": "Display recent notes (last 7 days) on the main page", - "title": "Profilo", - "updateFailed": "Aggiornamento del profilo non riuscito", - "updatePassword": "Aggiorna password", - "updateSuccess": "Profilo aggiornato" - }, - "reminder": { - "cancel": "Annulla", - "reminderDate": "Data promemoria", - "reminderTime": "Ora promemoria", - "removeReminder": "Rimuovi promemoria", - "save": "Imposta promemoria", - "setReminder": "Imposta promemoria", - "title": "Promemoria" - }, - "resetPassword": { - "confirmNewPassword": "Conferma nuova password", - "description": "Inserisci la tua nuova password qui sotto.", - "invalidLinkDescription": "Questo link per il reset della password non è valido o è scaduto.", - "invalidLinkTitle": "Link non valido", - "loading": "Caricamento...", - "newPassword": "Nuova password", - "passwordMismatch": "Le password non coincidono", - "requestNewLink": "Richiedi nuovo link", - "resetPassword": "Reimposta password", - "resetting": "Reimpostazione...", - "success": "Password reimpostata con successo. Ora puoi accedere.", - "title": "Reimposta password" - }, - "search": { - "exactMatch": "Corrispondenza esatta", - "noResults": "Nessun risultato trovato", - "placeholder": "Cerca", - "related": "Correlate", - "resultsFound": "{count} note trovate", - "searchPlaceholder": "Cerca nelle tue note...", - "searching": "Ricerca in corso...", - "semanticInProgress": "Ricerca AI in corso...", - "semanticTooltip": "Ricerca semantica AI", - "disabledAdmin": "Ricerca disabilitata in modalità admin" - }, - "semanticSearch": { - "exactMatch": "Corrispondenza esatta", - "related": "Correlate", - "searching": "Ricerca in corso..." - }, "settings": { - "about": "About", + "title": "Settings", + "description": "Manage your settings and preferences", "account": "Account", "appearance": "Appearance", - "cleanTags": "Clean Orphan Tags", - "cleanTagsDescription": "Remove tags that are no longer used by any notes", - "description": "Manage your settings and preferences", + "theme": "Theme", + "themeLight": "Light", + "themeDark": "Dark", + "themeSystem": "System", + "notifications": "Notifications", "language": "Language", - "languageAuto": "Automatico", + "selectLanguage": "Select language", + "security": "Security", + "about": "About", + "version": "Version", + "settingsSaved": "Settings saved", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "Error saving settings", "maintenance": "Maintenance", "maintenanceDescription": "Tools to maintain your database health", - "notifications": "Notifications", - "privacy": "Privacy", - "profile": "Profilo", - "searchNoResults": "Nessun risultato trovato", - "security": "Security", - "selectLanguage": "Select language", - "semanticIndexing": "Semantic Indexing", - "semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search", - "settingsError": "Error saving settings", - "settingsSaved": "Settings saved", - "theme": "Theme", - "themeDark": "Dark", - "themeLight": "Light", - "themeSystem": "System", - "title": "Settings", - "version": "Version", + "cleanTags": "Clean Orphan Tags", + "cleanTagsDescription": "Remove tags that are no longer used by any notes", "cleanupDone": "{created} etichetta/e sincronizzata/e, {deleted} orfana/e rimossa/e", "cleanupNothing": "Nessuna azione necessaria — le etichette sono già sincronizzate", "cleanupWithErrors": "alcune operazioni fallite", "cleanupError": "Impossibile pulire le etichette", "indexingComplete": "Indicizzazione completata: {count} nota/e elaborata/e", "indexingError": "Errore durante l'indicizzazione", + "semanticIndexing": "Semantic Indexing", + "semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search", + "profile": "Profilo", + "searchNoResults": "Nessun risultato trovato", + "languageAuto": "Automatico", "emailNotifications": "Notifiche email", "emailNotificationsDesc": "Ricevi notifiche importanti via email", "desktopNotifications": "Notifiche desktop", "desktopNotificationsDesc": "Ricevi notifiche nel browser", "notificationsDesc": "Gestisci le preferenze di notifica" }, - "sidebar": { - "archive": "Archive", - "editLabels": "Edit labels", - "labels": "Labels", - "notes": "Notes", - "reminders": "Reminders", - "trash": "Trash", - "newNoteTabs": "Nuova nota", - "newNoteTabsHint": "Crea nota in questo quaderno", - "noLabelsInNotebook": "Nessuna etichetta in questo quaderno" + "profile": { + "title": "Profilo", + "description": "Aggiorna le tue informazioni personali", + "displayName": "Nome visualizzato", + "email": "Email", + "changePassword": "Cambia password", + "changePasswordDescription": "Aggiorna la tua password. È necessaria la password attuale.", + "currentPassword": "Password attuale", + "newPassword": "Nuova password", + "confirmPassword": "Conferma password", + "updatePassword": "Aggiorna password", + "passwordChangeSuccess": "Password cambiata con successo", + "passwordChangeFailed": "Cambio password non riuscito", + "passwordUpdated": "Password aggiornata", + "passwordError": "Errore nell’aggiornamento della password", + "languagePreferences": "Preferenze lingua", + "languagePreferencesDescription": "Scegli la lingua preferita per le funzionalità AI e l’interfaccia.", + "preferredLanguage": "Lingua preferita", + "selectLanguage": "Seleziona una lingua", + "languageDescription": "Questa lingua sarà usata per le funzionalità AI, l’analisi dei contenuti e l’interfaccia.", + "autoDetect": "Rilevamento automatico", + "updateSuccess": "Profilo aggiornato", + "updateFailed": "Aggiornamento del profilo non riuscito", + "languageUpdateSuccess": "Lingua aggiornata con successo", + "languageUpdateFailed": "Aggiornamento della lingua non riuscito", + "profileUpdated": "Profilo aggiornato", + "profileError": "Errore nell’aggiornamento del profilo", + "accountSettings": "Impostazioni account", + "manageAISettings": "Gestisci impostazioni AI", + "displaySettings": "Impostazioni di visualizzazione", + "displaySettingsDescription": "Personalizza l’aspetto e la dimensione del testo.", + "fontSize": "Dimensione carattere", + "selectFontSize": "Seleziona dimensione carattere", + "fontSizeSmall": "Piccola", + "fontSizeMedium": "Media", + "fontSizeLarge": "Grande", + "fontSizeExtraLarge": "Molto grande", + "fontSizeDescription": "Regola la dimensione del testo per una migliore leggibilità.", + "fontSizeUpdateSuccess": "Dimensione del carattere aggiornata", + "fontSizeUpdateFailed": "Aggiornamento della dimensione del carattere non riuscito", + "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": "Impostazioni AI", + "description": "Configura le funzionalità AI e le preferenze", + "features": "Funzionalità AI", + "provider": "Provider AI", + "providerAuto": "Automatico (Consigliato)", + "providerOllama": "Ollama (Locale)", + "providerOpenAI": "OpenAI (Cloud)", + "frequency": "Frequenza", + "frequencyDaily": "Giornaliera", + "frequencyWeekly": "Settimanale", + "saving": "Salvataggio in corso...", + "saved": "Impostazione aggiornata", + "error": "Aggiornamento dell'impostazione non riuscito", + "titleSuggestionsDesc": "Suggerisci titoli per note senza titolo dopo 50+ parole", + "paragraphRefactorDesc": "Opzioni di miglioramento del testo basate sull'AI", + "frequencyDesc": "Frequenza di analisi delle connessioni tra note", + "providerDesc": "Scegli il tuo provider AI preferito", + "providerAutoDesc": "Ollama se disponibile, altrimenti OpenAI", + "providerOllamaDesc": "100% privato, viene eseguito localmente sul tuo dispositivo", + "providerOpenAIDesc": "Più preciso, richiede chiave API" + }, + "general": { + "loading": "Caricamento...", + "save": "Salva", + "cancel": "Annulla", + "add": "Aggiungi", + "edit": "Modifica", + "confirm": "Conferma", + "close": "Chiudi", + "back": "Indietro", + "next": "Avanti", + "previous": "Precedente", + "submit": "Invia", + "reset": "Reimposta", + "apply": "Applica", + "clear": "Cancella", + "select": "Seleziona", + "tryAgain": "Riprova", + "error": "Si è verificato un errore", + "operationSuccess": "Operazione completata", + "operationFailed": "Operazione non riuscita", + "testConnection": "Test Connection", + "clean": "Clean", + "indexAll": "Index All", + "preview": "Anteprima" + }, + "colors": { + "default": "Predefinito", + "red": "Rosso", + "blue": "Blu", + "green": "Verde", + "yellow": "Giallo", + "purple": "Viola", + "pink": "Rosa", + "orange": "Arancione", + "gray": "Grigio" + }, + "reminder": { + "title": "Promemoria", + "setReminder": "Imposta promemoria", + "removeReminder": "Rimuovi promemoria", + "reminderDate": "Data promemoria", + "reminderTime": "Ora promemoria", + "save": "Imposta promemoria", + "cancel": "Annulla" + }, + "reminders": { + "title": "Promemoria", + "empty": "Nessun promemoria", + "emptyDescription": "Aggiungi un promemoria a una nota per trovarlo qui.", + "upcoming": "In arrivo", + "overdue": "Scaduti", + "done": "Completati", + "markDone": "Segna come completato", + "markUndone": "Segna come non completato", + "todayAt": "Oggi alle {time}", + "tomorrowAt": "Domani alle {time}" + }, + "notebook": { + "create": "Crea notebook", + "createNew": "Crea nuovo notebook", + "createDescription": "Avvia una nuova raccolta per organizzare note, idee e progetti in modo efficiente.", + "name": "Nome del notebook", + "namePlaceholder": "es. Strategia Marketing Q4", + "myNotebook": "Il mio quaderno", + "saving": "Salvataggio...", + "selectIcon": "Icona", + "selectColor": "Colore", + "cancel": "Annulla", + "creating": "Creazione...", + "edit": "Modifica notebook", + "editDescription": "Cambia nome, icona e colore del tuo notebook.", + "delete": "Elimina notebook", + "deleteWarning": "Sei sicuro di voler eliminare questo notebook? Le note verranno spostate in Note generali.", + "deleteConfirm": "Elimina", + "summary": "Riepilogo notebook", + "summaryDescription": "Genera un riepilogo basato su IA di tutte le note in questo notebook.", + "generating": "Generazione riepilogo...", + "summaryError": "Errore nella generazione del riepilogo", + "labels": "Labels:", + "noLabels": "No labels", + "pdfTitle": "Riepilogo — {name}", + "pdfNotesLabel": "Note:", + "pdfGeneratedOn": "Generato il:", + "confidence": "confidenza", + "savingReminder": "Errore nel salvataggio del promemoria", + "removingReminder": "Errore nella rimozione del promemoria", + "generatingDescription": "Please wait..." + }, + "notebookSuggestion": { + "title": "Spostare in {name}?", + "description": "Questa nota sembra appartenere a questo notebook", + "move": "Sposta", + "dismiss": "Ignora", + "dismissIn": "Ignora (chiude in {timeLeft}s)", + "moveToNotebook": "Sposta nel notebook", + "generalNotes": "Note generali" + }, + "admin": { + "title": "Admin Dashboard", + "userManagement": "User Management", + "chat": "AI Chat", + "lab": "The Lab", + "agents": "Agents", + "workspace": "Workspace", + "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).", + "chatProvider": "Provider chat", + "chatDescription": "Provider IA per l'assistente chat. Usa il provider tag se non configurato.", + "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": "Miglior rapporto qualità/prezzo", + "bestQuality": "Miglior qualità", + "saved": "(Salvato)", + "fetchModelsFailed": "Impossibile recuperare i modelli", + "refreshModels": "Aggiorna modelli", + "configured": "Configurato", + "fetchingModels": "Recupero modelli...", + "clickToLoadModels": "Clicca ↺ per caricare i modelli", + "searchModel": "Cerca modello...", + "noModels": "Nessun modello. Clicca ↺", + "modelsAvailable": "{count} modello/i disponibile/i", + "enterUrlToLoad": "Inserisci URL e clicca ↺ per caricare", + "currentProvider": "(Attuale: {provider})", + "pageTitle": "Gestione IA", + "pageDescription": "Monitora e configura le funzioni IA", + "configure": "Configura", + "features": "Funzioni IA", + "providerStatus": "Stato provider IA", + "recentRequests": "Richieste IA recenti", + "comingSoon": "Prossimamente", + "activeFeatures": "Funzioni attive", + "successRate": "Tasso di successo", + "avgResponseTime": "Tempo di risposta medio", + "configuredProviders": "Provider configurati", + "settingUpdated": "Impostazione aggiornata", + "updateFailedShort": "Aggiornamento fallito", + "titleSuggestions": "Suggerimenti titolo", + "titleSuggestionsDesc": "Suggerisce titoli per note dopo 50+ parole", + "aiAssistant": "Assistente IA", + "aiAssistantDesc": "Abilita chat IA e strumenti di miglioramento", + "memoryEchoFeature": "Ho notato qualcosa...", + "memoryEchoFeatureDesc": "Analisi giornaliera delle connessioni tra le note", + "languageDetection": "Rilevamento lingua", + "languageDetectionDesc": "Rileva automaticamente la lingua di ogni nota", + "autoLabeling": "Etichettatura automatica", + "autoLabelingDesc": "Suggerisce e applica etichette automaticamente" + }, + "resend": { + "title": "Resend (Consigliato)", + "description": "Invia email tramite l'API Resend. Ha priorità su SMTP se configurato.", + "apiKey": "Chiave API Resend", + "apiKeyHint": "Ottieni la tua chiave API da resend.com. Utilizzata per le notifiche degli agent e il ripristino della password.", + "saveSettings": "Salva impostazioni Resend", + "updateSuccess": "Impostazioni Resend aggiornate", + "updateFailed": "Aggiornamento impostazioni Resend fallito", + "configured": "Resend è configurato e attivo" + }, + "email": { + "title": "Configurazione Email", + "description": "Configura l'invio di email per le notifiche degli agent e il ripristino della password.", + "provider": "Provider Email", + "saveSettings": "Salva impostazioni email", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "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": "Declassa", + "promote": "Promuovi", + "confirmDelete": "Sei sicuro di voler eliminare questo utente?", + "table": { + "name": "Name", + "email": "Email", + "role": "Role", + "createdAt": "Created At", + "actions": "Actions" + }, + "roles": { + "user": "Utente", + "admin": "Amministratore" + }, + "title": "Utenti", + "description": "Gestisci utenti e permessi" + }, + "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": "🏷️ Test generazione tag:", + "tagsStep1": "Invia una nota di esempio al provider IA", + "tagsStep2": "Richiede 3-5 tag pertinenti basati sul contenuto", + "tagsStep3": "Mostra i tag generati con punteggi di confidenza", + "tagsStep4": "Misura il tempo di risposta", + "embeddingsTestLabel": "🔍 Test embeddings:", + "embeddingsStep1": "Invia un testo di esempio al provider di embeddings", + "embeddingsStep2": "Genera una rappresentazione vettoriale (lista di numeri)", + "embeddingsStep3": "Mostra le dimensioni dell'embedding e valori di esempio", + "embeddingsStep4": "Verifica che il vettore sia valido e formattato correttamente", + "tipContent": "Puoi usare provider diversi per tag ed embeddings! Ad esempio, usa Ollama (gratuito) per i tag e OpenAI (migliore qualità) per gli embeddings per ottimizzare costi e prestazioni.", + "provider": "Provider:", + "model": "Model:", + "testing": "Testing...", + "runTest": "Run Test", + "testPassed": "Test Passed", + "testFailed": "Test Failed", + "testSuccessToast": "Test {type} riuscito!", + "testFailedToast": "Test {type} fallito", + "testingType": "Test di {type} in corso...", + "technicalDetails": "Dettagli tecnici", + "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": "Utenti", + "aiManagement": "Gestione IA", + "chat": "Chat IA", + "lab": "Il Lab (Idee)", + "agents": "Agenti", + "settings": "Impostazioni" + }, + "metrics": { + "vsLastPeriod": "vs periodo precedente" + }, + "tools": { + "title": "Strumenti Agente", + "description": "Configura strumenti esterni per l'uso da parte degli agenti: ricerca web, scraping web e accesso API.", + "searchProvider": "Provider Ricerca Web", + "searxng": "SearXNG (Self-hosted)", + "brave": "Brave Search API", + "both": "Entrambi (SearXNG primario, Brave fallback)", + "searxngUrl": "URL SearXNG", + "braveKey": "Chiave Brave Search API", + "jinaKey": "Chiave Jina Reader API", + "jinaKeyOptional": "Opzionale — funziona senza ma con limiti di velocità", + "jinaKeyDescription": "Utilizzato per lo scraping web. Funziona senza chiave ma con limiti di velocità.", + "saveSettings": "Salva Impostazioni Strumenti", + "updateSuccess": "Impostazioni strumenti aggiornate con successo", + "updateFailed": "Impossibile aggiornare le impostazioni strumenti", + "testing": "Test in corso...", + "testSearch": "Test ricerca web" + }, + "settingsDescription": "Configura le impostazioni dell applicazione", + "dashboard": { + "title": "Dashboard", + "description": "Panoramica delle metriche", + "recentActivity": "Attività recenti", + "recentActivityPlaceholder": "Le attività recenti verranno visualizzate qui." + }, + "error": { + "title": "Errore nel pannello admin", + "description": "Rendering pagina fallito. Puoi riprovare.", + "retry": "Riprova" + } + }, + "about": { + "title": "About", + "description": "Information about the application", + "appName": "Memento", + "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": { - "aiApiCosts": "Costi API AI:", - "buyMeACoffee": "Offrimi un caffè", - "contributeCode": "Contribuisci con il codice", - "description": "Memento è al 100% gratuito e open-source. Il tuo supporto aiuta a mantenerlo tale.", - "directImpact": "Impatto diretto", - "domainSSL": "Dominio e SSL:", - "donateOnKofi": "Dona su Ko-fi", - "donationDescription": "Fai una donazione una tantum o diventa un sostenitore mensile.", - "githubDescription": "Supporto ricorrente • Riconoscimento pubblico • Focalizzato sugli sviluppatori", - "hostingServers": "Hosting e server:", - "howSupportHelps": "Come aiuta il tuo supporto", - "kofiDescription": "Nessuna commissione • Pagamenti immediati • Sicuro", - "otherWaysTitle": "Altri modi per supportare", - "reportBug": "Segnala un bug", - "shareTwitter": "Condividi su Twitter", - "sponsorDescription": "Diventa uno sponsor mensile e ottieni riconoscimento.", - "sponsorOnGithub": "Sponsorizza su GitHub", - "sponsorPerks": "Vantaggi sponsor", - "starGithub": "Metti una stella su GitHub", "title": "Supporta lo sviluppo di Memento", - "totalExpenses": "Spese totali:", + "description": "Memento è al 100% gratuito e open-source. Il tuo supporto aiuta a mantenerlo tale.", + "buyMeACoffee": "Offrimi un caffè", + "donationDescription": "Fai una donazione una tantum o diventa un sostenitore mensile.", + "donateOnKofi": "Dona su Ko-fi", + "kofiDescription": "Nessuna commissione • Pagamenti immediati • Sicuro", + "sponsorOnGithub": "Sponsorizza su GitHub", + "sponsorDescription": "Diventa uno sponsor mensile e ottieni riconoscimento.", + "githubDescription": "Supporto ricorrente • Riconoscimento pubblico • Focalizzato sugli sviluppatori", + "howSupportHelps": "Come aiuta il tuo supporto", + "directImpact": "Impatto diretto", + "sponsorPerks": "Vantaggi sponsor", "transparency": "Trasparenza", - "transparencyDescription": "Credo nella completa trasparenza. Ecco come vengono utilizzate le donazioni:" + "transparencyDescription": "Credo nella completa trasparenza. Ecco come vengono utilizzate le donazioni:", + "hostingServers": "Hosting e server:", + "domainSSL": "Dominio e SSL:", + "aiApiCosts": "Costi API AI:", + "totalExpenses": "Spese totali:", + "otherWaysTitle": "Altri modi per supportare", + "starGithub": "Metti una stella su GitHub", + "reportBug": "Segnala un bug", + "contributeCode": "Contribuisci con il codice", + "shareTwitter": "Condividi su Twitter" + }, + "demoMode": { + "title": "Modalità demo", + "activated": "Modalità demo attivata! Memory Echo funzionerà istantaneamente.", + "deactivated": "Modalità demo disattivata. Parametri normali ripristinati.", + "toggleFailed": "Impossibile attivare/disattivare la modalità demo", + "description": "Accelera Memory Echo per i test. Le connessioni appaiono istantaneamente.", + "parametersActive": "Parametri demo attivi:", + "similarityThreshold": "Soglia di similarità del 50% (normalmente 75%)", + "delayBetweenNotes": "Ritardo di 0 giorni tra le note (normalmente 7 giorni)", + "unlimitedInsights": "Insight illimitati (nessun limite di frequenza)", + "createNotesTip": "Crea 2+ note simili e vedi Memory Echo in azione!" + }, + "resetPassword": { + "title": "Reimposta password", + "description": "Inserisci la tua nuova password qui sotto.", + "invalidLinkTitle": "Link non valido", + "invalidLinkDescription": "Questo link per il reset della password non è valido o è scaduto.", + "requestNewLink": "Richiedi nuovo link", + "newPassword": "Nuova password", + "confirmNewPassword": "Conferma nuova password", + "resetting": "Reimpostazione...", + "resetPassword": "Reimposta password", + "passwordMismatch": "Le password non coincidono", + "success": "Password reimpostata con successo. Ora puoi accedere.", + "loading": "Caricamento..." + }, + "dataManagement": { + "title": "Data Management", + "toolsDescription": "Tools to maintain your database health", + "exporting": "Esportazione in corso...", + "importing": "Importazione in corso...", + "deleting": "Eliminazione in corso...", + "dangerZone": "Zona pericolosa", + "dangerZoneDescription": "Queste azioni sono irreversibili", + "indexingComplete": "Indicizzazione completata", + "indexingError": "Errore nell'indicizzazione", + "cleanupComplete": "Pulizia completata", + "cleanupError": "Errore nella pulizia", + "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": "Aspetto", + "description": "Personalizza l'aspetto dell'app", + "notesViewDescription": "Scegli come mostrare le note nella home e nei quaderni.", + "notesViewLabel": "Vista note", + "notesViewTabs": "Schede (stile OneNote)", + "notesViewMasonry": "Schede (griglia)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "Impostazioni generali", + "description": "Impostazioni generali dell'applicazione" + }, + "toast": { + "saved": "Impostazione salvata", + "saveFailed": "Impossibile salvare l'impostazione", + "operationSuccess": "Operazione riuscita", + "operationFailed": "Operazione fallita", + "openingConnection": "Apertura connessione...", + "openConnectionFailed": "Impossibile aprire la connessione", + "thanksFeedback": "Grazie per il tuo feedback!", + "thanksFeedbackImproving": "Grazie! Lo useremo per migliorare.", + "feedbackFailed": "Impossibile inviare il feedback", + "notesFusionSuccess": "Note unite con successo!" }, "testPages": { "titleSuggestions": { - "analyzing": "Analisi...", - "contentLabel": "Contenuto (servono più di 50 parole):", - "error": "Errore:", - "idle": "Inattivo", - "noSuggestions": "Nessun suggerimento ancora. Scrivi 50+ parole e aspetta 2 secondi.", - "placeholder": "Scrivi almeno 50 parole qui...", - "status": "Stato:", - "suggestions": "Suggerimenti ({count}):", "title": "Test suggerimenti titolo", - "wordCount": "Conteggio parole:" + "contentLabel": "Contenuto (servono più di 50 parole):", + "placeholder": "Scrivi almeno 50 parole qui...", + "wordCount": "Conteggio parole:", + "status": "Stato:", + "analyzing": "Analisi...", + "idle": "Inattivo", + "error": "Errore:", + "suggestions": "Suggerimenti ({count}):", + "noSuggestions": "Nessun suggerimento ancora. Scrivi 50+ parole e aspetta 2 secondi." } }, - "time": { - "daysAgo": "{count} giorni fa", - "hoursAgo": "{count} ore fa", - "justNow": "Adesso", - "minutesAgo": "{count} minuti fa", - "today": "Oggi", - "tomorrow": "Domani", - "yesterday": "Ieri" - }, - "titleSuggestions": { - "available": "Suggerimenti titolo", - "dismiss": "Ignora", - "generating": "Generazione in corso...", - "selectTitle": "Seleziona un titolo", - "title": "Suggerimenti AI" - }, - "toast": { - "feedbackFailed": "Impossibile inviare il feedback", - "notesFusionSuccess": "Note unite con successo!", - "openConnectionFailed": "Impossibile aprire la connessione", - "openingConnection": "Apertura connessione...", - "operationFailed": "Operazione fallita", - "operationSuccess": "Operazione riuscita", - "saveFailed": "Impossibile salvare l'impostazione", - "saved": "Impostazione salvata", - "thanksFeedback": "Grazie per il tuo feedback!", - "thanksFeedbackImproving": "Grazie! Lo useremo per migliorare." - }, "trash": { "title": "Cestino", "empty": "Il cestino è vuoto", @@ -1278,11 +1212,83 @@ "permanentDelete": "Elimina definitivamente", "permanentDeleteConfirm": "Questa nota verrà eliminata definitivamente. Questa azione non può essere annullata." }, + "footer": { + "privacy": "Privacy", + "terms": "Termini", + "openSource": "Clone open source" + }, + "connection": { + "similarityInfo": "Queste note sono collegate da {similarity}% di similarità", + "clickToView": "Clicca per visualizzare la nota", + "isHelpful": "Questa connessione è utile?", + "helpful": "Utile", + "notHelpful": "Non utile", + "memoryEchoDiscovery": "Scoperta Memory Echo" + }, + "diagnostics": { + "title": "Diagnostica", + "description": "Check your AI provider connection status", + "configuredProvider": "Provider configurato", + "apiStatus": "Stato API", + "operational": "Operational", + "errorStatus": "Error", + "checking": "Checking...", + "testDetails": "Dettagli test:", + "troubleshootingTitle": "Suggerimenti per la risoluzione dei problemi:", + "tip1": "Assicurati che Ollama sia in esecuzione (ollama serve)", + "tip2": "Verifica che il modello sia installato (ollama pull llama3)", + "tip3": "Verifica la tua chiave API per OpenAI", + "tip4": "Controlla la connettività di rete" + }, + "batch": { + "organizeWithAI": "Organizza con AI", + "organize": "Organizza" + }, + "common": { + "unknown": "Sconosciuto", + "notAvailable": "Non disponibile", + "loading": "Caricamento...", + "error": "Errore", + "success": "Successo", + "confirm": "Conferma", + "cancel": "Annulla", + "close": "Chiudi", + "save": "Salva", + "delete": "Elimina", + "edit": "Modifica", + "add": "Aggiungi", + "remove": "Rimuovi", + "search": "Cerca", + "noResults": "Nessun risultato", + "required": "Obbligatorio", + "optional": "Opzionale" + }, + "time": { + "justNow": "Adesso", + "minutesAgo": "{count} minuti fa", + "hoursAgo": "{count} ore fa", + "daysAgo": "{count} giorni fa", + "yesterday": "Ieri", + "today": "Oggi", + "tomorrow": "Domani" + }, + "favorites": { + "title": "Preferiti", + "toggleSection": "Attiva/disattiva sezione", + "noFavorites": "Nessun preferito", + "pinToFavorite": "Aggiungi ai preferiti" + }, + "notebooks": { + "create": "Crea notebook", + "allNotebooks": "Tutti i notebook", + "noNotebooks": "Nessun notebook", + "createFirst": "Crea il tuo primo notebook" + }, "ui": { "close": "Chiudi", - "collapse": "Comprimi", + "open": "Apri", "expand": "Espandi", - "open": "Apri" + "collapse": "Comprimi" }, "mcpSettings": { "title": "Impostazioni MCP", @@ -1349,6 +1355,10 @@ "subtitle": "Automatizza le attività di monitoraggio e ricerca", "newAgent": "Nuovo agente", "myAgents": "I miei agenti", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "Nessun agente", "noAgentsDescription": "Crea il tuo primo agente o installa un modello qui sotto per automatizzare le attività di monitoraggio.", "types": { @@ -1391,7 +1401,9 @@ "researchTopic": "Argomento di ricerca", "researchTopicPlaceholder": "es: Ultimi sviluppi nell intelligenza artificiale", "notifyEmail": "Notifica email", - "notifyEmailHint": "Ricevi un'email con i risultati dell'agent dopo ogni esecuzione" + "notifyEmailHint": "Ricevi un'email con i risultati dell'agent dopo ogni esecuzione", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "Manuale", @@ -1400,6 +1412,22 @@ "weekly": "Settimanale", "monthly": "Mensile" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "Riuscito", "failure": "Fallito", @@ -1428,7 +1456,9 @@ "toggleError": "Errore durante l'attivazione/disattivazione dell'agente", "installSuccess": "\"{name}\" installato", "installError": "Errore durante l'installazione", - "saveError": "Errore durante il salvataggio" + "saveError": "Errore durante il salvataggio", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "Modelli", @@ -1541,7 +1571,8 @@ "welcome": "Sono qui per aiutarti a sintetizzare le tue note, generare nuove idee o discutere i tuoi quaderni.", "searching": "Ricerca in corso...", "noNotesFoundForContext": "Nessuna nota rilevante trovata per questa domanda. Rispondi con la tua conoscenza generale.", - "webSearch": "Ricerca web" + "webSearch": "Ricerca web", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "Il Laboratorio", @@ -1558,30 +1589,8 @@ "createFailed": "Creazione fallita", "deleteSpace": "Elimina spazio", "deleted": "Spazio eliminato", - "deleteError": "Errore durante l'eliminazione" - }, - "notification": { - "shared": "ha condiviso \"{title}\"", - "untitled": "Senza titolo", - "notifications": "Notifiche", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "Condivisione rifiutata", - "noNotifications": "No new notifications", - "removed": "Nota rimossa dalla lista" - }, - "reminders": { - "title": "Promemoria", - "empty": "Nessun promemoria", - "emptyDescription": "Aggiungi un promemoria a una nota per trovarlo qui.", - "upcoming": "In arrivo", - "overdue": "Scaduti", - "done": "Completati", - "markDone": "Segna come completato", - "markUndone": "Segna come non completato", - "todayAt": "Oggi alle {time}", - "tomorrowAt": "Domani alle {time}" + "deleteError": "Errore durante l'eliminazione", + "rename": "Rename" }, "lab": { "initializing": "Inizializzazione spazio", diff --git a/memento-note/locales/ja.json b/memento-note/locales/ja.json index 1418362..805f544 100644 --- a/memento-note/locales/ja.json +++ b/memento-note/locales/ja.json @@ -1,350 +1,366 @@ { - "about": { - "appDescription": "AI機能を備えた強力なメモアプリケーション", - "appName": "Memento", - "buildDate": "ビルド日", - "description": "アプリケーション情報", - "features": { - "description": "AI搭載機能", - "dragDrop": "ドラッグ&ドロップのノート管理", - "labelSystem": "ラベルシステム", - "memoryEcho": "Memory Echo デーリーインサイト", - "multipleProviders": "複数のAIプロバイダー(OpenAI、Ollama)", - "notebookOrganization": "ノートブックの整理", - "paragraphReformulation": "段落の言い換え", - "semanticSearch": "埋め込みによるセマンティック検索", - "title": "機能", - "titleSuggestions": "AI搭載のタイトル提案" - }, - "platform": "プラットフォーム", - "platformWeb": "Web", - "support": { - "description": "ヘルプとフィードバック", - "documentation": "ドキュメント", - "feedback": "フィードバック", - "reportIssues": "問題を報告", - "title": "サポート" - }, - "technology": { - "ai": "AI", - "authentication": "認証", - "backend": "バックエンド", - "database": "データベース", - "description": "最新技術で構築", - "frontend": "フロントエンド", - "testing": "テスト", - "title": "テクノロジースタック", - "ui": "UI" - }, - "title": "について", - "version": "バージョン" + "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": "ログインに戻る", + "signOut": "ログアウト", + "confirmPassword": "パスワードの確認", + "confirmPasswordPlaceholder": "パスワードを再入力" }, - "admin": { - "ai": { - "apiKey": "APIキー", - "baseUrl": "ベースURL", - "commonEmbeddingModels": "OpenAI互換APIの一般的な埋め込みモデル", - "commonModelsDescription": "OpenAI互換APIの一般的なモデル", - "description": "自動タグ付けとセマンティック検索用のAIプロバイダーを設定します。最適なパフォーマンスのために異なるプロバイダーを使用してください。", - "embeddingsDescription": "セマンティック検索埋め込み用のAIプロバイダー。推奨:OpenAI(最高品質)。", - "embeddingsProvider": "埋め込みプロバイダー", - "model": "モデル", - "modelRecommendations": "gpt-4o-mini = 最高のコスパ • gpt-4o = 最高品質", - "openAIKeyDescription": "platform.openai.comからのOpenAI APIキー", - "openTestPanel": "AIテストパネルを開く", - "provider": "プロバイダー", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDINGは必須です", - "providerTagsRequired": "AI_PROVIDER_TAGSは必須です", - "saveSettings": "AI設定を保存", - "saving": "保存中...", - "selectEmbeddingModel": "システムにインストールされている埋め込みモデルを選択", - "selectOllamaModel": "システムにインストールされているOllamaモデルを選択", - "tagsGenerationDescription": "自動タグ提案用のAIプロバイダー。推奨:Ollama(無料、ローカル)。", - "tagsGenerationProvider": "タグ生成プロバイダー", - "title": "AI設定", - "updateFailed": "AI設定の更新に失敗しました", - "updateSuccess": "AI設定が正常に更新されました", - "bestValue": "最もコスパが良い", - "bestQuality": "最高品質", - "providerOllamaOption": "🦙 Ollama (Local & Free)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Custom OpenAI-Compatible", - "saved": "(保存済み)", - "chatProvider": "チャットプロバイダー", - "chatDescription": "チャットアシスタント用のAIプロバイダー。未設定の場合はタグプロバイダーにフォールバックします。", - "fetchModelsFailed": "モデルの取得に失敗しました", - "refreshModels": "モデルを更新", - "configured": "設定済み", - "fetchingModels": "モデルを取得中...", - "clickToLoadModels": "↺ をクリックしてモデルを読み込む", - "searchModel": "モデルを検索...", - "noModels": "モデルなし。↺ をクリック", - "modelsAvailable": "{count} 件のモデルが利用可能", - "enterUrlToLoad": "URLを入力して↺をクリック", - "currentProvider": "(現在: {provider})", - "pageTitle": "AI管理", - "pageDescription": "AI機能の監視と設定", - "configure": "設定", - "features": "AI機能", - "providerStatus": "AIプロバイダーステータス", - "recentRequests": "最近のAIリクエスト", - "comingSoon": "近日公開", - "activeFeatures": "アクティブな機能", - "successRate": "成功率", - "avgResponseTime": "平均応答時間", - "configuredProviders": "設定済みプロバイダー", - "settingUpdated": "設定を更新しました", - "updateFailedShort": "更新に失敗しました", - "titleSuggestions": "タイトル候補", - "titleSuggestionsDesc": "50語以上のノートにタイトルを提案", - "aiAssistant": "AIアシスタント", - "aiAssistantDesc": "AIチャットとテキスト改善ツールを有効化", - "memoryEchoFeature": "気づいたこと...", - "memoryEchoFeatureDesc": "ノート間のつながりの毎日分析", - "languageDetection": "言語検出", - "languageDetectionDesc": "各ノートの言語を自動検出", - "autoLabeling": "自動ラベリング", - "autoLabelingDesc": "ラベルを自動で提案・適用" - }, - "aiTest": { - "description": "タグ生成とセマンティック検索埋め込みのAIプロバイダーをテストします", - "embeddingDimensions": "埋め込み次元:", - "embeddingsTestDescription": "セマンティック検索埋め込みを担当するAIプロバイダーをテストします", - "embeddingsTestTitle": "埋め込みテスト", - "error": "エラー:", - "first5Values": "最初の5つの値:", - "generatedTags": "生成されたタグ:", - "howItWorksTitle": "テストの仕組み", - "model": "モデル:", - "provider": "プロバイダー:", - "responseTime": "応答時間:{time}ミリ秒", - "runTest": "テストを実行", - "tagsTestDescription": "自動タグ提案を担当するAIプロバイダーをテストします", - "tagsTestTitle": "タグ生成テスト", - "testError": "テストエラー:{error}", - "testFailed": "テスト失敗", - "testPassed": "テスト合格", - "testing": "テスト中...", - "tipDescription": "テスト前にAIテストパネルを使用して設定の問題を診断してください。", - "tipTitle": "ヒント:", - "title": "AIプロバイダーテスト", - "vectorDimensions": "ベクトル次元", - "tagsGenerationTest": "🏷️ タグ生成テスト:", - "tagsStep1": "サンプルノートをAIプロバイダーに送信", - "tagsStep2": "コンテンツに基づいて3〜5個の関連タグをリクエスト", - "tagsStep3": "生成されたタグと信頼度スコアを表示", - "tagsStep4": "応答時間を計測", - "embeddingsTestLabel": "🔍 埋め込みテスト:", - "embeddingsStep1": "サンプルテキストを埋め込みプロバイダーに送信", - "embeddingsStep2": "ベクトル表現(数値のリスト)を生成", - "embeddingsStep3": "埋め込み次元とサンプル値を表示", - "embeddingsStep4": "ベクトルが有効で正しくフォーマットされていることを確認", - "tipContent": "タグと埋め込みには異なるプロバイダーを使用できます!例えば、タグにはOllama(無料)、埋め込みにはOpenAI(最高品質)を使うことで、コストとパフォーマンスを最適化できます。", - "testSuccessToast": "{type}テスト成功!", - "testFailedToast": "{type}テスト失敗", - "testingType": "{type}テスト中...", - "technicalDetails": "技術詳細" - }, - "aiTesting": "AIテスト", - "security": { - "allowPublicRegistration": "公開登録を許可", - "allowPublicRegistrationDescription": "無効にすると、新しいユーザーは管理者がユーザー管理ページからのみ追加できます。", - "description": "アクセス制御と登録ポリシーを管理します。", - "title": "セキュリティ設定", - "updateFailed": "セキュリティ設定の更新に失敗しました", - "updateSuccess": "セキュリティ設定が更新されました" - }, - "settings": "管理者設定", - "resend": { - "title": "Resend(推奨)", - "description": "Resend APIでメールを送信。設定されている場合、SMTPより優先されます。", - "apiKey": "Resend APIキー", - "apiKeyHint": "resend.comからAPIキーを取得してください。エージェント通知やパスワードリセットに使用されます。", - "saveSettings": "Resend設定を保存", - "updateSuccess": "Resend設定を更新しました", - "updateFailed": "Resend設定の更新に失敗しました", - "configured": "Resendが設定され、有効です" - }, - "email": { - "title": "メール設定", - "description": "エージェント通知やパスワードリセットのメール送信を設定します。", - "provider": "メールプロバイダー", - "saveSettings": "メール設定を保存" - }, - "smtp": { - "description": "パスワードリセット用のメールサーバーを設定します。", - "forceSSL": "SSL/TLSを強制(通常はポート465用)", - "fromEmail": "送信元メール", - "host": "ホスト", - "ignoreCertErrors": "証明書エラーを無視(自己ホスト/開発のみ)", - "password": "パスワード", - "port": "ポート", - "saveSettings": "SMTP設定を保存", - "sending": "送信中...", - "testEmail": "テストメール", - "testFailed": "失敗:{error}", - "testSuccess": "テストメールが正常に送信されました!", - "title": "SMTP設定", - "updateFailed": "SMTP設定の更新に失敗しました", - "updateSuccess": "SMTP設定が更新されました", - "username": "ユーザー名" - }, - "title": "管理ダッシュボード", - "userManagement": "ユーザー管理", - "users": { - "addUser": "ユーザーを追加", - "confirmDelete": "よろしいですか?この操作は元に戻せません。", - "createFailed": "ユーザーの作成に失敗しました", - "createSuccess": "ユーザーが正常に作成されました", - "createUser": "ユーザーを作成", - "createUserDescription": "システムに新しいユーザーを追加します。", - "deleteFailed": "削除に失敗しました", - "deleteSuccess": "ユーザーが削除されました", - "demote": "降格", - "email": "メール", - "name": "名前", - "password": "パスワード", - "promote": "昇格", - "role": "役割", - "roleUpdateFailed": "役割の更新に失敗しました", - "roleUpdateSuccess": "ユーザーの役割が{role}に更新されました", - "roles": { - "admin": "管理者", - "user": "ユーザー" - }, - "table": { - "actions": "アクション", - "createdAt": "作成日", - "email": "メール", - "name": "名前", - "role": "役割" - }, - "title": "ユーザー", - "description": "ユーザーと権限を管理" - }, - "chat": "AIチャット", - "lab": "ラボ", - "agents": "エージェント", - "workspace": "ワークスペース", - "sidebar": { - "dashboard": "ダッシュボード", - "users": "ユーザー", - "aiManagement": "AI管理", - "chat": "AIチャット", - "lab": "ラボ(アイデア)", - "agents": "エージェント", - "settings": "設定" - }, - "metrics": { - "vsLastPeriod": "前回期間比" - }, - "tools": { - "title": "エージェントツール", - "description": "エージェントのツール使用のための外部ツールを設定:ウェブ検索、ウェブスクレイピング、APIアクセス。", - "searchProvider": "ウェブ検索プロバイダー", - "searxng": "SearXNG(セルフホスト)", - "brave": "Brave Search API", - "both": "両方(SearXNG優先、Braveフォールバック)", - "searxngUrl": "SearXNG URL", - "braveKey": "Brave Search APIキー", - "jinaKey": "Jina Reader APIキー", - "jinaKeyOptional": "オプション — キーなしでも動作しますが、レート制限あり", - "jinaKeyDescription": "ウェブスクレイピングに使用されます。キーなしでも動作しますが、レート制限があります。", - "saveSettings": "ツール設定を保存", - "updateSuccess": "ツール設定が正常に更新されました", - "updateFailed": "ツール設定の更新に失敗しました", - "testing": "テスト中...", - "testSearch": "ウェブ検索をテスト" - }, - "settingsDescription": "アプリケーション設定を構成", - "dashboard": { - "title": "ダッシュボード", - "description": "アプリケーション指標の概要", - "recentActivity": "最近のアクティビティ", - "recentActivityPlaceholder": "最近のアクティビティがここに表示されます。" - }, - "error": { - "title": "管理パネルでエラーが発生しました", - "description": "ページの表示に失敗しました。再試行できます。", - "retry": "再試行" - } + "sidebar": { + "notes": "ノート", + "reminders": "リマインダー", + "labels": "ラベル", + "editLabels": "ラベルを編集", + "newNoteTabs": "新しいノート", + "newNoteTabsHint": "このノートブックにノートを作成", + "noLabelsInNotebook": "このノートブックにはまだラベルがありません", + "archive": "アーカイブ", + "trash": "ゴミ箱", + "clearFilter": "Remove filter" + }, + "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": "ノートの作成に失敗しました", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "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)", + "pinnedNotes": "ピン留めされたノート", + "recent": "最近", + "addNote": "ノートを追加", + "remove": "削除", + "dragToReorder": "ドラッグして並べ替え", + "more": "もっと見る", + "emptyState": "ノートがありません", + "emptyStateTabs": "まだノートがありません。サイドバーの「新しいノート」を使って追加してください(AIタイトル提案が作成画面に表示されます)。", + "inNotebook": "ノートブック内", + "moveFailed": "移動に失敗しました", + "clarifyFailed": "明確化に失敗しました", + "shortenFailed": "短縮に失敗しました", + "improveFailed": "改善に失敗しました", + "transformFailed": "変換に失敗しました", + "markdown": "Markdown", + "unpinned": "ピン留め解除", + "redoShortcut": "やり直し (Ctrl+Y)", + "undoShortcut": "元に戻す (Ctrl+Z)", + "viewCards": "カード表示", + "viewCardsTooltip": "ドラッグ&ドロップで並べ替え可能なカードグリッド", + "viewTabs": "リスト表示", + "viewTabsTooltip": "上部にタブ、下にノート — タブをドラッグで並べ替え", + "viewModeGroup": "ノートの表示モード", + "reorderTabs": "タブを並べ替え", + "modified": "更新日時", + "created": "作成日時", + "loading": "読み込み中...", + "exportPDF": "PDFエクスポート", + "savedStatus": "保存済み", + "dirtyStatus": "変更済み", + "completedLabel": "完了", + "notes.emptyNotebook": "空のノートブック", + "notes.emptyNotebookDesc": "このノートブックにはノートがありません。+ をクリックして作成。", + "notes.noNoteSelected": "ノート未選択", + "notes.selectOrCreateNote": "リストからノートを選択または新規作成してください。", + "commitVersion": "バージョンを保存", + "versionSaved": "バージョンを保存しました", + "deleteVersion": "このバージョンを削除", + "versionDeleted": "バージョンを削除しました", + "deleteVersionConfirm": "このバージョンを完全に削除しますか?", + "historyMode": "履歴モード", + "historyModeManual": "手動(コミットボタン)", + "historyModeAuto": "自動(スマート)", + "historyModeManualDesc": "コミットボタンで手動スナップショットを作成", + "historyModeAutoDesc": "スマート検出で自動スナップショットを作成", + "history": "履歴", + "historyRestored": "バージョンを復元しました", + "historyEnabled": "履歴を有効にしました", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "履歴は無効になっています。", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "履歴を有効にする", + "historyEmpty": "バージョンがありません", + "historySelectVersion": "プレビューするバージョンを選択してください", + "sortBy": "並び替え", + "sortDateDesc": "日付(新しい)", + "sortDateAsc": "日付(古い)", + "sortTitleAsc": "タイトル A → Z", + "sortTitleDesc": "タイトル Z → A", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "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": "⚠️ ラベルはノートブック内でのみ使用できます。先にこのノートをノートブックに移動してください。", + "count": "{count} 個のラベル", + "noLabels": "ラベルがありません", + "confirmDeleteShort": "削除しますか?", + "labelRemoved": "ラベル「{label}」を削除しました" + }, + "search": { + "placeholder": "検索", + "searchPlaceholder": "ノートを検索...", + "semanticInProgress": "AI検索中...", + "semanticTooltip": "AIセマンティック検索", + "searching": "検索中...", + "noResults": "結果が見つかりませんでした", + "resultsFound": "{count}件のノートが見つかりました", + "exactMatch": "完全一致", + "related": "関連", + "disabledAdmin": "管理者モードで検索は無効" + }, + "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": "リフォーミュレート済み", "autoLabels": { - "analyzing": "ノートを分析中...", - "create": "作成", - "createNewLabel": "この新しいラベルを作成して追加", - "created": "{count} 個のラベルを作成しました", - "creating": "ラベルを作成中...", - "description": "\"{notebookName}\"({totalNotes} 件のノート)で繰り返し出てくるテーマを検出しました。ラベルを作成しますか?", "error": "ラベル候補の取得に失敗しました", - "new": "(新規)", "noLabelsSelected": "ラベルが選択されていません", + "created": "{count} 個のラベルを作成しました", + "analyzing": "ノートを分析中...", + "title": "新しいラベル候補", + "description": "\"{notebookName}\"({totalNotes} 件のノート)で繰り返し出てくるテーマを検出しました。ラベルを作成しますか?", "note": "件", "notes": "件", - "title": "新しいラベル候補", "typeContent": "ラベル候補を取得するにはコンテンツを入力...", + "createNewLabel": "この新しいラベルを作成して追加", + "new": "(新規)", + "create": "作成", + "creating": "ラベルを作成中...", "notesCount": "{count} 件", "typeForSuggestions": "ラベル候補を取得するにはコンテンツを入力..." }, "batchOrganization": { - "analyzing": "ノートを分析中...", - "apply": "適用", - "applyFailed": "整理プランの適用に失敗しました", - "applying": "適用中...", + "title": "AI で整理", "description": "AI がノートを分析し、ノートブックに整理する方法を提案します。", - "error": "整理プランの作成に失敗しました", + "analyzing": "ノートを分析中...", "noNotebooks": "利用可能なノートブックがありません。先にノートブックを作成してください。", - "noNotesSelected": "ノートが選択されていません", "noSuggestions": "AI はこれらのノートを整理する良い方法を見つけられませんでした。", - "selectAllIn": "{notebook} のすべてのノートを選択", - "selectNote": "ノートを選択:{title}", + "apply": "適用", + "applying": "適用中...", "success": "{count} 件のノートを移動しました", - "title": "AI で整理" + "error": "整理プランの作成に失敗しました", + "noNotesSelected": "ノートが選択されていません", + "applyFailed": "整理プランの適用に失敗しました", + "selectAllIn": "{notebook} のすべてのノートを選択", + "selectNote": "ノートを選択:{title}" }, - "clarify": "明確にする", - "clickToAddTag": "クリックしてこのタグを追加", - "generateTitles": "タイトルを生成", - "generateTitlesTooltip": "AIでタイトルを生成", - "generating": "生成中...", - "generatingTitles": "タイトルを生成中...", - "ignoreSuggestion": "この提案を無視", - "improveStyle": "スタイルを改善", - "languageDetected": "検出された言語", "notebookSummary": { "regenerate": "要約を再生成", "regenerating": "要約を再生成中...", "exportPDF": "PDFとしてエクスポート" }, - "original": "元のテキスト", - "poweredByAI": "AI搭載", - "processing": "処理中...", - "reformulateText": "テキストをリフォーミュレート", - "reformulated": "リフォーミュレート済み", - "reformulating": "リフォーミュレート中...", - "reformulationApplied": "リフォーミュレーションされたテキストを適用しました!", - "reformulationComparison": "リフォーミュレーションの比較", - "reformulationError": "リフォーミュレーション中のエラー", - "reformulationFailed": "テキストのリフォーミュレーションに失敗しました", - "reformulationMaxWords": "テキストは最大500単語までです", - "reformulationMinWords": "テキストは少なくとも10単語必要です(現在:{count}単語)", - "reformulationNoText": "テキストを選択するかコンテンツを追加してください", - "reformulationSelectionTooShort": "選択が短すぎます。完全なコンテンツを使用します", - "shorten": "短くする", - "tagAdded": "タグ「{tag}」を追加しました", - "titleApplied": "タイトルを適用しました!", - "titleGenerateWithAI": "AIでタイトルを生成", - "titleGenerating": "生成中...", - "titleGenerationError": "タイトルの生成エラー", - "titleGenerationFailed": "タイトルの生成に失敗しました", - "titleGenerationMinWords": "タイトルを生成するにはコンテンツが少なくとも10単語必要です(現在:{count}単語)", - "titlesGenerated": "💡 {count}個のタイトルを生成しました!", - "transformError": "変換中のエラー", - "transformMarkdown": "Markdownに変換", - "transformSuccess": "テキストをMarkdownに正常に変換しました!", - "transforming": "変換中...", "clarifyDesc": "テキストをより明確で分かりやすくします", "shortenDesc": "テキストを要約し、要点をまとめます", "improve": "文章を改善", @@ -389,11 +405,14 @@ "transformationsDesc": "変換 — ノートに直接適用", "writeMinWordsAction": "AIアクションを有効にするには5語以上書いてください。", "processingAction": "処理中...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "明確化", "shorten": "短縮", "improve": "改善", - "toMarkdown": "Markdownに" + "toMarkdown": "Markdownに", + "describeImages": "Describe images" }, "openAssistant": "AIアシスタントを開く", "poweredByMomento": "Momento AI搭載", @@ -408,22 +427,256 @@ "historyTab": "履歴", "insightsTab": "インサイト", "aiCopilot": "AIコパイロット", - "suggestTitle": "AIタイトル提案" + "suggestTitle": "AIタイトル提案", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" + }, + "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}", + "match": "{percentage}% 一致", + "fused": "融合済み", + "clickToView": "クリックしてノートを表示", + "overlay": { + "title": "つながっているノート", + "searchPlaceholder": "つながりを検索...", + "sortBy": "並び替え:", + "sortSimilarity": "類似度", + "sortRecent": "最新", + "sortOldest": "最古", + "viewAll": "すべて並べて表示", + "loading": "読み込み中...", + "noConnections": "つながりが見つかりませんでした", + "error": "つながりの読み込みエラー" + }, + "comparison": { + "title": "💡 ノートの比較", + "similarityInfo": "これらのノートは{similarity}%の類似性でつながっています", + "highSimilarityInsight": "これらのノートは同じトピックについて高水準の類似性で扱っています。統合または統合することができます。", + "untitled": "無題", + "clickToView": "クリックしてノートを表示", + "helpfulQuestion": "この比較は役に立ちますか?", + "helpful": "役に立つ", + "notHelpful": "役に立たない" + }, + "editorSection": { + "title": "⚡ つながっているノート({count})", + "loading": "読み込み中...", + "view": "表示", + "compare": "比較", + "merge": "マージ", + "compareAll": "すべて比較", + "mergeAll": "すべてマージ", + "close": "閉じる" + }, + "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": "日付不明" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "「{title}」を共有しました", + "untitled": "無題", + "notifications": "通知", + "declined": "共有を拒否しました", + "removed": "リストからノートを削除しました" + }, + "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": "プロプラン", + "chat": "AIチャット", + "lab": "ラボ", + "agents": "エージェント" + }, + "settings": { + "title": "設定", + "description": "設定と環境設定を管理", + "account": "アカウント", + "appearance": "外観", + "theme": "テーマ", + "themeLight": "ライト", + "themeDark": "ダーク", + "themeSystem": "システム", + "notifications": "通知", + "language": "言語", + "selectLanguage": "言語を選択", + "security": "セキュリティ", + "about": "について", + "version": "バージョン", + "settingsSaved": "設定を保存しました", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "設定の保存エラー", + "maintenance": "メンテナンス", + "maintenanceDescription": "データベースの健全性を維持するツール", + "cleanTags": "孤立タグをクリーン", + "cleanTagsDescription": "どのノートでも使用されていないタグを削除します", + "cleanupDone": "{created}件のラベルレコードを同期し、{deleted}件の孤立レコードを削除しました", + "cleanupNothing": "実行不要 — ラベルはすでにノートと一致しています", + "cleanupWithErrors": "一部の操作に失敗しました", + "cleanupError": "ラベルのクリーンアップに失敗しました", + "indexingComplete": "インデックス完了:{count}件のノートを処理しました", + "indexingError": "インデックス作成中にエラーが発生しました", + "semanticIndexing": "セマンティックインデックス", + "semanticIndexingDescription": "すべてのノートのベクトルを生成して、意図に基づく検索を有効にします", + "profile": "プロフィール", + "searchNoResults": "一致する設定が見つかりません", + "languageAuto": "自動検出", + "emailNotifications": "メール通知", + "emailNotificationsDesc": "重要な通知をメールで受け取ります", + "desktopNotifications": "デスクトップ通知", + "desktopNotificationsDesc": "ブラウザで通知を受け取ります", + "notificationsDesc": "通知設定を管理します" + }, + "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": "フォントサイズの更新に失敗しました", + "showRecentNotes": "最近のノートセクションを表示", + "showRecentNotesDescription": "メインページに最近のノート(過去7日間)を表示します", + "recentNotesUpdateSuccess": "最近のノート設定を更新しました", + "recentNotesUpdateFailed": "最近のノート設定の更新に失敗しました" }, "aiSettings": { + "title": "AI設定", "description": "AI機能と設定を構成", - "error": "設定の更新に失敗しました", "features": "AI機能", - "frequency": "頻度", - "frequencyDaily": "毎日", - "frequencyWeekly": "毎週", "provider": "AIプロバイダー", "providerAuto": "自動(推奨)", "providerOllama": "Ollama(ローカル)", "providerOpenAI": "OpenAI(クラウド)", - "saved": "設定を更新しました", + "frequency": "頻度", + "frequencyDaily": "毎日", + "frequencyWeekly": "毎週", "saving": "保存中...", - "title": "AI設定", + "saved": "設定を更新しました", + "error": "設定の更新に失敗しました", "titleSuggestionsDesc": "50語以上でタイトルのないメモにタイトルを提案", "paragraphRefactorDesc": "AI搭載のテキスト改善オプション", "frequencyDesc": "メモの接続を分析する頻度", @@ -432,815 +685,518 @@ "providerOllamaDesc": "100%プライベート、ローカルで実行", "providerOpenAIDesc": "最も正確、APIキーが必要" }, - "appearance": { - "description": "アプリの見た目をカスタマイズ", - "title": "外観", - "notesViewDescription": "ホームとノートブックでノートを表示する方法を選択します。", - "notesViewLabel": "ノートのレイアウト", - "notesViewTabs": "タブ(OneNote風)", - "notesViewMasonry": "カード(グリッド)" - }, - "auth": { - "backToLogin": "ログインに戻る", - "checkYourEmail": "メールをご確認ください", - "createAccount": "アカウントを作成", - "email": "メールアドレス", - "emailPlaceholder": "メールアドレスを入力してください", - "forgotPassword": "パスワードをお忘れですか?", - "forgotPasswordDescription": "メールアドレスを入力すると、パスワードリセット用のリンクをお送りします。", - "forgotPasswordTitle": "パスワードを忘れた場合", - "hasAccount": "すでにアカウントをお持ちの方", - "name": "名前", - "namePlaceholder": "お名前を入力してください", - "noAccount": "アカウントをお持ちでない方", - "orContinueWith": "または続ける", - "password": "パスワード", - "passwordMinChars": "パスワードを入力してください(最小6文字)", - "passwordPlaceholder": "パスワードを入力してください", - "rememberMe": "ログイン状態を保持", - "resetEmailSent": "システムに登録されている場合、パスワードリセットリンクをメールでお送りしました。", - "resetPassword": "パスワードをリセット", - "resetPasswordInstructions": "パスワードをリセットするためメールアドレスを入力してください", - "returnToLogin": "ログインに戻る", - "sendResetLink": "リセットリンクを送信", - "sending": "送信中...", - "signIn": "ログイン", - "signInToAccount": "アカウントにログイン", - "signOut": "ログアウト", - "signUp": "新規登録", - "confirmPassword": "パスワードの確認", - "confirmPasswordPlaceholder": "パスワードを再入力" - }, - "autoLabels": { - "analyzing": "ノートを分析中...", - "createNewLabel": "この新しいラベルを作成して追加", - "created": "{count}個のラベルが正常に作成されました", - "description": "「{notebookName}」({totalNotes}個のノート)で繰り返し出现するテーマを検出しました。ラベルを作成しますか?", - "error": "ラベルの提案を取得できませんでした", - "new": "(新規)", - "noLabelsSelected": "ラベルが選択されていません", - "note": "ノート", - "notes": "ノート", - "title": "新しいラベルの提案", - "typeContent": "ラベルの提案を取得するためにコンテンツを入力してください...", - "typeForSuggestions": "提案を取得するには入力してください..." - }, - "batch": { - "organize": "整理", - "organizeWithAI": "AIで整理" - }, - "batchOrganization": { - "analyzing": "ノートを分析中...", - "apply": "適用 ({count})", - "applyFailed": "整理の適用に失敗しました", - "applying": "適用中...", - "confidence": "信頼性", - "description": "AIがノートを分析し、ノートブックに整理することを提案します。", - "error": "組織計画の作成に失敗しました", - "noNotebooks": "利用可能なノートブックがありません。まずノートブックを作成してノートを整理してください。", - "noNotesSelected": "ノートが選択されていません", - "noSuggestions": "AIはこれらのノートを整理する良い方法を見つけられませんでした。", - "notesToOrganize": "{count}個のノートを整理", - "selectAllIn": "すべて選択", - "selectNote": "ノートを選択", - "selected": "{count}個選択済み", - "success": "整理成功", - "title": "AIで整理", - "unorganized": "{count}個のノートを分類できず、「一般ノート」に残ります。" - }, - "collaboration": { - "accessRevoked": "アクセス権が取り消されました", - "addCollaborator": "共同編集者を追加", - "addCollaboratorDescription": "メールアドレスでこのノートの共同編集者を追加します。", - "alreadyInList": "このメールアドレスはすでにリストにあります", - "canEdit": "編集可能", - "canView": "閲覧可能", - "done": "完了", - "emailAddress": "メールアドレス", - "emailPlaceholder": "メールアドレスを入力", - "enterEmailAddress": "メールアドレスを入力", - "errorLoading": "共同編集者の読み込みエラー", - "failedToAdd": "共同編集者の追加に失敗しました", - "failedToRemove": "共同編集者の削除に失敗しました", - "invite": "招待", - "noCollaborators": "まだ共同編集者がいません。上で追加してください!", - "noCollaboratorsViewer": "まだ共同編集者がいません。", - "nowHasAccess": "{name}がこのノートにアクセスできるようになりました", - "owner": "オーナー", - "pending": "保留中", - "pendingInvite": "保留中の招待", - "peopleWithAccess": "アクセス権のあるユーザー", - "remove": "削除", - "removeCollaborator": "共同編集者を削除", - "shareNote": "ノートを共有", - "shareWithCollaborators": "共同編集者と共有", - "unnamedUser": "名前のないユーザー", - "viewerDescription": "このノートへのアクセス権があります。オーナーのみが共同編集者を管理できます。", - "willBeAdded": "{email}はノート作成時に共同編集者として追加されます" + "general": { + "loading": "読み込み中...", + "save": "保存", + "cancel": "キャンセル", + "add": "追加", + "edit": "編集", + "confirm": "確認", + "close": "閉じる", + "back": "戻る", + "next": "次へ", + "previous": "前へ", + "submit": "送信", + "reset": "リセット", + "apply": "適用", + "clear": "クリア", + "select": "選択", + "tryAgain": "もう一度お試しください", + "error": "エラーが発生しました", + "operationSuccess": "操作が成功しました", + "operationFailed": "操作が失敗しました", + "testConnection": "接続テスト", + "clean": "クリーン", + "indexAll": "すべてインデックス", + "preview": "プレビュー" }, "colors": { - "blue": "青", "default": "デフォルト", - "gray": "グレー", - "green": "緑", - "orange": "オレンジ", - "pink": "ピンク", - "purple": "紫", "red": "赤", - "yellow": "黄" + "blue": "青", + "green": "緑", + "yellow": "黄", + "purple": "紫", + "pink": "ピンク", + "orange": "オレンジ", + "gray": "グレー" }, - "common": { - "add": "追加", - "cancel": "キャンセル", - "close": "閉じる", - "confirm": "確認", - "delete": "削除", - "edit": "編集", - "error": "エラー", - "loading": "読み込み中...", - "noResults": "結果なし", - "notAvailable": "利用不可", - "optional": "任意", - "remove": "削除", - "required": "必須", - "save": "保存", - "search": "検索", - "success": "成功", - "unknown": "不明" + "reminder": { + "title": "リマインダー", + "setReminder": "リマインダーを設定", + "removeReminder": "リマインダーを削除", + "reminderDate": "リマインダー日付", + "reminderTime": "リマインダー時刻", + "save": "リマインダーを設定", + "cancel": "キャンセル" }, - "connection": { - "clickToView": "クリックしてノートを表示", - "helpful": "役に立つ", - "isHelpful": "この接続は役に立ちますか?", - "memoryEchoDiscovery": "Memory Echo 発見", - "notHelpful": "役に立たない", - "similarityInfo": "これらのノートは{similarity}%の類似度で接続されています" - }, - "dataManagement": { - "cleanup": { - "button": "クリーンアップ", - "description": "削除されたノートを参照するラベルと接続を削除します。", - "failed": "クリーンアップ中にエラーが発生しました", - "title": "孤立データをクリーンアップ" - }, - "cleanupComplete": "クリーンアップ完了", - "cleanupError": "クリーンアップエラー", - "dangerZone": "危険区域", - "dangerZoneDescription": "これらの操作は元に戻せません。注意してください", - "delete": { - "button": "すべてのノートを削除", - "confirm": "よろしいですか?これによりすべてのノートが完全に削除されます。", - "description": "すべてのノートを完全に削除します。この操作は元に戻せません。", - "failed": "ノートの削除に失敗しました", - "success": "すべてのノートが削除されました", - "title": "すべてのノートを削除" - }, - "deleting": "削除中...", - "export": { - "button": "ノートをエクスポート", - "description": "すべてのノートをJSONファイルとしてダウンロードします。すべてのコンテンツ、ラベル、メタデータが含まれます。", - "failed": "ノートのエクスポートに失敗しました", - "success": "ノートが正常にエクスポートされました", - "title": "すべてのノートをエクスポート" - }, - "exporting": "エクスポート中...", - "import": { - "button": "ノートをインポート", - "description": "JSONファイルをアップロードしてノートをインポートします。これは既存のノートに追加され、置き換えられません。", - "failed": "ノートのインポートに失敗しました", - "success": "{count}個のノートをインポートしました", - "title": "ノートをインポート" - }, - "importing": "インポート中...", - "indexing": { - "button": "インデックスを再構築", - "description": "セマンティック検索を改善するためにすべてのノートの埋め込みを再生成します。", - "failed": "インデックス作成中にエラーが発生しました", - "success": "インデックス作成完了:{count}個のノートを処理", - "title": "検索インデックスを再構築" - }, - "indexingComplete": "インデックス完了", - "indexingError": "インデックスエラー", - "title": "データ管理", - "toolsDescription": "データベースの健全性を維持するツール" - }, - "demoMode": { - "activated": "デモモードがアクティブになりました!Memory Echoが即座に動作します。", - "createNotesTip": "2つ以上の類似ノートを作成してMemory Echoの動作を確認してください!", - "deactivated": "デモモードが無効になりました。通常のパラメータに戻りました。", - "delayBetweenNotes": "ノート間0日の遅延(通常7日)", - "description": "テスト用にMemory Echoを高速化します。接続が即座に表示されます。", - "parametersActive": "デモパラメータがアクティブ:", - "similarityThreshold": "50% 類似度しきい値(通常75%)", - "title": "デモモード", - "toggleFailed": "デモモードの切り替えに失敗しました", - "unlimitedInsights": "無制限のインサイト(頻度制限なし)" - }, - "diagnostics": { - "apiStatus": "APIステータス", - "checking": "確認中...", - "configuredProvider": "設定されたプロバイダー", - "description": "AIプロバイダーの接続状況を確認します", - "errorStatus": "エラー", - "operational": "正常", - "testDetails": "テスト詳細:", - "tip1": "Ollamaが実行されていることを確認(ollama serve)", - "tip2": "モデルがインストールされていることを確認(ollama pull llama3)", - "tip3": "OpenAIのAPIキーを確認", - "tip4": "ネットワーク接続を確認", - "title": "診断", - "troubleshootingTitle": "トラブルシューティングのヒント:" - }, - "favorites": { - "noFavorites": "お気に入りがありません", - "pinToFavorite": "お気に入りにピン留め", - "title": "お気に入り", - "toggleSection": "お気に入りセクションを切り替え" - }, - "footer": { - "openSource": "オープンソースクローン", - "privacy": "プライバシー", - "terms": "利用規約" - }, - "general": { - "add": "追加", - "apply": "適用", - "back": "戻る", - "cancel": "キャンセル", - "clean": "クリーン", - "clear": "クリア", - "close": "閉じる", - "confirm": "確認", - "edit": "編集", - "error": "エラーが発生しました", - "indexAll": "すべてインデックス", - "loading": "読み込み中...", - "next": "次へ", - "operationFailed": "操作が失敗しました", - "operationSuccess": "操作が成功しました", - "preview": "プレビュー", - "previous": "前へ", - "reset": "リセット", - "save": "保存", - "select": "選択", - "submit": "送信", - "testConnection": "接続テスト", - "tryAgain": "もう一度お試しください" - }, - "generalSettings": { - "description": "一般的なアプリケーション設定", - "title": "一般設定" - }, - "labels": { - "addLabel": "ラベルを追加", - "allLabels": "すべてのラベル", - "changeColor": "色を変更", - "changeColorTooltip": "色を変更", - "clearAll": "すべてクリア", - "confirmDelete": "このラベルを削除してもよろしいですか?", - "count": "{count} 個のラベル", - "createLabel": "ラベルを作成", - "delete": "削除", - "deleteTooltip": "ラベルを削除", - "editLabels": "ラベルを編集", - "editLabelsDescription": "ラベルの作成、色の編集、削除を行います。", - "filter": "ラベルで絞り込み", - "filterByLabel": "ラベルで絞り込み", - "labelColor": "ラベルの色", - "labelName": "ラベル名", - "loading": "読み込み中...", - "manage": "ラベルを管理", - "manageLabels": "ラベルを管理", - "manageLabelsDescription": "このノートのラベルを追加・削除します。ラベルをクリックして色を変更できます。", - "manageTooltip": "ラベルを管理", - "namePlaceholder": "ラベル名を入力", - "newLabelPlaceholder": "新しいラベルを作成", - "noLabels": "ラベルがありません", - "noLabelsFound": "ラベルが見つかりません。", - "notebookRequired": "⚠️ ラベルはノートブック内でのみ使用できます。先にこのノートをノートブックに移動してください。", - "selectedLabels": "選択中のラベル", - "showLess": "折りたたむ", - "showMore": "もっと見る", - "tagAdded": "タグ「{tag}」を追加しました", - "title": "ラベル", - "confirmDeleteShort": "削除しますか?", - "labelRemoved": "ラベル「{label}」を削除しました" - }, - "memoryEcho": { - "clickToView": "クリックしてノートを表示", - "comparison": { - "clickToView": "クリックしてノートを表示", - "helpful": "役に立つ", - "helpfulQuestion": "この比較は役に立ちますか?", - "highSimilarityInsight": "これらのノートは同じトピックについて高水準の類似性で扱っています。統合または統合することができます。", - "notHelpful": "役に立たない", - "similarityInfo": "これらのノートは{similarity}%の類似性でつながっています", - "title": "💡 ノートの比較", - "untitled": "無題" - }, - "connection": "つながり", - "connections": "つながり", - "connectionsBadge": "{count}個のつながり{plural}", - "dailyInsight": "ノートからの毎日の洞察", - "description": "ノート間のプロアクティブなつながり", - "dismiss": "今は無視", - "editorSection": { - "close": "閉じる", - "compare": "比較", - "compareAll": "すべて比較", - "loading": "読み込み中...", - "merge": "マージ", - "mergeAll": "すべてマージ", - "title": "⚡ つながっているノート({count})", - "view": "表示" - }, - "fused": "融合済み", - "fusion": { - "archiveOriginals": "オリジナルのノートをアーカイブ", - "cancel": "キャンセル", - "confirmFusion": "融合を確認", - "createBacklinks": "オリジナルのノートへのバックリンクを作成", - "edit": "編集", - "error": "ノートのマージに失敗しました", - "finishEditing": "編集を終了", - "generateError": "融合の生成に失敗しました", - "generateFusion": "融合を生成", - "generating": "生成中...", - "keepAllTags": "すべてのタグを保持", - "mergeNotes": "{count}個のノートをマージ", - "modify": "修正", - "noContentReturned": "APIから融合コンテンツが返されませんでした", - "notesToMerge": "📝 マージするノート", - "optionalPrompt": "💬 融合プロンプト(オプション)", - "optionsTitle": "融合オプション", - "previewTitle": "📝 マージされたノートのプレビュー", - "promptPlaceholder": "AIへのオプションの指示(例:'ノート1のフォーマルなスタイルを維持する')...", - "success": "ノートを正常にマージしました!", - "title": "🔗 インテリジェントな融合", - "unknownDate": "日付不明", - "useLatestTitle": "最新のノートをタイトルとして使用" - }, - "helpful": "役に立つ", - "insightReady": "洞察の準備ができました!", - "notHelpful": "役に立たない", - "overlay": { - "error": "つながりの読み込みエラー", - "loading": "読み込み中...", - "noConnections": "つながりが見つかりませんでした", - "searchPlaceholder": "つながりを検索...", - "sortBy": "並び替え:", - "sortOldest": "最古", - "sortRecent": "最新", - "sortSimilarity": "類似度", - "title": "つながっているノート", - "viewAll": "すべて並べて表示" - }, - "thanksFeedback": "フィードバックありがとうございます!", - "thanksFeedbackImproving": "ありがとうございます!改善に役立てます。", - "title": "何か気づきました...", - "viewConnection": "つながりを表示", - "match": "{percentage}% 一致" - }, - "nav": { - "accountSettings": "アカウント設定", - "adminDashboard": "管理ダッシュボード", - "aiSettings": "AI設定", - "archive": "アーカイブ", - "buyMeACoffee": "コーヒーをご馳走する", - "configureAI": "AI機能、プロバイダー、設定を構成します", - "diagnostics": "診断", - "donateOnKofi": "Ko-fiで寄付", - "donationDescription": "一回限りの寄付をするか、月次サポーターになってください。", - "donationNote": "プラットフォーム手数料なし • 即時支払い • 安全", - "favorites": "お気に入り", - "generalNotes": "一般ノート", - "home": "ホーム", - "login": "ログイン", - "logout": "ログアウト", - "manageAISettings": "AI設定を管理", - "myLibrary": "マイライブラリ", - "notebooks": "ノートブック", - "notes": "ノート", - "proPlan": "プロプラン", - "profile": "プロフィール", - "quickAccess": "クイックアクセス", - "recent": "最近", - "reminders": "リマインダー", - "settings": "設定", - "sponsorDescription": "月次スポンサーになり、認知されましょう。", - "sponsorOnGithub": "GitHubでスポンサー", - "support": "Mementoをサポート ☕", - "supportDescription": "Mementoは100%無料でオープンソースです。あなたのサポートがこの状態を維持するのに役立ちます。", - "supportDevelopment": "Mementoの開発をサポート ☕", - "trash": "ゴミ箱", - "userManagement": "ユーザー管理", - "workspace": "ワークスペース", - "chat": "AIチャット", - "lab": "ラボ", - "agents": "エージェント" + "reminders": { + "title": "リマインダー", + "empty": "リマインダーなし", + "emptyDescription": "ノートにリマインダーを追加すると、ここに表示されます。", + "upcoming": "予定", + "overdue": "期限切れ", + "done": "完了", + "markDone": "完了にする", + "markUndone": "未完了にする", + "todayAt": "今日 {time}", + "tomorrowAt": "明日 {time}" }, "notebook": { - "cancel": "キャンセル", "create": "ノートブックを作成", - "createDescription": "新しいコレクションを開始して、ノート、アイデア、プロジェクトを効率的に整理しましょう。", "createNew": "新しいノートブックを作成", - "creating": "作成中...", - "delete": "ノートブックを削除", - "deleteConfirm": "削除", - "deleteWarning": "このノートブックを削除してもよろしいですか?ノートは一般ノートに移動されます。", - "edit": "ノートブックを編集", - "editDescription": "ノートブックの名前、アイコン、色を変更します。", - "generating": "概要を生成中...", - "labels": "ラベル", + "createDescription": "新しいコレクションを開始して、ノート、アイデア、プロジェクトを効率的に整理しましょう。", "name": "ノートブック名", - "noLabels": "ラベルがありません", - "selectColor": "色", - "selectIcon": "アイコン", - "summary": "ノートブックの概要", - "summaryDescription": "このノートブックのすべてのノートのAI搭載の概要を生成します。", - "summaryError": "概要の生成エラー", "namePlaceholder": "例:Q4マーケティング戦略", "myNotebook": "マイノートブック", "saving": "保存中...", + "selectIcon": "アイコン", + "selectColor": "色", + "cancel": "キャンセル", + "creating": "作成中...", + "edit": "ノートブックを編集", + "editDescription": "ノートブックの名前、アイコン、色を変更します。", + "delete": "ノートブックを削除", + "deleteWarning": "このノートブックを削除してもよろしいですか?ノートは一般ノートに移動されます。", + "deleteConfirm": "削除", + "summary": "ノートブックの概要", + "summaryDescription": "このノートブックのすべてのノートのAI搭載の概要を生成します。", + "generating": "概要を生成中...", + "summaryError": "概要の生成エラー", + "labels": "ラベル", + "noLabels": "ラベルがありません", "pdfTitle": "概要 — {name}", "pdfNotesLabel": "ノート:", "pdfGeneratedOn": "生成日:", "confidence": "信頼度", "savingReminder": "リマインダーの保存に失敗しました", - "removingReminder": "リマインダーの削除に失敗しました" + "removingReminder": "リマインダーの削除に失敗しました", + "generatingDescription": "Please wait..." }, "notebookSuggestion": { + "title": "{name}に移動しますか?", "description": "このノートはこのノートブックに属しているようです", + "move": "移動", "dismiss": "無視", "dismissIn": "無視({timeLeft}秒で閉じます)", - "generalNotes": "一般ノート", - "move": "移動", "moveToNotebook": "ノートブックに移動", - "title": "{name}に移動しますか?" + "generalNotes": "一般ノート" }, - "notebooks": { - "allNotebooks": "すべてのノートブック", - "create": "ノートブックを作成", - "createFirst": "最初のノートブックを作成", - "noNotebooks": "ノートブックがありません" + "admin": { + "title": "管理ダッシュボード", + "userManagement": "ユーザー管理", + "chat": "AIチャット", + "lab": "ラボ", + "agents": "エージェント", + "workspace": "ワークスペース", + "settings": "管理者設定", + "security": { + "title": "セキュリティ設定", + "description": "アクセス制御と登録ポリシーを管理します。", + "allowPublicRegistration": "公開登録を許可", + "allowPublicRegistrationDescription": "無効にすると、新しいユーザーは管理者がユーザー管理ページからのみ追加できます。", + "updateSuccess": "セキュリティ設定が更新されました", + "updateFailed": "セキュリティ設定の更新に失敗しました" + }, + "ai": { + "title": "AI設定", + "description": "自動タグ付けとセマンティック検索用のAIプロバイダーを設定します。最適なパフォーマンスのために異なるプロバイダーを使用してください。", + "tagsGenerationProvider": "タグ生成プロバイダー", + "tagsGenerationDescription": "自動タグ提案用のAIプロバイダー。推奨:Ollama(無料、ローカル)。", + "embeddingsProvider": "埋め込みプロバイダー", + "embeddingsDescription": "セマンティック検索埋め込み用のAIプロバイダー。推奨:OpenAI(最高品質)。", + "chatProvider": "チャットプロバイダー", + "chatDescription": "チャットアシスタント用のAIプロバイダー。未設定の場合はタグプロバイダーにフォールバックします。", + "provider": "プロバイダー", + "baseUrl": "ベースURL", + "model": "モデル", + "apiKey": "APIキー", + "selectOllamaModel": "システムにインストールされているOllamaモデルを選択", + "openAIKeyDescription": "platform.openai.comからのOpenAI APIキー", + "modelRecommendations": "gpt-4o-mini = 最高のコスパ • gpt-4o = 最高品質", + "commonModelsDescription": "OpenAI互換APIの一般的なモデル", + "selectEmbeddingModel": "システムにインストールされている埋め込みモデルを選択", + "commonEmbeddingModels": "OpenAI互換APIの一般的な埋め込みモデル", + "saving": "保存中...", + "saveSettings": "AI設定を保存", + "openTestPanel": "AIテストパネルを開く", + "updateSuccess": "AI設定が正常に更新されました", + "updateFailed": "AI設定の更新に失敗しました", + "providerTagsRequired": "AI_PROVIDER_TAGSは必須です", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDINGは必須です", + "providerOllamaOption": "🦙 Ollama (Local & Free)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 Custom OpenAI-Compatible", + "bestValue": "最もコスパが良い", + "bestQuality": "最高品質", + "saved": "(保存済み)", + "fetchModelsFailed": "モデルの取得に失敗しました", + "refreshModels": "モデルを更新", + "configured": "設定済み", + "fetchingModels": "モデルを取得中...", + "clickToLoadModels": "↺ をクリックしてモデルを読み込む", + "searchModel": "モデルを検索...", + "noModels": "モデルなし。↺ をクリック", + "modelsAvailable": "{count} 件のモデルが利用可能", + "enterUrlToLoad": "URLを入力して↺をクリック", + "currentProvider": "(現在: {provider})", + "pageTitle": "AI管理", + "pageDescription": "AI機能の監視と設定", + "configure": "設定", + "features": "AI機能", + "providerStatus": "AIプロバイダーステータス", + "recentRequests": "最近のAIリクエスト", + "comingSoon": "近日公開", + "activeFeatures": "アクティブな機能", + "successRate": "成功率", + "avgResponseTime": "平均応答時間", + "configuredProviders": "設定済みプロバイダー", + "settingUpdated": "設定を更新しました", + "updateFailedShort": "更新に失敗しました", + "titleSuggestions": "タイトル候補", + "titleSuggestionsDesc": "50語以上のノートにタイトルを提案", + "aiAssistant": "AIアシスタント", + "aiAssistantDesc": "AIチャットとテキスト改善ツールを有効化", + "memoryEchoFeature": "気づいたこと...", + "memoryEchoFeatureDesc": "ノート間のつながりの毎日分析", + "languageDetection": "言語検出", + "languageDetectionDesc": "各ノートの言語を自動検出", + "autoLabeling": "自動ラベリング", + "autoLabelingDesc": "ラベルを自動で提案・適用" + }, + "resend": { + "title": "Resend(推奨)", + "description": "Resend APIでメールを送信。設定されている場合、SMTPより優先されます。", + "apiKey": "Resend APIキー", + "apiKeyHint": "resend.comからAPIキーを取得してください。エージェント通知やパスワードリセットに使用されます。", + "saveSettings": "Resend設定を保存", + "updateSuccess": "Resend設定を更新しました", + "updateFailed": "Resend設定の更新に失敗しました", + "configured": "Resendが設定され、有効です" + }, + "email": { + "title": "メール設定", + "description": "エージェント通知やパスワードリセットのメール送信を設定します。", + "provider": "メールプロバイダー", + "saveSettings": "メール設定を保存", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "smtp": { + "title": "SMTP設定", + "description": "パスワードリセット用のメールサーバーを設定します。", + "host": "ホスト", + "port": "ポート", + "username": "ユーザー名", + "password": "パスワード", + "fromEmail": "送信元メール", + "forceSSL": "SSL/TLSを強制(通常はポート465用)", + "ignoreCertErrors": "証明書エラーを無視(自己ホスト/開発のみ)", + "saveSettings": "SMTP設定を保存", + "sending": "送信中...", + "testEmail": "テストメール", + "updateSuccess": "SMTP設定が更新されました", + "updateFailed": "SMTP設定の更新に失敗しました", + "testSuccess": "テストメールが正常に送信されました!", + "testFailed": "失敗:{error}" + }, + "users": { + "createUser": "ユーザーを作成", + "addUser": "ユーザーを追加", + "createUserDescription": "システムに新しいユーザーを追加します。", + "name": "名前", + "email": "メール", + "password": "パスワード", + "role": "役割", + "createSuccess": "ユーザーが正常に作成されました", + "createFailed": "ユーザーの作成に失敗しました", + "deleteSuccess": "ユーザーが削除されました", + "deleteFailed": "削除に失敗しました", + "roleUpdateSuccess": "ユーザーの役割が{role}に更新されました", + "roleUpdateFailed": "役割の更新に失敗しました", + "demote": "降格", + "promote": "昇格", + "confirmDelete": "よろしいですか?この操作は元に戻せません。", + "table": { + "name": "名前", + "email": "メール", + "role": "役割", + "createdAt": "作成日", + "actions": "アクション" + }, + "roles": { + "user": "ユーザー", + "admin": "管理者" + }, + "title": "ユーザー", + "description": "ユーザーと権限を管理" + }, + "aiTest": { + "title": "AIプロバイダーテスト", + "description": "タグ生成とセマンティック検索埋め込みのAIプロバイダーをテストします", + "tagsTestTitle": "タグ生成テスト", + "tagsTestDescription": "自動タグ提案を担当するAIプロバイダーをテストします", + "embeddingsTestTitle": "埋め込みテスト", + "embeddingsTestDescription": "セマンティック検索埋め込みを担当するAIプロバイダーをテストします", + "howItWorksTitle": "テストの仕組み", + "tagsGenerationTest": "🏷️ タグ生成テスト:", + "tagsStep1": "サンプルノートをAIプロバイダーに送信", + "tagsStep2": "コンテンツに基づいて3〜5個の関連タグをリクエスト", + "tagsStep3": "生成されたタグと信頼度スコアを表示", + "tagsStep4": "応答時間を計測", + "embeddingsTestLabel": "🔍 埋め込みテスト:", + "embeddingsStep1": "サンプルテキストを埋め込みプロバイダーに送信", + "embeddingsStep2": "ベクトル表現(数値のリスト)を生成", + "embeddingsStep3": "埋め込み次元とサンプル値を表示", + "embeddingsStep4": "ベクトルが有効で正しくフォーマットされていることを確認", + "tipContent": "タグと埋め込みには異なるプロバイダーを使用できます!例えば、タグにはOllama(無料)、埋め込みにはOpenAI(最高品質)を使うことで、コストとパフォーマンスを最適化できます。", + "provider": "プロバイダー:", + "model": "モデル:", + "testing": "テスト中...", + "runTest": "テストを実行", + "testPassed": "テスト合格", + "testFailed": "テスト失敗", + "testSuccessToast": "{type}テスト成功!", + "testFailedToast": "{type}テスト失敗", + "testingType": "{type}テスト中...", + "technicalDetails": "技術詳細", + "responseTime": "応答時間:{time}ミリ秒", + "generatedTags": "生成されたタグ:", + "embeddingDimensions": "埋め込み次元:", + "vectorDimensions": "ベクトル次元", + "first5Values": "最初の5つの値:", + "error": "エラー:", + "testError": "テストエラー:{error}", + "tipTitle": "ヒント:", + "tipDescription": "テスト前にAIテストパネルを使用して設定の問題を診断してください。" + }, + "sidebar": { + "dashboard": "ダッシュボード", + "users": "ユーザー", + "aiManagement": "AI管理", + "chat": "AIチャット", + "lab": "ラボ(アイデア)", + "agents": "エージェント", + "settings": "設定" + }, + "metrics": { + "vsLastPeriod": "前回期間比" + }, + "tools": { + "title": "エージェントツール", + "description": "エージェントのツール使用のための外部ツールを設定:ウェブ検索、ウェブスクレイピング、APIアクセス。", + "searchProvider": "ウェブ検索プロバイダー", + "searxng": "SearXNG(セルフホスト)", + "brave": "Brave Search API", + "both": "両方(SearXNG優先、Braveフォールバック)", + "searxngUrl": "SearXNG URL", + "braveKey": "Brave Search APIキー", + "jinaKey": "Jina Reader APIキー", + "jinaKeyOptional": "オプション — キーなしでも動作しますが、レート制限あり", + "jinaKeyDescription": "ウェブスクレイピングに使用されます。キーなしでも動作しますが、レート制限があります。", + "saveSettings": "ツール設定を保存", + "updateSuccess": "ツール設定が正常に更新されました", + "updateFailed": "ツール設定の更新に失敗しました", + "testing": "テスト中...", + "testSearch": "ウェブ検索をテスト" + }, + "settingsDescription": "アプリケーション設定を構成", + "dashboard": { + "title": "ダッシュボード", + "description": "アプリケーション指標の概要", + "recentActivity": "最近のアクティビティ", + "recentActivityPlaceholder": "最近のアクティビティがここに表示されます。" + }, + "error": { + "title": "管理パネルでエラーが発生しました", + "description": "ページの表示に失敗しました。再試行できます。", + "retry": "再試行" + } }, - "notes": { - "add": "追加", - "addCollaborators": "共同編集者を追加", - "addImage": "画像を追加", - "addItem": "項目を追加", - "addLink": "リンクを追加", - "addListItem": "+ リスト項目", - "addNote": "ノートを追加", - "adding": "追加中...", - "aiAssistant": "AIアシスタント", - "archive": "アーカイブ", - "backgroundOptions": "背景オプション", - "changeColor": "色を変更", - "changeSize": "サイズを変更", - "clarifyFailed": "明確化に失敗しました", - "close": "閉じる", - "color": "色", - "confirmDelete": "このノートを削除してもよろしいですか?", - "confirmLeaveShare": "この共有ノートを退出してもよろしいですか?", - "contentOrMediaRequired": "コンテンツを入力するか、リンク/画像を追加してください", - "copy": "コピー", - "copyFailed": "ノートのコピーに失敗しました", - "copySuccess": "ノートをコピーしました!", - "createFirstNote": "最初のノートを作成", - "date": "日付", - "delete": "削除", - "dragToReorder": "ドラッグして並べ替え", - "duplicate": "複製", - "edit": "ノートを編集", - "emptyState": "ノートがありません", - "fileTooLarge": "ファイルが大きすぎます:{fileName}。最大サイズは{maxSize}です。", - "improveFailed": "改善に失敗しました", - "inNotebook": "ノートブック内", - "invalidDateTime": "無効な日付または時刻", - "invalidFileType": "無効なファイルタイプ:{fileName}。JPEG、PNG、GIF、WebPのみ使用可能です。", - "itemOrMediaRequired": "少なくとも1つの項目またはメディアを追加してください", - "large": "大", - "leaveShare": "退出", - "linkAddFailed": "リンクの追加に失敗しました", - "linkAdded": "リンクを追加しました", - "linkMetadataFailed": "リンクのメタデータを取得できませんでした", - "listItem": "リスト項目", - "makeCopy": "コピーを作成", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdownオフ", - "markdownOn": "Markdownオン", - "markdownPlaceholder": "ノートを作成...(Markdown対応)", - "medium": "中", - "more": "もっと見る", - "moreOptions": "その他のオプション", - "moveFailed": "移動に失敗しました", - "newChecklist": "新しいチェックリスト", - "newNote": "新しいノート", - "noContent": "コンテンツなし", - "noNotes": "ノートはありません", - "noNotesFound": "ノートが見つかりませんでした", - "noteCreateFailed": "ノートの作成に失敗しました", - "noteCreated": "ノートを作成しました", - "others": "その他", - "pin": "ピン留め", - "pinned": "ピン留め済み", - "pinnedNotes": "ピン留めされたノート", - "placeholder": "ノートを作成...", - "preview": "プレビュー", - "readOnly": "読み取り専用", - "recent": "最近", - "redo": "やり直し (Ctrl+Y)", - "redoShortcut": "やり直し (Ctrl+Y)", - "remindMe": "リマインド", - "reminderDateTimeRequired": "日付と時刻を入力してください", - "reminderMustBeFuture": "リマインダーは未来の日時に設定してください", - "reminderPastError": "リマインダーは未来の日時に設定してください", - "reminderRemoved": "リマインダーを削除しました", - "reminderSet": "リマインダーを{datetime}に設定しました", - "remove": "削除", - "saving": "保存中...", - "setReminder": "リマインダーを設定", - "setReminderButton": "リマインダーを設定", - "share": "共有", - "shareWithCollaborators": "共同編集者と共有", - "sharedBy": "共有者", - "sharedReadOnly": "このノートは読み取り専用モードで共有されています", - "shortenFailed": "短縮に失敗しました", - "showCollaborators": "共同編集者を表示", - "size": "サイズ", - "small": "小", - "takeNote": "ノートを作成...", - "takeNoteMarkdown": "ノートを作成...(Markdown対応)", - "time": "時刻", - "title": "ノート", - "titlePlaceholder": "タイトル", - "transformFailed": "変換に失敗しました", - "unarchive": "アーカイブを解除", - "undo": "元に戻す (Ctrl+Z)", - "undoShortcut": "元に戻す (Ctrl+Z)", - "unpin": "ピン留め解除", - "unpinned": "ピン留め解除", - "untitled": "無題", - "uploadFailed": "{filename}のアップロードに失敗しました", - "view": "ノートを表示", - "emptyStateTabs": "まだノートがありません。サイドバーの「新しいノート」を使って追加してください(AIタイトル提案が作成画面に表示されます)。", - "viewCards": "カード表示", - "viewCardsTooltip": "ドラッグ&ドロップで並べ替え可能なカードグリッド", - "viewTabs": "リスト表示", - "viewTabsTooltip": "上部にタブ、下にノート — タブをドラッグで並べ替え", - "viewModeGroup": "ノートの表示モード", - "reorderTabs": "タブを並べ替え", - "modified": "更新日時", - "created": "作成日時", - "loading": "読み込み中...", - "exportPDF": "PDFエクスポート", - "savedStatus": "保存済み", - "dirtyStatus": "変更済み", - "completedLabel": "完了", - "notes.emptyNotebook": "空のノートブック", - "notes.emptyNotebookDesc": "このノートブックにはノートがありません。+ をクリックして作成。", - "notes.noNoteSelected": "ノート未選択", - "notes.selectOrCreateNote": "リストからノートを選択または新規作成してください。", - "commitVersion": "バージョンを保存", - "versionSaved": "バージョンを保存しました", - "deleteVersion": "このバージョンを削除", - "versionDeleted": "バージョンを削除しました", - "deleteVersionConfirm": "このバージョンを完全に削除しますか?", - "historyMode": "履歴モード", - "historyModeManual": "手動(コミットボタン)", - "historyModeAuto": "自動(スマート)", - "historyModeManualDesc": "コミットボタンで手動スナップショットを作成", - "historyModeAutoDesc": "スマート検出で自動スナップショットを作成", - "history": "履歴", - "historyRestored": "バージョンを復元しました", - "historyEnabled": "履歴を有効にしました", - "historyDisabledDesc": "履歴は無効になっています。", - "enableHistory": "履歴を有効にする", - "historyEmpty": "バージョンがありません", - "historySelectVersion": "プレビューするバージョンを選択してください", - "sortBy": "並び替え", - "sortDateDesc": "日付(新しい)", - "sortDateAsc": "日付(古い)", - "sortTitleAsc": "タイトル A → Z", - "sortTitleDesc": "タイトル Z → A" - }, - "pagination": { - "next": "→", - "pageInfo": "{currentPage} / {totalPages} ページ", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "カジュアル", - "expand": "拡張する", - "formal": "フォーマル", - "improve": "改善する", - "shorten": "短くする", - "title": "テキストの改善" - }, - "profile": { - "accountSettings": "アカウント設定", - "autoDetect": "自動検出", - "changePassword": "パスワードを変更", - "changePasswordDescription": "パスワードを更新します。現在のパスワードが必要です。", - "confirmPassword": "パスワードを確認", - "currentPassword": "現在のパスワード", - "description": "個人情報を更新", - "displayName": "表示名", - "displaySettings": "表示設定", - "displaySettingsDescription": "外観とフォントサイズをカスタマイズします。", - "email": "メールアドレス", - "fontSize": "フォントサイズ", - "fontSizeDescription": "読みやすくするためにフォントサイズを調整します。これはインターフェースのすべてのテキストに適用されます。", - "fontSizeExtraLarge": "特大", - "fontSizeLarge": "大", - "fontSizeMedium": "中", - "fontSizeSmall": "小", - "fontSizeUpdateFailed": "フォントサイズの更新に失敗しました", - "fontSizeUpdateSuccess": "フォントサイズを更新しました", - "languageDescription": "この言語はAI機能、コンテンツ分析、インターフェーステキストに使用されます。", - "languagePreferences": "言語設定", - "languagePreferencesDescription": "AI機能とインターフェースの優先言語を選択してください。", - "languageUpdateFailed": "言語の更新に失敗しました", - "languageUpdateSuccess": "言語を更新しました", - "manageAISettings": "AI設定を管理", - "newPassword": "新しいパスワード", - "passwordChangeFailed": "パスワードの変更に失敗しました", - "passwordChangeSuccess": "パスワードを変更しました", - "passwordError": "パスワードの更新エラー", - "passwordUpdated": "パスワードを更新しました", - "preferredLanguage": "優先言語", - "profileError": "プロフィールの更新エラー", - "profileUpdated": "プロフィールを更新しました", - "recentNotesUpdateFailed": "最近のノート設定の更新に失敗しました", - "recentNotesUpdateSuccess": "最近のノート設定を更新しました", - "selectFontSize": "フォントサイズを選択", - "selectLanguage": "言語を選択", - "showRecentNotes": "最近のノートセクションを表示", - "showRecentNotesDescription": "メインページに最近のノート(過去7日間)を表示します", - "title": "プロフィール", - "updateFailed": "プロフィールの更新に失敗しました", - "updatePassword": "パスワードを更新", - "updateSuccess": "プロフィールを更新しました" - }, - "reminder": { - "cancel": "キャンセル", - "reminderDate": "リマインダー日付", - "reminderTime": "リマインダー時刻", - "removeReminder": "リマインダーを削除", - "save": "リマインダーを設定", - "setReminder": "リマインダーを設定", - "title": "リマインダー" - }, - "resetPassword": { - "confirmNewPassword": "新しいパスワードを確認", - "description": "以下に新しいパスワードを入力してください。", - "invalidLinkDescription": "このパスワードリセットリンクは無効または期限切れです。", - "invalidLinkTitle": "無効なリンク", - "loading": "読み込み中...", - "newPassword": "新しいパスワード", - "passwordMismatch": "パスワードが一致しません", - "requestNewLink": "新しいリンクをリクエスト", - "resetPassword": "パスワードをリセット", - "resetting": "リセット中...", - "success": "パスワードが正常にリセットされました。ログインできます。", - "title": "パスワードをリセット" - }, - "search": { - "exactMatch": "完全一致", - "noResults": "結果が見つかりませんでした", - "placeholder": "検索", - "related": "関連", - "resultsFound": "{count}件のノートが見つかりました", - "searchPlaceholder": "ノートを検索...", - "searching": "検索中...", - "semanticInProgress": "AI検索中...", - "semanticTooltip": "AIセマンティック検索", - "disabledAdmin": "管理者モードで検索は無効" - }, - "semanticSearch": { - "exactMatch": "完全一致", - "related": "関連", - "searching": "検索中..." - }, - "settings": { - "about": "について", - "account": "アカウント", - "appearance": "外観", - "cleanTags": "孤立タグをクリーン", - "cleanTagsDescription": "どのノートでも使用されていないタグを削除します", - "description": "設定と環境設定を管理", - "language": "言語", - "languageAuto": "自動検出", - "maintenance": "メンテナンス", - "maintenanceDescription": "データベースの健全性を維持するツール", - "notifications": "通知", - "privacy": "プライバシー", - "profile": "プロフィール", - "searchNoResults": "一致する設定が見つかりません", - "security": "セキュリティ", - "selectLanguage": "言語を選択", - "semanticIndexing": "セマンティックインデックス", - "semanticIndexingDescription": "すべてのノートのベクトルを生成して、意図に基づく検索を有効にします", - "settingsError": "設定の保存エラー", - "settingsSaved": "設定を保存しました", - "theme": "テーマ", - "themeDark": "ダーク", - "themeLight": "ライト", - "themeSystem": "システム", - "title": "設定", + "about": { + "title": "について", + "description": "アプリケーション情報", + "appName": "Memento", + "appDescription": "AI機能を備えた強力なメモアプリケーション", "version": "バージョン", - "cleanupDone": "{created}件のラベルレコードを同期し、{deleted}件の孤立レコードを削除しました", - "cleanupNothing": "実行不要 — ラベルはすでにノートと一致しています", - "cleanupWithErrors": "一部の操作に失敗しました", - "cleanupError": "ラベルのクリーンアップに失敗しました", - "indexingComplete": "インデックス完了:{count}件のノートを処理しました", - "indexingError": "インデックス作成中にエラーが発生しました", - "emailNotifications": "メール通知", - "emailNotificationsDesc": "重要な通知をメールで受け取ります", - "desktopNotifications": "デスクトップ通知", - "desktopNotificationsDesc": "ブラウザで通知を受け取ります", - "notificationsDesc": "通知設定を管理します" - }, - "sidebar": { - "archive": "アーカイブ", - "editLabels": "ラベルを編集", - "labels": "ラベル", - "notes": "ノート", - "reminders": "リマインダー", - "trash": "ゴミ箱", - "newNoteTabs": "新しいノート", - "newNoteTabsHint": "このノートブックにノートを作成", - "noLabelsInNotebook": "このノートブックにはまだラベルがありません" + "buildDate": "ビルド日", + "platform": "プラットフォーム", + "platformWeb": "Web", + "features": { + "title": "機能", + "description": "AI搭載機能", + "titleSuggestions": "AI搭載のタイトル提案", + "semanticSearch": "埋め込みによるセマンティック検索", + "paragraphReformulation": "段落の言い換え", + "memoryEcho": "Memory Echo デーリーインサイト", + "notebookOrganization": "ノートブックの整理", + "dragDrop": "ドラッグ&ドロップのノート管理", + "labelSystem": "ラベルシステム", + "multipleProviders": "複数のAIプロバイダー(OpenAI、Ollama)" + }, + "technology": { + "title": "テクノロジースタック", + "description": "最新技術で構築", + "frontend": "フロントエンド", + "backend": "バックエンド", + "database": "データベース", + "authentication": "認証", + "ai": "AI", + "ui": "UI", + "testing": "テスト" + }, + "support": { + "title": "サポート", + "description": "ヘルプとフィードバック", + "documentation": "ドキュメント", + "reportIssues": "問題を報告", + "feedback": "フィードバック" + } }, "support": { - "aiApiCosts": "AI APIコスト:", - "buyMeACoffee": "コーヒーをご馳走する", - "contributeCode": "コードを貢献", - "description": "Mementoは100%無料でオープンソースです。あなたのサポートがこの状態を維持するのに役立ちます。", - "directImpact": "直接的な影響", - "domainSSL": "ドメイン&SSL:", - "donateOnKofi": "Ko-fiで寄付", - "donationDescription": "一回限りの寄付をするか、月次サポーターになってください。", - "githubDescription": "定期的なサポート • 公開認知 • 開発者向け", - "hostingServers": "ホスティング&サーバー:", - "howSupportHelps": "あなたのサポートがどのように役立つか", - "kofiDescription": "プラットフォーム手数料なし • 即時支払い • 安全", - "otherWaysTitle": "その他のサポート方法", - "reportBug": "バグを報告", - "shareTwitter": "Twitterでシェア", - "sponsorDescription": "月次スポンサーになり、認知されましょう。", - "sponsorOnGithub": "GitHubでスポンサー", - "sponsorPerks": "スポンサー特典", - "starGithub": "GitHubでスターをつける", "title": "Mementoの開発をサポート", - "totalExpenses": "合計経費:", + "description": "Mementoは100%無料でオープンソースです。あなたのサポートがこの状態を維持するのに役立ちます。", + "buyMeACoffee": "コーヒーをご馳走する", + "donationDescription": "一回限りの寄付をするか、月次サポーターになってください。", + "donateOnKofi": "Ko-fiで寄付", + "kofiDescription": "プラットフォーム手数料なし • 即時支払い • 安全", + "sponsorOnGithub": "GitHubでスポンサー", + "sponsorDescription": "月次スポンサーになり、認知されましょう。", + "githubDescription": "定期的なサポート • 公開認知 • 開発者向け", + "howSupportHelps": "あなたのサポートがどのように役立つか", + "directImpact": "直接的な影響", + "sponsorPerks": "スポンサー特典", "transparency": "透明性", - "transparencyDescription": "私は完全な透明性を信じています。寄付の使い道は以下の通りです:" + "transparencyDescription": "私は完全な透明性を信じています。寄付の使い道は以下の通りです:", + "hostingServers": "ホスティング&サーバー:", + "domainSSL": "ドメイン&SSL:", + "aiApiCosts": "AI APIコスト:", + "totalExpenses": "合計経費:", + "otherWaysTitle": "その他のサポート方法", + "starGithub": "GitHubでスターをつける", + "reportBug": "バグを報告", + "contributeCode": "コードを貢献", + "shareTwitter": "Twitterでシェア" + }, + "demoMode": { + "title": "デモモード", + "activated": "デモモードがアクティブになりました!Memory Echoが即座に動作します。", + "deactivated": "デモモードが無効になりました。通常のパラメータに戻りました。", + "toggleFailed": "デモモードの切り替えに失敗しました", + "description": "テスト用にMemory Echoを高速化します。接続が即座に表示されます。", + "parametersActive": "デモパラメータがアクティブ:", + "similarityThreshold": "50% 類似度しきい値(通常75%)", + "delayBetweenNotes": "ノート間0日の遅延(通常7日)", + "unlimitedInsights": "無制限のインサイト(頻度制限なし)", + "createNotesTip": "2つ以上の類似ノートを作成してMemory Echoの動作を確認してください!" + }, + "resetPassword": { + "title": "パスワードをリセット", + "description": "以下に新しいパスワードを入力してください。", + "invalidLinkTitle": "無効なリンク", + "invalidLinkDescription": "このパスワードリセットリンクは無効または期限切れです。", + "requestNewLink": "新しいリンクをリクエスト", + "newPassword": "新しいパスワード", + "confirmNewPassword": "新しいパスワードを確認", + "resetting": "リセット中...", + "resetPassword": "パスワードをリセット", + "passwordMismatch": "パスワードが一致しません", + "success": "パスワードが正常にリセットされました。ログインできます。", + "loading": "読み込み中..." + }, + "dataManagement": { + "title": "データ管理", + "toolsDescription": "データベースの健全性を維持するツール", + "exporting": "エクスポート中...", + "importing": "インポート中...", + "deleting": "削除中...", + "dangerZone": "危険区域", + "dangerZoneDescription": "これらの操作は元に戻せません。注意してください", + "indexingComplete": "インデックス完了", + "indexingError": "インデックスエラー", + "cleanupComplete": "クリーンアップ完了", + "cleanupError": "クリーンアップエラー", + "export": { + "title": "すべてのノートをエクスポート", + "description": "すべてのノートをJSONファイルとしてダウンロードします。すべてのコンテンツ、ラベル、メタデータが含まれます。", + "button": "ノートをエクスポート", + "success": "ノートが正常にエクスポートされました", + "failed": "ノートのエクスポートに失敗しました" + }, + "import": { + "title": "ノートをインポート", + "description": "JSONファイルをアップロードしてノートをインポートします。これは既存のノートに追加され、置き換えられません。", + "button": "ノートをインポート", + "success": "{count}個のノートをインポートしました", + "failed": "ノートのインポートに失敗しました" + }, + "delete": { + "title": "すべてのノートを削除", + "description": "すべてのノートを完全に削除します。この操作は元に戻せません。", + "button": "すべてのノートを削除", + "confirm": "よろしいですか?これによりすべてのノートが完全に削除されます。", + "success": "すべてのノートが削除されました", + "failed": "ノートの削除に失敗しました" + }, + "indexing": { + "title": "検索インデックスを再構築", + "description": "セマンティック検索を改善するためにすべてのノートの埋め込みを再生成します。", + "button": "インデックスを再構築", + "success": "インデックス作成完了:{count}個のノートを処理", + "failed": "インデックス作成中にエラーが発生しました" + }, + "cleanup": { + "title": "孤立データをクリーンアップ", + "description": "削除されたノートを参照するラベルと接続を削除します。", + "button": "クリーンアップ", + "failed": "クリーンアップ中にエラーが発生しました" + } + }, + "appearance": { + "title": "外観", + "description": "アプリの見た目をカスタマイズ", + "notesViewDescription": "ホームとノートブックでノートを表示する方法を選択します。", + "notesViewLabel": "ノートのレイアウト", + "notesViewTabs": "タブ(OneNote風)", + "notesViewMasonry": "カード(グリッド)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "一般設定", + "description": "一般的なアプリケーション設定" + }, + "toast": { + "saved": "設定が保存されました", + "saveFailed": "設定の保存に失敗しました", + "operationSuccess": "操作が成功しました", + "operationFailed": "操作が失敗しました", + "openingConnection": "接続を開いています...", + "openConnectionFailed": "接続を開けませんでした", + "thanksFeedback": "フィードバックありがとうございます!", + "thanksFeedbackImproving": "ありがとうございます!改善に役立てます。", + "feedbackFailed": "フィードバックの送信に失敗しました", + "notesFusionSuccess": "ノートが正常にマージされました!" }, "testPages": { "titleSuggestions": { - "analyzing": "分析中...", - "contentLabel": "コンテンツ(50語以上必要):", - "error": "エラー:", - "idle": "アイドル", - "noSuggestions": "まだ提案がありません。50語以上入力して2秒待ってください。", - "placeholder": "ここに少なくとも50語を入力してください...", - "status": "ステータス:", - "suggestions": "提案({count}):", "title": "タイトル提案をテスト", - "wordCount": "単語数:" + "contentLabel": "コンテンツ(50語以上必要):", + "placeholder": "ここに少なくとも50語を入力してください...", + "wordCount": "単語数:", + "status": "ステータス:", + "analyzing": "分析中...", + "idle": "アイドル", + "error": "エラー:", + "suggestions": "提案({count}):", + "noSuggestions": "まだ提案がありません。50語以上入力して2秒待ってください。" } }, - "time": { - "daysAgo": "{count}日前", - "hoursAgo": "{count}時間前", - "justNow": "たった今", - "minutesAgo": "{count}分前", - "today": "今日", - "tomorrow": "明日", - "yesterday": "昨日" - }, - "titleSuggestions": { - "available": "タイトルの提案", - "dismiss": "無視", - "generating": "生成中...", - "selectTitle": "タイトルを選択", - "title": "AIの提案" - }, - "toast": { - "feedbackFailed": "フィードバックの送信に失敗しました", - "notesFusionSuccess": "ノートが正常にマージされました!", - "openConnectionFailed": "接続を開けませんでした", - "openingConnection": "接続を開いています...", - "operationFailed": "操作が失敗しました", - "operationSuccess": "操作が成功しました", - "saveFailed": "設定の保存に失敗しました", - "saved": "設定が保存されました", - "thanksFeedback": "フィードバックありがとうございます!", - "thanksFeedbackImproving": "ありがとうございます!改善に役立てます。" - }, "trash": { "title": "ゴミ箱", "empty": "ゴミ箱は空です", @@ -1256,11 +1212,83 @@ "permanentDelete": "完全に削除", "permanentDeleteConfirm": "このメモは完全に削除されます。この操作は取り消せません。" }, + "footer": { + "privacy": "プライバシー", + "terms": "利用規約", + "openSource": "オープンソースクローン" + }, + "connection": { + "similarityInfo": "これらのノートは{similarity}%の類似度で接続されています", + "clickToView": "クリックしてノートを表示", + "isHelpful": "この接続は役に立ちますか?", + "helpful": "役に立つ", + "notHelpful": "役に立たない", + "memoryEchoDiscovery": "Memory Echo 発見" + }, + "diagnostics": { + "title": "診断", + "description": "AIプロバイダーの接続状況を確認します", + "configuredProvider": "設定されたプロバイダー", + "apiStatus": "APIステータス", + "operational": "正常", + "errorStatus": "エラー", + "checking": "確認中...", + "testDetails": "テスト詳細:", + "troubleshootingTitle": "トラブルシューティングのヒント:", + "tip1": "Ollamaが実行されていることを確認(ollama serve)", + "tip2": "モデルがインストールされていることを確認(ollama pull llama3)", + "tip3": "OpenAIのAPIキーを確認", + "tip4": "ネットワーク接続を確認" + }, + "batch": { + "organizeWithAI": "AIで整理", + "organize": "整理" + }, + "common": { + "unknown": "不明", + "notAvailable": "利用不可", + "loading": "読み込み中...", + "error": "エラー", + "success": "成功", + "confirm": "確認", + "cancel": "キャンセル", + "close": "閉じる", + "save": "保存", + "delete": "削除", + "edit": "編集", + "add": "追加", + "remove": "削除", + "search": "検索", + "noResults": "結果なし", + "required": "必須", + "optional": "任意" + }, + "time": { + "justNow": "たった今", + "minutesAgo": "{count}分前", + "hoursAgo": "{count}時間前", + "daysAgo": "{count}日前", + "yesterday": "昨日", + "today": "今日", + "tomorrow": "明日" + }, + "favorites": { + "title": "お気に入り", + "toggleSection": "お気に入りセクションを切り替え", + "noFavorites": "お気に入りがありません", + "pinToFavorite": "お気に入りにピン留め" + }, + "notebooks": { + "create": "ノートブックを作成", + "allNotebooks": "すべてのノートブック", + "noNotebooks": "ノートブックがありません", + "createFirst": "最初のノートブックを作成" + }, "ui": { "close": "閉じる", - "collapse": "折りたたむ", + "open": "開く", "expand": "展開", - "open": "開く" + "collapse": "折りたたむ" }, "mcpSettings": { "title": "MCP設定", @@ -1327,6 +1355,10 @@ "subtitle": "監視・調査タスクを自動化", "newAgent": "新しいエージェント", "myAgents": "マイエージェント", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "エージェントなし", "noAgentsDescription": "最初のエージェントを作成するか、下のテンプレートをインストールして監視タスクを自動化しましょう。", "types": { @@ -1369,7 +1401,9 @@ "researchTopic": "調査テーマ", "researchTopicPlaceholder": "例: AIの最新動向", "notifyEmail": "メール通知", - "notifyEmailHint": "実行後にエージェントの結果をメールで受け取る" + "notifyEmailHint": "実行後にエージェントの結果をメールで受け取る", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "手動", @@ -1378,6 +1412,22 @@ "weekly": "毎週", "monthly": "毎月" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "成功", "failure": "失敗", @@ -1406,7 +1456,9 @@ "toggleError": "エージェントの切り替えエラー", "installSuccess": "「{name}」をインストールしました", "installError": "インストール中にエラーが発生しました", - "saveError": "保存エラー" + "saveError": "保存エラー", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "テンプレート", @@ -1519,7 +1571,8 @@ "welcome": "ノートの要約、新しいアイデアの生成、ノートブックについてのディスカッションなどをお手伝いします。", "searching": "検索中...", "noNotesFoundForContext": "この質問に関連するノートが見つかりませんでした。一般的な知識でお答えください。", - "webSearch": "ウェブ検索" + "webSearch": "ウェブ検索", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "ラボ", @@ -1536,30 +1589,8 @@ "createFailed": "作成に失敗しました", "deleteSpace": "スペースを削除", "deleted": "スペースを削除しました", - "deleteError": "削除エラー" - }, - "notification": { - "shared": "「{title}」を共有しました", - "untitled": "無題", - "notifications": "通知", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "共有を拒否しました", - "noNotifications": "No new notifications", - "removed": "リストからノートを削除しました" - }, - "reminders": { - "title": "リマインダー", - "empty": "リマインダーなし", - "emptyDescription": "ノートにリマインダーを追加すると、ここに表示されます。", - "upcoming": "予定", - "overdue": "期限切れ", - "done": "完了", - "markDone": "完了にする", - "markUndone": "未完了にする", - "todayAt": "今日 {time}", - "tomorrowAt": "明日 {time}" + "deleteError": "削除エラー", + "rename": "Rename" }, "lab": { "initializing": "ワークスペースを初期化中", diff --git a/memento-note/locales/ko.json b/memento-note/locales/ko.json index 13bb0e0..767df99 100644 --- a/memento-note/locales/ko.json +++ b/memento-note/locales/ko.json @@ -1,277 +1,329 @@ { - "about": { - "appDescription": "AI 기능을 갖춘 강력한 메모 애플리케이션", - "appName": "Memento", - "buildDate": "빌드 날짜", - "description": "애플리케이션 정보", - "features": { - "description": "AI 기반 기능", - "dragDrop": "드래그 앤 드롭 메모 관리", - "labelSystem": "레이블 시스템", - "memoryEcho": "Memory Echo 일일 인사이트", - "multipleProviders": "여러 AI 공급자 (OpenAI, Ollama)", - "notebookOrganization": "노트북 정리", - "paragraphReformulation": "단락 재구성", - "semanticSearch": "임베딩을 사용한 의미 검색", - "title": "기능", - "titleSuggestions": "AI 기반 제목 제안" - }, - "platform": "플랫폼", - "platformWeb": "웹", - "support": { - "description": "도움말 및 피드백", - "documentation": "문서", - "feedback": "피드백", - "reportIssues": "문제 보고", - "title": "지원" - }, - "technology": { - "ai": "AI", - "authentication": "인증", - "backend": "백엔드", - "database": "데이터베이스", - "description": "최신 기술로 구축", - "frontend": "프론트엔드", - "testing": "테스트", - "title": "기술 스택", - "ui": "UI" - }, - "title": "정보", - "version": "버전" + "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": "로그인으로 돌아가기", + "signOut": "로그아웃", + "confirmPassword": "비밀번호 확인", + "confirmPasswordPlaceholder": "비밀번호를 다시 입력하세요" }, - "admin": { - "ai": { - "apiKey": "API 키", - "baseUrl": "기본 URL", - "commonEmbeddingModels": "OpenAI 호환 API의 일반적인 임베딩 모델", - "commonModelsDescription": "OpenAI 호환 API의 일반적인 모델", - "description": "자동 태그 지정 및 의미 검색을 위한 AI 공급자를 구성합니다. 최적의 성능을 위해 다른 공급자를 사용하세요.", - "embeddingsDescription": "의미 검색 임베딩을 위한 AI 공급자. 권장: OpenAI (최고 품질).", - "embeddingsProvider": "임베딩 공급자", - "model": "모델", - "modelRecommendations": "gpt-4o-mini = 최고의 가성비 • gpt-4o = 최고 품질", - "openAIKeyDescription": "platform.openai.com의 OpenAI API 키", - "openTestPanel": "AI 테스트 패널 열기", - "provider": "공급자", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING이 필요합니다", - "providerTagsRequired": "AI_PROVIDER_TAGS가 필요합니다", - "saveSettings": "AI 설정 저장", - "saving": "저장 중...", - "selectEmbeddingModel": "시스템에 설치된 임베딩 모델 선택", - "selectOllamaModel": "시스템에 설치된 Ollama 모델 선택", - "tagsGenerationDescription": "자동 태그 제안을 위한 AI 공급자. 권장: Ollama (무료, 로컬).", - "tagsGenerationProvider": "태그 생성 공급자", - "title": "AI 구성", - "updateFailed": "AI 설정 업데이트 실패", - "updateSuccess": "AI 설정이 성공적으로 업데이트되었습니다", - "bestValue": "최고 가성비", - "bestQuality": "최고 품질", - "providerOllamaOption": "🦙 Ollama (로컬 및 무료)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 사용자 정의 OpenAI 호환", - "saved": "(저장됨)", - "chatProvider": "채팅 공급자", - "chatDescription": "채팅 도우미를 위한 AI 공급자입니다. 구성되지 않은 경우 태그 공급자를 대신 사용합니다.", - "fetchModelsFailed": "모델을 가져오지 못했습니다", - "refreshModels": "모델 새로고침", - "configured": "구성됨", - "fetchingModels": "모델 가져오는 중...", - "clickToLoadModels": "↺ 클릭하여 모델 로드", - "searchModel": "모델 검색...", - "noModels": "모델 없음. ↺ 클릭", - "modelsAvailable": "{count}개 모델 사용 가능", - "enterUrlToLoad": "URL 입력 후 ↺ 클릭", - "currentProvider": "(현재: {provider})", - "pageTitle": "AI 관리", - "pageDescription": "AI 기능 모니터링 및 구성", - "configure": "구성", - "features": "AI 기능", - "providerStatus": "AI 제공업체 상태", - "recentRequests": "최근 AI 요청", - "comingSoon": "출시 예정", - "activeFeatures": "활성 기능", - "successRate": "성공률", - "avgResponseTime": "평균 응답 시간", - "configuredProviders": "구성된 제공업체", - "settingUpdated": "설정이 업데이트되었습니다", - "updateFailedShort": "업데이트 실패", - "titleSuggestions": "제목 제안", - "titleSuggestionsDesc": "50단어 이상 노트에 제목 제안", - "aiAssistant": "AI 어시스턴트", - "aiAssistantDesc": "AI 채팅 및 텍스트 개선 도구 활성화", - "memoryEchoFeature": "무언가를 발견했습니다...", - "memoryEchoFeatureDesc": "노트 간 연결의 일일 분석", - "languageDetection": "언어 감지", - "languageDetectionDesc": "각 노트의 언어 자동 감지", - "autoLabeling": "자동 라벨링", - "autoLabelingDesc": "라벨 자동 제안 및 적용" - }, - "aiTest": { - "description": "태그 생성 및 의미 검색 임베딩을 위한 AI 공급자 테스트", - "embeddingDimensions": "임베딩 차원:", - "embeddingsTestDescription": "의미 검색 임베딩을 담당하는 AI 공급자 테스트", - "embeddingsTestTitle": "임베딩 테스트", - "error": "오류:", - "first5Values": "처음 5개 값:", - "generatedTags": "생성된 태그:", - "howItWorksTitle": "테스트 작동 방식", - "model": "모델:", - "provider": "공급자:", - "responseTime": "응답 시간: {time}ms", - "runTest": "테스트 실행", - "tagsTestDescription": "자동 태그 제안을 담당하는 AI 공급자 테스트", - "tagsTestTitle": "태그 생성 테스트", - "testError": "테스트 오류: {error}", - "testFailed": "테스트 실패", - "testPassed": "테스트 통과", - "testing": "테스트 중...", - "tipDescription": "테스트 전에 AI 테스트 패널을 사용하여 구성 문제를 진단하세요.", - "tipTitle": "팁:", - "title": "AI 공급자 테스트", - "vectorDimensions": "벡터 차원", - "tagsGenerationTest": "🏷️ 태그 생성 테스트:", - "tagsStep1": "샘플 노트를 AI 공급자에게 전송합니다", - "tagsStep2": "콘텐츠를 기반으로 3~5개의 관련 태그를 요청합니다", - "tagsStep3": "생성된 태그와 신뢰도 점수를 표시합니다", - "tagsStep4": "응답 시간을 측정합니다", - "embeddingsTestLabel": "🔍 임베딩 테스트:", - "embeddingsStep1": "샘플 텍스트를 임베딩 공급자에게 전송합니다", - "embeddingsStep2": "벡터 표현(숫자 목록)을 생성합니다", - "embeddingsStep3": "임베딩 차원과 샘플 값을 표시합니다", - "embeddingsStep4": "벡터가 유효하고 올바르게 형식화되었는지 확인합니다", - "tipContent": "태그와 임베딩에 다른 공급자를 사용할 수 있습니다! 예를 들어, 비용과 성능을 최적화하기 위해 태그에는 Ollama(무료)를, 임베딩에는 OpenAI(최고 품질)를 사용해 보세요.", - "testSuccessToast": "{type} 테스트 성공!", - "testFailedToast": "{type} 테스트 실패", - "testingType": "{type} 테스트 중...", - "technicalDetails": "기술 세부 정보" - }, - "aiTesting": "AI 테스트", - "security": { - "allowPublicRegistration": "공개 등록 허용", - "allowPublicRegistrationDescription": "비활성화하면 새 사용자는 관리자가 사용자 관리 페이지를 통해서만 추가할 수 있습니다.", - "description": "액세스 제어 및 등록 정책을 관리합니다.", - "title": "보안 설정", - "updateFailed": "보안 설정 업데이트 실패", - "updateSuccess": "보안 설정이 업데이트되었습니다" - }, - "settings": "관리자 설정", - "resend": { - "title": "Resend (권장)", - "description": "Resend API로 이메일을 보냅니다. 구성된 경우 SMTP보다 우선합니다.", - "apiKey": "Resend API 키", - "apiKeyHint": "resend.com에서 API 키를 받으세요. 에이전트 알림 및 비밀번호 재설정에 사용됩니다.", - "saveSettings": "Resend 설정 저장", - "updateSuccess": "Resend 설정이 업데이트되었습니다", - "updateFailed": "Resend 설정 업데이트 실패", - "configured": "Resend이 구성되어 활성화되었습니다" - }, - "email": { - "title": "이메일 설정", - "description": "에이전트 알림 및 비밀번호 재설정을 위한 이메일 발송을 설정합니다.", - "provider": "이메일 제공자", - "saveSettings": "이메일 설정 저장" - }, - "smtp": { - "description": "비밀번호 재설정을 위한 이메일 서버를 구성합니다.", - "forceSSL": "SSL/TLS 강제 (일반적으로 포트 465)", - "fromEmail": "보내는 사람 이메일", - "host": "호스트", - "ignoreCertErrors": "인증서 오류 무시 (자체 호스팅/개발만)", - "password": "비밀번호", - "port": "포트", - "saveSettings": "SMTP 설정 저장", - "sending": "전송 중...", - "testEmail": "테스트 이메일", - "testFailed": "실패: {error}", - "testSuccess": "테스트 이메일이 성공적으로 전송되었습니다!", - "title": "SMTP 구성", - "updateFailed": "SMTP 설정 업데이트 실패", - "updateSuccess": "SMTP 설정이 업데이트되었습니다", - "username": "사용자 이름" - }, - "title": "관리자 대시보드", - "userManagement": "사용자 관리", - "users": { - "addUser": "사용자 추가", - "confirmDelete": "확실합니까? 이 작업은 되돌릴 수 없습니다.", - "createFailed": "사용자 생성 실패", - "createSuccess": "사용자가 성공적으로 생성되었습니다", - "createUser": "사용자 생성", - "createUserDescription": "시스템에 새 사용자를 추가합니다.", - "deleteFailed": "삭제 실패", - "deleteSuccess": "사용자가 삭제되었습니다", - "demote": "강등", - "email": "이메일", - "name": "이름", - "password": "비밀번호", - "promote": "승격", - "role": "역할", - "roleUpdateFailed": "역할 업데이트 실패", - "roleUpdateSuccess": "사용자 역할이 {role}(으)로 업데이트되었습니다", - "roles": { - "admin": "관리자", - "user": "사용자" - }, - "table": { - "actions": "작업", - "createdAt": "생성일", - "email": "이메일", - "name": "이름", - "role": "역할" - }, - "title": "사용자", - "description": "사용자 및 권한 관리" - }, - "chat": "AI 채팅", - "lab": "랩", - "agents": "에이전트", - "workspace": "작업 공간", - "sidebar": { - "dashboard": "대시보드", - "users": "사용자", - "aiManagement": "AI 관리", - "chat": "AI 채팅", - "lab": "랩 (아이디어)", - "agents": "에이전트", - "settings": "설정" - }, - "metrics": { - "vsLastPeriod": "이전 기간 대비" - }, - "tools": { - "title": "에이전트 도구", - "description": "에이전트 도구 사용을 위한 외부 도구를 구성합니다: 웹 검색, 웹 스크랩 및 API 액세스.", - "searchProvider": "웹 검색 공급자", - "searxng": "SearXNG (자체 호스팅)", - "brave": "Brave Search API", - "both": "둘 다 (SearXNG 기본, Brave 대체)", - "searxngUrl": "SearXNG URL", - "braveKey": "Brave Search API 키", - "jinaKey": "Jina Reader API 키", - "jinaKeyOptional": "선택 사항 — 키 없이도 작동하지만 속도 제한이 적용됩니다", - "jinaKeyDescription": "웹 스크랩에 사용됩니다. 키 없이도 작동하지만 속도 제한이 적용됩니다.", - "saveSettings": "도구 설정 저장", - "updateSuccess": "도구 설정이 성공적으로 업데이트되었습니다", - "updateFailed": "도구 설정 업데이트 실패", - "testing": "테스트 중...", - "testSearch": "웹 검색 테스트" - }, - "settingsDescription": "애플리케이션 설정 구성", - "dashboard": { - "title": "대시보드", - "description": "애플리케이션 지표 개요", - "recentActivity": "최근 활동", - "recentActivityPlaceholder": "최근 활동이 여기에 표시됩니다." - }, - "error": { - "title": "관리자 패널에서 오류 발생", - "description": "페이지 렌더링 실패. 다시 시도할 수 있습니다.", - "retry": "재시도" - } + "sidebar": { + "notes": "노트", + "reminders": "알림", + "labels": "라벨", + "editLabels": "라벨 편집", + "newNoteTabs": "새 노트", + "newNoteTabsHint": "이 노트북에 노트 만들기", + "noLabelsInNotebook": "이 노트북에는 아직 라벨이 없습니다", + "archive": "보관함", + "trash": "휴지통", + "clearFilter": "Remove filter" + }, + "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": "메모 생성 실패", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "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)", + "pinnedNotes": "고정된 메모", + "recent": "최근", + "addNote": "메모 추가", + "remove": "제거", + "dragToReorder": "드래그하여 재정렬", + "more": "더 보기", + "emptyState": "메모가 없습니다", + "emptyStateTabs": "아직 노트가 없습니다. 사이드바의 \"새 노트\"를 사용하여 추가하세요 (AI 제목 제안이 작성기에 나타납니다).", + "inNotebook": "노트북에서", + "moveFailed": "이동 실패", + "clarifyFailed": "명확화 실패", + "shortenFailed": "단축 실패", + "improveFailed": "개선 실패", + "transformFailed": "변환 실패", + "markdown": "Markdown", + "unpinned": "고정 해제됨", + "redoShortcut": "다시 실행 (Ctrl+Y)", + "undoShortcut": "실행 취소 (Ctrl+Z)", + "viewCards": "카드 보기", + "viewCardsTooltip": "드래그 앤 드롭으로 재정렬 가능한 카드 그리드", + "viewTabs": "리스트 보기", + "viewTabsTooltip": "상단에 탭, 하단에 노트 — 탭을 드래그하여 재정렬", + "viewModeGroup": "노트 표시 모드", + "reorderTabs": "탭 재정렬", + "modified": "수정됨", + "created": "생성됨", + "loading": "로딩 중...", + "exportPDF": "PDF 내보내기", + "savedStatus": "저장됨", + "dirtyStatus": "수정됨", + "completedLabel": "완료", + "notes.emptyNotebook": "빈 노트북", + "notes.emptyNotebookDesc": "이 노트북에 노트가 없습니다. +를 클릭하여 만드세요.", + "notes.noNoteSelected": "선택된 노트 없음", + "notes.selectOrCreateNote": "목록에서 노트를 선택하거나 새로 만드세요.", + "commitVersion": "버전 저장", + "versionSaved": "버전이 저장되었습니다", + "deleteVersion": "이 버전 삭제", + "versionDeleted": "버전이 삭제되었습니다", + "deleteVersionConfirm": "이 버전을 영구적으로 삭제하시겠습니까?", + "historyMode": "기록 모드", + "historyModeManual": "수동 (커밋 버튼)", + "historyModeAuto": "자동 (스마트)", + "historyModeManualDesc": "커밋 버튼으로 수동 스냅샷 생성", + "historyModeAutoDesc": "스마트 감지로 자동 스냅샷 생성", + "history": "기록", + "historyRestored": "버전이 복원되었습니다", + "historyEnabled": "기록이 활성화되었습니다", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "기록이 비활성화되어 있습니다.", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "기록 활성화", + "historyEmpty": "사용 가능한 버전이 없습니다", + "historySelectVersion": "미리볼 버전을 선택하세요", + "sortBy": "정렬", + "sortDateDesc": "날짜 (최신)", + "sortDateAsc": "날짜 (오래된)", + "sortTitleAsc": "제목 A → Z", + "sortTitleDesc": "제목 Z → A", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "pagination": { + "previous": "←", + "pageInfo": "페이지 {currentPage} / {totalPages}", + "next": "→" + }, + "labels": { + "title": "Labels", + "filter": "Filter by Label", + "manage": "Manage Labels", + "manageTooltip": "Manage Labels", + "changeColor": "색상 변경", + "changeColorTooltip": "색상 변경", + "delete": "Delete", + "deleteTooltip": "Delete label", + "confirmDelete": "이 라벨을 삭제하시겠습니까?", + "newLabelPlaceholder": "Create new label", + "namePlaceholder": "Enter label name", + "addLabel": "라벨 추가", + "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": "모든 라벨", + "clearAll": "모두 지우기", + "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}개 라벨", + "noLabels": "라벨 없음", + "confirmDeleteShort": "확인?", + "labelRemoved": "라벨 \"{label}\" 제거됨" + }, + "search": { + "placeholder": "검색", + "searchPlaceholder": "노트 검색...", + "semanticInProgress": "AI 검색 진행 중...", + "semanticTooltip": "AI 의미 검색", + "searching": "검색 중...", + "noResults": "검색 결과 없음", + "resultsFound": "{count}개의 노트를 찾았습니다", + "exactMatch": "정확히 일치", + "related": "관련", + "disabledAdmin": "관리자 모드에서 검색 비활성화" + }, + "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": "재구성됨", "autoLabels": { "error": "라벨 제안을 가져오지 못했습니다", "noLabelsSelected": "선택된 라벨이 없습니다", @@ -304,47 +356,11 @@ "selectAllIn": "{notebook}의 모든 노트 선택", "selectNote": "노트 선택: {title}" }, - "clarify": "명확히 하기", - "clickToAddTag": "클릭하여 이 태그 추가", - "generateTitles": "제목 생성", - "generateTitlesTooltip": "AI로 제목 생성", - "generating": "생성 중...", - "generatingTitles": "제목 생성 중...", - "ignoreSuggestion": "이 제안 무시", - "improveStyle": "스타일 개선", - "languageDetected": "감지된 언어", "notebookSummary": { "regenerate": "요약 다시 생성", "regenerating": "요약 다시 생성 중...", "exportPDF": "PDF로 내보내기" }, - "original": "원본", - "poweredByAI": "AI 기반", - "processing": "처리 중...", - "reformulateText": "텍스트 재구성", - "reformulated": "재구성됨", - "reformulating": "재구성 중...", - "reformulationApplied": "재구성된 텍스트가 적용되었습니다!", - "reformulationComparison": "재구성 비교", - "reformulationError": "재구성 중 오류", - "reformulationFailed": "텍스트 재구성 실패", - "reformulationMaxWords": "텍스트는 최대 500단어까지 가능합니다", - "reformulationMinWords": "텍스트는 최소 10단어 이상이어야 합니다 (현재: {count}단어)", - "reformulationNoText": "텍스트를 선택하거나 내용을 추가하세요", - "reformulationSelectionTooShort": "선택 항목이 너무 짧습니다. 전체 내용을 사용합니다", - "shorten": "단축", - "tagAdded": "태그 \"{tag}\"가 추가되었습니다", - "titleApplied": "제목이 적용되었습니다!", - "titleGenerateWithAI": "AI로 제목 생성", - "titleGenerating": "생성 중...", - "titleGenerationError": "제목 생성 오류", - "titleGenerationFailed": "제목 생성 실패", - "titleGenerationMinWords": "제목을 생성하려면 내용이 최소 10단어 이상이어야 합니다 (현재: {count}단어)", - "titlesGenerated": "💡 {count}개의 제목이 생성되었습니다!", - "transformError": "변환 중 오류", - "transformMarkdown": "Markdown으로 변환", - "transformSuccess": "텍스트가 Markdown으로 성공적으로 변환되었습니다!", - "transforming": "변환 중...", "clarifyDesc": "텍스트를 더 명확하고 이해하기 쉽게 만듭니다", "shortenDesc": "텍스트를 요약하고 핵심만 전달합니다", "improve": "글쓰기 개선", @@ -389,11 +405,14 @@ "transformationsDesc": "변환 — 노트에 직접 적용", "writeMinWordsAction": "AI 작업을 활성화하려면 최소 5단어를 작성하세요.", "processingAction": "처리 중...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "명확화", "shorten": "요약", "improve": "개선", - "toMarkdown": "Markdown으로" + "toMarkdown": "Markdown으로", + "describeImages": "Describe images" }, "openAssistant": "AI 어시스턴트 열기", "poweredByMomento": "Momento AI 제공", @@ -408,22 +427,256 @@ "historyTab": "기록", "insightsTab": "인사이트", "aiCopilot": "AI 코파일럿", - "suggestTitle": "AI 제목 제안" + "suggestTitle": "AI 제목 제안", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" + }, + "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}", + "match": "{percentage}% 일치", + "fused": "병합됨", + "clickToView": "클릭하여 메모 보기", + "overlay": { + "title": "연결된 메모", + "searchPlaceholder": "연결 검색...", + "sortBy": "정렬 기준:", + "sortSimilarity": "유사성", + "sortRecent": "최근", + "sortOldest": "오래됨", + "viewAll": "모두 나란히 보기", + "loading": "로딩 중...", + "noConnections": "연결을 찾을 수 없습니다", + "error": "연결 로드 오류" + }, + "comparison": { + "title": "💡 메모 비교", + "similarityInfo": "이 메모는 {similarity}% 유사성으로 연결되어 있습니다", + "highSimilarityInsight": "이 메모는 높은 유사성으로 동일한 주제를 다룹니다. 병합하거나 통합할 수 있습니다.", + "untitled": "제목 없음", + "clickToView": "클릭하여 메모 보기", + "helpfulQuestion": "이 비교가 도움이 되나요?", + "helpful": "도움이 됨", + "notHelpful": "도움이 안 됨" + }, + "editorSection": { + "title": "⚡ 연결된 메모 ({count})", + "loading": "로딩 중...", + "view": "보기", + "compare": "비교", + "merge": "병합", + "compareAll": "모두 비교", + "mergeAll": "모두 병합", + "close": "닫기" + }, + "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": "알 수 없는 날짜" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "\"{title}\"을(를) 공유했습니다", + "untitled": "제목 없음", + "notifications": "알림", + "declined": "공유가 거절되었습니다", + "removed": "목록에서 노트가 제거되었습니다" + }, + "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": "프로 플랜", + "chat": "AI 채팅", + "lab": "랩", + "agents": "에이전트" + }, + "settings": { + "title": "설정", + "description": "설정 및 환경설정 관리", + "account": "계정", + "appearance": "모양", + "theme": "테마", + "themeLight": "밝게", + "themeDark": "어둡게", + "themeSystem": "시스템", + "notifications": "알림", + "language": "언어", + "selectLanguage": "언어 선택", + "security": "보안", + "about": "정보", + "version": "버전", + "settingsSaved": "설정이 저장되었습니다", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "설정 저장 오류", + "maintenance": "유지 관리", + "maintenanceDescription": "데이터베이스 상태를 유지하는 도구", + "cleanTags": "고아 태그 정리", + "cleanTagsDescription": "더 이상 노트에서 사용되지 않는 태그를 제거합니다", + "cleanupDone": "{created}개의 라벨 레코드를 동기화하고 {deleted}개의 고아를 제거했습니다", + "cleanupNothing": "할 일이 없습니다 — 라벨이 이미 노트와 일치합니다", + "cleanupWithErrors": "일부 작업이 실패했습니다", + "cleanupError": "라벨을 정리할 수 없습니다", + "indexingComplete": "인덱싱 완료: {count}개의 노트 처리됨", + "indexingError": "인덱싱 중 오류 발생", + "semanticIndexing": "의미 인덱싱", + "semanticIndexingDescription": "의도 기반 검색을 활성화하기 위해 모든 노트의 벡터를 생성합니다", + "profile": "프로필", + "searchNoResults": "일치하는 설정을 찾을 수 없습니다", + "languageAuto": "자동 감지", + "emailNotifications": "이메일 알림", + "emailNotificationsDesc": "이메일로 중요한 알림을 받습니다", + "desktopNotifications": "데스크톱 알림", + "desktopNotificationsDesc": "브라우저에서 알림을 받습니다", + "notificationsDesc": "알림 환경설정을 관리합니다" + }, + "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": "글꼴 크기 업데이트 실패", + "showRecentNotes": "최근 노트 섹션 표시", + "showRecentNotesDescription": "메인 페이지에 최근 노트(지난 7일)를 표시합니다", + "recentNotesUpdateSuccess": "최근 노트 설정이 업데이트되었습니다", + "recentNotesUpdateFailed": "최근 노트 설정 업데이트 실패" }, "aiSettings": { + "title": "AI 설정", "description": "AI 기반 기능 및 환경설정 구성", - "error": "설정 업데이트 실패", "features": "AI 기능", - "frequency": "빈도", - "frequencyDaily": "매일", - "frequencyWeekly": "매주", "provider": "AI 공급자", "providerAuto": "자동 (권장)", "providerOllama": "Ollama (로컬)", "providerOpenAI": "OpenAI (클라우드)", - "saved": "설정이 업데이트되었습니다", + "frequency": "빈도", + "frequencyDaily": "매일", + "frequencyWeekly": "매주", "saving": "저장 중...", - "title": "AI 설정", + "saved": "설정이 업데이트되었습니다", + "error": "설정 업데이트 실패", "titleSuggestionsDesc": "50단어 이상에서 제목 없는 노트에 제목 제안", "paragraphRefactorDesc": "AI 기반 텍스트 개선 옵션", "frequencyDesc": "노트 연결 분석 빈도", @@ -432,792 +685,518 @@ "providerOllamaDesc": "100% 프라이빗, 로컬에서 실행", "providerOpenAIDesc": "가장 정확, API 키 필요" }, - "appearance": { - "description": "앱의 모양 사용자 지정", - "title": "모양", - "notesViewDescription": "홈 및 노트북에서 메모가 표시되는 방식을 선택하세요.", - "notesViewLabel": "메모 레이아웃", - "notesViewTabs": "탭 (OneNote 스타일)", - "notesViewMasonry": "카드 (그리드)" - }, - "auth": { - "backToLogin": "로그인으로 돌아가기", - "checkYourEmail": "이메일을 확인하세요", - "createAccount": "계정 만들기", - "email": "이메일", - "emailPlaceholder": "이메일 주소를 입력하세요", - "forgotPassword": "비밀번호를 잊으셨나요?", - "forgotPasswordDescription": "이메일 주소를 입력하시면 비밀번호 재설정 링크를 보내드립니다.", - "forgotPasswordTitle": "비밀번호 찾기", - "hasAccount": "이미 계정이 있으신가요?", - "name": "이름", - "namePlaceholder": "이름을 입력하세요", - "noAccount": "계정이 없으신가요?", - "orContinueWith": "또는 다음으로 계속", - "password": "비밀번호", - "passwordMinChars": "비밀번호 입력 (최소 6자)", - "passwordPlaceholder": "비밀번호를 입력하세요", - "rememberMe": "로그인 상태 유지", - "resetEmailSent": "시스템에 이메일이 존재하는 경우 비밀번호 재설정 링크를 보내드렸습니다.", - "resetPassword": "비밀번호 재설정", - "resetPasswordInstructions": "비밀번호를 재설정하려면 이메일을 입력하세요", - "returnToLogin": "로그인으로 돌아가기", - "sendResetLink": "재설정 링크 전송", - "sending": "전송 중...", - "signIn": "로그인", - "signInToAccount": "계정에 로그인하세요", - "signOut": "로그아웃", - "signUp": "회원가입", - "confirmPassword": "비밀번호 확인", - "confirmPasswordPlaceholder": "비밀번호를 다시 입력하세요" - }, - "autoLabels": { - "analyzing": "메모 분석 중...", - "createNewLabel": "이 새 레이블을 생성하고 추가", - "created": "{count}개 레이블이 성공적으로 생성되었습니다", - "description": "\"{notebookName}\" ({totalNotes}개 메모)에서 반복되는 주제를 감지했습니다. 레이블을 생성하시겠습니까?", - "error": "레이블 제안 가져오기 실패", - "new": "(새로운)", - "noLabelsSelected": "선택된 레이블 없음", - "note": "메모", - "notes": "메모", - "title": "새 레이블 제안", - "typeContent": "콘텐츠를 입력하여 레이블 제안을 받으세요...", - "typeForSuggestions": "제안을 받으려면 입력하세요..." - }, - "batch": { - "organize": "정리", - "organizeWithAI": "AI로 정리하기" - }, - "batchOrganization": { - "analyzing": "메모 분석 중...", - "apply": "적용 ({count})", - "applyFailed": "정리 적용 실패", - "applying": "적용 중...", - "confidence": "신뢰도", - "description": "AI가 메모를 분석하여 노트북으로 정리할 제안을 드립니다.", - "error": "조직화 계획 생성 실패", - "noNotebooks": "사용 가능한 노트북이 없습니다. 먼저 노트북을 생성하여 메모를 정리하세요.", - "noNotesSelected": "선택된 메모 없음", - "noSuggestions": "AI가 이 메모들을 정리할 좋은 방법을 찾지 못했습니다.", - "notesToOrganize": "{count}개 메모 정리", - "selectAllIn": "모두 선택", - "selectNote": "메모 선택", - "selected": "{count}개 선택됨", - "success": "정리 성공", - "title": "AI로 정리하기", - "unorganized": "{count}개 메모는 범주화되지 않아 일반 메모에 남게 됩니다." - }, - "collaboration": { - "accessRevoked": "접근 권한이 취소되었습니다", - "addCollaborator": "공동 작업자 추가", - "addCollaboratorDescription": "이메일 주소로 이 노트에 공동 작업할 사람을 추가하세요.", - "alreadyInList": "이 이메일은 이미 목록에 있습니다", - "canEdit": "편집 가능", - "canView": "보기 가능", - "done": "완료", - "emailAddress": "이메일 주소", - "emailPlaceholder": "이메일 주소를 입력하세요", - "enterEmailAddress": "이메일 주소를 입력하세요", - "errorLoading": "공동 작업자 로드 중 오류", - "failedToAdd": "공동 작업자 추가 실패", - "failedToRemove": "공동 작업자 제거 실패", - "invite": "초대", - "noCollaborators": "아직 공동 작업자가 없습니다. 위에서 추가하세요!", - "noCollaboratorsViewer": "아직 공동 작업자가 없습니다.", - "nowHasAccess": "{name}님이 이 노트에 접근할 수 있습니다", - "owner": "소유자", - "pending": "대기 중", - "pendingInvite": "초대 대기 중", - "peopleWithAccess": "접근 권한이 있는 사용자", - "remove": "제거", - "removeCollaborator": "공동 작업자 제거", - "shareNote": "노트 공유", - "shareWithCollaborators": "공동 작업자와 공유", - "unnamedUser": "이름 없는 사용자", - "viewerDescription": "이 노트에 접근 권한이 있습니다. 소유자만 공동 작업자를 관리할 수 있습니다.", - "willBeAdded": "{email}님이 노트 생성 시 공동 작업자로 추가됩니다" + "general": { + "loading": "로딩 중...", + "save": "저장", + "cancel": "취소", + "add": "추가", + "edit": "편집", + "confirm": "확인", + "close": "닫기", + "back": "뒤로", + "next": "다음", + "previous": "이전", + "submit": "제출", + "reset": "재설정", + "apply": "적용", + "clear": "지우기", + "select": "선택", + "tryAgain": "다시 시도하세요", + "error": "오류가 발생했습니다", + "operationSuccess": "작업 성공", + "operationFailed": "작업 실패", + "testConnection": "연결 테스트", + "clean": "정리", + "indexAll": "모두 인덱싱", + "preview": "미리보기" }, "colors": { - "blue": "파란색", "default": "기본값", - "gray": "회색", - "green": "초록색", - "orange": "주황색", - "pink": "분홍색", - "purple": "보라색", "red": "빨간색", - "yellow": "노란색" + "blue": "파란색", + "green": "초록색", + "yellow": "노란색", + "purple": "보라색", + "pink": "분홍색", + "orange": "주황색", + "gray": "회색" }, - "common": { - "add": "추가", - "cancel": "취소", - "close": "닫기", - "confirm": "확인", - "delete": "삭제", - "edit": "편집", - "error": "오류", - "loading": "로딩 중...", - "noResults": "결과 없음", - "notAvailable": "사용 불가", - "optional": "선택", - "remove": "제거", - "required": "필수", - "save": "저장", - "search": "검색", - "success": "성공", - "unknown": "알 수 없음" + "reminder": { + "title": "알림", + "setReminder": "알림 설정", + "removeReminder": "알림 제거", + "reminderDate": "알림 날짜", + "reminderTime": "알림 시간", + "save": "알림 설정", + "cancel": "취소" }, - "connection": { - "clickToView": "클릭하여 메모 보기", - "helpful": "도움이 됨", - "isHelpful": "이 연결이 도움이 되나요?", - "memoryEchoDiscovery": "Memory Echo 발견", - "notHelpful": "도움이 안 됨", - "similarityInfo": "이 메모들은 {similarity}% 유사성으로 연결되어 있습니다" - }, - "dataManagement": { - "cleanup": { - "button": "정리", - "description": "삭제된 메모를 참조하는 레이블과 연결을 제거합니다.", - "failed": "정리 중 오류 발생", - "title": "고아 데이터 정리" - }, - "cleanupComplete": "정리 완료", - "cleanupError": "정리 오류", - "dangerZone": "위험 구역", - "dangerZoneDescription": "이러한 작업은 되돌릴 수 없습니다. 주의하세요", - "delete": { - "button": "모든 메모 삭제", - "confirm": "확실합니까? 모든 메모가 영구적으로 삭제됩니다.", - "description": "모든 메모를 영구적으로 삭제합니다. 이 작업은 취소할 수 없습니다.", - "failed": "메모 삭제 실패", - "success": "모든 메모가 삭제되었습니다", - "title": "모든 메모 삭제" - }, - "deleting": "삭제하는 중...", - "export": { - "button": "메모 내보내기", - "description": "모든 메모를 JSON 파일로 다운로드합니다. 모든 콘텐츠, 레이블 및 메타데이터가 포함됩니다.", - "failed": "메모 내보내기 실패", - "success": "메모 내보내기 성공", - "title": "모든 메모 내보내기" - }, - "exporting": "내보내는 중...", - "import": { - "button": "메모 가져오기", - "description": "JSON 파일을 업로드하여 메모를 가져옵니다. 기존 메모에 추가되며 교체되지 않습니다.", - "failed": "메모 가져오기 실패", - "success": "{count}개의 메모를 가져왔습니다", - "title": "메모 가져오기" - }, - "importing": "가져오는 중...", - "indexing": { - "button": "인덱스 재구축", - "description": "의미 검색을 개선하기 위해 모든 메모의 임베딩을 재생성합니다.", - "failed": "인덱싱 중 오류 발생", - "success": "인덱싱 완료: {count}개의 메모 처리됨", - "title": "검색 인덱스 재구축" - }, - "indexingComplete": "인덱싱 완료", - "indexingError": "인덱싱 오류", - "title": "데이터 관리", - "toolsDescription": "데이터베이스 상태를 유지하는 도구" - }, - "demoMode": { - "activated": "데모 모드가 활성화되었습니다! Memory Echo가 즉시 작동합니다.", - "createNotesTip": "2개 이상의 유사한 메모를 만들어 Memory Echo가 작동하는 것을 확인하세요!", - "deactivated": "데모 모드가 비활성화되었습니다. 정상 매개변수로 복원되었습니다.", - "delayBetweenNotes": "메모 간 0일 지연 (일반적으로 7일)", - "description": "테스트를 위해 Memory Echo를 가속화합니다. 연결이 즉시 나타납니다.", - "parametersActive": "데모 매개변수 활성화:", - "similarityThreshold": "50% 유사성 임계값 (일반적으로 75%)", - "title": "데모 모드", - "toggleFailed": "데모 모드 전환 실패", - "unlimitedInsights": "무제한 인사이트 (빈도 제한 없음)" - }, - "diagnostics": { - "apiStatus": "API 상태", - "checking": "확인 중...", - "configuredProvider": "구성된 공급자", - "description": "AI 공급자 연결 상태를 확인하세요", - "errorStatus": "오류", - "operational": "정상 작동", - "testDetails": "테스트 세부 정보:", - "tip1": "Ollama가 실행 중인지 확인 (ollama serve)", - "tip2": "모델이 설치되어 있는지 확인 (ollama pull llama3)", - "tip3": "OpenAI API 키 확인", - "tip4": "네트워크 연결 확인", - "title": "진단", - "troubleshootingTitle": "문제 해결 팁:" - }, - "favorites": { - "noFavorites": "즐겨찾기 없음", - "pinToFavorite": "즐겨찾기에 고정", - "title": "즐겨찾기", - "toggleSection": "즐겨찾기 섹션 전환" - }, - "footer": { - "openSource": "오픈 소스 클론", - "privacy": "개인정보", - "terms": "이용약관" - }, - "general": { - "add": "추가", - "apply": "적용", - "back": "뒤로", - "cancel": "취소", - "clean": "정리", - "clear": "지우기", - "close": "닫기", - "confirm": "확인", - "edit": "편집", - "error": "오류가 발생했습니다", - "indexAll": "모두 인덱싱", - "loading": "로딩 중...", - "next": "다음", - "operationFailed": "작업 실패", - "operationSuccess": "작업 성공", - "preview": "미리보기", - "previous": "이전", - "reset": "재설정", - "save": "저장", - "select": "선택", - "submit": "제출", - "testConnection": "연결 테스트", - "tryAgain": "다시 시도하세요" - }, - "generalSettings": { - "description": "일반 애플리케이션 설정", - "title": "일반 설정" - }, - "labels": { - "addLabel": "라벨 추가", - "allLabels": "모든 라벨", - "changeColor": "색상 변경", - "changeColorTooltip": "색상 변경", - "clearAll": "모두 지우기", - "confirmDelete": "이 라벨을 삭제하시겠습니까?", - "count": "{count}개 라벨", - "noLabels": "라벨 없음", - "confirmDeleteShort": "확인?", - "labelRemoved": "라벨 \"{label}\" 제거됨" - }, - "memoryEcho": { - "clickToView": "클릭하여 메모 보기", - "comparison": { - "clickToView": "클릭하여 메모 보기", - "helpful": "도움이 됨", - "helpfulQuestion": "이 비교가 도움이 되나요?", - "highSimilarityInsight": "이 메모는 높은 유사성으로 동일한 주제를 다룹니다. 병합하거나 통합할 수 있습니다.", - "notHelpful": "도움이 안 됨", - "similarityInfo": "이 메모는 {similarity}% 유사성으로 연결되어 있습니다", - "title": "💡 메모 비교", - "untitled": "제목 없음" - }, - "connection": "연결", - "connections": "연결", - "connectionsBadge": "{count}개 연결{plural}", - "dailyInsight": "메모에서 매일 인사이트 얻기", - "description": "메모 간의 능동적 연결", - "dismiss": "지금은 무시", - "editorSection": { - "close": "닫기", - "compare": "비교", - "compareAll": "모두 비교", - "loading": "로딩 중...", - "merge": "병합", - "mergeAll": "모두 병합", - "title": "⚡ 연결된 메모 ({count})", - "view": "보기" - }, - "fused": "병합됨", - "fusion": { - "archiveOriginals": "원본 메모 보관", - "cancel": "취소", - "confirmFusion": "병합 확인", - "createBacklinks": "원본 메모에 대한 백링크 만들기", - "edit": "편집", - "error": "메모 병합 실패", - "finishEditing": "편집 완료", - "generateError": "병합 생성 실패", - "generateFusion": "병합 생성", - "generating": "생성 중...", - "keepAllTags": "모든 태그 유지", - "mergeNotes": "{count}개 메모 병합", - "modify": "수정", - "noContentReturned": "API에서 병합 콘텐츠가 반환되지 않았습니다", - "notesToMerge": "📝 병합할 메모", - "optionalPrompt": "💬 병합 프롬프트 (선택 사항)", - "optionsTitle": "병합 옵션", - "previewTitle": "📝 병합된 메모 미리보기", - "promptPlaceholder": "AI에 대한 선택적 지침 (예: '메모 1의 격식적인 스타일 유지')...", - "success": "메모가 성공적으로 병합되었습니다!", - "title": "🔗 지능형 병합", - "unknownDate": "알 수 없는 날짜", - "useLatestTitle": "최신 메모를 제목으로 사용" - }, - "helpful": "도움이 됨", - "insightReady": "인사이트가 준비되었습니다!", - "notHelpful": "도움이 안 됨", - "overlay": { - "error": "연결 로드 오류", - "loading": "로딩 중...", - "noConnections": "연결을 찾을 수 없습니다", - "searchPlaceholder": "연결 검색...", - "sortBy": "정렬 기준:", - "sortOldest": "오래됨", - "sortRecent": "최근", - "sortSimilarity": "유사성", - "title": "연결된 메모", - "viewAll": "모두 나란히 보기" - }, - "thanksFeedback": "피드백해 주셔서 감사합니다!", - "thanksFeedbackImproving": "감사합니다! 개선하는 데 활용하겠습니다.", - "title": "무언가를 발견했습니다...", - "viewConnection": "연결 보기", - "match": "{percentage}% 일치" - }, - "nav": { - "accountSettings": "계정 설정", - "adminDashboard": "관리자 대시보드", - "aiSettings": "AI 설정", - "archive": "보관함", - "buyMeACoffee": "커피를 사주세요", - "configureAI": "AI 기반 기능, 공급자 및 환경설정을 구성하세요", - "diagnostics": "진단", - "donateOnKofi": "Ko-fi에서 기부하기", - "donationDescription": "일회성 기부를 하거나 월간 서포터가 되세요.", - "donationNote": "플랫폼 수수료 없음 • 즉시 지급 • 안전", - "favorites": "즐겨찾기", - "generalNotes": "일반 메모", - "home": "홈", - "login": "로그인", - "logout": "로그아웃", - "manageAISettings": "AI 설정 관리", - "myLibrary": "내 라이브러리", - "notebooks": "노트북", - "notes": "메모", - "proPlan": "프로 플랜", - "profile": "프로필", - "quickAccess": "빠른 접근", - "recent": "최근", - "reminders": "알림", - "settings": "설정", - "sponsorDescription": "월간 후원자가 되어 인정을 받으세요.", - "sponsorOnGithub": "GitHub에서 후원", - "support": "Memento 지원하기 ☕", - "supportDescription": "Memento는 100% 무료이며 오픈 소스입니다. 여러분의 지원으로 이 상태를 유지할 수 있습니다.", - "supportDevelopment": "Memento 개발 지원하기 ☕", - "trash": "휴지통", - "userManagement": "사용자 관리", - "workspace": "작업 공간", - "chat": "AI 채팅", - "lab": "랩", - "agents": "에이전트" + "reminders": { + "title": "알림", + "empty": "알림 없음", + "emptyDescription": "노트에 알림을 추가하면 여기에서 확인할 수 있습니다.", + "upcoming": "다가오는 알림", + "overdue": "지난 알림", + "done": "완료", + "markDone": "완료로 표시", + "markUndone": "미완료로 표시", + "todayAt": "오늘 {time}", + "tomorrowAt": "내일 {time}" }, "notebook": { - "cancel": "취소", "create": "노트북 만들기", - "createDescription": "메모, 아이디어, 프로젝트를 효율적으로 정리할 새 컬렉션을 시작하세요.", "createNew": "새 노트북 만들기", - "creating": "생성 중...", - "delete": "노트북 삭제", - "deleteConfirm": "삭제", - "deleteWarning": "이 노트북을 삭제하시겠습니까? 메모는 일반 메모로 이동됩니다.", - "edit": "노트북 편집", - "editDescription": "노트북의 이름, 아이콘, 색상을 변경합니다.", - "generating": "요약 생성 중...", - "labels": "레이블", + "createDescription": "메모, 아이디어, 프로젝트를 효율적으로 정리할 새 컬렉션을 시작하세요.", "name": "노트북 이름", - "noLabels": "레이블 없음", - "selectColor": "색상", - "selectIcon": "아이콘", - "summary": "노트북 요약", - "summaryDescription": "이 노트북의 모든 메모에 대한 AI 요약을 생성합니다.", - "summaryError": "요약 생성 오류", "namePlaceholder": "예: 4분기 마케팅 전략", "myNotebook": "내 노트북", "saving": "저장 중...", + "selectIcon": "아이콘", + "selectColor": "색상", + "cancel": "취소", + "creating": "생성 중...", + "edit": "노트북 편집", + "editDescription": "노트북의 이름, 아이콘, 색상을 변경합니다.", + "delete": "노트북 삭제", + "deleteWarning": "이 노트북을 삭제하시겠습니까? 메모는 일반 메모로 이동됩니다.", + "deleteConfirm": "삭제", + "summary": "노트북 요약", + "summaryDescription": "이 노트북의 모든 메모에 대한 AI 요약을 생성합니다.", + "generating": "요약 생성 중...", + "summaryError": "요약 생성 오류", + "labels": "레이블", + "noLabels": "레이블 없음", "pdfTitle": "요약 — {name}", "pdfNotesLabel": "노트:", "pdfGeneratedOn": "생성일:", "confidence": "신뢰도", "savingReminder": "알림 저장 실패", - "removingReminder": "알림 제거 실패" + "removingReminder": "알림 제거 실패", + "generatingDescription": "Please wait..." }, "notebookSuggestion": { + "title": "{name}(으)로 이동하시겠습니까?", "description": "이 메모는 이 노트북에 속하는 것 같습니다", + "move": "이동", "dismiss": "무시", "dismissIn": "무시 ({timeLeft}초 후 닫힘)", - "generalNotes": "일반 메모", - "move": "이동", "moveToNotebook": "노트북으로 이동", - "title": "{name}(으)로 이동하시겠습니까?" + "generalNotes": "일반 메모" }, - "notebooks": { - "allNotebooks": "모든 노트북", - "create": "노트북 만들기", - "createFirst": "첫 번째 노트북 만들기", - "noNotebooks": "노트북 없음" + "admin": { + "title": "관리자 대시보드", + "userManagement": "사용자 관리", + "chat": "AI 채팅", + "lab": "랩", + "agents": "에이전트", + "workspace": "작업 공간", + "settings": "관리자 설정", + "security": { + "title": "보안 설정", + "description": "액세스 제어 및 등록 정책을 관리합니다.", + "allowPublicRegistration": "공개 등록 허용", + "allowPublicRegistrationDescription": "비활성화하면 새 사용자는 관리자가 사용자 관리 페이지를 통해서만 추가할 수 있습니다.", + "updateSuccess": "보안 설정이 업데이트되었습니다", + "updateFailed": "보안 설정 업데이트 실패" + }, + "ai": { + "title": "AI 구성", + "description": "자동 태그 지정 및 의미 검색을 위한 AI 공급자를 구성합니다. 최적의 성능을 위해 다른 공급자를 사용하세요.", + "tagsGenerationProvider": "태그 생성 공급자", + "tagsGenerationDescription": "자동 태그 제안을 위한 AI 공급자. 권장: Ollama (무료, 로컬).", + "embeddingsProvider": "임베딩 공급자", + "embeddingsDescription": "의미 검색 임베딩을 위한 AI 공급자. 권장: OpenAI (최고 품질).", + "chatProvider": "채팅 공급자", + "chatDescription": "채팅 도우미를 위한 AI 공급자입니다. 구성되지 않은 경우 태그 공급자를 대신 사용합니다.", + "provider": "공급자", + "baseUrl": "기본 URL", + "model": "모델", + "apiKey": "API 키", + "selectOllamaModel": "시스템에 설치된 Ollama 모델 선택", + "openAIKeyDescription": "platform.openai.com의 OpenAI API 키", + "modelRecommendations": "gpt-4o-mini = 최고의 가성비 • gpt-4o = 최고 품질", + "commonModelsDescription": "OpenAI 호환 API의 일반적인 모델", + "selectEmbeddingModel": "시스템에 설치된 임베딩 모델 선택", + "commonEmbeddingModels": "OpenAI 호환 API의 일반적인 임베딩 모델", + "saving": "저장 중...", + "saveSettings": "AI 설정 저장", + "openTestPanel": "AI 테스트 패널 열기", + "updateSuccess": "AI 설정이 성공적으로 업데이트되었습니다", + "updateFailed": "AI 설정 업데이트 실패", + "providerTagsRequired": "AI_PROVIDER_TAGS가 필요합니다", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING이 필요합니다", + "providerOllamaOption": "🦙 Ollama (로컬 및 무료)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 사용자 정의 OpenAI 호환", + "bestValue": "최고 가성비", + "bestQuality": "최고 품질", + "saved": "(저장됨)", + "fetchModelsFailed": "모델을 가져오지 못했습니다", + "refreshModels": "모델 새로고침", + "configured": "구성됨", + "fetchingModels": "모델 가져오는 중...", + "clickToLoadModels": "↺ 클릭하여 모델 로드", + "searchModel": "모델 검색...", + "noModels": "모델 없음. ↺ 클릭", + "modelsAvailable": "{count}개 모델 사용 가능", + "enterUrlToLoad": "URL 입력 후 ↺ 클릭", + "currentProvider": "(현재: {provider})", + "pageTitle": "AI 관리", + "pageDescription": "AI 기능 모니터링 및 구성", + "configure": "구성", + "features": "AI 기능", + "providerStatus": "AI 제공업체 상태", + "recentRequests": "최근 AI 요청", + "comingSoon": "출시 예정", + "activeFeatures": "활성 기능", + "successRate": "성공률", + "avgResponseTime": "평균 응답 시간", + "configuredProviders": "구성된 제공업체", + "settingUpdated": "설정이 업데이트되었습니다", + "updateFailedShort": "업데이트 실패", + "titleSuggestions": "제목 제안", + "titleSuggestionsDesc": "50단어 이상 노트에 제목 제안", + "aiAssistant": "AI 어시스턴트", + "aiAssistantDesc": "AI 채팅 및 텍스트 개선 도구 활성화", + "memoryEchoFeature": "무언가를 발견했습니다...", + "memoryEchoFeatureDesc": "노트 간 연결의 일일 분석", + "languageDetection": "언어 감지", + "languageDetectionDesc": "각 노트의 언어 자동 감지", + "autoLabeling": "자동 라벨링", + "autoLabelingDesc": "라벨 자동 제안 및 적용" + }, + "resend": { + "title": "Resend (권장)", + "description": "Resend API로 이메일을 보냅니다. 구성된 경우 SMTP보다 우선합니다.", + "apiKey": "Resend API 키", + "apiKeyHint": "resend.com에서 API 키를 받으세요. 에이전트 알림 및 비밀번호 재설정에 사용됩니다.", + "saveSettings": "Resend 설정 저장", + "updateSuccess": "Resend 설정이 업데이트되었습니다", + "updateFailed": "Resend 설정 업데이트 실패", + "configured": "Resend이 구성되어 활성화되었습니다" + }, + "email": { + "title": "이메일 설정", + "description": "에이전트 알림 및 비밀번호 재설정을 위한 이메일 발송을 설정합니다.", + "provider": "이메일 제공자", + "saveSettings": "이메일 설정 저장", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "smtp": { + "title": "SMTP 구성", + "description": "비밀번호 재설정을 위한 이메일 서버를 구성합니다.", + "host": "호스트", + "port": "포트", + "username": "사용자 이름", + "password": "비밀번호", + "fromEmail": "보내는 사람 이메일", + "forceSSL": "SSL/TLS 강제 (일반적으로 포트 465)", + "ignoreCertErrors": "인증서 오류 무시 (자체 호스팅/개발만)", + "saveSettings": "SMTP 설정 저장", + "sending": "전송 중...", + "testEmail": "테스트 이메일", + "updateSuccess": "SMTP 설정이 업데이트되었습니다", + "updateFailed": "SMTP 설정 업데이트 실패", + "testSuccess": "테스트 이메일이 성공적으로 전송되었습니다!", + "testFailed": "실패: {error}" + }, + "users": { + "createUser": "사용자 생성", + "addUser": "사용자 추가", + "createUserDescription": "시스템에 새 사용자를 추가합니다.", + "name": "이름", + "email": "이메일", + "password": "비밀번호", + "role": "역할", + "createSuccess": "사용자가 성공적으로 생성되었습니다", + "createFailed": "사용자 생성 실패", + "deleteSuccess": "사용자가 삭제되었습니다", + "deleteFailed": "삭제 실패", + "roleUpdateSuccess": "사용자 역할이 {role}(으)로 업데이트되었습니다", + "roleUpdateFailed": "역할 업데이트 실패", + "demote": "강등", + "promote": "승격", + "confirmDelete": "확실합니까? 이 작업은 되돌릴 수 없습니다.", + "table": { + "name": "이름", + "email": "이메일", + "role": "역할", + "createdAt": "생성일", + "actions": "작업" + }, + "roles": { + "user": "사용자", + "admin": "관리자" + }, + "title": "사용자", + "description": "사용자 및 권한 관리" + }, + "aiTest": { + "title": "AI 공급자 테스트", + "description": "태그 생성 및 의미 검색 임베딩을 위한 AI 공급자 테스트", + "tagsTestTitle": "태그 생성 테스트", + "tagsTestDescription": "자동 태그 제안을 담당하는 AI 공급자 테스트", + "embeddingsTestTitle": "임베딩 테스트", + "embeddingsTestDescription": "의미 검색 임베딩을 담당하는 AI 공급자 테스트", + "howItWorksTitle": "테스트 작동 방식", + "tagsGenerationTest": "🏷️ 태그 생성 테스트:", + "tagsStep1": "샘플 노트를 AI 공급자에게 전송합니다", + "tagsStep2": "콘텐츠를 기반으로 3~5개의 관련 태그를 요청합니다", + "tagsStep3": "생성된 태그와 신뢰도 점수를 표시합니다", + "tagsStep4": "응답 시간을 측정합니다", + "embeddingsTestLabel": "🔍 임베딩 테스트:", + "embeddingsStep1": "샘플 텍스트를 임베딩 공급자에게 전송합니다", + "embeddingsStep2": "벡터 표현(숫자 목록)을 생성합니다", + "embeddingsStep3": "임베딩 차원과 샘플 값을 표시합니다", + "embeddingsStep4": "벡터가 유효하고 올바르게 형식화되었는지 확인합니다", + "tipContent": "태그와 임베딩에 다른 공급자를 사용할 수 있습니다! 예를 들어, 비용과 성능을 최적화하기 위해 태그에는 Ollama(무료)를, 임베딩에는 OpenAI(최고 품질)를 사용해 보세요.", + "provider": "공급자:", + "model": "모델:", + "testing": "테스트 중...", + "runTest": "테스트 실행", + "testPassed": "테스트 통과", + "testFailed": "테스트 실패", + "testSuccessToast": "{type} 테스트 성공!", + "testFailedToast": "{type} 테스트 실패", + "testingType": "{type} 테스트 중...", + "technicalDetails": "기술 세부 정보", + "responseTime": "응답 시간: {time}ms", + "generatedTags": "생성된 태그:", + "embeddingDimensions": "임베딩 차원:", + "vectorDimensions": "벡터 차원", + "first5Values": "처음 5개 값:", + "error": "오류:", + "testError": "테스트 오류: {error}", + "tipTitle": "팁:", + "tipDescription": "테스트 전에 AI 테스트 패널을 사용하여 구성 문제를 진단하세요." + }, + "sidebar": { + "dashboard": "대시보드", + "users": "사용자", + "aiManagement": "AI 관리", + "chat": "AI 채팅", + "lab": "랩 (아이디어)", + "agents": "에이전트", + "settings": "설정" + }, + "metrics": { + "vsLastPeriod": "이전 기간 대비" + }, + "tools": { + "title": "에이전트 도구", + "description": "에이전트 도구 사용을 위한 외부 도구를 구성합니다: 웹 검색, 웹 스크랩 및 API 액세스.", + "searchProvider": "웹 검색 공급자", + "searxng": "SearXNG (자체 호스팅)", + "brave": "Brave Search API", + "both": "둘 다 (SearXNG 기본, Brave 대체)", + "searxngUrl": "SearXNG URL", + "braveKey": "Brave Search API 키", + "jinaKey": "Jina Reader API 키", + "jinaKeyOptional": "선택 사항 — 키 없이도 작동하지만 속도 제한이 적용됩니다", + "jinaKeyDescription": "웹 스크랩에 사용됩니다. 키 없이도 작동하지만 속도 제한이 적용됩니다.", + "saveSettings": "도구 설정 저장", + "updateSuccess": "도구 설정이 성공적으로 업데이트되었습니다", + "updateFailed": "도구 설정 업데이트 실패", + "testing": "테스트 중...", + "testSearch": "웹 검색 테스트" + }, + "settingsDescription": "애플리케이션 설정 구성", + "dashboard": { + "title": "대시보드", + "description": "애플리케이션 지표 개요", + "recentActivity": "최근 활동", + "recentActivityPlaceholder": "최근 활동이 여기에 표시됩니다." + }, + "error": { + "title": "관리자 패널에서 오류 발생", + "description": "페이지 렌더링 실패. 다시 시도할 수 있습니다.", + "retry": "재시도" + } }, - "notes": { - "add": "추가", - "addCollaborators": "공동 작업자 추가", - "addImage": "이미지 추가", - "addItem": "항목 추가", - "addLink": "링크 추가", - "addListItem": "+ 목록 항목", - "addNote": "메모 추가", - "adding": "추가 중...", - "aiAssistant": "AI 도우미", - "archive": "보관", - "backgroundOptions": "배경 옵션", - "changeColor": "색상 변경", - "changeSize": "크기 변경", - "clarifyFailed": "명확화 실패", - "close": "닫기", - "color": "색상", - "confirmDelete": "이 메모를 삭제하시겠습니까?", - "confirmLeaveShare": "이 공유 메모를 나가시겠습니까?", - "contentOrMediaRequired": "내용을 입력하거나 링크/이미지를 추가하세요", - "copy": "복사", - "copyFailed": "메모 복사 실패", - "copySuccess": "메모가 복사되었습니다!", - "createFirstNote": "첫 번째 메모 만들기", - "date": "날짜", - "delete": "삭제", - "dragToReorder": "드래그하여 재정렬", - "duplicate": "복제", - "edit": "메모 편집", - "emptyState": "메모가 없습니다", - "fileTooLarge": "파일이 너무 큽니다: {fileName}. 최대 크기는 {maxSize}입니다.", - "improveFailed": "개선 실패", - "inNotebook": "노트북에서", - "invalidDateTime": "잘못된 날짜 또는 시간", - "invalidFileType": "잘못된 파일 유형: {fileName}. JPEG, PNG, GIF 및 WebP만 허용됩니다.", - "itemOrMediaRequired": "하나 이상의 항목이나 미디어를 추가하세요", - "large": "크게", - "leaveShare": "나가기", - "linkAddFailed": "링크 추가 실패", - "linkAdded": "링크가 추가되었습니다", - "linkMetadataFailed": "링크 메타데이터를 가져올 수 없습니다", - "listItem": "목록 항목", - "makeCopy": "사본 만들기", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown 끄기", - "markdownOn": "Markdown 켜기", - "markdownPlaceholder": "메모 작성... (Markdown 지원)", - "medium": "중간", - "more": "더 보기", - "moreOptions": "더 많은 옵션", - "moveFailed": "이동 실패", - "newChecklist": "새 체크리스트", - "newNote": "새 메모", - "noContent": "내용 없음", - "noNotes": "메모 없음", - "noNotesFound": "메모를 찾을 수 없습니다", - "noteCreateFailed": "메모 생성 실패", - "noteCreated": "메모가 생성되었습니다", - "others": "기타", - "pin": "고정", - "pinned": "고정됨", - "pinnedNotes": "고정된 메모", - "placeholder": "메모 작성...", - "preview": "미리보기", - "readOnly": "읽기 전용", - "recent": "최근", - "redo": "다시 실행 (Ctrl+Y)", - "redoShortcut": "다시 실행 (Ctrl+Y)", - "remindMe": "알림", - "reminderDateTimeRequired": "날짜와 시간을 입력하세요", - "reminderMustBeFuture": "알림은 미래 시간으로 설정해야 합니다", - "reminderPastError": "알림은 미래 시간으로 설정해야 합니다", - "reminderRemoved": "알림이 제거되었습니다", - "reminderSet": "{datetime}에 알림이 설정되었습니다", - "remove": "제거", - "saving": "저장 중...", - "setReminder": "알림 설정", - "setReminderButton": "알림 설정", - "share": "공유", - "shareWithCollaborators": "공동 작업자와 공유", - "sharedBy": "공유자", - "sharedReadOnly": "이 메모는 읽기 전용 모드로 공유됩니다", - "shortenFailed": "단축 실패", - "showCollaborators": "공동 작업자 표시", - "size": "크기", - "small": "작게", - "takeNote": "메모 작성...", - "takeNoteMarkdown": "메모 작성... (Markdown 지원)", - "time": "시간", - "title": "메모", - "titlePlaceholder": "제목", - "transformFailed": "변환 실패", - "unarchive": "보관 취소", - "undo": "실행 취소 (Ctrl+Z)", - "undoShortcut": "실행 취소 (Ctrl+Z)", - "unpin": "고정 해제", - "unpinned": "고정 해제됨", - "untitled": "제목 없음", - "uploadFailed": "{filename} 업로드 실패", - "view": "메모 보기", - "emptyStateTabs": "아직 노트가 없습니다. 사이드바의 \"새 노트\"를 사용하여 추가하세요 (AI 제목 제안이 작성기에 나타납니다).", - "viewCards": "카드 보기", - "viewCardsTooltip": "드래그 앤 드롭으로 재정렬 가능한 카드 그리드", - "viewTabs": "리스트 보기", - "viewTabsTooltip": "상단에 탭, 하단에 노트 — 탭을 드래그하여 재정렬", - "viewModeGroup": "노트 표시 모드", - "reorderTabs": "탭 재정렬", - "modified": "수정됨", - "created": "생성됨", - "loading": "로딩 중...", - "exportPDF": "PDF 내보내기", - "savedStatus": "저장됨", - "dirtyStatus": "수정됨", - "completedLabel": "완료", - "notes.emptyNotebook": "빈 노트북", - "notes.emptyNotebookDesc": "이 노트북에 노트가 없습니다. +를 클릭하여 만드세요.", - "notes.noNoteSelected": "선택된 노트 없음", - "notes.selectOrCreateNote": "목록에서 노트를 선택하거나 새로 만드세요.", - "commitVersion": "버전 저장", - "versionSaved": "버전이 저장되었습니다", - "deleteVersion": "이 버전 삭제", - "versionDeleted": "버전이 삭제되었습니다", - "deleteVersionConfirm": "이 버전을 영구적으로 삭제하시겠습니까?", - "historyMode": "기록 모드", - "historyModeManual": "수동 (커밋 버튼)", - "historyModeAuto": "자동 (스마트)", - "historyModeManualDesc": "커밋 버튼으로 수동 스냅샷 생성", - "historyModeAutoDesc": "스마트 감지로 자동 스냅샷 생성", - "history": "기록", - "historyRestored": "버전이 복원되었습니다", - "historyEnabled": "기록이 활성화되었습니다", - "historyDisabledDesc": "기록이 비활성화되어 있습니다.", - "enableHistory": "기록 활성화", - "historyEmpty": "사용 가능한 버전이 없습니다", - "historySelectVersion": "미리볼 버전을 선택하세요", - "sortBy": "정렬", - "sortDateDesc": "날짜 (최신)", - "sortDateAsc": "날짜 (오래된)", - "sortTitleAsc": "제목 A → Z", - "sortTitleDesc": "제목 Z → A" - }, - "pagination": { - "next": "→", - "pageInfo": "페이지 {currentPage} / {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "비격식", - "expand": "확장", - "formal": "격식", - "improve": "개선", - "shorten": "단축", - "title": "텍스트 개선" - }, - "profile": { - "accountSettings": "계정 설정", - "autoDetect": "자동 감지", - "changePassword": "비밀번호 변경", - "changePasswordDescription": "비밀번호를 업데이트하세요. 현재 비밀번호가 필요합니다.", - "confirmPassword": "비밀번호 확인", - "currentPassword": "현재 비밀번호", - "description": "개인정보 업데이트", - "displayName": "표시 이름", - "displaySettings": "표시 설정", - "displaySettingsDescription": "모양과 글꼴 크기를 사용자 지정합니다.", - "email": "이메일", - "fontSize": "글꼴 크기", - "fontSizeDescription": "가독성을 향상시키기 위해 글꼴 크기를 조정하세요. 이는 인터페이스의 모든 텍스트에 적용됩니다.", - "fontSizeExtraLarge": "매우 크게", - "fontSizeLarge": "크게", - "fontSizeMedium": "중간", - "fontSizeSmall": "작게", - "fontSizeUpdateFailed": "글꼴 크기 업데이트 실패", - "fontSizeUpdateSuccess": "글꼴 크기가 업데이트되었습니다", - "languageDescription": "이 언어는 AI 기능, 콘텐츠 분석 및 인터페이스 텍스트에 사용됩니다.", - "languagePreferences": "언어 환경설정", - "languagePreferencesDescription": "AI 기능 및 인터페이스의 선호 언어를 선택하세요.", - "languageUpdateFailed": "언어 업데이트 실패", - "languageUpdateSuccess": "언어가 업데이트되었습니다", - "manageAISettings": "AI 설정 관리", - "newPassword": "새 비밀번호", - "passwordChangeFailed": "비밀번호 변경 실패", - "passwordChangeSuccess": "비밀번호가 변경되었습니다", - "passwordError": "비밀번호 업데이트 오류", - "passwordUpdated": "비밀번호가 업데이트되었습니다", - "preferredLanguage": "선호 언어", - "profileError": "프로필 업데이트 오류", - "profileUpdated": "프로필이 업데이트되었습니다", - "recentNotesUpdateFailed": "최근 노트 설정 업데이트 실패", - "recentNotesUpdateSuccess": "최근 노트 설정이 업데이트되었습니다", - "selectFontSize": "글꼴 크기 선택", - "selectLanguage": "언어 선택", - "showRecentNotes": "최근 노트 섹션 표시", - "showRecentNotesDescription": "메인 페이지에 최근 노트(지난 7일)를 표시합니다", - "title": "프로필", - "updateFailed": "프로필 업데이트 실패", - "updatePassword": "비밀번호 업데이트", - "updateSuccess": "프로필이 업데이트되었습니다" - }, - "reminder": { - "cancel": "취소", - "reminderDate": "알림 날짜", - "reminderTime": "알림 시간", - "removeReminder": "알림 제거", - "save": "알림 설정", - "setReminder": "알림 설정", - "title": "알림" - }, - "resetPassword": { - "confirmNewPassword": "새 비밀번호 확인", - "description": "아래에 새 비밀번호를 입력하세요.", - "invalidLinkDescription": "이 비밀번호 재설정 링크는 유효하지 않거나 만료되었습니다.", - "invalidLinkTitle": "잘못된 링크", - "loading": "로딩 중...", - "newPassword": "새 비밀번호", - "passwordMismatch": "비밀번호가 일치하지 않습니다", - "requestNewLink": "새 링크 요청", - "resetPassword": "비밀번호 재설정", - "resetting": "재설정 중...", - "success": "비밀번호가 성공적으로 재설정되었습니다. 이제 로그인할 수 있습니다.", - "title": "비밀번호 재설정" - }, - "search": { - "exactMatch": "정확히 일치", - "noResults": "검색 결과 없음", - "placeholder": "검색", - "related": "관련", - "resultsFound": "{count}개의 노트를 찾았습니다", - "searchPlaceholder": "노트 검색...", - "searching": "검색 중...", - "semanticInProgress": "AI 검색 진행 중...", - "semanticTooltip": "AI 의미 검색", - "disabledAdmin": "관리자 모드에서 검색 비활성화" - }, - "semanticSearch": { - "exactMatch": "정확히 일치", - "related": "관련", - "searching": "검색 중..." - }, - "settings": { - "about": "정보", - "account": "계정", - "appearance": "모양", - "cleanTags": "고아 태그 정리", - "cleanTagsDescription": "더 이상 노트에서 사용되지 않는 태그를 제거합니다", - "description": "설정 및 환경설정 관리", - "language": "언어", - "languageAuto": "자동 감지", - "maintenance": "유지 관리", - "maintenanceDescription": "데이터베이스 상태를 유지하는 도구", - "notifications": "알림", - "privacy": "개인정보 보호", - "profile": "프로필", - "searchNoResults": "일치하는 설정을 찾을 수 없습니다", - "security": "보안", - "selectLanguage": "언어 선택", - "semanticIndexing": "의미 인덱싱", - "semanticIndexingDescription": "의도 기반 검색을 활성화하기 위해 모든 노트의 벡터를 생성합니다", - "settingsError": "설정 저장 오류", - "settingsSaved": "설정이 저장되었습니다", - "theme": "테마", - "themeDark": "어둡게", - "themeLight": "밝게", - "themeSystem": "시스템", - "title": "설정", + "about": { + "title": "정보", + "description": "애플리케이션 정보", + "appName": "Memento", + "appDescription": "AI 기능을 갖춘 강력한 메모 애플리케이션", "version": "버전", - "cleanupDone": "{created}개의 라벨 레코드를 동기화하고 {deleted}개의 고아를 제거했습니다", - "cleanupNothing": "할 일이 없습니다 — 라벨이 이미 노트와 일치합니다", - "cleanupWithErrors": "일부 작업이 실패했습니다", - "cleanupError": "라벨을 정리할 수 없습니다", - "indexingComplete": "인덱싱 완료: {count}개의 노트 처리됨", - "indexingError": "인덱싱 중 오류 발생", - "emailNotifications": "이메일 알림", - "emailNotificationsDesc": "이메일로 중요한 알림을 받습니다", - "desktopNotifications": "데스크톱 알림", - "desktopNotificationsDesc": "브라우저에서 알림을 받습니다", - "notificationsDesc": "알림 환경설정을 관리합니다" - }, - "sidebar": { - "archive": "보관함", - "editLabels": "라벨 편집", - "labels": "라벨", - "notes": "노트", - "reminders": "알림", - "trash": "휴지통", - "newNoteTabs": "새 노트", - "newNoteTabsHint": "이 노트북에 노트 만들기", - "noLabelsInNotebook": "이 노트북에는 아직 라벨이 없습니다" + "buildDate": "빌드 날짜", + "platform": "플랫폼", + "platformWeb": "웹", + "features": { + "title": "기능", + "description": "AI 기반 기능", + "titleSuggestions": "AI 기반 제목 제안", + "semanticSearch": "임베딩을 사용한 의미 검색", + "paragraphReformulation": "단락 재구성", + "memoryEcho": "Memory Echo 일일 인사이트", + "notebookOrganization": "노트북 정리", + "dragDrop": "드래그 앤 드롭 메모 관리", + "labelSystem": "레이블 시스템", + "multipleProviders": "여러 AI 공급자 (OpenAI, Ollama)" + }, + "technology": { + "title": "기술 스택", + "description": "최신 기술로 구축", + "frontend": "프론트엔드", + "backend": "백엔드", + "database": "데이터베이스", + "authentication": "인증", + "ai": "AI", + "ui": "UI", + "testing": "테스트" + }, + "support": { + "title": "지원", + "description": "도움말 및 피드백", + "documentation": "문서", + "reportIssues": "문제 보고", + "feedback": "피드백" + } }, "support": { - "aiApiCosts": "AI API 비용:", - "buyMeACoffee": "커피를 사주세요", - "contributeCode": "코드 기여", - "description": "Memento는 100% 무료이며 오픈 소스입니다. 여러분의 지원으로 이 상태를 유지할 수 있습니다.", - "directImpact": "직접적인 영향", - "domainSSL": "도메인 및 SSL:", - "donateOnKofi": "Ko-fi에서 기부하기", - "donationDescription": "일회성 기부를 하거나 월간 서포터가 되세요.", - "githubDescription": "정기 후원 • 공개 인정 • 개발자 중심", - "hostingServers": "호스팅 및 서버:", - "howSupportHelps": "여러분의 지원이 어떻게 도움이 되는지", - "kofiDescription": "플랫폼 수수료 없음 • 즉시 지급 • 안전", - "otherWaysTitle": "기타 지원 방법", - "reportBug": "버그 보고", - "shareTwitter": "Twitter에서 공유", - "sponsorDescription": "월간 후원자가 되어 인정을 받으세요.", - "sponsorOnGithub": "GitHub에서 후원", - "sponsorPerks": "후원자 특전", - "starGithub": "GitHub에서 스타 주기", "title": "Memento 개발 지원하기", - "totalExpenses": "총 지출:", + "description": "Memento는 100% 무료이며 오픈 소스입니다. 여러분의 지원으로 이 상태를 유지할 수 있습니다.", + "buyMeACoffee": "커피를 사주세요", + "donationDescription": "일회성 기부를 하거나 월간 서포터가 되세요.", + "donateOnKofi": "Ko-fi에서 기부하기", + "kofiDescription": "플랫폼 수수료 없음 • 즉시 지급 • 안전", + "sponsorOnGithub": "GitHub에서 후원", + "sponsorDescription": "월간 후원자가 되어 인정을 받으세요.", + "githubDescription": "정기 후원 • 공개 인정 • 개발자 중심", + "howSupportHelps": "여러분의 지원이 어떻게 도움이 되는지", + "directImpact": "직접적인 영향", + "sponsorPerks": "후원자 특전", "transparency": "투명성", - "transparencyDescription": "저는 완전한 투명성을 믿습니다. 기부금 사용처는 다음과 같습니다:" + "transparencyDescription": "저는 완전한 투명성을 믿습니다. 기부금 사용처는 다음과 같습니다:", + "hostingServers": "호스팅 및 서버:", + "domainSSL": "도메인 및 SSL:", + "aiApiCosts": "AI API 비용:", + "totalExpenses": "총 지출:", + "otherWaysTitle": "기타 지원 방법", + "starGithub": "GitHub에서 스타 주기", + "reportBug": "버그 보고", + "contributeCode": "코드 기여", + "shareTwitter": "Twitter에서 공유" + }, + "demoMode": { + "title": "데모 모드", + "activated": "데모 모드가 활성화되었습니다! Memory Echo가 즉시 작동합니다.", + "deactivated": "데모 모드가 비활성화되었습니다. 정상 매개변수로 복원되었습니다.", + "toggleFailed": "데모 모드 전환 실패", + "description": "테스트를 위해 Memory Echo를 가속화합니다. 연결이 즉시 나타납니다.", + "parametersActive": "데모 매개변수 활성화:", + "similarityThreshold": "50% 유사성 임계값 (일반적으로 75%)", + "delayBetweenNotes": "메모 간 0일 지연 (일반적으로 7일)", + "unlimitedInsights": "무제한 인사이트 (빈도 제한 없음)", + "createNotesTip": "2개 이상의 유사한 메모를 만들어 Memory Echo가 작동하는 것을 확인하세요!" + }, + "resetPassword": { + "title": "비밀번호 재설정", + "description": "아래에 새 비밀번호를 입력하세요.", + "invalidLinkTitle": "잘못된 링크", + "invalidLinkDescription": "이 비밀번호 재설정 링크는 유효하지 않거나 만료되었습니다.", + "requestNewLink": "새 링크 요청", + "newPassword": "새 비밀번호", + "confirmNewPassword": "새 비밀번호 확인", + "resetting": "재설정 중...", + "resetPassword": "비밀번호 재설정", + "passwordMismatch": "비밀번호가 일치하지 않습니다", + "success": "비밀번호가 성공적으로 재설정되었습니다. 이제 로그인할 수 있습니다.", + "loading": "로딩 중..." + }, + "dataManagement": { + "title": "데이터 관리", + "toolsDescription": "데이터베이스 상태를 유지하는 도구", + "exporting": "내보내는 중...", + "importing": "가져오는 중...", + "deleting": "삭제하는 중...", + "dangerZone": "위험 구역", + "dangerZoneDescription": "이러한 작업은 되돌릴 수 없습니다. 주의하세요", + "indexingComplete": "인덱싱 완료", + "indexingError": "인덱싱 오류", + "cleanupComplete": "정리 완료", + "cleanupError": "정리 오류", + "export": { + "title": "모든 메모 내보내기", + "description": "모든 메모를 JSON 파일로 다운로드합니다. 모든 콘텐츠, 레이블 및 메타데이터가 포함됩니다.", + "button": "메모 내보내기", + "success": "메모 내보내기 성공", + "failed": "메모 내보내기 실패" + }, + "import": { + "title": "메모 가져오기", + "description": "JSON 파일을 업로드하여 메모를 가져옵니다. 기존 메모에 추가되며 교체되지 않습니다.", + "button": "메모 가져오기", + "success": "{count}개의 메모를 가져왔습니다", + "failed": "메모 가져오기 실패" + }, + "delete": { + "title": "모든 메모 삭제", + "description": "모든 메모를 영구적으로 삭제합니다. 이 작업은 취소할 수 없습니다.", + "button": "모든 메모 삭제", + "confirm": "확실합니까? 모든 메모가 영구적으로 삭제됩니다.", + "success": "모든 메모가 삭제되었습니다", + "failed": "메모 삭제 실패" + }, + "indexing": { + "title": "검색 인덱스 재구축", + "description": "의미 검색을 개선하기 위해 모든 메모의 임베딩을 재생성합니다.", + "button": "인덱스 재구축", + "success": "인덱싱 완료: {count}개의 메모 처리됨", + "failed": "인덱싱 중 오류 발생" + }, + "cleanup": { + "title": "고아 데이터 정리", + "description": "삭제된 메모를 참조하는 레이블과 연결을 제거합니다.", + "button": "정리", + "failed": "정리 중 오류 발생" + } + }, + "appearance": { + "title": "모양", + "description": "앱의 모양 사용자 지정", + "notesViewDescription": "홈 및 노트북에서 메모가 표시되는 방식을 선택하세요.", + "notesViewLabel": "메모 레이아웃", + "notesViewTabs": "탭 (OneNote 스타일)", + "notesViewMasonry": "카드 (그리드)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "일반 설정", + "description": "일반 애플리케이션 설정" + }, + "toast": { + "saved": "설정이 저장되었습니다", + "saveFailed": "설정 저장 실패", + "operationSuccess": "작업 성공", + "operationFailed": "작업 실패", + "openingConnection": "연결을 여는 중...", + "openConnectionFailed": "연결 열기 실패", + "thanksFeedback": "피드백 감사합니다!", + "thanksFeedbackImproving": "감사합니다! 개선에 활용하겠습니다.", + "feedbackFailed": "피드백 제출 실패", + "notesFusionSuccess": "메모가 성공적으로 병합되었습니다!" }, "testPages": { "titleSuggestions": { - "analyzing": "분석 중...", - "contentLabel": "콘텐츠 (50단어 이상 필요):", - "error": "오류:", - "idle": "대기 중", - "noSuggestions": "아직 제안이 없습니다. 50단어 이상 입력하고 2초 기다리세요.", - "placeholder": "여기에 최소 50단어를 입력하세요...", - "status": "상태:", - "suggestions": "제안 ({count}):", "title": "제목 제안 테스트", - "wordCount": "단어 수:" + "contentLabel": "콘텐츠 (50단어 이상 필요):", + "placeholder": "여기에 최소 50단어를 입력하세요...", + "wordCount": "단어 수:", + "status": "상태:", + "analyzing": "분석 중...", + "idle": "대기 중", + "error": "오류:", + "suggestions": "제안 ({count}):", + "noSuggestions": "아직 제안이 없습니다. 50단어 이상 입력하고 2초 기다리세요." } }, - "time": { - "daysAgo": "{count}일 전", - "hoursAgo": "{count}시간 전", - "justNow": "방금", - "minutesAgo": "{count}분 전", - "today": "오늘", - "tomorrow": "내일", - "yesterday": "어제" - }, - "titleSuggestions": { - "available": "제목 제안", - "dismiss": "무시", - "generating": "생성 중...", - "selectTitle": "제목 선택", - "title": "AI 제안" - }, - "toast": { - "feedbackFailed": "피드백 제출 실패", - "notesFusionSuccess": "메모가 성공적으로 병합되었습니다!", - "openConnectionFailed": "연결 열기 실패", - "openingConnection": "연결을 여는 중...", - "operationFailed": "작업 실패", - "operationSuccess": "작업 성공", - "saveFailed": "설정 저장 실패", - "saved": "설정이 저장되었습니다", - "thanksFeedback": "피드백 감사합니다!", - "thanksFeedbackImproving": "감사합니다! 개선에 활용하겠습니다." - }, "trash": { "title": "휴지통", "empty": "휴지통이 비어 있습니다", @@ -1233,11 +1212,83 @@ "permanentDelete": "영구 삭제", "permanentDeleteConfirm": "이 메모는 영구 삭제됩니다. 이 작업은 되돌릴 수 없습니다." }, + "footer": { + "privacy": "개인정보", + "terms": "이용약관", + "openSource": "오픈 소스 클론" + }, + "connection": { + "similarityInfo": "이 메모들은 {similarity}% 유사성으로 연결되어 있습니다", + "clickToView": "클릭하여 메모 보기", + "isHelpful": "이 연결이 도움이 되나요?", + "helpful": "도움이 됨", + "notHelpful": "도움이 안 됨", + "memoryEchoDiscovery": "Memory Echo 발견" + }, + "diagnostics": { + "title": "진단", + "description": "AI 공급자 연결 상태를 확인하세요", + "configuredProvider": "구성된 공급자", + "apiStatus": "API 상태", + "operational": "정상 작동", + "errorStatus": "오류", + "checking": "확인 중...", + "testDetails": "테스트 세부 정보:", + "troubleshootingTitle": "문제 해결 팁:", + "tip1": "Ollama가 실행 중인지 확인 (ollama serve)", + "tip2": "모델이 설치되어 있는지 확인 (ollama pull llama3)", + "tip3": "OpenAI API 키 확인", + "tip4": "네트워크 연결 확인" + }, + "batch": { + "organizeWithAI": "AI로 정리하기", + "organize": "정리" + }, + "common": { + "unknown": "알 수 없음", + "notAvailable": "사용 불가", + "loading": "로딩 중...", + "error": "오류", + "success": "성공", + "confirm": "확인", + "cancel": "취소", + "close": "닫기", + "save": "저장", + "delete": "삭제", + "edit": "편집", + "add": "추가", + "remove": "제거", + "search": "검색", + "noResults": "결과 없음", + "required": "필수", + "optional": "선택" + }, + "time": { + "justNow": "방금", + "minutesAgo": "{count}분 전", + "hoursAgo": "{count}시간 전", + "daysAgo": "{count}일 전", + "yesterday": "어제", + "today": "오늘", + "tomorrow": "내일" + }, + "favorites": { + "title": "즐겨찾기", + "toggleSection": "즐겨찾기 섹션 전환", + "noFavorites": "즐겨찾기 없음", + "pinToFavorite": "즐겨찾기에 고정" + }, + "notebooks": { + "create": "노트북 만들기", + "allNotebooks": "모든 노트북", + "noNotebooks": "노트북 없음", + "createFirst": "첫 번째 노트북 만들기" + }, "ui": { "close": "닫기", - "collapse": "접기", + "open": "열기", "expand": "펼치기", - "open": "열기" + "collapse": "접기" }, "mcpSettings": { "title": "MCP 설정", @@ -1304,6 +1355,10 @@ "subtitle": "모니터링 및 리서치 작업 자동화", "newAgent": "새 에이전트", "myAgents": "내 에이전트", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "에이전트 없음", "noAgentsDescription": "첫 번째 에이전트를 만들거나 아래 템플릿을 설치하여 모니터링 작업을 자동화하세요.", "types": { @@ -1346,7 +1401,9 @@ "researchTopic": "조사 주제", "researchTopicPlaceholder": "예: AI 최신 동향", "notifyEmail": "이메일 알림", - "notifyEmailHint": "각 실행 후 에이전트 결과가 포함된 이메일 받기" + "notifyEmailHint": "각 실행 후 에이전트 결과가 포함된 이메일 받기", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "수동", @@ -1355,6 +1412,22 @@ "weekly": "매주", "monthly": "매월" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "성공", "failure": "실패", @@ -1383,7 +1456,9 @@ "toggleError": "에이전트 전환 중 오류 발생", "installSuccess": "\"{name}\"이(가) 설치되었습니다", "installError": "설치 중 오류 발생", - "saveError": "저장 중 오류 발생" + "saveError": "저장 중 오류 발생", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "템플릿", @@ -1496,7 +1571,8 @@ "welcome": "노트를 종합하고, 새로운 아이디어를 생성하거나, 노트북에 대해 논의하는 데 도움을 드릴 수 있습니다.", "searching": "검색 중...", "noNotesFoundForContext": "이 질문에 대한 관련 노트를 찾을 수 없습니다. 일반 지식으로 답변하세요.", - "webSearch": "웹 검색" + "webSearch": "웹 검색", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "랩", @@ -1513,30 +1589,8 @@ "createFailed": "생성 실패", "deleteSpace": "스페이스 삭제", "deleted": "스페이스가 삭제되었습니다", - "deleteError": "삭제 중 오류" - }, - "notification": { - "shared": "\"{title}\"을(를) 공유했습니다", - "untitled": "제목 없음", - "notifications": "알림", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "공유가 거절되었습니다", - "noNotifications": "No new notifications", - "removed": "목록에서 노트가 제거되었습니다" - }, - "reminders": { - "title": "알림", - "empty": "알림 없음", - "emptyDescription": "노트에 알림을 추가하면 여기에서 확인할 수 있습니다.", - "upcoming": "다가오는 알림", - "overdue": "지난 알림", - "done": "완료", - "markDone": "완료로 표시", - "markUndone": "미완료로 표시", - "todayAt": "오늘 {time}", - "tomorrowAt": "내일 {time}" + "deleteError": "삭제 중 오류", + "rename": "Rename" }, "lab": { "initializing": "작업 공간 초기화 중", diff --git a/memento-note/locales/nl.json b/memento-note/locales/nl.json index 8292052..bf6cf3a 100644 --- a/memento-note/locales/nl.json +++ b/memento-note/locales/nl.json @@ -1,350 +1,366 @@ { - "about": { - "appDescription": "Een krachtige notitie-applicatie met AI-ondersteunde functies", - "appName": "Memento", - "buildDate": "Bouwdatum", - "description": "Informatie over de applicatie", - "features": { - "description": "AI-ondersteunde mogelijkheden", - "dragDrop": "Drag & drop notitiebeheer", - "labelSystem": "Labelsysteem", - "memoryEcho": "Memory Echo dagelijkse inzichten", - "multipleProviders": "Meerdere AI-providers (OpenAI, Ollama)", - "notebookOrganization": "Notitieboek organisatie", - "paragraphReformulation": "Alinea herformulering", - "semanticSearch": "Semantisch zoeken met embeddings", - "title": "Functies", - "titleSuggestions": "AI-ondersteunde titelsuggesties" - }, - "platform": "Platform", - "platformWeb": "Web", - "support": { - "description": "Hulp en feedback krijgen", - "documentation": "Documentatie", - "feedback": "Feedback", - "reportIssues": "Problemen melden", - "title": "Ondersteuning" - }, - "technology": { - "ai": "AI", - "authentication": "Authenticatie", - "backend": "Backend", - "database": "Database", - "description": "Gebouwd met moderne technologieën", - "frontend": "Frontend", - "testing": "Testen", - "title": "Technologiestack", - "ui": "UI" - }, - "title": "Over", - "version": "Versie" + "auth": { + "signIn": "Inloggen", + "signUp": "Registreren", + "email": "E-mail", + "password": "Wachtwoord", + "name": "Naam", + "emailPlaceholder": "Voer uw e-mailadres in", + "passwordPlaceholder": "Voer uw wachtwoord in", + "namePlaceholder": "Voer uw naam in", + "passwordMinChars": "Voer wachtwoord in (min. 6 tekens)", + "resetPassword": "Wachtwoord opnieuw instellen", + "resetPasswordInstructions": "Voer uw e-mail in om uw wachtwoord opnieuw in te stellen", + "forgotPassword": "Wachtwoord vergeten?", + "noAccount": "Heeft u geen account?", + "hasAccount": "Heeft u al een account?", + "signInToAccount": "Log in op uw account", + "createAccount": "Maak uw account", + "rememberMe": "Onthoud mij", + "orContinueWith": "Of doorgaan met", + "checkYourEmail": "Controleer uw e-mail", + "resetEmailSent": "We hebben een link om uw wachtwoord opnieuw in te stellen naar uw e-mailadres gestuurd als deze bestaat in ons systeem.", + "returnToLogin": "Terug naar inloggen", + "forgotPasswordTitle": "Wachtwoord vergeten", + "forgotPasswordDescription": "Voer uw e-mailadres in en we sturen u een link om uw wachtwoord opnieuw in te stellen.", + "sending": "Verzenden...", + "sendResetLink": "Link opnieuw instellen verzenden", + "backToLogin": "Terug naar inloggen", + "signOut": "Uitloggen", + "confirmPassword": "Wachtwoord bevestigen", + "confirmPasswordPlaceholder": "Bevestig uw wachtwoord" }, - "admin": { - "ai": { - "apiKey": "API Key", - "baseUrl": "Base URL", - "commonEmbeddingModels": "Veelvoorkomende embedding-modellen voor OpenAI-compatibele API's", - "commonModelsDescription": "Veelvoorkomende modellen voor OpenAI-compatibele API's", - "description": "Configureer AI-providers voor automatische tagging en semantisch zoeken. Gebruik verschillende providers voor optimale prestaties.", - "embeddingsDescription": "AI-provider voor semantische zoek-embeddings. Aanbevolen: OpenAI (beste kwaliteit).", - "embeddingsProvider": "Embeddings-provider", - "model": "Model", - "modelRecommendations": "gpt-4o-mini = Beste prijs-kwaliteit • gpt-4o = Beste kwaliteit", - "openAIKeyDescription": "Uw OpenAI API-sleutel van platform.openai.com", - "openTestPanel": "AI-testpaneel openen", - "provider": "Provider", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING is vereist", - "providerTagsRequired": "AI_PROVIDER_TAGS is vereist", - "saveSettings": "AI-instellingen opslaan", - "saving": "Opslaan...", - "selectEmbeddingModel": "Selecteer een op uw systeem geïnstalleerd embedding-model", - "selectOllamaModel": "Selecteer een op uw systeem geïnstalleerd Ollama-model", - "tagsGenerationDescription": "AI-provider voor automatische tagsuggesties. Aanbevolen: Ollama (gratis, lokaal).", - "tagsGenerationProvider": "Tags-generatieprovider", - "title": "AI-configuratie", - "updateFailed": "AI-instellingen bijwerken mislukt", - "updateSuccess": "AI-instellingen succesvol bijgewerkt", - "bestValue": "Beste prijs-kwaliteit", - "bestQuality": "Beste kwaliteit", - "providerOllamaOption": "🦙 Ollama (Local & Free)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Custom OpenAI-Compatible", - "saved": "(Opgeslagen)", - "chatProvider": "Chat Provider", - "chatDescription": "AI-provider voor de chat-assistent. Val terug op Tags-provider indien niet geconfigureerd.", - "fetchModelsFailed": "Modellen ophalen mislukt", - "refreshModels": "Modellen vernieuwen", - "configured": "Geconfigureerd", - "fetchingModels": "Modellen ophalen...", - "clickToLoadModels": "Klik op ↺ om modellen te laden", - "searchModel": "Model zoeken...", - "noModels": "Geen modellen. Klik op ↺", - "modelsAvailable": "{count} model(len) beschikbaar", - "enterUrlToLoad": "Voer URL in en klik op ↺", - "currentProvider": "(Huidig: {provider})", - "pageTitle": "AI-beheer", - "pageDescription": "AI-functies bewaken en configureren", - "configure": "Configureren", - "features": "AI-functies", - "providerStatus": "AI-provider status", - "recentRequests": "Recente AI-verzoeken", - "comingSoon": "Binnenkort beschikbaar", - "activeFeatures": "Actieve functies", - "successRate": "Succesrate", - "avgResponseTime": "Gemiddelde responstijd", - "configuredProviders": "Geconfigureerde providers", - "settingUpdated": "Instelling bijgewerkt", - "updateFailedShort": "Bijwerken mislukt", - "titleSuggestions": "Titelsuggesties", - "titleSuggestionsDesc": "Stelt titels voor voor noten na 50+ woorden", - "aiAssistant": "AI-assistent", - "aiAssistantDesc": "AI-chat en tekstverbeteringstools inschakelen", - "memoryEchoFeature": "Ik merkte iets op...", - "memoryEchoFeatureDesc": "Dagelijkse analyse van verbindingen tussen notities", - "languageDetection": "Taaldetectie", - "languageDetectionDesc": "Detecteert automatisch de taal van elke notitie", - "autoLabeling": "Automatisch labelen", - "autoLabelingDesc": "Stelt labels voor en past ze automatisch toe" - }, - "aiTest": { - "description": "Test uw AI-providers voor taggeneratie en semantische zoek-embeddings", - "embeddingDimensions": "Embedding-dimensies:", - "embeddingsTestDescription": "Test de AI-provider die verantwoordelijk is voor semantische zoek-embeddings", - "embeddingsTestTitle": "Embeddings-test", - "error": "Fout:", - "first5Values": "Eerste 5 waarden:", - "generatedTags": "Gegenereerde tags:", - "howItWorksTitle": "Hoe testen werkt", - "model": "Model:", - "provider": "Provider:", - "responseTime": "Responstijd: {time}ms", - "runTest": "Test uitvoeren", - "tagsTestDescription": "Test de AI-provider die verantwoordelijk is voor automatische tagsuggesties", - "tagsTestTitle": "Tags-generatietest", - "testError": "Testfout: {error}", - "testFailed": "Test mislukt", - "testPassed": "Test geslaagd", - "testing": "Testen...", - "tipDescription": "Gebruik het AI-testpaneel om configuratieproblemen te diagnosticeren voordat u test.", - "tipTitle": "Tip:", - "title": "AI-provider testen", - "vectorDimensions": "vectordimensies", - "tagsGenerationTest": "🏷️ Tags-generatietest:", - "tagsStep1": "Stuurt een voorbeeldnotitie naar de AI-provider", - "tagsStep2": "Vraagt 3-5 relevante tags op basis van de inhoud", - "tagsStep3": "Toont de gegenereerde tags met betrouwbaarheidsscores", - "tagsStep4": "Meet de responstijd", - "embeddingsTestLabel": "🔍 Embeddings-test:", - "embeddingsStep1": "Stuurt een voorbeeldtekst naar de embedding-provider", - "embeddingsStep2": "Genereert een vectorrepresentatie (lijst met getallen)", - "embeddingsStep3": "Toont embedding-dimensies en voorbeeldwaarden", - "embeddingsStep4": "Verifieert of de vector geldig en correct opgemaakt is", - "tipContent": "U kunt verschillende providers gebruiken voor tags en embeddings! Gebruik bijvoorbeeld Ollama (gratis) voor tags en OpenAI (beste kwaliteit) voor embeddings om kosten en prestaties te optimaliseren.", - "testSuccessToast": "{type}-test geslaagd!", - "testFailedToast": "{type}-test mislukt", - "testingType": "{type} testen...", - "technicalDetails": "Technische details" - }, - "aiTesting": "AI-testen", - "security": { - "allowPublicRegistration": "Openbare registratie toestaan", - "allowPublicRegistrationDescription": "Indien uitgeschakeld kunnen nieuwe gebruikers alleen door een beheerder via de gebruikersbeheerpagina worden toegevoegd.", - "description": "Beheer toegangscontrole en registratiebeleid.", - "title": "Beveiligingsinstellingen", - "updateFailed": "Beveiligingsinstellingen bijwerken mislukt", - "updateSuccess": "Beveiligingsinstellingen bijgewerkt" - }, - "settings": "Beheerinstellingen", - "resend": { - "title": "Resend (Aanbevolen)", - "description": "Stuur e-mails via de Resend API. Heeft voorrang op SMTP indien geconfigureerd.", - "apiKey": "Resend API-sleutel", - "apiKeyHint": "Haal uw API-sleutel op bij resend.com. Wordt gebruikt voor agent-meldingen en wachtwoordresets.", - "saveSettings": "Resend-instellingen opslaan", - "updateSuccess": "Resend-instellingen bijgewerkt", - "updateFailed": "Resend-instellingen bijwerken mislukt", - "configured": "Resend is geconfigureerd en actief" - }, - "email": { - "title": "E-mailconfiguratie", - "description": "Configureer e-mailbezorging voor agent-meldingen en wachtwoordresets.", - "provider": "E-mailprovider", - "saveSettings": "E-mailinstellingen opslaan" - }, - "smtp": { - "description": "Configureer e-mailserver voor wachtwoordresets.", - "forceSSL": "SSL/TLS forceren (meestal voor poort 465)", - "fromEmail": "Van e-mail", - "host": "Host", - "ignoreCertErrors": "Certificaatfouten negeren (alleen self-hosted/ontwikkeling)", - "password": "Wachtwoord", - "port": "Poort", - "saveSettings": "SMTP-instellingen opslaan", - "sending": "Verzenden...", - "testEmail": "Test-e-mail", - "testFailed": "Mislukt: {error}", - "testSuccess": "Test-e-mail succesvol verzonden!", - "title": "SMTP-configuratie", - "updateFailed": "SMTP-instellingen bijwerken mislukt", - "updateSuccess": "SMTP-instellingen bijgewerkt", - "username": "Gebruikersnaam" - }, - "title": "Beheerdashboard", - "userManagement": "Gebruikersbeheer", - "users": { - "addUser": "Gebruiker toevoegen", - "confirmDelete": "Weet u zeker dat u deze gebruiker wilt verwijderen?", - "createFailed": "Gebruiker aanmaken mislukt", - "createSuccess": "Gebruiker succesvol aangemaakt", - "createUser": "Gebruiker aanmaken", - "createUserDescription": "Voeg een nieuwe gebruiker toe aan het systeem.", - "deleteFailed": "Verwijderen mislukt", - "deleteSuccess": "Gebruiker verwijderd", - "demote": "Degraderen", - "email": "E-mail", - "name": "Naam", - "password": "Wachtwoord", - "promote": "Bevorderen", - "role": "Rol", - "roleUpdateFailed": "Rol bijwerken mislukt", - "roleUpdateSuccess": "Gebruikersrol bijgewerkt naar {role}", - "roles": { - "admin": "Beheerder", - "user": "Gebruiker" - }, - "table": { - "actions": "Acties", - "createdAt": "Aangemaakt op", - "email": "E-mail", - "name": "Naam", - "role": "Rol" - }, - "title": "Gebruikers", - "description": "Beheer gebruikers en machtigingen" - }, - "chat": "AI Chat", - "lab": "Het Lab", - "agents": "Agenten", - "workspace": "Werkruimte", - "sidebar": { - "dashboard": "Dashboard", - "users": "Gebruikers", - "aiManagement": "AI-beheer", - "chat": "AI Chat", - "lab": "Het Lab (Ideeën)", - "agents": "Agents", - "settings": "Instellingen" - }, - "metrics": { - "vsLastPeriod": "vs vorige periode" - }, - "tools": { - "title": "Agent Tools", - "description": "Configureer externe tools voor agent tool-gebruik: web zoeken, web schrapen en API-toegang.", - "searchProvider": "Web Zoek Provider", - "searxng": "SearXNG (Zelf-gehost)", - "brave": "Brave Search API", - "both": "Beide (SearXNG primair, Brave fallback)", - "searxngUrl": "SearXNG URL", - "braveKey": "Brave Search API-sleutel", - "jinaKey": "Jina Reader API-sleutel", - "jinaKeyOptional": "Optioneel — werkt zonder maar met snelheidslimieten", - "jinaKeyDescription": "Gebruikt voor web schrapen. Werkt zonder sleutel maar met snelheidslimieten.", - "saveSettings": "Tools-instellingen Opslaan", - "updateSuccess": "Tools-instellingen succesvol bijgewerkt", - "updateFailed": "Tools-instellingen bijwerken mislukt", - "testing": "Testen...", - "testSearch": "Zoekfunctie testen" - }, - "settingsDescription": "Toepassingsinstellingen configureren", - "dashboard": { - "title": "Dashboard", - "description": "Overzicht van applicatiestatistieken", - "recentActivity": "Recente activiteit", - "recentActivityPlaceholder": "Recente activiteit wordt hier weergegeven." - }, - "error": { - "title": "Fout in beheerderspaneel", - "description": "Pagina rendering mislukt. Probeer opnieuw.", - "retry": "Opnieuw proberen" - } + "sidebar": { + "notes": "Notities", + "reminders": "Herinneringen", + "labels": "Labels", + "editLabels": "Labels bewerken", + "newNoteTabs": "Nieuwe notitie", + "newNoteTabsHint": "Notitie maken in dit notitieboek", + "noLabelsInNotebook": "Nog geen labels in dit notitieboek", + "archive": "Archief", + "trash": "Prullenbak", + "clearFilter": "Remove filter" + }, + "notes": { + "title": "Notities", + "newNote": "Nieuwe notitie", + "untitled": "Naamloos", + "placeholder": "Maak een notitie...", + "markdownPlaceholder": "Maak een notitie... (Markdown ondersteund)", + "titlePlaceholder": "Titel", + "listItem": "Lijstitem", + "addListItem": "+ Lijstitem", + "newChecklist": "Nieuwe checklist", + "add": "Toevoegen", + "adding": "Toevoegen...", + "close": "Sluiten", + "confirmDelete": "Weet u zeker dat u deze notitie wilt verwijderen?", + "confirmLeaveShare": "Weet u zeker dat u deze gedeelde notitie wilt verlaten?", + "sharedBy": "Gedeeld door", + "leaveShare": "Verlaten", + "delete": "Verwijderen", + "archive": "Archiveren", + "unarchive": "Dearchiveren", + "pin": "Vastzetten", + "unpin": "Losmaken", + "color": "Kleur", + "changeColor": "Kleur wijzigen", + "setReminder": "Herinnering instellen", + "setReminderButton": "Herinnering instellen", + "date": "Datum", + "time": "Tijd", + "reminderDateTimeRequired": "Voer datum en tijd in", + "invalidDateTime": "Ongeldige datum of tijd", + "reminderMustBeFuture": "Herinnering moet in de toekomst liggen", + "reminderSet": "Herinnering ingesteld op {datetime}", + "reminderPastError": "Herinnering moet in de toekomst liggen", + "reminderRemoved": "Herinnering verwijderd", + "addImage": "Afbeelding toevoegen", + "addLink": "Link toevoegen", + "linkAdded": "Link toegevoegd", + "linkMetadataFailed": "Kon linkmetadata niet ophalen", + "linkAddFailed": "Link toevoegen mislukt", + "invalidFileType": "Ongeldig bestandstype: {fileName}. Alleen JPEG, PNG, GIF en WebP zijn toegestaan.", + "fileTooLarge": "Bestand te groot: {fileName}. Maximale grootte is {maxSize}.", + "uploadFailed": "Uploaden van {filename} mislukt", + "contentOrMediaRequired": "Voer inhoud in of voeg een link/afbeelding toe", + "itemOrMediaRequired": "Voeg ten minste één item of media toe", + "noteCreated": "Notitie succesvol aangemaakt", + "noteCreateFailed": "Notitie aanmaken mislukt", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "aiAssistant": "AI-assistent", + "changeSize": "Grootte wijzigen", + "backgroundOptions": "Achtergrondopties", + "moreOptions": "Meer opties", + "remindMe": "Herinner mij", + "markdownMode": "Markdown", + "addCollaborators": "Medewerkers toevoegen", + "duplicate": "Dupliceren", + "share": "Delen", + "showCollaborators": "Medewerkers weergeven", + "pinned": "Vastgezet", + "others": "Overig", + "noNotes": "Geen notities", + "noNotesFound": "Geen notities gevonden", + "createFirstNote": "Maak uw eerste notitie", + "size": "Grootte", + "small": "Klein", + "medium": "Middel", + "large": "Groot", + "shareWithCollaborators": "Delen met medewerkers", + "view": "Notitie bekijken", + "edit": "Notitie bewerken", + "readOnly": "Alleen-lezen", + "preview": "Voorbeeld", + "noContent": "Geen inhoud", + "takeNote": "Maak een notitie...", + "takeNoteMarkdown": "Maak een notitie... (Markdown ondersteund)", + "addItem": "Item toevoegen", + "sharedReadOnly": "Deze notitie is met u gedeeld in alleen-lezen modus", + "makeCopy": "Kopie maken", + "saving": "Opslaan...", + "copySuccess": "Notitie succesvol gekopieerd!", + "copyFailed": "Notitie kopiëren mislukt", + "copy": "Kopiëren", + "markdownOn": "Markdown AAN", + "markdownOff": "Markdown UIT", + "undo": "Ongedaan maken", + "redo": "Opnieuw uitvoeren", + "pinnedNotes": "Vastgezette notities", + "recent": "Recent", + "addNote": "Notitie toevoegen", + "remove": "Verwijderen", + "dragToReorder": "Sleep om te herschikken", + "more": "Meer", + "emptyState": "Geen notities hier", + "emptyStateTabs": "Nog geen notities hier. Gebruik \"Nieuwe notitie\" in de zijbalk om er een toe te voegen (AI-titelsuggesties verschijnen in de composer).", + "inNotebook": "In notitieboek", + "moveFailed": "Verplaatsen mislukt", + "clarifyFailed": "Verduidelijken mislukt", + "shortenFailed": "Inkorten mislukt", + "improveFailed": "Verbeteren mislukt", + "transformFailed": "Transformeren mislukt", + "markdown": "Markdown", + "unpinned": "Losgemaakt", + "redoShortcut": "Opnieuw (Ctrl+Y)", + "undoShortcut": "Ongedaan maken (Ctrl+Z)", + "viewCards": "Kaartenweergave", + "viewCardsTooltip": "Kaartenraster met slepen-en-neerzetten herschikken", + "viewTabs": "Lijstweergave", + "viewTabsTooltip": "Tabbladen bovenaan, notitie eronder — sleep tabbladen om te herschikken", + "viewModeGroup": "Weergavemodus notities", + "reorderTabs": "Tabblad herschikken", + "modified": "Gewijzigd", + "created": "Aangemaakt", + "loading": "Laden...", + "exportPDF": "PDF exporteren", + "savedStatus": "Opgeslagen", + "dirtyStatus": "Gewijzigd", + "completedLabel": "Voltooid", + "notes.emptyNotebook": "Leeg notitieboek", + "notes.emptyNotebookDesc": "Dit notitieboek heeft geen notities. Klik op + om er een te maken.", + "notes.noNoteSelected": "Geen notitie geselecteerd", + "notes.selectOrCreateNote": "Selecteer een notitie uit de lijst of maak een nieuwe.", + "commitVersion": "Versie opslaan", + "versionSaved": "Versie opgeslagen", + "deleteVersion": "Deze versie verwijderen", + "versionDeleted": "Versie verwijderd", + "deleteVersionConfirm": "Deze versie definitief verwijderen?", + "historyMode": "Geschiedenismodus", + "historyModeManual": "Handmatig (commit-knop)", + "historyModeAuto": "Automatisch (slim)", + "historyModeManualDesc": "Handmatig snapshots maken met de commit-knop", + "historyModeAutoDesc": "Automatische snapshots met slimme detectie", + "history": "Geschiedenis", + "historyRestored": "Versie hersteld", + "historyEnabled": "Geschiedenis ingeschakeld", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "Geschiedenis is uitgeschakeld voor uw account.", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "Geschiedenis inschakelen", + "historyEmpty": "Geen versies beschikbaar", + "historySelectVersion": "Selecteer een versie om de inhoud te bekijken", + "sortBy": "Sorteren op", + "sortDateDesc": "Datum (nieuwste)", + "sortDateAsc": "Datum (oudste)", + "sortTitleAsc": "Titel A → Z", + "sortTitleDesc": "Titel Z → A", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "pagination": { + "previous": "←", + "pageInfo": "Pagina {currentPage} / {totalPages}", + "next": "→" + }, + "labels": { + "title": "Labels", + "filter": "Filter by Label", + "manage": "Manage Labels", + "manageTooltip": "Manage Labels", + "changeColor": "Kleur wijzigen", + "changeColorTooltip": "Kleur wijzigen", + "delete": "Delete", + "deleteTooltip": "Delete label", + "confirmDelete": "Weet u zeker dat u dit label wilt verwijderen?", + "newLabelPlaceholder": "Create new label", + "namePlaceholder": "Enter label name", + "addLabel": "Label toevoegen", + "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": "Alle labels", + "clearAll": "Alles wissen", + "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": "Geen labels", + "confirmDeleteShort": "Bevestigen?", + "labelRemoved": "Label \"{label}\" verwijderd" + }, + "search": { + "placeholder": "Zoeken", + "searchPlaceholder": "Doorzoek uw notities...", + "semanticInProgress": "AI-zoeken bezig...", + "semanticTooltip": "AI semantisch zoeken", + "searching": "Zoeken...", + "noResults": "Geen resultaten gevonden", + "resultsFound": "{count} notities gevonden", + "exactMatch": "Exacte overeenkomst", + "related": "Gerelateerd", + "disabledAdmin": "Zoeken uitgeschakeld in adminmodus" + }, + "collaboration": { + "emailPlaceholder": "Voer e-mailadres in", + "addCollaborator": "Medewerker toevoegen", + "removeCollaborator": "Medewerker verwijderen", + "owner": "Eigenaar", + "canEdit": "Kan bewerken", + "canView": "Kan bekijken", + "shareNote": "Notitie delen", + "shareWithCollaborators": "Delen met medewerkers", + "addCollaboratorDescription": "Voeg mensen toe om aan deze notitie samen te werken via hun e-mailadres.", + "viewerDescription": "U heeft toegang tot deze notitie. Alleen de eigenaar kan medewerkers beheren.", + "emailAddress": "E-mailadres", + "enterEmailAddress": "Voer e-mailadres in", + "invite": "Uitnodigen", + "peopleWithAccess": "Mensen met toegang", + "noCollaborators": "Nog geen medewerkers. Voeg iemand hierboven toe!", + "noCollaboratorsViewer": "Nog geen medewerkers.", + "pendingInvite": "Uitnodiging in afwachting", + "pending": "In afwachting", + "remove": "Verwijderen", + "unnamedUser": "Naamloze gebruiker", + "done": "Klaar", + "willBeAdded": "{email} wordt toegevoegd als medewerker wanneer de notitie wordt aangemaakt", + "alreadyInList": "Dit e-mailadres staat al in de lijst", + "nowHasAccess": "{name} heeft nu toegang tot deze notitie", + "accessRevoked": "Toegang ingetrokken", + "errorLoading": "Fout bij laden van medewerkers", + "failedToAdd": "Medewerker toevoegen mislukt", + "failedToRemove": "Medewerker verwijderen mislukt" }, "ai": { "analyzing": "AI analyseert...", + "clickToAddTag": "Klik om deze tag toe te voegen", + "ignoreSuggestion": "Deze suggestie negeren", + "generatingTitles": "Titels genereren...", + "generateTitlesTooltip": "Titels genereren met AI", + "poweredByAI": "Aangedreven door AI", + "languageDetected": "Taal gedetecteerd", + "processing": "Verwerken...", + "tagAdded": "Tag \"{tag}\" toegevoegd", + "titleGenerating": "Genereren...", + "titleGenerateWithAI": "Titels genereren met AI", + "titleGenerationMinWords": "Inhoud moet minimaal 10 woorden bevatten om titels te genereren (huidig: {count} woorden)", + "titleGenerationError": "Fout bij genereren titels", + "titlesGenerated": "💡 {count} titels gegenereerd!", + "titleGenerationFailed": "Titels genereren mislukt", + "titleApplied": "Titel toegepast!", + "reformulationNoText": "Selecteer tekst of voeg inhoud toe", + "reformulationSelectionTooShort": "Selectie te kort, volledige inhoud wordt gebruikt", + "reformulationMinWords": "Tekst moet minimaal 10 woorden bevatten (huidig: {count} woorden)", + "reformulationMaxWords": "Tekst mag maximaal 500 woorden bevatten", + "reformulationError": "Fout bij herformuleren", + "reformulationFailed": "Tekst herformuleren mislukt", + "reformulationApplied": "Herformuleerde tekst toegepast!", + "transformMarkdown": "Naar Markdown transformeren", + "transforming": "Transformeren...", + "transformSuccess": "Tekst succesvol naar Markdown getransformeerd!", + "transformError": "Fout bij transformeren", "assistant": "AI-assistent", + "generating": "Genereren...", + "generateTitles": "Titels genereren", + "reformulateText": "Tekst herformuleren", + "reformulating": "Herformuleren...", + "clarify": "Verduidelijken", + "shorten": "Inkorten", + "improveStyle": "Stijl verbeteren", + "reformulationComparison": "Herformulering vergelijken", + "original": "Origineel", + "reformulated": "Herformuleerd", "autoLabels": { - "analyzing": "Uw notities analyseren voor labelsuggesties...", - "create": "Maken", - "createNewLabel": "Nieuw label maken", - "created": "{count} labels succesvol aangemaakt", - "creating": "Labels maken...", - "description": "Ik heb terugkerende themas gedetecteerd in \"{notebookName}\" ({totalNotes} notities). Labels hiervoor maken?", "error": "Labelsuggesties ophalen mislukt", - "new": "(nieuw)", "noLabelsSelected": "Geen labels geselecteerd", + "created": "{count} labels succesvol aangemaakt", + "analyzing": "Uw notities analyseren voor labelsuggesties...", + "title": "Labelsuggesties", + "description": "Ik heb terugkerende themas gedetecteerd in \"{notebookName}\" ({totalNotes} notities). Labels hiervoor maken?", "note": "notitie", "notes": "notities", - "title": "Labelsuggesties", "typeContent": "Typ inhoud voor labelsuggesties...", - "typeForSuggestions": "Typ voor suggesties", - "notesCount": "{count} notities" + "createNewLabel": "Nieuw label maken", + "new": "(nieuw)", + "create": "Maken", + "creating": "Labels maken...", + "notesCount": "{count} notities", + "typeForSuggestions": "Typ voor suggesties" }, "batchOrganization": { - "analyzing": "Uw notities analyseren...", - "apply": "Toepassen", - "applyFailed": "Toepassen mislukt", - "applying": "Toepassen...", + "title": "Batch organisatie", "description": "AI zal uw notities analyseren en voorstellen om ze in notitieboeken te organiseren.", - "error": "Fout bij organisatie", + "analyzing": "Uw notities analyseren...", "noNotebooks": "Geen notitieboeken beschikbaar. Maak eerst notitieboeken aan om uw notities te organiseren.", - "noNotesSelected": "Geen notities geselecteerd", "noSuggestions": "AI kon geen goede manier vinden om deze notities te organiseren.", - "selectAllIn": "Alles selecteren in", - "selectNote": "Notitie selecteren", + "apply": "Toepassen", + "applying": "Toepassen...", "success": "Organisatie voltooid", - "title": "Batch organisatie" + "error": "Fout bij organisatie", + "noNotesSelected": "Geen notities geselecteerd", + "applyFailed": "Toepassen mislukt", + "selectAllIn": "Alles selecteren in", + "selectNote": "Notitie selecteren" }, - "clarify": "Verduidelijken", - "clickToAddTag": "Klik om deze tag toe te voegen", - "generateTitles": "Titels genereren", - "generateTitlesTooltip": "Titels genereren met AI", - "generating": "Genereren...", - "generatingTitles": "Titels genereren...", - "ignoreSuggestion": "Deze suggestie negeren", - "improveStyle": "Stijl verbeteren", - "languageDetected": "Taal gedetecteerd", "notebookSummary": { "regenerate": "Samenvatting Opnieuw Genereren", "regenerating": "Samenvatting opnieuw genereren...", "exportPDF": "Exporteren als PDF" }, - "original": "Origineel", - "poweredByAI": "Aangedreven door AI", - "processing": "Verwerken...", - "reformulateText": "Tekst herformuleren", - "reformulated": "Herformuleerd", - "reformulating": "Herformuleren...", - "reformulationApplied": "Herformuleerde tekst toegepast!", - "reformulationComparison": "Herformulering vergelijken", - "reformulationError": "Fout bij herformuleren", - "reformulationFailed": "Tekst herformuleren mislukt", - "reformulationMaxWords": "Tekst mag maximaal 500 woorden bevatten", - "reformulationMinWords": "Tekst moet minimaal 10 woorden bevatten (huidig: {count} woorden)", - "reformulationNoText": "Selecteer tekst of voeg inhoud toe", - "reformulationSelectionTooShort": "Selectie te kort, volledige inhoud wordt gebruikt", - "shorten": "Inkorten", - "tagAdded": "Tag \"{tag}\" toegevoegd", - "titleApplied": "Titel toegepast!", - "titleGenerateWithAI": "Titels genereren met AI", - "titleGenerating": "Genereren...", - "titleGenerationError": "Fout bij genereren titels", - "titleGenerationFailed": "Titels genereren mislukt", - "titleGenerationMinWords": "Inhoud moet minimaal 10 woorden bevatten om titels te genereren (huidig: {count} woorden)", - "titlesGenerated": "💡 {count} titels gegenereerd!", - "transformError": "Fout bij transformeren", - "transformMarkdown": "Naar Markdown transformeren", - "transformSuccess": "Tekst succesvol naar Markdown getransformeerd!", - "transforming": "Transformeren...", "clarifyDesc": "Maak de tekst duidelijker en begrijpelijker", "shortenDesc": "Vat de tekst samen en kom tot de kern", "improve": "Schrijven verbeteren", @@ -389,11 +405,14 @@ "transformationsDesc": "Transformaties — direct toegepast op de notitie", "writeMinWordsAction": "Schrijf minimaal 5 woorden om AI-acties te activeren.", "processingAction": "Verwerken...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "Verduidelijken", "shorten": "Inkorten", "improve": "Verbeteren", - "toMarkdown": "Naar Markdown" + "toMarkdown": "Naar Markdown", + "describeImages": "Describe images" }, "openAssistant": "AI-assistent openen", "poweredByMomento": "Aangedreven door Momento AI", @@ -408,348 +427,59 @@ "historyTab": "Geschiedenis", "insightsTab": "Inzichten", "aiCopilot": "AI-copiloot", - "suggestTitle": "AI-titelsuggestie" + "suggestTitle": "AI-titelsuggestie", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" }, - "aiSettings": { - "description": "Configureer uw AI-aangedreven functies en voorkeuren", - "error": "Instelling bijwerken mislukt", - "features": "AI-functies", - "frequency": "Frequentie", - "frequencyDaily": "Dagelijks", - "frequencyWeekly": "Wekelijks", - "provider": "AI-provider", - "providerAuto": "Auto (Aanbevolen)", - "providerOllama": "Ollama (Lokaal)", - "providerOpenAI": "OpenAI (Cloud)", - "saved": "Instelling bijgewerkt", - "saving": "Opslaan...", - "title": "AI-instellingen", - "titleSuggestionsDesc": "Titels suggereren voor notities zonder titel na 50+ woorden", - "paragraphRefactorDesc": "AI-ondersteunde tekstverbeteringsopties", - "frequencyDesc": "Hoe vaak notitieverbindingen analyseren", - "providerDesc": "Kies uw voorkeurs AI-provider", - "providerAutoDesc": "Ollama indien beschikbaar, OpenAI als terugval", - "providerOllamaDesc": "100% privé, draait lokaal op uw machine", - "providerOpenAIDesc": "Meest nauwkeurig, vereist API-sleutel" + "titleSuggestions": { + "available": "Titelsuggesties", + "title": "AI-suggesties", + "generating": "Genereren...", + "selectTitle": "Selecteer een titel", + "dismiss": "Negeren" }, - "appearance": { - "description": "Pas aan hoe de app eruit ziet", - "title": "Weergave", - "notesViewDescription": "Kies hoe notities worden weergegeven op de startpagina en in notitieboeken.", - "notesViewLabel": "Notities weergave", - "notesViewTabs": "Tabbladen (OneNote-stijl)", - "notesViewMasonry": "Kaarten (raster)" + "semanticSearch": { + "exactMatch": "Exacte overeenkomst", + "related": "Gerelateerd", + "searching": "Zoeken..." }, - "auth": { - "backToLogin": "Terug naar inloggen", - "checkYourEmail": "Controleer uw e-mail", - "createAccount": "Maak uw account", - "email": "E-mail", - "emailPlaceholder": "Voer uw e-mailadres in", - "forgotPassword": "Wachtwoord vergeten?", - "forgotPasswordDescription": "Voer uw e-mailadres in en we sturen u een link om uw wachtwoord opnieuw in te stellen.", - "forgotPasswordTitle": "Wachtwoord vergeten", - "hasAccount": "Heeft u al een account?", - "name": "Naam", - "namePlaceholder": "Voer uw naam in", - "noAccount": "Heeft u geen account?", - "orContinueWith": "Of doorgaan met", - "password": "Wachtwoord", - "passwordMinChars": "Voer wachtwoord in (min. 6 tekens)", - "passwordPlaceholder": "Voer uw wachtwoord in", - "rememberMe": "Onthoud mij", - "resetEmailSent": "We hebben een link om uw wachtwoord opnieuw in te stellen naar uw e-mailadres gestuurd als deze bestaat in ons systeem.", - "resetPassword": "Wachtwoord opnieuw instellen", - "resetPasswordInstructions": "Voer uw e-mail in om uw wachtwoord opnieuw in te stellen", - "returnToLogin": "Terug naar inloggen", - "sendResetLink": "Link opnieuw instellen verzenden", - "sending": "Verzenden...", - "signIn": "Inloggen", - "signInToAccount": "Log in op uw account", - "signOut": "Uitloggen", - "signUp": "Registreren", - "confirmPassword": "Wachtwoord bevestigen", - "confirmPasswordPlaceholder": "Bevestig uw wachtwoord" - }, - "autoLabels": { - "aiPowered": "AI-gestuurd", - "analyzing": "Uw notities analyseren...", - "applySuggested": "Suggestie toepassen", - "autoLabelBatchDescription": "Automatisch labels toevoegen voor geselecteerde notities", - "autoLabelDescription": "Automatisch labels toevoegen op basis van AI-analyse", - "autoLabelNoteDescription": "Automatisch labels toevoegen voor deze notitie", - "confidence": "Vertrouwen: {score}%", - "contentAnalysis": "Content analyse", - "createNewLabel": "Maak dit nieuwe label aan en voeg het toe", - "created": "{count} labels succesvol aangemaakt", - "description": "Ik heb terugkerende thema's gedetecteerd in \"{notebookName}\" ({totalNotes} notities). Labels hiervoor maken?", - "disabled": "Uitgeschakeld", - "dismissAll": "Alles negeren", - "enabled": "Ingeschakeld", - "error": "Fout bij auto labels", - "generateMore": "Meer genereren", - "keywordExtraction": "Sleutelwoorden extraheren", - "labelCategories": "Label categorieën", - "labelCategoriesDescription": "Selecteer categorieën voor auto labeling", - "labelsApplied": "Labels toegepast", - "learnMore": "Meer informatie", - "maxLabels": "Max labels per notitie", - "maxLabelsDescription": "Maximum aantal labels per notitie", - "minConfidence": "Minimaal vertrouwen", - "minConfidenceDescription": "Minimale score (0-100) voor AI-suggesties", - "new": "(nieuw)", - "noLabelsGenerated": "Geen labels gegenereerd", - "noLabelsSelected": "Geen labels geselecteerd", - "note": "notitie", - "notes": "notities", - "processing": "Verwerken...", - "saveSettings": "Instellingen opslaan", - "settings": "Instellingen", - "settingsDescription": "Configureer auto label preferenties", - "settingsDialogTitle": "Auto labels instellingen", - "settingsSaved": "Instellingen opgeslagen", - "smartTagging": "Slim taggen", - "suggestedLabels": "Suggestie voor labels", - "title": "Auto labels", - "toggle": "Auto labels inschakelen", - "typeContent": "Typ inhoud voor labelsuggesties..." - }, - "batch": { - "organize": "Organiseren", - "organizeWithAI": "Organiseren met AI" - }, - "batchOrganization": { - "addCategories": "Categorieën toevoegen", - "addTags": "Tags toevoegen", - "analyzing": "Uw notities analyseren...", - "apply": "Toepassen ({count})", - "applyChanges": "Wijzigingen toepassen", - "applying": "Toepassen...", - "backToNote": "Terug naar notitie", - "categories": "Categorieën", - "categorized": "Gecategoriseerd: {count}", - "close": "Sluiten", - "confidence": "confidence", - "description": "AI zal uw notities analyseren en voorstellen om ze in notitieboeken te organiseren.", - "done": "Klaar", - "error": "Fout bij aanmaken organisatieplan", - "finished": "Organisatie voltooid!", - "noNotebooks": "Geen notitieboeken beschikbaar. Maak eerst notitieboeken aan om uw notities te organiseren.", - "noNotesSelected": "Geen notities geselecteerd", - "noSuggestions": "AI kon geen goede manier vinden om deze notities te organiseren.", - "noTagsAdded": "Geen tags toegevoegd", - "notesToOrganize": "{count} notities te organiseren", - "organizing": "Organiseren...", - "results": "Resultaten", - "reviewChanges": "Wijzigingen bekijken", - "selectNotes": "Selecteer notities om te organiseren", - "selected": "{count} geselecteerd", - "skip": "Overslaan", - "start": "Organisatie starten", - "suggestedCategories": "Suggestie voor categorieën", - "suggestedTags": "Suggestie voor tags", - "tagsAdded": "Tags toegevoegd: {count}", - "title": "Batch organisatie", - "totalProcessed": "Verwerkt: {total}", - "unorganized": "{count} notities konden niet worden gecategoriseerd en blijven in Algemene notities." - }, - "collaboration": { - "accessRevoked": "Toegang ingetrokken", - "addCollaborator": "Medewerker toevoegen", - "addCollaboratorDescription": "Voeg mensen toe om aan deze notitie samen te werken via hun e-mailadres.", - "alreadyInList": "Dit e-mailadres staat al in de lijst", - "canEdit": "Kan bewerken", - "canView": "Kan bekijken", - "done": "Klaar", - "emailAddress": "E-mailadres", - "emailPlaceholder": "Voer e-mailadres in", - "enterEmailAddress": "Voer e-mailadres in", - "errorLoading": "Fout bij laden van medewerkers", - "failedToAdd": "Medewerker toevoegen mislukt", - "failedToRemove": "Medewerker verwijderen mislukt", - "invite": "Uitnodigen", - "noCollaborators": "Nog geen medewerkers. Voeg iemand hierboven toe!", - "noCollaboratorsViewer": "Nog geen medewerkers.", - "nowHasAccess": "{name} heeft nu toegang tot deze notitie", - "owner": "Eigenaar", - "pending": "In afwachting", - "pendingInvite": "Uitnodiging in afwachting", - "peopleWithAccess": "Mensen met toegang", - "remove": "Verwijderen", - "removeCollaborator": "Medewerker verwijderen", - "shareNote": "Notitie delen", - "shareWithCollaborators": "Delen met medewerkers", - "unnamedUser": "Naamloze gebruiker", - "viewerDescription": "U heeft toegang tot deze notitie. Alleen de eigenaar kan medewerkers beheren.", - "willBeAdded": "{email} wordt toegevoegd als medewerker wanneer de notitie wordt aangemaakt" - }, - "colors": { - "blue": "Blauw", - "default": "Standaard", - "gray": "Grijs", - "green": "Groen", - "orange": "Oranje", - "pink": "Roze", - "purple": "Paars", - "red": "Rood", - "yellow": "Geel" - }, - "common": { - "add": "Toevoegen", - "cancel": "Annuleren", - "close": "Sluiten", - "confirm": "Bevestigen", - "delete": "Verwijderen", - "edit": "Bewerken", - "error": "Fout", - "loading": "Laden...", - "noResults": "Geen resultaten", - "notAvailable": "Niet beschikbaar", - "optional": "Optioneel", - "remove": "Verwijderen", - "required": "Vereist", - "save": "Opslaan", - "search": "Zoeken", - "success": "Succes", - "unknown": "Onbekend" - }, - "connection": { - "clickToView": "Klik om notitie te bekijken", - "helpful": "Nuttig", - "isHelpful": "Is deze verbinding nuttig?", - "memoryEchoDiscovery": "Memory Echo Ontdekking", - "notHelpful": "Niet nuttig", - "similarityInfo": "Deze notities zijn verbonden door {similarity}% overeenkomst" - }, - "dataManagement": { - "cleanup": { - "button": "Opruimen", - "description": "Verwijder labels en verbindingen die verwijzen naar verwijderde notities.", - "failed": "Fout bij opruimen", - "title": "Weesgegevens opruimen" - }, - "cleanupComplete": "Opruimen voltooid", - "cleanupError": "Fout bij opruimen", - "dangerZone": "Gevaarlijke zone", - "dangerZoneDescription": "Deze acties zijn onomkeerbaar", - "delete": { - "button": "Alle notities verwijderen", - "confirm": "Weet u het zeker? Dit zal al uw notities permanent verwijderen.", - "description": "Verwijder al uw notities permanent. Deze actie kan niet ongedaan worden gemaakt.", - "failed": "Notities verwijderen mislukt", - "success": "Alle notities verwijderd", - "title": "Alle notities verwijderen" - }, - "deleting": "Verwijderen...", - "export": { - "button": "Notities exporteren", - "description": "Download al uw notities als een JSON-bestand. Dit omvat alle inhoud, labels en metadata.", - "failed": "Notities exporteren mislukt", - "success": "Notities succesvol geëxporteerd", - "title": "Alle notities exporteren" - }, - "exporting": "Exporteren...", - "import": { - "button": "Notities importeren", - "description": "Upload een JSON-bestand om notities te importeren. Dit wordt toegevoegd aan uw bestaande notities, niet vervangen.", - "failed": "Notities importeren mislukt", - "success": "{count} notities geïmporteerd", - "title": "Notities importeren" - }, - "importing": "Importeren...", - "indexing": { - "button": "Index herbouwen", - "description": "Genereer embeddings opnieuw voor alle notities om semantisch zoeken te verbeteren.", - "failed": "Fout bij indexeren", - "success": "Indexering voltooid: {count} notities verwerkt", - "title": "Zoekindex herbouwen" - }, - "indexingComplete": "Indexering voltooid", - "indexingError": "Fout bij indexering", - "title": "Gegevensbeheer", - "toolsDescription": "Hulpmiddelen om de gezondheid van uw database te behouden" - }, - "demoMode": { - "activated": "Demomodus geactiveerd! Memory Echo werkt nu direct.", - "createNotesTip": "Maak 2+ vergelijkbare notities en zie Memory Echo in actie!", - "deactivated": "Demomodus uitgeschakeld. Normale parameters hersteld.", - "delayBetweenNotes": "0-dagen vertraging tussen notities (normaal 7 dagen)", - "description": "Versnelt Memory Echo voor testen. Verbindingen verschijnen direct.", - "parametersActive": "Demoparameters actief:", - "similarityThreshold": "50% overeenkomst drempel (normaal 75%)", - "title": "Demomodus", - "toggleFailed": "Schakelen van demomodus mislukt", - "unlimitedInsights": "Onbeperkte inzichten (geen frequentielimieten)" - }, - "diagnostics": { - "apiStatus": "API-status", - "checking": "Controleren...", - "configuredProvider": "Geconfigureerde provider", - "description": "Controleer de verbindingsstatus van uw AI-provider", - "errorStatus": "Fout", - "operational": "Operationeel", - "testDetails": "Testdetails:", - "tip1": "Zorg ervoor dat Ollama draait (ollama serve)", - "tip2": "Controleer dat het model is geïnstalleerd (ollama pull llama3)", - "tip3": "Verifieer uw API-sleutel voor OpenAI", - "tip4": "Controleer netwerkverbinding", - "title": "Diagnostiek", - "troubleshootingTitle": "Tips voor probleemoplossing:" - }, - "favorites": { - "noFavorites": "Geen favorieten", - "pinToFavorite": "Toevoegen aan favorieten", - "title": "Favorieten", - "toggleSection": "Sectie in-/uitschakelen" - }, - "footer": { - "openSource": "Open Source Kloon", - "privacy": "Privacy", - "terms": "Voorwaarden" - }, - "general": { - "add": "Toevoegen", - "apply": "Toepassen", - "back": "Terug", - "cancel": "Annuleren", - "clean": "Opruimen", - "clear": "Wissen", - "close": "Sluiten", - "confirm": "Bevestigen", - "edit": "Bewerken", - "error": "Er is een fout opgetreden", - "indexAll": "Alles indexeren", - "loading": "Laden...", - "next": "Volgende", - "operationFailed": "Operatie mislukt", - "operationSuccess": "Operatie geslaagd", - "preview": "Voorbeeld", - "previous": "Vorige", - "reset": "Resetten", - "save": "Opslaan", - "select": "Selecteren", - "submit": "Indienen", - "testConnection": "Verbinding testen", - "tryAgain": "Probeer het opnieuw" - }, - "generalSettings": { - "description": "Algemene applicatie-instellingen", - "title": "Algemene instellingen" - }, - "labels": { - "addLabel": "Label toevoegen", - "allLabels": "Alle labels", - "changeColor": "Kleur wijzigen", - "changeColorTooltip": "Kleur wijzigen", - "clearAll": "Alles wissen", - "confirmDelete": "Weet u zeker dat u dit label wilt verwijderen?", - "count": "{count} labels", - "noLabels": "Geen labels", - "confirmDeleteShort": "Bevestigen?", - "labelRemoved": "Label \"{label}\" verwijderd" + "paragraphRefactor": { + "title": "Tekstverbetering", + "shorten": "Inkorten", + "expand": "Uitbreiden", + "improve": "Verbeteren", + "formal": "Formeel", + "casual": "Informeel" }, "memoryEcho": { + "title": "Ik heb iets opgemerkt...", + "description": "Proactieve verbindingen tussen uw notities", + "dailyInsight": "Dagelijks inzicht uit uw notities", + "insightReady": "Uw inzicht is klaar!", + "viewConnection": "Verbinding bekijken", + "helpful": "Nuttig", + "notHelpful": "Niet nuttig", + "dismiss": "Voorlopig negeren", + "thanksFeedback": "Bedankt voor uw feedback!", + "thanksFeedbackImproving": "Bedankt! We zullen dit gebruiken om te verbeteren.", + "connections": "Verbindingen", + "connection": "verbinding", + "connectionsBadge": "{count} verbinding{plural}", + "match": "{percentage}% overeenkomst", + "fused": "Samengevoegd", "clickToView": "Klik om te bekijken", + "overlay": { + "title": "Verbonden notities", + "searchPlaceholder": "Verbindingen zoeken...", + "sortBy": "Sorteren op:", + "sortSimilarity": "Overeenkomst", + "sortRecent": "Recent", + "sortOldest": "Oudste", + "viewAll": "Alles naast elkaar bekijken", + "loading": "Laden...", + "noConnections": "Geen verbindingen gevonden", + "error": "Fout" + }, "comparison": { "title": "💡 Notitie vergelijking", "similarityInfo": "Deze notities zijn verbonden door {similarity}% overeenkomst", @@ -760,12 +490,6 @@ "helpful": "Nuttig", "notHelpful": "Niet nuttig" }, - "connection": "verbinding", - "connections": "Verbindingen", - "connectionsBadge": "{count} verbinding{plural}", - "dailyInsight": "Dagelijks inzicht uit uw notities", - "description": "Proactieve verbindingen tussen uw notities", - "dismiss": "Voorlopig negeren", "editorSection": { "title": "⚡ Verbinde notities ({count})", "loading": "Laden...", @@ -776,7 +500,6 @@ "mergeAll": "Alles samenvoegen", "close": "Sluiten" }, - "fused": "Samengevoegd", "fusion": { "title": "🔗 Intelligente fusie", "mergeNotes": "Voeg {count} notitie(s) samen", @@ -801,468 +524,679 @@ "generateError": "Kan fusie niet genereren", "noContentReturned": "Geen fusie-inhoud ontvangen van API", "unknownDate": "Onbekende datum" - }, - "helpful": "Nuttig", - "insightReady": "Uw inzicht is klaar!", - "notHelpful": "Niet nuttig", - "overlay": { - "error": "Fout", - "loading": "Laden...", - "noConnections": "Geen verbindingen gevonden", - "searchPlaceholder": "Verbindingen zoeken...", - "sortBy": "Sorteren op:", - "sortOldest": "Oudste", - "sortRecent": "Recent", - "sortSimilarity": "Overeenkomst", - "title": "Verbonden notities", - "viewAll": "Alles naast elkaar bekijken" - }, - "thanksFeedback": "Bedankt voor uw feedback!", - "thanksFeedbackImproving": "Bedankt! We zullen dit gebruiken om te verbeteren.", - "title": "Ik heb iets opgemerkt...", - "viewConnection": "Verbinding bekijken", - "match": "{percentage}% overeenkomst" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "heeft \"{title}\" gedeeld", + "untitled": "Naamloos", + "notifications": "Meldingen", + "declined": "Delen geweigerd", + "removed": "Notitie verwijderd uit lijst" }, "nav": { - "accountSettings": "Accountinstellingen", - "adminDashboard": "Beheerdashboard", - "aiSettings": "AI-instellingen", - "archive": "Archief", - "buyMeACoffee": "Trakteer me op een koffie", - "configureAI": "Configureer uw AI-aangedreven functies, provider en voorkeuren", - "diagnostics": "Diagnostiek", - "donateOnKofi": "Doneren op Ko-fi", - "donationDescription": "Doneer eenmalig of word maandelijkse supporter.", - "donationNote": "Geen platformkosten • Directe uitbetalingen • Veilig", - "favorites": "Favorieten", - "generalNotes": "Algemene notities", "home": "Home", - "login": "Inloggen", - "logout": "Uitloggen", - "manageAISettings": "AI-instellingen beheren", - "myLibrary": "Mijn bibliotheek", - "notebooks": "Notitieboeken", "notes": "Notities", - "proPlan": "Pro Plan", - "profile": "Profiel", - "quickAccess": "Snelle toegang", - "recent": "Recent", - "reminders": "Herinneringen", + "notebooks": "Notitieboeken", + "generalNotes": "Algemene notities", + "archive": "Archief", "settings": "Instellingen", - "sponsorDescription": "Word maandelijkse sponsor en krijg erkenning.", - "sponsorOnGithub": "Sponsoren op GitHub", - "support": "Memento ondersteunen ☕", - "supportDescription": "Memento is 100% gratis en open-source. Uw ondersteuning helpt dit zo te houden.", - "supportDevelopment": "Memento-ontwikkeling ondersteunen ☕", + "profile": "Profiel", + "aiSettings": "AI-instellingen", + "logout": "Uitloggen", + "login": "Inloggen", + "adminDashboard": "Beheerdashboard", + "diagnostics": "Diagnostiek", "trash": "Prullenbak", + "support": "Memento ondersteunen ☕", + "reminders": "Herinneringen", "userManagement": "Gebruikersbeheer", + "accountSettings": "Accountinstellingen", + "manageAISettings": "AI-instellingen beheren", + "configureAI": "Configureer uw AI-aangedreven functies, provider en voorkeuren", + "supportDevelopment": "Memento-ontwikkeling ondersteunen ☕", + "supportDescription": "Memento is 100% gratis en open-source. Uw ondersteuning helpt dit zo te houden.", + "buyMeACoffee": "Trakteer me op een koffie", + "donationDescription": "Doneer eenmalig of word maandelijkse supporter.", + "donateOnKofi": "Doneren op Ko-fi", + "donationNote": "Geen platformkosten • Directe uitbetalingen • Veilig", + "sponsorOnGithub": "Sponsoren op GitHub", + "sponsorDescription": "Word maandelijkse sponsor en krijg erkenning.", "workspace": "Werkruimte", + "quickAccess": "Snelle toegang", + "myLibrary": "Mijn bibliotheek", + "favorites": "Favorieten", + "recent": "Recent", + "proPlan": "Pro Plan", "chat": "AI Chat", "lab": "Het Lab", "agents": "Agents" }, - "notebook": { - "cancel": "Annuleren", - "create": "Notitieboek maken", - "createDescription": "Start een nieuwe verzameling om uw notities, ideeën en projecten efficiënt te organiseren.", - "createNew": "Nieuw notitieboek maken", - "creating": "Maken...", - "delete": "Notitieboek verwijderen", - "deleteConfirm": "Verwijderen", - "deleteWarning": "Weet u zeker dat u dit notitieboek wilt verwijderen? Notities worden verplaatst naar Algemene notities.", - "edit": "Notitieboek bewerken", - "editDescription": "Wijzig de naam, het pictogram en de kleur van uw notitieboek.", - "generating": "Samenvatting genereren...", - "labels": "Labels:", - "name": "Naam van notitieboek", - "noLabels": "Geen labels", - "selectColor": "Kleur", - "selectIcon": "Icoon", - "summary": "Samenvatting van notitieboek", - "summaryDescription": "Genereer een AI-ondersteunde samenvatting van alle notities in dit notitieboek.", - "summaryError": "Fout bij genereren samenvatting", - "namePlaceholder": "bijv. Q4 Marketingstrategie", - "myNotebook": "Mijn notitieboek", - "saving": "Opslaan...", - "pdfTitle": "Samenvatting — {name}", - "pdfNotesLabel": "Notities:", - "pdfGeneratedOn": "Gegenereerd op:", - "confidence": "betrouwbaarheid", - "savingReminder": "Herinnering opslaan mislukt", - "removingReminder": "Herinnering verwijderen mislukt" - }, - "notebookSuggestion": { - "description": "Deze notitie lijkt bij dit notitieboek te horen", - "dismiss": "Negeren", - "dismissIn": "Negeren (sluit over {timeLeft}s)", - "generalNotes": "Algemene notities", - "move": "Verplaatsen", - "moveToNotebook": "Naar notitieboek verplaatsen", - "title": "Verplaatsen naar {name}?" - }, - "notebooks": { - "allNotebooks": "Alle notitieboeken", - "create": "Notitieboek maken", - "createFirst": "Maak uw eerste notitieboek", - "noNotebooks": "Geen notitieboeken" - }, - "notes": { - "add": "Toevoegen", - "addCollaborators": "Medewerkers toevoegen", - "addImage": "Afbeelding toevoegen", - "addItem": "Item toevoegen", - "addLink": "Link toevoegen", - "addListItem": "+ Lijstitem", - "addNote": "Notitie toevoegen", - "adding": "Toevoegen...", - "aiAssistant": "AI-assistent", - "archive": "Archiveren", - "backgroundOptions": "Achtergrondopties", - "changeColor": "Kleur wijzigen", - "changeSize": "Grootte wijzigen", - "clarifyFailed": "Verduidelijken mislukt", - "close": "Sluiten", - "color": "Kleur", - "confirmDelete": "Weet u zeker dat u deze notitie wilt verwijderen?", - "confirmLeaveShare": "Weet u zeker dat u deze gedeelde notitie wilt verlaten?", - "contentOrMediaRequired": "Voer inhoud in of voeg een link/afbeelding toe", - "copy": "Kopiëren", - "copyFailed": "Notitie kopiëren mislukt", - "copySuccess": "Notitie succesvol gekopieerd!", - "createFirstNote": "Maak uw eerste notitie", - "date": "Datum", - "delete": "Verwijderen", - "dragToReorder": "Sleep om te herschikken", - "duplicate": "Dupliceren", - "edit": "Notitie bewerken", - "emptyState": "Geen notities hier", - "fileTooLarge": "Bestand te groot: {fileName}. Maximale grootte is {maxSize}.", - "improveFailed": "Verbeteren mislukt", - "inNotebook": "In notitieboek", - "invalidDateTime": "Ongeldige datum of tijd", - "invalidFileType": "Ongeldig bestandstype: {fileName}. Alleen JPEG, PNG, GIF en WebP zijn toegestaan.", - "itemOrMediaRequired": "Voeg ten minste één item of media toe", - "large": "Groot", - "leaveShare": "Verlaten", - "linkAddFailed": "Link toevoegen mislukt", - "linkAdded": "Link toegevoegd", - "linkMetadataFailed": "Kon linkmetadata niet ophalen", - "listItem": "Lijstitem", - "makeCopy": "Kopie maken", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown UIT", - "markdownOn": "Markdown AAN", - "markdownPlaceholder": "Maak een notitie... (Markdown ondersteund)", - "medium": "Middel", - "more": "Meer", - "moreOptions": "Meer opties", - "moveFailed": "Verplaatsen mislukt", - "newChecklist": "Nieuwe checklist", - "newNote": "Nieuwe notitie", - "noContent": "Geen inhoud", - "noNotes": "Geen notities", - "noNotesFound": "Geen notities gevonden", - "noteCreateFailed": "Notitie aanmaken mislukt", - "noteCreated": "Notitie succesvol aangemaakt", - "others": "Overig", - "pin": "Vastzetten", - "pinned": "Vastgezet", - "pinnedNotes": "Vastgezette notities", - "placeholder": "Maak een notitie...", - "preview": "Voorbeeld", - "readOnly": "Alleen-lezen", - "recent": "Recent", - "redo": "Opnieuw uitvoeren", - "redoShortcut": "Opnieuw (Ctrl+Y)", - "remindMe": "Herinner mij", - "reminderDateTimeRequired": "Voer datum en tijd in", - "reminderMustBeFuture": "Herinnering moet in de toekomst liggen", - "reminderPastError": "Herinnering moet in de toekomst liggen", - "reminderRemoved": "Herinnering verwijderd", - "reminderSet": "Herinnering ingesteld op {datetime}", - "remove": "Verwijderen", - "saving": "Opslaan...", - "setReminder": "Herinnering instellen", - "setReminderButton": "Herinnering instellen", - "share": "Delen", - "shareWithCollaborators": "Delen met medewerkers", - "sharedBy": "Gedeeld door", - "sharedReadOnly": "Deze notitie is met u gedeeld in alleen-lezen modus", - "shortenFailed": "Inkorten mislukt", - "showCollaborators": "Medewerkers weergeven", - "size": "Grootte", - "small": "Klein", - "takeNote": "Maak een notitie...", - "takeNoteMarkdown": "Maak een notitie... (Markdown ondersteund)", - "time": "Tijd", - "title": "Notities", - "titlePlaceholder": "Titel", - "transformFailed": "Transformeren mislukt", - "unarchive": "Dearchiveren", - "undo": "Ongedaan maken", - "undoShortcut": "Ongedaan maken (Ctrl+Z)", - "unpin": "Losmaken", - "unpinned": "Losgemaakt", - "untitled": "Naamloos", - "uploadFailed": "Uploaden van {filename} mislukt", - "view": "Notitie bekijken", - "emptyStateTabs": "Nog geen notities hier. Gebruik \"Nieuwe notitie\" in de zijbalk om er een toe te voegen (AI-titelsuggesties verschijnen in de composer).", - "viewCards": "Kaartenweergave", - "viewCardsTooltip": "Kaartenraster met slepen-en-neerzetten herschikken", - "viewTabs": "Lijstweergave", - "viewTabsTooltip": "Tabbladen bovenaan, notitie eronder — sleep tabbladen om te herschikken", - "viewModeGroup": "Weergavemodus notities", - "reorderTabs": "Tabblad herschikken", - "modified": "Gewijzigd", - "created": "Aangemaakt", - "loading": "Laden...", - "exportPDF": "PDF exporteren", - "savedStatus": "Opgeslagen", - "dirtyStatus": "Gewijzigd", - "completedLabel": "Voltooid", - "notes.emptyNotebook": "Leeg notitieboek", - "notes.emptyNotebookDesc": "Dit notitieboek heeft geen notities. Klik op + om er een te maken.", - "notes.noNoteSelected": "Geen notitie geselecteerd", - "notes.selectOrCreateNote": "Selecteer een notitie uit de lijst of maak een nieuwe.", - "commitVersion": "Versie opslaan", - "versionSaved": "Versie opgeslagen", - "deleteVersion": "Deze versie verwijderen", - "versionDeleted": "Versie verwijderd", - "deleteVersionConfirm": "Deze versie definitief verwijderen?", - "historyMode": "Geschiedenismodus", - "historyModeManual": "Handmatig (commit-knop)", - "historyModeAuto": "Automatisch (slim)", - "historyModeManualDesc": "Handmatig snapshots maken met de commit-knop", - "historyModeAutoDesc": "Automatische snapshots met slimme detectie", - "history": "Geschiedenis", - "historyRestored": "Versie hersteld", - "historyEnabled": "Geschiedenis ingeschakeld", - "historyDisabledDesc": "Geschiedenis is uitgeschakeld voor uw account.", - "enableHistory": "Geschiedenis inschakelen", - "historyEmpty": "Geen versies beschikbaar", - "historySelectVersion": "Selecteer een versie om de inhoud te bekijken", - "sortBy": "Sorteren op", - "sortDateDesc": "Datum (nieuwste)", - "sortDateAsc": "Datum (oudste)", - "sortTitleAsc": "Titel A → Z", - "sortTitleDesc": "Titel Z → A" - }, - "pagination": { - "next": "→", - "pageInfo": "Pagina {currentPage} / {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "Informeel", - "expand": "Uitbreiden", - "formal": "Formeel", - "improve": "Verbeteren", - "shorten": "Inkorten", - "title": "Tekstverbetering" - }, - "profile": { - "accountSettings": "Accountinstellingen", - "autoDetect": "Automatisch detecteren", - "changePassword": "Wachtwoord wijzigen", - "changePasswordDescription": "Werk uw wachtwoord bij. U heeft uw huidige wachtwoord nodig.", - "confirmPassword": "Wachtwoord bevestigen", - "currentPassword": "Huidige wachtwoord", - "description": "Werk uw persoonlijke informatie bij", - "displayName": "Weergavenaam", - "displaySettings": "Weergave-instellingen", - "displaySettingsDescription": "Pas de weergave en lettergrootte aan.", - "email": "E-mail", - "fontSize": "Lettergrootte", - "fontSizeDescription": "Pas de lettergrootte aan voor betere leesbaarheid. Dit is van toepassing op alle tekst in de interface.", - "fontSizeExtraLarge": "Extra groot", - "fontSizeLarge": "Groot", - "fontSizeMedium": "Middel", - "fontSizeSmall": "Klein", - "fontSizeUpdateFailed": "Lettergrootte bijwerken mislukt", - "fontSizeUpdateSuccess": "Lettergrootte succesvol bijgewerkt", - "languageDescription": "Deze taal wordt gebruikt voor AI-functies, inhoudsanalyse en interfacetekst.", - "languagePreferences": "Taalvoorkeuren", - "languagePreferencesDescription": "Kies uw voorkeurstaal voor AI-functies en interface.", - "languageUpdateFailed": "Taal bijwerken mislukt", - "languageUpdateSuccess": "Taal succesvol bijgewerkt", - "manageAISettings": "AI-instellingen beheren", - "newPassword": "Nieuw wachtwoord", - "passwordChangeFailed": "Wachtwoord wijzigen mislukt", - "passwordChangeSuccess": "Wachtwoord succesvol gewijzigd", - "passwordError": "Fout bij bijwerken wachtwoord", - "passwordUpdated": "Wachtwoord bijgewerkt", - "preferredLanguage": "Voorkeurstaal", - "profileError": "Fout bij bijwerken profiel", - "profileUpdated": "Profiel bijgewerkt", - "recentNotesUpdateFailed": "Recente notities-instelling bijwerken mislukt", - "recentNotesUpdateSuccess": "Recente notities-instelling succesvol bijgewerkt", - "selectFontSize": "Lettergrootte selecteren", - "selectLanguage": "Selecteer een taal", - "showRecentNotes": "Sectie recente notities weergeven", - "showRecentNotesDescription": "Toon recente notities (laatste 7 dagen) op de hoofdpagina", - "title": "Profiel", - "updateFailed": "Profiel bijwerken mislukt", - "updatePassword": "Wachtwoord bijwerken", - "updateSuccess": "Profiel bijgewerkt" - }, - "reminder": { - "cancel": "Annuleren", - "reminderDate": "Herinneringsdatum", - "reminderTime": "Herinneringstijd", - "removeReminder": "Herinnering verwijderen", - "save": "Herinnering instellen", - "setReminder": "Herinnering instellen", - "title": "Herinnering" - }, - "resetPassword": { - "confirmNewPassword": "Bevestig nieuw wachtwoord", - "description": "Voer hieronder uw nieuwe wachtwoord in.", - "invalidLinkDescription": "Deze wachtwoordresetlink is ongeldig of verlopen.", - "invalidLinkTitle": "Ongeldige link", - "loading": "Laden...", - "newPassword": "Nieuw wachtwoord", - "passwordMismatch": "Wachtwoorden komen niet overeen", - "requestNewLink": "Nieuwe link aanvragen", - "resetPassword": "Wachtwoord opnieuw instellen", - "resetting": "Opnieuw instellen...", - "success": "Wachtwoord succesvol opnieuw ingesteld. U kunt nu inloggen.", - "title": "Wachtwoord opnieuw instellen" - }, - "search": { - "exactMatch": "Exacte overeenkomst", - "noResults": "Geen resultaten gevonden", - "placeholder": "Zoeken", - "related": "Gerelateerd", - "resultsFound": "{count} notities gevonden", - "searchPlaceholder": "Doorzoek uw notities...", - "searching": "Zoeken...", - "semanticInProgress": "AI-zoeken bezig...", - "semanticTooltip": "AI semantisch zoeken", - "disabledAdmin": "Zoeken uitgeschakeld in adminmodus" - }, - "semanticSearch": { - "exactMatch": "Exacte overeenkomst", - "related": "Gerelateerd", - "searching": "Zoeken..." - }, "settings": { - "about": "Over", + "title": "Instellingen", + "description": "Beheer uw instellingen en voorkeuren", "account": "Account", "appearance": "Weergave", - "cleanTags": "Wees-tags opruimen", - "cleanTagsDescription": "Verwijder tags die door geen enkele notitie meer worden gebruikt", - "description": "Beheer uw instellingen en voorkeuren", + "theme": "Thema", + "themeLight": "Licht", + "themeDark": "Donker", + "themeSystem": "Systeem", + "notifications": "Meldingen", "language": "Taal", - "languageAuto": "Automatisch", + "selectLanguage": "Taal selecteren", + "security": "Beveiliging", + "about": "Over", + "version": "Versie", + "settingsSaved": "Instellingen opgeslagen", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "Fout bij opslaan instellingen", "maintenance": "Onderhoud", "maintenanceDescription": "Hulpmiddelen om de gezondheid van uw database te behouden", - "notifications": "Meldingen", - "privacy": "Privacy", - "profile": "Profiel", - "searchNoResults": "Geen resultaten gevonden", - "security": "Beveiliging", - "selectLanguage": "Taal selecteren", - "semanticIndexing": "Semantische indexering", - "semanticIndexingDescription": "Genereer vectoren voor alle notities om intentiegericht zoeken mogelijk te maken", - "settingsError": "Fout bij opslaan instellingen", - "settingsSaved": "Instellingen opgeslagen", - "theme": "Thema", - "themeDark": "Donker", - "themeLight": "Licht", - "themeSystem": "Systeem", - "title": "Instellingen", - "version": "Versie", + "cleanTags": "Wees-tags opruimen", + "cleanTagsDescription": "Verwijder tags die door geen enkele notitie meer worden gebruikt", "cleanupDone": "{created} labelrecord(s) gesynchroniseerd, {deleted} weeslabel(s) verwijderd", "cleanupNothing": "Niets te doen — labels komen al overeen met uw notities", "cleanupWithErrors": "sommige bewerkingen mislukt", "cleanupError": "Kan labels niet opruimen", "indexingComplete": "Indexering voltooid: {count} notitie(s) verwerkt", "indexingError": "Fout bij indexeren", + "semanticIndexing": "Semantische indexering", + "semanticIndexingDescription": "Genereer vectoren voor alle notities om intentiegericht zoeken mogelijk te maken", + "profile": "Profiel", + "searchNoResults": "Geen resultaten gevonden", + "languageAuto": "Automatisch", "emailNotifications": "E-mailmeldingen", "emailNotificationsDesc": "Ontvang belangrijke meldingen per e-mail", "desktopNotifications": "Bureaubladmeldingen", "desktopNotificationsDesc": "Ontvang meldingen in uw browser", "notificationsDesc": "Beheer uw meldingsvoorkeuren" }, - "sidebar": { - "archive": "Archief", - "editLabels": "Labels bewerken", - "labels": "Labels", - "notes": "Notities", - "reminders": "Herinneringen", - "trash": "Prullenbak", - "newNoteTabs": "Nieuwe notitie", - "newNoteTabsHint": "Notitie maken in dit notitieboek", - "noLabelsInNotebook": "Nog geen labels in dit notitieboek" + "profile": { + "title": "Profiel", + "description": "Werk uw persoonlijke informatie bij", + "displayName": "Weergavenaam", + "email": "E-mail", + "changePassword": "Wachtwoord wijzigen", + "changePasswordDescription": "Werk uw wachtwoord bij. U heeft uw huidige wachtwoord nodig.", + "currentPassword": "Huidige wachtwoord", + "newPassword": "Nieuw wachtwoord", + "confirmPassword": "Wachtwoord bevestigen", + "updatePassword": "Wachtwoord bijwerken", + "passwordChangeSuccess": "Wachtwoord succesvol gewijzigd", + "passwordChangeFailed": "Wachtwoord wijzigen mislukt", + "passwordUpdated": "Wachtwoord bijgewerkt", + "passwordError": "Fout bij bijwerken wachtwoord", + "languagePreferences": "Taalvoorkeuren", + "languagePreferencesDescription": "Kies uw voorkeurstaal voor AI-functies en interface.", + "preferredLanguage": "Voorkeurstaal", + "selectLanguage": "Selecteer een taal", + "languageDescription": "Deze taal wordt gebruikt voor AI-functies, inhoudsanalyse en interfacetekst.", + "autoDetect": "Automatisch detecteren", + "updateSuccess": "Profiel bijgewerkt", + "updateFailed": "Profiel bijwerken mislukt", + "languageUpdateSuccess": "Taal succesvol bijgewerkt", + "languageUpdateFailed": "Taal bijwerken mislukt", + "profileUpdated": "Profiel bijgewerkt", + "profileError": "Fout bij bijwerken profiel", + "accountSettings": "Accountinstellingen", + "manageAISettings": "AI-instellingen beheren", + "displaySettings": "Weergave-instellingen", + "displaySettingsDescription": "Pas de weergave en lettergrootte aan.", + "fontSize": "Lettergrootte", + "selectFontSize": "Lettergrootte selecteren", + "fontSizeSmall": "Klein", + "fontSizeMedium": "Middel", + "fontSizeLarge": "Groot", + "fontSizeExtraLarge": "Extra groot", + "fontSizeDescription": "Pas de lettergrootte aan voor betere leesbaarheid. Dit is van toepassing op alle tekst in de interface.", + "fontSizeUpdateSuccess": "Lettergrootte succesvol bijgewerkt", + "fontSizeUpdateFailed": "Lettergrootte bijwerken mislukt", + "showRecentNotes": "Sectie recente notities weergeven", + "showRecentNotesDescription": "Toon recente notities (laatste 7 dagen) op de hoofdpagina", + "recentNotesUpdateSuccess": "Recente notities-instelling succesvol bijgewerkt", + "recentNotesUpdateFailed": "Recente notities-instelling bijwerken mislukt" + }, + "aiSettings": { + "title": "AI-instellingen", + "description": "Configureer uw AI-aangedreven functies en voorkeuren", + "features": "AI-functies", + "provider": "AI-provider", + "providerAuto": "Auto (Aanbevolen)", + "providerOllama": "Ollama (Lokaal)", + "providerOpenAI": "OpenAI (Cloud)", + "frequency": "Frequentie", + "frequencyDaily": "Dagelijks", + "frequencyWeekly": "Wekelijks", + "saving": "Opslaan...", + "saved": "Instelling bijgewerkt", + "error": "Instelling bijwerken mislukt", + "titleSuggestionsDesc": "Titels suggereren voor notities zonder titel na 50+ woorden", + "paragraphRefactorDesc": "AI-ondersteunde tekstverbeteringsopties", + "frequencyDesc": "Hoe vaak notitieverbindingen analyseren", + "providerDesc": "Kies uw voorkeurs AI-provider", + "providerAutoDesc": "Ollama indien beschikbaar, OpenAI als terugval", + "providerOllamaDesc": "100% privé, draait lokaal op uw machine", + "providerOpenAIDesc": "Meest nauwkeurig, vereist API-sleutel" + }, + "general": { + "loading": "Laden...", + "save": "Opslaan", + "cancel": "Annuleren", + "add": "Toevoegen", + "edit": "Bewerken", + "confirm": "Bevestigen", + "close": "Sluiten", + "back": "Terug", + "next": "Volgende", + "previous": "Vorige", + "submit": "Indienen", + "reset": "Resetten", + "apply": "Toepassen", + "clear": "Wissen", + "select": "Selecteren", + "tryAgain": "Probeer het opnieuw", + "error": "Er is een fout opgetreden", + "operationSuccess": "Operatie geslaagd", + "operationFailed": "Operatie mislukt", + "testConnection": "Verbinding testen", + "clean": "Opruimen", + "indexAll": "Alles indexeren", + "preview": "Voorbeeld" + }, + "colors": { + "default": "Standaard", + "red": "Rood", + "blue": "Blauw", + "green": "Groen", + "yellow": "Geel", + "purple": "Paars", + "pink": "Roze", + "orange": "Oranje", + "gray": "Grijs" + }, + "reminder": { + "title": "Herinnering", + "setReminder": "Herinnering instellen", + "removeReminder": "Herinnering verwijderen", + "reminderDate": "Herinneringsdatum", + "reminderTime": "Herinneringstijd", + "save": "Herinnering instellen", + "cancel": "Annuleren" + }, + "reminders": { + "title": "Herinneringen", + "empty": "Geen herinneringen", + "emptyDescription": "Voeg een herinnering toe aan een notitie om deze hier te vinden.", + "upcoming": "Aankomend", + "overdue": "Achterstallig", + "done": "Voltooid", + "markDone": "Markeren als voltooid", + "markUndone": "Markeren als onvoltooid", + "todayAt": "Vandaag om {time}", + "tomorrowAt": "Morgen om {time}" + }, + "notebook": { + "create": "Notitieboek maken", + "createNew": "Nieuw notitieboek maken", + "createDescription": "Start een nieuwe verzameling om uw notities, ideeën en projecten efficiënt te organiseren.", + "name": "Naam van notitieboek", + "namePlaceholder": "bijv. Q4 Marketingstrategie", + "myNotebook": "Mijn notitieboek", + "saving": "Opslaan...", + "selectIcon": "Icoon", + "selectColor": "Kleur", + "cancel": "Annuleren", + "creating": "Maken...", + "edit": "Notitieboek bewerken", + "editDescription": "Wijzig de naam, het pictogram en de kleur van uw notitieboek.", + "delete": "Notitieboek verwijderen", + "deleteWarning": "Weet u zeker dat u dit notitieboek wilt verwijderen? Notities worden verplaatst naar Algemene notities.", + "deleteConfirm": "Verwijderen", + "summary": "Samenvatting van notitieboek", + "summaryDescription": "Genereer een AI-ondersteunde samenvatting van alle notities in dit notitieboek.", + "generating": "Samenvatting genereren...", + "summaryError": "Fout bij genereren samenvatting", + "labels": "Labels:", + "noLabels": "Geen labels", + "pdfTitle": "Samenvatting — {name}", + "pdfNotesLabel": "Notities:", + "pdfGeneratedOn": "Gegenereerd op:", + "confidence": "betrouwbaarheid", + "savingReminder": "Herinnering opslaan mislukt", + "removingReminder": "Herinnering verwijderen mislukt", + "generatingDescription": "Please wait..." + }, + "notebookSuggestion": { + "title": "Verplaatsen naar {name}?", + "description": "Deze notitie lijkt bij dit notitieboek te horen", + "move": "Verplaatsen", + "dismiss": "Negeren", + "dismissIn": "Negeren (sluit over {timeLeft}s)", + "moveToNotebook": "Naar notitieboek verplaatsen", + "generalNotes": "Algemene notities" + }, + "admin": { + "title": "Beheerdashboard", + "userManagement": "Gebruikersbeheer", + "chat": "AI Chat", + "lab": "Het Lab", + "agents": "Agenten", + "workspace": "Werkruimte", + "settings": "Beheerinstellingen", + "security": { + "title": "Beveiligingsinstellingen", + "description": "Beheer toegangscontrole en registratiebeleid.", + "allowPublicRegistration": "Openbare registratie toestaan", + "allowPublicRegistrationDescription": "Indien uitgeschakeld kunnen nieuwe gebruikers alleen door een beheerder via de gebruikersbeheerpagina worden toegevoegd.", + "updateSuccess": "Beveiligingsinstellingen bijgewerkt", + "updateFailed": "Beveiligingsinstellingen bijwerken mislukt" + }, + "ai": { + "title": "AI-configuratie", + "description": "Configureer AI-providers voor automatische tagging en semantisch zoeken. Gebruik verschillende providers voor optimale prestaties.", + "tagsGenerationProvider": "Tags-generatieprovider", + "tagsGenerationDescription": "AI-provider voor automatische tagsuggesties. Aanbevolen: Ollama (gratis, lokaal).", + "embeddingsProvider": "Embeddings-provider", + "embeddingsDescription": "AI-provider voor semantische zoek-embeddings. Aanbevolen: OpenAI (beste kwaliteit).", + "chatProvider": "Chat Provider", + "chatDescription": "AI-provider voor de chat-assistent. Val terug op Tags-provider indien niet geconfigureerd.", + "provider": "Provider", + "baseUrl": "Base URL", + "model": "Model", + "apiKey": "API Key", + "selectOllamaModel": "Selecteer een op uw systeem geïnstalleerd Ollama-model", + "openAIKeyDescription": "Uw OpenAI API-sleutel van platform.openai.com", + "modelRecommendations": "gpt-4o-mini = Beste prijs-kwaliteit • gpt-4o = Beste kwaliteit", + "commonModelsDescription": "Veelvoorkomende modellen voor OpenAI-compatibele API's", + "selectEmbeddingModel": "Selecteer een op uw systeem geïnstalleerd embedding-model", + "commonEmbeddingModels": "Veelvoorkomende embedding-modellen voor OpenAI-compatibele API's", + "saving": "Opslaan...", + "saveSettings": "AI-instellingen opslaan", + "openTestPanel": "AI-testpaneel openen", + "updateSuccess": "AI-instellingen succesvol bijgewerkt", + "updateFailed": "AI-instellingen bijwerken mislukt", + "providerTagsRequired": "AI_PROVIDER_TAGS is vereist", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING is vereist", + "providerOllamaOption": "🦙 Ollama (Local & Free)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 Custom OpenAI-Compatible", + "bestValue": "Beste prijs-kwaliteit", + "bestQuality": "Beste kwaliteit", + "saved": "(Opgeslagen)", + "fetchModelsFailed": "Modellen ophalen mislukt", + "refreshModels": "Modellen vernieuwen", + "configured": "Geconfigureerd", + "fetchingModels": "Modellen ophalen...", + "clickToLoadModels": "Klik op ↺ om modellen te laden", + "searchModel": "Model zoeken...", + "noModels": "Geen modellen. Klik op ↺", + "modelsAvailable": "{count} model(len) beschikbaar", + "enterUrlToLoad": "Voer URL in en klik op ↺", + "currentProvider": "(Huidig: {provider})", + "pageTitle": "AI-beheer", + "pageDescription": "AI-functies bewaken en configureren", + "configure": "Configureren", + "features": "AI-functies", + "providerStatus": "AI-provider status", + "recentRequests": "Recente AI-verzoeken", + "comingSoon": "Binnenkort beschikbaar", + "activeFeatures": "Actieve functies", + "successRate": "Succesrate", + "avgResponseTime": "Gemiddelde responstijd", + "configuredProviders": "Geconfigureerde providers", + "settingUpdated": "Instelling bijgewerkt", + "updateFailedShort": "Bijwerken mislukt", + "titleSuggestions": "Titelsuggesties", + "titleSuggestionsDesc": "Stelt titels voor voor noten na 50+ woorden", + "aiAssistant": "AI-assistent", + "aiAssistantDesc": "AI-chat en tekstverbeteringstools inschakelen", + "memoryEchoFeature": "Ik merkte iets op...", + "memoryEchoFeatureDesc": "Dagelijkse analyse van verbindingen tussen notities", + "languageDetection": "Taaldetectie", + "languageDetectionDesc": "Detecteert automatisch de taal van elke notitie", + "autoLabeling": "Automatisch labelen", + "autoLabelingDesc": "Stelt labels voor en past ze automatisch toe" + }, + "resend": { + "title": "Resend (Aanbevolen)", + "description": "Stuur e-mails via de Resend API. Heeft voorrang op SMTP indien geconfigureerd.", + "apiKey": "Resend API-sleutel", + "apiKeyHint": "Haal uw API-sleutel op bij resend.com. Wordt gebruikt voor agent-meldingen en wachtwoordresets.", + "saveSettings": "Resend-instellingen opslaan", + "updateSuccess": "Resend-instellingen bijgewerkt", + "updateFailed": "Resend-instellingen bijwerken mislukt", + "configured": "Resend is geconfigureerd en actief" + }, + "email": { + "title": "E-mailconfiguratie", + "description": "Configureer e-mailbezorging voor agent-meldingen en wachtwoordresets.", + "provider": "E-mailprovider", + "saveSettings": "E-mailinstellingen opslaan", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "smtp": { + "title": "SMTP-configuratie", + "description": "Configureer e-mailserver voor wachtwoordresets.", + "host": "Host", + "port": "Poort", + "username": "Gebruikersnaam", + "password": "Wachtwoord", + "fromEmail": "Van e-mail", + "forceSSL": "SSL/TLS forceren (meestal voor poort 465)", + "ignoreCertErrors": "Certificaatfouten negeren (alleen self-hosted/ontwikkeling)", + "saveSettings": "SMTP-instellingen opslaan", + "sending": "Verzenden...", + "testEmail": "Test-e-mail", + "updateSuccess": "SMTP-instellingen bijgewerkt", + "updateFailed": "SMTP-instellingen bijwerken mislukt", + "testSuccess": "Test-e-mail succesvol verzonden!", + "testFailed": "Mislukt: {error}" + }, + "users": { + "createUser": "Gebruiker aanmaken", + "addUser": "Gebruiker toevoegen", + "createUserDescription": "Voeg een nieuwe gebruiker toe aan het systeem.", + "name": "Naam", + "email": "E-mail", + "password": "Wachtwoord", + "role": "Rol", + "createSuccess": "Gebruiker succesvol aangemaakt", + "createFailed": "Gebruiker aanmaken mislukt", + "deleteSuccess": "Gebruiker verwijderd", + "deleteFailed": "Verwijderen mislukt", + "roleUpdateSuccess": "Gebruikersrol bijgewerkt naar {role}", + "roleUpdateFailed": "Rol bijwerken mislukt", + "demote": "Degraderen", + "promote": "Bevorderen", + "confirmDelete": "Weet u zeker dat u deze gebruiker wilt verwijderen?", + "table": { + "name": "Naam", + "email": "E-mail", + "role": "Rol", + "createdAt": "Aangemaakt op", + "actions": "Acties" + }, + "roles": { + "user": "Gebruiker", + "admin": "Beheerder" + }, + "title": "Gebruikers", + "description": "Beheer gebruikers en machtigingen" + }, + "aiTest": { + "title": "AI-provider testen", + "description": "Test uw AI-providers voor taggeneratie en semantische zoek-embeddings", + "tagsTestTitle": "Tags-generatietest", + "tagsTestDescription": "Test de AI-provider die verantwoordelijk is voor automatische tagsuggesties", + "embeddingsTestTitle": "Embeddings-test", + "embeddingsTestDescription": "Test de AI-provider die verantwoordelijk is voor semantische zoek-embeddings", + "howItWorksTitle": "Hoe testen werkt", + "tagsGenerationTest": "🏷️ Tags-generatietest:", + "tagsStep1": "Stuurt een voorbeeldnotitie naar de AI-provider", + "tagsStep2": "Vraagt 3-5 relevante tags op basis van de inhoud", + "tagsStep3": "Toont de gegenereerde tags met betrouwbaarheidsscores", + "tagsStep4": "Meet de responstijd", + "embeddingsTestLabel": "🔍 Embeddings-test:", + "embeddingsStep1": "Stuurt een voorbeeldtekst naar de embedding-provider", + "embeddingsStep2": "Genereert een vectorrepresentatie (lijst met getallen)", + "embeddingsStep3": "Toont embedding-dimensies en voorbeeldwaarden", + "embeddingsStep4": "Verifieert of de vector geldig en correct opgemaakt is", + "tipContent": "U kunt verschillende providers gebruiken voor tags en embeddings! Gebruik bijvoorbeeld Ollama (gratis) voor tags en OpenAI (beste kwaliteit) voor embeddings om kosten en prestaties te optimaliseren.", + "provider": "Provider:", + "model": "Model:", + "testing": "Testen...", + "runTest": "Test uitvoeren", + "testPassed": "Test geslaagd", + "testFailed": "Test mislukt", + "testSuccessToast": "{type}-test geslaagd!", + "testFailedToast": "{type}-test mislukt", + "testingType": "{type} testen...", + "technicalDetails": "Technische details", + "responseTime": "Responstijd: {time}ms", + "generatedTags": "Gegenereerde tags:", + "embeddingDimensions": "Embedding-dimensies:", + "vectorDimensions": "vectordimensies", + "first5Values": "Eerste 5 waarden:", + "error": "Fout:", + "testError": "Testfout: {error}", + "tipTitle": "Tip:", + "tipDescription": "Gebruik het AI-testpaneel om configuratieproblemen te diagnosticeren voordat u test." + }, + "sidebar": { + "dashboard": "Dashboard", + "users": "Gebruikers", + "aiManagement": "AI-beheer", + "chat": "AI Chat", + "lab": "Het Lab (Ideeën)", + "agents": "Agents", + "settings": "Instellingen" + }, + "metrics": { + "vsLastPeriod": "vs vorige periode" + }, + "tools": { + "title": "Agent Tools", + "description": "Configureer externe tools voor agent tool-gebruik: web zoeken, web schrapen en API-toegang.", + "searchProvider": "Web Zoek Provider", + "searxng": "SearXNG (Zelf-gehost)", + "brave": "Brave Search API", + "both": "Beide (SearXNG primair, Brave fallback)", + "searxngUrl": "SearXNG URL", + "braveKey": "Brave Search API-sleutel", + "jinaKey": "Jina Reader API-sleutel", + "jinaKeyOptional": "Optioneel — werkt zonder maar met snelheidslimieten", + "jinaKeyDescription": "Gebruikt voor web schrapen. Werkt zonder sleutel maar met snelheidslimieten.", + "saveSettings": "Tools-instellingen Opslaan", + "updateSuccess": "Tools-instellingen succesvol bijgewerkt", + "updateFailed": "Tools-instellingen bijwerken mislukt", + "testing": "Testen...", + "testSearch": "Zoekfunctie testen" + }, + "settingsDescription": "Toepassingsinstellingen configureren", + "dashboard": { + "title": "Dashboard", + "description": "Overzicht van applicatiestatistieken", + "recentActivity": "Recente activiteit", + "recentActivityPlaceholder": "Recente activiteit wordt hier weergegeven." + }, + "error": { + "title": "Fout in beheerderspaneel", + "description": "Pagina rendering mislukt. Probeer opnieuw.", + "retry": "Opnieuw proberen" + } + }, + "about": { + "title": "Over", + "description": "Informatie over de applicatie", + "appName": "Memento", + "appDescription": "Een krachtige notitie-applicatie met AI-ondersteunde functies", + "version": "Versie", + "buildDate": "Bouwdatum", + "platform": "Platform", + "platformWeb": "Web", + "features": { + "title": "Functies", + "description": "AI-ondersteunde mogelijkheden", + "titleSuggestions": "AI-ondersteunde titelsuggesties", + "semanticSearch": "Semantisch zoeken met embeddings", + "paragraphReformulation": "Alinea herformulering", + "memoryEcho": "Memory Echo dagelijkse inzichten", + "notebookOrganization": "Notitieboek organisatie", + "dragDrop": "Drag & drop notitiebeheer", + "labelSystem": "Labelsysteem", + "multipleProviders": "Meerdere AI-providers (OpenAI, Ollama)" + }, + "technology": { + "title": "Technologiestack", + "description": "Gebouwd met moderne technologieën", + "frontend": "Frontend", + "backend": "Backend", + "database": "Database", + "authentication": "Authenticatie", + "ai": "AI", + "ui": "UI", + "testing": "Testen" + }, + "support": { + "title": "Ondersteuning", + "description": "Hulp en feedback krijgen", + "documentation": "Documentatie", + "reportIssues": "Problemen melden", + "feedback": "Feedback" + } }, "support": { - "aiApiCosts": "AI API kosten:", - "buyMeACoffee": "Trakteer me op een koffie", - "contributeCode": "Draag code bij", - "description": "Memento is 100% gratis en open-source. Uw ondersteuning helpt dit zo te houden.", - "directImpact": "Directe impact", - "domainSSL": "Domein & SSL:", - "donateOnKofi": "Doneren op Ko-fi", - "donationDescription": "Doneer eenmalig of word maandelijkse supporter.", - "githubDescription": "Terugkerende steun • Publieke erkenning • Gericht op ontwikkelaars", - "hostingServers": "Hosting & servers:", - "howSupportHelps": "Hoe uw steun helpt", - "kofiDescription": "Geen platformkosten • Directe uitbetalingen • Veilig", - "otherWaysTitle": "Andere manieren om te steunen", - "reportBug": "Meld een bug", - "shareTwitter": "Delen op Twitter", - "sponsorDescription": "Word maandelijkse sponsor en krijg erkenning.", - "sponsorOnGithub": "Sponsoren op GitHub", - "sponsorPerks": "Sponsorvoordelen", - "starGithub": "Ster op GitHub", "title": "Memento-ontwikkeling ondersteunen", - "totalExpenses": "Totale uitgaven:", + "description": "Memento is 100% gratis en open-source. Uw ondersteuning helpt dit zo te houden.", + "buyMeACoffee": "Trakteer me op een koffie", + "donationDescription": "Doneer eenmalig of word maandelijkse supporter.", + "donateOnKofi": "Doneren op Ko-fi", + "kofiDescription": "Geen platformkosten • Directe uitbetalingen • Veilig", + "sponsorOnGithub": "Sponsoren op GitHub", + "sponsorDescription": "Word maandelijkse sponsor en krijg erkenning.", + "githubDescription": "Terugkerende steun • Publieke erkenning • Gericht op ontwikkelaars", + "howSupportHelps": "Hoe uw steun helpt", + "directImpact": "Directe impact", + "sponsorPerks": "Sponsorvoordelen", "transparency": "Transparantie", - "transparencyDescription": "Ik geloof in volledige transparantie. Hier is hoe donaties worden gebruikt:" + "transparencyDescription": "Ik geloof in volledige transparantie. Hier is hoe donaties worden gebruikt:", + "hostingServers": "Hosting & servers:", + "domainSSL": "Domein & SSL:", + "aiApiCosts": "AI API kosten:", + "totalExpenses": "Totale uitgaven:", + "otherWaysTitle": "Andere manieren om te steunen", + "starGithub": "Ster op GitHub", + "reportBug": "Meld een bug", + "contributeCode": "Draag code bij", + "shareTwitter": "Delen op Twitter" + }, + "demoMode": { + "title": "Demomodus", + "activated": "Demomodus geactiveerd! Memory Echo werkt nu direct.", + "deactivated": "Demomodus uitgeschakeld. Normale parameters hersteld.", + "toggleFailed": "Schakelen van demomodus mislukt", + "description": "Versnelt Memory Echo voor testen. Verbindingen verschijnen direct.", + "parametersActive": "Demoparameters actief:", + "similarityThreshold": "50% overeenkomst drempel (normaal 75%)", + "delayBetweenNotes": "0-dagen vertraging tussen notities (normaal 7 dagen)", + "unlimitedInsights": "Onbeperkte inzichten (geen frequentielimieten)", + "createNotesTip": "Maak 2+ vergelijkbare notities en zie Memory Echo in actie!" + }, + "resetPassword": { + "title": "Wachtwoord opnieuw instellen", + "description": "Voer hieronder uw nieuwe wachtwoord in.", + "invalidLinkTitle": "Ongeldige link", + "invalidLinkDescription": "Deze wachtwoordresetlink is ongeldig of verlopen.", + "requestNewLink": "Nieuwe link aanvragen", + "newPassword": "Nieuw wachtwoord", + "confirmNewPassword": "Bevestig nieuw wachtwoord", + "resetting": "Opnieuw instellen...", + "resetPassword": "Wachtwoord opnieuw instellen", + "passwordMismatch": "Wachtwoorden komen niet overeen", + "success": "Wachtwoord succesvol opnieuw ingesteld. U kunt nu inloggen.", + "loading": "Laden..." + }, + "dataManagement": { + "title": "Gegevensbeheer", + "toolsDescription": "Hulpmiddelen om de gezondheid van uw database te behouden", + "exporting": "Exporteren...", + "importing": "Importeren...", + "deleting": "Verwijderen...", + "dangerZone": "Gevaarlijke zone", + "dangerZoneDescription": "Deze acties zijn onomkeerbaar", + "indexingComplete": "Indexering voltooid", + "indexingError": "Fout bij indexering", + "cleanupComplete": "Opruimen voltooid", + "cleanupError": "Fout bij opruimen", + "export": { + "title": "Alle notities exporteren", + "description": "Download al uw notities als een JSON-bestand. Dit omvat alle inhoud, labels en metadata.", + "button": "Notities exporteren", + "success": "Notities succesvol geëxporteerd", + "failed": "Notities exporteren mislukt" + }, + "import": { + "title": "Notities importeren", + "description": "Upload een JSON-bestand om notities te importeren. Dit wordt toegevoegd aan uw bestaande notities, niet vervangen.", + "button": "Notities importeren", + "success": "{count} notities geïmporteerd", + "failed": "Notities importeren mislukt" + }, + "delete": { + "title": "Alle notities verwijderen", + "description": "Verwijder al uw notities permanent. Deze actie kan niet ongedaan worden gemaakt.", + "button": "Alle notities verwijderen", + "confirm": "Weet u het zeker? Dit zal al uw notities permanent verwijderen.", + "success": "Alle notities verwijderd", + "failed": "Notities verwijderen mislukt" + }, + "indexing": { + "title": "Zoekindex herbouwen", + "description": "Genereer embeddings opnieuw voor alle notities om semantisch zoeken te verbeteren.", + "button": "Index herbouwen", + "success": "Indexering voltooid: {count} notities verwerkt", + "failed": "Fout bij indexeren" + }, + "cleanup": { + "title": "Weesgegevens opruimen", + "description": "Verwijder labels en verbindingen die verwijzen naar verwijderde notities.", + "button": "Opruimen", + "failed": "Fout bij opruimen" + } + }, + "appearance": { + "title": "Weergave", + "description": "Pas aan hoe de app eruit ziet", + "notesViewDescription": "Kies hoe notities worden weergegeven op de startpagina en in notitieboeken.", + "notesViewLabel": "Notities weergave", + "notesViewTabs": "Tabbladen (OneNote-stijl)", + "notesViewMasonry": "Kaarten (raster)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "Algemene instellingen", + "description": "Algemene applicatie-instellingen" + }, + "toast": { + "saved": "Instelling opgeslagen", + "saveFailed": "Opslaan van instelling mislukt", + "operationSuccess": "Operatie geslaagd", + "operationFailed": "Operatie mislukt", + "openingConnection": "Verbinding openen...", + "openConnectionFailed": "Verbinding openen mislukt", + "thanksFeedback": "Bedankt voor uw feedback!", + "thanksFeedbackImproving": "Bedankt! We zullen dit gebruiken om te verbeteren.", + "feedbackFailed": "Indienen van feedback mislukt", + "notesFusionSuccess": "Notities succesvol samengevoegd!" }, "testPages": { "titleSuggestions": { - "analyzing": "Analyseren...", - "contentLabel": "Inhoud (50+ woorden nodig):", - "error": "Fout:", - "idle": "Inactief", - "noSuggestions": "Nog geen suggesties. Typ 50+ woorden en wacht 2 seconden.", - "placeholder": "Typ hier minimaal 50 woorden...", - "status": "Status:", - "suggestions": "Suggesties ({count}):", "title": "Test titelsuggesties", - "wordCount": "Aantal woorden:" + "contentLabel": "Inhoud (50+ woorden nodig):", + "placeholder": "Typ hier minimaal 50 woorden...", + "wordCount": "Aantal woorden:", + "status": "Status:", + "analyzing": "Analyseren...", + "idle": "Inactief", + "error": "Fout:", + "suggestions": "Suggesties ({count}):", + "noSuggestions": "Nog geen suggesties. Typ 50+ woorden en wacht 2 seconden." } }, - "time": { - "daysAgo": "{count} dagen geleden", - "hoursAgo": "{count} uur geleden", - "justNow": "Zojuist", - "minutesAgo": "{count} minuten geleden", - "today": "Vandaag", - "tomorrow": "Morgen", - "yesterday": "Gisteren" - }, - "titleSuggestions": { - "available": "Titelsuggesties", - "dismiss": "Negeren", - "generating": "Genereren...", - "selectTitle": "Selecteer een titel", - "title": "AI-suggesties" - }, - "toast": { - "feedbackFailed": "Indienen van feedback mislukt", - "notesFusionSuccess": "Notities succesvol samengevoegd!", - "openConnectionFailed": "Verbinding openen mislukt", - "openingConnection": "Verbinding openen...", - "operationFailed": "Operatie mislukt", - "operationSuccess": "Operatie geslaagd", - "saveFailed": "Opslaan van instelling mislukt", - "saved": "Instelling opgeslagen", - "thanksFeedback": "Bedankt voor uw feedback!", - "thanksFeedbackImproving": "Bedankt! We zullen dit gebruiken om te verbeteren." - }, "trash": { "title": "Prullenbak", "empty": "De prullenbak is leeg", @@ -1278,11 +1212,83 @@ "permanentDelete": "Definitief verwijderen", "permanentDeleteConfirm": "Deze notitie wordt definitief verwijderd. Deze actie kan niet ongedaan worden gemaakt." }, + "footer": { + "privacy": "Privacy", + "terms": "Voorwaarden", + "openSource": "Open Source Kloon" + }, + "connection": { + "similarityInfo": "Deze notities zijn verbonden door {similarity}% overeenkomst", + "clickToView": "Klik om notitie te bekijken", + "isHelpful": "Is deze verbinding nuttig?", + "helpful": "Nuttig", + "notHelpful": "Niet nuttig", + "memoryEchoDiscovery": "Memory Echo Ontdekking" + }, + "diagnostics": { + "title": "Diagnostiek", + "description": "Controleer de verbindingsstatus van uw AI-provider", + "configuredProvider": "Geconfigureerde provider", + "apiStatus": "API-status", + "operational": "Operationeel", + "errorStatus": "Fout", + "checking": "Controleren...", + "testDetails": "Testdetails:", + "troubleshootingTitle": "Tips voor probleemoplossing:", + "tip1": "Zorg ervoor dat Ollama draait (ollama serve)", + "tip2": "Controleer dat het model is geïnstalleerd (ollama pull llama3)", + "tip3": "Verifieer uw API-sleutel voor OpenAI", + "tip4": "Controleer netwerkverbinding" + }, + "batch": { + "organizeWithAI": "Organiseren met AI", + "organize": "Organiseren" + }, + "common": { + "unknown": "Onbekend", + "notAvailable": "Niet beschikbaar", + "loading": "Laden...", + "error": "Fout", + "success": "Succes", + "confirm": "Bevestigen", + "cancel": "Annuleren", + "close": "Sluiten", + "save": "Opslaan", + "delete": "Verwijderen", + "edit": "Bewerken", + "add": "Toevoegen", + "remove": "Verwijderen", + "search": "Zoeken", + "noResults": "Geen resultaten", + "required": "Vereist", + "optional": "Optioneel" + }, + "time": { + "justNow": "Zojuist", + "minutesAgo": "{count} minuten geleden", + "hoursAgo": "{count} uur geleden", + "daysAgo": "{count} dagen geleden", + "yesterday": "Gisteren", + "today": "Vandaag", + "tomorrow": "Morgen" + }, + "favorites": { + "title": "Favorieten", + "toggleSection": "Sectie in-/uitschakelen", + "noFavorites": "Geen favorieten", + "pinToFavorite": "Toevoegen aan favorieten" + }, + "notebooks": { + "create": "Notitieboek maken", + "allNotebooks": "Alle notitieboeken", + "noNotebooks": "Geen notitieboeken", + "createFirst": "Maak uw eerste notitieboek" + }, "ui": { "close": "Sluiten", - "collapse": "Inklappen", + "open": "Openen", "expand": "Uitvouwen", - "open": "Openen" + "collapse": "Inklappen" }, "mcpSettings": { "title": "MCP-instellingen", @@ -1349,6 +1355,10 @@ "subtitle": "Automatiseer uw monitoring- en onderzoekstaken", "newAgent": "Nieuwe agent", "myAgents": "Mijn agenten", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "Geen agenten", "noAgentsDescription": "Maak uw eerste agent of installeer een sjabloon hieronder om uw monitoringstaken te automatiseren.", "types": { @@ -1391,7 +1401,9 @@ "researchTopic": "Onderwerp", "researchTopicPlaceholder": "bijv. Laatste doorbraken in AI", "notifyEmail": "E-mailnotificatie", - "notifyEmailHint": "Ontvang een e-mail met de resultaten van de agent na elke uitvoering" + "notifyEmailHint": "Ontvang een e-mail met de resultaten van de agent na elke uitvoering", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "Handmatig", @@ -1400,6 +1412,22 @@ "weekly": "Wekelijks", "monthly": "Maandelijks" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "Geslaagd", "failure": "Mislukt", @@ -1428,7 +1456,9 @@ "toggleError": "Fout bij in-/uitschakelen agent", "installSuccess": "\"{name}\" geïnstalleerd", "installError": "Fout tijdens installatie", - "saveError": "Fout bij opslaan" + "saveError": "Fout bij opslaan", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "Sjablonen", @@ -1541,7 +1571,8 @@ "welcome": "Ik ben hier om u te helpen uw notities samen te vatten, nieuwe ideeën te genereren of uw notitieboeken te bespreken.", "searching": "Zoeken...", "noNotesFoundForContext": "Geen relevante notities gevonden voor deze vraag. Beantwoord met je algemene kennis.", - "webSearch": "Zoeken op het web" + "webSearch": "Zoeken op het web", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "Het Lab", @@ -1558,30 +1589,8 @@ "createFailed": "Aanmaken mislukt", "deleteSpace": "Ruimte verwijderen", "deleted": "Ruimte verwijderd", - "deleteError": "Fout bij verwijderen" - }, - "notification": { - "shared": "heeft \"{title}\" gedeeld", - "untitled": "Naamloos", - "notifications": "Meldingen", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "Delen geweigerd", - "noNotifications": "No new notifications", - "removed": "Notitie verwijderd uit lijst" - }, - "reminders": { - "title": "Herinneringen", - "empty": "Geen herinneringen", - "emptyDescription": "Voeg een herinnering toe aan een notitie om deze hier te vinden.", - "upcoming": "Aankomend", - "overdue": "Achterstallig", - "done": "Voltooid", - "markDone": "Markeren als voltooid", - "markUndone": "Markeren als onvoltooid", - "todayAt": "Vandaag om {time}", - "tomorrowAt": "Morgen om {time}" + "deleteError": "Fout bij verwijderen", + "rename": "Rename" }, "lab": { "initializing": "Werkruimte initialiseren", diff --git a/memento-note/locales/pl.json b/memento-note/locales/pl.json index c721a37..198e1c6 100644 --- a/memento-note/locales/pl.json +++ b/memento-note/locales/pl.json @@ -1,350 +1,366 @@ { - "about": { - "appDescription": "Potężna aplikacja do notatek z funkcjami AI", - "appName": "Memento", - "buildDate": "Data kompilacji", - "description": "Informacje o aplikacji", - "features": { - "description": "Możliwości wspomagane przez AI", - "dragDrop": "Zarządzanie notatkami metodą przeciągnij i upuść", - "labelSystem": "System etykiet", - "memoryEcho": "Codzienne spostrzeżenia Memory Echo", - "multipleProviders": "Wielu dostawców AI (OpenAI, Ollama)", - "notebookOrganization": "Organizacja notatników", - "paragraphReformulation": "Reformulowanie akapitów", - "semanticSearch": "Wyszukiwanie semantyczne z embeddingami", - "title": "Funkcje", - "titleSuggestions": "Sugestie tytułów wspomagane przez AI" - }, - "platform": "Platforma", - "platformWeb": "Web", - "support": { - "description": "Uzyskaj pomoc i przekaż opinie", - "documentation": "Dokumentacja", - "feedback": "Opinie", - "reportIssues": "Zgłoś problemy", - "title": "Wsparcie" - }, - "technology": { - "ai": "AI", - "authentication": "Uwierzytelnianie", - "backend": "Backend", - "database": "Baza danych", - "description": "Zbudowane z nowoczesnych technologii", - "frontend": "Frontend", - "testing": "Testowanie", - "title": "Stos technologiczny", - "ui": "UI" - }, - "title": "O nas", - "version": "Wersja" + "auth": { + "signIn": "Zaloguj się", + "signUp": "Zarejestruj się", + "email": "E-mail", + "password": "Hasło", + "name": "Imię", + "emailPlaceholder": "Wprowadź swój adres e-mail", + "passwordPlaceholder": "Wprowadź swoje hasło", + "namePlaceholder": "Wprowadź swoje imię", + "passwordMinChars": "Wprowadź hasło (min. 6 znaków)", + "resetPassword": "Zresetuj hasło", + "resetPasswordInstructions": "Wprowadź swój e-mail, aby zresetować hasło", + "forgotPassword": "Zapomniałeś hasła?", + "noAccount": "Nie masz konta?", + "hasAccount": "Masz już konto?", + "signInToAccount": "Zaloguj się na swoje konto", + "createAccount": "Utwórz swoje konto", + "rememberMe": "Zapamiętaj mnie", + "orContinueWith": "Kontynuuj za pomocą", + "checkYourEmail": "Sprawdź swoją skrzynkę odbiorczą", + "resetEmailSent": "Wysłaliśmy link do resetowania hasła na Twój adres e-mail, jeśli istnieje w naszym systemie.", + "returnToLogin": "Powrót do logowania", + "forgotPasswordTitle": "Zapomniane hasło", + "forgotPasswordDescription": "Wprowadź swój adres e-mail, a wyślemy Ci link do resetowania hasła.", + "sending": "Wysyłanie...", + "sendResetLink": "Wyślij link resetowania", + "backToLogin": "Powrót do logowania", + "signOut": "Wyloguj się", + "confirmPassword": "Potwierdź hasło", + "confirmPasswordPlaceholder": "Potwierdź swoje hasło" }, - "admin": { - "ai": { - "apiKey": "Klucz API", - "baseUrl": "Adres bazowy URL", - "commonEmbeddingModels": "Popularne modele embeddingowe dla API kompatybilnych z OpenAI", - "commonModelsDescription": "Popularne modele dla API kompatybilnych z OpenAI", - "description": "Skonfiguruj dostawców AI do automatycznego tagowania i wyszukiwania semantycznego. Używaj różnych dostawców dla optymalnej wydajności.", - "embeddingsDescription": "Dostawca AI dla embeddingów wyszukiwania semantycznego. Zalecane: OpenAI (najlepsza jakość).", - "embeddingsProvider": "Dostawca embeddingów", - "model": "Model", - "modelRecommendations": "gpt-4o-mini = Najlepszy stosunek jakości do ceny • gpt-4o = Najlepsza jakość", - "openAIKeyDescription": "Twój klucz API OpenAI z platform.openai.com", - "openTestPanel": "Otwórz panel testowania AI", - "provider": "Dostawca", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING jest wymagany", - "providerTagsRequired": "AI_PROVIDER_TAGS jest wymagany", - "saveSettings": "Zapisz ustawienia AI", - "saving": "Zapisywanie...", - "selectEmbeddingModel": "Wybierz model embeddingowy zainstalowany w systemie", - "selectOllamaModel": "Wybierz model Ollama zainstalowany w systemie", - "tagsGenerationDescription": "Dostawca AI do automatycznych sugestii tagów. Zalecane: Ollama (darmowy, lokalny).", - "tagsGenerationProvider": "Dostawca generowania tagów", - "title": "Konfiguracja AI", - "updateFailed": "Nie udało się zaktualizować ustawień AI", - "updateSuccess": "Ustawienia AI zaktualizowane pomyślnie", - "bestValue": "Najlepszy stosunek jakości do ceny", - "bestQuality": "Najwyższa jakość", - "providerOllamaOption": "🦙 Ollama (lokalny i darmowy)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Niestandardowy (kompatybilny z OpenAI)", - "saved": "(Zapisano)", - "chatProvider": "Dostawca czatu", - "chatDescription": "Dostawca AI dla asystenta czatu. Przechodzi do dostawcy tagów, jeśli nie jest skonfigurowany.", - "fetchModelsFailed": "Nie udało się pobrać modeli", - "refreshModels": "Odśwież modele", - "configured": "Skonfigurowany", - "fetchingModels": "Pobieranie modeli...", - "clickToLoadModels": "Kliknij ↺ aby załadować modele", - "searchModel": "Szukaj modelu...", - "noModels": "Brak modeli. Kliknij ↺", - "modelsAvailable": "{count} model(i) dostępny(e)", - "enterUrlToLoad": "Podaj URL i kliknij ↺", - "currentProvider": "(Bieżący: {provider})", - "pageTitle": "Zarządzanie AI", - "pageDescription": "Monitoruj i konfiguruj funkcje AI", - "configure": "Konfiguruj", - "features": "Funkcje AI", - "providerStatus": "Status dostawców AI", - "recentRequests": "Ostatnie żądania AI", - "comingSoon": "Wkrótce dostępne", - "activeFeatures": "Aktywne funkcje", - "successRate": "Wskaźnik sukcesu", - "avgResponseTime": "Średni czas odpowiedzi", - "configuredProviders": "Skonfigurowani dostawcy", - "settingUpdated": "Ustawienie zaktualizowane", - "updateFailedShort": "Aktualizacja nie powiodła się", - "titleSuggestions": "Sugestie tytułów", - "titleSuggestionsDesc": "Sugeruje tytuły dla notatek po 50+ słowach", - "aiAssistant": "Asystent AI", - "aiAssistantDesc": "Włącz czat AI i narzędzia poprawy tekstu", - "memoryEchoFeature": "Zauważyłem coś...", - "memoryEchoFeatureDesc": "Codzienna analiza powiązań między notatkami", - "languageDetection": "Wykrywanie języka", - "languageDetectionDesc": "Automatycznie wykrywa język każdej notatki", - "autoLabeling": "Automatyczne etykietowanie", - "autoLabelingDesc": "Automatycznie sugeruje i stosuje etykiety" - }, - "aiTest": { - "description": "Przetestuj swoich dostawców AI pod kątem generowania tagów i embeddingów wyszukiwania semantycznego", - "embeddingDimensions": "Wymiary embeddingów:", - "embeddingsTestDescription": "Przetestuj dostawcę AI odpowiedzialnego za embeddingi wyszukiwania semantycznego", - "embeddingsTestTitle": "Test embeddingów", - "error": "Błąd:", - "first5Values": "Pierwsze 5 wartości:", - "generatedTags": "Wygenerowane tagi:", - "howItWorksTitle": "Jak działają testy", - "model": "Model:", - "provider": "Dostawca:", - "responseTime": "Czas odpowiedzi: {time}ms", - "runTest": "Uruchom test", - "tagsTestDescription": "Przetestuj dostawcę AI odpowiedzialnego za automatyczne sugestie tagów", - "tagsTestTitle": "Test generowania tagów", - "testError": "Błąd testu: {error}", - "testFailed": "Test nieudany", - "testPassed": "Test udany", - "testing": "Testowanie...", - "tipDescription": "Użyj panelu testowania AI, aby zdiagnozować problemy z konfiguracją przed testowaniem.", - "tipTitle": "Wskazówka:", - "title": "Testowanie dostawców AI", - "vectorDimensions": "wymiary wektora", - "tagsGenerationTest": "🏷️ Test generowania tagów:", - "tagsStep1": "Wysyła przykładową notatkę do dostawcy AI", - "tagsStep2": "Żąda 3-5 odpowiednich tagów na podstawie treści", - "tagsStep3": "Wyświetla wygenerowane tagi z wynikami pewności", - "tagsStep4": "Mierzy czas odpowiedzi", - "embeddingsTestLabel": "🔍 Test embeddingów:", - "embeddingsStep1": "Wysyła przykładowy tekst do dostawcy embeddingów", - "embeddingsStep2": "Generuje reprezentację wektorową (listę liczb)", - "embeddingsStep3": "Wyświetla wymiary embeddingów i przykładowe wartości", - "embeddingsStep4": "Weryfikuje, czy wektor jest prawidłowy i poprawnie sformatowany", - "tipContent": "Możesz używać różnych dostawców do tagów i embeddingów! Na przykład użyj Ollama (darmowy) do tagów i OpenAI (najlepsza jakość) do embeddingów, aby zoptymalizować koszty i wydajność.", - "testSuccessToast": "Test {type} udany!", - "testFailedToast": "Test {type} nieudany", - "testingType": "Testowanie {type}...", - "technicalDetails": "Szczegóły techniczne" - }, - "aiTesting": "Testowanie AI", - "security": { - "allowPublicRegistration": "Zezwól na publiczną rejestrację", - "allowPublicRegistrationDescription": "Jeśli wyłączone, nowi użytkownicy mogą być dodawani tylko przez Administratora na stronie Zarządzania użytkownikami.", - "description": "Zarządzaj kontrolą dostępu i zasadami rejestracji.", - "title": "Ustawienia bezpieczeństwa", - "updateFailed": "Nie udało się zaktualizować ustawień bezpieczeństwa", - "updateSuccess": "Ustawienia bezpieczeństwa zaktualizowane" - }, - "settings": "Ustawienia administratora", - "resend": { - "title": "Resend (Zalecane)", - "description": "Wysyłaj e-maile przez API Resend. Ma priorytet nad SMTP, jeśli jest skonfigurowane.", - "apiKey": "Klucz API Resend", - "apiKeyHint": "Pobierz klucz API z resend.com. Używany do powiadomień agentów i resetowania haseł.", - "saveSettings": "Zapisz ustawienia Resend", - "updateSuccess": "Ustawienia Resend zaktualizowane", - "updateFailed": "Nie udało się zaktualizować ustawień Resend", - "configured": "Resend jest skonfigurowany i aktywny" - }, - "email": { - "title": "Konfiguracja e-mail", - "description": "Skonfiguruj wysyłkę e-maili dla powiadomień agentów i resetowania haseł.", - "provider": "Dostawca e-mail", - "saveSettings": "Zapisz ustawienia e-mail" - }, - "smtp": { - "description": "Skonfiguruj serwer poczty e-mail do resetowania haseł.", - "forceSSL": "Wymuś SSL/TLS (zazwyczaj dla portu 465)", - "fromEmail": "E-mail nadawcy", - "host": "Host", - "ignoreCertErrors": "Ignoruj błędy certyfikatu (tylko self-hosted/dev)", - "password": "Hasło", - "port": "Port", - "saveSettings": "Zapisz ustawienia SMTP", - "sending": "Wysyłanie...", - "testEmail": "E-mail testowy", - "testFailed": "Nie powiodło się: {error}", - "testSuccess": "E-mail testowy wysłany pomyślnie!", - "title": "Konfiguracja SMTP", - "updateFailed": "Nie udało się zaktualizować ustawień SMTP", - "updateSuccess": "Ustawienia SMTP zaktualizowane", - "username": "Nazwa użytkownika" - }, - "title": "Panel administracyjny", - "userManagement": "Zarządzanie użytkownikami", - "users": { - "addUser": "Dodaj użytkownika", - "confirmDelete": "Czy na pewno chcesz usunąć tego użytkownika?", - "createFailed": "Nie udało się utworzyć użytkownika", - "createSuccess": "Użytkownik utworzony pomyślnie", - "createUser": "Utwórz użytkownika", - "createUserDescription": "Dodaj nowego użytkownika do systemu.", - "deleteFailed": "Nie udało się usunąć", - "deleteSuccess": "Użytkownik usunięty", - "demote": "Zdegraduj", - "email": "E-mail", - "name": "Imię", - "password": "Hasło", - "promote": "Awansuj", - "role": "Rola", - "roleUpdateFailed": "Nie udało się zaktualizować roli", - "roleUpdateSuccess": "Rola użytkownika zmieniona na {role}", - "roles": { - "admin": "Administrator", - "user": "Użytkownik" - }, - "table": { - "actions": "Akcje", - "createdAt": "Utworzono", - "email": "E-mail", - "name": "Imię", - "role": "Rola" - }, - "title": "Użytkownicy", - "description": "Zarządzaj użytkownikami i uprawnieniami" - }, - "chat": "Czat AI", - "lab": "Laboratorium", - "agents": "Agenci", - "workspace": "Przestrzeń robocza", - "sidebar": { - "dashboard": "Panel główny", - "users": "Użytkownicy", - "aiManagement": "Zarządzanie AI", - "chat": "Czat AI", - "lab": "Laboratorium (pomysły)", - "agents": "Agenci", - "settings": "Ustawienia" - }, - "metrics": { - "vsLastPeriod": "względem poprzedniego okresu" - }, - "tools": { - "title": "Narzędzia Agenta", - "description": "Skonfiguruj zewnętrzne narzędzia do użytku przez agentów: wyszukiwanie w sieci, pobieranie stron i dostęp do API.", - "searchProvider": "Dostawca Wyszukiwania w Sieci", - "searxng": "SearXNG (Self-hosted)", - "brave": "Brave Search API", - "both": "Oba (SearXNG główny, Brave zapasowy)", - "searxngUrl": "URL SearXNG", - "braveKey": "Klucz Brave Search API", - "jinaKey": "Klucz Jina Reader API", - "jinaKeyOptional": "Opcjonalnie — działa bez klucza, ale z limitami zapytań", - "jinaKeyDescription": "Używany do pobierania stron. Działa bez klucza, ale z limitami zapytań.", - "saveSettings": "Zapisz Ustawienia Narzędzi", - "updateSuccess": "Ustawienia narzędzi zaktualizowane pomyślnie", - "updateFailed": "Nie udało się zaktualizować ustawień narzędzi", - "testing": "Testowanie...", - "testSearch": "Testuj wyszukiwanie" - }, - "settingsDescription": "Konfiguruj ustawienia aplikacji", - "dashboard": { - "title": "Panel", - "description": "Przegląd metryk aplikacji", - "recentActivity": "Ostatnia aktywność", - "recentActivityPlaceholder": "Ostatnia aktywność zostanie wyświetlona tutaj." - }, - "error": { - "title": "Błąd w panelu administracyjnym", - "description": "Renderowanie strony nie powiodło się. Możesz spróbować ponownie.", - "retry": "Ponów" - } + "sidebar": { + "notes": "Notatki", + "reminders": "Przypomnienia", + "labels": "Etykiety", + "editLabels": "Edytuj etykiety", + "newNoteTabs": "Nowa notatka", + "newNoteTabsHint": "Utwórz notatkę w tym notatniku", + "noLabelsInNotebook": "Brak etykiet w tym notatniku", + "archive": "Archiwum", + "trash": "Kosz", + "clearFilter": "Remove filter" + }, + "notes": { + "title": "Notatki", + "newNote": "Nowa notatka", + "untitled": "Bez tytułu", + "placeholder": "Zrób notatkę...", + "markdownPlaceholder": "Zrób notatkę... (Markdown obsługiwany)", + "titlePlaceholder": "Tytuł", + "listItem": "Element listy", + "addListItem": "+ Element listy", + "newChecklist": "Nowa lista kontrolna", + "add": "Dodaj", + "adding": "Dodawanie...", + "close": "Zamknij", + "confirmDelete": "Czy na pewno chcesz usunąć tę notatkę?", + "confirmLeaveShare": "Czy na pewno chcesz opuścić tę udostępnioną notatkę?", + "sharedBy": "Udostępnione przez", + "leaveShare": "Opuść", + "delete": "Usuń", + "archive": "Archiwizuj", + "unarchive": "Przywróć z archiwum", + "pin": "Przypnij", + "unpin": "Odepnij", + "color": "Kolor", + "changeColor": "Zmień kolor", + "setReminder": "Ustaw przypomnienie", + "setReminderButton": "Ustaw przypomnienie", + "date": "Data", + "time": "Czas", + "reminderDateTimeRequired": "Proszę wprowadzić datę i czas", + "invalidDateTime": "Nieprawidłowa data lub czas", + "reminderMustBeFuture": "Przypomnienie musi być w przyszłości", + "reminderSet": "Przypomnienie ustawione na {datetime}", + "reminderPastError": "Przypomnienie musi być w przyszłości", + "reminderRemoved": "Przypomnienie usunięte", + "addImage": "Dodaj obraz", + "addLink": "Dodaj link", + "linkAdded": "Link dodany", + "linkMetadataFailed": "Nie udało się pobrać metadanych linku", + "linkAddFailed": "Nie udało się dodać linku", + "invalidFileType": "Nieprawidłowy typ pliku: {fileName}. Dozwolone są tylko JPEG, PNG, GIF i WebP.", + "fileTooLarge": "Plik jest za duży: {fileName}. Maksymalny rozmiar to {maxSize}.", + "uploadFailed": "Nie udało się przesłać {filename}", + "contentOrMediaRequired": "Proszę wprowadzić treść lub dodać link/obraz", + "itemOrMediaRequired": "Proszę dodać przynajmniej jeden element lub media", + "noteCreated": "Notatka utworzona pomyślnie", + "noteCreateFailed": "Nie udało się utworzyć notatki", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "aiAssistant": "Asystent AI", + "changeSize": "Zmień rozmiar", + "backgroundOptions": "Opcje tła", + "moreOptions": "Więcej opcji", + "remindMe": "Przypomnij mi", + "markdownMode": "Markdown", + "addCollaborators": "Dodaj współpracowników", + "duplicate": "Duplikuj", + "share": "Udostępnij", + "showCollaborators": "Pokaż współpracowników", + "pinned": "Przypięte", + "others": "Inne", + "noNotes": "Brak notatek", + "noNotesFound": "Nie znaleziono notatek", + "createFirstNote": "Utwórz swoją pierwszą notatkę", + "size": "Rozmiar", + "small": "Mały", + "medium": "Średni", + "large": "Duży", + "shareWithCollaborators": "Udostępnij współpracownikom", + "view": "Wyświetl notatkę", + "edit": "Edytuj notatkę", + "readOnly": "Tylko do odczytu", + "preview": "Podgląd", + "noContent": "Brak treści", + "takeNote": "Zrób notatkę...", + "takeNoteMarkdown": "Zrób notatkę... (Markdown obsługiwany)", + "addItem": "Dodaj element", + "sharedReadOnly": "Ta notatka jest udostępniona Ci w trybie tylko do odczytu", + "makeCopy": "Utwórz kopię", + "saving": "Zapisywanie...", + "copySuccess": "Notatka skopiowana pomyślnie!", + "copyFailed": "Nie udało się skopiować notatki", + "copy": "Kopiuj", + "markdownOn": "Markdown WŁĄCZONY", + "markdownOff": "Markdown WYŁĄCZONY", + "undo": "Cofnij", + "redo": "Ponów", + "pinnedNotes": "Przypięte notatki", + "recent": "Ostatnie", + "addNote": "Dodaj notatkę", + "remove": "Usuń", + "dragToReorder": "Przeciągnij, aby zmienić kolejność", + "more": "Więcej", + "emptyState": "Brak notatek tutaj", + "emptyStateTabs": "Brak notatek. Użyj \"Nowa notatka\" na pasku bocznym, aby dodać (sugestie tytułów AI pojawią się w edytorze).", + "inNotebook": "W notatniku", + "moveFailed": "Przenoszenie nie powiodło się", + "clarifyFailed": "Uściślenie nie powiodło się", + "shortenFailed": "Skrócenie nie powiodło się", + "improveFailed": "Ulepszenie nie powiodło się", + "transformFailed": "Przekształcenie nie powiodło się", + "markdown": "Markdown", + "unpinned": "Odepnięta", + "redoShortcut": "Ponów (Ctrl+Y)", + "undoShortcut": "Cofnij (Ctrl+Z)", + "viewCards": "Widok kart", + "viewCardsTooltip": "Siatka kart z przeciąganiem i zmianą kolejności", + "viewTabs": "Widok listy", + "viewTabsTooltip": "Karty na górze, notatka poniżej — przeciągnij karty, aby zmienić kolejność", + "viewModeGroup": "Tryb wyświetlania notatek", + "reorderTabs": "Zmień kolejność kart", + "modified": "Zmodyfikowano", + "created": "Utworzono", + "loading": "Ładowanie...", + "exportPDF": "Eksportuj PDF", + "savedStatus": "Zapisano", + "dirtyStatus": "Zmodyfikowano", + "completedLabel": "Ukończone", + "notes.emptyNotebook": "Pusty notatnik", + "notes.emptyNotebookDesc": "Ten notatnik nie ma notatek. Kliknij + aby utworzyć.", + "notes.noNoteSelected": "Nie wybrano notatki", + "notes.selectOrCreateNote": "Wybierz notatkę z listy lub utwórz nową.", + "commitVersion": "Zapisz wersję", + "versionSaved": "Wersja zapisana", + "deleteVersion": "Usuń tę wersję", + "versionDeleted": "Wersja usunięta", + "deleteVersionConfirm": "Usunąć tę wersję trwale?", + "historyMode": "Tryb historii", + "historyModeManual": "Ręczny (przycisk commit)", + "historyModeAuto": "Automatyczny (inteligentny)", + "historyModeManualDesc": "Ręczne tworzenie snapshotów przyciskiem commit", + "historyModeAutoDesc": "Automatyczne snapshoty z inteligentnym wykrywaniem", + "history": "Historia", + "historyRestored": "Wersja przywrócona", + "historyEnabled": "Historia włączona", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "Historia jest wyłączona dla Twojego konta.", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "Włącz historię", + "historyEmpty": "Brak dostępnych wersji", + "historySelectVersion": "Wybierz wersję, aby zobaczyć podgląd", + "sortBy": "Sortuj według", + "sortDateDesc": "Data (najnowsze)", + "sortDateAsc": "Data (najstarsze)", + "sortTitleAsc": "Tytuł A → Z", + "sortTitleDesc": "Tytuł Z → A", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "pagination": { + "previous": "←", + "pageInfo": "Strona {currentPage} / {totalPages}", + "next": "→" + }, + "labels": { + "title": "Labels", + "filter": "Filter by Label", + "manage": "Manage Labels", + "manageTooltip": "Manage Labels", + "changeColor": "Zmień kolor", + "changeColorTooltip": "Zmień kolor", + "delete": "Delete", + "deleteTooltip": "Delete label", + "confirmDelete": "Czy na pewno chcesz usunąć tę etykietę?", + "newLabelPlaceholder": "Create new label", + "namePlaceholder": "Enter label name", + "addLabel": "Dodaj etykietę", + "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": "Wszystkie etykiety", + "clearAll": "Wyczyść wszystko", + "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} etykiet", + "noLabels": "Brak etykiet", + "confirmDeleteShort": "Potwierdzić?", + "labelRemoved": "Etykieta \"{label}\" usunięta" + }, + "search": { + "placeholder": "Szukaj", + "searchPlaceholder": "Przeszukaj swoje notatki...", + "semanticInProgress": "Wyszukiwanie semantyczne AI...", + "semanticTooltip": "Wyszukiwanie semantyczne AI", + "searching": "Wyszukiwanie...", + "noResults": "Nie znaleziono wyników", + "resultsFound": "Znaleziono {count} notatek", + "exactMatch": "Dokładne dopasowanie", + "related": "Powiązane", + "disabledAdmin": "Wyszukiwanie wyłączone w trybie admin" + }, + "collaboration": { + "emailPlaceholder": "Wprowadź adres e-mail", + "addCollaborator": "Dodaj współpracownika", + "removeCollaborator": "Usuń współpracownika", + "owner": "Właściciel", + "canEdit": "Może edytować", + "canView": "Może przeglądać", + "shareNote": "Udostępnij notatkę", + "shareWithCollaborators": "Udostępnij współpracownikom", + "addCollaboratorDescription": "Dodaj osoby do współpracy nad tą notatką za pomocą adresu e-mail.", + "viewerDescription": "Masz dostęp do tej notatki. Tylko właściciel może zarządzać współpracownikami.", + "emailAddress": "Adres e-mail", + "enterEmailAddress": "Wprowadź adres e-mail", + "invite": "Zaproś", + "peopleWithAccess": "Osoby z dostępem", + "noCollaborators": "Brak współpracowników. Dodaj kogoś powyżej!", + "noCollaboratorsViewer": "Brak współpracowników.", + "pendingInvite": "Oczekujące zaproszenie", + "pending": "Oczekujące", + "remove": "Usuń", + "unnamedUser": "Nienazwany użytkownik", + "done": "Gotowe", + "willBeAdded": "{email} zostanie dodany jako współpracownik po utworzeniu notatki", + "alreadyInList": "Ten e-mail jest już na liście", + "nowHasAccess": "{name} ma teraz dostęp do tej notatki", + "accessRevoked": "Dostęp został cofnięty", + "errorLoading": "Błąd ładowania współpracowników", + "failedToAdd": "Nie udało się dodać współpracownika", + "failedToRemove": "Nie udało się usunąć współpracownika" }, "ai": { "analyzing": "Analiza AI...", + "clickToAddTag": "Kliknij, aby dodać ten tag", + "ignoreSuggestion": "Zignoruj tę sugestię", + "generatingTitles": "Generowanie tytułów...", + "generateTitlesTooltip": "Generuj tytuły za pomocą AI", + "poweredByAI": "Wspierane przez AI", + "languageDetected": "Wykryty język", + "processing": "Przetwarzanie...", + "tagAdded": "Tag \"{tag}\" dodany", + "titleGenerating": "Generowanie...", + "titleGenerateWithAI": "Generuj tytuły za pomocą AI", + "titleGenerationMinWords": "Treść musi mieć co najmniej 10 słów, aby wygenerować tytuły (obecnie: {count} słów)", + "titleGenerationError": "Błąd generowania tytułów", + "titlesGenerated": "💡 Wygenerowano {count} tytułów!", + "titleGenerationFailed": "Nie udało się wygenerować tytułów", + "titleApplied": "Tytuł zastosowany!", + "reformulationNoText": "Proszę wybrać tekst lub dodać treść", + "reformulationSelectionTooShort": "Zaznaczenie zbyt krótkie, użyto pełnej treści", + "reformulationMinWords": "Tekst musi mieć co najmniej 10 słów (obecnie: {count} słów)", + "reformulationMaxWords": "Tekst może mieć maksymalnie 500 słów", + "reformulationError": "Błąd podczas reformulacji", + "reformulationFailed": "Nie udało się zreformułować tekstu", + "reformulationApplied": "Zreformułowany tekst zastosowany!", + "transformMarkdown": "Przekształć do Markdown", + "transforming": "Przekształcanie...", + "transformSuccess": "Tekst przekształcony do Markdown pomyślnie!", + "transformError": "Błąd podczas przekształcania", "assistant": "Asystent AI", + "generating": "Generowanie...", + "generateTitles": "Generuj tytuły", + "reformulateText": "Reformuluj tekst", + "reformulating": "Reformulowanie...", + "clarify": "Uściślij", + "shorten": "Skróć", + "improveStyle": "Popraw styl", + "reformulationComparison": "Porównanie reformulacji", + "original": "Oryginał", + "reformulated": "Zreformułowany", "autoLabels": { - "analyzing": "Analizowanie Twoich notatek pod kątem sugestii etykiet...", - "create": "Utwórz", - "createNewLabel": "Utwórz nową etykietę", - "created": "{count} etykiet utworzono pomyślnie", - "creating": "Tworzenie etykiet...", - "description": "Wykryłem powtarzające się tematy w \"{notebookName}\" ({totalNotes} notatkach). Utworzyć dla nich etykiety?", "error": "Nie udało się pobrać sugestii etykiet", - "new": "(nowa)", "noLabelsSelected": "Nie wybrano etykiet", + "created": "{count} etykiet utworzono pomyślnie", + "analyzing": "Analizowanie Twoich notatek pod kątem sugestii etykiet...", + "title": "Sugestie Etykiet", + "description": "Wykryłem powtarzające się tematy w \"{notebookName}\" ({totalNotes} notatkach). Utworzyć dla nich etykiety?", "note": "notatka", "notes": "notatki", - "title": "Sugestie Etykiet", "typeContent": "Wpisz treść, aby uzyskać sugestie etykiet...", - "typeForSuggestions": "Wpisz, aby uzyskać sugestie", - "notesCount": "{count} notatek" + "createNewLabel": "Utwórz nową etykietę", + "new": "(nowa)", + "create": "Utwórz", + "creating": "Tworzenie etykiet...", + "notesCount": "{count} notatek", + "typeForSuggestions": "Wpisz, aby uzyskać sugestie" }, "batchOrganization": { - "analyzing": "Analizowanie Twoich notatek...", - "apply": "Zastosuj", - "applyFailed": "Zastosowanie nie powiodło się", - "applying": "Stosowanie...", + "title": "Organizacja wsadowa", "description": "AI przeanalizuje Twoje notatki i zasugeruje zorganizowanie ich w notatnikach.", - "error": "Błąd organizacji", + "analyzing": "Analizowanie Twoich notatek...", "noNotebooks": "Brak dostępnych notatników. Najpierw utwórz notatniki, aby zorganizować swoje notatki.", - "noNotesSelected": "Nie wybrano notatek", "noSuggestions": "AI nie znalazło dobrego sposobu na zorganizowanie tych notatek.", - "selectAllIn": "Wybierz wszystko w", - "selectNote": "Wybierz notatkę", + "apply": "Zastosuj", + "applying": "Stosowanie...", "success": "Organizacja zakończona", - "title": "Organizacja wsadowa" + "error": "Błąd organizacji", + "noNotesSelected": "Nie wybrano notatek", + "applyFailed": "Zastosowanie nie powiodło się", + "selectAllIn": "Wybierz wszystko w", + "selectNote": "Wybierz notatkę" }, - "clarify": "Uściślij", - "clickToAddTag": "Kliknij, aby dodać ten tag", - "generateTitles": "Generuj tytuły", - "generateTitlesTooltip": "Generuj tytuły za pomocą AI", - "generating": "Generowanie...", - "generatingTitles": "Generowanie tytułów...", - "ignoreSuggestion": "Zignoruj tę sugestię", - "improveStyle": "Popraw styl", - "languageDetected": "Wykryty język", "notebookSummary": { "regenerate": "Wygeneruj ponownie podsumowanie", "regenerating": "Ponowne generowanie podsumowania...", "exportPDF": "Eksportuj jako PDF" }, - "original": "Oryginał", - "poweredByAI": "Wspierane przez AI", - "processing": "Przetwarzanie...", - "reformulateText": "Reformuluj tekst", - "reformulated": "Zreformułowany", - "reformulating": "Reformulowanie...", - "reformulationApplied": "Zreformułowany tekst zastosowany!", - "reformulationComparison": "Porównanie reformulacji", - "reformulationError": "Błąd podczas reformulacji", - "reformulationFailed": "Nie udało się zreformułować tekstu", - "reformulationMaxWords": "Tekst może mieć maksymalnie 500 słów", - "reformulationMinWords": "Tekst musi mieć co najmniej 10 słów (obecnie: {count} słów)", - "reformulationNoText": "Proszę wybrać tekst lub dodać treść", - "reformulationSelectionTooShort": "Zaznaczenie zbyt krótkie, użyto pełnej treści", - "shorten": "Skróć", - "tagAdded": "Tag \"{tag}\" dodany", - "titleApplied": "Tytuł zastosowany!", - "titleGenerateWithAI": "Generuj tytuły za pomocą AI", - "titleGenerating": "Generowanie...", - "titleGenerationError": "Błąd generowania tytułów", - "titleGenerationFailed": "Nie udało się wygenerować tytułów", - "titleGenerationMinWords": "Treść musi mieć co najmniej 10 słów, aby wygenerować tytuły (obecnie: {count} słów)", - "titlesGenerated": "💡 Wygenerowano {count} tytułów!", - "transformError": "Błąd podczas przekształcania", - "transformMarkdown": "Przekształć do Markdown", - "transformSuccess": "Tekst przekształcony do Markdown pomyślnie!", - "transforming": "Przekształcanie...", "clarifyDesc": "Uczyń tekst jaśniejszym i łatwiejszym do zrozumienia", "shortenDesc": "Podsumuj tekst i przejdź do sedna", "improve": "Popraw pisanie", @@ -389,11 +405,14 @@ "transformationsDesc": "Transformacje — zastosowane bezpośrednio w notatce", "writeMinWordsAction": "Napisz co najmniej 5 słów, aby aktywować akcje AI.", "processingAction": "Przetwarzanie...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "Doprecyzuj", "shorten": "Skróć", "improve": "Popraw", - "toMarkdown": "Do Markdown" + "toMarkdown": "Do Markdown", + "describeImages": "Describe images" }, "openAssistant": "Otwórz asystenta AI", "poweredByMomento": "Napędzany przez Momento AI", @@ -408,370 +427,59 @@ "historyTab": "Historia", "insightsTab": "Wnioski", "aiCopilot": "AI Copilot", - "suggestTitle": "Sugestia tytułu AI" + "suggestTitle": "Sugestia tytułu AI", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" }, - "aiSettings": { - "description": "Skonfiguruj swoje funkcje AI i preferencje", - "error": "Nie udało się zaktualizować ustawienia", - "features": "Funkcje AI", - "frequency": "Częstotliwość", - "frequencyDaily": "Codziennie", - "frequencyWeekly": "Co tydzień", - "provider": "Dostawca AI", - "providerAuto": "Auto (Zalecane)", - "providerOllama": "Ollama (Lokalny)", - "providerOpenAI": "OpenAI (Chmura)", - "saved": "Ustawienie zaktualizowane", - "saving": "Zapisywanie...", - "title": "Ustawienia AI", - "titleSuggestionsDesc": "Sugeruj tytuły dla notatek bez tytułu po 50+ słowach", - "paragraphRefactorDesc": "Opcje poprawy tekstu wspomagane przez AI", - "frequencyDesc": "Jak często analizować połączenia notatek", - "providerDesc": "Wybierz preferowanego dostawcę AI", - "providerAutoDesc": "Ollama gdy dostępny, OpenAI jako alternatywa", - "providerOllamaDesc": "100% prywatny, działa lokalnie na twoim urządzeniu", - "providerOpenAIDesc": "Najdokładniejszy, wymaga klucza API" - }, - "appearance": { - "description": "Dostosuj wygląd aplikacji", - "title": "Wygląd", - "notesViewDescription": "Wybierz sposób wyświetlania notatek na stronie głównej i w notatnikach.", - "notesViewLabel": "Układ notatek", - "notesViewTabs": "Karty (styl OneNote)", - "notesViewMasonry": "Karty (siatka)" - }, - "auth": { - "backToLogin": "Powrót do logowania", - "checkYourEmail": "Sprawdź swoją skrzynkę odbiorczą", - "createAccount": "Utwórz swoje konto", - "email": "E-mail", - "emailPlaceholder": "Wprowadź swój adres e-mail", - "forgotPassword": "Zapomniałeś hasła?", - "forgotPasswordDescription": "Wprowadź swój adres e-mail, a wyślemy Ci link do resetowania hasła.", - "forgotPasswordTitle": "Zapomniane hasło", - "hasAccount": "Masz już konto?", - "name": "Imię", - "namePlaceholder": "Wprowadź swoje imię", - "noAccount": "Nie masz konta?", - "orContinueWith": "Kontynuuj za pomocą", - "password": "Hasło", - "passwordMinChars": "Wprowadź hasło (min. 6 znaków)", - "passwordPlaceholder": "Wprowadź swoje hasło", - "rememberMe": "Zapamiętaj mnie", - "resetEmailSent": "Wysłaliśmy link do resetowania hasła na Twój adres e-mail, jeśli istnieje w naszym systemie.", - "resetPassword": "Zresetuj hasło", - "resetPasswordInstructions": "Wprowadź swój e-mail, aby zresetować hasło", - "returnToLogin": "Powrót do logowania", - "sendResetLink": "Wyślij link resetowania", - "sending": "Wysyłanie...", - "signIn": "Zaloguj się", - "signInToAccount": "Zaloguj się na swoje konto", - "signOut": "Wyloguj się", - "signUp": "Zarejestruj się", - "confirmPassword": "Potwierdź hasło", - "confirmPasswordPlaceholder": "Potwierdź swoje hasło" - }, - "autoLabels": { - "aiPowered": "Wspierane przez AI", - "analyzing": "Analizowanie Twoich notatek...", - "applySuggested": "Zastosuj sugerowane", - "autoLabelBatchDescription": "Automatyczne dodanie etykiet dla wybranych notatek", - "autoLabelDescription": "Automatyczne dodawanie etykiet na podstawie analizy AI", - "autoLabelNoteDescription": "Automatyczne dodanie etykiet dla tej notatki", - "confidence": "Zaufanie: {score}%", - "contentAnalysis": "Analiza treści", - "createNewLabel": "Utwórz tę nową etykietę i dodaj ją", - "created": "Utworzono {count} etykiet pomyślnie", - "description": "Wykryłem powtarzające się tematy w \"{notebookName}\" ({totalNotes} notatek). Utworzyć dla nich etykiety?", - "disabled": "Wyłączone", - "dismissAll": "Odrzuć wszystkie", - "enabled": "Włączone", - "error": "Błąd autoetykiet", - "generateMore": "Wygeneruj więcej", - "keywordExtraction": "Ekstrakcja słów kluczowych", - "labelCategories": "Kategorie etykiet", - "labelCategoriesDescription": "Wybierz kategorie dla automatycznego tagowania", - "labelsApplied": "Etykiety zastosowane", - "learnMore": "Dowiedz się więcej", - "maxLabels": "Maksymalna liczba etykiet na notatkę", - "maxLabelsDescription": "Maksymalna liczba etykiet na notatkę", - "minConfidence": "Minimalne zaufanie", - "minConfidenceDescription": "Minimalny wynik (0-100) dla sugestii AI", - "new": "(nowa)", - "noLabelsGenerated": "Nie wygenerowano etykiet", - "noLabelsSelected": "Nie wybrano etykiet", - "note": "notatka", - "notes": "notatki", - "processing": "Przetwarzanie...", - "saveSettings": "Zapisz ustawienia", - "settings": "Ustawienia", - "settingsDescription": "Skonfiguruj preferencje autoetykiet", - "settingsDialogTitle": "Ustawienia autoetykiet", - "settingsSaved": "Ustawienia zapisane", - "smartTagging": "Inteligentne tagowanie", - "suggestedLabels": "Sugerowane etykiety", - "title": "Autoetykiety", - "toggle": "Włącz autoetykiety", - "typeContent": "Wpisz treść, aby uzyskać sugestie etykiet..." - }, - "batch": { - "organize": "Organizuj", - "organizeWithAI": "Organizuj z AI" - }, - "batchOrganization": { - "addCategories": "Dodaj kategorie", - "addTags": "Dodaj tagi", - "analyzing": "Analizowanie Twoich notatek...", - "apply": "Zastosuj ({count})", - "applyChanges": "Zastosuj zmiany", - "applying": "Applying...", - "backToNote": "Powrót do notatki", - "categories": "Kategorie", - "categorized": "Zakategoryzowano: {count}", - "close": "Zamknij", - "confidence": "pewność", - "description": "AI przeanalizuje Twoje notatki i zasugeruje zorganizowanie ich w notatnikach.", - "done": "Gotowe", - "error": "Błąd tworzenia planu organizacji", - "finished": "Organizacja zakończona!", - "noNotebooks": "Brak dostępnych notatników. Najpierw utwórz notatniki, aby zorganizować swoje notatki.", - "noNotesSelected": "Nie wybrano notatek", - "noSuggestions": "AI nie znalazło dobrego sposobu na zorganizowanie tych notatek.", - "noTagsAdded": "Nie dodano tagów", - "notesToOrganize": "{count} notatek do zorganizowania", - "organizing": "Organizowanie...", - "results": "Wyniki", - "reviewChanges": "Przejrzyj zmiany", - "selectNotes": "Wybierz notatki do zorganizowania", - "selected": "Wybrano {count}", - "skip": "Pomiń", - "start": "Rozpocznij organizację", - "suggestedCategories": "Sugerowane kategorie", - "suggestedTags": "Sugerowane tagi", - "tagsAdded": "Dodano tagów: {count}", - "title": "Organizacja wsadowa", - "totalProcessed": "Przetworzono: {total}", - "unorganized": "{count} notatek nie udało się zakategoryzować i pozostaną w Notatkach ogólnych." - }, - "collaboration": { - "accessRevoked": "Dostęp został cofnięty", - "addCollaborator": "Dodaj współpracownika", - "addCollaboratorDescription": "Dodaj osoby do współpracy nad tą notatką za pomocą adresu e-mail.", - "alreadyInList": "Ten e-mail jest już na liście", - "canEdit": "Może edytować", - "canView": "Może przeglądać", - "done": "Gotowe", - "emailAddress": "Adres e-mail", - "emailPlaceholder": "Wprowadź adres e-mail", - "enterEmailAddress": "Wprowadź adres e-mail", - "errorLoading": "Błąd ładowania współpracowników", - "failedToAdd": "Nie udało się dodać współpracownika", - "failedToRemove": "Nie udało się usunąć współpracownika", - "invite": "Zaproś", - "noCollaborators": "Brak współpracowników. Dodaj kogoś powyżej!", - "noCollaboratorsViewer": "Brak współpracowników.", - "nowHasAccess": "{name} ma teraz dostęp do tej notatki", - "owner": "Właściciel", - "pending": "Oczekujące", - "pendingInvite": "Oczekujące zaproszenie", - "peopleWithAccess": "Osoby z dostępem", - "remove": "Usuń", - "removeCollaborator": "Usuń współpracownika", - "shareNote": "Udostępnij notatkę", - "shareWithCollaborators": "Udostępnij współpracownikom", - "unnamedUser": "Nienazwany użytkownik", - "viewerDescription": "Masz dostęp do tej notatki. Tylko właściciel może zarządzać współpracownikami.", - "willBeAdded": "{email} zostanie dodany jako współpracownik po utworzeniu notatki" - }, - "colors": { - "blue": "Niebieski", - "default": "Domyślny", - "gray": "Szary", - "green": "Zielony", - "orange": "Pomarańczowy", - "pink": "Różowy", - "purple": "Fioletowy", - "red": "Czerwony", - "yellow": "Żółty" - }, - "common": { - "add": "Dodaj", - "cancel": "Anuluj", - "close": "Zamknij", - "confirm": "Potwierdź", - "delete": "Usuń", - "edit": "Edytuj", - "error": "Błąd", - "loading": "Ładowanie...", - "noResults": "Brak wyników", - "notAvailable": "Niedostępne", - "optional": "Opcjonalne", - "remove": "Usuń", - "required": "Wymagane", - "save": "Zapisz", - "search": "Szukaj", - "success": "Sukces", - "unknown": "Nieznany" - }, - "connection": { - "clickToView": "Kliknij, aby wyświetlić notatkę", - "helpful": "Pomocne", - "isHelpful": "Czy to połączenie jest pomocne?", - "memoryEchoDiscovery": "Odkrycie Memory Echo", - "notHelpful": "Niepomocne", - "similarityInfo": "Te notatki są połączone przez {similarity}% podobieństwa" - }, - "dataManagement": { - "cleanup": { - "button": "Wyczyść", - "description": "Usuń etykiety i połączenia odwołujące się do usuniętych notatek.", - "failed": "Błąd podczas czyszczenia", - "title": "Czyszczenie osieroconych danych" - }, - "cleanupComplete": "Czyszczenie zakończone", - "cleanupError": "Błąd czyszczenia", - "dangerZone": "Strefa zagrożenia", - "dangerZoneDescription": "Te akcje są nieodwracalne", - "delete": { - "button": "Usuń wszystkie notatki", - "confirm": "Czy na pewno? To trwale usunie wszystkie Twoje notatki.", - "description": "Trwale usuń wszystkie swoje notatki. Tej operacji nie można cofnąć.", - "failed": "Nie udało się usunąć notatek", - "success": "Wszystkie notatki usunięte", - "title": "Usuń wszystkie notatki" - }, - "deleting": "Usuwanie...", - "export": { - "button": "Eksportuj notatki", - "description": "Pobierz wszystkie swoje notatki jako plik JSON. Zawiera całą treść, etykiety i metadane.", - "failed": "Nie udało się wyeksportować notatek", - "success": "Notatki wyeksportowane pomyślnie", - "title": "Eksportuj wszystkie notatki" - }, - "exporting": "Eksportowanie...", - "import": { - "button": "Importuj notatki", - "description": "Prześlij plik JSON, aby zaimportować notatki. Zostaną dodane do istniejących notatek, nie zastąpią ich.", - "failed": "Nie udało się zaimportować notatek", - "success": "Zaimportowano {count} notatek", - "title": "Importuj notatki" - }, - "importing": "Importowanie...", - "indexing": { - "button": "Przebuduj indeks", - "description": "Regeneruj embeddingi dla wszystkich notatek, aby poprawić wyszukiwanie semantyczne.", - "failed": "Błąd podczas indeksowania", - "success": "Indeksowanie zakończone: przetworzono {count} notatek", - "title": "Przebuduj indeks wyszukiwania" - }, - "indexingComplete": "Indeksowanie zakończone", - "indexingError": "Błąd indeksowania", - "title": "Zarządzanie danymi", - "toolsDescription": "Narzędzia do utrzymania kondycji bazy danych" - }, - "demoMode": { - "activated": "Tryb demonstracyjny aktywowany! Memory Echo będzie teraz działać natychmiastowo.", - "createNotesTip": "Utwórz 2+ podobne notatki i zobacz Memory Echo w akcji!", - "deactivated": "Tryb demonstracyjny wyłączony. Przywrócono normalne parametry.", - "delayBetweenNotes": "Opóźnienie 0 dni między notatkami (normalnie 7 dni)", - "description": "Przyspiesza Memory Echo do testowania. Połączenia pojawiają się natychmiast.", - "parametersActive": "Parametry demonstracyjne aktywne:", - "similarityThreshold": "Próg podobieństwa 50% (normalnie 75%)", - "title": "Tryb demonstracyjny", - "toggleFailed": "Przełączenie trybu demonstracyjnego nie powiodło się", - "unlimitedInsights": "Nieograniczone spostrzeżenia (bez limitów częstotliwości)" - }, - "diagnostics": { - "apiStatus": "Status API", - "checking": "Sprawdzanie...", - "configuredProvider": "Skonfigurowany dostawca", - "description": "Sprawdź status połączenia swojego dostawcy AI", - "errorStatus": "Błąd", - "operational": "Działa", - "testDetails": "Szczegóły testu:", - "tip1": "Upewnij się, że Ollama działa (ollama serve)", - "tip2": "Sprawdź, czy model jest zainstalowany (ollama pull llama3)", - "tip3": "Zweryfikuj swój klucz API dla OpenAI", - "tip4": "Sprawdź połączenie sieciowe", - "title": "Diagnostyka", - "troubleshootingTitle": "Wskazówki rozwiązywania problemów:" - }, - "favorites": { - "noFavorites": "Brak ulubionych", - "pinToFavorite": "Dodaj do ulubionych", - "title": "Ulubione", - "toggleSection": "Przełącz sekcję" - }, - "footer": { - "openSource": "Klon Open Source", - "privacy": "Prywatność", - "terms": "Warunki" - }, - "fusion": { - "archiveOriginals": "Archiwizuj oryginały", - "cancel": "Anuluj", - "confirmFusion": "Potwierdź połączenie", - "createBacklinks": "Utwórz linki zwrotne do oryginalnych notatek", - "edit": "Edytuj", - "error": "Nie udało się połączyć notatek", - "finishEditing": "Zakończ edycję", - "generateFusion": "Wygeneruj połączenie", + "titleSuggestions": { + "available": "Sugestie tytułów", + "title": "Sugestie AI", "generating": "Generowanie...", - "keepAllTags": "Zachowaj wszystkie tagi", - "mergeNotes": "Połącz {count} notatek", - "modify": "Zmodyfikuj", - "notesToMerge": "📝 Notatki do połączenia", - "optionalPrompt": "💬 Prompt łączenia (opcjonalny)", - "optionsTitle": "Opcje łączenia", - "previewTitle": "📝 Podgląd połączonej notatki", - "promptPlaceholder": "Opcjonalne instrukcje dla AI (np. 'Zachowaj formalny styl notatki 1')...", - "success": "Notatki połączone pomyślnie!", - "title": "🔗 Inteligentne łączenie", - "useLatestTitle": "Użyj najnowszej notatki jako tytułu" + "selectTitle": "Wybierz tytuł", + "dismiss": "Odrzuć" }, - "general": { - "add": "Dodaj", - "apply": "Zastosuj", - "back": "Wstecz", - "cancel": "Anuluj", - "clean": "Wyczyść", - "clear": "Wyczyść", - "close": "Zamknij", - "confirm": "Potwierdź", - "edit": "Edytuj", - "error": "Wystąpił błąd", - "indexAll": "Indeksuj wszystko", - "loading": "Ładowanie...", - "next": "Dalej", - "operationFailed": "Operacja nieudana", - "operationSuccess": "Operacja udana", - "preview": "Podgląd", - "previous": "Wstecz", - "reset": "Resetuj", - "save": "Zapisz", - "select": "Wybierz", - "submit": "Wyślij", - "testConnection": "Testuj połączenie", - "tryAgain": "Proszę spróbuj ponownie" + "semanticSearch": { + "exactMatch": "Dokładne dopasowanie", + "related": "Powiązane", + "searching": "Wyszukiwanie..." }, - "generalSettings": { - "description": "Ogólne ustawienia aplikacji", - "title": "Ustawienia ogólne" - }, - "labels": { - "addLabel": "Dodaj etykietę", - "allLabels": "Wszystkie etykiety", - "changeColor": "Zmień kolor", - "changeColorTooltip": "Zmień kolor", - "clearAll": "Wyczyść wszystko", - "confirmDelete": "Czy na pewno chcesz usunąć tę etykietę?", - "count": "{count} etykiet", - "noLabels": "Brak etykiet", - "confirmDeleteShort": "Potwierdzić?", - "labelRemoved": "Etykieta \"{label}\" usunięta" + "paragraphRefactor": { + "title": "Ulepszanie tekstu", + "shorten": "Skróć", + "expand": "Rozszerz", + "improve": "Ulepsz", + "formal": "Formalny", + "casual": "Nieformalny" }, "memoryEcho": { + "title": "Zauważyłem coś...", + "description": "Proaktywne połączenia między Twoimi notatkami", + "dailyInsight": "Codzienne spostrzeżenie z Twoich notatek", + "insightReady": "Twoje spostrzeżenie jest gotowe!", + "viewConnection": "Wyświetl połączenie", + "helpful": "Pomocne", + "notHelpful": "Niepomocne", + "dismiss": "Odrzuć na razie", + "thanksFeedback": "Dziękujemy za opinię!", + "thanksFeedbackImproving": "Dziękujemy! Wykorzystamy to do ulepszeń.", + "connections": "Połączenia", + "connection": "połączenie", + "connectionsBadge": "{count} połączenie{plural}", + "match": "{percentage}% dopasowania", + "fused": "Połączono", "clickToView": "Kliknij, aby wyświetlić", + "overlay": { + "title": "Połączone notatki", + "searchPlaceholder": "Szukaj połączeń...", + "sortBy": "Sortuj według:", + "sortSimilarity": "Podobieństwo", + "sortRecent": "Najnowsze", + "sortOldest": "Najstarsze", + "viewAll": "Wyświetl wszystko obok siebie", + "loading": "Ładowanie...", + "noConnections": "Nie znaleziono połączeń", + "error": "Błąd" + }, "comparison": { "title": "💡 Porównanie notatek", "similarityInfo": "Te notatki są połączone przez {similarity}% podobieństwa", @@ -782,12 +490,6 @@ "helpful": "Pomocne", "notHelpful": "Nie pomocne" }, - "connection": "połączenie", - "connections": "Połączenia", - "connectionsBadge": "{count} połączenie{plural}", - "dailyInsight": "Codzienne spostrzeżenie z Twoich notatek", - "description": "Proaktywne połączenia między Twoimi notatkami", - "dismiss": "Odrzuć na razie", "editorSection": { "title": "⚡ Połączone notatki ({count})", "loading": "Ładowanie...", @@ -798,7 +500,6 @@ "mergeAll": "Połącz wszystko", "close": "Zamknij" }, - "fused": "Połączono", "fusion": { "title": "🔗 Inteligentne fuzja", "mergeNotes": "Połącz {count} notatkę/i", @@ -823,468 +524,679 @@ "generateError": "Nie udało się wygenerować fuzji", "noContentReturned": "Brak zawartości fuzji z API", "unknownDate": "Nieznana data" - }, - "helpful": "Pomocne", - "insightReady": "Twoje spostrzeżenie jest gotowe!", - "notHelpful": "Niepomocne", - "overlay": { - "error": "Błąd", - "loading": "Ładowanie...", - "noConnections": "Nie znaleziono połączeń", - "searchPlaceholder": "Szukaj połączeń...", - "sortBy": "Sortuj według:", - "sortOldest": "Najstarsze", - "sortRecent": "Najnowsze", - "sortSimilarity": "Podobieństwo", - "title": "Połączone notatki", - "viewAll": "Wyświetl wszystko obok siebie" - }, - "thanksFeedback": "Dziękujemy za opinię!", - "thanksFeedbackImproving": "Dziękujemy! Wykorzystamy to do ulepszeń.", - "title": "Zauważyłem coś...", - "viewConnection": "Wyświetl połączenie", - "match": "{percentage}% dopasowania" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "udostępniono \"{title}\"", + "untitled": "Bez tytułu", + "notifications": "Powiadomienia", + "declined": "Udostępnienie odrzucone", + "removed": "Notatka usunięta z listy" }, "nav": { - "accountSettings": "Ustawienia konta", - "adminDashboard": "Panel administracyjny", - "aiSettings": "Ustawienia AI", - "archive": "Archiwum", - "buyMeACoffee": "Postaw mi kawę", - "configureAI": "Skonfiguruj swoje funkcje AI, dostawcę i preferencje", - "diagnostics": "Diagnostyka", - "donateOnKofi": "Wspomóż na Ko-fi", - "donationDescription": "Wpłać jednorazową darowiznę lub zostań comiesięcznym wspierającym.", - "donationNote": "Bez opłat platformowych • Natychmiastowe wypłaty • Bezpieczne", - "favorites": "Ulubione", - "generalNotes": "Notatki ogólne", "home": "Strona główna", - "login": "Zaloguj", - "logout": "Wyloguj", - "manageAISettings": "Zarządzaj ustawieniami AI", - "myLibrary": "Moja biblioteka", - "notebooks": "Notatniki", "notes": "Notatki", - "proPlan": "Plan Pro", - "profile": "Profil", - "quickAccess": "Szybki dostęp", - "recent": "Ostatnie", - "reminders": "Przypomnienia", + "notebooks": "Notatniki", + "generalNotes": "Notatki ogólne", + "archive": "Archiwum", "settings": "Ustawienia", - "sponsorDescription": "Zostań comiesięcznym sponsorem i zyskaj uznanie.", - "sponsorOnGithub": "Zostań sponsorem na GitHub", - "support": "Wspomóż Memento ☕", - "supportDescription": "Memento jest w 100% darmowe i open-source. Twoje wsparcie pomaga utrzymać ten stan.", - "supportDevelopment": "Wspomóż rozwój Memento ☕", + "profile": "Profil", + "aiSettings": "Ustawienia AI", + "logout": "Wyloguj", + "login": "Zaloguj", + "adminDashboard": "Panel administracyjny", + "diagnostics": "Diagnostyka", "trash": "Kosz", + "support": "Wspomóż Memento ☕", + "reminders": "Przypomnienia", "userManagement": "Zarządzanie użytkownikami", + "accountSettings": "Ustawienia konta", + "manageAISettings": "Zarządzaj ustawieniami AI", + "configureAI": "Skonfiguruj swoje funkcje AI, dostawcę i preferencje", + "supportDevelopment": "Wspomóż rozwój Memento ☕", + "supportDescription": "Memento jest w 100% darmowe i open-source. Twoje wsparcie pomaga utrzymać ten stan.", + "buyMeACoffee": "Postaw mi kawę", + "donationDescription": "Wpłać jednorazową darowiznę lub zostań comiesięcznym wspierającym.", + "donateOnKofi": "Wspomóż na Ko-fi", + "donationNote": "Bez opłat platformowych • Natychmiastowe wypłaty • Bezpieczne", + "sponsorOnGithub": "Zostań sponsorem na GitHub", + "sponsorDescription": "Zostań comiesięcznym sponsorem i zyskaj uznanie.", "workspace": "Przestrzeń robocza", + "quickAccess": "Szybki dostęp", + "myLibrary": "Moja biblioteka", + "favorites": "Ulubione", + "recent": "Ostatnie", + "proPlan": "Plan Pro", "chat": "Czat AI", "lab": "Laboratorium", "agents": "Agenci" }, - "notebook": { - "cancel": "Anuluj", - "create": "Utwórz notatnik", - "createDescription": "Rozpocznij nową kolekcję, aby efektywnie organizować swoje notatki, pomysły i projekty.", - "createNew": "Utwórz nowy notatnik", - "creating": "Tworzenie...", - "delete": "Usuń notatnik", - "deleteConfirm": "Usuń", - "deleteWarning": "Czy na pewno chcesz usunąć ten notatnik? Notatki zostaną przeniesione do Notatek ogólnych.", - "edit": "Edytuj notatnik", - "editDescription": "Zmień nazwę, ikonę i kolor swojego notatnika.", - "generating": "Generowanie podsumowania...", - "labels": "Etykiety:", - "name": "Nazwa notatnika", - "noLabels": "Brak etykiet", - "selectColor": "Kolor", - "selectIcon": "Ikona", - "summary": "Podsumowanie notatnika", - "summaryDescription": "Wygeneruj podsumowanie wszystkich notatek w tym notatniku z pomocą AI.", - "summaryError": "Błąd generowania podsumowania", - "namePlaceholder": "np. Strategia marketingowa Q4", - "myNotebook": "Mój notatnik", - "saving": "Zapisywanie...", - "pdfTitle": "Podsumowanie — {name}", - "pdfNotesLabel": "Notatki:", - "pdfGeneratedOn": "Wygenerowano dnia:", - "confidence": "pewność", - "savingReminder": "Nie udało się zapisać przypomnienia", - "removingReminder": "Nie udało się usunąć przypomnienia" - }, - "notebookSuggestion": { - "description": "Ta notatka wydaje się należeć do tego notatnika", - "dismiss": "Odrzuć", - "dismissIn": "Odrzuć (zamknie się za {timeLeft}s)", - "generalNotes": "Notatki ogólne", - "move": "Przenieś", - "moveToNotebook": "Przenieś do notatnika", - "title": "Przenieść do {name}?" - }, - "notebooks": { - "allNotebooks": "Wszystkie notatniki", - "create": "Utwórz notatnik", - "createFirst": "Utwórz swój pierwszy notatnik", - "noNotebooks": "Brak notatników" - }, - "notes": { - "add": "Dodaj", - "addCollaborators": "Dodaj współpracowników", - "addImage": "Dodaj obraz", - "addItem": "Dodaj element", - "addLink": "Dodaj link", - "addListItem": "+ Element listy", - "addNote": "Dodaj notatkę", - "adding": "Dodawanie...", - "aiAssistant": "Asystent AI", - "archive": "Archiwizuj", - "backgroundOptions": "Opcje tła", - "changeColor": "Zmień kolor", - "changeSize": "Zmień rozmiar", - "clarifyFailed": "Uściślenie nie powiodło się", - "close": "Zamknij", - "color": "Kolor", - "confirmDelete": "Czy na pewno chcesz usunąć tę notatkę?", - "confirmLeaveShare": "Czy na pewno chcesz opuścić tę udostępnioną notatkę?", - "contentOrMediaRequired": "Proszę wprowadzić treść lub dodać link/obraz", - "copy": "Kopiuj", - "copyFailed": "Nie udało się skopiować notatki", - "copySuccess": "Notatka skopiowana pomyślnie!", - "createFirstNote": "Utwórz swoją pierwszą notatkę", - "date": "Data", - "delete": "Usuń", - "dragToReorder": "Przeciągnij, aby zmienić kolejność", - "duplicate": "Duplikuj", - "edit": "Edytuj notatkę", - "emptyState": "Brak notatek tutaj", - "fileTooLarge": "Plik jest za duży: {fileName}. Maksymalny rozmiar to {maxSize}.", - "improveFailed": "Ulepszenie nie powiodło się", - "inNotebook": "W notatniku", - "invalidDateTime": "Nieprawidłowa data lub czas", - "invalidFileType": "Nieprawidłowy typ pliku: {fileName}. Dozwolone są tylko JPEG, PNG, GIF i WebP.", - "itemOrMediaRequired": "Proszę dodać przynajmniej jeden element lub media", - "large": "Duży", - "leaveShare": "Opuść", - "linkAddFailed": "Nie udało się dodać linku", - "linkAdded": "Link dodany", - "linkMetadataFailed": "Nie udało się pobrać metadanych linku", - "listItem": "Element listy", - "makeCopy": "Utwórz kopię", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown WYŁĄCZONY", - "markdownOn": "Markdown WŁĄCZONY", - "markdownPlaceholder": "Zrób notatkę... (Markdown obsługiwany)", - "medium": "Średni", - "more": "Więcej", - "moreOptions": "Więcej opcji", - "moveFailed": "Przenoszenie nie powiodło się", - "newChecklist": "Nowa lista kontrolna", - "newNote": "Nowa notatka", - "noContent": "Brak treści", - "noNotes": "Brak notatek", - "noNotesFound": "Nie znaleziono notatek", - "noteCreateFailed": "Nie udało się utworzyć notatki", - "noteCreated": "Notatka utworzona pomyślnie", - "others": "Inne", - "pin": "Przypnij", - "pinned": "Przypięte", - "pinnedNotes": "Przypięte notatki", - "placeholder": "Zrób notatkę...", - "preview": "Podgląd", - "readOnly": "Tylko do odczytu", - "recent": "Ostatnie", - "redo": "Ponów", - "redoShortcut": "Ponów (Ctrl+Y)", - "remindMe": "Przypomnij mi", - "reminderDateTimeRequired": "Proszę wprowadzić datę i czas", - "reminderMustBeFuture": "Przypomnienie musi być w przyszłości", - "reminderPastError": "Przypomnienie musi być w przyszłości", - "reminderRemoved": "Przypomnienie usunięte", - "reminderSet": "Przypomnienie ustawione na {datetime}", - "remove": "Usuń", - "saving": "Zapisywanie...", - "setReminder": "Ustaw przypomnienie", - "setReminderButton": "Ustaw przypomnienie", - "share": "Udostępnij", - "shareWithCollaborators": "Udostępnij współpracownikom", - "sharedBy": "Udostępnione przez", - "sharedReadOnly": "Ta notatka jest udostępniona Ci w trybie tylko do odczytu", - "shortenFailed": "Skrócenie nie powiodło się", - "showCollaborators": "Pokaż współpracowników", - "size": "Rozmiar", - "small": "Mały", - "takeNote": "Zrób notatkę...", - "takeNoteMarkdown": "Zrób notatkę... (Markdown obsługiwany)", - "time": "Czas", - "title": "Notatki", - "titlePlaceholder": "Tytuł", - "transformFailed": "Przekształcenie nie powiodło się", - "unarchive": "Przywróć z archiwum", - "undo": "Cofnij", - "undoShortcut": "Cofnij (Ctrl+Z)", - "unpin": "Odepnij", - "unpinned": "Odepnięta", - "untitled": "Bez tytułu", - "uploadFailed": "Nie udało się przesłać {filename}", - "view": "Wyświetl notatkę", - "emptyStateTabs": "Brak notatek. Użyj \"Nowa notatka\" na pasku bocznym, aby dodać (sugestie tytułów AI pojawią się w edytorze).", - "viewCards": "Widok kart", - "viewCardsTooltip": "Siatka kart z przeciąganiem i zmianą kolejności", - "viewTabs": "Widok listy", - "viewTabsTooltip": "Karty na górze, notatka poniżej — przeciągnij karty, aby zmienić kolejność", - "viewModeGroup": "Tryb wyświetlania notatek", - "reorderTabs": "Zmień kolejność kart", - "modified": "Zmodyfikowano", - "created": "Utworzono", - "loading": "Ładowanie...", - "exportPDF": "Eksportuj PDF", - "savedStatus": "Zapisano", - "dirtyStatus": "Zmodyfikowano", - "completedLabel": "Ukończone", - "notes.emptyNotebook": "Pusty notatnik", - "notes.emptyNotebookDesc": "Ten notatnik nie ma notatek. Kliknij + aby utworzyć.", - "notes.noNoteSelected": "Nie wybrano notatki", - "notes.selectOrCreateNote": "Wybierz notatkę z listy lub utwórz nową.", - "commitVersion": "Zapisz wersję", - "versionSaved": "Wersja zapisana", - "deleteVersion": "Usuń tę wersję", - "versionDeleted": "Wersja usunięta", - "deleteVersionConfirm": "Usunąć tę wersję trwale?", - "historyMode": "Tryb historii", - "historyModeManual": "Ręczny (przycisk commit)", - "historyModeAuto": "Automatyczny (inteligentny)", - "historyModeManualDesc": "Ręczne tworzenie snapshotów przyciskiem commit", - "historyModeAutoDesc": "Automatyczne snapshoty z inteligentnym wykrywaniem", - "history": "Historia", - "historyRestored": "Wersja przywrócona", - "historyEnabled": "Historia włączona", - "historyDisabledDesc": "Historia jest wyłączona dla Twojego konta.", - "enableHistory": "Włącz historię", - "historyEmpty": "Brak dostępnych wersji", - "historySelectVersion": "Wybierz wersję, aby zobaczyć podgląd", - "sortBy": "Sortuj według", - "sortDateDesc": "Data (najnowsze)", - "sortDateAsc": "Data (najstarsze)", - "sortTitleAsc": "Tytuł A → Z", - "sortTitleDesc": "Tytuł Z → A" - }, - "pagination": { - "next": "→", - "pageInfo": "Strona {currentPage} / {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "Nieformalny", - "expand": "Rozszerz", - "formal": "Formalny", - "improve": "Ulepsz", - "shorten": "Skróć", - "title": "Ulepszanie tekstu" - }, - "profile": { - "accountSettings": "Ustawienia konta", - "autoDetect": "Automatyczne wykrywanie", - "changePassword": "Zmień hasło", - "changePasswordDescription": "Zaktualizuj swoje hasło. Będziesz potrzebować swojego obecnego hasła.", - "confirmPassword": "Potwierdź hasło", - "currentPassword": "Obecne hasło", - "description": "Zaktualizuj swoje dane osobowe", - "displayName": "Nazwa wyświetlana", - "displaySettings": "Ustawienia wyświetlania", - "displaySettingsDescription": "Dostosuj wygląd i rozmiar czcionki.", - "email": "E-mail", - "fontSize": "Rozmiar czcionki", - "fontSizeDescription": "Dostosuj rozmiar czcionki dla lepszej czytelności. Dotyczy to całego tekstu w interfejsie.", - "fontSizeExtraLarge": "Bardzo duży", - "fontSizeLarge": "Duży", - "fontSizeMedium": "Średni", - "fontSizeSmall": "Mały", - "fontSizeUpdateFailed": "Nie udało się zaktualizować rozmiaru czcionki", - "fontSizeUpdateSuccess": "Rozmiar czcionki zaktualizowany pomyślnie", - "languageDescription": "Ten język będzie używany do funkcji AI, analizy treści i tekstu interfejsu.", - "languagePreferences": "Preferencje językowe", - "languagePreferencesDescription": "Wybierz preferowany język dla funkcji AI i interfejsu.", - "languageUpdateFailed": "Nie udało się zaktualizować języka", - "languageUpdateSuccess": "Język zaktualizowany pomyślnie", - "manageAISettings": "Zarządzaj ustawieniami AI", - "newPassword": "Nowe hasło", - "passwordChangeFailed": "Nie udało się zmienić hasła", - "passwordChangeSuccess": "Hasło zmienione pomyślnie", - "passwordError": "Błąd aktualizacji hasła", - "passwordUpdated": "Hasło zaktualizowane", - "preferredLanguage": "Preferowany język", - "profileError": "Błąd aktualizacji profilu", - "profileUpdated": "Profil zaktualizowany", - "recentNotesUpdateFailed": "Nie udało się zaktualizować ustawienia ostatnich notatek", - "recentNotesUpdateSuccess": "Ustawienie ostatnich notatek zaktualizowane pomyślnie", - "selectFontSize": "Wybierz rozmiar czcionki", - "selectLanguage": "Wybierz język", - "showRecentNotes": "Pokaż sekcję ostatnich notatek", - "showRecentNotesDescription": "Wyświetlaj ostatnie notatki (ostatnie 7 dni) na stronie głównej", - "title": "Profil", - "updateFailed": "Nie udało się zaktualizować profilu", - "updatePassword": "Zaktualizuj hasło", - "updateSuccess": "Profil zaktualizowany" - }, - "reminder": { - "cancel": "Anuluj", - "reminderDate": "Data przypomnienia", - "reminderTime": "Czas przypomnienia", - "removeReminder": "Usuń przypomnienie", - "save": "Ustaw przypomnienie", - "setReminder": "Ustaw przypomnienie", - "title": "Przypomnienie" - }, - "resetPassword": { - "confirmNewPassword": "Potwierdź nowe hasło", - "description": "Wprowadź nowe hasło poniżej.", - "invalidLinkDescription": "Ten link do resetowania hasła jest nieprawidłowy lub wygasł.", - "invalidLinkTitle": "Nieprawidłowy link", - "loading": "Ładowanie...", - "newPassword": "Nowe hasło", - "passwordMismatch": "Hasła nie są zgodne", - "requestNewLink": "Poproś o nowy link", - "resetPassword": "Resetuj hasło", - "resetting": "Resetowanie...", - "success": "Hasło zresetowane pomyślnie. Możesz się teraz zalogować.", - "title": "Resetuj hasło" - }, - "search": { - "exactMatch": "Dokładne dopasowanie", - "noResults": "Nie znaleziono wyników", - "placeholder": "Szukaj", - "related": "Powiązane", - "resultsFound": "Znaleziono {count} notatek", - "searchPlaceholder": "Przeszukaj swoje notatki...", - "searching": "Wyszukiwanie...", - "semanticInProgress": "Wyszukiwanie semantyczne AI...", - "semanticTooltip": "Wyszukiwanie semantyczne AI", - "disabledAdmin": "Wyszukiwanie wyłączone w trybie admin" - }, - "semanticSearch": { - "exactMatch": "Dokładne dopasowanie", - "related": "Powiązane", - "searching": "Wyszukiwanie..." - }, "settings": { - "about": "O aplikacji", + "title": "Ustawienia", + "description": "Zarządzaj swoimi ustawieniami i preferencjami", "account": "Konto", "appearance": "Wygląd", - "cleanTags": "Wyczyść osierocone tagi", - "cleanTagsDescription": "Usuń tagi, które nie są już używane przez żadne notatki", - "description": "Zarządzaj swoimi ustawieniami i preferencjami", + "theme": "Motyw", + "themeLight": "Jasny", + "themeDark": "Ciemny", + "themeSystem": "Systemowy", + "notifications": "Powiadomienia", "language": "Język", - "languageAuto": "Automatyczny", + "selectLanguage": "Wybierz język", + "security": "Bezpieczeństwo", + "about": "O aplikacji", + "version": "Wersja", + "settingsSaved": "Ustawienia zapisane", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "Błąd zapisywania ustawień", "maintenance": "Konserwacja", "maintenanceDescription": "Narzędzia do utrzymania kondycji bazy danych", - "notifications": "Powiadomienia", - "privacy": "Prywatność", - "profile": "Profil", - "searchNoResults": "Nie znaleziono wyników", - "security": "Bezpieczeństwo", - "selectLanguage": "Wybierz język", - "semanticIndexing": "Indeksowanie semantyczne", - "semanticIndexingDescription": "Generuj wektory dla wszystkich notatek, aby umożliwić wyszukiwanie oparte na intencji", - "settingsError": "Błąd zapisywania ustawień", - "settingsSaved": "Ustawienia zapisane", - "theme": "Motyw", - "themeDark": "Ciemny", - "themeLight": "Jasny", - "themeSystem": "Systemowy", - "title": "Ustawienia", - "version": "Wersja", + "cleanTags": "Wyczyść osierocone tagi", + "cleanTagsDescription": "Usuń tagi, które nie są już używane przez żadne notatki", "cleanupDone": "Zsynchronizowano {created} rekordów etykiet, usunięto {deleted} osieroconych", "cleanupNothing": "Brak działań — etykiety już odpowiadają Twoim notatkom", "cleanupWithErrors": "niektóre operacje nie powiodły się", "cleanupError": "Nie udało się wyczyścić etykiet", "indexingComplete": "Indeksowanie zakończone: przetworzono {count} notatek", "indexingError": "Błąd podczas indeksowania", + "semanticIndexing": "Indeksowanie semantyczne", + "semanticIndexingDescription": "Generuj wektory dla wszystkich notatek, aby umożliwić wyszukiwanie oparte na intencji", + "profile": "Profil", + "searchNoResults": "Nie znaleziono wyników", + "languageAuto": "Automatyczny", "emailNotifications": "Powiadomienia e-mail", "emailNotificationsDesc": "Otrzymuj ważne powiadomienia przez e-mail", "desktopNotifications": "Powiadomienia na pulpicie", "desktopNotificationsDesc": "Otrzymuj powiadomienia w przeglądarce", "notificationsDesc": "Zarządzaj swoimi preferencjami powiadomień" }, - "sidebar": { - "archive": "Archiwum", - "editLabels": "Edytuj etykiety", - "labels": "Etykiety", - "notes": "Notatki", - "reminders": "Przypomnienia", - "trash": "Kosz", - "newNoteTabs": "Nowa notatka", - "newNoteTabsHint": "Utwórz notatkę w tym notatniku", - "noLabelsInNotebook": "Brak etykiet w tym notatniku" + "profile": { + "title": "Profil", + "description": "Zaktualizuj swoje dane osobowe", + "displayName": "Nazwa wyświetlana", + "email": "E-mail", + "changePassword": "Zmień hasło", + "changePasswordDescription": "Zaktualizuj swoje hasło. Będziesz potrzebować swojego obecnego hasła.", + "currentPassword": "Obecne hasło", + "newPassword": "Nowe hasło", + "confirmPassword": "Potwierdź hasło", + "updatePassword": "Zaktualizuj hasło", + "passwordChangeSuccess": "Hasło zmienione pomyślnie", + "passwordChangeFailed": "Nie udało się zmienić hasła", + "passwordUpdated": "Hasło zaktualizowane", + "passwordError": "Błąd aktualizacji hasła", + "languagePreferences": "Preferencje językowe", + "languagePreferencesDescription": "Wybierz preferowany język dla funkcji AI i interfejsu.", + "preferredLanguage": "Preferowany język", + "selectLanguage": "Wybierz język", + "languageDescription": "Ten język będzie używany do funkcji AI, analizy treści i tekstu interfejsu.", + "autoDetect": "Automatyczne wykrywanie", + "updateSuccess": "Profil zaktualizowany", + "updateFailed": "Nie udało się zaktualizować profilu", + "languageUpdateSuccess": "Język zaktualizowany pomyślnie", + "languageUpdateFailed": "Nie udało się zaktualizować języka", + "profileUpdated": "Profil zaktualizowany", + "profileError": "Błąd aktualizacji profilu", + "accountSettings": "Ustawienia konta", + "manageAISettings": "Zarządzaj ustawieniami AI", + "displaySettings": "Ustawienia wyświetlania", + "displaySettingsDescription": "Dostosuj wygląd i rozmiar czcionki.", + "fontSize": "Rozmiar czcionki", + "selectFontSize": "Wybierz rozmiar czcionki", + "fontSizeSmall": "Mały", + "fontSizeMedium": "Średni", + "fontSizeLarge": "Duży", + "fontSizeExtraLarge": "Bardzo duży", + "fontSizeDescription": "Dostosuj rozmiar czcionki dla lepszej czytelności. Dotyczy to całego tekstu w interfejsie.", + "fontSizeUpdateSuccess": "Rozmiar czcionki zaktualizowany pomyślnie", + "fontSizeUpdateFailed": "Nie udało się zaktualizować rozmiaru czcionki", + "showRecentNotes": "Pokaż sekcję ostatnich notatek", + "showRecentNotesDescription": "Wyświetlaj ostatnie notatki (ostatnie 7 dni) na stronie głównej", + "recentNotesUpdateSuccess": "Ustawienie ostatnich notatek zaktualizowane pomyślnie", + "recentNotesUpdateFailed": "Nie udało się zaktualizować ustawienia ostatnich notatek" + }, + "aiSettings": { + "title": "Ustawienia AI", + "description": "Skonfiguruj swoje funkcje AI i preferencje", + "features": "Funkcje AI", + "provider": "Dostawca AI", + "providerAuto": "Auto (Zalecane)", + "providerOllama": "Ollama (Lokalny)", + "providerOpenAI": "OpenAI (Chmura)", + "frequency": "Częstotliwość", + "frequencyDaily": "Codziennie", + "frequencyWeekly": "Co tydzień", + "saving": "Zapisywanie...", + "saved": "Ustawienie zaktualizowane", + "error": "Nie udało się zaktualizować ustawienia", + "titleSuggestionsDesc": "Sugeruj tytuły dla notatek bez tytułu po 50+ słowach", + "paragraphRefactorDesc": "Opcje poprawy tekstu wspomagane przez AI", + "frequencyDesc": "Jak często analizować połączenia notatek", + "providerDesc": "Wybierz preferowanego dostawcę AI", + "providerAutoDesc": "Ollama gdy dostępny, OpenAI jako alternatywa", + "providerOllamaDesc": "100% prywatny, działa lokalnie na twoim urządzeniu", + "providerOpenAIDesc": "Najdokładniejszy, wymaga klucza API" + }, + "general": { + "loading": "Ładowanie...", + "save": "Zapisz", + "cancel": "Anuluj", + "add": "Dodaj", + "edit": "Edytuj", + "confirm": "Potwierdź", + "close": "Zamknij", + "back": "Wstecz", + "next": "Dalej", + "previous": "Wstecz", + "submit": "Wyślij", + "reset": "Resetuj", + "apply": "Zastosuj", + "clear": "Wyczyść", + "select": "Wybierz", + "tryAgain": "Proszę spróbuj ponownie", + "error": "Wystąpił błąd", + "operationSuccess": "Operacja udana", + "operationFailed": "Operacja nieudana", + "testConnection": "Testuj połączenie", + "clean": "Wyczyść", + "indexAll": "Indeksuj wszystko", + "preview": "Podgląd" + }, + "colors": { + "default": "Domyślny", + "red": "Czerwony", + "blue": "Niebieski", + "green": "Zielony", + "yellow": "Żółty", + "purple": "Fioletowy", + "pink": "Różowy", + "orange": "Pomarańczowy", + "gray": "Szary" + }, + "reminder": { + "title": "Przypomnienie", + "setReminder": "Ustaw przypomnienie", + "removeReminder": "Usuń przypomnienie", + "reminderDate": "Data przypomnienia", + "reminderTime": "Czas przypomnienia", + "save": "Ustaw przypomnienie", + "cancel": "Anuluj" + }, + "reminders": { + "title": "Przypomnienia", + "empty": "Brak przypomnień", + "emptyDescription": "Dodaj przypomnienie do notatki, aby znaleźć je tutaj.", + "upcoming": "Nadchodzące", + "overdue": "Zaległe", + "done": "Ukończone", + "markDone": "Oznacz jako ukończone", + "markUndone": "Oznacz jako nieukończone", + "todayAt": "Dzisiaj o {time}", + "tomorrowAt": "Jutro o {time}" + }, + "notebook": { + "create": "Utwórz notatnik", + "createNew": "Utwórz nowy notatnik", + "createDescription": "Rozpocznij nową kolekcję, aby efektywnie organizować swoje notatki, pomysły i projekty.", + "name": "Nazwa notatnika", + "namePlaceholder": "np. Strategia marketingowa Q4", + "myNotebook": "Mój notatnik", + "saving": "Zapisywanie...", + "selectIcon": "Ikona", + "selectColor": "Kolor", + "cancel": "Anuluj", + "creating": "Tworzenie...", + "edit": "Edytuj notatnik", + "editDescription": "Zmień nazwę, ikonę i kolor swojego notatnika.", + "delete": "Usuń notatnik", + "deleteWarning": "Czy na pewno chcesz usunąć ten notatnik? Notatki zostaną przeniesione do Notatek ogólnych.", + "deleteConfirm": "Usuń", + "summary": "Podsumowanie notatnika", + "summaryDescription": "Wygeneruj podsumowanie wszystkich notatek w tym notatniku z pomocą AI.", + "generating": "Generowanie podsumowania...", + "summaryError": "Błąd generowania podsumowania", + "labels": "Etykiety:", + "noLabels": "Brak etykiet", + "pdfTitle": "Podsumowanie — {name}", + "pdfNotesLabel": "Notatki:", + "pdfGeneratedOn": "Wygenerowano dnia:", + "confidence": "pewność", + "savingReminder": "Nie udało się zapisać przypomnienia", + "removingReminder": "Nie udało się usunąć przypomnienia", + "generatingDescription": "Please wait..." + }, + "notebookSuggestion": { + "title": "Przenieść do {name}?", + "description": "Ta notatka wydaje się należeć do tego notatnika", + "move": "Przenieś", + "dismiss": "Odrzuć", + "dismissIn": "Odrzuć (zamknie się za {timeLeft}s)", + "moveToNotebook": "Przenieś do notatnika", + "generalNotes": "Notatki ogólne" + }, + "admin": { + "title": "Panel administracyjny", + "userManagement": "Zarządzanie użytkownikami", + "chat": "Czat AI", + "lab": "Laboratorium", + "agents": "Agenci", + "workspace": "Przestrzeń robocza", + "settings": "Ustawienia administratora", + "security": { + "title": "Ustawienia bezpieczeństwa", + "description": "Zarządzaj kontrolą dostępu i zasadami rejestracji.", + "allowPublicRegistration": "Zezwól na publiczną rejestrację", + "allowPublicRegistrationDescription": "Jeśli wyłączone, nowi użytkownicy mogą być dodawani tylko przez Administratora na stronie Zarządzania użytkownikami.", + "updateSuccess": "Ustawienia bezpieczeństwa zaktualizowane", + "updateFailed": "Nie udało się zaktualizować ustawień bezpieczeństwa" + }, + "ai": { + "title": "Konfiguracja AI", + "description": "Skonfiguruj dostawców AI do automatycznego tagowania i wyszukiwania semantycznego. Używaj różnych dostawców dla optymalnej wydajności.", + "tagsGenerationProvider": "Dostawca generowania tagów", + "tagsGenerationDescription": "Dostawca AI do automatycznych sugestii tagów. Zalecane: Ollama (darmowy, lokalny).", + "embeddingsProvider": "Dostawca embeddingów", + "embeddingsDescription": "Dostawca AI dla embeddingów wyszukiwania semantycznego. Zalecane: OpenAI (najlepsza jakość).", + "chatProvider": "Dostawca czatu", + "chatDescription": "Dostawca AI dla asystenta czatu. Przechodzi do dostawcy tagów, jeśli nie jest skonfigurowany.", + "provider": "Dostawca", + "baseUrl": "Adres bazowy URL", + "model": "Model", + "apiKey": "Klucz API", + "selectOllamaModel": "Wybierz model Ollama zainstalowany w systemie", + "openAIKeyDescription": "Twój klucz API OpenAI z platform.openai.com", + "modelRecommendations": "gpt-4o-mini = Najlepszy stosunek jakości do ceny • gpt-4o = Najlepsza jakość", + "commonModelsDescription": "Popularne modele dla API kompatybilnych z OpenAI", + "selectEmbeddingModel": "Wybierz model embeddingowy zainstalowany w systemie", + "commonEmbeddingModels": "Popularne modele embeddingowe dla API kompatybilnych z OpenAI", + "saving": "Zapisywanie...", + "saveSettings": "Zapisz ustawienia AI", + "openTestPanel": "Otwórz panel testowania AI", + "updateSuccess": "Ustawienia AI zaktualizowane pomyślnie", + "updateFailed": "Nie udało się zaktualizować ustawień AI", + "providerTagsRequired": "AI_PROVIDER_TAGS jest wymagany", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING jest wymagany", + "providerOllamaOption": "🦙 Ollama (lokalny i darmowy)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 Niestandardowy (kompatybilny z OpenAI)", + "bestValue": "Najlepszy stosunek jakości do ceny", + "bestQuality": "Najwyższa jakość", + "saved": "(Zapisano)", + "fetchModelsFailed": "Nie udało się pobrać modeli", + "refreshModels": "Odśwież modele", + "configured": "Skonfigurowany", + "fetchingModels": "Pobieranie modeli...", + "clickToLoadModels": "Kliknij ↺ aby załadować modele", + "searchModel": "Szukaj modelu...", + "noModels": "Brak modeli. Kliknij ↺", + "modelsAvailable": "{count} model(i) dostępny(e)", + "enterUrlToLoad": "Podaj URL i kliknij ↺", + "currentProvider": "(Bieżący: {provider})", + "pageTitle": "Zarządzanie AI", + "pageDescription": "Monitoruj i konfiguruj funkcje AI", + "configure": "Konfiguruj", + "features": "Funkcje AI", + "providerStatus": "Status dostawców AI", + "recentRequests": "Ostatnie żądania AI", + "comingSoon": "Wkrótce dostępne", + "activeFeatures": "Aktywne funkcje", + "successRate": "Wskaźnik sukcesu", + "avgResponseTime": "Średni czas odpowiedzi", + "configuredProviders": "Skonfigurowani dostawcy", + "settingUpdated": "Ustawienie zaktualizowane", + "updateFailedShort": "Aktualizacja nie powiodła się", + "titleSuggestions": "Sugestie tytułów", + "titleSuggestionsDesc": "Sugeruje tytuły dla notatek po 50+ słowach", + "aiAssistant": "Asystent AI", + "aiAssistantDesc": "Włącz czat AI i narzędzia poprawy tekstu", + "memoryEchoFeature": "Zauważyłem coś...", + "memoryEchoFeatureDesc": "Codzienna analiza powiązań między notatkami", + "languageDetection": "Wykrywanie języka", + "languageDetectionDesc": "Automatycznie wykrywa język każdej notatki", + "autoLabeling": "Automatyczne etykietowanie", + "autoLabelingDesc": "Automatycznie sugeruje i stosuje etykiety" + }, + "resend": { + "title": "Resend (Zalecane)", + "description": "Wysyłaj e-maile przez API Resend. Ma priorytet nad SMTP, jeśli jest skonfigurowane.", + "apiKey": "Klucz API Resend", + "apiKeyHint": "Pobierz klucz API z resend.com. Używany do powiadomień agentów i resetowania haseł.", + "saveSettings": "Zapisz ustawienia Resend", + "updateSuccess": "Ustawienia Resend zaktualizowane", + "updateFailed": "Nie udało się zaktualizować ustawień Resend", + "configured": "Resend jest skonfigurowany i aktywny" + }, + "email": { + "title": "Konfiguracja e-mail", + "description": "Skonfiguruj wysyłkę e-maili dla powiadomień agentów i resetowania haseł.", + "provider": "Dostawca e-mail", + "saveSettings": "Zapisz ustawienia e-mail", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "smtp": { + "title": "Konfiguracja SMTP", + "description": "Skonfiguruj serwer poczty e-mail do resetowania haseł.", + "host": "Host", + "port": "Port", + "username": "Nazwa użytkownika", + "password": "Hasło", + "fromEmail": "E-mail nadawcy", + "forceSSL": "Wymuś SSL/TLS (zazwyczaj dla portu 465)", + "ignoreCertErrors": "Ignoruj błędy certyfikatu (tylko self-hosted/dev)", + "saveSettings": "Zapisz ustawienia SMTP", + "sending": "Wysyłanie...", + "testEmail": "E-mail testowy", + "updateSuccess": "Ustawienia SMTP zaktualizowane", + "updateFailed": "Nie udało się zaktualizować ustawień SMTP", + "testSuccess": "E-mail testowy wysłany pomyślnie!", + "testFailed": "Nie powiodło się: {error}" + }, + "users": { + "createUser": "Utwórz użytkownika", + "addUser": "Dodaj użytkownika", + "createUserDescription": "Dodaj nowego użytkownika do systemu.", + "name": "Imię", + "email": "E-mail", + "password": "Hasło", + "role": "Rola", + "createSuccess": "Użytkownik utworzony pomyślnie", + "createFailed": "Nie udało się utworzyć użytkownika", + "deleteSuccess": "Użytkownik usunięty", + "deleteFailed": "Nie udało się usunąć", + "roleUpdateSuccess": "Rola użytkownika zmieniona na {role}", + "roleUpdateFailed": "Nie udało się zaktualizować roli", + "demote": "Zdegraduj", + "promote": "Awansuj", + "confirmDelete": "Czy na pewno chcesz usunąć tego użytkownika?", + "table": { + "name": "Imię", + "email": "E-mail", + "role": "Rola", + "createdAt": "Utworzono", + "actions": "Akcje" + }, + "roles": { + "user": "Użytkownik", + "admin": "Administrator" + }, + "title": "Użytkownicy", + "description": "Zarządzaj użytkownikami i uprawnieniami" + }, + "aiTest": { + "title": "Testowanie dostawców AI", + "description": "Przetestuj swoich dostawców AI pod kątem generowania tagów i embeddingów wyszukiwania semantycznego", + "tagsTestTitle": "Test generowania tagów", + "tagsTestDescription": "Przetestuj dostawcę AI odpowiedzialnego za automatyczne sugestie tagów", + "embeddingsTestTitle": "Test embeddingów", + "embeddingsTestDescription": "Przetestuj dostawcę AI odpowiedzialnego za embeddingi wyszukiwania semantycznego", + "howItWorksTitle": "Jak działają testy", + "tagsGenerationTest": "🏷️ Test generowania tagów:", + "tagsStep1": "Wysyła przykładową notatkę do dostawcy AI", + "tagsStep2": "Żąda 3-5 odpowiednich tagów na podstawie treści", + "tagsStep3": "Wyświetla wygenerowane tagi z wynikami pewności", + "tagsStep4": "Mierzy czas odpowiedzi", + "embeddingsTestLabel": "🔍 Test embeddingów:", + "embeddingsStep1": "Wysyła przykładowy tekst do dostawcy embeddingów", + "embeddingsStep2": "Generuje reprezentację wektorową (listę liczb)", + "embeddingsStep3": "Wyświetla wymiary embeddingów i przykładowe wartości", + "embeddingsStep4": "Weryfikuje, czy wektor jest prawidłowy i poprawnie sformatowany", + "tipContent": "Możesz używać różnych dostawców do tagów i embeddingów! Na przykład użyj Ollama (darmowy) do tagów i OpenAI (najlepsza jakość) do embeddingów, aby zoptymalizować koszty i wydajność.", + "provider": "Dostawca:", + "model": "Model:", + "testing": "Testowanie...", + "runTest": "Uruchom test", + "testPassed": "Test udany", + "testFailed": "Test nieudany", + "testSuccessToast": "Test {type} udany!", + "testFailedToast": "Test {type} nieudany", + "testingType": "Testowanie {type}...", + "technicalDetails": "Szczegóły techniczne", + "responseTime": "Czas odpowiedzi: {time}ms", + "generatedTags": "Wygenerowane tagi:", + "embeddingDimensions": "Wymiary embeddingów:", + "vectorDimensions": "wymiary wektora", + "first5Values": "Pierwsze 5 wartości:", + "error": "Błąd:", + "testError": "Błąd testu: {error}", + "tipTitle": "Wskazówka:", + "tipDescription": "Użyj panelu testowania AI, aby zdiagnozować problemy z konfiguracją przed testowaniem." + }, + "sidebar": { + "dashboard": "Panel główny", + "users": "Użytkownicy", + "aiManagement": "Zarządzanie AI", + "chat": "Czat AI", + "lab": "Laboratorium (pomysły)", + "agents": "Agenci", + "settings": "Ustawienia" + }, + "metrics": { + "vsLastPeriod": "względem poprzedniego okresu" + }, + "tools": { + "title": "Narzędzia Agenta", + "description": "Skonfiguruj zewnętrzne narzędzia do użytku przez agentów: wyszukiwanie w sieci, pobieranie stron i dostęp do API.", + "searchProvider": "Dostawca Wyszukiwania w Sieci", + "searxng": "SearXNG (Self-hosted)", + "brave": "Brave Search API", + "both": "Oba (SearXNG główny, Brave zapasowy)", + "searxngUrl": "URL SearXNG", + "braveKey": "Klucz Brave Search API", + "jinaKey": "Klucz Jina Reader API", + "jinaKeyOptional": "Opcjonalnie — działa bez klucza, ale z limitami zapytań", + "jinaKeyDescription": "Używany do pobierania stron. Działa bez klucza, ale z limitami zapytań.", + "saveSettings": "Zapisz Ustawienia Narzędzi", + "updateSuccess": "Ustawienia narzędzi zaktualizowane pomyślnie", + "updateFailed": "Nie udało się zaktualizować ustawień narzędzi", + "testing": "Testowanie...", + "testSearch": "Testuj wyszukiwanie" + }, + "settingsDescription": "Konfiguruj ustawienia aplikacji", + "dashboard": { + "title": "Panel", + "description": "Przegląd metryk aplikacji", + "recentActivity": "Ostatnia aktywność", + "recentActivityPlaceholder": "Ostatnia aktywność zostanie wyświetlona tutaj." + }, + "error": { + "title": "Błąd w panelu administracyjnym", + "description": "Renderowanie strony nie powiodło się. Możesz spróbować ponownie.", + "retry": "Ponów" + } + }, + "about": { + "title": "O nas", + "description": "Informacje o aplikacji", + "appName": "Memento", + "appDescription": "Potężna aplikacja do notatek z funkcjami AI", + "version": "Wersja", + "buildDate": "Data kompilacji", + "platform": "Platforma", + "platformWeb": "Web", + "features": { + "title": "Funkcje", + "description": "Możliwości wspomagane przez AI", + "titleSuggestions": "Sugestie tytułów wspomagane przez AI", + "semanticSearch": "Wyszukiwanie semantyczne z embeddingami", + "paragraphReformulation": "Reformulowanie akapitów", + "memoryEcho": "Codzienne spostrzeżenia Memory Echo", + "notebookOrganization": "Organizacja notatników", + "dragDrop": "Zarządzanie notatkami metodą przeciągnij i upuść", + "labelSystem": "System etykiet", + "multipleProviders": "Wielu dostawców AI (OpenAI, Ollama)" + }, + "technology": { + "title": "Stos technologiczny", + "description": "Zbudowane z nowoczesnych technologii", + "frontend": "Frontend", + "backend": "Backend", + "database": "Baza danych", + "authentication": "Uwierzytelnianie", + "ai": "AI", + "ui": "UI", + "testing": "Testowanie" + }, + "support": { + "title": "Wsparcie", + "description": "Uzyskaj pomoc i przekaż opinie", + "documentation": "Dokumentacja", + "reportIssues": "Zgłoś problemy", + "feedback": "Opinie" + } }, "support": { - "aiApiCosts": "Koszty API AI:", - "buyMeACoffee": "Postaw mi kawę", - "contributeCode": "Wnieś kod", - "description": "Memento jest w 100% darmowe i open-source. Twoje wsparcie pomaga utrzymać ten stan.", - "directImpact": "Bezpośredni wpływ", - "domainSSL": "Domena i SSL:", - "donateOnKofi": "Wspomóż na Ko-fi", - "donationDescription": "Wpłać jednorazową darowiznę lub zostań comiesięcznym wspierającym.", - "githubDescription": "Cykliczne wsparcie • Publiczne uznanie • Skupione na deweloperach", - "hostingServers": "Hosting i serwery:", - "howSupportHelps": "Jak Twoje wsparcie pomaga", - "kofiDescription": "Bez opłat platformowych • Natychmiastowe wypłaty • Bezpieczne", - "otherWaysTitle": "Inne sposoby wsparcia", - "reportBug": "Zgłoś błąd", - "shareTwitter": "Udostępnij na Twitterze", - "sponsorDescription": "Zostań comiesięcznym sponsorem i zyskaj uznanie.", - "sponsorOnGithub": "Zostań sponsorem na GitHub", - "sponsorPerks": "Korzyści sponsora", - "starGithub": "Gwiazdka na GitHub", "title": "Wspomóż rozwój Memento", - "totalExpenses": "Całkowite wydatki:", + "description": "Memento jest w 100% darmowe i open-source. Twoje wsparcie pomaga utrzymać ten stan.", + "buyMeACoffee": "Postaw mi kawę", + "donationDescription": "Wpłać jednorazową darowiznę lub zostań comiesięcznym wspierającym.", + "donateOnKofi": "Wspomóż na Ko-fi", + "kofiDescription": "Bez opłat platformowych • Natychmiastowe wypłaty • Bezpieczne", + "sponsorOnGithub": "Zostań sponsorem na GitHub", + "sponsorDescription": "Zostań comiesięcznym sponsorem i zyskaj uznanie.", + "githubDescription": "Cykliczne wsparcie • Publiczne uznanie • Skupione na deweloperach", + "howSupportHelps": "Jak Twoje wsparcie pomaga", + "directImpact": "Bezpośredni wpływ", + "sponsorPerks": "Korzyści sponsora", "transparency": "Przejrzystość", - "transparencyDescription": "Wierzę w pełną przejrzystość. Oto jak wykorzystywane są darowizny:" + "transparencyDescription": "Wierzę w pełną przejrzystość. Oto jak wykorzystywane są darowizny:", + "hostingServers": "Hosting i serwery:", + "domainSSL": "Domena i SSL:", + "aiApiCosts": "Koszty API AI:", + "totalExpenses": "Całkowite wydatki:", + "otherWaysTitle": "Inne sposoby wsparcia", + "starGithub": "Gwiazdka na GitHub", + "reportBug": "Zgłoś błąd", + "contributeCode": "Wnieś kod", + "shareTwitter": "Udostępnij na Twitterze" + }, + "demoMode": { + "title": "Tryb demonstracyjny", + "activated": "Tryb demonstracyjny aktywowany! Memory Echo będzie teraz działać natychmiastowo.", + "deactivated": "Tryb demonstracyjny wyłączony. Przywrócono normalne parametry.", + "toggleFailed": "Przełączenie trybu demonstracyjnego nie powiodło się", + "description": "Przyspiesza Memory Echo do testowania. Połączenia pojawiają się natychmiast.", + "parametersActive": "Parametry demonstracyjne aktywne:", + "similarityThreshold": "Próg podobieństwa 50% (normalnie 75%)", + "delayBetweenNotes": "Opóźnienie 0 dni między notatkami (normalnie 7 dni)", + "unlimitedInsights": "Nieograniczone spostrzeżenia (bez limitów częstotliwości)", + "createNotesTip": "Utwórz 2+ podobne notatki i zobacz Memory Echo w akcji!" + }, + "resetPassword": { + "title": "Resetuj hasło", + "description": "Wprowadź nowe hasło poniżej.", + "invalidLinkTitle": "Nieprawidłowy link", + "invalidLinkDescription": "Ten link do resetowania hasła jest nieprawidłowy lub wygasł.", + "requestNewLink": "Poproś o nowy link", + "newPassword": "Nowe hasło", + "confirmNewPassword": "Potwierdź nowe hasło", + "resetting": "Resetowanie...", + "resetPassword": "Resetuj hasło", + "passwordMismatch": "Hasła nie są zgodne", + "success": "Hasło zresetowane pomyślnie. Możesz się teraz zalogować.", + "loading": "Ładowanie..." + }, + "dataManagement": { + "title": "Zarządzanie danymi", + "toolsDescription": "Narzędzia do utrzymania kondycji bazy danych", + "exporting": "Eksportowanie...", + "importing": "Importowanie...", + "deleting": "Usuwanie...", + "dangerZone": "Strefa zagrożenia", + "dangerZoneDescription": "Te akcje są nieodwracalne", + "indexingComplete": "Indeksowanie zakończone", + "indexingError": "Błąd indeksowania", + "cleanupComplete": "Czyszczenie zakończone", + "cleanupError": "Błąd czyszczenia", + "export": { + "title": "Eksportuj wszystkie notatki", + "description": "Pobierz wszystkie swoje notatki jako plik JSON. Zawiera całą treść, etykiety i metadane.", + "button": "Eksportuj notatki", + "success": "Notatki wyeksportowane pomyślnie", + "failed": "Nie udało się wyeksportować notatek" + }, + "import": { + "title": "Importuj notatki", + "description": "Prześlij plik JSON, aby zaimportować notatki. Zostaną dodane do istniejących notatek, nie zastąpią ich.", + "button": "Importuj notatki", + "success": "Zaimportowano {count} notatek", + "failed": "Nie udało się zaimportować notatek" + }, + "delete": { + "title": "Usuń wszystkie notatki", + "description": "Trwale usuń wszystkie swoje notatki. Tej operacji nie można cofnąć.", + "button": "Usuń wszystkie notatki", + "confirm": "Czy na pewno? To trwale usunie wszystkie Twoje notatki.", + "success": "Wszystkie notatki usunięte", + "failed": "Nie udało się usunąć notatek" + }, + "indexing": { + "title": "Przebuduj indeks wyszukiwania", + "description": "Regeneruj embeddingi dla wszystkich notatek, aby poprawić wyszukiwanie semantyczne.", + "button": "Przebuduj indeks", + "success": "Indeksowanie zakończone: przetworzono {count} notatek", + "failed": "Błąd podczas indeksowania" + }, + "cleanup": { + "title": "Czyszczenie osieroconych danych", + "description": "Usuń etykiety i połączenia odwołujące się do usuniętych notatek.", + "button": "Wyczyść", + "failed": "Błąd podczas czyszczenia" + } + }, + "appearance": { + "title": "Wygląd", + "description": "Dostosuj wygląd aplikacji", + "notesViewDescription": "Wybierz sposób wyświetlania notatek na stronie głównej i w notatnikach.", + "notesViewLabel": "Układ notatek", + "notesViewTabs": "Karty (styl OneNote)", + "notesViewMasonry": "Karty (siatka)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "Ustawienia ogólne", + "description": "Ogólne ustawienia aplikacji" + }, + "toast": { + "saved": "Ustawienie zapisane", + "saveFailed": "Zapisanie ustawienia nie powiodło się", + "operationSuccess": "Operacja udana", + "operationFailed": "Operacja nieudana", + "openingConnection": "Otwieranie połączenia...", + "openConnectionFailed": "Otwarcie połączenia nie powiodło się", + "thanksFeedback": "Dziękujemy za opinię!", + "thanksFeedbackImproving": "Dziękujemy! Wykorzystamy to do ulepszeń.", + "feedbackFailed": "Przesłanie opinii nie powiodło się", + "notesFusionSuccess": "Notatki połączone pomyślnie!" }, "testPages": { "titleSuggestions": { - "analyzing": "Analizowanie...", - "contentLabel": "Treść (wymagane 50+ słów):", - "error": "Błąd:", - "idle": "Bezczynny", - "noSuggestions": "Brak sugestii. Wpisz 50+ słów i poczekaj 2 sekundy.", - "placeholder": "Wpisz tutaj co najmniej 50 słów...", - "status": "Status:", - "suggestions": "Sugestie ({count}):", "title": "Testuj sugestie tytułów", - "wordCount": "Liczba słów:" + "contentLabel": "Treść (wymagane 50+ słów):", + "placeholder": "Wpisz tutaj co najmniej 50 słów...", + "wordCount": "Liczba słów:", + "status": "Status:", + "analyzing": "Analizowanie...", + "idle": "Bezczynny", + "error": "Błąd:", + "suggestions": "Sugestie ({count}):", + "noSuggestions": "Brak sugestii. Wpisz 50+ słów i poczekaj 2 sekundy." } }, - "time": { - "daysAgo": "{count} dni temu", - "hoursAgo": "{count} godzin temu", - "justNow": "Przed chwilą", - "minutesAgo": "{count} minut temu", - "today": "Dzisiaj", - "tomorrow": "Jutro", - "yesterday": "Wczoraj" - }, - "titleSuggestions": { - "available": "Sugestie tytułów", - "dismiss": "Odrzuć", - "generating": "Generowanie...", - "selectTitle": "Wybierz tytuł", - "title": "Sugestie AI" - }, - "toast": { - "feedbackFailed": "Przesłanie opinii nie powiodło się", - "notesFusionSuccess": "Notatki połączone pomyślnie!", - "openConnectionFailed": "Otwarcie połączenia nie powiodło się", - "openingConnection": "Otwieranie połączenia...", - "operationFailed": "Operacja nieudana", - "operationSuccess": "Operacja udana", - "saveFailed": "Zapisanie ustawienia nie powiodło się", - "saved": "Ustawienie zapisane", - "thanksFeedback": "Dziękujemy za opinię!", - "thanksFeedbackImproving": "Dziękujemy! Wykorzystamy to do ulepszeń." - }, "trash": { "title": "Kosz", "empty": "Kosz jest pusty", @@ -1300,11 +1212,83 @@ "permanentDelete": "Usuń trwale", "permanentDeleteConfirm": "Ta notatka zostanie trwale usunięta. Ta operacja jest nieodwracalna." }, + "footer": { + "privacy": "Prywatność", + "terms": "Warunki", + "openSource": "Klon Open Source" + }, + "connection": { + "similarityInfo": "Te notatki są połączone przez {similarity}% podobieństwa", + "clickToView": "Kliknij, aby wyświetlić notatkę", + "isHelpful": "Czy to połączenie jest pomocne?", + "helpful": "Pomocne", + "notHelpful": "Niepomocne", + "memoryEchoDiscovery": "Odkrycie Memory Echo" + }, + "diagnostics": { + "title": "Diagnostyka", + "description": "Sprawdź status połączenia swojego dostawcy AI", + "configuredProvider": "Skonfigurowany dostawca", + "apiStatus": "Status API", + "operational": "Działa", + "errorStatus": "Błąd", + "checking": "Sprawdzanie...", + "testDetails": "Szczegóły testu:", + "troubleshootingTitle": "Wskazówki rozwiązywania problemów:", + "tip1": "Upewnij się, że Ollama działa (ollama serve)", + "tip2": "Sprawdź, czy model jest zainstalowany (ollama pull llama3)", + "tip3": "Zweryfikuj swój klucz API dla OpenAI", + "tip4": "Sprawdź połączenie sieciowe" + }, + "batch": { + "organizeWithAI": "Organizuj z AI", + "organize": "Organizuj" + }, + "common": { + "unknown": "Nieznany", + "notAvailable": "Niedostępne", + "loading": "Ładowanie...", + "error": "Błąd", + "success": "Sukces", + "confirm": "Potwierdź", + "cancel": "Anuluj", + "close": "Zamknij", + "save": "Zapisz", + "delete": "Usuń", + "edit": "Edytuj", + "add": "Dodaj", + "remove": "Usuń", + "search": "Szukaj", + "noResults": "Brak wyników", + "required": "Wymagane", + "optional": "Opcjonalne" + }, + "time": { + "justNow": "Przed chwilą", + "minutesAgo": "{count} minut temu", + "hoursAgo": "{count} godzin temu", + "daysAgo": "{count} dni temu", + "yesterday": "Wczoraj", + "today": "Dzisiaj", + "tomorrow": "Jutro" + }, + "favorites": { + "title": "Ulubione", + "toggleSection": "Przełącz sekcję", + "noFavorites": "Brak ulubionych", + "pinToFavorite": "Dodaj do ulubionych" + }, + "notebooks": { + "create": "Utwórz notatnik", + "allNotebooks": "Wszystkie notatniki", + "noNotebooks": "Brak notatników", + "createFirst": "Utwórz swój pierwszy notatnik" + }, "ui": { "close": "Zamknij", - "collapse": "Zwiń", + "open": "Otwórz", "expand": "Rozwiń", - "open": "Otwórz" + "collapse": "Zwiń" }, "mcpSettings": { "title": "Ustawienia MCP", @@ -1371,6 +1355,10 @@ "subtitle": "Zautomatyzuj zadania monitorowania i badań", "newAgent": "Nowy agent", "myAgents": "Moi agenci", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "Brak agentów", "noAgentsDescription": "Utwórz swojego pierwszego agenta lub zainstaluj poniższy szablon, aby zautomatyzować zadania monitorowania.", "types": { @@ -1413,7 +1401,9 @@ "researchTopic": "Temat badania", "researchTopicPlaceholder": "np. Najnowsze osiągnięcia w AI", "notifyEmail": "Powiadomienie e-mail", - "notifyEmailHint": "Otrzymuj e-mail z wynikami agenta po każdym uruchomieniu" + "notifyEmailHint": "Otrzymuj e-mail z wynikami agenta po każdym uruchomieniu", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "Ręcznie", @@ -1422,6 +1412,22 @@ "weekly": "Co tydzień", "monthly": "Co miesiąc" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "Udane", "failure": "Nieudane", @@ -1450,7 +1456,9 @@ "toggleError": "Błąd przełączania agenta", "installSuccess": "\"{name}\" zainstalowany", "installError": "Błąd podczas instalacji", - "saveError": "Błąd zapisywania" + "saveError": "Błąd zapisywania", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "Szablony", @@ -1563,7 +1571,8 @@ "welcome": "Jestem tutaj, aby pomóc Ci podsumować notatki, generować nowe pomysły lub omawiać Twoje notatniki.", "searching": "Wyszukiwanie...", "noNotesFoundForContext": "Nie znaleziono odpowiednich notatek dla tego pytania. Odpowiedz używając ogólnej wiedzy.", - "webSearch": "Wyszukiwanie w sieci" + "webSearch": "Wyszukiwanie w sieci", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "Laboratorium", @@ -1580,30 +1589,8 @@ "createFailed": "Utworzenie nie powiodło się", "deleteSpace": "Usuń przestrzeń", "deleted": "Przestrzeń usunięta", - "deleteError": "Błąd usuwania" - }, - "notification": { - "shared": "udostępniono \"{title}\"", - "untitled": "Bez tytułu", - "notifications": "Powiadomienia", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "Udostępnienie odrzucone", - "noNotifications": "No new notifications", - "removed": "Notatka usunięta z listy" - }, - "reminders": { - "title": "Przypomnienia", - "empty": "Brak przypomnień", - "emptyDescription": "Dodaj przypomnienie do notatki, aby znaleźć je tutaj.", - "upcoming": "Nadchodzące", - "overdue": "Zaległe", - "done": "Ukończone", - "markDone": "Oznacz jako ukończone", - "markUndone": "Oznacz jako nieukończone", - "todayAt": "Dzisiaj o {time}", - "tomorrowAt": "Jutro o {time}" + "deleteError": "Błąd usuwania", + "rename": "Rename" }, "lab": { "initializing": "Inicjalizacja przestrzeni", diff --git a/memento-note/locales/pt.json b/memento-note/locales/pt.json index 9b52d9f..b070f9c 100644 --- a/memento-note/locales/pt.json +++ b/memento-note/locales/pt.json @@ -1,350 +1,366 @@ { - "about": { - "appDescription": "Um poderoso aplicativo de notas com recursos baseados em IA", - "appName": "Memento", - "buildDate": "Data de compilação", - "description": "Informações sobre o aplicativo", - "features": { - "description": "Capacidades baseadas em IA", - "dragDrop": "Gerenciamento de notas com arrastar e soltar", - "labelSystem": "Sistema de etiquetas", - "memoryEcho": "Insights diários do Memory Echo", - "multipleProviders": "Múltiplos provedores de IA (OpenAI, Ollama)", - "notebookOrganization": "Organização por cadernos", - "paragraphReformulation": "Reformulação de parágrafos", - "semanticSearch": "Pesquisa semântica com embeddings", - "title": "Recursos", - "titleSuggestions": "Sugestões de título com IA" - }, - "platform": "Plataforma", - "platformWeb": "Web", - "support": { - "description": "Obtenha ajuda e feedback", - "documentation": "Documentação", - "feedback": "Feedback", - "reportIssues": "Reportar problemas", - "title": "Suporte" - }, - "technology": { - "ai": "IA", - "authentication": "Autenticação", - "backend": "Backend", - "database": "Banco de dados", - "description": "Construído com tecnologias modernas", - "frontend": "Frontend", - "testing": "Testes", - "title": "Stack de tecnologia", - "ui": "UI" - }, - "title": "Sobre", - "version": "Versão" + "auth": { + "signIn": "Entrar", + "signUp": "Cadastrar-se", + "email": "E-mail", + "password": "Senha", + "name": "Nome", + "emailPlaceholder": "Digite seu endereço de e-mail", + "passwordPlaceholder": "Digite sua senha", + "namePlaceholder": "Digite seu nome", + "passwordMinChars": "Digite a senha (mínimo 6 caracteres)", + "resetPassword": "Redefinir senha", + "resetPasswordInstructions": "Digite seu e-mail para redefinir sua senha", + "forgotPassword": "Esqueceu sua senha?", + "noAccount": "Não tem uma conta?", + "hasAccount": "Já tem uma conta?", + "signInToAccount": "Entre na sua conta", + "createAccount": "Crie sua conta", + "rememberMe": "Lembrar-me", + "orContinueWith": "Ou continuar com", + "checkYourEmail": "Verifique seu e-mail", + "resetEmailSent": "Enviamos um link de redefinição de senha para seu endereço de e-mail se ele existir em nosso sistema.", + "returnToLogin": "Voltar ao login", + "forgotPasswordTitle": "Esqueci minha senha", + "forgotPasswordDescription": "Digite seu endereço de e-mail e enviaremos um link para redefinir sua senha.", + "sending": "Enviando...", + "sendResetLink": "Enviar link de redefinição", + "backToLogin": "Voltar ao login", + "signOut": "Sair", + "confirmPassword": "Confirmar senha", + "confirmPasswordPlaceholder": "Confirme sua senha" }, - "admin": { - "ai": { - "apiKey": "API Key", - "baseUrl": "Base URL", - "commonEmbeddingModels": "Modelos de embedding comuns para APIs compatíveis com OpenAI", - "commonModelsDescription": "Modelos comuns para APIs compatíveis com OpenAI", - "description": "Configure provedores de IA para etiquetagem automática e pesquisa semântica. Use provedores diferentes para melhor desempenho.", - "embeddingsDescription": "Provedor de IA para embeddings de pesquisa semântica. Recomendado: OpenAI (melhor qualidade).", - "embeddingsProvider": "Provedor de Embeddings", - "model": "Modelo", - "modelRecommendations": "gpt-4o-mini = Melhor custo-benefício • gpt-4o = Melhor qualidade", - "openAIKeyDescription": "Sua chave de API OpenAI do platform.openai.com", - "openTestPanel": "Abrir Painel de Testes de IA", - "provider": "Provedor", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING é obrigatório", - "providerTagsRequired": "AI_PROVIDER_TAGS é obrigatório", - "saveSettings": "Salvar Configurações de IA", - "saving": "Salvando...", - "selectEmbeddingModel": "Selecione um modelo de embedding instalado no seu sistema", - "selectOllamaModel": "Selecione um modelo Ollama instalado no seu sistema", - "tagsGenerationDescription": "Provedor de IA para sugestões automáticas de etiquetas. Recomendado: Ollama (gratuito, local).", - "tagsGenerationProvider": "Provedor de Geração de Etiquetas", - "title": "Configuração de IA", - "updateFailed": "Falha ao atualizar configurações de IA", - "updateSuccess": "Configurações de IA atualizadas com sucesso", - "bestValue": "Melhor custo-benefício", - "bestQuality": "Melhor qualidade", - "providerOllamaOption": "🦙 Ollama (Local e Gratuito)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Compatível com OpenAI (Personalizado)", - "saved": "(Salvo)", - "chatProvider": "Provedor de Chat", - "chatDescription": "Provedor de IA para o assistente de chat. Usa o provedor de Etiquetas como alternativa se não configurado.", - "fetchModelsFailed": "Falha ao buscar modelos", - "refreshModels": "Atualizar modelos", - "configured": "Configurado", - "fetchingModels": "Buscando modelos...", - "clickToLoadModels": "Clique em ↺ para carregar modelos", - "searchModel": "Buscar modelo...", - "noModels": "Sem modelos. Clique em ↺", - "modelsAvailable": "{count} modelo(s) disponível(is)", - "enterUrlToLoad": "Insira a URL e clique em ↺", - "currentProvider": "(Atual: {provider})", - "pageTitle": "Gestão de IA", - "pageDescription": "Monitorar e configurar recursos de IA", - "configure": "Configurar", - "features": "Recursos de IA", - "providerStatus": "Status de provedores de IA", - "recentRequests": "Solicitações de IA recentes", - "comingSoon": "Em breve", - "activeFeatures": "Recursos ativos", - "successRate": "Taxa de sucesso", - "avgResponseTime": "Tempo médio de resposta", - "configuredProviders": "Provedores configurados", - "settingUpdated": "Configuração atualizada", - "updateFailedShort": "Falha na atualização", - "titleSuggestions": "Sugestões de título", - "titleSuggestionsDesc": "Sugere títulos para notas após 50+ palavras", - "aiAssistant": "Assistente de IA", - "aiAssistantDesc": "Ativar chat de IA e ferramentas de melhoria", - "memoryEchoFeature": "Notei algo...", - "memoryEchoFeatureDesc": "Análise diária de conexões entre suas notas", - "languageDetection": "Detecção de idioma", - "languageDetectionDesc": "Detecta automaticamente o idioma de cada nota", - "autoLabeling": "Rotulagem automática", - "autoLabelingDesc": "Sugere e aplica rótulos automaticamente" - }, - "aiTest": { - "description": "Teste seus provedores de IA para geração de etiquetas e embeddings de pesquisa semântica", - "embeddingDimensions": "Dimensões do Embedding:", - "embeddingsTestDescription": "Teste o provedor de IA responsável pelos embeddings de pesquisa semântica", - "embeddingsTestTitle": "Teste de Embeddings", - "error": "Erro:", - "first5Values": "Primeiros 5 valores:", - "generatedTags": "Etiquetas Geradas:", - "howItWorksTitle": "Como Funciona o Teste", - "model": "Modelo:", - "provider": "Provedor:", - "responseTime": "Tempo de resposta: {time}ms", - "runTest": "Executar Teste", - "tagsTestDescription": "Teste o provedor de IA responsável pelas sugestões automáticas de etiquetas", - "tagsTestTitle": "Teste de Geração de Etiquetas", - "testError": "Erro no Teste: {error}", - "testFailed": "Teste Falhou", - "testPassed": "Teste Passou", - "testing": "Testando...", - "tipDescription": "Use o Painel de Testes de IA para diagnosticar problemas de configuração antes de testar.", - "tipTitle": "Dica:", - "title": "Teste de Provedores de IA", - "vectorDimensions": "dimensões vetoriais", - "tagsGenerationTest": "Teste de Geração de Etiquetas:", - "tagsStep1": "Envia uma nota de exemplo para o provedor de IA", - "tagsStep2": "Solicita 3-5 etiquetas relevantes com base no conteúdo", - "tagsStep3": "Exibe as etiquetas geradas com pontuações de confiança", - "tagsStep4": "Mede o tempo de resposta", - "embeddingsTestLabel": "Teste de Embeddings:", - "embeddingsStep1": "Envia um texto de exemplo para o provedor de embeddings", - "embeddingsStep2": "Gera uma representação vetorial (lista de números)", - "embeddingsStep3": "Exibe as dimensões do embedding e valores de exemplo", - "embeddingsStep4": "Verifica se o vetor é válido e está formatado corretamente", - "tipContent": "Você pode usar provedores diferentes para etiquetas e embeddings! Por exemplo, use Ollama (gratuito) para etiquetas e OpenAI (melhor qualidade) para embeddings, otimizando custos e desempenho.", - "testSuccessToast": "Teste de {type} realizado com sucesso!", - "testFailedToast": "Teste de {type} falhou", - "testingType": "Testando {type}...", - "technicalDetails": "Detalhes técnicos" - }, - "aiTesting": "Testes de IA", - "security": { - "allowPublicRegistration": "Permitir Registro Público", - "allowPublicRegistrationDescription": "Se desativado, novos usuários só podem ser adicionados por um Administrador pela página de Gerenciamento de Usuários.", - "description": "Gerencie controle de acesso e políticas de registro.", - "title": "Configurações de Segurança", - "updateFailed": "Falha ao atualizar configurações de segurança", - "updateSuccess": "Configurações de segurança atualizadas" - }, - "settings": "Configurações do Administrador", - "resend": { - "title": "Resend (Recomendado)", - "description": "Envie e-mails via API Resend. Tem prioridade sobre SMTP se configurado.", - "apiKey": "Chave API do Resend", - "apiKeyHint": "Obtenha sua chave API em resend.com. Usada para notificações de agentes e redefinição de senhas.", - "saveSettings": "Salvar configurações do Resend", - "updateSuccess": "Configurações do Resend atualizadas", - "updateFailed": "Falha ao atualizar configurações do Resend", - "configured": "Resend está configurado e ativo" - }, - "email": { - "title": "Configuração de E-mail", - "description": "Configure o envio de e-mails para notificações de agentes e redefinição de senhas.", - "provider": "Provedor de E-mail", - "saveSettings": "Salvar configurações de e-mail" - }, - "smtp": { - "description": "Configure o servidor de e-mail para redefinição de senhas.", - "forceSSL": "Forçar SSL/TLS (geralmente para porta 465)", - "fromEmail": "E-mail do Remetente", - "host": "Host", - "ignoreCertErrors": "Ignorar Erros de Certificado (Apenas auto-hospedado/desenvolvimento)", - "password": "Senha", - "port": "Porta", - "saveSettings": "Salvar Configurações SMTP", - "sending": "Enviando...", - "testEmail": "E-mail de Teste", - "testFailed": "Falha: {error}", - "testSuccess": "E-mail de teste enviado com sucesso!", - "title": "Configuração SMTP", - "updateFailed": "Falha ao atualizar configurações SMTP", - "updateSuccess": "Configurações SMTP atualizadas", - "username": "Nome de Usuário" - }, - "title": "Painel de Administração", - "userManagement": "Gerenciamento de Usuários", - "users": { - "addUser": "Adicionar Usuário", - "confirmDelete": "Tem certeza de que deseja excluir este usuário?", - "createFailed": "Falha ao criar usuário", - "createSuccess": "Usuário criado com sucesso", - "createUser": "Criar Usuário", - "createUserDescription": "Adicione um novo usuário ao sistema.", - "deleteFailed": "Falha ao excluir", - "deleteSuccess": "Usuário excluído", - "demote": "Rebaixar", - "email": "E-mail", - "name": "Nome", - "password": "Senha", - "promote": "Promover", - "role": "Função", - "roleUpdateFailed": "Falha ao atualizar função", - "roleUpdateSuccess": "Função do usuário atualizada para {role}", - "roles": { - "admin": "Administrador", - "user": "Usuário" - }, - "table": { - "actions": "Ações", - "createdAt": "Criado em", - "email": "E-mail", - "name": "Nome", - "role": "Função" - }, - "title": "Usuários", - "description": "Gerenciar usuários e permissões" - }, - "chat": "Chat IA", - "lab": "O Laboratório", - "agents": "Agentes", - "workspace": "Espaço de Trabalho", - "sidebar": { - "dashboard": "Painel", - "users": "Usuários", - "aiManagement": "Gerenciamento de IA", - "chat": "Chat IA", - "lab": "O Laboratório (Ideias)", - "agents": "Agentes", - "settings": "Configurações" - }, - "metrics": { - "vsLastPeriod": "em relação ao período anterior" - }, - "tools": { - "title": "Ferramentas do Agente", - "description": "Configure ferramentas externas para uso dos agentes: pesquisa na web, extração web e acesso à API.", - "searchProvider": "Provedor de Pesquisa na Web", - "searxng": "SearXNG (Auto-hospedado)", - "brave": "Brave Search API", - "both": "Ambos (SearXNG principal, Brave como fallback)", - "searxngUrl": "URL do SearXNG", - "braveKey": "Chave da Brave Search API", - "jinaKey": "Chave da Jina Reader API", - "jinaKeyOptional": "Opcional — funciona sem chave, mas com limites de taxa", - "jinaKeyDescription": "Usado para extração web. Funciona sem chave, mas com limites de taxa.", - "saveSettings": "Salvar Configurações de Ferramentas", - "updateSuccess": "Configurações de ferramentas atualizadas com sucesso", - "updateFailed": "Falha ao atualizar configurações de ferramentas", - "testing": "Testando...", - "testSearch": "Testar pesquisa web" - }, - "settingsDescription": "Configurar definições da aplicação", - "dashboard": { - "title": "Painel", - "description": "Visão geral das métricas", - "recentActivity": "Atividade recente", - "recentActivityPlaceholder": "Atividade recente será exibida aqui." - }, - "error": { - "title": "Erro no painel administrativo", - "description": "Falha ao renderizar. Tente novamente.", - "retry": "Tentar novamente" - } + "sidebar": { + "notes": "Notas", + "reminders": "Lembretes", + "labels": "Etiquetas", + "editLabels": "Editar etiquetas", + "newNoteTabs": "Nova Nota", + "newNoteTabsHint": "Criar nota neste caderno", + "noLabelsInNotebook": "Nenhuma etiqueta neste caderno ainda", + "archive": "Arquivo", + "trash": "Lixeira", + "clearFilter": "Remove filter" + }, + "notes": { + "title": "Notas", + "newNote": "Nova nota", + "untitled": "Sem título", + "placeholder": "Faça uma nota...", + "markdownPlaceholder": "Faça uma nota... (Markdown suportado)", + "titlePlaceholder": "Título", + "listItem": "Item da lista", + "addListItem": "+ Item da lista", + "newChecklist": "Nova lista de verificação", + "add": "Adicionar", + "adding": "Adicionando...", + "close": "Fechar", + "confirmDelete": "Tem certeza de que deseja excluir esta nota?", + "confirmLeaveShare": "Tem certeza de que deseja sair desta nota compartilhada?", + "sharedBy": "Compartilhado por", + "leaveShare": "Sair", + "delete": "Excluir", + "archive": "Arquivar", + "unarchive": "Desarquivar", + "pin": "Fixar", + "unpin": "Desafixar", + "color": "Cor", + "changeColor": "Alterar cor", + "setReminder": "Definir lembrete", + "setReminderButton": "Definir Lembrete", + "date": "Data", + "time": "Hora", + "reminderDateTimeRequired": "Por favor, insira data e hora", + "invalidDateTime": "Data ou hora inválida", + "reminderMustBeFuture": "O lembrete deve estar no futuro", + "reminderSet": "Lembrete definido para {datetime}", + "reminderPastError": "O lembrete deve estar no futuro", + "reminderRemoved": "Lembrete removido", + "addImage": "Adicionar imagem", + "addLink": "Adicionar link", + "linkAdded": "Link adicionado", + "linkMetadataFailed": "Não foi possível obter metadados do link", + "linkAddFailed": "Falha ao adicionar link", + "invalidFileType": "Tipo de arquivo inválido: {fileName}. Apenas JPEG, PNG, GIF e WebP são permitidos.", + "fileTooLarge": "Arquivo muito grande: {fileName}. O tamanho máximo é {maxSize}.", + "uploadFailed": "Falha ao fazer upload de {filename}", + "contentOrMediaRequired": "Por favor, insira algum conteúdo ou adicione um link/imagem", + "itemOrMediaRequired": "Por favor, adicione pelo menos um item ou mídia", + "noteCreated": "Nota criada com sucesso", + "noteCreateFailed": "Falha ao criar nota", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "aiAssistant": "Assistente IA", + "changeSize": "Alterar tamanho", + "backgroundOptions": "Opções de fundo", + "moreOptions": "Mais opções", + "remindMe": "Lembrar-me", + "markdownMode": "Markdown", + "addCollaborators": "Adicionar colaboradores", + "duplicate": "Duplicar", + "share": "Compartilhar", + "showCollaborators": "Mostrar colaboradores", + "pinned": "Fixadas", + "others": "Outros", + "noNotes": "Sem notas", + "noNotesFound": "Nenhuma nota encontrada", + "createFirstNote": "Crie sua primeira nota", + "size": "Tamanho", + "small": "Pequeno", + "medium": "Médio", + "large": "Grande", + "shareWithCollaborators": "Compartilhar com colaboradores", + "view": "Ver nota", + "edit": "Editar nota", + "readOnly": "Somente leitura", + "preview": "Visualizar", + "noContent": "Sem conteúdo", + "takeNote": "Faça uma nota...", + "takeNoteMarkdown": "Faça uma nota... (Markdown suportado)", + "addItem": "Adicionar item", + "sharedReadOnly": "Esta nota é compartilhada com você no modo somente leitura", + "makeCopy": "Fazer uma cópia", + "saving": "Salvando...", + "copySuccess": "Nota copiada com sucesso!", + "copyFailed": "Falha ao copiar nota", + "copy": "Copiar", + "markdownOn": "Markdown LIGADO", + "markdownOff": "Markdown DESLIGADO", + "undo": "Desfazer (Ctrl+Z)", + "redo": "Refazer (Ctrl+Y)", + "pinnedNotes": "Notas fixadas", + "recent": "Recentes", + "addNote": "Adicionar nota", + "remove": "Remover", + "dragToReorder": "Arraste para reordenar", + "more": "Mais", + "emptyState": "Nenhuma nota aqui", + "emptyStateTabs": "Nenhuma nota aqui ainda. Use \"Nova nota\" na barra lateral para adicionar uma (sugestões de título com IA aparecem no compositor).", + "inNotebook": "No caderno", + "moveFailed": "Falha ao mover", + "clarifyFailed": "Falha ao esclarecer", + "shortenFailed": "Falha ao encurtar", + "improveFailed": "Falha ao melhorar", + "transformFailed": "Falha ao transformar", + "markdown": "Markdown", + "unpinned": "Desafixado", + "redoShortcut": "Refazer (Ctrl+Y)", + "undoShortcut": "Desfazer (Ctrl+Z)", + "viewCards": "Visualização em Cartões", + "viewCardsTooltip": "Grade de cartões com reordenação por arrastar e soltar", + "viewTabs": "Visualização em Lista", + "viewTabsTooltip": "Abas no topo, nota abaixo — arraste abas para reordenar", + "viewModeGroup": "Modo de exibição das notas", + "reorderTabs": "Reordenar aba", + "modified": "Modificado", + "created": "Criado", + "loading": "Carregando...", + "exportPDF": "Exportar PDF", + "savedStatus": "Salvo", + "dirtyStatus": "Modificado", + "completedLabel": "Concluídos", + "notes.emptyNotebook": "Caderno vazio", + "notes.emptyNotebookDesc": "Este caderno não tem notas. Clique em + para criar uma.", + "notes.noNoteSelected": "Nenhuma nota selecionada", + "notes.selectOrCreateNote": "Selecione uma nota da lista ou crie uma nova.", + "commitVersion": "Salvar versão", + "versionSaved": "Versão salva", + "deleteVersion": "Excluir esta versão", + "versionDeleted": "Versão excluída", + "deleteVersionConfirm": "Excluir esta versão permanentemente?", + "historyMode": "Modo de histórico", + "historyModeManual": "Manual (botão commit)", + "historyModeAuto": "Automático (inteligente)", + "historyModeManualDesc": "Criar snapshots manualmente com o botão commit", + "historyModeAutoDesc": "Snapshots automáticos com detecção inteligente", + "history": "Histórico", + "historyRestored": "Versão restaurada", + "historyEnabled": "Histórico ativado", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "O histórico está desativado para sua conta.", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "Ativar histórico", + "historyEmpty": "Nenhuma versão disponível", + "historySelectVersion": "Selecione uma versão para visualizar seu conteúdo", + "sortBy": "Ordenar por", + "sortDateDesc": "Data (recente)", + "sortDateAsc": "Data (antiga)", + "sortTitleAsc": "Título A → Z", + "sortTitleDesc": "Título Z → A", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "pagination": { + "previous": "←", + "pageInfo": "Página {currentPage} / {totalPages}", + "next": "→" + }, + "labels": { + "title": "Labels", + "filter": "Filter by Label", + "manage": "Manage Labels", + "manageTooltip": "Manage Labels", + "changeColor": "Alterar Cor", + "changeColorTooltip": "Alterar cor", + "delete": "Delete", + "deleteTooltip": "Delete label", + "confirmDelete": "Tem certeza de que deseja excluir esta etiqueta?", + "newLabelPlaceholder": "Create new label", + "namePlaceholder": "Enter label name", + "addLabel": "Adicionar etiqueta", + "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": "Todas as Etiquetas", + "clearAll": "Limpar tudo", + "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} etiquetas", + "noLabels": "Sem etiquetas", + "confirmDeleteShort": "Confirmar?", + "labelRemoved": "Etiqueta \"{label}\" removida" + }, + "search": { + "placeholder": "Pesquisar", + "searchPlaceholder": "Pesquise suas notas...", + "semanticInProgress": "Pesquisa semântica em andamento...", + "semanticTooltip": "Pesquisa semântica com IA", + "searching": "Pesquisando...", + "noResults": "Nenhum resultado encontrado", + "resultsFound": "{count} notas encontradas", + "exactMatch": "Correspondência exata", + "related": "Relacionado", + "disabledAdmin": "Pesquisa desativada no modo admin" + }, + "collaboration": { + "emailPlaceholder": "Digite o endereço de e-mail", + "addCollaborator": "Adicionar colaborador", + "removeCollaborator": "Remover colaborador", + "owner": "Proprietário", + "canEdit": "Pode editar", + "canView": "Pode visualizar", + "shareNote": "Compartilhar nota", + "shareWithCollaborators": "Compartilhar com colaboradores", + "addCollaboratorDescription": "Adicione pessoas para colaborar nesta nota através do endereço de e-mail.", + "viewerDescription": "Você tem acesso a esta nota. Apenas o proprietário pode gerenciar colaboradores.", + "emailAddress": "Endereço de e-mail", + "enterEmailAddress": "Digite o endereço de e-mail", + "invite": "Convidar", + "peopleWithAccess": "Pessoas com acesso", + "noCollaborators": "Ainda não há colaboradores. Adicione alguém acima!", + "noCollaboratorsViewer": "Ainda não há colaboradores.", + "pendingInvite": "Convite pendente", + "pending": "Pendente", + "remove": "Remover", + "unnamedUser": "Usuário sem nome", + "done": "Concluído", + "willBeAdded": "{email} será adicionado como colaborador quando a nota for criada", + "alreadyInList": "Este e-mail já está na lista", + "nowHasAccess": "{name} agora tem acesso a esta nota", + "accessRevoked": "O acesso foi revogado", + "errorLoading": "Erro ao carregar colaboradores", + "failedToAdd": "Falha ao adicionar colaborador", + "failedToRemove": "Falha ao remover colaborador" }, "ai": { "analyzing": "IA analisando...", + "clickToAddTag": "Clique para adicionar esta etiqueta", + "ignoreSuggestion": "Ignorar esta sugestão", + "generatingTitles": "Gerando títulos...", + "generateTitlesTooltip": "Gerar títulos com IA", + "poweredByAI": "Powered by AI", + "languageDetected": "Idioma detectado", + "processing": "Processando...", + "tagAdded": "Etiqueta \"{tag}\" adicionada", + "titleGenerating": "Gerando...", + "titleGenerateWithAI": "Gerar títulos com IA", + "titleGenerationMinWords": "O conteúdo deve ter pelo menos 10 palavras para gerar títulos (atual: {count} palavras)", + "titleGenerationError": "Erro ao gerar títulos", + "titlesGenerated": "{count} títulos gerados!", + "titleGenerationFailed": "Falha ao gerar títulos", + "titleApplied": "Título aplicado!", + "reformulationNoText": "Selecione texto ou adicione conteúdo", + "reformulationSelectionTooShort": "Seleção muito curta, usando conteúdo completo", + "reformulationMinWords": "O texto deve ter pelo menos 10 palavras (atual: {count} palavras)", + "reformulationMaxWords": "O texto deve ter no máximo 500 palavras", + "reformulationError": "Erro durante a reformulação", + "reformulationFailed": "Falha ao reformular texto", + "reformulationApplied": "Texto reformulado aplicado!", + "transformMarkdown": "Transformar para Markdown", + "transforming": "Transformando...", + "transformSuccess": "Texto transformado para Markdown com sucesso!", + "transformError": "Erro durante a transformação", "assistant": "Assistente IA", + "generating": "Gerando...", + "generateTitles": "Gerar títulos", + "reformulateText": "Reformular texto", + "reformulating": "Reformulando...", + "clarify": "Esclarecer", + "shorten": "Encurtar", + "improveStyle": "Melhorar estilo", + "reformulationComparison": "Comparação da Reformulação", + "original": "Original", + "reformulated": "Reformulado", "autoLabels": { - "analyzing": "Analisando suas notas para sugestões de rótulos...", - "create": "Criar", - "createNewLabel": "Criar nova etiqueta", - "created": "{count} etiquetas criadas com sucesso", - "creating": "Criando rótulos...", - "description": "Detectei temas recorrentes em \"{notebookName}\" ({totalNotes} notas). Criar etiquetas para eles?", "error": "Falha ao buscar sugestões de etiquetas", - "new": "(novo)", "noLabelsSelected": "Nenhuma etiqueta selecionada", + "created": "{count} etiquetas criadas com sucesso", + "analyzing": "Analisando suas notas para sugestões de rótulos...", + "title": "Sugestões de Rótulos", + "description": "Detectei temas recorrentes em \"{notebookName}\" ({totalNotes} notas). Criar etiquetas para eles?", "note": "nota", "notes": "notas", - "title": "Sugestões de Rótulos", "typeContent": "Digite o conteúdo para obter sugestões de etiquetas...", - "typeForSuggestions": "Digite para sugestões", - "notesCount": "{count} notas" + "createNewLabel": "Criar nova etiqueta", + "new": "(novo)", + "create": "Criar", + "creating": "Criando rótulos...", + "notesCount": "{count} notas", + "typeForSuggestions": "Digite para sugestões" }, "batchOrganization": { - "analyzing": "Analisando suas notas...", - "apply": "Aplicar", - "applyFailed": "Falha ao aplicar", - "applying": "Aplicando...", + "title": "Organização em lote", "description": "A IA analisará suas notas e sugerirá organizá-las em cadernos.", - "error": "Erro na organização", + "analyzing": "Analisando suas notas...", "noNotebooks": "Nenhum caderno disponível. Crie cadernos primeiro para organizar suas notas.", - "noNotesSelected": "Nenhuma nota selecionada", "noSuggestions": "A IA não conseguiu encontrar uma boa forma de organizar estas notas.", - "selectAllIn": "Selecionar tudo em", - "selectNote": "Selecionar nota", + "apply": "Aplicar", + "applying": "Aplicando...", "success": "Organização concluída", - "title": "Organização em lote" + "error": "Erro na organização", + "noNotesSelected": "Nenhuma nota selecionada", + "applyFailed": "Falha ao aplicar", + "selectAllIn": "Selecionar tudo em", + "selectNote": "Selecionar nota" }, - "clarify": "Esclarecer", - "clickToAddTag": "Clique para adicionar esta etiqueta", - "generateTitles": "Gerar títulos", - "generateTitlesTooltip": "Gerar títulos com IA", - "generating": "Gerando...", - "generatingTitles": "Gerando títulos...", - "ignoreSuggestion": "Ignorar esta sugestão", - "improveStyle": "Melhorar estilo", - "languageDetected": "Idioma detectado", "notebookSummary": { "regenerate": "Regenerar Resumo", "regenerating": "Regenerando resumo...", "exportPDF": "Exportar como PDF" }, - "original": "Original", - "poweredByAI": "Powered by AI", - "processing": "Processando...", - "reformulateText": "Reformular texto", - "reformulated": "Reformulado", - "reformulating": "Reformulando...", - "reformulationApplied": "Texto reformulado aplicado!", - "reformulationComparison": "Comparação da Reformulação", - "reformulationError": "Erro durante a reformulação", - "reformulationFailed": "Falha ao reformular texto", - "reformulationMaxWords": "O texto deve ter no máximo 500 palavras", - "reformulationMinWords": "O texto deve ter pelo menos 10 palavras (atual: {count} palavras)", - "reformulationNoText": "Selecione texto ou adicione conteúdo", - "reformulationSelectionTooShort": "Seleção muito curta, usando conteúdo completo", - "shorten": "Encurtar", - "tagAdded": "Etiqueta \"{tag}\" adicionada", - "titleApplied": "Título aplicado!", - "titleGenerateWithAI": "Gerar títulos com IA", - "titleGenerating": "Gerando...", - "titleGenerationError": "Erro ao gerar títulos", - "titleGenerationFailed": "Falha ao gerar títulos", - "titleGenerationMinWords": "O conteúdo deve ter pelo menos 10 palavras para gerar títulos (atual: {count} palavras)", - "titlesGenerated": "{count} títulos gerados!", - "transformError": "Erro durante a transformação", - "transformMarkdown": "Transformar para Markdown", - "transformSuccess": "Texto transformado para Markdown com sucesso!", - "transforming": "Transformando...", "clarifyDesc": "Torne o texto mais claro e fácil de entender", "shortenDesc": "Resuma o texto e vá direto ao ponto", "improve": "Melhorar escrita", @@ -389,11 +405,14 @@ "transformationsDesc": "Transformações — aplicadas diretamente à nota", "writeMinWordsAction": "Escreva pelo menos 5 palavras para ativar ações de IA.", "processingAction": "Processando...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "Esclarecer", "shorten": "Encurtar", "improve": "Melhorar", - "toMarkdown": "Para Markdown" + "toMarkdown": "Para Markdown", + "describeImages": "Describe images" }, "openAssistant": "Abrir assistente IA", "poweredByMomento": "Desenvolvido por Momento AI", @@ -408,298 +427,59 @@ "historyTab": "Histórico", "insightsTab": "Insights", "aiCopilot": "Copiloto IA", - "suggestTitle": "Sugestão de título por IA" + "suggestTitle": "Sugestão de título por IA", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" }, - "aiSettings": { - "description": "Configure seus recursos e preferências com IA", - "error": "Falha ao atualizar configuração", - "features": "Recursos de IA", - "frequency": "Frequência", - "frequencyDaily": "Diariamente", - "frequencyWeekly": "Semanalmente", - "provider": "Provedor de IA", - "providerAuto": "Automático (Recomendado)", - "providerOllama": "Ollama (Local)", - "providerOpenAI": "OpenAI (Nuvem)", - "saved": "Configuração atualizada", - "saving": "Salvando...", - "title": "Configurações de IA", - "titleSuggestionsDesc": "Sugerir títulos para notas sem título após 50+ palavras", - "paragraphRefactorDesc": "Opções de melhoria de texto com IA", - "frequencyDesc": "Com que frequência analisar conexões entre notas", - "providerDesc": "Escolha seu provedor de IA preferido", - "providerAutoDesc": "Ollama quando disponível, OpenAI como alternativa", - "providerOllamaDesc": "100% privado, roda localmente na sua máquina", - "providerOpenAIDesc": "Mais preciso, requer chave de API" + "titleSuggestions": { + "available": "Sugestões de título", + "title": "Sugestões de IA", + "generating": "Gerando...", + "selectTitle": "Selecione um título", + "dismiss": "Descartar" }, - "appearance": { - "description": "Personalize a aparência do aplicativo", - "title": "Aparência", - "notesViewDescription": "Escolha como as notas são exibidas na página inicial e nos cadernos.", - "notesViewLabel": "Layout das notas", - "notesViewTabs": "Abas (estilo OneNote)", - "notesViewMasonry": "Cartões (grade)" + "semanticSearch": { + "exactMatch": "Correspondência exata", + "related": "Relacionado", + "searching": "Pesquisando..." }, - "auth": { - "backToLogin": "Voltar ao login", - "checkYourEmail": "Verifique seu e-mail", - "createAccount": "Crie sua conta", - "email": "E-mail", - "emailPlaceholder": "Digite seu endereço de e-mail", - "forgotPassword": "Esqueceu sua senha?", - "forgotPasswordDescription": "Digite seu endereço de e-mail e enviaremos um link para redefinir sua senha.", - "forgotPasswordTitle": "Esqueci minha senha", - "hasAccount": "Já tem uma conta?", - "name": "Nome", - "namePlaceholder": "Digite seu nome", - "noAccount": "Não tem uma conta?", - "orContinueWith": "Ou continuar com", - "password": "Senha", - "passwordMinChars": "Digite a senha (mínimo 6 caracteres)", - "passwordPlaceholder": "Digite sua senha", - "rememberMe": "Lembrar-me", - "resetEmailSent": "Enviamos um link de redefinição de senha para seu endereço de e-mail se ele existir em nosso sistema.", - "resetPassword": "Redefinir senha", - "resetPasswordInstructions": "Digite seu e-mail para redefinir sua senha", - "returnToLogin": "Voltar ao login", - "sendResetLink": "Enviar link de redefinição", - "sending": "Enviando...", - "signIn": "Entrar", - "signInToAccount": "Entre na sua conta", - "signOut": "Sair", - "signUp": "Cadastrar-se", - "confirmPassword": "Confirmar senha", - "confirmPasswordPlaceholder": "Confirme sua senha" - }, - "autoLabels": { - "analyzing": "Analisando suas notas...", - "createNewLabel": "Criar esta nova etiqueta e adicioná-la", - "created": "{count} etiquetas criadas com sucesso", - "description": "Detectei temas recorrentes em \"{notebookName}\" ({totalNotes} notas). Criar etiquetas para eles?", - "error": "Falha ao obter sugestões de etiquetas", - "new": "(novo)", - "noLabelsSelected": "Nenhuma etiqueta selecionada", - "note": "nota", - "notes": "notas", - "title": "Novas sugestões de etiquetas", - "typeContent": "Digite o conteúdo para obter sugestões de etiquetas..." - }, - "batch": { - "organize": "Organizar", - "organizeWithAI": "Organizar com IA" - }, - "batchOrganization": { - "analyzing": "Analisando suas notas...", - "apply": "Aplicar ({count})", - "applying": "Aplicando...", - "confidence": "confiança", - "description": "A IA analisará suas notas e sugerirá organizá-las em cadernos.", - "error": "Falha ao criar o plano de organização", - "noNotebooks": "Nenhum caderno disponível. Crie primeiro cadernos para organizar suas notas.", - "noNotesSelected": "Nenhuma nota selecionada", - "noSuggestions": "A IA não encontrou uma boa maneira de organizar estas notas.", - "notesToOrganize": "{count} notas para organizar", - "selected": "{count} selecionado", - "title": "Organizar com IA", - "unorganized": "{count} notas não puderam ser categorizadas e permanecerão em Notas Gerais." - }, - "collaboration": { - "accessRevoked": "O acesso foi revogado", - "addCollaborator": "Adicionar colaborador", - "addCollaboratorDescription": "Adicione pessoas para colaborar nesta nota através do endereço de e-mail.", - "alreadyInList": "Este e-mail já está na lista", - "canEdit": "Pode editar", - "canView": "Pode visualizar", - "done": "Concluído", - "emailAddress": "Endereço de e-mail", - "emailPlaceholder": "Digite o endereço de e-mail", - "enterEmailAddress": "Digite o endereço de e-mail", - "errorLoading": "Erro ao carregar colaboradores", - "failedToAdd": "Falha ao adicionar colaborador", - "failedToRemove": "Falha ao remover colaborador", - "invite": "Convidar", - "noCollaborators": "Ainda não há colaboradores. Adicione alguém acima!", - "noCollaboratorsViewer": "Ainda não há colaboradores.", - "nowHasAccess": "{name} agora tem acesso a esta nota", - "owner": "Proprietário", - "pending": "Pendente", - "pendingInvite": "Convite pendente", - "peopleWithAccess": "Pessoas com acesso", - "remove": "Remover", - "removeCollaborator": "Remover colaborador", - "shareNote": "Compartilhar nota", - "shareWithCollaborators": "Compartilhar com colaboradores", - "unnamedUser": "Usuário sem nome", - "viewerDescription": "Você tem acesso a esta nota. Apenas o proprietário pode gerenciar colaboradores.", - "willBeAdded": "{email} será adicionado como colaborador quando a nota for criada" - }, - "colors": { - "blue": "Azul", - "default": "Padrão", - "gray": "Cinza", - "green": "Verde", - "orange": "Laranja", - "pink": "Rosa", - "purple": "Roxo", - "red": "Vermelho", - "yellow": "Amarelo" - }, - "common": { - "add": "Adicionar", - "cancel": "Cancelar", - "close": "Fechar", - "confirm": "Confirmar", - "delete": "Excluir", - "edit": "Editar", - "error": "Erro", - "loading": "Carregando...", - "noResults": "Sem resultados", - "notAvailable": "Não disponível", - "optional": "Opcional", - "remove": "Remover", - "required": "Obrigatório", - "save": "Salvar", - "search": "Pesquisar", - "success": "Sucesso", - "unknown": "Desconhecido" - }, - "connection": { - "clickToView": "Clique para ver a nota", - "helpful": "Útil", - "isHelpful": "Esta conexão é útil?", - "memoryEchoDiscovery": "Descoberta Memory Echo", - "notHelpful": "Não útil", - "similarityInfo": "Estas notas estão conectadas por {similarity}% de similaridade" - }, - "dataManagement": { - "cleanup": { - "button": "Limpar", - "description": "Remove etiquetas e conexões que referenciam notas excluídas.", - "failed": "Erro durante a limpeza", - "title": "Limpar Dados Órfãos" - }, - "cleanupComplete": "Limpeza concluída", - "cleanupError": "Erro na limpeza", - "dangerZone": "Zona de perigo", - "dangerZoneDescription": "Estas ações são irreversíveis", - "delete": { - "button": "Excluir Todas as Notas", - "confirm": "Tem certeza? Isso excluirá permanentemente todas as suas notas.", - "description": "Exclua permanentemente todas as suas notas. Esta ação não pode ser desfeita.", - "failed": "Falha ao excluir notas", - "success": "Todas as notas excluídas", - "title": "Excluir Todas as Notas" - }, - "deleting": "Excluindo...", - "export": { - "button": "Exportar Notas", - "description": "Baixe todas as suas notas como um arquivo JSON. Isso inclui todo o conteúdo, etiquetas e metadados.", - "failed": "Falha ao exportar notas", - "success": "Notas exportadas com sucesso", - "title": "Exportar Todas as Notas" - }, - "exporting": "Exportando...", - "import": { - "button": "Importar Notas", - "description": "Envie um arquivo JSON para importar notas. Isso adicionará às suas notas existentes, não as substituirá.", - "failed": "Falha ao importar notas", - "success": "Importadas {count} notas", - "title": "Importar Notas" - }, - "importing": "Importando...", - "indexing": { - "button": "Reconstruir Índice", - "description": "Regenerar embeddings para todas as notas para melhorar a pesquisa semântica.", - "failed": "Erro durante a indexação", - "success": "Indexação concluída: {count} notas processadas", - "title": "Reconstruir Índice de Pesquisa" - }, - "indexingComplete": "Indexação concluída", - "indexingError": "Erro na indexação", - "title": "Gerenciamento de Dados", - "toolsDescription": "Ferramentas para manter a saúde do seu banco de dados" - }, - "demoMode": { - "activated": "Modo demonstração ativado! Memory Echo funcionará instantaneamente.", - "createNotesTip": "Crie 2+ notas similares e veja Memory Echo em ação!", - "deactivated": "Modo demonstração desativado. Parâmetros normais restaurados.", - "delayBetweenNotes": "Atraso de 0 dias entre notas (normalmente 7 dias)", - "description": "Acelera Memory Echo para testes. Conexões aparecem instantaneamente.", - "parametersActive": "Parâmetros de demonstração ativos:", - "similarityThreshold": "Limite de similaridade de 50% (normalmente 75%)", - "title": "Modo demonstração", - "toggleFailed": "Falha ao alternar modo demonstração", - "unlimitedInsights": "Insights ilimitados (sem limites de frequência)" - }, - "diagnostics": { - "apiStatus": "Status da API", - "checking": "Verificando...", - "configuredProvider": "Provedor configurado", - "description": "Verifique o status da conexão com seu provedor de IA", - "errorStatus": "Erro", - "operational": "Operacional", - "testDetails": "Detalhes do teste:", - "tip1": "Certifique-se de que o Ollama está rodando (ollama serve)", - "tip2": "Verifique se o modelo está instalado (ollama pull llama3)", - "tip3": "Verifique sua chave API para OpenAI", - "tip4": "Verifique a conectividade de rede", - "title": "Diagnósticos", - "troubleshootingTitle": "Dicas de solução de problemas:" - }, - "favorites": { - "noFavorites": "Sem favoritos", - "pinToFavorite": "Adicionar aos favoritos", - "title": "Favoritos", - "toggleSection": "Alternar seção" - }, - "footer": { - "openSource": "Clone de código aberto", - "privacy": "Privacidade", - "terms": "Termos" - }, - "general": { - "add": "Adicionar", - "apply": "Aplicar", - "back": "Voltar", - "cancel": "Cancelar", - "clean": "Limpar", - "clear": "Limpar", - "close": "Fechar", - "confirm": "Confirmar", - "edit": "Editar", - "error": "Ocorreu um erro", - "indexAll": "Indexar Tudo", - "loading": "Carregando...", - "next": "Próximo", - "operationFailed": "Operação falhou", - "operationSuccess": "Operação bem-sucedida", - "preview": "Visualizar", - "previous": "Anterior", - "reset": "Redefinir", - "save": "Salvar", - "select": "Selecionar", - "submit": "Enviar", - "testConnection": "Testar Conexão", - "tryAgain": "Por favor, tente novamente" - }, - "generalSettings": { - "description": "Configurações gerais do aplicativo", - "title": "Configurações gerais" - }, - "labels": { - "addLabel": "Adicionar etiqueta", - "allLabels": "Todas as Etiquetas", - "changeColor": "Alterar Cor", - "changeColorTooltip": "Alterar cor", - "clearAll": "Limpar tudo", - "confirmDelete": "Tem certeza de que deseja excluir esta etiqueta?", - "count": "{count} etiquetas", - "noLabels": "Sem etiquetas", - "confirmDeleteShort": "Confirmar?", - "labelRemoved": "Etiqueta \"{label}\" removida" + "paragraphRefactor": { + "title": "Melhoria de texto", + "shorten": "Encurtar", + "expand": "Expandir", + "improve": "Melhorar", + "formal": "Formal", + "casual": "Informal" }, "memoryEcho": { + "title": "Percebi algo...", + "description": "Conexões proativas entre suas notas", + "dailyInsight": "Insight diário das suas notas", + "insightReady": "Seu insight está pronto!", + "viewConnection": "Ver Conexão", + "helpful": "Útil", + "notHelpful": "Não útil", + "dismiss": "Descartar por enquanto", + "thanksFeedback": "Obrigado pelo seu feedback!", + "thanksFeedbackImproving": "Obrigado! Usaremos isso para melhorar.", + "connections": "Conexões", + "connection": "conexão", + "connectionsBadge": "{count} conexão(ões)", + "match": "{percentage}% correspondência", + "fused": "Mesclado", "clickToView": "Clique para visualizar", + "overlay": { + "title": "Notas Conectadas", + "searchPlaceholder": "Pesquisar conexões...", + "sortBy": "Ordenar por:", + "sortSimilarity": "Similaridade", + "sortRecent": "Recentes", + "sortOldest": "Mais antigas", + "viewAll": "Ver todas lado a lado", + "loading": "Carregando...", + "noConnections": "Nenhuma conexão encontrada", + "error": "Erro" + }, "comparison": { "title": "💡 Comparação de notas", "similarityInfo": "Estas notas estão conectadas por {similarity}% de similaridade", @@ -710,12 +490,6 @@ "helpful": "Útil", "notHelpful": "Não útil" }, - "connection": "conexão", - "connections": "Conexões", - "connectionsBadge": "{count} conexão(ões)", - "dailyInsight": "Insight diário das suas notas", - "description": "Conexões proativas entre suas notas", - "dismiss": "Descartar por enquanto", "editorSection": { "title": "⚡ Notas conectadas ({count})", "loading": "Carregando...", @@ -726,7 +500,6 @@ "mergeAll": "Mesclar tudo", "close": "Fechar" }, - "fused": "Mesclado", "fusion": { "title": "🔗 Fusão inteligente", "mergeNotes": "Mesclar {count} nota(s)", @@ -751,468 +524,679 @@ "generateError": "Falha ao gerar fusão", "noContentReturned": "Nenhum conteúdo de fusão retornado pela API", "unknownDate": "Data desconhecida" - }, - "helpful": "Útil", - "insightReady": "Seu insight está pronto!", - "notHelpful": "Não útil", - "overlay": { - "error": "Erro", - "loading": "Carregando...", - "noConnections": "Nenhuma conexão encontrada", - "searchPlaceholder": "Pesquisar conexões...", - "sortBy": "Ordenar por:", - "sortOldest": "Mais antigas", - "sortRecent": "Recentes", - "sortSimilarity": "Similaridade", - "title": "Notas Conectadas", - "viewAll": "Ver todas lado a lado" - }, - "thanksFeedback": "Obrigado pelo seu feedback!", - "thanksFeedbackImproving": "Obrigado! Usaremos isso para melhorar.", - "title": "Percebi algo...", - "viewConnection": "Ver Conexão", - "match": "{percentage}% correspondência" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "compartilhou \"{title}\"", + "untitled": "Sem título", + "notifications": "Notificações", + "declined": "Compartilhamento recusado", + "removed": "Nota removida da lista" }, "nav": { - "accountSettings": "Configurações da conta", - "adminDashboard": "Painel de administração", - "aiSettings": "Configurações de IA", - "archive": "Arquivo", - "buyMeACoffee": "Me pague um café", - "configureAI": "Configure seus recursos com IA, provedor e preferências", - "diagnostics": "Diagnósticos", - "donateOnKofi": "Doar no Ko-fi", - "donationDescription": "Faça uma doação única ou torne-se um apoiador mensal.", - "donationNote": "Sem taxas de plataforma • Pagamentos instantâneos • Seguro", - "favorites": "Favoritos", - "generalNotes": "Notas gerais", "home": "Início", - "login": "Entrar", - "logout": "Sair", - "manageAISettings": "Gerenciar configurações de IA", - "myLibrary": "Minha biblioteca", - "notebooks": "Cadernos", "notes": "Notas", - "proPlan": "Plano Pro", - "profile": "Perfil", - "quickAccess": "Acesso rápido", - "recent": "Recentes", - "reminders": "Lembretes", + "notebooks": "Cadernos", + "generalNotes": "Notas gerais", + "archive": "Arquivo", "settings": "Configurações", - "sponsorDescription": "Torne-se um apoiador mensal e receba reconhecimento.", - "sponsorOnGithub": "Apoiar no GitHub", - "support": "Apoie o Memento ☕", - "supportDescription": "Memento é 100% gratuito e de código aberto. Seu apoio ajuda a mantê-lo assim.", - "supportDevelopment": "Apoie o desenvolvimento do Memento ☕", + "profile": "Perfil", + "aiSettings": "Configurações de IA", + "logout": "Sair", + "login": "Entrar", + "adminDashboard": "Painel de administração", + "diagnostics": "Diagnósticos", "trash": "Lixeira", + "support": "Apoie o Memento ☕", + "reminders": "Lembretes", "userManagement": "Gerenciamento de usuários", + "accountSettings": "Configurações da conta", + "manageAISettings": "Gerenciar configurações de IA", + "configureAI": "Configure seus recursos com IA, provedor e preferências", + "supportDevelopment": "Apoie o desenvolvimento do Memento ☕", + "supportDescription": "Memento é 100% gratuito e de código aberto. Seu apoio ajuda a mantê-lo assim.", + "buyMeACoffee": "Me pague um café", + "donationDescription": "Faça uma doação única ou torne-se um apoiador mensal.", + "donateOnKofi": "Doar no Ko-fi", + "donationNote": "Sem taxas de plataforma • Pagamentos instantâneos • Seguro", + "sponsorOnGithub": "Apoiar no GitHub", + "sponsorDescription": "Torne-se um apoiador mensal e receba reconhecimento.", "workspace": "Espaço de trabalho", + "quickAccess": "Acesso rápido", + "myLibrary": "Minha biblioteca", + "favorites": "Favoritos", + "recent": "Recentes", + "proPlan": "Plano Pro", "chat": "Chat IA", "lab": "O Laboratório", "agents": "Agentes" }, - "notebook": { - "cancel": "Cancelar", - "create": "Criar caderno", - "createDescription": "Inicie uma nova coleção para organizar suas notas, ideias e projetos de forma eficiente.", - "createNew": "Criar novo caderno", - "creating": "Criando...", - "delete": "Excluir caderno", - "deleteConfirm": "Excluir", - "deleteWarning": "Tem certeza de que deseja excluir este caderno? As notas serão movidas para Notas Gerais.", - "edit": "Editar caderno", - "editDescription": "Mude o nome, ícone e cor do seu caderno.", - "generating": "Gerando resumo...", - "labels": "Etiquetas", - "name": "Nome do caderno", - "noLabels": "Sem etiquetas", - "selectColor": "Cor", - "selectIcon": "Ícone", - "summary": "Resumo do caderno", - "summaryDescription": "Gere um resumo baseado em IA de todas as notas neste caderno.", - "summaryError": "Erro ao gerar resumo", - "namePlaceholder": "ex. Estratégia de Marketing Q4", - "myNotebook": "Meu Caderno", - "saving": "Salvando...", - "pdfTitle": "Resumo — {name}", - "pdfNotesLabel": "Notas:", - "pdfGeneratedOn": "Gerado em:", - "confidence": "confiança", - "savingReminder": "Falha ao salvar lembrete", - "removingReminder": "Falha ao remover lembrete" - }, - "notebookSuggestion": { - "description": "Esta nota parece pertencer a este caderno", - "dismiss": "Descartar", - "dismissIn": "Descartar (fecha em {timeLeft}s)", - "generalNotes": "Notas gerais", - "move": "Mover", - "moveToNotebook": "Mover para caderno", - "title": "Mover para {name}?" - }, - "notebooks": { - "allNotebooks": "Todos os cadernos", - "create": "Criar caderno", - "createFirst": "Crie seu primeiro caderno", - "noNotebooks": "Nenhum caderno" - }, - "notes": { - "add": "Adicionar", - "addCollaborators": "Adicionar colaboradores", - "addImage": "Adicionar imagem", - "addItem": "Adicionar item", - "addLink": "Adicionar link", - "addListItem": "+ Item da lista", - "addNote": "Adicionar nota", - "adding": "Adicionando...", - "aiAssistant": "Assistente IA", - "archive": "Arquivar", - "backgroundOptions": "Opções de fundo", - "changeColor": "Alterar cor", - "changeSize": "Alterar tamanho", - "clarifyFailed": "Falha ao esclarecer", - "close": "Fechar", - "color": "Cor", - "confirmDelete": "Tem certeza de que deseja excluir esta nota?", - "confirmLeaveShare": "Tem certeza de que deseja sair desta nota compartilhada?", - "contentOrMediaRequired": "Por favor, insira algum conteúdo ou adicione um link/imagem", - "copy": "Copiar", - "copyFailed": "Falha ao copiar nota", - "copySuccess": "Nota copiada com sucesso!", - "createFirstNote": "Crie sua primeira nota", - "date": "Data", - "delete": "Excluir", - "dragToReorder": "Arraste para reordenar", - "duplicate": "Duplicar", - "edit": "Editar nota", - "emptyState": "Nenhuma nota aqui", - "fileTooLarge": "Arquivo muito grande: {fileName}. O tamanho máximo é {maxSize}.", - "improveFailed": "Falha ao melhorar", - "inNotebook": "No caderno", - "invalidDateTime": "Data ou hora inválida", - "invalidFileType": "Tipo de arquivo inválido: {fileName}. Apenas JPEG, PNG, GIF e WebP são permitidos.", - "itemOrMediaRequired": "Por favor, adicione pelo menos um item ou mídia", - "large": "Grande", - "leaveShare": "Sair", - "linkAddFailed": "Falha ao adicionar link", - "linkAdded": "Link adicionado", - "linkMetadataFailed": "Não foi possível obter metadados do link", - "listItem": "Item da lista", - "makeCopy": "Fazer uma cópia", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown DESLIGADO", - "markdownOn": "Markdown LIGADO", - "markdownPlaceholder": "Faça uma nota... (Markdown suportado)", - "medium": "Médio", - "more": "Mais", - "moreOptions": "Mais opções", - "moveFailed": "Falha ao mover", - "newChecklist": "Nova lista de verificação", - "newNote": "Nova nota", - "noContent": "Sem conteúdo", - "noNotes": "Sem notas", - "noNotesFound": "Nenhuma nota encontrada", - "noteCreateFailed": "Falha ao criar nota", - "noteCreated": "Nota criada com sucesso", - "others": "Outros", - "pin": "Fixar", - "pinned": "Fixadas", - "pinnedNotes": "Notas fixadas", - "placeholder": "Faça uma nota...", - "preview": "Visualizar", - "readOnly": "Somente leitura", - "recent": "Recentes", - "redo": "Refazer (Ctrl+Y)", - "redoShortcut": "Refazer (Ctrl+Y)", - "remindMe": "Lembrar-me", - "reminderDateTimeRequired": "Por favor, insira data e hora", - "reminderMustBeFuture": "O lembrete deve estar no futuro", - "reminderPastError": "O lembrete deve estar no futuro", - "reminderRemoved": "Lembrete removido", - "reminderSet": "Lembrete definido para {datetime}", - "remove": "Remover", - "saving": "Salvando...", - "setReminder": "Definir lembrete", - "setReminderButton": "Definir Lembrete", - "share": "Compartilhar", - "shareWithCollaborators": "Compartilhar com colaboradores", - "sharedBy": "Compartilhado por", - "sharedReadOnly": "Esta nota é compartilhada com você no modo somente leitura", - "shortenFailed": "Falha ao encurtar", - "showCollaborators": "Mostrar colaboradores", - "size": "Tamanho", - "small": "Pequeno", - "takeNote": "Faça uma nota...", - "takeNoteMarkdown": "Faça uma nota... (Markdown suportado)", - "time": "Hora", - "title": "Notas", - "titlePlaceholder": "Título", - "transformFailed": "Falha ao transformar", - "unarchive": "Desarquivar", - "undo": "Desfazer (Ctrl+Z)", - "undoShortcut": "Desfazer (Ctrl+Z)", - "unpin": "Desafixar", - "unpinned": "Desafixado", - "untitled": "Sem título", - "uploadFailed": "Falha ao fazer upload de {filename}", - "view": "Ver nota", - "emptyStateTabs": "Nenhuma nota aqui ainda. Use \"Nova nota\" na barra lateral para adicionar uma (sugestões de título com IA aparecem no compositor).", - "viewCards": "Visualização em Cartões", - "viewCardsTooltip": "Grade de cartões com reordenação por arrastar e soltar", - "viewTabs": "Visualização em Lista", - "viewTabsTooltip": "Abas no topo, nota abaixo — arraste abas para reordenar", - "viewModeGroup": "Modo de exibição das notas", - "reorderTabs": "Reordenar aba", - "modified": "Modificado", - "created": "Criado", - "loading": "Carregando...", - "exportPDF": "Exportar PDF", - "savedStatus": "Salvo", - "dirtyStatus": "Modificado", - "completedLabel": "Concluídos", - "notes.emptyNotebook": "Caderno vazio", - "notes.emptyNotebookDesc": "Este caderno não tem notas. Clique em + para criar uma.", - "notes.noNoteSelected": "Nenhuma nota selecionada", - "notes.selectOrCreateNote": "Selecione uma nota da lista ou crie uma nova.", - "commitVersion": "Salvar versão", - "versionSaved": "Versão salva", - "deleteVersion": "Excluir esta versão", - "versionDeleted": "Versão excluída", - "deleteVersionConfirm": "Excluir esta versão permanentemente?", - "historyMode": "Modo de histórico", - "historyModeManual": "Manual (botão commit)", - "historyModeAuto": "Automático (inteligente)", - "historyModeManualDesc": "Criar snapshots manualmente com o botão commit", - "historyModeAutoDesc": "Snapshots automáticos com detecção inteligente", - "history": "Histórico", - "historyRestored": "Versão restaurada", - "historyEnabled": "Histórico ativado", - "historyDisabledDesc": "O histórico está desativado para sua conta.", - "enableHistory": "Ativar histórico", - "historyEmpty": "Nenhuma versão disponível", - "historySelectVersion": "Selecione uma versão para visualizar seu conteúdo", - "sortBy": "Ordenar por", - "sortDateDesc": "Data (recente)", - "sortDateAsc": "Data (antiga)", - "sortTitleAsc": "Título A → Z", - "sortTitleDesc": "Título Z → A" - }, - "pagination": { - "next": "→", - "pageInfo": "Página {currentPage} / {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "Informal", - "expand": "Expandir", - "formal": "Formal", - "improve": "Melhorar", - "shorten": "Encurtar", - "title": "Melhoria de texto" - }, - "profile": { - "accountSettings": "Configurações da conta", - "autoDetect": "Detecção automática", - "changePassword": "Alterar senha", - "changePasswordDescription": "Atualize sua senha. Você precisará da sua senha atual.", - "confirmPassword": "Confirmar senha", - "currentPassword": "Senha atual", - "description": "Atualize suas informações pessoais", - "displayName": "Nome de exibição", - "displaySettings": "Configurações de exibição", - "displaySettingsDescription": "Personalize a aparência e o tamanho da fonte.", - "email": "E-mail", - "fontSize": "Tamanho da fonte", - "fontSizeDescription": "Ajuste o tamanho da fonte para melhor legibilidade. Isso se aplica a todos os textos da interface.", - "fontSizeExtraLarge": "Extra grande", - "fontSizeLarge": "Grande", - "fontSizeMedium": "Médio", - "fontSizeSmall": "Pequeno", - "fontSizeUpdateFailed": "Falha ao atualizar tamanho da fonte", - "fontSizeUpdateSuccess": "Tamanho da fonte atualizado com sucesso", - "languageDescription": "Este idioma será usado para recursos com IA, análise de conteúdo e texto da interface.", - "languagePreferences": "Preferências de idioma", - "languagePreferencesDescription": "Escolha seu idioma preferido para recursos de IA e interface.", - "languageUpdateFailed": "Falha ao atualizar idioma", - "languageUpdateSuccess": "Idioma atualizado com sucesso", - "manageAISettings": "Gerenciar configurações de IA", - "newPassword": "Nova senha", - "passwordChangeFailed": "Falha ao alterar senha", - "passwordChangeSuccess": "Senha alterada com sucesso", - "passwordError": "Erro ao atualizar senha", - "passwordUpdated": "Senha atualizada", - "preferredLanguage": "Idioma preferido", - "profileError": "Erro ao atualizar perfil", - "profileUpdated": "Perfil atualizado", - "recentNotesUpdateFailed": "Falha ao atualizar configuração de notas recentes", - "recentNotesUpdateSuccess": "Configuração de notas recentes atualizada com sucesso", - "selectFontSize": "Selecionar tamanho da fonte", - "selectLanguage": "Selecione um idioma", - "showRecentNotes": "Mostrar Seção de Notas Recentes", - "showRecentNotesDescription": "Exibir notas recentes (últimos 7 dias) na página principal", - "title": "Perfil", - "updateFailed": "Falha ao atualizar perfil", - "updatePassword": "Atualizar senha", - "updateSuccess": "Perfil atualizado" - }, - "reminder": { - "cancel": "Cancelar", - "reminderDate": "Data do lembrete", - "reminderTime": "Hora do lembrete", - "removeReminder": "Remover lembrete", - "save": "Definir lembrete", - "setReminder": "Definir lembrete", - "title": "Lembrete" - }, - "resetPassword": { - "confirmNewPassword": "Confirmar nova senha", - "description": "Digite sua nova senha abaixo.", - "invalidLinkDescription": "Este link de redefinição de senha é inválido ou expirou.", - "invalidLinkTitle": "Link inválido", - "loading": "Carregando...", - "newPassword": "Nova senha", - "passwordMismatch": "As senhas não coincidem", - "requestNewLink": "Solicitar novo link", - "resetPassword": "Redefinir senha", - "resetting": "Redefinindo...", - "success": "Senha redefinida com sucesso. Você pode fazer login agora.", - "title": "Redefinir senha" - }, - "search": { - "exactMatch": "Correspondência exata", - "noResults": "Nenhum resultado encontrado", - "placeholder": "Pesquisar", - "related": "Relacionado", - "resultsFound": "{count} notas encontradas", - "searchPlaceholder": "Pesquise suas notas...", - "searching": "Pesquisando...", - "semanticInProgress": "Pesquisa semântica em andamento...", - "semanticTooltip": "Pesquisa semântica com IA", - "disabledAdmin": "Pesquisa desativada no modo admin" - }, - "semanticSearch": { - "exactMatch": "Correspondência exata", - "related": "Relacionado", - "searching": "Pesquisando..." - }, "settings": { - "about": "Sobre", + "title": "Configurações", + "description": "Gerencie suas configurações e preferências", "account": "Conta", "appearance": "Aparência", - "cleanTags": "Limpar Etiquetas Órfãs", - "cleanTagsDescription": "Remove etiquetas que não são mais usadas por nenhuma nota", - "description": "Gerencie suas configurações e preferências", + "theme": "Tema", + "themeLight": "Claro", + "themeDark": "Escuro", + "themeSystem": "Sistema", + "notifications": "Notificações", "language": "Idioma", - "languageAuto": "Automático", + "selectLanguage": "Selecionar idioma", + "security": "Segurança", + "about": "Sobre", + "version": "Versão", + "settingsSaved": "Configurações salvas", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "Erro ao salvar configurações", "maintenance": "Manutenção", "maintenanceDescription": "Ferramentas para manter a saúde do seu banco de dados", - "notifications": "Notificações", - "privacy": "Privacidade", - "profile": "Perfil", - "searchNoResults": "Nenhum resultado encontrado", - "security": "Segurança", - "selectLanguage": "Selecionar idioma", - "semanticIndexing": "Indexação Semântica", - "semanticIndexingDescription": "Gere vetores para todas as notas para ativar a pesquisa baseada em intenção", - "settingsError": "Erro ao salvar configurações", - "settingsSaved": "Configurações salvas", - "theme": "Tema", - "themeDark": "Escuro", - "themeLight": "Claro", - "themeSystem": "Sistema", - "title": "Configurações", - "version": "Versão", + "cleanTags": "Limpar Etiquetas Órfãs", + "cleanTagsDescription": "Remove etiquetas que não são mais usadas por nenhuma nota", "cleanupDone": "Sincronizados {created} registro(s) de etiqueta(s), removidos {deleted} órfão(s)", "cleanupNothing": "Nada a fazer — as etiquetas já correspondem às suas notas", "cleanupWithErrors": "algumas operações falharam", "cleanupError": "Não foi possível limpar as etiquetas", "indexingComplete": "Indexação concluída: {count} nota(s) processada(s)", "indexingError": "Erro durante a indexação", + "semanticIndexing": "Indexação Semântica", + "semanticIndexingDescription": "Gere vetores para todas as notas para ativar a pesquisa baseada em intenção", + "profile": "Perfil", + "searchNoResults": "Nenhum resultado encontrado", + "languageAuto": "Automático", "emailNotifications": "Notificações por e-mail", "emailNotificationsDesc": "Receba notificações importantes por e-mail", "desktopNotifications": "Notificações na área de trabalho", "desktopNotificationsDesc": "Receba notificações no seu navegador", "notificationsDesc": "Gerencie suas preferências de notificação" }, - "sidebar": { - "archive": "Arquivo", - "editLabels": "Editar etiquetas", + "profile": { + "title": "Perfil", + "description": "Atualize suas informações pessoais", + "displayName": "Nome de exibição", + "email": "E-mail", + "changePassword": "Alterar senha", + "changePasswordDescription": "Atualize sua senha. Você precisará da sua senha atual.", + "currentPassword": "Senha atual", + "newPassword": "Nova senha", + "confirmPassword": "Confirmar senha", + "updatePassword": "Atualizar senha", + "passwordChangeSuccess": "Senha alterada com sucesso", + "passwordChangeFailed": "Falha ao alterar senha", + "passwordUpdated": "Senha atualizada", + "passwordError": "Erro ao atualizar senha", + "languagePreferences": "Preferências de idioma", + "languagePreferencesDescription": "Escolha seu idioma preferido para recursos de IA e interface.", + "preferredLanguage": "Idioma preferido", + "selectLanguage": "Selecione um idioma", + "languageDescription": "Este idioma será usado para recursos com IA, análise de conteúdo e texto da interface.", + "autoDetect": "Detecção automática", + "updateSuccess": "Perfil atualizado", + "updateFailed": "Falha ao atualizar perfil", + "languageUpdateSuccess": "Idioma atualizado com sucesso", + "languageUpdateFailed": "Falha ao atualizar idioma", + "profileUpdated": "Perfil atualizado", + "profileError": "Erro ao atualizar perfil", + "accountSettings": "Configurações da conta", + "manageAISettings": "Gerenciar configurações de IA", + "displaySettings": "Configurações de exibição", + "displaySettingsDescription": "Personalize a aparência e o tamanho da fonte.", + "fontSize": "Tamanho da fonte", + "selectFontSize": "Selecionar tamanho da fonte", + "fontSizeSmall": "Pequeno", + "fontSizeMedium": "Médio", + "fontSizeLarge": "Grande", + "fontSizeExtraLarge": "Extra grande", + "fontSizeDescription": "Ajuste o tamanho da fonte para melhor legibilidade. Isso se aplica a todos os textos da interface.", + "fontSizeUpdateSuccess": "Tamanho da fonte atualizado com sucesso", + "fontSizeUpdateFailed": "Falha ao atualizar tamanho da fonte", + "showRecentNotes": "Mostrar Seção de Notas Recentes", + "showRecentNotesDescription": "Exibir notas recentes (últimos 7 dias) na página principal", + "recentNotesUpdateSuccess": "Configuração de notas recentes atualizada com sucesso", + "recentNotesUpdateFailed": "Falha ao atualizar configuração de notas recentes" + }, + "aiSettings": { + "title": "Configurações de IA", + "description": "Configure seus recursos e preferências com IA", + "features": "Recursos de IA", + "provider": "Provedor de IA", + "providerAuto": "Automático (Recomendado)", + "providerOllama": "Ollama (Local)", + "providerOpenAI": "OpenAI (Nuvem)", + "frequency": "Frequência", + "frequencyDaily": "Diariamente", + "frequencyWeekly": "Semanalmente", + "saving": "Salvando...", + "saved": "Configuração atualizada", + "error": "Falha ao atualizar configuração", + "titleSuggestionsDesc": "Sugerir títulos para notas sem título após 50+ palavras", + "paragraphRefactorDesc": "Opções de melhoria de texto com IA", + "frequencyDesc": "Com que frequência analisar conexões entre notas", + "providerDesc": "Escolha seu provedor de IA preferido", + "providerAutoDesc": "Ollama quando disponível, OpenAI como alternativa", + "providerOllamaDesc": "100% privado, roda localmente na sua máquina", + "providerOpenAIDesc": "Mais preciso, requer chave de API" + }, + "general": { + "loading": "Carregando...", + "save": "Salvar", + "cancel": "Cancelar", + "add": "Adicionar", + "edit": "Editar", + "confirm": "Confirmar", + "close": "Fechar", + "back": "Voltar", + "next": "Próximo", + "previous": "Anterior", + "submit": "Enviar", + "reset": "Redefinir", + "apply": "Aplicar", + "clear": "Limpar", + "select": "Selecionar", + "tryAgain": "Por favor, tente novamente", + "error": "Ocorreu um erro", + "operationSuccess": "Operação bem-sucedida", + "operationFailed": "Operação falhou", + "testConnection": "Testar Conexão", + "clean": "Limpar", + "indexAll": "Indexar Tudo", + "preview": "Visualizar" + }, + "colors": { + "default": "Padrão", + "red": "Vermelho", + "blue": "Azul", + "green": "Verde", + "yellow": "Amarelo", + "purple": "Roxo", + "pink": "Rosa", + "orange": "Laranja", + "gray": "Cinza" + }, + "reminder": { + "title": "Lembrete", + "setReminder": "Definir lembrete", + "removeReminder": "Remover lembrete", + "reminderDate": "Data do lembrete", + "reminderTime": "Hora do lembrete", + "save": "Definir lembrete", + "cancel": "Cancelar" + }, + "reminders": { + "title": "Lembretes", + "empty": "Nenhum lembrete", + "emptyDescription": "Adicione um lembrete a uma nota para encontrá-lo aqui.", + "upcoming": "Próximos", + "overdue": "Atrasados", + "done": "Concluídos", + "markDone": "Marcar como concluído", + "markUndone": "Marcar como não concluído", + "todayAt": "Hoje às {time}", + "tomorrowAt": "Amanhã às {time}" + }, + "notebook": { + "create": "Criar caderno", + "createNew": "Criar novo caderno", + "createDescription": "Inicie uma nova coleção para organizar suas notas, ideias e projetos de forma eficiente.", + "name": "Nome do caderno", + "namePlaceholder": "ex. Estratégia de Marketing Q4", + "myNotebook": "Meu Caderno", + "saving": "Salvando...", + "selectIcon": "Ícone", + "selectColor": "Cor", + "cancel": "Cancelar", + "creating": "Criando...", + "edit": "Editar caderno", + "editDescription": "Mude o nome, ícone e cor do seu caderno.", + "delete": "Excluir caderno", + "deleteWarning": "Tem certeza de que deseja excluir este caderno? As notas serão movidas para Notas Gerais.", + "deleteConfirm": "Excluir", + "summary": "Resumo do caderno", + "summaryDescription": "Gere um resumo baseado em IA de todas as notas neste caderno.", + "generating": "Gerando resumo...", + "summaryError": "Erro ao gerar resumo", "labels": "Etiquetas", - "notes": "Notas", - "reminders": "Lembretes", - "trash": "Lixeira", - "newNoteTabs": "Nova Nota", - "newNoteTabsHint": "Criar nota neste caderno", - "noLabelsInNotebook": "Nenhuma etiqueta neste caderno ainda" + "noLabels": "Sem etiquetas", + "pdfTitle": "Resumo — {name}", + "pdfNotesLabel": "Notas:", + "pdfGeneratedOn": "Gerado em:", + "confidence": "confiança", + "savingReminder": "Falha ao salvar lembrete", + "removingReminder": "Falha ao remover lembrete", + "generatingDescription": "Please wait..." + }, + "notebookSuggestion": { + "title": "Mover para {name}?", + "description": "Esta nota parece pertencer a este caderno", + "move": "Mover", + "dismiss": "Descartar", + "dismissIn": "Descartar (fecha em {timeLeft}s)", + "moveToNotebook": "Mover para caderno", + "generalNotes": "Notas gerais" + }, + "admin": { + "title": "Painel de Administração", + "userManagement": "Gerenciamento de Usuários", + "chat": "Chat IA", + "lab": "O Laboratório", + "agents": "Agentes", + "workspace": "Espaço de Trabalho", + "settings": "Configurações do Administrador", + "security": { + "title": "Configurações de Segurança", + "description": "Gerencie controle de acesso e políticas de registro.", + "allowPublicRegistration": "Permitir Registro Público", + "allowPublicRegistrationDescription": "Se desativado, novos usuários só podem ser adicionados por um Administrador pela página de Gerenciamento de Usuários.", + "updateSuccess": "Configurações de segurança atualizadas", + "updateFailed": "Falha ao atualizar configurações de segurança" + }, + "ai": { + "title": "Configuração de IA", + "description": "Configure provedores de IA para etiquetagem automática e pesquisa semântica. Use provedores diferentes para melhor desempenho.", + "tagsGenerationProvider": "Provedor de Geração de Etiquetas", + "tagsGenerationDescription": "Provedor de IA para sugestões automáticas de etiquetas. Recomendado: Ollama (gratuito, local).", + "embeddingsProvider": "Provedor de Embeddings", + "embeddingsDescription": "Provedor de IA para embeddings de pesquisa semântica. Recomendado: OpenAI (melhor qualidade).", + "chatProvider": "Provedor de Chat", + "chatDescription": "Provedor de IA para o assistente de chat. Usa o provedor de Etiquetas como alternativa se não configurado.", + "provider": "Provedor", + "baseUrl": "Base URL", + "model": "Modelo", + "apiKey": "API Key", + "selectOllamaModel": "Selecione um modelo Ollama instalado no seu sistema", + "openAIKeyDescription": "Sua chave de API OpenAI do platform.openai.com", + "modelRecommendations": "gpt-4o-mini = Melhor custo-benefício • gpt-4o = Melhor qualidade", + "commonModelsDescription": "Modelos comuns para APIs compatíveis com OpenAI", + "selectEmbeddingModel": "Selecione um modelo de embedding instalado no seu sistema", + "commonEmbeddingModels": "Modelos de embedding comuns para APIs compatíveis com OpenAI", + "saving": "Salvando...", + "saveSettings": "Salvar Configurações de IA", + "openTestPanel": "Abrir Painel de Testes de IA", + "updateSuccess": "Configurações de IA atualizadas com sucesso", + "updateFailed": "Falha ao atualizar configurações de IA", + "providerTagsRequired": "AI_PROVIDER_TAGS é obrigatório", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING é obrigatório", + "providerOllamaOption": "🦙 Ollama (Local e Gratuito)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 Compatível com OpenAI (Personalizado)", + "bestValue": "Melhor custo-benefício", + "bestQuality": "Melhor qualidade", + "saved": "(Salvo)", + "fetchModelsFailed": "Falha ao buscar modelos", + "refreshModels": "Atualizar modelos", + "configured": "Configurado", + "fetchingModels": "Buscando modelos...", + "clickToLoadModels": "Clique em ↺ para carregar modelos", + "searchModel": "Buscar modelo...", + "noModels": "Sem modelos. Clique em ↺", + "modelsAvailable": "{count} modelo(s) disponível(is)", + "enterUrlToLoad": "Insira a URL e clique em ↺", + "currentProvider": "(Atual: {provider})", + "pageTitle": "Gestão de IA", + "pageDescription": "Monitorar e configurar recursos de IA", + "configure": "Configurar", + "features": "Recursos de IA", + "providerStatus": "Status de provedores de IA", + "recentRequests": "Solicitações de IA recentes", + "comingSoon": "Em breve", + "activeFeatures": "Recursos ativos", + "successRate": "Taxa de sucesso", + "avgResponseTime": "Tempo médio de resposta", + "configuredProviders": "Provedores configurados", + "settingUpdated": "Configuração atualizada", + "updateFailedShort": "Falha na atualização", + "titleSuggestions": "Sugestões de título", + "titleSuggestionsDesc": "Sugere títulos para notas após 50+ palavras", + "aiAssistant": "Assistente de IA", + "aiAssistantDesc": "Ativar chat de IA e ferramentas de melhoria", + "memoryEchoFeature": "Notei algo...", + "memoryEchoFeatureDesc": "Análise diária de conexões entre suas notas", + "languageDetection": "Detecção de idioma", + "languageDetectionDesc": "Detecta automaticamente o idioma de cada nota", + "autoLabeling": "Rotulagem automática", + "autoLabelingDesc": "Sugere e aplica rótulos automaticamente" + }, + "resend": { + "title": "Resend (Recomendado)", + "description": "Envie e-mails via API Resend. Tem prioridade sobre SMTP se configurado.", + "apiKey": "Chave API do Resend", + "apiKeyHint": "Obtenha sua chave API em resend.com. Usada para notificações de agentes e redefinição de senhas.", + "saveSettings": "Salvar configurações do Resend", + "updateSuccess": "Configurações do Resend atualizadas", + "updateFailed": "Falha ao atualizar configurações do Resend", + "configured": "Resend está configurado e ativo" + }, + "email": { + "title": "Configuração de E-mail", + "description": "Configure o envio de e-mails para notificações de agentes e redefinição de senhas.", + "provider": "Provedor de E-mail", + "saveSettings": "Salvar configurações de e-mail", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "smtp": { + "title": "Configuração SMTP", + "description": "Configure o servidor de e-mail para redefinição de senhas.", + "host": "Host", + "port": "Porta", + "username": "Nome de Usuário", + "password": "Senha", + "fromEmail": "E-mail do Remetente", + "forceSSL": "Forçar SSL/TLS (geralmente para porta 465)", + "ignoreCertErrors": "Ignorar Erros de Certificado (Apenas auto-hospedado/desenvolvimento)", + "saveSettings": "Salvar Configurações SMTP", + "sending": "Enviando...", + "testEmail": "E-mail de Teste", + "updateSuccess": "Configurações SMTP atualizadas", + "updateFailed": "Falha ao atualizar configurações SMTP", + "testSuccess": "E-mail de teste enviado com sucesso!", + "testFailed": "Falha: {error}" + }, + "users": { + "createUser": "Criar Usuário", + "addUser": "Adicionar Usuário", + "createUserDescription": "Adicione um novo usuário ao sistema.", + "name": "Nome", + "email": "E-mail", + "password": "Senha", + "role": "Função", + "createSuccess": "Usuário criado com sucesso", + "createFailed": "Falha ao criar usuário", + "deleteSuccess": "Usuário excluído", + "deleteFailed": "Falha ao excluir", + "roleUpdateSuccess": "Função do usuário atualizada para {role}", + "roleUpdateFailed": "Falha ao atualizar função", + "demote": "Rebaixar", + "promote": "Promover", + "confirmDelete": "Tem certeza de que deseja excluir este usuário?", + "table": { + "name": "Nome", + "email": "E-mail", + "role": "Função", + "createdAt": "Criado em", + "actions": "Ações" + }, + "roles": { + "user": "Usuário", + "admin": "Administrador" + }, + "title": "Usuários", + "description": "Gerenciar usuários e permissões" + }, + "aiTest": { + "title": "Teste de Provedores de IA", + "description": "Teste seus provedores de IA para geração de etiquetas e embeddings de pesquisa semântica", + "tagsTestTitle": "Teste de Geração de Etiquetas", + "tagsTestDescription": "Teste o provedor de IA responsável pelas sugestões automáticas de etiquetas", + "embeddingsTestTitle": "Teste de Embeddings", + "embeddingsTestDescription": "Teste o provedor de IA responsável pelos embeddings de pesquisa semântica", + "howItWorksTitle": "Como Funciona o Teste", + "tagsGenerationTest": "Teste de Geração de Etiquetas:", + "tagsStep1": "Envia uma nota de exemplo para o provedor de IA", + "tagsStep2": "Solicita 3-5 etiquetas relevantes com base no conteúdo", + "tagsStep3": "Exibe as etiquetas geradas com pontuações de confiança", + "tagsStep4": "Mede o tempo de resposta", + "embeddingsTestLabel": "Teste de Embeddings:", + "embeddingsStep1": "Envia um texto de exemplo para o provedor de embeddings", + "embeddingsStep2": "Gera uma representação vetorial (lista de números)", + "embeddingsStep3": "Exibe as dimensões do embedding e valores de exemplo", + "embeddingsStep4": "Verifica se o vetor é válido e está formatado corretamente", + "tipContent": "Você pode usar provedores diferentes para etiquetas e embeddings! Por exemplo, use Ollama (gratuito) para etiquetas e OpenAI (melhor qualidade) para embeddings, otimizando custos e desempenho.", + "provider": "Provedor:", + "model": "Modelo:", + "testing": "Testando...", + "runTest": "Executar Teste", + "testPassed": "Teste Passou", + "testFailed": "Teste Falhou", + "testSuccessToast": "Teste de {type} realizado com sucesso!", + "testFailedToast": "Teste de {type} falhou", + "testingType": "Testando {type}...", + "technicalDetails": "Detalhes técnicos", + "responseTime": "Tempo de resposta: {time}ms", + "generatedTags": "Etiquetas Geradas:", + "embeddingDimensions": "Dimensões do Embedding:", + "vectorDimensions": "dimensões vetoriais", + "first5Values": "Primeiros 5 valores:", + "error": "Erro:", + "testError": "Erro no Teste: {error}", + "tipTitle": "Dica:", + "tipDescription": "Use o Painel de Testes de IA para diagnosticar problemas de configuração antes de testar." + }, + "sidebar": { + "dashboard": "Painel", + "users": "Usuários", + "aiManagement": "Gerenciamento de IA", + "chat": "Chat IA", + "lab": "O Laboratório (Ideias)", + "agents": "Agentes", + "settings": "Configurações" + }, + "metrics": { + "vsLastPeriod": "em relação ao período anterior" + }, + "tools": { + "title": "Ferramentas do Agente", + "description": "Configure ferramentas externas para uso dos agentes: pesquisa na web, extração web e acesso à API.", + "searchProvider": "Provedor de Pesquisa na Web", + "searxng": "SearXNG (Auto-hospedado)", + "brave": "Brave Search API", + "both": "Ambos (SearXNG principal, Brave como fallback)", + "searxngUrl": "URL do SearXNG", + "braveKey": "Chave da Brave Search API", + "jinaKey": "Chave da Jina Reader API", + "jinaKeyOptional": "Opcional — funciona sem chave, mas com limites de taxa", + "jinaKeyDescription": "Usado para extração web. Funciona sem chave, mas com limites de taxa.", + "saveSettings": "Salvar Configurações de Ferramentas", + "updateSuccess": "Configurações de ferramentas atualizadas com sucesso", + "updateFailed": "Falha ao atualizar configurações de ferramentas", + "testing": "Testando...", + "testSearch": "Testar pesquisa web" + }, + "settingsDescription": "Configurar definições da aplicação", + "dashboard": { + "title": "Painel", + "description": "Visão geral das métricas", + "recentActivity": "Atividade recente", + "recentActivityPlaceholder": "Atividade recente será exibida aqui." + }, + "error": { + "title": "Erro no painel administrativo", + "description": "Falha ao renderizar. Tente novamente.", + "retry": "Tentar novamente" + } + }, + "about": { + "title": "Sobre", + "description": "Informações sobre o aplicativo", + "appName": "Memento", + "appDescription": "Um poderoso aplicativo de notas com recursos baseados em IA", + "version": "Versão", + "buildDate": "Data de compilação", + "platform": "Plataforma", + "platformWeb": "Web", + "features": { + "title": "Recursos", + "description": "Capacidades baseadas em IA", + "titleSuggestions": "Sugestões de título com IA", + "semanticSearch": "Pesquisa semântica com embeddings", + "paragraphReformulation": "Reformulação de parágrafos", + "memoryEcho": "Insights diários do Memory Echo", + "notebookOrganization": "Organização por cadernos", + "dragDrop": "Gerenciamento de notas com arrastar e soltar", + "labelSystem": "Sistema de etiquetas", + "multipleProviders": "Múltiplos provedores de IA (OpenAI, Ollama)" + }, + "technology": { + "title": "Stack de tecnologia", + "description": "Construído com tecnologias modernas", + "frontend": "Frontend", + "backend": "Backend", + "database": "Banco de dados", + "authentication": "Autenticação", + "ai": "IA", + "ui": "UI", + "testing": "Testes" + }, + "support": { + "title": "Suporte", + "description": "Obtenha ajuda e feedback", + "documentation": "Documentação", + "reportIssues": "Reportar problemas", + "feedback": "Feedback" + } }, "support": { - "aiApiCosts": "Custos de API de IA:", - "buyMeACoffee": "Me pague um café", - "contributeCode": "Contribuir com código", - "description": "Memento é 100% gratuito e de código aberto. Seu apoio ajuda a mantê-lo assim.", - "directImpact": "Impacto direto", - "domainSSL": "Domínio e SSL:", - "donateOnKofi": "Doar no Ko-fi", - "donationDescription": "Faça uma doação única ou torne-se um apoiador mensal.", - "githubDescription": "Apoio recorrente • Reconhecimento público • Focado em desenvolvedores", - "hostingServers": "Hospedagem e servidores:", - "howSupportHelps": "Como seu apoio ajuda", - "kofiDescription": "Sem taxas de plataforma • Pagamentos instantâneos • Seguro", - "otherWaysTitle": "Outras formas de apoiar", - "reportBug": "Reportar um bug", - "shareTwitter": "Compartilhar no Twitter", - "sponsorDescription": "Torne-se um patrocinador mensal e obtenha reconhecimento.", - "sponsorOnGithub": "Patrocine no GitHub", - "sponsorPerks": "Benefícios do patrocínio", - "starGithub": "Estrela no GitHub", "title": "Apoie o desenvolvimento do Memento", - "totalExpenses": "Despesas totais:", + "description": "Memento é 100% gratuito e de código aberto. Seu apoio ajuda a mantê-lo assim.", + "buyMeACoffee": "Me pague um café", + "donationDescription": "Faça uma doação única ou torne-se um apoiador mensal.", + "donateOnKofi": "Doar no Ko-fi", + "kofiDescription": "Sem taxas de plataforma • Pagamentos instantâneos • Seguro", + "sponsorOnGithub": "Patrocine no GitHub", + "sponsorDescription": "Torne-se um patrocinador mensal e obtenha reconhecimento.", + "githubDescription": "Apoio recorrente • Reconhecimento público • Focado em desenvolvedores", + "howSupportHelps": "Como seu apoio ajuda", + "directImpact": "Impacto direto", + "sponsorPerks": "Benefícios do patrocínio", "transparency": "Transparência", - "transparencyDescription": "Acredito em total transparência. Veja como as doações são usadas:" + "transparencyDescription": "Acredito em total transparência. Veja como as doações são usadas:", + "hostingServers": "Hospedagem e servidores:", + "domainSSL": "Domínio e SSL:", + "aiApiCosts": "Custos de API de IA:", + "totalExpenses": "Despesas totais:", + "otherWaysTitle": "Outras formas de apoiar", + "starGithub": "Estrela no GitHub", + "reportBug": "Reportar um bug", + "contributeCode": "Contribuir com código", + "shareTwitter": "Compartilhar no Twitter" + }, + "demoMode": { + "title": "Modo demonstração", + "activated": "Modo demonstração ativado! Memory Echo funcionará instantaneamente.", + "deactivated": "Modo demonstração desativado. Parâmetros normais restaurados.", + "toggleFailed": "Falha ao alternar modo demonstração", + "description": "Acelera Memory Echo para testes. Conexões aparecem instantaneamente.", + "parametersActive": "Parâmetros de demonstração ativos:", + "similarityThreshold": "Limite de similaridade de 50% (normalmente 75%)", + "delayBetweenNotes": "Atraso de 0 dias entre notas (normalmente 7 dias)", + "unlimitedInsights": "Insights ilimitados (sem limites de frequência)", + "createNotesTip": "Crie 2+ notas similares e veja Memory Echo em ação!" + }, + "resetPassword": { + "title": "Redefinir senha", + "description": "Digite sua nova senha abaixo.", + "invalidLinkTitle": "Link inválido", + "invalidLinkDescription": "Este link de redefinição de senha é inválido ou expirou.", + "requestNewLink": "Solicitar novo link", + "newPassword": "Nova senha", + "confirmNewPassword": "Confirmar nova senha", + "resetting": "Redefinindo...", + "resetPassword": "Redefinir senha", + "passwordMismatch": "As senhas não coincidem", + "success": "Senha redefinida com sucesso. Você pode fazer login agora.", + "loading": "Carregando..." + }, + "dataManagement": { + "title": "Gerenciamento de Dados", + "toolsDescription": "Ferramentas para manter a saúde do seu banco de dados", + "exporting": "Exportando...", + "importing": "Importando...", + "deleting": "Excluindo...", + "dangerZone": "Zona de perigo", + "dangerZoneDescription": "Estas ações são irreversíveis", + "indexingComplete": "Indexação concluída", + "indexingError": "Erro na indexação", + "cleanupComplete": "Limpeza concluída", + "cleanupError": "Erro na limpeza", + "export": { + "title": "Exportar Todas as Notas", + "description": "Baixe todas as suas notas como um arquivo JSON. Isso inclui todo o conteúdo, etiquetas e metadados.", + "button": "Exportar Notas", + "success": "Notas exportadas com sucesso", + "failed": "Falha ao exportar notas" + }, + "import": { + "title": "Importar Notas", + "description": "Envie um arquivo JSON para importar notas. Isso adicionará às suas notas existentes, não as substituirá.", + "button": "Importar Notas", + "success": "Importadas {count} notas", + "failed": "Falha ao importar notas" + }, + "delete": { + "title": "Excluir Todas as Notas", + "description": "Exclua permanentemente todas as suas notas. Esta ação não pode ser desfeita.", + "button": "Excluir Todas as Notas", + "confirm": "Tem certeza? Isso excluirá permanentemente todas as suas notas.", + "success": "Todas as notas excluídas", + "failed": "Falha ao excluir notas" + }, + "indexing": { + "title": "Reconstruir Índice de Pesquisa", + "description": "Regenerar embeddings para todas as notas para melhorar a pesquisa semântica.", + "button": "Reconstruir Índice", + "success": "Indexação concluída: {count} notas processadas", + "failed": "Erro durante a indexação" + }, + "cleanup": { + "title": "Limpar Dados Órfãos", + "description": "Remove etiquetas e conexões que referenciam notas excluídas.", + "button": "Limpar", + "failed": "Erro durante a limpeza" + } + }, + "appearance": { + "title": "Aparência", + "description": "Personalize a aparência do aplicativo", + "notesViewDescription": "Escolha como as notas são exibidas na página inicial e nos cadernos.", + "notesViewLabel": "Layout das notas", + "notesViewTabs": "Abas (estilo OneNote)", + "notesViewMasonry": "Cartões (grade)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "Configurações gerais", + "description": "Configurações gerais do aplicativo" + }, + "toast": { + "saved": "Configuração salva", + "saveFailed": "Falha ao salvar configuração", + "operationSuccess": "Operação bem-sucedida", + "operationFailed": "Operação falhou", + "openingConnection": "Abrindo conexão...", + "openConnectionFailed": "Falha ao abrir conexão", + "thanksFeedback": "Obrigado pelo seu feedback!", + "thanksFeedbackImproving": "Obrigado! Usaremos isso para melhorar.", + "feedbackFailed": "Falha ao enviar feedback", + "notesFusionSuccess": "Notas mescladas com sucesso!" }, "testPages": { "titleSuggestions": { - "analyzing": "Analisando...", - "contentLabel": "Conteúdo (precisa de mais de 50 palavras):", - "error": "Erro:", - "idle": "Inativo", - "noSuggestions": "Sem sugestões ainda. Digite 50+ palavras e espere 2 segundos.", - "placeholder": "Digite pelo menos 50 palavras aqui...", - "status": "Status:", - "suggestions": "Sugestões ({count}):", "title": "Testar sugestões de título", - "wordCount": "Contagem de palavras:" + "contentLabel": "Conteúdo (precisa de mais de 50 palavras):", + "placeholder": "Digite pelo menos 50 palavras aqui...", + "wordCount": "Contagem de palavras:", + "status": "Status:", + "analyzing": "Analisando...", + "idle": "Inativo", + "error": "Erro:", + "suggestions": "Sugestões ({count}):", + "noSuggestions": "Sem sugestões ainda. Digite 50+ palavras e espere 2 segundos." } }, - "time": { - "daysAgo": "{count} dias atrás", - "hoursAgo": "{count} horas atrás", - "justNow": "Agora", - "minutesAgo": "{count} minutos atrás", - "today": "Hoje", - "tomorrow": "Amanhã", - "yesterday": "Ontem" - }, - "titleSuggestions": { - "available": "Sugestões de título", - "dismiss": "Descartar", - "generating": "Gerando...", - "selectTitle": "Selecione um título", - "title": "Sugestões de IA" - }, - "toast": { - "feedbackFailed": "Falha ao enviar feedback", - "notesFusionSuccess": "Notas mescladas com sucesso!", - "openConnectionFailed": "Falha ao abrir conexão", - "openingConnection": "Abrindo conexão...", - "operationFailed": "Operação falhou", - "operationSuccess": "Operação bem-sucedida", - "saveFailed": "Falha ao salvar configuração", - "saved": "Configuração salva", - "thanksFeedback": "Obrigado pelo seu feedback!", - "thanksFeedbackImproving": "Obrigado! Usaremos isso para melhorar." - }, "trash": { "title": "Lixeira", "empty": "A lixeira está vazia", @@ -1228,11 +1212,83 @@ "permanentDelete": "Excluir permanentemente", "permanentDeleteConfirm": "Esta nota será excluída permanentemente. Esta ação não pode ser desfeita." }, + "footer": { + "privacy": "Privacidade", + "terms": "Termos", + "openSource": "Clone de código aberto" + }, + "connection": { + "similarityInfo": "Estas notas estão conectadas por {similarity}% de similaridade", + "clickToView": "Clique para ver a nota", + "isHelpful": "Esta conexão é útil?", + "helpful": "Útil", + "notHelpful": "Não útil", + "memoryEchoDiscovery": "Descoberta Memory Echo" + }, + "diagnostics": { + "title": "Diagnósticos", + "description": "Verifique o status da conexão com seu provedor de IA", + "configuredProvider": "Provedor configurado", + "apiStatus": "Status da API", + "operational": "Operacional", + "errorStatus": "Erro", + "checking": "Verificando...", + "testDetails": "Detalhes do teste:", + "troubleshootingTitle": "Dicas de solução de problemas:", + "tip1": "Certifique-se de que o Ollama está rodando (ollama serve)", + "tip2": "Verifique se o modelo está instalado (ollama pull llama3)", + "tip3": "Verifique sua chave API para OpenAI", + "tip4": "Verifique a conectividade de rede" + }, + "batch": { + "organizeWithAI": "Organizar com IA", + "organize": "Organizar" + }, + "common": { + "unknown": "Desconhecido", + "notAvailable": "Não disponível", + "loading": "Carregando...", + "error": "Erro", + "success": "Sucesso", + "confirm": "Confirmar", + "cancel": "Cancelar", + "close": "Fechar", + "save": "Salvar", + "delete": "Excluir", + "edit": "Editar", + "add": "Adicionar", + "remove": "Remover", + "search": "Pesquisar", + "noResults": "Sem resultados", + "required": "Obrigatório", + "optional": "Opcional" + }, + "time": { + "justNow": "Agora", + "minutesAgo": "{count} minutos atrás", + "hoursAgo": "{count} horas atrás", + "daysAgo": "{count} dias atrás", + "yesterday": "Ontem", + "today": "Hoje", + "tomorrow": "Amanhã" + }, + "favorites": { + "title": "Favoritos", + "toggleSection": "Alternar seção", + "noFavorites": "Sem favoritos", + "pinToFavorite": "Adicionar aos favoritos" + }, + "notebooks": { + "create": "Criar caderno", + "allNotebooks": "Todos os cadernos", + "noNotebooks": "Nenhum caderno", + "createFirst": "Crie seu primeiro caderno" + }, "ui": { "close": "Fechar", - "collapse": "Recolher", + "open": "Abrir", "expand": "Expandir", - "open": "Abrir" + "collapse": "Recolher" }, "mcpSettings": { "title": "Configurações MCP", @@ -1299,6 +1355,10 @@ "subtitle": "Automatize suas tarefas de monitoramento e pesquisa", "newAgent": "Novo agente", "myAgents": "Meus agentes", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "Nenhum agente", "noAgentsDescription": "Crie seu primeiro agente ou instale um modelo abaixo para automatizar suas tarefas de monitoramento.", "types": { @@ -1341,7 +1401,9 @@ "researchTopic": "Tema de pesquisa", "researchTopicPlaceholder": "ex: Últimos avanços em inteligência artificial", "notifyEmail": "Notificação por e-mail", - "notifyEmailHint": "Receba um e-mail com os resultados do agente após cada execução" + "notifyEmailHint": "Receba um e-mail com os resultados do agente após cada execução", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "Manual", @@ -1350,6 +1412,22 @@ "weekly": "Semanalmente", "monthly": "Mensalmente" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "Bem-sucedido", "failure": "Falhou", @@ -1378,7 +1456,9 @@ "toggleError": "Erro ao alternar o agente", "installSuccess": "\"{name}\" instalado", "installError": "Erro durante a instalação", - "saveError": "Erro ao salvar" + "saveError": "Erro ao salvar", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "Modelos", @@ -1491,7 +1571,8 @@ "welcome": "Estou aqui para ajudá-lo a sintetizar suas notas, gerar novas ideias ou discutir seus cadernos.", "searching": "Pesquisando...", "noNotesFoundForContext": "Nenhuma nota relevante encontrada para esta pergunta. Responda com seu conhecimento geral.", - "webSearch": "Pesquisa na web" + "webSearch": "Pesquisa na web", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "O Laboratório", @@ -1508,30 +1589,8 @@ "createFailed": "Falha ao criar", "deleteSpace": "Excluir espaço", "deleted": "Espaço excluído", - "deleteError": "Erro ao excluir" - }, - "notification": { - "shared": "compartilhou \"{title}\"", - "untitled": "Sem título", - "notifications": "Notificações", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "Compartilhamento recusado", - "noNotifications": "No new notifications", - "removed": "Nota removida da lista" - }, - "reminders": { - "title": "Lembretes", - "empty": "Nenhum lembrete", - "emptyDescription": "Adicione um lembrete a uma nota para encontrá-lo aqui.", - "upcoming": "Próximos", - "overdue": "Atrasados", - "done": "Concluídos", - "markDone": "Marcar como concluído", - "markUndone": "Marcar como não concluído", - "todayAt": "Hoje às {time}", - "tomorrowAt": "Amanhã às {time}" + "deleteError": "Erro ao excluir", + "rename": "Rename" }, "lab": { "initializing": "Inicializando espaço", diff --git a/memento-note/locales/ru.json b/memento-note/locales/ru.json index 0a0346f..0e3b8cd 100644 --- a/memento-note/locales/ru.json +++ b/memento-note/locales/ru.json @@ -1,350 +1,366 @@ { - "about": { - "appDescription": "Мощное приложение для заметок с функциями на базе ИИ", - "appName": "Memento", - "buildDate": "Дата сборки", - "description": "Информация о приложении", - "features": { - "description": "Возможности на базе ИИ", - "dragDrop": "Управление заметками перетаскиванием", - "labelSystem": "Система меток", - "memoryEcho": "Ежедневные идеи Memory Echo", - "multipleProviders": "Несколько провайдеров ИИ (OpenAI, Ollama)", - "notebookOrganization": "Организация по блокнотам", - "paragraphReformulation": "Реформулировка абзацев", - "semanticSearch": "Семантический поиск с эмбеддингами", - "title": "Функции", - "titleSuggestions": "Предложения заголовков с ИИ" - }, - "platform": "Платформа", - "platformWeb": "Веб", - "support": { - "description": "Получите помощь и оставьте отзыв", - "documentation": "Документация", - "feedback": "Отзыв", - "reportIssues": "Сообщить о проблемах", - "title": "Поддержка" - }, - "technology": { - "ai": "ИИ", - "authentication": "Аутентификация", - "backend": "Бэкенд", - "database": "База данных", - "description": "Создано с использованием современных технологий", - "frontend": "Фронтенд", - "testing": "Тестирование", - "title": "Технологический стек", - "ui": "UI" - }, - "title": "О программе", - "version": "Версия" + "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": "Вернуться ко входу", + "signOut": "Выйти", + "confirmPassword": "Подтвердите пароль", + "confirmPasswordPlaceholder": "Подтвердите пароль" }, - "admin": { - "ai": { - "apiKey": "API-ключ", - "baseUrl": "Базовый URL", - "commonEmbeddingModels": "Популярные модели эмбеддингов для API, совместимых с OpenAI", - "commonModelsDescription": "Популярные модели для API, совместимых с OpenAI", - "description": "Настройте провайдеров ИИ для автоматических тегов и семантического поиска. Используйте разных провайдеров для оптимальной производительности.", - "embeddingsDescription": "Провайдер ИИ для эмбеддингов семантического поиска. Рекомендуется: OpenAI (лучшее качество).", - "embeddingsProvider": "Провайдер эмбеддингов", - "model": "Модель", - "modelRecommendations": "gpt-4o-mini = Лучшее соотношение • gpt-4o = Лучшее качество", - "openAIKeyDescription": "Ваш API-ключ OpenAI с platform.openai.com", - "openTestPanel": "Открыть панель тестирования ИИ", - "provider": "Провайдер", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING обязателен", - "providerTagsRequired": "AI_PROVIDER_TAGS обязателен", - "saveSettings": "Сохранить настройки ИИ", - "saving": "Сохранение...", - "selectEmbeddingModel": "Выберите модель эмбеддингов, установленную в вашей системе", - "selectOllamaModel": "Выберите модель Ollama, установленную в вашей системе", - "tagsGenerationDescription": "Провайдер ИИ для автоматических предложений тегов. Рекомендуется: Ollama (бесплатно, локально).", - "tagsGenerationProvider": "Провайдер генерации тегов", - "title": "Конфигурация ИИ", - "updateFailed": "Не удалось обновить настройки ИИ", - "updateSuccess": "Настройки ИИ успешно обновлены", - "bestValue": "Лучшее соотношение цена/качество", - "bestQuality": "Лучшее качество", - "providerOllamaOption": "🦙 Ollama (Локальный и бесплатный)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Пользовательский (совместимый с OpenAI)", - "saved": "(Сохранено)", - "chatProvider": "Провайдер чата", - "chatDescription": "Провайдер ИИ для чат-ассистента. Если не настроен, используется провайдер тегов.", - "fetchModelsFailed": "Не удалось получить модели", - "refreshModels": "Обновить модели", - "configured": "Настроен", - "fetchingModels": "Загрузка моделей...", - "clickToLoadModels": "Нажмите ↺ для загрузки моделей", - "searchModel": "Поиск модели...", - "noModels": "Нет моделей. Нажмите ↺", - "modelsAvailable": "{count} модел(ей) доступно", - "enterUrlToLoad": "Введите URL и нажмите ↺", - "currentProvider": "(Текущий: {provider})", - "pageTitle": "Управление ИИ", - "pageDescription": "Мониторинг и настройка функций ИИ", - "configure": "Настроить", - "features": "Функции ИИ", - "providerStatus": "Статус провайдеров ИИ", - "recentRequests": "Недавние запросы ИИ", - "comingSoon": "Скоро", - "activeFeatures": "Активные функции", - "successRate": "Успешность", - "avgResponseTime": "Среднее время ответа", - "configuredProviders": "Настроенные провайдеры", - "settingUpdated": "Настройка обновлена", - "updateFailedShort": "Ошибка обновления", - "titleSuggestions": "Предложения заголовков", - "titleSuggestionsDesc": "Предлагает заголовки для заметок после 50+ слов", - "aiAssistant": "ИИ-ассистент", - "aiAssistantDesc": "Включить ИИ-чат и инструменты улучшения текста", - "memoryEchoFeature": "Я заметил кое-что...", - "memoryEchoFeatureDesc": "Ежедневный анализ связей между заметками", - "languageDetection": "Определение языка", - "languageDetectionDesc": "Автоопределение языка каждой заметки", - "autoLabeling": "Автомаркировка", - "autoLabelingDesc": "Автопредложение и применение меток" - }, - "aiTest": { - "description": "Протестируйте провайдеров ИИ для генерации тегов и эмбеддингов семантического поиска", - "embeddingDimensions": "Размерность эмбеддингов:", - "embeddingsTestDescription": "Протестируйте провайдер ИИ, отвечающий за эмбеддинги семантического поиска", - "embeddingsTestTitle": "Тест эмбеддингов", - "error": "Ошибка:", - "first5Values": "Первые 5 значений:", - "generatedTags": "Сгенерированные теги:", - "howItWorksTitle": "Как работает тестирование", - "model": "Модель:", - "provider": "Провайдер:", - "responseTime": "Время ответа: {time}мс", - "runTest": "Запустить тест", - "tagsTestDescription": "Протестируйте провайдер ИИ, отвечающий за автоматические предложения тегов", - "tagsTestTitle": "Тест генерации тегов", - "testError": "Ошибка теста: {error}", - "testFailed": "Тест не пройден", - "testPassed": "Тест пройден", - "testing": "Тестирование...", - "tipDescription": "Используйте панель тестирования ИИ для диагностики проблем конфигурации перед тестированием.", - "tipTitle": "Совет:", - "title": "Тестирование провайдера ИИ", - "vectorDimensions": "размерностей вектора", - "tagsGenerationTest": "🏷️ Тест генерации тегов:", - "tagsStep1": "Отправляет пример заметки провайдеру ИИ", - "tagsStep2": "Запрашивает 3-5 релевантных тегов на основе содержимого", - "tagsStep3": "Отображает сгенерированные теги с оценками уверенности", - "tagsStep4": "Измеряет время ответа", - "embeddingsTestLabel": "🔍 Тест эмбеддингов:", - "embeddingsStep1": "Отправляет пример текста провайдеру эмбеддингов", - "embeddingsStep2": "Генерирует векторное представление (список чисел)", - "embeddingsStep3": "Отображает размерность эмбеддингов и примеры значений", - "embeddingsStep4": "Проверяет, что вектор корректен и правильно отформатирован", - "tipContent": "Вы можете использовать разных провайдеров для тегов и эмбеддингов! Например, Ollama (бесплатно) для тегов и OpenAI (лучшее качество) для эмбеддингов, чтобы оптимизировать расходы и производительность.", - "testSuccessToast": "Тест {type} успешен!", - "testFailedToast": "Тест {type} не пройден", - "testingType": "Тестирование {type}...", - "technicalDetails": "Технические детали" - }, - "aiTesting": "Тестирование ИИ", - "security": { - "allowPublicRegistration": "Разрешить публичную регистрацию", - "allowPublicRegistrationDescription": "Если отключено, новые пользователи могут быть добавлены только администратором через страницу управления пользователями.", - "description": "Управление контролем доступа и политиками регистрации.", - "title": "Настройки безопасности", - "updateFailed": "Не удалось обновить настройки безопасности", - "updateSuccess": "Настройки безопасности обновлены" - }, - "settings": "Настройки администратора", - "resend": { - "title": "Resend (Рекомендуется)", - "description": "Отправляйте письма через API Resend. Приоритетнее SMTP, если настроен.", - "apiKey": "API-ключ Resend", - "apiKeyHint": "Получите API-ключ на resend.com. Используется для уведомлений агентов и сброса паролей.", - "saveSettings": "Сохранить настройки Resend", - "updateSuccess": "Настройки Resend обновлены", - "updateFailed": "Не удалось обновить настройки Resend", - "configured": "Resend настроен и активен" - }, - "email": { - "title": "Настройка почты", - "description": "Настройте отправку писем для уведомлений агентов и сброса паролей.", - "provider": "Почтовый провайдер", - "saveSettings": "Сохранить настройки почты" - }, - "smtp": { - "description": "Настройте почтовый сервер для сброса паролей.", - "forceSSL": "Принудительный SSL/TLS (обычно для порта 465)", - "fromEmail": "Адрес отправителя", - "host": "Хост", - "ignoreCertErrors": "Игнорировать ошибки сертификатов (только для Self-hosted/Dev)", - "password": "Пароль", - "port": "Порт", - "saveSettings": "Сохранить настройки SMTP", - "sending": "Отправка...", - "testEmail": "Тестовое письмо", - "testFailed": "Ошибка: {error}", - "testSuccess": "Тестовое письмо успешно отправлено!", - "title": "Конфигурация SMTP", - "updateFailed": "Не удалось обновить настройки SMTP", - "updateSuccess": "Настройки SMTP обновлены", - "username": "Имя пользователя" - }, - "title": "Панель администратора", - "userManagement": "Управление пользователями", - "users": { - "addUser": "Добавить пользователя", - "confirmDelete": "Вы уверены, что хотите удалить этого пользователя?", - "createFailed": "Не удалось создать пользователя", - "createSuccess": "Пользователь успешно создан", - "createUser": "Создать пользователя", - "createUserDescription": "Добавьте нового пользователя в систему.", - "deleteFailed": "Не удалось удалить", - "deleteSuccess": "Пользователь удалён", - "demote": "Понизить", - "email": "Эл. почта", - "name": "Имя", - "password": "Пароль", - "promote": "Повысить", - "role": "Роль", - "roleUpdateFailed": "Не удалось обновить роль", - "roleUpdateSuccess": "Роль пользователя обновлена на {role}", - "roles": { - "admin": "Администратор", - "user": "Пользователь" - }, - "table": { - "actions": "Действия", - "createdAt": "Дата создания", - "email": "Эл. почта", - "name": "Имя", - "role": "Роль" - }, - "title": "Пользователи", - "description": "Управление пользователями и правами" - }, - "chat": "ИИ-чат", - "lab": "Лаборатория", - "agents": "Агенты", - "workspace": "Рабочее пространство", - "sidebar": { - "dashboard": "Панель управления", - "users": "Пользователи", - "aiManagement": "Управление ИИ", - "chat": "ИИ-чат", - "lab": "Лаборатория (Идеи)", - "agents": "Агенты", - "settings": "Настройки" - }, - "metrics": { - "vsLastPeriod": "к предыдущему периоду" - }, - "tools": { - "title": "Инструменты Агента", - "description": "Настройте внешние инструменты для использования агентами: веб-поиск, веб-скрейпинг и доступ к API.", - "searchProvider": "Провайдер Веб-поиска", - "searxng": "SearXNG (Самостоятельный)", - "brave": "Brave Search API", - "both": "Оба (SearXNG основной, Brave запасной)", - "searxngUrl": "URL SearXNG", - "braveKey": "Ключ Brave Search API", - "jinaKey": "Ключ Jina Reader API", - "jinaKeyOptional": "Необязательно — работает без ключа, но с ограничениями", - "jinaKeyDescription": "Используется для веб-скрейпинга. Работает без ключа, но с ограничениями скорости.", - "saveSettings": "Сохранить Настройки Инструментов", - "updateSuccess": "Настройки инструментов успешно обновлены", - "updateFailed": "Не удалось обновить настройки инструментов", - "testing": "Тестирование...", - "testSearch": "Тестировать веб-поиск" - }, - "settingsDescription": "Настройки приложения", - "dashboard": { - "title": "Панель управления", - "description": "Обзор метрик приложения", - "recentActivity": "Недавняя активность", - "recentActivityPlaceholder": "Недавняя активность будет отображена здесь." - }, - "error": { - "title": "Ошибка в панели администратора", - "description": "Не удалось отобразить страницу. Повторите попытку.", - "retry": "Повторить" - } + "sidebar": { + "notes": "Заметки", + "reminders": "Напоминания", + "labels": "Метки", + "editLabels": "Редактировать метки", + "newNoteTabs": "Новая заметка", + "newNoteTabsHint": "Создать заметку в этом блокноте", + "noLabelsInNotebook": "В этом блокноте пока нет меток", + "archive": "Архив", + "trash": "Корзина", + "clearFilter": "Remove filter" + }, + "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": "Не удалось создать заметку", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "aiAssistant": "ИИ-помощник", + "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)", + "pinnedNotes": "Закреплённые заметки", + "recent": "Недавние", + "addNote": "Добавить заметку", + "remove": "Удалить", + "dragToReorder": "Перетащите для изменения порядка", + "more": "Ещё", + "emptyState": "Здесь нет заметок", + "emptyStateTabs": "Здесь пока нет заметок. Используйте «Новая заметка» на боковой панели, чтобы добавить (предложения заголовков от ИИ появятся в редакторе).", + "inNotebook": "В блокноте", + "moveFailed": "Ошибка перемещения", + "clarifyFailed": "Ошибка уточнения", + "shortenFailed": "Ошибка сокращения", + "improveFailed": "Ошибка улучшения", + "transformFailed": "Ошибка преобразования", + "markdown": "Markdown", + "unpinned": "Откреплённая", + "redoShortcut": "Повторить (Ctrl+Y)", + "undoShortcut": "Отменить (Ctrl+Z)", + "viewCards": "Вид карточек", + "viewCardsTooltip": "Сетка карточек с перетаскиванием для изменения порядка", + "viewTabs": "Список", + "viewTabsTooltip": "Вкладки сверху, заметка снизу — перетаскивайте вкладки для сортировки", + "viewModeGroup": "Режим отображения заметок", + "reorderTabs": "Изменить порядок вкладок", + "modified": "Изменено", + "created": "Создано", + "loading": "Загрузка...", + "exportPDF": "Экспорт PDF", + "savedStatus": "Сохранено", + "dirtyStatus": "Изменено", + "completedLabel": "Завершено", + "notes.emptyNotebook": "Пустой блокнот", + "notes.emptyNotebookDesc": "В этом блокноте нет заметок. Нажмите +, чтобы создать.", + "notes.noNoteSelected": "Заметка не выбрана", + "notes.selectOrCreateNote": "Выберите заметку из списка или создайте новую.", + "commitVersion": "Сохранить версию", + "versionSaved": "Версия сохранена", + "deleteVersion": "Удалить эту версию", + "versionDeleted": "Версия удалена", + "deleteVersionConfirm": "Удалить эту версию навсегда?", + "historyMode": "Режим истории", + "historyModeManual": "Ручной (кнопка фиксации)", + "historyModeAuto": "Автоматический (умный)", + "historyModeManualDesc": "Создавать снимки вручную кнопкой фиксации", + "historyModeAutoDesc": "Автоматические снимки с умным обнаружением", + "history": "История", + "historyRestored": "Версия восстановлена", + "historyEnabled": "История включена", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "История отключена для вашей учётной записи.", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "Включить историю", + "historyEmpty": "Нет доступных версий", + "historySelectVersion": "Выберите версию для предпросмотра", + "sortBy": "Сортировать по", + "sortDateDesc": "Дата (новые)", + "sortDateAsc": "Дата (старые)", + "sortTitleAsc": "Заголовок А → Я", + "sortTitleDesc": "Заголовок Я → А", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "pagination": { + "previous": "←", + "pageInfo": "Страница {currentPage} / {totalPages}", + "next": "→" + }, + "labels": { + "title": "Labels", + "filter": "Filter by Label", + "manage": "Manage Labels", + "manageTooltip": "Manage Labels", + "changeColor": "Изменить цвет", + "changeColorTooltip": "Изменить цвет", + "delete": "Delete", + "deleteTooltip": "Delete label", + "confirmDelete": "Вы уверены, что хотите удалить эту метку?", + "newLabelPlaceholder": "Create new label", + "namePlaceholder": "Enter label name", + "addLabel": "Добавить метку", + "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": "Все метки", + "clearAll": "Очистить все", + "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} меток", + "noLabels": "Нет меток", + "confirmDeleteShort": "Подтвердить?", + "labelRemoved": "Метка \"{label}\" удалена" + }, + "search": { + "placeholder": "Поиск", + "searchPlaceholder": "Поиск в заметках...", + "semanticInProgress": "ИИ-поиск...", + "semanticTooltip": "Семантический поиск с ИИ", + "searching": "Поиск...", + "noResults": "Результаты не найдены", + "resultsFound": "Найдено заметок: {count}", + "exactMatch": "Точное совпадение", + "related": "Связанные", + "disabledAdmin": "Поиск отключён в режиме администратора" + }, + "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": "ИИ анализирует...", + "clickToAddTag": "Нажмите, чтобы добавить этот тег", + "ignoreSuggestion": "Игнорировать предложение", + "generatingTitles": "Генерация заголовков...", + "generateTitlesTooltip": "Сгенерировать заголовки с ИИ", + "poweredByAI": "На базе ИИ", + "languageDetected": "Язык определён", + "processing": "Обработка...", + "tagAdded": "Тег \"{tag}\" добавлен", + "titleGenerating": "Генерация...", + "titleGenerateWithAI": "Сгенерировать заголовки с ИИ", + "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": "ИИ-ассистент", + "generating": "Генерация...", + "generateTitles": "Сгенерировать заголовки", + "reformulateText": "Переформулировать текст", + "reformulating": "Переформулирование...", + "clarify": "Уточнить", + "shorten": "Сократить", + "improveStyle": "Улучшить стиль", + "reformulationComparison": "Сравнение переформулировки", + "original": "Оригинал", + "reformulated": "Переформулировано", "autoLabels": { - "analyzing": "Анализ ваших заметок для предложений меток...", - "create": "Создать", - "createNewLabel": "Создать новую метку", - "created": "{count} тегов успешно создано", - "creating": "Создание меток...", - "description": "Я обнаружил повторяющиеся темы в \"{notebookName}\" ({totalNotes} заметках). Создать для них теги?", "error": "Не удалось получить предложения меток", - "new": "(новая)", "noLabelsSelected": "Метки не выбраны", + "created": "{count} тегов успешно создано", + "analyzing": "Анализ ваших заметок для предложений меток...", + "title": "Предложения Меток", + "description": "Я обнаружил повторяющиеся темы в \"{notebookName}\" ({totalNotes} заметках). Создать для них теги?", "note": "заметка", "notes": "заметки", - "title": "Предложения Меток", "typeContent": "Введите содержимое для получения предложений меток...", - "typeForSuggestions": "Введите для предложений", - "notesCount": "{count} заметок" + "createNewLabel": "Создать новую метку", + "new": "(новая)", + "create": "Создать", + "creating": "Создание меток...", + "notesCount": "{count} заметок", + "typeForSuggestions": "Введите для предложений" }, "batchOrganization": { - "analyzing": "Анализ ваших заметок...", - "apply": "Применить", - "applyFailed": "Ошибка применения", - "applying": "Применение...", + "title": "Пакетная организация", "description": "ИИ проанализирует ваши заметки и предложит организовать их в блокноты.", - "error": "Ошибка организации", + "analyzing": "Анализ ваших заметок...", "noNotebooks": "Нет доступных блокнотов. Сначала создайте блокноты для организации заметок.", - "noNotesSelected": "Нет выбранных заметок", "noSuggestions": "ИИ не смог найти подходящий способ организации этих заметок.", - "selectAllIn": "Выбрать всё в", - "selectNote": "Выбрать заметку", + "apply": "Применить", + "applying": "Применение...", "success": "Организация завершена", - "title": "Пакетная организация" + "error": "Ошибка организации", + "noNotesSelected": "Нет выбранных заметок", + "applyFailed": "Ошибка применения", + "selectAllIn": "Выбрать всё в", + "selectNote": "Выбрать заметку" }, - "clarify": "Уточнить", - "clickToAddTag": "Нажмите, чтобы добавить этот тег", - "generateTitles": "Сгенерировать заголовки", - "generateTitlesTooltip": "Сгенерировать заголовки с ИИ", - "generating": "Генерация...", - "generatingTitles": "Генерация заголовков...", - "ignoreSuggestion": "Игнорировать предложение", - "improveStyle": "Улучшить стиль", - "languageDetected": "Язык определён", "notebookSummary": { "regenerate": "Перегенерировать Сводку", "regenerating": "Перегенерация сводки...", "exportPDF": "Экспортировать как PDF" }, - "original": "Оригинал", - "poweredByAI": "На базе ИИ", - "processing": "Обработка...", - "reformulateText": "Переформулировать текст", - "reformulated": "Переформулировано", - "reformulating": "Переформулирование...", - "reformulationApplied": "Переформулированный текст применён!", - "reformulationComparison": "Сравнение переформулировки", - "reformulationError": "Ошибка при переформулировке", - "reformulationFailed": "Не удалось переформулировать текст", - "reformulationMaxWords": "Текст должен содержать не более 500 слов", - "reformulationMinWords": "Текст должен содержать минимум 10 слов (сейчас: {count} слов)", - "reformulationNoText": "Пожалуйста, выделите текст или добавьте содержимое", - "reformulationSelectionTooShort": "Выделение слишком короткое, используется весь текст", - "shorten": "Сократить", - "tagAdded": "Тег \"{tag}\" добавлен", - "titleApplied": "Заголовок применён!", - "titleGenerateWithAI": "Сгенерировать заголовки с ИИ", - "titleGenerating": "Генерация...", - "titleGenerationError": "Ошибка генерации заголовков", - "titleGenerationFailed": "Не удалось сгенерировать заголовки", - "titleGenerationMinWords": "Для генерации заголовков нужно минимум 10 слов (сейчас: {count} слов)", - "titlesGenerated": "💡 {count} заголовков сгенерировано!", - "transformError": "Ошибка при преобразовании", - "transformMarkdown": "Преобразовать в Markdown", - "transformSuccess": "Текст успешно преобразован в Markdown!", - "transforming": "Преобразование...", "clarifyDesc": "Сделать текст яснее и понятнее", "shortenDesc": "Сократить текст и выделить суть", "improve": "Улучшить текст", @@ -389,11 +405,14 @@ "transformationsDesc": "Преобразования — применяются напрямую к заметке", "writeMinWordsAction": "Напишите минимум 5 слов для активации действий ИИ.", "processingAction": "Обработка...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "Уточнить", "shorten": "Сократить", "improve": "Улучшить", - "toMarkdown": "В Markdown" + "toMarkdown": "В Markdown", + "describeImages": "Describe images" }, "openAssistant": "Открыть ИИ-ассистент", "poweredByMomento": "На базе Momento AI", @@ -408,298 +427,59 @@ "historyTab": "История", "insightsTab": "Обзоры", "aiCopilot": "ИИ-копилот", - "suggestTitle": "Предложение заголовка ИИ" + "suggestTitle": "Предложение заголовка ИИ", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" }, - "aiSettings": { - "description": "Настройте функции и предпочтения на базе ИИ", - "error": "Не удалось обновить настройку", - "features": "Функции ИИ", - "frequency": "Частота", - "frequencyDaily": "Ежедневно", - "frequencyWeekly": "Еженедельно", - "provider": "Провайдер ИИ", - "providerAuto": "Авто (Рекомендуется)", - "providerOllama": "Ollama (Локальный)", - "providerOpenAI": "OpenAI (Облачный)", - "saved": "Настройка обновлена", - "saving": "Сохранение...", - "title": "Настройки ИИ", - "titleSuggestionsDesc": "Предлагать заголовки для заметок без названия после 50+ слов", - "paragraphRefactorDesc": "Параметры улучшения текста с помощью ИИ", - "frequencyDesc": "Как часто анализировать связи между заметками", - "providerDesc": "Выберите предпочитаемого провайдера ИИ", - "providerAutoDesc": "Ollama при наличии, иначе OpenAI", - "providerOllamaDesc": "100% приватно, работает локально на вашем устройстве", - "providerOpenAIDesc": "Наиболее точно, требует API-ключ" + "titleSuggestions": { + "available": "Предложения заголовков", + "title": "Предложения ИИ", + "generating": "Генерация...", + "selectTitle": "Выберите заголовок", + "dismiss": "Отклонить" }, - "appearance": { - "description": "Настройте внешний вид приложения", - "title": "Внешний вид", - "notesViewDescription": "Выберите, как отображаются заметки на главной странице и в блокнотах.", - "notesViewLabel": "Макет заметок", - "notesViewTabs": "Вкладки (в стиле OneNote)", - "notesViewMasonry": "Карточки (сетка)" + "semanticSearch": { + "exactMatch": "Точное совпадение", + "related": "Связанные", + "searching": "Поиск..." }, - "auth": { - "backToLogin": "Вернуться ко входу", - "checkYourEmail": "Проверьте вашу почту", - "createAccount": "Создайте свой аккаунт", - "email": "Эл. почта", - "emailPlaceholder": "Введите адрес электронной почты", - "forgotPassword": "Забыли пароль?", - "forgotPasswordDescription": "Введите адрес электронной почты, и мы отправим вам ссылку для сброса пароля.", - "forgotPasswordTitle": "Забыли пароль", - "hasAccount": "Уже есть аккаунт?", - "name": "Имя", - "namePlaceholder": "Введите ваше имя", - "noAccount": "Нет аккаунта?", - "orContinueWith": "Или продолжить с", - "password": "Пароль", - "passwordMinChars": "Введите пароль (минимум 6 символов)", - "passwordPlaceholder": "Введите пароль", - "rememberMe": "Запомнить меня", - "resetEmailSent": "Мы отправили ссылку для сброса пароля на вашу почту, если она существует в нашей системе.", - "resetPassword": "Сбросить пароль", - "resetPasswordInstructions": "Введите вашу почту для сброса пароля", - "returnToLogin": "Вернуться ко входу", - "sendResetLink": "Отправить ссылку для сброса", - "sending": "Отправка...", - "signIn": "Войти", - "signInToAccount": "Войдите в свой аккаунт", - "signOut": "Выйти", - "signUp": "Зарегистрироваться", - "confirmPassword": "Подтвердите пароль", - "confirmPasswordPlaceholder": "Подтвердите пароль" - }, - "autoLabels": { - "analyzing": "Анализ ваших заметок...", - "createNewLabel": "Создать эту новую метку и добавить ее", - "created": "Меток успешно создано: {count}", - "description": "Я обнаружил повторяющиеся темы в \"{notebookName}\" ({totalNotes} заметок). Создать метки для них?", - "error": "Не удалось получить предложения меток", - "new": "(новая)", - "noLabelsSelected": "Меток не выбраны", - "note": "заметка", - "notes": "заметки", - "title": "Новые предложения меток", - "typeContent": "Введите контент для получения предложений меток..." - }, - "batch": { - "organize": "Организовать", - "organizeWithAI": "Организовать с ИИ" - }, - "batchOrganization": { - "analyzing": "Анализ ваших заметок...", - "apply": "Применить ({count})", - "applying": "Применение...", - "confidence": "уверенность", - "description": "ИИ проанализирует ваши заметки и предложит организовать их в блокноты.", - "error": "Не удалось создать план организации", - "noNotebooks": "Нет доступных блокнотов. Создайте сначала блокноты для организации ваших заметок.", - "noNotesSelected": "Нет выбранных заметок", - "noSuggestions": "ИИ не нашел хорошего способа организации этих заметок.", - "notesToOrganize": "{count} заметок для организации", - "selected": "{count} выбрано", - "title": "Организовать с ИИ", - "unorganized": "{count} заметок не удалось категоризовать и останутся в общих заметках." - }, - "collaboration": { - "accessRevoked": "Доступ был отозван", - "addCollaborator": "Добавить соавтора", - "addCollaboratorDescription": "Добавьте людей для совместной работы над этой заметкой по их адресу электронной почты.", - "alreadyInList": "Этот адрес уже в списке", - "canEdit": "Может редактировать", - "canView": "Может просматривать", - "done": "Готово", - "emailAddress": "Адрес электронной почты", - "emailPlaceholder": "Введите адрес электронной почты", - "enterEmailAddress": "Введите адрес электронной почты", - "errorLoading": "Ошибка загрузки соавторов", - "failedToAdd": "Не удалось добавить соавтора", - "failedToRemove": "Не удалось удалить соавтора", - "invite": "Пригласить", - "noCollaborators": "Соавторов пока нет. Добавьте кого-нибудь выше!", - "noCollaboratorsViewer": "Соавторов пока нет.", - "nowHasAccess": "{name} теперь имеет доступ к этой заметке", - "owner": "Владелец", - "pending": "Ожидает", - "pendingInvite": "Ожидающее приглашение", - "peopleWithAccess": "Люди с доступом", - "remove": "Удалить", - "removeCollaborator": "Удалить соавтора", - "shareNote": "Поделиться заметкой", - "shareWithCollaborators": "Поделиться с соавторами", - "unnamedUser": "Безымянный пользователь", - "viewerDescription": "У вас есть доступ к этой заметке. Только владелец может управлять соавторами.", - "willBeAdded": "{email} будет добавлен как соавтор при создании заметки" - }, - "colors": { - "blue": "Синий", - "default": "По умолчанию", - "gray": "Серый", - "green": "Зелёный", - "orange": "Оранжевый", - "pink": "Розовый", - "purple": "Фиолетовый", - "red": "Красный", - "yellow": "Жёлтый" - }, - "common": { - "add": "Добавить", - "cancel": "Отмена", - "close": "Закрыть", - "confirm": "Подтвердить", - "delete": "Удалить", - "edit": "Редактировать", - "error": "Ошибка", - "loading": "Загрузка...", - "noResults": "Нет результатов", - "notAvailable": "Недоступно", - "optional": "Необязательно", - "remove": "Удалить", - "required": "Обязательно", - "save": "Сохранить", - "search": "Поиск", - "success": "Успешно", - "unknown": "Неизвестно" - }, - "connection": { - "clickToView": "Нажмите для просмотра заметки", - "helpful": "Полезно", - "isHelpful": "Эта связь полезна?", - "memoryEchoDiscovery": "Обнаружение Memory Echo", - "notHelpful": "Не полезно", - "similarityInfo": "Эти заметки связаны на {similarity}% сходства" - }, - "dataManagement": { - "cleanup": { - "button": "Очистить", - "description": "Удалить метки и связи, ссылающиеся на удалённые заметки.", - "failed": "Ошибка при очистке", - "title": "Очистка потерянных данных" - }, - "cleanupComplete": "Очистка завершена", - "cleanupError": "Ошибка очистки", - "dangerZone": "Опасная зона", - "dangerZoneDescription": "Эти действия необратимы", - "delete": { - "button": "Удалить все заметки", - "confirm": "Вы уверены? Все ваши заметки будут удалены безвозвратно.", - "description": "Безвозвратно удалить все заметки. Это действие нельзя отменить.", - "failed": "Не удалось удалить заметки", - "success": "Все заметки удалены", - "title": "Удалить все заметки" - }, - "deleting": "Удаление...", - "export": { - "button": "Экспортировать заметки", - "description": "Скачать все заметки в формате JSON. Включает всё содержимое, метки и метаданные.", - "failed": "Не удалось экспортировать заметки", - "success": "Заметки успешно экспортированы", - "title": "Экспортировать все заметки" - }, - "exporting": "Экспорт...", - "import": { - "button": "Импортировать заметки", - "description": "Загрузите JSON-файл для импорта заметок. Они будут добавлены к существующим, а не заменят их.", - "failed": "Не удалось импортировать заметки", - "success": "Импортировано {count} заметок", - "title": "Импортировать заметки" - }, - "importing": "Импорт...", - "indexing": { - "button": "Перестроить индекс", - "description": "Перегенерировать эмбеддинги для всех заметок для улучшения семантического поиска.", - "failed": "Ошибка при индексации", - "success": "Индексация завершена: обработано {count} заметок", - "title": "Перестроить поисковый индекс" - }, - "indexingComplete": "Индексация завершена", - "indexingError": "Ошибка индексации", - "title": "Управление данными", - "toolsDescription": "Инструменты для поддержания базы данных в рабочем состоянии" - }, - "demoMode": { - "activated": "Демо-режим активирован! Memory Echo будет работать мгновенно.", - "createNotesTip": "Создайте 2+ похожие заметки и увидьте Memory Echo в действии!", - "deactivated": "Демо-режим деактивирован. Обычные параметры восстановлены.", - "delayBetweenNotes": "Задержка 0 дней между заметками (обычно 7 дней)", - "description": "Ускоряет Memory Echo для тестирования. Связи появляются мгновенно.", - "parametersActive": "Активные демо-параметры:", - "similarityThreshold": "Порог сходства 50% (обычно 75%)", - "title": "Демо-режим", - "toggleFailed": "Ошибка переключения демо-режима", - "unlimitedInsights": "Неограниченные идеи (без ограничений частоты)" - }, - "diagnostics": { - "apiStatus": "Статус API", - "checking": "Проверка...", - "configuredProvider": "Настроенный провайдер", - "description": "Проверьте статус подключения к провайдеру ИИ", - "errorStatus": "Ошибка", - "operational": "Работает", - "testDetails": "Детали теста:", - "tip1": "Убедитесь, что Ollama запущен (ollama serve)", - "tip2": "Проверьте, что модель установлена (ollama pull llama3)", - "tip3": "Проверьте ваш API-ключ для OpenAI", - "tip4": "Проверьте сетевое подключение", - "title": "Диагностика", - "troubleshootingTitle": "Советы по устранению неполадок:" - }, - "favorites": { - "noFavorites": "Нет избранного", - "pinToFavorite": "Добавить в избранное", - "title": "Избранное", - "toggleSection": "Переключить раздел" - }, - "footer": { - "openSource": "Open Source клон", - "privacy": "Конфиденциальность", - "terms": "Условия" - }, - "general": { - "add": "Добавить", - "apply": "Применить", - "back": "Назад", - "cancel": "Отмена", - "clean": "Очистить", - "clear": "Очистить", - "close": "Закрыть", - "confirm": "Подтвердить", - "edit": "Редактировать", - "error": "Произошла ошибка", - "indexAll": "Индексировать все", - "loading": "Загрузка...", - "next": "Далее", - "operationFailed": "Операция не удалась", - "operationSuccess": "Операция успешна", - "preview": "Предпросмотр", - "previous": "Назад", - "reset": "Сбросить", - "save": "Сохранить", - "select": "Выбрать", - "submit": "Отправить", - "testConnection": "Проверить подключение", - "tryAgain": "Пожалуйста, попробуйте снова" - }, - "generalSettings": { - "description": "Общие настройки приложения", - "title": "Общие настройки" - }, - "labels": { - "addLabel": "Добавить метку", - "allLabels": "Все метки", - "changeColor": "Изменить цвет", - "changeColorTooltip": "Изменить цвет", - "clearAll": "Очистить все", - "confirmDelete": "Вы уверены, что хотите удалить эту метку?", - "count": "{count} меток", - "noLabels": "Нет меток", - "confirmDeleteShort": "Подтвердить?", - "labelRemoved": "Метка \"{label}\" удалена" + "paragraphRefactor": { + "title": "Улучшение текста", + "shorten": "Сократить", + "expand": "Расширить", + "improve": "Улучшить", + "formal": "Формальный", + "casual": "Непринуждённый" }, "memoryEcho": { + "title": "Я заметил кое-что...", + "description": "Проактивные связи между вашими заметками", + "dailyInsight": "Ежедневная идея из ваших заметок", + "insightReady": "Ваша идея готова!", + "viewConnection": "Просмотреть связь", + "helpful": "Полезно", + "notHelpful": "Не полезно", + "dismiss": "Пока отклонить", + "thanksFeedback": "Спасибо за ваш отзыв!", + "thanksFeedbackImproving": "Спасибо! Мы используем это для улучшения.", + "connections": "Связи", + "connection": "связь", + "connectionsBadge": "{count} связ{plural}", + "match": "{percentage}% совпадение", + "fused": "Объединено", "clickToView": "Нажмите для просмотра", + "overlay": { + "title": "Связанные заметки", + "searchPlaceholder": "Поиск связей...", + "sortBy": "Сортировка:", + "sortSimilarity": "Сходство", + "sortRecent": "Новые", + "sortOldest": "Старые", + "viewAll": "Просмотреть все рядом", + "loading": "Загрузка...", + "noConnections": "Связи не найдены", + "error": "Ошибка" + }, "comparison": { "title": "💡 Сравнение заметок", "similarityInfo": "Эти заметки связаны на {similarity}% подобия", @@ -710,12 +490,6 @@ "helpful": "Полезно", "notHelpful": "Не полезно" }, - "connection": "связь", - "connections": "Связи", - "connectionsBadge": "{count} связ{plural}", - "dailyInsight": "Ежедневная идея из ваших заметок", - "description": "Проактивные связи между вашими заметками", - "dismiss": "Пока отклонить", "editorSection": { "title": "⚡ Связанные заметки ({count})", "loading": "Загрузка...", @@ -726,7 +500,6 @@ "mergeAll": "Объединить всё", "close": "Закрыть" }, - "fused": "Объединено", "fusion": { "title": "🔗 Умное слияние", "mergeNotes": "Объединить {count} заметку/и", @@ -751,468 +524,679 @@ "generateError": "Не удалось создать слияние", "noContentReturned": "API не вернул содержимого слияния", "unknownDate": "Неизвестная дата" - }, - "helpful": "Полезно", - "insightReady": "Ваша идея готова!", - "notHelpful": "Не полезно", - "overlay": { - "error": "Ошибка", - "loading": "Загрузка...", - "noConnections": "Связи не найдены", - "searchPlaceholder": "Поиск связей...", - "sortBy": "Сортировка:", - "sortOldest": "Старые", - "sortRecent": "Новые", - "sortSimilarity": "Сходство", - "title": "Связанные заметки", - "viewAll": "Просмотреть все рядом" - }, - "thanksFeedback": "Спасибо за ваш отзыв!", - "thanksFeedbackImproving": "Спасибо! Мы используем это для улучшения.", - "title": "Я заметил кое-что...", - "viewConnection": "Просмотреть связь", - "match": "{percentage}% совпадение" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "поделился(ась) \"{title}\"", + "untitled": "Без названия", + "notifications": "Уведомления", + "declined": "В совместном доступе отказано", + "removed": "Заметка удалена из списка" }, "nav": { - "accountSettings": "Настройки аккаунта", - "adminDashboard": "Панель администратора", - "aiSettings": "Настройки ИИ", - "archive": "Архив", - "buyMeACoffee": "Купить мне кофе", - "configureAI": "Настройте функции на базе ИИ, провайдера и предпочтения", - "diagnostics": "Диагностика", - "donateOnKofi": "Пожертвовать на Ko-fi", - "donationDescription": "Сделайте единовременное пожертвование или станьте ежемесячным сторонником.", - "donationNote": "Без комиссий платформы • Мгновенные выплаты • Безопасно", - "favorites": "Избранное", - "generalNotes": "Общие заметки", "home": "Главная", - "login": "Войти", - "logout": "Выйти", - "manageAISettings": "Управление настройками ИИ", - "myLibrary": "Моя библиотека", - "notebooks": "Блокноты", "notes": "Заметки", - "proPlan": "Про-план", - "profile": "Профиль", - "quickAccess": "Быстрый доступ", - "recent": "Недавние", - "reminders": "Напоминания", + "notebooks": "Блокноты", + "generalNotes": "Общие заметки", + "archive": "Архив", "settings": "Настройки", - "sponsorDescription": "Станьте ежемесячным спонсором и получите признание.", - "sponsorOnGithub": "Спонсорировать на GitHub", - "support": "Поддержать Memento ☕", - "supportDescription": "Memento на 100% бесплатен и открыт. Ваша поддержка помогает сохранить это.", - "supportDevelopment": "Поддержать разработку Memento ☕", + "profile": "Профиль", + "aiSettings": "Настройки ИИ", + "logout": "Выйти", + "login": "Войти", + "adminDashboard": "Панель администратора", + "diagnostics": "Диагностика", "trash": "Корзина", + "support": "Поддержать Memento ☕", + "reminders": "Напоминания", "userManagement": "Управление пользователями", + "accountSettings": "Настройки аккаунта", + "manageAISettings": "Управление настройками ИИ", + "configureAI": "Настройте функции на базе ИИ, провайдера и предпочтения", + "supportDevelopment": "Поддержать разработку Memento ☕", + "supportDescription": "Memento на 100% бесплатен и открыт. Ваша поддержка помогает сохранить это.", + "buyMeACoffee": "Купить мне кофе", + "donationDescription": "Сделайте единовременное пожертвование или станьте ежемесячным сторонником.", + "donateOnKofi": "Пожертвовать на Ko-fi", + "donationNote": "Без комиссий платформы • Мгновенные выплаты • Безопасно", + "sponsorOnGithub": "Спонсорировать на GitHub", + "sponsorDescription": "Станьте ежемесячным спонсором и получите признание.", "workspace": "Рабочее пространство", + "quickAccess": "Быстрый доступ", + "myLibrary": "Моя библиотека", + "favorites": "Избранное", + "recent": "Недавние", + "proPlan": "Про-план", "chat": "ИИ-чат", "lab": "Лаборатория", "agents": "Агенты" }, - "notebook": { - "cancel": "Отмена", - "create": "Создать блокнот", - "createDescription": "Начните новую коллекцию для эффективной организации ваших заметок, идей и проектов.", - "createNew": "Создать новый блокнот", - "creating": "Создание...", - "delete": "Удалить блокнот", - "deleteConfirm": "Удалить", - "deleteWarning": "Вы уверены, что хотите удалить этот блокнот? Заметки будут перемещены в Общие заметки.", - "edit": "Редактировать блокнот", - "editDescription": "Измените название, значок и цвет вашего блокнота.", - "generating": "Генерация сводки...", - "labels": "Метки", - "name": "Название блокнота", - "noLabels": "Нет меток", - "selectColor": "Цвет", - "selectIcon": "Значок", - "summary": "Сводка блокнота", - "summaryDescription": "Сгенерируйте сводку на основе ИИ всех заметок в этом блокноте.", - "summaryError": "Ошибка генерации сводки", - "namePlaceholder": "напр. Маркетинговая стратегия Q4", - "myNotebook": "Мой блокнот", - "saving": "Сохранение...", - "pdfTitle": "Сводка — {name}", - "pdfNotesLabel": "Заметки:", - "pdfGeneratedOn": "Создано:", - "confidence": "уверенность", - "savingReminder": "Не удалось сохранить напоминание", - "removingReminder": "Не удалось удалить напоминание" - }, - "notebookSuggestion": { - "description": "Эта заметка, похоже, принадлежит этому блокноту", - "dismiss": "Отклонить", - "dismissIn": "Отклонить (закроется через {timeLeft}с)", - "generalNotes": "Общие заметки", - "move": "Переместить", - "moveToNotebook": "Переместить в блокнот", - "title": "Переместить в {name}?" - }, - "notebooks": { - "allNotebooks": "Все блокноты", - "create": "Создать блокнот", - "createFirst": "Создайте свой первый блокнот", - "noNotebooks": "Нет блокнотов" - }, - "notes": { - "add": "Добавить", - "addCollaborators": "Добавить соавторов", - "addImage": "Добавить изображение", - "addItem": "Добавить элемент", - "addLink": "Добавить ссылку", - "addListItem": "+ Элемент списка", - "addNote": "Добавить заметку", - "adding": "Добавление...", - "aiAssistant": "ИИ-помощник", - "archive": "Архивировать", - "backgroundOptions": "Параметры фона", - "changeColor": "Изменить цвет", - "changeSize": "Изменить размер", - "clarifyFailed": "Ошибка уточнения", - "close": "Закрыть", - "color": "Цвет", - "confirmDelete": "Вы уверены, что хотите удалить эту заметку?", - "confirmLeaveShare": "Вы уверены, что хотите покинуть эту общую заметку?", - "contentOrMediaRequired": "Пожалуйста, введите содержимое или добавьте ссылку/изображение", - "copy": "Копировать", - "copyFailed": "Не удалось скопировать заметку", - "copySuccess": "Заметка успешно скопирована!", - "createFirstNote": "Создайте свою первую заметку", - "date": "Дата", - "delete": "Удалить", - "dragToReorder": "Перетащите для изменения порядка", - "duplicate": "Дублировать", - "edit": "Редактировать заметку", - "emptyState": "Здесь нет заметок", - "fileTooLarge": "Файл слишком большой: {fileName}. Максимальный размер - {maxSize}.", - "improveFailed": "Ошибка улучшения", - "inNotebook": "В блокноте", - "invalidDateTime": "Недействительная дата или время", - "invalidFileType": "Недопустимый тип файла: {fileName}. Разрешены только JPEG, PNG, GIF и WebP.", - "itemOrMediaRequired": "Пожалуйста, добавьте хотя бы один элемент или медиа", - "large": "Большой", - "leaveShare": "Покинуть", - "linkAddFailed": "Не удалось добавить ссылку", - "linkAdded": "Ссылка добавлена", - "linkMetadataFailed": "Не удалось получить метаданные ссылки", - "listItem": "Элемент списка", - "makeCopy": "Сделать копию", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown ВЫКЛ", - "markdownOn": "Markdown ВКЛ", - "markdownPlaceholder": "Сделайте заметку... (Поддерживается Markdown)", - "medium": "Средний", - "more": "Ещё", - "moreOptions": "Больше параметров", - "moveFailed": "Ошибка перемещения", - "newChecklist": "Новый контрольный список", - "newNote": "Новая заметка", - "noContent": "Нет содержимого", - "noNotes": "Нет заметок", - "noNotesFound": "Заметки не найдены", - "noteCreateFailed": "Не удалось создать заметку", - "noteCreated": "Заметка успешно создана", - "others": "Другие", - "pin": "Закрепить", - "pinned": "Закреплённые", - "pinnedNotes": "Закреплённые заметки", - "placeholder": "Сделайте заметку...", - "preview": "Предпросмотр", - "readOnly": "Только чтение", - "recent": "Недавние", - "redo": "Повторить (Ctrl+Y)", - "redoShortcut": "Повторить (Ctrl+Y)", - "remindMe": "Напомнить мне", - "reminderDateTimeRequired": "Пожалуйста, введите дату и время", - "reminderMustBeFuture": "Напоминание должно быть в будущем", - "reminderPastError": "Напоминание должно быть в будущем", - "reminderRemoved": "Напоминание удалено", - "reminderSet": "Напоминание установлено на {datetime}", - "remove": "Удалить", - "saving": "Сохранение...", - "setReminder": "Установить напоминание", - "setReminderButton": "Установить напоминание", - "share": "Поделиться", - "shareWithCollaborators": "Поделиться с соавторами", - "sharedBy": "Поделился", - "sharedReadOnly": "Эта заметка предоставлена вам в режиме только для чтения", - "shortenFailed": "Ошибка сокращения", - "showCollaborators": "Показать соавторов", - "size": "Размер", - "small": "Маленький", - "takeNote": "Сделайте заметку...", - "takeNoteMarkdown": "Сделайте заметку... (Поддерживается Markdown)", - "time": "Время", - "title": "Заметки", - "titlePlaceholder": "Заголовок", - "transformFailed": "Ошибка преобразования", - "unarchive": "Разархивировать", - "undo": "Отменить (Ctrl+Z)", - "undoShortcut": "Отменить (Ctrl+Z)", - "unpin": "Открепить", - "unpinned": "Откреплённая", - "untitled": "Без названия", - "uploadFailed": "Не удалось загрузить {filename}", - "view": "Просмотреть заметку", - "emptyStateTabs": "Здесь пока нет заметок. Используйте «Новая заметка» на боковой панели, чтобы добавить (предложения заголовков от ИИ появятся в редакторе).", - "viewCards": "Вид карточек", - "viewCardsTooltip": "Сетка карточек с перетаскиванием для изменения порядка", - "viewTabs": "Список", - "viewTabsTooltip": "Вкладки сверху, заметка снизу — перетаскивайте вкладки для сортировки", - "viewModeGroup": "Режим отображения заметок", - "reorderTabs": "Изменить порядок вкладок", - "modified": "Изменено", - "created": "Создано", - "loading": "Загрузка...", - "exportPDF": "Экспорт PDF", - "savedStatus": "Сохранено", - "dirtyStatus": "Изменено", - "completedLabel": "Завершено", - "notes.emptyNotebook": "Пустой блокнот", - "notes.emptyNotebookDesc": "В этом блокноте нет заметок. Нажмите +, чтобы создать.", - "notes.noNoteSelected": "Заметка не выбрана", - "notes.selectOrCreateNote": "Выберите заметку из списка или создайте новую.", - "commitVersion": "Сохранить версию", - "versionSaved": "Версия сохранена", - "deleteVersion": "Удалить эту версию", - "versionDeleted": "Версия удалена", - "deleteVersionConfirm": "Удалить эту версию навсегда?", - "historyMode": "Режим истории", - "historyModeManual": "Ручной (кнопка фиксации)", - "historyModeAuto": "Автоматический (умный)", - "historyModeManualDesc": "Создавать снимки вручную кнопкой фиксации", - "historyModeAutoDesc": "Автоматические снимки с умным обнаружением", - "history": "История", - "historyRestored": "Версия восстановлена", - "historyEnabled": "История включена", - "historyDisabledDesc": "История отключена для вашей учётной записи.", - "enableHistory": "Включить историю", - "historyEmpty": "Нет доступных версий", - "historySelectVersion": "Выберите версию для предпросмотра", - "sortBy": "Сортировать по", - "sortDateDesc": "Дата (новые)", - "sortDateAsc": "Дата (старые)", - "sortTitleAsc": "Заголовок А → Я", - "sortTitleDesc": "Заголовок Я → А" - }, - "pagination": { - "next": "→", - "pageInfo": "Страница {currentPage} / {totalPages}", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "Непринуждённый", - "expand": "Расширить", - "formal": "Формальный", - "improve": "Улучшить", - "shorten": "Сократить", - "title": "Улучшение текста" - }, - "profile": { - "accountSettings": "Настройки аккаунта", - "autoDetect": "Автоопределение", - "changePassword": "Изменить пароль", - "changePasswordDescription": "Обновите ваш пароль. Вам понадобится ваш текущий пароль.", - "confirmPassword": "Подтвердите пароль", - "currentPassword": "Текущий пароль", - "description": "Обновите вашу личную информацию", - "displayName": "Отображаемое имя", - "displaySettings": "Настройки отображения", - "displaySettingsDescription": "Настройте внешний вид и размер шрифта.", - "email": "Эл. почта", - "fontSize": "Размер шрифта", - "fontSizeDescription": "Настройте размер шрифта для лучшей читаемости. Это применяется ко всему тексту интерфейса.", - "fontSizeExtraLarge": "Очень большой", - "fontSizeLarge": "Большой", - "fontSizeMedium": "Средний", - "fontSizeSmall": "Маленький", - "fontSizeUpdateFailed": "Не удалось обновить размер шрифта", - "fontSizeUpdateSuccess": "Размер шрифта успешно обновлён", - "languageDescription": "Этот язык будет использоваться для функций на базе ИИ, анализа содержимого и текста интерфейса.", - "languagePreferences": "Языковые предпочтения", - "languagePreferencesDescription": "Выберите предпочитаемый язык для функций ИИ и интерфейса.", - "languageUpdateFailed": "Не удалось обновить язык", - "languageUpdateSuccess": "Язык успешно обновлён", - "manageAISettings": "Управление настройками ИИ", - "newPassword": "Новый пароль", - "passwordChangeFailed": "Не удалось изменить пароль", - "passwordChangeSuccess": "Пароль успешно изменён", - "passwordError": "Ошибка обновления пароля", - "passwordUpdated": "Пароль обновлён", - "preferredLanguage": "Предпочитаемый язык", - "profileError": "Ошибка обновления профиля", - "profileUpdated": "Профиль обновлён", - "recentNotesUpdateFailed": "Не удалось обновить настройку недавних заметок", - "recentNotesUpdateSuccess": "Настройка недавних заметок успешно обновлена", - "selectFontSize": "Выбрать размер шрифта", - "selectLanguage": "Выберите язык", - "showRecentNotes": "Показать раздел недавних заметок", - "showRecentNotesDescription": "Отображать недавние заметки (за последние 7 дней) на главной странице", - "title": "Профиль", - "updateFailed": "Не удалось обновить профиль", - "updatePassword": "Обновить пароль", - "updateSuccess": "Профиль обновлён" - }, - "reminder": { - "cancel": "Отмена", - "reminderDate": "Дата напоминания", - "reminderTime": "Время напоминания", - "removeReminder": "Удалить напоминание", - "save": "Установить напоминание", - "setReminder": "Установить напоминание", - "title": "Напоминание" - }, - "resetPassword": { - "confirmNewPassword": "Подтвердите новый пароль", - "description": "Введите ваш новый пароль ниже.", - "invalidLinkDescription": "Эта ссылка для сброса пароля недействительна или истекла.", - "invalidLinkTitle": "Недействительная ссылка", - "loading": "Загрузка...", - "newPassword": "Новый пароль", - "passwordMismatch": "Пароли не совпадают", - "requestNewLink": "Запросить новую ссылку", - "resetPassword": "Сбросить пароль", - "resetting": "Сброс...", - "success": "Пароль успешно сброшен. Теперь вы можете войти.", - "title": "Сброс пароля" - }, - "search": { - "exactMatch": "Точное совпадение", - "noResults": "Результаты не найдены", - "placeholder": "Поиск", - "related": "Связанные", - "resultsFound": "Найдено заметок: {count}", - "searchPlaceholder": "Поиск в заметках...", - "searching": "Поиск...", - "semanticInProgress": "ИИ-поиск...", - "semanticTooltip": "Семантический поиск с ИИ", - "disabledAdmin": "Поиск отключён в режиме администратора" - }, - "semanticSearch": { - "exactMatch": "Точное совпадение", - "related": "Связанные", - "searching": "Поиск..." - }, "settings": { - "about": "О программе", + "title": "Настройки", + "description": "Управление настройками и предпочтениями", "account": "Аккаунт", "appearance": "Внешний вид", - "cleanTags": "Очистить потерянные теги", - "cleanTagsDescription": "Удалить теги, которые больше не используются ни в одной заметке", - "description": "Управление настройками и предпочтениями", + "theme": "Тема", + "themeLight": "Светлая", + "themeDark": "Тёмная", + "themeSystem": "Системная", + "notifications": "Уведомления", "language": "Язык", - "languageAuto": "Автоматически", + "selectLanguage": "Выберите язык", + "security": "Безопасность", + "about": "О программе", + "version": "Версия", + "settingsSaved": "Настройки сохранены", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "Ошибка сохранения настроек", "maintenance": "Обслуживание", "maintenanceDescription": "Инструменты для поддержания базы данных в рабочем состоянии", - "notifications": "Уведомления", - "privacy": "Конфиденциальность", - "profile": "Профиль", - "searchNoResults": "Результаты не найдены", - "security": "Безопасность", - "selectLanguage": "Выберите язык", - "semanticIndexing": "Семантическая индексация", - "semanticIndexingDescription": "Создать векторы для всех заметок для поиска по смыслу", - "settingsError": "Ошибка сохранения настроек", - "settingsSaved": "Настройки сохранены", - "theme": "Тема", - "themeDark": "Тёмная", - "themeLight": "Светлая", - "themeSystem": "Системная", - "title": "Настройки", - "version": "Версия", + "cleanTags": "Очистить потерянные теги", + "cleanTagsDescription": "Удалить теги, которые больше не используются ни в одной заметке", "cleanupDone": "Синхронизировано {created} записей меток, удалено {deleted} потерянных", "cleanupNothing": "Нечего делать — метки уже соответствуют вашим заметкам", "cleanupWithErrors": "некоторые операции завершились с ошибкой", "cleanupError": "Не удалось очистить метки", "indexingComplete": "Индексация завершена: обработано {count} заметок", "indexingError": "Ошибка при индексации", + "semanticIndexing": "Семантическая индексация", + "semanticIndexingDescription": "Создать векторы для всех заметок для поиска по смыслу", + "profile": "Профиль", + "searchNoResults": "Результаты не найдены", + "languageAuto": "Автоматически", "emailNotifications": "Email-уведомления", "emailNotificationsDesc": "Получать важные уведомления по email", "desktopNotifications": "Уведомления на рабочем столе", "desktopNotificationsDesc": "Получать уведомления в браузере", "notificationsDesc": "Управление настройками уведомлений" }, - "sidebar": { - "archive": "Архив", - "editLabels": "Редактировать метки", + "profile": { + "title": "Профиль", + "description": "Обновите вашу личную информацию", + "displayName": "Отображаемое имя", + "email": "Эл. почта", + "changePassword": "Изменить пароль", + "changePasswordDescription": "Обновите ваш пароль. Вам понадобится ваш текущий пароль.", + "currentPassword": "Текущий пароль", + "newPassword": "Новый пароль", + "confirmPassword": "Подтвердите пароль", + "updatePassword": "Обновить пароль", + "passwordChangeSuccess": "Пароль успешно изменён", + "passwordChangeFailed": "Не удалось изменить пароль", + "passwordUpdated": "Пароль обновлён", + "passwordError": "Ошибка обновления пароля", + "languagePreferences": "Языковые предпочтения", + "languagePreferencesDescription": "Выберите предпочитаемый язык для функций ИИ и интерфейса.", + "preferredLanguage": "Предпочитаемый язык", + "selectLanguage": "Выберите язык", + "languageDescription": "Этот язык будет использоваться для функций на базе ИИ, анализа содержимого и текста интерфейса.", + "autoDetect": "Автоопределение", + "updateSuccess": "Профиль обновлён", + "updateFailed": "Не удалось обновить профиль", + "languageUpdateSuccess": "Язык успешно обновлён", + "languageUpdateFailed": "Не удалось обновить язык", + "profileUpdated": "Профиль обновлён", + "profileError": "Ошибка обновления профиля", + "accountSettings": "Настройки аккаунта", + "manageAISettings": "Управление настройками ИИ", + "displaySettings": "Настройки отображения", + "displaySettingsDescription": "Настройте внешний вид и размер шрифта.", + "fontSize": "Размер шрифта", + "selectFontSize": "Выбрать размер шрифта", + "fontSizeSmall": "Маленький", + "fontSizeMedium": "Средний", + "fontSizeLarge": "Большой", + "fontSizeExtraLarge": "Очень большой", + "fontSizeDescription": "Настройте размер шрифта для лучшей читаемости. Это применяется ко всему тексту интерфейса.", + "fontSizeUpdateSuccess": "Размер шрифта успешно обновлён", + "fontSizeUpdateFailed": "Не удалось обновить размер шрифта", + "showRecentNotes": "Показать раздел недавних заметок", + "showRecentNotesDescription": "Отображать недавние заметки (за последние 7 дней) на главной странице", + "recentNotesUpdateSuccess": "Настройка недавних заметок успешно обновлена", + "recentNotesUpdateFailed": "Не удалось обновить настройку недавних заметок" + }, + "aiSettings": { + "title": "Настройки ИИ", + "description": "Настройте функции и предпочтения на базе ИИ", + "features": "Функции ИИ", + "provider": "Провайдер ИИ", + "providerAuto": "Авто (Рекомендуется)", + "providerOllama": "Ollama (Локальный)", + "providerOpenAI": "OpenAI (Облачный)", + "frequency": "Частота", + "frequencyDaily": "Ежедневно", + "frequencyWeekly": "Еженедельно", + "saving": "Сохранение...", + "saved": "Настройка обновлена", + "error": "Не удалось обновить настройку", + "titleSuggestionsDesc": "Предлагать заголовки для заметок без названия после 50+ слов", + "paragraphRefactorDesc": "Параметры улучшения текста с помощью ИИ", + "frequencyDesc": "Как часто анализировать связи между заметками", + "providerDesc": "Выберите предпочитаемого провайдера ИИ", + "providerAutoDesc": "Ollama при наличии, иначе OpenAI", + "providerOllamaDesc": "100% приватно, работает локально на вашем устройстве", + "providerOpenAIDesc": "Наиболее точно, требует API-ключ" + }, + "general": { + "loading": "Загрузка...", + "save": "Сохранить", + "cancel": "Отмена", + "add": "Добавить", + "edit": "Редактировать", + "confirm": "Подтвердить", + "close": "Закрыть", + "back": "Назад", + "next": "Далее", + "previous": "Назад", + "submit": "Отправить", + "reset": "Сбросить", + "apply": "Применить", + "clear": "Очистить", + "select": "Выбрать", + "tryAgain": "Пожалуйста, попробуйте снова", + "error": "Произошла ошибка", + "operationSuccess": "Операция успешна", + "operationFailed": "Операция не удалась", + "testConnection": "Проверить подключение", + "clean": "Очистить", + "indexAll": "Индексировать все", + "preview": "Предпросмотр" + }, + "colors": { + "default": "По умолчанию", + "red": "Красный", + "blue": "Синий", + "green": "Зелёный", + "yellow": "Жёлтый", + "purple": "Фиолетовый", + "pink": "Розовый", + "orange": "Оранжевый", + "gray": "Серый" + }, + "reminder": { + "title": "Напоминание", + "setReminder": "Установить напоминание", + "removeReminder": "Удалить напоминание", + "reminderDate": "Дата напоминания", + "reminderTime": "Время напоминания", + "save": "Установить напоминание", + "cancel": "Отмена" + }, + "reminders": { + "title": "Напоминания", + "empty": "Нет напоминаний", + "emptyDescription": "Добавьте напоминание к заметке, и оно появится здесь.", + "upcoming": "Предстоящие", + "overdue": "Просроченные", + "done": "Выполненные", + "markDone": "Отметить как выполненное", + "markUndone": "Отметить как невыполненное", + "todayAt": "Сегодня в {time}", + "tomorrowAt": "Завтра в {time}" + }, + "notebook": { + "create": "Создать блокнот", + "createNew": "Создать новый блокнот", + "createDescription": "Начните новую коллекцию для эффективной организации ваших заметок, идей и проектов.", + "name": "Название блокнота", + "namePlaceholder": "напр. Маркетинговая стратегия Q4", + "myNotebook": "Мой блокнот", + "saving": "Сохранение...", + "selectIcon": "Значок", + "selectColor": "Цвет", + "cancel": "Отмена", + "creating": "Создание...", + "edit": "Редактировать блокнот", + "editDescription": "Измените название, значок и цвет вашего блокнота.", + "delete": "Удалить блокнот", + "deleteWarning": "Вы уверены, что хотите удалить этот блокнот? Заметки будут перемещены в Общие заметки.", + "deleteConfirm": "Удалить", + "summary": "Сводка блокнота", + "summaryDescription": "Сгенерируйте сводку на основе ИИ всех заметок в этом блокноте.", + "generating": "Генерация сводки...", + "summaryError": "Ошибка генерации сводки", "labels": "Метки", - "notes": "Заметки", - "reminders": "Напоминания", - "trash": "Корзина", - "newNoteTabs": "Новая заметка", - "newNoteTabsHint": "Создать заметку в этом блокноте", - "noLabelsInNotebook": "В этом блокноте пока нет меток" + "noLabels": "Нет меток", + "pdfTitle": "Сводка — {name}", + "pdfNotesLabel": "Заметки:", + "pdfGeneratedOn": "Создано:", + "confidence": "уверенность", + "savingReminder": "Не удалось сохранить напоминание", + "removingReminder": "Не удалось удалить напоминание", + "generatingDescription": "Please wait..." + }, + "notebookSuggestion": { + "title": "Переместить в {name}?", + "description": "Эта заметка, похоже, принадлежит этому блокноту", + "move": "Переместить", + "dismiss": "Отклонить", + "dismissIn": "Отклонить (закроется через {timeLeft}с)", + "moveToNotebook": "Переместить в блокнот", + "generalNotes": "Общие заметки" + }, + "admin": { + "title": "Панель администратора", + "userManagement": "Управление пользователями", + "chat": "ИИ-чат", + "lab": "Лаборатория", + "agents": "Агенты", + "workspace": "Рабочее пространство", + "settings": "Настройки администратора", + "security": { + "title": "Настройки безопасности", + "description": "Управление контролем доступа и политиками регистрации.", + "allowPublicRegistration": "Разрешить публичную регистрацию", + "allowPublicRegistrationDescription": "Если отключено, новые пользователи могут быть добавлены только администратором через страницу управления пользователями.", + "updateSuccess": "Настройки безопасности обновлены", + "updateFailed": "Не удалось обновить настройки безопасности" + }, + "ai": { + "title": "Конфигурация ИИ", + "description": "Настройте провайдеров ИИ для автоматических тегов и семантического поиска. Используйте разных провайдеров для оптимальной производительности.", + "tagsGenerationProvider": "Провайдер генерации тегов", + "tagsGenerationDescription": "Провайдер ИИ для автоматических предложений тегов. Рекомендуется: Ollama (бесплатно, локально).", + "embeddingsProvider": "Провайдер эмбеддингов", + "embeddingsDescription": "Провайдер ИИ для эмбеддингов семантического поиска. Рекомендуется: OpenAI (лучшее качество).", + "chatProvider": "Провайдер чата", + "chatDescription": "Провайдер ИИ для чат-ассистента. Если не настроен, используется провайдер тегов.", + "provider": "Провайдер", + "baseUrl": "Базовый URL", + "model": "Модель", + "apiKey": "API-ключ", + "selectOllamaModel": "Выберите модель Ollama, установленную в вашей системе", + "openAIKeyDescription": "Ваш API-ключ OpenAI с platform.openai.com", + "modelRecommendations": "gpt-4o-mini = Лучшее соотношение • gpt-4o = Лучшее качество", + "commonModelsDescription": "Популярные модели для API, совместимых с OpenAI", + "selectEmbeddingModel": "Выберите модель эмбеддингов, установленную в вашей системе", + "commonEmbeddingModels": "Популярные модели эмбеддингов для API, совместимых с OpenAI", + "saving": "Сохранение...", + "saveSettings": "Сохранить настройки ИИ", + "openTestPanel": "Открыть панель тестирования ИИ", + "updateSuccess": "Настройки ИИ успешно обновлены", + "updateFailed": "Не удалось обновить настройки ИИ", + "providerTagsRequired": "AI_PROVIDER_TAGS обязателен", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING обязателен", + "providerOllamaOption": "🦙 Ollama (Локальный и бесплатный)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 Пользовательский (совместимый с OpenAI)", + "bestValue": "Лучшее соотношение цена/качество", + "bestQuality": "Лучшее качество", + "saved": "(Сохранено)", + "fetchModelsFailed": "Не удалось получить модели", + "refreshModels": "Обновить модели", + "configured": "Настроен", + "fetchingModels": "Загрузка моделей...", + "clickToLoadModels": "Нажмите ↺ для загрузки моделей", + "searchModel": "Поиск модели...", + "noModels": "Нет моделей. Нажмите ↺", + "modelsAvailable": "{count} модел(ей) доступно", + "enterUrlToLoad": "Введите URL и нажмите ↺", + "currentProvider": "(Текущий: {provider})", + "pageTitle": "Управление ИИ", + "pageDescription": "Мониторинг и настройка функций ИИ", + "configure": "Настроить", + "features": "Функции ИИ", + "providerStatus": "Статус провайдеров ИИ", + "recentRequests": "Недавние запросы ИИ", + "comingSoon": "Скоро", + "activeFeatures": "Активные функции", + "successRate": "Успешность", + "avgResponseTime": "Среднее время ответа", + "configuredProviders": "Настроенные провайдеры", + "settingUpdated": "Настройка обновлена", + "updateFailedShort": "Ошибка обновления", + "titleSuggestions": "Предложения заголовков", + "titleSuggestionsDesc": "Предлагает заголовки для заметок после 50+ слов", + "aiAssistant": "ИИ-ассистент", + "aiAssistantDesc": "Включить ИИ-чат и инструменты улучшения текста", + "memoryEchoFeature": "Я заметил кое-что...", + "memoryEchoFeatureDesc": "Ежедневный анализ связей между заметками", + "languageDetection": "Определение языка", + "languageDetectionDesc": "Автоопределение языка каждой заметки", + "autoLabeling": "Автомаркировка", + "autoLabelingDesc": "Автопредложение и применение меток" + }, + "resend": { + "title": "Resend (Рекомендуется)", + "description": "Отправляйте письма через API Resend. Приоритетнее SMTP, если настроен.", + "apiKey": "API-ключ Resend", + "apiKeyHint": "Получите API-ключ на resend.com. Используется для уведомлений агентов и сброса паролей.", + "saveSettings": "Сохранить настройки Resend", + "updateSuccess": "Настройки Resend обновлены", + "updateFailed": "Не удалось обновить настройки Resend", + "configured": "Resend настроен и активен" + }, + "email": { + "title": "Настройка почты", + "description": "Настройте отправку писем для уведомлений агентов и сброса паролей.", + "provider": "Почтовый провайдер", + "saveSettings": "Сохранить настройки почты", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "smtp": { + "title": "Конфигурация SMTP", + "description": "Настройте почтовый сервер для сброса паролей.", + "host": "Хост", + "port": "Порт", + "username": "Имя пользователя", + "password": "Пароль", + "fromEmail": "Адрес отправителя", + "forceSSL": "Принудительный SSL/TLS (обычно для порта 465)", + "ignoreCertErrors": "Игнорировать ошибки сертификатов (только для Self-hosted/Dev)", + "saveSettings": "Сохранить настройки SMTP", + "sending": "Отправка...", + "testEmail": "Тестовое письмо", + "updateSuccess": "Настройки SMTP обновлены", + "updateFailed": "Не удалось обновить настройки SMTP", + "testSuccess": "Тестовое письмо успешно отправлено!", + "testFailed": "Ошибка: {error}" + }, + "users": { + "createUser": "Создать пользователя", + "addUser": "Добавить пользователя", + "createUserDescription": "Добавьте нового пользователя в систему.", + "name": "Имя", + "email": "Эл. почта", + "password": "Пароль", + "role": "Роль", + "createSuccess": "Пользователь успешно создан", + "createFailed": "Не удалось создать пользователя", + "deleteSuccess": "Пользователь удалён", + "deleteFailed": "Не удалось удалить", + "roleUpdateSuccess": "Роль пользователя обновлена на {role}", + "roleUpdateFailed": "Не удалось обновить роль", + "demote": "Понизить", + "promote": "Повысить", + "confirmDelete": "Вы уверены, что хотите удалить этого пользователя?", + "table": { + "name": "Имя", + "email": "Эл. почта", + "role": "Роль", + "createdAt": "Дата создания", + "actions": "Действия" + }, + "roles": { + "user": "Пользователь", + "admin": "Администратор" + }, + "title": "Пользователи", + "description": "Управление пользователями и правами" + }, + "aiTest": { + "title": "Тестирование провайдера ИИ", + "description": "Протестируйте провайдеров ИИ для генерации тегов и эмбеддингов семантического поиска", + "tagsTestTitle": "Тест генерации тегов", + "tagsTestDescription": "Протестируйте провайдер ИИ, отвечающий за автоматические предложения тегов", + "embeddingsTestTitle": "Тест эмбеддингов", + "embeddingsTestDescription": "Протестируйте провайдер ИИ, отвечающий за эмбеддинги семантического поиска", + "howItWorksTitle": "Как работает тестирование", + "tagsGenerationTest": "🏷️ Тест генерации тегов:", + "tagsStep1": "Отправляет пример заметки провайдеру ИИ", + "tagsStep2": "Запрашивает 3-5 релевантных тегов на основе содержимого", + "tagsStep3": "Отображает сгенерированные теги с оценками уверенности", + "tagsStep4": "Измеряет время ответа", + "embeddingsTestLabel": "🔍 Тест эмбеддингов:", + "embeddingsStep1": "Отправляет пример текста провайдеру эмбеддингов", + "embeddingsStep2": "Генерирует векторное представление (список чисел)", + "embeddingsStep3": "Отображает размерность эмбеддингов и примеры значений", + "embeddingsStep4": "Проверяет, что вектор корректен и правильно отформатирован", + "tipContent": "Вы можете использовать разных провайдеров для тегов и эмбеддингов! Например, Ollama (бесплатно) для тегов и OpenAI (лучшее качество) для эмбеддингов, чтобы оптимизировать расходы и производительность.", + "provider": "Провайдер:", + "model": "Модель:", + "testing": "Тестирование...", + "runTest": "Запустить тест", + "testPassed": "Тест пройден", + "testFailed": "Тест не пройден", + "testSuccessToast": "Тест {type} успешен!", + "testFailedToast": "Тест {type} не пройден", + "testingType": "Тестирование {type}...", + "technicalDetails": "Технические детали", + "responseTime": "Время ответа: {time}мс", + "generatedTags": "Сгенерированные теги:", + "embeddingDimensions": "Размерность эмбеддингов:", + "vectorDimensions": "размерностей вектора", + "first5Values": "Первые 5 значений:", + "error": "Ошибка:", + "testError": "Ошибка теста: {error}", + "tipTitle": "Совет:", + "tipDescription": "Используйте панель тестирования ИИ для диагностики проблем конфигурации перед тестированием." + }, + "sidebar": { + "dashboard": "Панель управления", + "users": "Пользователи", + "aiManagement": "Управление ИИ", + "chat": "ИИ-чат", + "lab": "Лаборатория (Идеи)", + "agents": "Агенты", + "settings": "Настройки" + }, + "metrics": { + "vsLastPeriod": "к предыдущему периоду" + }, + "tools": { + "title": "Инструменты Агента", + "description": "Настройте внешние инструменты для использования агентами: веб-поиск, веб-скрейпинг и доступ к API.", + "searchProvider": "Провайдер Веб-поиска", + "searxng": "SearXNG (Самостоятельный)", + "brave": "Brave Search API", + "both": "Оба (SearXNG основной, Brave запасной)", + "searxngUrl": "URL SearXNG", + "braveKey": "Ключ Brave Search API", + "jinaKey": "Ключ Jina Reader API", + "jinaKeyOptional": "Необязательно — работает без ключа, но с ограничениями", + "jinaKeyDescription": "Используется для веб-скрейпинга. Работает без ключа, но с ограничениями скорости.", + "saveSettings": "Сохранить Настройки Инструментов", + "updateSuccess": "Настройки инструментов успешно обновлены", + "updateFailed": "Не удалось обновить настройки инструментов", + "testing": "Тестирование...", + "testSearch": "Тестировать веб-поиск" + }, + "settingsDescription": "Настройки приложения", + "dashboard": { + "title": "Панель управления", + "description": "Обзор метрик приложения", + "recentActivity": "Недавняя активность", + "recentActivityPlaceholder": "Недавняя активность будет отображена здесь." + }, + "error": { + "title": "Ошибка в панели администратора", + "description": "Не удалось отобразить страницу. Повторите попытку.", + "retry": "Повторить" + } + }, + "about": { + "title": "О программе", + "description": "Информация о приложении", + "appName": "Memento", + "appDescription": "Мощное приложение для заметок с функциями на базе ИИ", + "version": "Версия", + "buildDate": "Дата сборки", + "platform": "Платформа", + "platformWeb": "Веб", + "features": { + "title": "Функции", + "description": "Возможности на базе ИИ", + "titleSuggestions": "Предложения заголовков с ИИ", + "semanticSearch": "Семантический поиск с эмбеддингами", + "paragraphReformulation": "Реформулировка абзацев", + "memoryEcho": "Ежедневные идеи Memory Echo", + "notebookOrganization": "Организация по блокнотам", + "dragDrop": "Управление заметками перетаскиванием", + "labelSystem": "Система меток", + "multipleProviders": "Несколько провайдеров ИИ (OpenAI, Ollama)" + }, + "technology": { + "title": "Технологический стек", + "description": "Создано с использованием современных технологий", + "frontend": "Фронтенд", + "backend": "Бэкенд", + "database": "База данных", + "authentication": "Аутентификация", + "ai": "ИИ", + "ui": "UI", + "testing": "Тестирование" + }, + "support": { + "title": "Поддержка", + "description": "Получите помощь и оставьте отзыв", + "documentation": "Документация", + "reportIssues": "Сообщить о проблемах", + "feedback": "Отзыв" + } }, "support": { - "aiApiCosts": "Расходы на API ИИ:", - "buyMeACoffee": "Купить мне кофе", - "contributeCode": "Внести вклад в код", - "description": "Memento на 100% бесплатен и с открытым кодом. Ваша поддержка помогает сохранить это.", - "directImpact": "Прямое влияние", - "domainSSL": "Домен и SSL:", - "donateOnKofi": "Пожертвовать на Ko-fi", - "donationDescription": "Сделайте разовое пожертвование или станьте ежемесячным сторонником.", - "githubDescription": "Регулярная поддержка • Публичное признание • Ориентировано на разработчиков", - "hostingServers": "Хостинг и серверы:", - "howSupportHelps": "Как помогает ваша поддержка", - "kofiDescription": "Без комиссий платформы • Мгновенные выплаты • Безопасно", - "otherWaysTitle": "Другие способы поддержки", - "reportBug": "Сообщить об ошибке", - "shareTwitter": "Поделиться в Twitter", - "sponsorDescription": "Станьте ежемесячным спонсором и получите признание.", - "sponsorOnGithub": "Спонсировать на GitHub", - "sponsorPerks": "Преимущества спонсора", - "starGithub": "Поставить звезду на GitHub", "title": "Поддержать разработку Memento", - "totalExpenses": "Общие расходы:", + "description": "Memento на 100% бесплатен и с открытым кодом. Ваша поддержка помогает сохранить это.", + "buyMeACoffee": "Купить мне кофе", + "donationDescription": "Сделайте разовое пожертвование или станьте ежемесячным сторонником.", + "donateOnKofi": "Пожертвовать на Ko-fi", + "kofiDescription": "Без комиссий платформы • Мгновенные выплаты • Безопасно", + "sponsorOnGithub": "Спонсировать на GitHub", + "sponsorDescription": "Станьте ежемесячным спонсором и получите признание.", + "githubDescription": "Регулярная поддержка • Публичное признание • Ориентировано на разработчиков", + "howSupportHelps": "Как помогает ваша поддержка", + "directImpact": "Прямое влияние", + "sponsorPerks": "Преимущества спонсора", "transparency": "Прозрачность", - "transparencyDescription": "Я верю в полную прозрачность. Вот как используются пожертвования:" + "transparencyDescription": "Я верю в полную прозрачность. Вот как используются пожертвования:", + "hostingServers": "Хостинг и серверы:", + "domainSSL": "Домен и SSL:", + "aiApiCosts": "Расходы на API ИИ:", + "totalExpenses": "Общие расходы:", + "otherWaysTitle": "Другие способы поддержки", + "starGithub": "Поставить звезду на GitHub", + "reportBug": "Сообщить об ошибке", + "contributeCode": "Внести вклад в код", + "shareTwitter": "Поделиться в Twitter" + }, + "demoMode": { + "title": "Демо-режим", + "activated": "Демо-режим активирован! Memory Echo будет работать мгновенно.", + "deactivated": "Демо-режим деактивирован. Обычные параметры восстановлены.", + "toggleFailed": "Ошибка переключения демо-режима", + "description": "Ускоряет Memory Echo для тестирования. Связи появляются мгновенно.", + "parametersActive": "Активные демо-параметры:", + "similarityThreshold": "Порог сходства 50% (обычно 75%)", + "delayBetweenNotes": "Задержка 0 дней между заметками (обычно 7 дней)", + "unlimitedInsights": "Неограниченные идеи (без ограничений частоты)", + "createNotesTip": "Создайте 2+ похожие заметки и увидьте Memory Echo в действии!" + }, + "resetPassword": { + "title": "Сброс пароля", + "description": "Введите ваш новый пароль ниже.", + "invalidLinkTitle": "Недействительная ссылка", + "invalidLinkDescription": "Эта ссылка для сброса пароля недействительна или истекла.", + "requestNewLink": "Запросить новую ссылку", + "newPassword": "Новый пароль", + "confirmNewPassword": "Подтвердите новый пароль", + "resetting": "Сброс...", + "resetPassword": "Сбросить пароль", + "passwordMismatch": "Пароли не совпадают", + "success": "Пароль успешно сброшен. Теперь вы можете войти.", + "loading": "Загрузка..." + }, + "dataManagement": { + "title": "Управление данными", + "toolsDescription": "Инструменты для поддержания базы данных в рабочем состоянии", + "exporting": "Экспорт...", + "importing": "Импорт...", + "deleting": "Удаление...", + "dangerZone": "Опасная зона", + "dangerZoneDescription": "Эти действия необратимы", + "indexingComplete": "Индексация завершена", + "indexingError": "Ошибка индексации", + "cleanupComplete": "Очистка завершена", + "cleanupError": "Ошибка очистки", + "export": { + "title": "Экспортировать все заметки", + "description": "Скачать все заметки в формате JSON. Включает всё содержимое, метки и метаданные.", + "button": "Экспортировать заметки", + "success": "Заметки успешно экспортированы", + "failed": "Не удалось экспортировать заметки" + }, + "import": { + "title": "Импортировать заметки", + "description": "Загрузите JSON-файл для импорта заметок. Они будут добавлены к существующим, а не заменят их.", + "button": "Импортировать заметки", + "success": "Импортировано {count} заметок", + "failed": "Не удалось импортировать заметки" + }, + "delete": { + "title": "Удалить все заметки", + "description": "Безвозвратно удалить все заметки. Это действие нельзя отменить.", + "button": "Удалить все заметки", + "confirm": "Вы уверены? Все ваши заметки будут удалены безвозвратно.", + "success": "Все заметки удалены", + "failed": "Не удалось удалить заметки" + }, + "indexing": { + "title": "Перестроить поисковый индекс", + "description": "Перегенерировать эмбеддинги для всех заметок для улучшения семантического поиска.", + "button": "Перестроить индекс", + "success": "Индексация завершена: обработано {count} заметок", + "failed": "Ошибка при индексации" + }, + "cleanup": { + "title": "Очистка потерянных данных", + "description": "Удалить метки и связи, ссылающиеся на удалённые заметки.", + "button": "Очистить", + "failed": "Ошибка при очистке" + } + }, + "appearance": { + "title": "Внешний вид", + "description": "Настройте внешний вид приложения", + "notesViewDescription": "Выберите, как отображаются заметки на главной странице и в блокнотах.", + "notesViewLabel": "Макет заметок", + "notesViewTabs": "Вкладки (в стиле OneNote)", + "notesViewMasonry": "Карточки (сетка)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "Общие настройки", + "description": "Общие настройки приложения" + }, + "toast": { + "saved": "Настройка сохранена", + "saveFailed": "Ошибка сохранения настройки", + "operationSuccess": "Операция успешна", + "operationFailed": "Операция не удалась", + "openingConnection": "Открытие соединения...", + "openConnectionFailed": "Ошибка открытия соединения", + "thanksFeedback": "Спасибо за ваш отзыв!", + "thanksFeedbackImproving": "Спасибо! Мы используем это для улучшения.", + "feedbackFailed": "Ошибка отправки отзыва", + "notesFusionSuccess": "Заметки успешно объединены!" }, "testPages": { "titleSuggestions": { - "analyzing": "Анализ...", - "contentLabel": "Содержимое (нужно более 50 слов):", - "error": "Ошибка:", - "idle": "Ожидание", - "noSuggestions": "Пока нет предложений. Напишите 50+ слов и подождите 2 секунды.", - "placeholder": "Напишите минимум 50 слов здесь...", - "status": "Статус:", - "suggestions": "Предложения ({count}):", "title": "Тест предложений заголовков", - "wordCount": "Количество слов:" + "contentLabel": "Содержимое (нужно более 50 слов):", + "placeholder": "Напишите минимум 50 слов здесь...", + "wordCount": "Количество слов:", + "status": "Статус:", + "analyzing": "Анализ...", + "idle": "Ожидание", + "error": "Ошибка:", + "suggestions": "Предложения ({count}):", + "noSuggestions": "Пока нет предложений. Напишите 50+ слов и подождите 2 секунды." } }, - "time": { - "daysAgo": "{count} дней назад", - "hoursAgo": "{count} часов назад", - "justNow": "Только что", - "minutesAgo": "{count} минут назад", - "today": "Сегодня", - "tomorrow": "Завтра", - "yesterday": "Вчера" - }, - "titleSuggestions": { - "available": "Предложения заголовков", - "dismiss": "Отклонить", - "generating": "Генерация...", - "selectTitle": "Выберите заголовок", - "title": "Предложения ИИ" - }, - "toast": { - "feedbackFailed": "Ошибка отправки отзыва", - "notesFusionSuccess": "Заметки успешно объединены!", - "openConnectionFailed": "Ошибка открытия соединения", - "openingConnection": "Открытие соединения...", - "operationFailed": "Операция не удалась", - "operationSuccess": "Операция успешна", - "saveFailed": "Ошибка сохранения настройки", - "saved": "Настройка сохранена", - "thanksFeedback": "Спасибо за ваш отзыв!", - "thanksFeedbackImproving": "Спасибо! Мы используем это для улучшения." - }, "trash": { "title": "Корзина", "empty": "Корзина пуста", @@ -1228,11 +1212,83 @@ "permanentDelete": "Удалить навсегда", "permanentDeleteConfirm": "Эта заметка будет удалена навсегда. Это действие нельзя отменить." }, + "footer": { + "privacy": "Конфиденциальность", + "terms": "Условия", + "openSource": "Open Source клон" + }, + "connection": { + "similarityInfo": "Эти заметки связаны на {similarity}% сходства", + "clickToView": "Нажмите для просмотра заметки", + "isHelpful": "Эта связь полезна?", + "helpful": "Полезно", + "notHelpful": "Не полезно", + "memoryEchoDiscovery": "Обнаружение Memory Echo" + }, + "diagnostics": { + "title": "Диагностика", + "description": "Проверьте статус подключения к провайдеру ИИ", + "configuredProvider": "Настроенный провайдер", + "apiStatus": "Статус API", + "operational": "Работает", + "errorStatus": "Ошибка", + "checking": "Проверка...", + "testDetails": "Детали теста:", + "troubleshootingTitle": "Советы по устранению неполадок:", + "tip1": "Убедитесь, что Ollama запущен (ollama serve)", + "tip2": "Проверьте, что модель установлена (ollama pull llama3)", + "tip3": "Проверьте ваш API-ключ для OpenAI", + "tip4": "Проверьте сетевое подключение" + }, + "batch": { + "organizeWithAI": "Организовать с ИИ", + "organize": "Организовать" + }, + "common": { + "unknown": "Неизвестно", + "notAvailable": "Недоступно", + "loading": "Загрузка...", + "error": "Ошибка", + "success": "Успешно", + "confirm": "Подтвердить", + "cancel": "Отмена", + "close": "Закрыть", + "save": "Сохранить", + "delete": "Удалить", + "edit": "Редактировать", + "add": "Добавить", + "remove": "Удалить", + "search": "Поиск", + "noResults": "Нет результатов", + "required": "Обязательно", + "optional": "Необязательно" + }, + "time": { + "justNow": "Только что", + "minutesAgo": "{count} минут назад", + "hoursAgo": "{count} часов назад", + "daysAgo": "{count} дней назад", + "yesterday": "Вчера", + "today": "Сегодня", + "tomorrow": "Завтра" + }, + "favorites": { + "title": "Избранное", + "toggleSection": "Переключить раздел", + "noFavorites": "Нет избранного", + "pinToFavorite": "Добавить в избранное" + }, + "notebooks": { + "create": "Создать блокнот", + "allNotebooks": "Все блокноты", + "noNotebooks": "Нет блокнотов", + "createFirst": "Создайте свой первый блокнот" + }, "ui": { "close": "Закрыть", - "collapse": "Свернуть", + "open": "Открыть", "expand": "Развернуть", - "open": "Открыть" + "collapse": "Свернуть" }, "mcpSettings": { "title": "Настройки MCP", @@ -1299,6 +1355,10 @@ "subtitle": "Автоматизируйте задачи мониторинга и исследований", "newAgent": "Новый агент", "myAgents": "Мои агенты", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "Нет агентов", "noAgentsDescription": "Создайте своего первого агента или установите шаблон ниже для автоматизации задач мониторинга.", "types": { @@ -1341,7 +1401,9 @@ "researchTopic": "Тема исследования", "researchTopicPlaceholder": "напр: Последние достижения в области ИИ", "notifyEmail": "Email-уведомление", - "notifyEmailHint": "Получайте письмо с результатами агента после каждого запуска" + "notifyEmailHint": "Получайте письмо с результатами агента после каждого запуска", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "Вручную", @@ -1350,6 +1412,22 @@ "weekly": "Еженедельно", "monthly": "Ежемесячно" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "Успешно", "failure": "Сбой", @@ -1378,7 +1456,9 @@ "toggleError": "Ошибка переключения агента", "installSuccess": "\"{name}\" установлен", "installError": "Ошибка при установке", - "saveError": "Ошибка сохранения" + "saveError": "Ошибка сохранения", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "Шаблоны", @@ -1491,7 +1571,8 @@ "welcome": "Я здесь, чтобы помочь вам обобщить заметки, генерировать новые идеи или обсуждать ваши блокноты.", "searching": "Поиск...", "noNotesFoundForContext": "Не найдено заметок по этому вопросу. Ответьте, используя свои общие знания.", - "webSearch": "Веб-поиск" + "webSearch": "Веб-поиск", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "Лаборатория", @@ -1508,30 +1589,8 @@ "createFailed": "Ошибка создания", "deleteSpace": "Удалить пространство", "deleted": "Пространство удалено", - "deleteError": "Ошибка удаления" - }, - "notification": { - "shared": "поделился(ась) \"{title}\"", - "untitled": "Без названия", - "notifications": "Уведомления", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "В совместном доступе отказано", - "noNotifications": "No new notifications", - "removed": "Заметка удалена из списка" - }, - "reminders": { - "title": "Напоминания", - "empty": "Нет напоминаний", - "emptyDescription": "Добавьте напоминание к заметке, и оно появится здесь.", - "upcoming": "Предстоящие", - "overdue": "Просроченные", - "done": "Выполненные", - "markDone": "Отметить как выполненное", - "markUndone": "Отметить как невыполненное", - "todayAt": "Сегодня в {time}", - "tomorrowAt": "Завтра в {time}" + "deleteError": "Ошибка удаления", + "rename": "Rename" }, "lab": { "initializing": "Инициализация пространства", diff --git a/memento-note/locales/zh.json b/memento-note/locales/zh.json index a5428d8..f4a110a 100644 --- a/memento-note/locales/zh.json +++ b/memento-note/locales/zh.json @@ -1,277 +1,329 @@ { - "about": { - "appDescription": "具有 AI 功能的强大笔记应用程序", - "appName": "Memento", - "buildDate": "构建日期", - "description": "应用程序信息", - "features": { - "description": "AI 驱动的功能", - "dragDrop": "拖放笔记管理", - "labelSystem": "标签系统", - "memoryEcho": "Memory Echo 每日洞察", - "multipleProviders": "多个 AI 提供商(OpenAI、Ollama)", - "notebookOrganization": "笔记本组织", - "paragraphReformulation": "段落改写", - "semanticSearch": "使用嵌入的语义搜索", - "title": "功能", - "titleSuggestions": "AI 驱动的标题建议" - }, - "platform": "平台", - "platformWeb": "网页版", - "support": { - "description": "获取帮助和反馈", - "documentation": "文档", - "feedback": "反馈", - "reportIssues": "报告问题", - "title": "支持" - }, - "technology": { - "ai": "AI", - "authentication": "身份验证", - "backend": "后端", - "database": "数据库", - "description": "使用现代技术构建", - "frontend": "前端", - "testing": "测试", - "title": "技术栈", - "ui": "UI" - }, - "title": "关于", - "version": "版本" + "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": "返回登录", + "signOut": "退出登录", + "confirmPassword": "确认密码", + "confirmPasswordPlaceholder": "再次输入密码" }, - "admin": { - "ai": { - "apiKey": "API 密钥", - "baseUrl": "基础 URL", - "commonEmbeddingModels": "OpenAI 兼容 API 的常用嵌入模型", - "commonModelsDescription": "OpenAI 兼容 API 的常用模型", - "description": "配置用于自动标签和语义搜索的 AI 提供商。使用不同的提供商以获得最佳性能。", - "embeddingsDescription": "用于语义搜索嵌入的 AI 提供商。推荐:OpenAI(最佳质量)。", - "embeddingsProvider": "嵌入提供商", - "model": "模型", - "modelRecommendations": "gpt-4o-mini = 最佳性价比 • gpt-4o = 最佳质量", - "openAIKeyDescription": "您来自 platform.openai.com 的 OpenAI API 密钥", - "openTestPanel": "打开 AI 测试面板", - "provider": "提供商", - "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING 是必需的", - "providerTagsRequired": "AI_PROVIDER_TAGS 是必需的", - "saveSettings": "保存 AI 设置", - "saving": "保存中...", - "selectEmbeddingModel": "选择您系统上安装的嵌入模型", - "selectOllamaModel": "选择您系统上安装的 Ollama 模型", - "tagsGenerationDescription": "用于自动标签建议的 AI 提供商。推荐:Ollama(免费,本地)。", - "tagsGenerationProvider": "标签生成提供商", - "title": "AI 配置", - "updateFailed": "更新 AI 设置失败", - "updateSuccess": "AI 设置更新成功", - "bestValue": "最佳性价比", - "bestQuality": "最佳质量", - "providerOllamaOption": "🦙 Ollama (Local & Free)", - "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", - "providerCustomOption": "🔧 Custom OpenAI-Compatible", - "saved": "(已保存)", - "chatProvider": "聊天提供商", - "chatDescription": "用于聊天助手的 AI 提供商。如果未配置,将回退到标签提供商。", - "fetchModelsFailed": "获取模型失败", - "refreshModels": "刷新模型", - "configured": "已配置", - "fetchingModels": "正在获取模型...", - "clickToLoadModels": "点击 ↺ 加载模型", - "searchModel": "搜索模型...", - "noModels": "无模型。点击 ↺", - "modelsAvailable": "{count} 个模型可用", - "enterUrlToLoad": "输入URL并点击↺加载模型", - "currentProvider": "(当前: {provider})", - "pageTitle": "AI管理", - "pageDescription": "监控和配置AI功能", - "configure": "配置", - "features": "AI功能", - "providerStatus": "AI提供商状态", - "recentRequests": "最近的AI请求", - "comingSoon": "即将推出", - "activeFeatures": "活跃功能", - "successRate": "成功率", - "avgResponseTime": "平均响应时间", - "configuredProviders": "已配置提供商", - "settingUpdated": "设置已更新", - "updateFailedShort": "更新失败", - "titleSuggestions": "标题建议", - "titleSuggestionsDesc": "在50+字后为笔记建议标题", - "aiAssistant": "AI助手", - "aiAssistantDesc": "启用AI聊天和文本改进工具", - "memoryEchoFeature": "我注意到了...", - "memoryEchoFeatureDesc": "每日分析笔记之间的联系", - "languageDetection": "语言检测", - "languageDetectionDesc": "自动检测每条笔记的语言", - "autoLabeling": "自动标记", - "autoLabelingDesc": "自动建议并应用标签" - }, - "aiTest": { - "description": "测试您的 AI 提供商的标签生成和语义搜索嵌入", - "embeddingDimensions": "嵌入维度:", - "embeddingsTestDescription": "测试负责语义搜索嵌入的 AI 提供商", - "embeddingsTestTitle": "嵌入测试", - "error": "错误:", - "first5Values": "前 5 个值:", - "generatedTags": "生成的标签:", - "howItWorksTitle": "测试如何工作", - "model": "模型:", - "provider": "提供商:", - "responseTime": "响应时间:{time}毫秒", - "runTest": "运行测试", - "tagsTestDescription": "测试负责自动标签建议的 AI 提供商", - "tagsTestTitle": "标签生成测试", - "testError": "测试错误:{error}", - "testFailed": "测试失败", - "testPassed": "测试通过", - "testing": "测试中...", - "tipDescription": "在测试之前使用 AI 测试面板诊断配置问题。", - "tipTitle": "提示:", - "title": "AI 提供商测试", - "vectorDimensions": "向量维度", - "tagsGenerationTest": "🏷️ 标签生成测试:", - "tagsStep1": "向 AI 提供商发送一条示例笔记", - "tagsStep2": "根据内容请求 3-5 个相关标签", - "tagsStep3": "显示生成的标签及其置信度分数", - "tagsStep4": "测量响应时间", - "embeddingsTestLabel": "🔍 嵌入测试:", - "embeddingsStep1": "向嵌入提供商发送一段示例文本", - "embeddingsStep2": "生成向量表示(数字列表)", - "embeddingsStep3": "显示嵌入维度和示例值", - "embeddingsStep4": "验证向量是否有效且格式正确", - "tipContent": "您可以为标签和嵌入使用不同的提供商!例如,使用 Ollama(免费)生成标签,使用 OpenAI(最佳质量)生成嵌入,以优化成本和性能。", - "testSuccessToast": "{type} 测试成功!", - "testFailedToast": "{type} 测试失败", - "testingType": "正在测试 {type}...", - "technicalDetails": "技术详情" - }, - "aiTesting": "AI 测试", - "security": { - "allowPublicRegistration": "允许公开注册", - "allowPublicRegistrationDescription": "如果禁用,新用户只能由管理员通过用户管理页面添加。", - "description": "管理访问控制和注册策略。", - "title": "安全设置", - "updateFailed": "更新安全设置失败", - "updateSuccess": "安全设置已更新" - }, - "settings": "管理员设置", - "resend": { - "title": "Resend(推荐)", - "description": "通过 Resend API 发送邮件。如已配置,优先于 SMTP。", - "apiKey": "Resend API 密钥", - "apiKeyHint": "从 resend.com 获取 API 密钥。用于代理通知和密码重置。", - "saveSettings": "保存 Resend 设置", - "updateSuccess": "Resend 设置已更新", - "updateFailed": "Resend 设置更新失败", - "configured": "Resend 已配置并激活" - }, - "email": { - "title": "邮件配置", - "description": "配置代理通知和密码重置的邮件发送。", - "provider": "邮件提供商", - "saveSettings": "保存邮件设置" - }, - "smtp": { - "description": "配置用于密码重置的邮件服务器。", - "forceSSL": "强制 SSL/TLS(通常用于端口 465)", - "fromEmail": "发件人邮箱", - "host": "主机", - "ignoreCertErrors": "忽略证书错误(仅限自托管/开发环境)", - "password": "密码", - "port": "端口", - "saveSettings": "保存 SMTP 设置", - "sending": "发送中...", - "testEmail": "测试邮件", - "testFailed": "失败:{error}", - "testSuccess": "测试邮件发送成功!", - "title": "SMTP 配置", - "updateFailed": "更新 SMTP 设置失败", - "updateSuccess": "SMTP 设置已更新", - "username": "用户名" - }, - "title": "管理后台", - "userManagement": "用户管理", - "users": { - "addUser": "添加用户", - "confirmDelete": "确定吗?此操作无法撤销。", - "createFailed": "创建用户失败", - "createSuccess": "用户创建成功", - "createUser": "创建用户", - "createUserDescription": "向系统添加新用户。", - "deleteFailed": "删除失败", - "deleteSuccess": "用户已删除", - "demote": "降级", - "email": "邮箱", - "name": "姓名", - "password": "密码", - "promote": "升级", - "role": "角色", - "roleUpdateFailed": "更新角色失败", - "roleUpdateSuccess": "用户角色已更新为 {role}", - "roles": { - "admin": "管理员", - "user": "用户" - }, - "table": { - "actions": "操作", - "createdAt": "创建时间", - "email": "邮箱", - "name": "姓名", - "role": "角色" - }, - "title": "用户", - "description": "管理用户和权限" - }, - "chat": "AI 聊天", - "lab": "实验室", - "agents": "代理", - "workspace": "工作区", - "sidebar": { - "dashboard": "仪表盘", - "users": "用户", - "aiManagement": "AI 管理", - "chat": "AI 聊天", - "lab": "实验室(想法)", - "agents": "代理", - "settings": "设置" - }, - "metrics": { - "vsLastPeriod": "与上一周期相比" - }, - "tools": { - "title": "代理工具", - "description": "配置代理工具使用的外部工具:网络搜索、网页抓取和 API 访问。", - "searchProvider": "网络搜索提供商", - "searxng": "SearXNG(自托管)", - "brave": "Brave Search API", - "both": "两者皆可(SearXNG 优先,Brave 备用)", - "searxngUrl": "SearXNG URL", - "braveKey": "Brave Search API 密钥", - "jinaKey": "Jina Reader API 密钥", - "jinaKeyOptional": "可选 — 无密钥也可使用,但有速率限制", - "jinaKeyDescription": "用于网页抓取。无密钥也可使用,但有速率限制。", - "saveSettings": "保存工具设置", - "updateSuccess": "工具设置更新成功", - "updateFailed": "更新工具设置失败", - "testing": "测试中...", - "testSearch": "测试网络搜索" - }, - "settingsDescription": "配置应用程序设置", - "dashboard": { - "title": "仪表板", - "description": "应用程序指标概览", - "recentActivity": "最近活动", - "recentActivityPlaceholder": "最近的活动将在此处显示。" - }, - "error": { - "title": "管理面板出错", - "description": "页面渲染失败。您可以重试。", - "retry": "重试" - } + "sidebar": { + "notes": "笔记", + "reminders": "提醒", + "labels": "标签", + "editLabels": "编辑标签", + "newNoteTabs": "新建笔记", + "newNoteTabsHint": "在此笔记本中创建笔记", + "noLabelsInNotebook": "此笔记本中暂无标签", + "archive": "归档", + "trash": "回收站", + "clearFilter": "Remove filter" + }, + "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": "创建笔记失败", + "deleted": "Note deleted", + "deleteFailed": "Failed to delete note", + "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)", + "pinnedNotes": "已置顶笔记", + "recent": "最近", + "addNote": "添加笔记", + "remove": "移除", + "dragToReorder": "拖动以重新排序", + "more": "更多", + "emptyState": "暂无笔记", + "emptyStateTabs": "这里还没有笔记。使用侧边栏中的「新建笔记」来添加(AI 标题建议会出现在编辑器中)。", + "inNotebook": "在笔记本中", + "moveFailed": "移动失败", + "clarifyFailed": "澄清失败", + "shortenFailed": "缩短失败", + "improveFailed": "改进失败", + "transformFailed": "转换失败", + "markdown": "Markdown", + "unpinned": "未置顶", + "redoShortcut": "重做 (Ctrl+Y)", + "undoShortcut": "撤销 (Ctrl+Z)", + "viewCards": "卡片视图", + "viewCardsTooltip": "卡片网格,支持拖拽排序", + "viewTabs": "列表视图", + "viewTabsTooltip": "上方为标签页,下方为笔记 — 拖拽标签页可排序", + "viewModeGroup": "笔记显示模式", + "reorderTabs": "重新排序标签页", + "modified": "已修改", + "created": "已创建", + "loading": "加载中...", + "exportPDF": "导出PDF", + "savedStatus": "已保存", + "dirtyStatus": "已修改", + "completedLabel": "已完成", + "notes.emptyNotebook": "空笔记本", + "notes.emptyNotebookDesc": "此笔记本没有笔记。点击 + 创建一个。", + "notes.noNoteSelected": "未选择笔记", + "notes.selectOrCreateNote": "从列表中选择笔记或创建新笔记。", + "commitVersion": "保存版本", + "versionSaved": "版本已保存", + "deleteVersion": "删除此版本", + "versionDeleted": "版本已删除", + "deleteVersionConfirm": "确定永久删除此版本?", + "historyMode": "历史模式", + "historyModeManual": "手动(提交按钮)", + "historyModeAuto": "自动(智能)", + "historyModeManualDesc": "使用提交按钮手动创建快照", + "historyModeAutoDesc": "智能检测自动创建快照", + "history": "历史", + "historyRestored": "版本已恢复", + "historyEnabled": "历史已启用", + "historyDisabledTitle": "Version history", + "historyDisabledDesc": "您的账户已禁用历史记录。", + "historyEnabledTitle": "History enabled!", + "historyEnabledDesc": "Versions of this note will now be recorded.", + "enableHistory": "启用历史", + "historyEmpty": "暂无版本", + "historySelectVersion": "选择一个版本以预览其内容", + "sortBy": "排序方式", + "sortDateDesc": "日期(最新)", + "sortDateAsc": "日期(最早)", + "sortTitleAsc": "标题 A → Z", + "sortTitleDesc": "标题 Z → A", + "suggestTitle": "AI title", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated", + "content": "Content", + "restore": "Restore", + "createFailed": "Failed to create note", + "updateFailed": "Failed to update note", + "archived": "Note archived", + "archiveFailed": "Failed to archive", + "sort": "Sort", + "confirmDeleteTitle": "Delete note", + "leftShare": "Share removed", + "dismissed": "Note dismissed from recent", + "generalNotes": "General Notes" + }, + "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": "⚠️ 标签仅在笔记本中可用。请先将此笔记移至笔记本。", + "count": "{count} 个标签", + "noLabels": "暂无标签", + "confirmDeleteShort": "确认?", + "labelRemoved": "标签 \"{label}\" 已移除" + }, + "search": { + "placeholder": "搜索", + "searchPlaceholder": "搜索您的笔记...", + "semanticInProgress": "AI 搜索进行中...", + "semanticTooltip": "AI 语义搜索", + "searching": "搜索中...", + "noResults": "未找到结果", + "resultsFound": "找到 {count} 条笔记", + "exactMatch": "完全匹配", + "related": "相关", + "disabledAdmin": "管理员模式下搜索已禁用" + }, + "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": "改写", "autoLabels": { "error": "获取标签建议失败", "noLabelsSelected": "未选择标签", @@ -304,47 +356,11 @@ "selectAllIn": "选择 {notebook} 中的所有笔记", "selectNote": "选择笔记:{title}" }, - "clarify": "澄清", - "clickToAddTag": "点击添加此标签", - "generateTitles": "生成标题", - "generateTitlesTooltip": "使用 AI 生成标题", - "generating": "生成中...", - "generatingTitles": "正在生成标题...", - "ignoreSuggestion": "忽略此建议", - "improveStyle": "改进风格", - "languageDetected": "检测到的语言", "notebookSummary": { "regenerate": "重新生成摘要", "regenerating": "正在重新生成摘要...", "exportPDF": "导出为 PDF" }, - "original": "原文", - "poweredByAI": "由 AI 驱动", - "processing": "处理中...", - "reformulateText": "改写文本", - "reformulated": "改写", - "reformulating": "改写中...", - "reformulationApplied": "改写文本已应用!", - "reformulationComparison": "改写比较", - "reformulationError": "改写时出错", - "reformulationFailed": "改写文本失败", - "reformulationMaxWords": "文本最多包含 500 个单词", - "reformulationMinWords": "文本必须至少包含 10 个单词(当前:{count} 个单词)", - "reformulationNoText": "请选择文本或添加内容", - "reformulationSelectionTooShort": "选择内容太短,将使用完整内容", - "shorten": "缩短", - "tagAdded": "标签 \"{tag}\" 已添加", - "titleApplied": "标题已应用!", - "titleGenerateWithAI": "使用 AI 生成标题", - "titleGenerating": "生成中...", - "titleGenerationError": "生成标题时出错", - "titleGenerationFailed": "生成标题失败", - "titleGenerationMinWords": "内容必须至少包含 10 个单词才能生成标题(当前:{count} 个单词)", - "titlesGenerated": "💡 已生成 {count} 个标题!", - "transformError": "转换时出错", - "transformMarkdown": "转换为 Markdown", - "transformSuccess": "文本已成功转换为 Markdown!", - "transforming": "转换中...", "clarifyDesc": "使文本更清晰易懂", "shortenDesc": "总结文本并突出要点", "improve": "改进写作", @@ -389,11 +405,14 @@ "transformationsDesc": "转换 — 直接应用到笔记", "writeMinWordsAction": "至少写5个字以激活AI操作。", "processingAction": "处理中...", + "noImagesError": "No images in this note", + "overview": "Overview", "action": { "clarify": "澄清", "shorten": "缩短", "improve": "改进", - "toMarkdown": "转为Markdown" + "toMarkdown": "转为Markdown", + "describeImages": "Describe images" }, "openAssistant": "打开AI助手", "poweredByMomento": "由 Momento AI 提供支持", @@ -408,22 +427,256 @@ "historyTab": "历史", "insightsTab": "洞察", "aiCopilot": "AI副驾驶", - "suggestTitle": "AI标题建议" + "suggestTitle": "AI标题建议", + "generateTitleFromImage": "Generate title from image", + "titleGenerated": "Title generated from image" + }, + "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}", + "match": "{percentage}% 匹配", + "fused": "已融合", + "clickToView": "点击查看笔记", + "overlay": { + "title": "关联的笔记", + "searchPlaceholder": "搜索关联...", + "sortBy": "排序方式:", + "sortSimilarity": "相似度", + "sortRecent": "最近", + "sortOldest": "最早", + "viewAll": "并排查看全部", + "loading": "加载中...", + "noConnections": "未找到关联", + "error": "加载关联时出错" + }, + "comparison": { + "title": "💡 笔记比较", + "similarityInfo": "这些笔记的相似度为 {similarity}%", + "highSimilarityInsight": "这些笔记讨论同一主题,具有很高的相似度。它们可以合并或整合。", + "untitled": "无标题", + "clickToView": "点击查看笔记", + "helpfulQuestion": "此比较有帮助吗?", + "helpful": "有帮助", + "notHelpful": "无帮助" + }, + "editorSection": { + "title": "⚡ 关联的笔记({count})", + "loading": "加载中...", + "view": "查看", + "compare": "比较", + "merge": "合并", + "compareAll": "比较全部", + "mergeAll": "合并全部", + "close": "关闭" + }, + "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": "未知日期" + } + }, + "notification": { + "accept": "Accept", + "accepted": "Share accepted", + "decline": "Decline", + "noNotifications": "No new notifications", + "shared": "分享了\"{title}\"", + "untitled": "无标题", + "notifications": "通知", + "declined": "分享已拒绝", + "removed": "笔记已从列表中移除" + }, + "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": "专业版", + "chat": "AI 聊天", + "lab": "实验室", + "agents": "代理" + }, + "settings": { + "title": "设置", + "description": "管理您的设置和偏好", + "account": "账户", + "appearance": "外观", + "theme": "主题", + "themeLight": "浅色", + "themeDark": "深色", + "themeSystem": "跟随系统", + "notifications": "通知", + "language": "语言", + "selectLanguage": "选择语言", + "security": "安全", + "about": "关于", + "version": "版本", + "settingsSaved": "设置已保存", + "cardSizeMode": "Note Size", + "cardSizeModeDescription": "Choose between variable sizes or uniform size", + "selectCardSizeMode": "Select display mode", + "cardSizeVariable": "Variable sizes (small/medium/large)", + "cardSizeUniform": "Uniform size", + "settingsError": "保存设置时出错", + "maintenance": "维护", + "maintenanceDescription": "维护数据库健康的工具", + "cleanTags": "清理孤立标签", + "cleanTagsDescription": "移除不再被任何笔记使用的标签", + "cleanupDone": "已同步 {created} 条标签记录,移除 {deleted} 个孤立标签", + "cleanupNothing": "无需操作 — 标签已与笔记匹配", + "cleanupWithErrors": "部分操作失败", + "cleanupError": "无法清理标签", + "indexingComplete": "索引完成:已处理 {count} 条笔记", + "indexingError": "索引期间出错", + "semanticIndexing": "语义索引", + "semanticIndexingDescription": "为所有笔记生成向量以启用基于意图的搜索", + "profile": "个人资料", + "searchNoResults": "未找到匹配的设置", + "languageAuto": "自动检测", + "emailNotifications": "电子邮件通知", + "emailNotificationsDesc": "通过电子邮件接收重要通知", + "desktopNotifications": "桌面通知", + "desktopNotificationsDesc": "在浏览器中接收通知", + "notificationsDesc": "管理您的通知偏好" + }, + "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": "更新字体大小失败", + "showRecentNotes": "显示最近笔记部分", + "showRecentNotesDescription": "在主页上显示最近 7 天的笔记", + "recentNotesUpdateSuccess": "最近笔记设置更新成功", + "recentNotesUpdateFailed": "更新最近笔记设置失败" }, "aiSettings": { + "title": "AI 设置", "description": "配置您的 AI 驱动功能和偏好设置", - "error": "更新设置失败", "features": "AI 功能", - "frequency": "频率", - "frequencyDaily": "每天", - "frequencyWeekly": "每周", "provider": "AI 提供商", "providerAuto": "自动(推荐)", "providerOllama": "Ollama(本地)", "providerOpenAI": "OpenAI(云端)", - "saved": "设置已更新", + "frequency": "频率", + "frequencyDaily": "每天", + "frequencyWeekly": "每周", "saving": "保存中...", - "title": "AI 设置", + "saved": "设置已更新", + "error": "更新设置失败", "titleSuggestionsDesc": "在 50+ 字后为无标题笔记建议标题", "paragraphRefactorDesc": "AI 驱动的文本改进选项", "frequencyDesc": "分析笔记连接的频率", @@ -432,815 +685,518 @@ "providerOllamaDesc": "100% 私有,在本地运行", "providerOpenAIDesc": "最准确,需要 API 密钥" }, - "appearance": { - "description": "自定义应用的外观", - "title": "外观", - "notesViewDescription": "选择笔记在主页和笔记本中的显示方式。", - "notesViewLabel": "笔记布局", - "notesViewTabs": "标签页(OneNote 风格)", - "notesViewMasonry": "卡片(网格)" - }, - "auth": { - "backToLogin": "返回登录", - "checkYourEmail": "查看您的邮箱", - "createAccount": "创建您的账户", - "email": "电子邮箱", - "emailPlaceholder": "输入您的电子邮箱", - "forgotPassword": "忘记密码?", - "forgotPasswordDescription": "输入您的电子邮箱,我们将向您发送重置密码的链接。", - "forgotPasswordTitle": "忘记密码", - "hasAccount": "已有账户?", - "name": "姓名", - "namePlaceholder": "输入您的姓名", - "noAccount": "没有账户?", - "orContinueWith": "或继续使用", - "password": "密码", - "passwordMinChars": "输入密码(最少 6 个字符)", - "passwordPlaceholder": "输入您的密码", - "rememberMe": "记住我", - "resetEmailSent": "如果您的邮箱存在于我们的系统中,我们已向您发送密码重置链接。", - "resetPassword": "重置密码", - "resetPasswordInstructions": "输入您的邮箱以重置密码", - "returnToLogin": "返回登录", - "sendResetLink": "发送重置链接", - "sending": "发送中...", - "signIn": "登录", - "signInToAccount": "登录您的账户", - "signOut": "退出登录", - "signUp": "注册", - "confirmPassword": "确认密码", - "confirmPasswordPlaceholder": "再次输入密码" - }, - "autoLabels": { - "analyzing": "分析您的笔记...", - "createNewLabel": "创建此新标签并添加它", - "created": "成功创建 {count} 个标签", - "description": "我在 \"{notebookName}\" ({totalNotes} 个笔记) 中发现了重复的主题。为它们创建标签吗?", - "error": "获取标签建议失败", - "new": "(新)", - "noLabelsSelected": "未选择标签", - "note": "笔记", - "notes": "笔记", - "title": "新标签建议", - "typeContent": "输入内容以获取标签建议...", - "typeForSuggestions": "输入以获取建议..." - }, - "batch": { - "organize": "整理", - "organizeWithAI": "用 AI 整理" - }, - "batchOrganization": { - "analyzing": "分析您的笔记...", - "apply": "应用 ({count})", - "applyFailed": "应用整理失败", - "applying": "应用中...", - "confidence": "置信度", - "description": "AI将分析您的笔记并建议将它们组织到笔记本中。", - "error": "创建组织计划失败", - "noNotebooks": "没有可用的笔记本。请先创建笔记本来整理您的笔记。", - "noNotesSelected": "未选择笔记", - "noSuggestions": "AI找不到整理这些笔记的好方法。", - "notesToOrganize": "{count} 个笔记需要整理", - "selectAllIn": "全选", - "selectNote": "选择笔记", - "selected": "已选择 {count}", - "success": "整理成功", - "title": "用AI整理", - "unorganized": "{count} 个笔记无法分类,将保留在\"普通笔记\"中。" - }, - "collaboration": { - "accessRevoked": "访问权限已被撤销", - "addCollaborator": "添加协作者", - "addCollaboratorDescription": "通过电子邮箱添加人员来协作编辑这条笔记。", - "alreadyInList": "此邮箱已在列表中", - "canEdit": "可编辑", - "canView": "可查看", - "done": "完成", - "emailAddress": "电子邮箱", - "emailPlaceholder": "输入电子邮箱", - "enterEmailAddress": "输入电子邮箱", - "errorLoading": "加载协作者时出错", - "failedToAdd": "添加协作者失败", - "failedToRemove": "移除协作者失败", - "invite": "邀请", - "noCollaborators": "还没有协作者。在上方添加某人!", - "noCollaboratorsViewer": "还没有协作者。", - "nowHasAccess": "{name} 现在有权访问此笔记", - "owner": "所有者", - "pending": "待处理", - "pendingInvite": "待处理的邀请", - "peopleWithAccess": "有访问权限的人员", - "remove": "移除", - "removeCollaborator": "移除协作者", - "shareNote": "共享笔记", - "shareWithCollaborators": "与协作者共享", - "unnamedUser": "未命名用户", - "viewerDescription": "您有权访问此笔记。只有所有者可以管理协作者。", - "willBeAdded": "{email} 将在创建笔记时被添加为协作者" + "general": { + "loading": "加载中...", + "save": "保存", + "cancel": "取消", + "add": "添加", + "edit": "编辑", + "confirm": "确认", + "close": "关闭", + "back": "返回", + "next": "下一步", + "previous": "上一步", + "submit": "提交", + "reset": "重置", + "apply": "应用", + "clear": "清除", + "select": "选择", + "tryAgain": "请重试", + "error": "发生错误", + "operationSuccess": "操作成功", + "operationFailed": "操作失败", + "testConnection": "测试连接", + "clean": "清理", + "indexAll": "全部索引", + "preview": "预览" }, "colors": { - "blue": "蓝色", "default": "默认", - "gray": "灰色", - "green": "绿色", - "orange": "橙色", - "pink": "粉色", - "purple": "紫色", "red": "红色", - "yellow": "黄色" + "blue": "蓝色", + "green": "绿色", + "yellow": "黄色", + "purple": "紫色", + "pink": "粉色", + "orange": "橙色", + "gray": "灰色" }, - "common": { - "add": "添加", - "cancel": "取消", - "close": "关闭", - "confirm": "确认", - "delete": "删除", - "edit": "编辑", - "error": "错误", - "loading": "加载中...", - "noResults": "无结果", - "notAvailable": "不可用", - "optional": "可选", - "remove": "移除", - "required": "必填", - "save": "保存", - "search": "搜索", - "success": "成功", - "unknown": "未知" + "reminder": { + "title": "提醒", + "setReminder": "设置提醒", + "removeReminder": "移除提醒", + "reminderDate": "提醒日期", + "reminderTime": "提醒时间", + "save": "设置提醒", + "cancel": "取消" }, - "connection": { - "clickToView": "点击查看笔记", - "helpful": "有帮助", - "isHelpful": "此连接有帮助吗?", - "memoryEchoDiscovery": "Memory Echo 发现", - "notHelpful": "无帮助", - "similarityInfo": "这些笔记通过 {similarity}% 的相似度连接" - }, - "dataManagement": { - "cleanup": { - "button": "清理", - "description": "删除引用已删除笔记的标签和连接。", - "failed": "清理期间出错", - "title": "清理孤立数据" - }, - "cleanupComplete": "清理完成", - "cleanupError": "清理错误", - "dangerZone": "危险区域", - "dangerZoneDescription": "这些操作不可逆,请谨慎操作", - "delete": { - "button": "删除所有笔记", - "confirm": "确定吗?这将永久删除您的所有笔记。", - "description": "永久删除所有笔记。此操作无法撤销。", - "failed": "删除笔记失败", - "success": "所有笔记已删除", - "title": "删除所有笔记" - }, - "deleting": "删除中...", - "export": { - "button": "导出笔记", - "description": "将所有笔记下载为 JSON 文件。包括所有内容、标签和元数据。", - "failed": "导出笔记失败", - "success": "笔记导出成功", - "title": "导出所有笔记" - }, - "exporting": "导出中...", - "import": { - "button": "导入笔记", - "description": "上传 JSON 文件以导入笔记。这将添加到您现有的笔记中,而不是替换它们。", - "failed": "导入笔记失败", - "success": "已导入 {count} 条笔记", - "title": "导入笔记" - }, - "importing": "导入中...", - "indexing": { - "button": "重建索引", - "description": "为所有笔记重新生成嵌入以提高语义搜索效果。", - "failed": "索引期间出错", - "success": "索引完成:已处理 {count} 条笔记", - "title": "重建搜索索引" - }, - "indexingComplete": "索引完成", - "indexingError": "索引错误", - "title": "数据管理", - "toolsDescription": "维护数据库健康的工具" - }, - "demoMode": { - "activated": "演示模式已激活!Memory Echo 现在将即时工作。", - "createNotesTip": "创建 2 个以上相似的笔记,看看 Memory Echo 的实际效果!", - "deactivated": "演示模式已禁用。恢复正常参数。", - "delayBetweenNotes": "笔记之间 0 天延迟(通常为 7 天)", - "description": "加速 Memory Echo 以进行测试。连接会立即出现。", - "parametersActive": "演示参数已激活:", - "similarityThreshold": "50% 相似度阈值(通常为 75%)", - "title": "演示模式", - "toggleFailed": "切换演示模式失败", - "unlimitedInsights": "无限洞察(无频率限制)" - }, - "diagnostics": { - "apiStatus": "API 状态", - "checking": "检查中...", - "configuredProvider": "已配置的提供商", - "description": "检查您的 AI 提供商连接状态", - "errorStatus": "错误", - "operational": "正常运行", - "testDetails": "测试详情:", - "tip1": "确保 Ollama 正在运行(ollama serve)", - "tip2": "检查模型是否已安装(ollama pull llama3)", - "tip3": "验证您的 OpenAI API 密钥", - "tip4": "检查网络连接", - "title": "诊断", - "troubleshootingTitle": "故障排除提示:" - }, - "favorites": { - "noFavorites": "暂无收藏", - "pinToFavorite": "固定到收藏夹", - "title": "收藏夹", - "toggleSection": "切换收藏夹部分" - }, - "footer": { - "openSource": "开源克隆", - "privacy": "隐私", - "terms": "条款" - }, - "general": { - "add": "添加", - "apply": "应用", - "back": "返回", - "cancel": "取消", - "clean": "清理", - "clear": "清除", - "close": "关闭", - "confirm": "确认", - "edit": "编辑", - "error": "发生错误", - "indexAll": "全部索引", - "loading": "加载中...", - "next": "下一步", - "operationFailed": "操作失败", - "operationSuccess": "操作成功", - "preview": "预览", - "previous": "上一步", - "reset": "重置", - "save": "保存", - "select": "选择", - "submit": "提交", - "testConnection": "测试连接", - "tryAgain": "请重试" - }, - "generalSettings": { - "description": "常规应用程序设置", - "title": "常规设置" - }, - "labels": { - "addLabel": "添加标签", - "allLabels": "所有标签", - "changeColor": "更改颜色", - "changeColorTooltip": "更改颜色", - "clearAll": "清除全部", - "confirmDelete": "确定要删除此标签吗?", - "count": "{count} 个标签", - "createLabel": "创建标签", - "delete": "删除", - "deleteTooltip": "删除标签", - "editLabels": "编辑标签", - "editLabelsDescription": "创建、编辑颜色或删除标签。", - "filter": "按标签筛选", - "filterByLabel": "按标签筛选", - "labelColor": "标签颜色", - "labelName": "标签名称", - "loading": "加载中...", - "manage": "管理标签", - "manageLabels": "管理标签", - "manageLabelsDescription": "为此笔记添加或移除标签。点击标签可更改其颜色。", - "manageTooltip": "管理标签", - "namePlaceholder": "输入标签名称", - "newLabelPlaceholder": "创建新标签", - "noLabels": "暂无标签", - "noLabelsFound": "未找到标签。", - "notebookRequired": "⚠️ 标签仅在笔记本中可用。请先将此笔记移至笔记本。", - "selectedLabels": "已选标签", - "showLess": "收起", - "showMore": "展开更多", - "tagAdded": "标签 \"{tag}\" 已添加", - "title": "标签", - "confirmDeleteShort": "确认?", - "labelRemoved": "标签 \"{label}\" 已移除" - }, - "memoryEcho": { - "clickToView": "点击查看笔记", - "comparison": { - "clickToView": "点击查看笔记", - "helpful": "有帮助", - "helpfulQuestion": "此比较有帮助吗?", - "highSimilarityInsight": "这些笔记讨论同一主题,具有很高的相似度。它们可以合并或整合。", - "notHelpful": "无帮助", - "similarityInfo": "这些笔记的相似度为 {similarity}%", - "title": "💡 笔记比较", - "untitled": "无标题" - }, - "connection": "关联", - "connections": "关联", - "connectionsBadge": "{count} 个关联{plural}", - "dailyInsight": "您的笔记的每日洞察", - "description": "您的笔记之间的主动关联", - "dismiss": "暂时忽略", - "editorSection": { - "close": "关闭", - "compare": "比较", - "compareAll": "比较全部", - "loading": "加载中...", - "merge": "合并", - "mergeAll": "合并全部", - "title": "⚡ 关联的笔记({count})", - "view": "查看" - }, - "fused": "已融合", - "fusion": { - "archiveOriginals": "归档原始笔记", - "cancel": "取消", - "confirmFusion": "确认融合", - "createBacklinks": "创建指向原始笔记的反向链接", - "edit": "编辑", - "error": "合并笔记失败", - "finishEditing": "完成编辑", - "generateError": "生成融合失败", - "generateFusion": "生成融合", - "generating": "生成中...", - "keepAllTags": "保留所有标签", - "mergeNotes": "合并 {count} 条笔记", - "modify": "修改", - "noContentReturned": "API 未返回融合内容", - "notesToMerge": "📝 要合并的笔记", - "optionalPrompt": "💬 融合提示(可选)", - "optionsTitle": "融合选项", - "previewTitle": "📝 合并笔记的预览", - "promptPlaceholder": "AI 的可选指令(例如,'保持笔记 1 的正式风格')...", - "success": "笔记合并成功!", - "title": "🔗 智能融合", - "unknownDate": "未知日期", - "useLatestTitle": "使用最新笔记作为标题" - }, - "helpful": "有帮助", - "insightReady": "您的洞察已准备好!", - "notHelpful": "无帮助", - "overlay": { - "error": "加载关联时出错", - "loading": "加载中...", - "noConnections": "未找到关联", - "searchPlaceholder": "搜索关联...", - "sortBy": "排序方式:", - "sortOldest": "最早", - "sortRecent": "最近", - "sortSimilarity": "相似度", - "title": "关联的笔记", - "viewAll": "并排查看全部" - }, - "thanksFeedback": "感谢您的反馈!", - "thanksFeedbackImproving": "谢谢!我们将利用此来改进。", - "title": "我注意到了一些事情...", - "viewConnection": "查看关联", - "match": "{percentage}% 匹配" - }, - "nav": { - "accountSettings": "账户设置", - "adminDashboard": "管理后台", - "aiSettings": "AI 设置", - "archive": "归档", - "buyMeACoffee": "请我喝杯咖啡", - "configureAI": "配置您的 AI 驱动功能、提供商和偏好设置", - "diagnostics": "诊断", - "donateOnKofi": "在 Ko-fi 上捐赠", - "donationDescription": "进行一次性捐赠或成为月度支持者。", - "donationNote": "无平台费用 • 即时付款 • 安全", - "favorites": "收藏夹", - "generalNotes": "普通笔记", - "home": "主页", - "login": "登录", - "logout": "退出登录", - "manageAISettings": "管理 AI 设置", - "myLibrary": "我的库", - "notebooks": "笔记本", - "notes": "笔记", - "proPlan": "专业版", - "profile": "个人资料", - "quickAccess": "快速访问", - "recent": "最近", - "reminders": "提醒", - "settings": "设置", - "sponsorDescription": "成为月度赞助者并获得认可。", - "sponsorOnGithub": "在 GitHub 上赞助", - "support": "支持 Memento ☕", - "supportDescription": "Memento 是 100% 免费和开源的。您的支持帮助它保持这种方式。", - "supportDevelopment": "支持 Memento 开发 ☕", - "trash": "回收站", - "userManagement": "用户管理", - "workspace": "工作区", - "chat": "AI 聊天", - "lab": "实验室", - "agents": "代理" + "reminders": { + "title": "提醒", + "empty": "暂无提醒", + "emptyDescription": "为笔记添加提醒后,它会显示在这里。", + "upcoming": "即将到来", + "overdue": "已过期", + "done": "已完成", + "markDone": "标记为已完成", + "markUndone": "标记为未完成", + "todayAt": "今天 {time}", + "tomorrowAt": "明天 {time}" }, "notebook": { - "cancel": "取消", "create": "创建笔记本", - "createDescription": "开始一个新的集合,高效地组织您的笔记、想法和项目。", "createNew": "创建新笔记本", - "creating": "创建中...", - "delete": "删除笔记本", - "deleteConfirm": "删除", - "deleteWarning": "确定要删除此笔记本吗?笔记将被移动到普通笔记。", - "edit": "编辑笔记本", - "editDescription": "更改笔记本的名称、图标和颜色。", - "generating": "正在生成摘要...", - "labels": "标签", + "createDescription": "开始一个新的集合,高效地组织您的笔记、想法和项目。", "name": "笔记本名称", - "noLabels": "暂无标签", - "selectColor": "颜色", - "selectIcon": "图标", - "summary": "笔记本摘要", - "summaryDescription": "生成此笔记本中所有笔记的 AI 摘要。", - "summaryError": "生成摘要时出错", "namePlaceholder": "例如:第四季度营销策略", "myNotebook": "我的笔记本", "saving": "保存中...", + "selectIcon": "图标", + "selectColor": "颜色", + "cancel": "取消", + "creating": "创建中...", + "edit": "编辑笔记本", + "editDescription": "更改笔记本的名称、图标和颜色。", + "delete": "删除笔记本", + "deleteWarning": "确定要删除此笔记本吗?笔记将被移动到普通笔记。", + "deleteConfirm": "删除", + "summary": "笔记本摘要", + "summaryDescription": "生成此笔记本中所有笔记的 AI 摘要。", + "generating": "正在生成摘要...", + "summaryError": "生成摘要时出错", + "labels": "标签", + "noLabels": "暂无标签", "pdfTitle": "摘要 — {name}", "pdfNotesLabel": "笔记:", "pdfGeneratedOn": "生成日期:", "confidence": "置信度", "savingReminder": "保存提醒失败", - "removingReminder": "移除提醒失败" + "removingReminder": "移除提醒失败", + "generatingDescription": "Please wait..." }, "notebookSuggestion": { + "title": "移动到 {name}?", "description": "这条笔记似乎属于这个笔记本", + "move": "移动", "dismiss": "忽略", "dismissIn": "忽略({timeLeft} 秒后关闭)", - "generalNotes": "普通笔记", - "move": "移动", "moveToNotebook": "移动到笔记本", - "title": "移动到 {name}?" + "generalNotes": "普通笔记" }, - "notebooks": { - "allNotebooks": "所有笔记本", - "create": "创建笔记本", - "createFirst": "创建您的第一个笔记本", - "noNotebooks": "暂无笔记本" + "admin": { + "title": "管理后台", + "userManagement": "用户管理", + "chat": "AI 聊天", + "lab": "实验室", + "agents": "代理", + "workspace": "工作区", + "settings": "管理员设置", + "security": { + "title": "安全设置", + "description": "管理访问控制和注册策略。", + "allowPublicRegistration": "允许公开注册", + "allowPublicRegistrationDescription": "如果禁用,新用户只能由管理员通过用户管理页面添加。", + "updateSuccess": "安全设置已更新", + "updateFailed": "更新安全设置失败" + }, + "ai": { + "title": "AI 配置", + "description": "配置用于自动标签和语义搜索的 AI 提供商。使用不同的提供商以获得最佳性能。", + "tagsGenerationProvider": "标签生成提供商", + "tagsGenerationDescription": "用于自动标签建议的 AI 提供商。推荐:Ollama(免费,本地)。", + "embeddingsProvider": "嵌入提供商", + "embeddingsDescription": "用于语义搜索嵌入的 AI 提供商。推荐:OpenAI(最佳质量)。", + "chatProvider": "聊天提供商", + "chatDescription": "用于聊天助手的 AI 提供商。如果未配置,将回退到标签提供商。", + "provider": "提供商", + "baseUrl": "基础 URL", + "model": "模型", + "apiKey": "API 密钥", + "selectOllamaModel": "选择您系统上安装的 Ollama 模型", + "openAIKeyDescription": "您来自 platform.openai.com 的 OpenAI API 密钥", + "modelRecommendations": "gpt-4o-mini = 最佳性价比 • gpt-4o = 最佳质量", + "commonModelsDescription": "OpenAI 兼容 API 的常用模型", + "selectEmbeddingModel": "选择您系统上安装的嵌入模型", + "commonEmbeddingModels": "OpenAI 兼容 API 的常用嵌入模型", + "saving": "保存中...", + "saveSettings": "保存 AI 设置", + "openTestPanel": "打开 AI 测试面板", + "updateSuccess": "AI 设置更新成功", + "updateFailed": "更新 AI 设置失败", + "providerTagsRequired": "AI_PROVIDER_TAGS 是必需的", + "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING 是必需的", + "providerOllamaOption": "🦙 Ollama (Local & Free)", + "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", + "providerCustomOption": "🔧 Custom OpenAI-Compatible", + "bestValue": "最佳性价比", + "bestQuality": "最佳质量", + "saved": "(已保存)", + "fetchModelsFailed": "获取模型失败", + "refreshModels": "刷新模型", + "configured": "已配置", + "fetchingModels": "正在获取模型...", + "clickToLoadModels": "点击 ↺ 加载模型", + "searchModel": "搜索模型...", + "noModels": "无模型。点击 ↺", + "modelsAvailable": "{count} 个模型可用", + "enterUrlToLoad": "输入URL并点击↺加载模型", + "currentProvider": "(当前: {provider})", + "pageTitle": "AI管理", + "pageDescription": "监控和配置AI功能", + "configure": "配置", + "features": "AI功能", + "providerStatus": "AI提供商状态", + "recentRequests": "最近的AI请求", + "comingSoon": "即将推出", + "activeFeatures": "活跃功能", + "successRate": "成功率", + "avgResponseTime": "平均响应时间", + "configuredProviders": "已配置提供商", + "settingUpdated": "设置已更新", + "updateFailedShort": "更新失败", + "titleSuggestions": "标题建议", + "titleSuggestionsDesc": "在50+字后为笔记建议标题", + "aiAssistant": "AI助手", + "aiAssistantDesc": "启用AI聊天和文本改进工具", + "memoryEchoFeature": "我注意到了...", + "memoryEchoFeatureDesc": "每日分析笔记之间的联系", + "languageDetection": "语言检测", + "languageDetectionDesc": "自动检测每条笔记的语言", + "autoLabeling": "自动标记", + "autoLabelingDesc": "自动建议并应用标签" + }, + "resend": { + "title": "Resend(推荐)", + "description": "通过 Resend API 发送邮件。如已配置,优先于 SMTP。", + "apiKey": "Resend API 密钥", + "apiKeyHint": "从 resend.com 获取 API 密钥。用于代理通知和密码重置。", + "saveSettings": "保存 Resend 设置", + "updateSuccess": "Resend 设置已更新", + "updateFailed": "Resend 设置更新失败", + "configured": "Resend 已配置并激活" + }, + "email": { + "title": "邮件配置", + "description": "配置代理通知和密码重置的邮件发送。", + "provider": "邮件提供商", + "saveSettings": "保存邮件设置", + "status": "Service Status", + "keySet": "key configured", + "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", + "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", + "noneConfigured": "No email service configured. Set up Resend or SMTP.", + "activeProvider": "Active provider", + "testOk": "test passed", + "testFail": "test failed" + }, + "smtp": { + "title": "SMTP 配置", + "description": "配置用于密码重置的邮件服务器。", + "host": "主机", + "port": "端口", + "username": "用户名", + "password": "密码", + "fromEmail": "发件人邮箱", + "forceSSL": "强制 SSL/TLS(通常用于端口 465)", + "ignoreCertErrors": "忽略证书错误(仅限自托管/开发环境)", + "saveSettings": "保存 SMTP 设置", + "sending": "发送中...", + "testEmail": "测试邮件", + "updateSuccess": "SMTP 设置已更新", + "updateFailed": "更新 SMTP 设置失败", + "testSuccess": "测试邮件发送成功!", + "testFailed": "失败:{error}" + }, + "users": { + "createUser": "创建用户", + "addUser": "添加用户", + "createUserDescription": "向系统添加新用户。", + "name": "姓名", + "email": "邮箱", + "password": "密码", + "role": "角色", + "createSuccess": "用户创建成功", + "createFailed": "创建用户失败", + "deleteSuccess": "用户已删除", + "deleteFailed": "删除失败", + "roleUpdateSuccess": "用户角色已更新为 {role}", + "roleUpdateFailed": "更新角色失败", + "demote": "降级", + "promote": "升级", + "confirmDelete": "确定吗?此操作无法撤销。", + "table": { + "name": "姓名", + "email": "邮箱", + "role": "角色", + "createdAt": "创建时间", + "actions": "操作" + }, + "roles": { + "user": "用户", + "admin": "管理员" + }, + "title": "用户", + "description": "管理用户和权限" + }, + "aiTest": { + "title": "AI 提供商测试", + "description": "测试您的 AI 提供商的标签生成和语义搜索嵌入", + "tagsTestTitle": "标签生成测试", + "tagsTestDescription": "测试负责自动标签建议的 AI 提供商", + "embeddingsTestTitle": "嵌入测试", + "embeddingsTestDescription": "测试负责语义搜索嵌入的 AI 提供商", + "howItWorksTitle": "测试如何工作", + "tagsGenerationTest": "🏷️ 标签生成测试:", + "tagsStep1": "向 AI 提供商发送一条示例笔记", + "tagsStep2": "根据内容请求 3-5 个相关标签", + "tagsStep3": "显示生成的标签及其置信度分数", + "tagsStep4": "测量响应时间", + "embeddingsTestLabel": "🔍 嵌入测试:", + "embeddingsStep1": "向嵌入提供商发送一段示例文本", + "embeddingsStep2": "生成向量表示(数字列表)", + "embeddingsStep3": "显示嵌入维度和示例值", + "embeddingsStep4": "验证向量是否有效且格式正确", + "tipContent": "您可以为标签和嵌入使用不同的提供商!例如,使用 Ollama(免费)生成标签,使用 OpenAI(最佳质量)生成嵌入,以优化成本和性能。", + "provider": "提供商:", + "model": "模型:", + "testing": "测试中...", + "runTest": "运行测试", + "testPassed": "测试通过", + "testFailed": "测试失败", + "testSuccessToast": "{type} 测试成功!", + "testFailedToast": "{type} 测试失败", + "testingType": "正在测试 {type}...", + "technicalDetails": "技术详情", + "responseTime": "响应时间:{time}毫秒", + "generatedTags": "生成的标签:", + "embeddingDimensions": "嵌入维度:", + "vectorDimensions": "向量维度", + "first5Values": "前 5 个值:", + "error": "错误:", + "testError": "测试错误:{error}", + "tipTitle": "提示:", + "tipDescription": "在测试之前使用 AI 测试面板诊断配置问题。" + }, + "sidebar": { + "dashboard": "仪表盘", + "users": "用户", + "aiManagement": "AI 管理", + "chat": "AI 聊天", + "lab": "实验室(想法)", + "agents": "代理", + "settings": "设置" + }, + "metrics": { + "vsLastPeriod": "与上一周期相比" + }, + "tools": { + "title": "代理工具", + "description": "配置代理工具使用的外部工具:网络搜索、网页抓取和 API 访问。", + "searchProvider": "网络搜索提供商", + "searxng": "SearXNG(自托管)", + "brave": "Brave Search API", + "both": "两者皆可(SearXNG 优先,Brave 备用)", + "searxngUrl": "SearXNG URL", + "braveKey": "Brave Search API 密钥", + "jinaKey": "Jina Reader API 密钥", + "jinaKeyOptional": "可选 — 无密钥也可使用,但有速率限制", + "jinaKeyDescription": "用于网页抓取。无密钥也可使用,但有速率限制。", + "saveSettings": "保存工具设置", + "updateSuccess": "工具设置更新成功", + "updateFailed": "更新工具设置失败", + "testing": "测试中...", + "testSearch": "测试网络搜索" + }, + "settingsDescription": "配置应用程序设置", + "dashboard": { + "title": "仪表板", + "description": "应用程序指标概览", + "recentActivity": "最近活动", + "recentActivityPlaceholder": "最近的活动将在此处显示。" + }, + "error": { + "title": "管理面板出错", + "description": "页面渲染失败。您可以重试。", + "retry": "重试" + } }, - "notes": { - "add": "添加", - "addCollaborators": "添加协作者", - "addImage": "添加图片", - "addItem": "添加项目", - "addLink": "添加链接", - "addListItem": "+ 列表项", - "addNote": "添加笔记", - "adding": "添加中...", - "aiAssistant": "AI 助手", - "archive": "归档", - "backgroundOptions": "背景选项", - "changeColor": "更改颜色", - "changeSize": "更改大小", - "clarifyFailed": "澄清失败", - "close": "关闭", - "color": "颜色", - "confirmDelete": "确定要删除这条笔记吗?", - "confirmLeaveShare": "确定要离开这条共享笔记吗?", - "contentOrMediaRequired": "请输入一些内容或添加链接/图片", - "copy": "复制", - "copyFailed": "复制笔记失败", - "copySuccess": "笔记复制成功!", - "createFirstNote": "创建您的第一条笔记", - "date": "日期", - "delete": "删除", - "dragToReorder": "拖动以重新排序", - "duplicate": "复制", - "edit": "编辑笔记", - "emptyState": "暂无笔记", - "fileTooLarge": "文件过大:{fileName}。最大大小为 {maxSize}。", - "improveFailed": "改进失败", - "inNotebook": "在笔记本中", - "invalidDateTime": "日期或时间无效", - "invalidFileType": "无效的文件类型:{fileName}。仅允许 JPEG、PNG、GIF 和 WebP。", - "itemOrMediaRequired": "请至少添加一个项目或媒体", - "large": "大", - "leaveShare": "离开", - "linkAddFailed": "添加链接失败", - "linkAdded": "链接已添加", - "linkMetadataFailed": "无法获取链接元数据", - "listItem": "列表项", - "makeCopy": "创建副本", - "markdown": "Markdown", - "markdownMode": "Markdown", - "markdownOff": "Markdown 关闭", - "markdownOn": "Markdown 开启", - "markdownPlaceholder": "记笔记...(支持 Markdown)", - "medium": "中", - "more": "更多", - "moreOptions": "更多选项", - "moveFailed": "移动失败", - "newChecklist": "新建清单", - "newNote": "新建笔记", - "noContent": "无内容", - "noNotes": "无笔记", - "noNotesFound": "未找到笔记", - "noteCreateFailed": "创建笔记失败", - "noteCreated": "笔记创建成功", - "others": "其他", - "pin": "置顶", - "pinned": "已置顶", - "pinnedNotes": "已置顶笔记", - "placeholder": "记笔记...", - "preview": "预览", - "readOnly": "只读", - "recent": "最近", - "redo": "重做 (Ctrl+Y)", - "redoShortcut": "重做 (Ctrl+Y)", - "remindMe": "提醒我", - "reminderDateTimeRequired": "请输入日期和时间", - "reminderMustBeFuture": "提醒时间必须是未来时间", - "reminderPastError": "提醒时间必须是未来时间", - "reminderRemoved": "提醒已移除", - "reminderSet": "已设置提醒:{datetime}", - "remove": "移除", - "saving": "保存中...", - "setReminder": "设置提醒", - "setReminderButton": "设置提醒", - "share": "共享", - "shareWithCollaborators": "与协作者共享", - "sharedBy": "共享者", - "sharedReadOnly": "这条笔记以只读模式与您共享", - "shortenFailed": "缩短失败", - "showCollaborators": "显示协作者", - "size": "大小", - "small": "小", - "takeNote": "记笔记...", - "takeNoteMarkdown": "记笔记...(支持 Markdown)", - "time": "时间", - "title": "笔记", - "titlePlaceholder": "标题", - "transformFailed": "转换失败", - "unarchive": "取消归档", - "undo": "撤销 (Ctrl+Z)", - "undoShortcut": "撤销 (Ctrl+Z)", - "unpin": "取消置顶", - "unpinned": "未置顶", - "untitled": "无标题", - "uploadFailed": "上传失败:{filename}", - "view": "查看笔记", - "emptyStateTabs": "这里还没有笔记。使用侧边栏中的「新建笔记」来添加(AI 标题建议会出现在编辑器中)。", - "viewCards": "卡片视图", - "viewCardsTooltip": "卡片网格,支持拖拽排序", - "viewTabs": "列表视图", - "viewTabsTooltip": "上方为标签页,下方为笔记 — 拖拽标签页可排序", - "viewModeGroup": "笔记显示模式", - "reorderTabs": "重新排序标签页", - "modified": "已修改", - "created": "已创建", - "loading": "加载中...", - "exportPDF": "导出PDF", - "savedStatus": "已保存", - "dirtyStatus": "已修改", - "completedLabel": "已完成", - "notes.emptyNotebook": "空笔记本", - "notes.emptyNotebookDesc": "此笔记本没有笔记。点击 + 创建一个。", - "notes.noNoteSelected": "未选择笔记", - "notes.selectOrCreateNote": "从列表中选择笔记或创建新笔记。", - "commitVersion": "保存版本", - "versionSaved": "版本已保存", - "deleteVersion": "删除此版本", - "versionDeleted": "版本已删除", - "deleteVersionConfirm": "确定永久删除此版本?", - "historyMode": "历史模式", - "historyModeManual": "手动(提交按钮)", - "historyModeAuto": "自动(智能)", - "historyModeManualDesc": "使用提交按钮手动创建快照", - "historyModeAutoDesc": "智能检测自动创建快照", - "history": "历史", - "historyRestored": "版本已恢复", - "historyEnabled": "历史已启用", - "historyDisabledDesc": "您的账户已禁用历史记录。", - "enableHistory": "启用历史", - "historyEmpty": "暂无版本", - "historySelectVersion": "选择一个版本以预览其内容", - "sortBy": "排序方式", - "sortDateDesc": "日期(最新)", - "sortDateAsc": "日期(最早)", - "sortTitleAsc": "标题 A → Z", - "sortTitleDesc": "标题 Z → A" - }, - "pagination": { - "next": "→", - "pageInfo": "第 {currentPage} 页 / 共 {totalPages} 页", - "previous": "←" - }, - "paragraphRefactor": { - "casual": "随意", - "expand": "扩展", - "formal": "正式", - "improve": "改进", - "shorten": "缩短", - "title": "文本改进" - }, - "profile": { - "accountSettings": "账户设置", - "autoDetect": "自动检测", - "changePassword": "更改密码", - "changePasswordDescription": "更新您的密码。您需要当前密码。", - "confirmPassword": "确认密码", - "currentPassword": "当前密码", - "description": "更新您的个人信息", - "displayName": "显示名称", - "displaySettings": "显示设置", - "displaySettingsDescription": "自定义外观和字体大小。", - "email": "电子邮箱", - "fontSize": "字体大小", - "fontSizeDescription": "调整字体大小以获得更好的可读性。这适用于界面中的所有文本。", - "fontSizeExtraLarge": "超大", - "fontSizeLarge": "大", - "fontSizeMedium": "中", - "fontSizeSmall": "小", - "fontSizeUpdateFailed": "更新字体大小失败", - "fontSizeUpdateSuccess": "字体大小更新成功", - "languageDescription": "此语言将用于 AI 驱动的功能、内容分析和界面文本。", - "languagePreferences": "语言偏好", - "languagePreferencesDescription": "为 AI 功能和界面选择您的首选语言。", - "languageUpdateFailed": "更新语言失败", - "languageUpdateSuccess": "语言更新成功", - "manageAISettings": "管理 AI 设置", - "newPassword": "新密码", - "passwordChangeFailed": "更改密码失败", - "passwordChangeSuccess": "密码更改成功", - "passwordError": "更新密码时出错", - "passwordUpdated": "密码已更新", - "preferredLanguage": "首选语言", - "profileError": "更新个人资料时出错", - "profileUpdated": "个人资料已更新", - "recentNotesUpdateFailed": "更新最近笔记设置失败", - "recentNotesUpdateSuccess": "最近笔记设置更新成功", - "selectFontSize": "选择字体大小", - "selectLanguage": "选择语言", - "showRecentNotes": "显示最近笔记部分", - "showRecentNotesDescription": "在主页上显示最近 7 天的笔记", - "title": "个人资料", - "updateFailed": "更新个人资料失败", - "updatePassword": "更新密码", - "updateSuccess": "个人资料已更新" - }, - "reminder": { - "cancel": "取消", - "reminderDate": "提醒日期", - "reminderTime": "提醒时间", - "removeReminder": "移除提醒", - "save": "设置提醒", - "setReminder": "设置提醒", - "title": "提醒" - }, - "resetPassword": { - "confirmNewPassword": "确认新密码", - "description": "在下方输入您的新密码。", - "invalidLinkDescription": "此密码重置链接无效或已过期。", - "invalidLinkTitle": "无效链接", - "loading": "加载中...", - "newPassword": "新密码", - "passwordMismatch": "密码不匹配", - "requestNewLink": "请求新链接", - "resetPassword": "重置密码", - "resetting": "重置中...", - "success": "密码重置成功。您现在可以登录了。", - "title": "重置密码" - }, - "search": { - "exactMatch": "完全匹配", - "noResults": "未找到结果", - "placeholder": "搜索", - "related": "相关", - "resultsFound": "找到 {count} 条笔记", - "searchPlaceholder": "搜索您的笔记...", - "searching": "搜索中...", - "semanticInProgress": "AI 搜索进行中...", - "semanticTooltip": "AI 语义搜索", - "disabledAdmin": "管理员模式下搜索已禁用" - }, - "semanticSearch": { - "exactMatch": "完全匹配", - "related": "相关", - "searching": "搜索中..." - }, - "settings": { - "about": "关于", - "account": "账户", - "appearance": "外观", - "cleanTags": "清理孤立标签", - "cleanTagsDescription": "移除不再被任何笔记使用的标签", - "description": "管理您的设置和偏好", - "language": "语言", - "languageAuto": "自动检测", - "maintenance": "维护", - "maintenanceDescription": "维护数据库健康的工具", - "notifications": "通知", - "privacy": "隐私", - "profile": "个人资料", - "searchNoResults": "未找到匹配的设置", - "security": "安全", - "selectLanguage": "选择语言", - "semanticIndexing": "语义索引", - "semanticIndexingDescription": "为所有笔记生成向量以启用基于意图的搜索", - "settingsError": "保存设置时出错", - "settingsSaved": "设置已保存", - "theme": "主题", - "themeDark": "深色", - "themeLight": "浅色", - "themeSystem": "跟随系统", - "title": "设置", + "about": { + "title": "关于", + "description": "应用程序信息", + "appName": "Memento", + "appDescription": "具有 AI 功能的强大笔记应用程序", "version": "版本", - "cleanupDone": "已同步 {created} 条标签记录,移除 {deleted} 个孤立标签", - "cleanupNothing": "无需操作 — 标签已与笔记匹配", - "cleanupWithErrors": "部分操作失败", - "cleanupError": "无法清理标签", - "indexingComplete": "索引完成:已处理 {count} 条笔记", - "indexingError": "索引期间出错", - "emailNotifications": "电子邮件通知", - "emailNotificationsDesc": "通过电子邮件接收重要通知", - "desktopNotifications": "桌面通知", - "desktopNotificationsDesc": "在浏览器中接收通知", - "notificationsDesc": "管理您的通知偏好" - }, - "sidebar": { - "archive": "归档", - "editLabels": "编辑标签", - "labels": "标签", - "notes": "笔记", - "reminders": "提醒", - "trash": "回收站", - "newNoteTabs": "新建笔记", - "newNoteTabsHint": "在此笔记本中创建笔记", - "noLabelsInNotebook": "此笔记本中暂无标签" + "buildDate": "构建日期", + "platform": "平台", + "platformWeb": "网页版", + "features": { + "title": "功能", + "description": "AI 驱动的功能", + "titleSuggestions": "AI 驱动的标题建议", + "semanticSearch": "使用嵌入的语义搜索", + "paragraphReformulation": "段落改写", + "memoryEcho": "Memory Echo 每日洞察", + "notebookOrganization": "笔记本组织", + "dragDrop": "拖放笔记管理", + "labelSystem": "标签系统", + "multipleProviders": "多个 AI 提供商(OpenAI、Ollama)" + }, + "technology": { + "title": "技术栈", + "description": "使用现代技术构建", + "frontend": "前端", + "backend": "后端", + "database": "数据库", + "authentication": "身份验证", + "ai": "AI", + "ui": "UI", + "testing": "测试" + }, + "support": { + "title": "支持", + "description": "获取帮助和反馈", + "documentation": "文档", + "reportIssues": "报告问题", + "feedback": "反馈" + } }, "support": { - "aiApiCosts": "AI API 成本:", - "buyMeACoffee": "请我喝杯咖啡", - "contributeCode": "贡献代码", - "description": "Memento 是 100% 免费和开源的。您的支持帮助它保持这种方式。", - "directImpact": "直接影响", - "domainSSL": "域名和 SSL:", - "donateOnKofi": "在 Ko-fi 上捐赠", - "donationDescription": "进行一次性捐赠或成为月度支持者。", - "githubDescription": "定期支持 • 公开认可 • 面向开发者", - "hostingServers": "托管和服务器:", - "howSupportHelps": "您的支持如何帮助", - "kofiDescription": "无平台费用 • 即时付款 • 安全", - "otherWaysTitle": "其他支持方式", - "reportBug": "报告错误", - "shareTwitter": "在 Twitter 上分享", - "sponsorDescription": "成为月度赞助者并获得认可。", - "sponsorOnGithub": "在 GitHub 上赞助", - "sponsorPerks": "赞助者福利", - "starGithub": "在 GitHub 上加星", "title": "支持 Memento 开发", - "totalExpenses": "总支出:", + "description": "Memento 是 100% 免费和开源的。您的支持帮助它保持这种方式。", + "buyMeACoffee": "请我喝杯咖啡", + "donationDescription": "进行一次性捐赠或成为月度支持者。", + "donateOnKofi": "在 Ko-fi 上捐赠", + "kofiDescription": "无平台费用 • 即时付款 • 安全", + "sponsorOnGithub": "在 GitHub 上赞助", + "sponsorDescription": "成为月度赞助者并获得认可。", + "githubDescription": "定期支持 • 公开认可 • 面向开发者", + "howSupportHelps": "您的支持如何帮助", + "directImpact": "直接影响", + "sponsorPerks": "赞助者福利", "transparency": "透明度", - "transparencyDescription": "我相信完全透明。以下是捐款的使用方式:" + "transparencyDescription": "我相信完全透明。以下是捐款的使用方式:", + "hostingServers": "托管和服务器:", + "domainSSL": "域名和 SSL:", + "aiApiCosts": "AI API 成本:", + "totalExpenses": "总支出:", + "otherWaysTitle": "其他支持方式", + "starGithub": "在 GitHub 上加星", + "reportBug": "报告错误", + "contributeCode": "贡献代码", + "shareTwitter": "在 Twitter 上分享" + }, + "demoMode": { + "title": "演示模式", + "activated": "演示模式已激活!Memory Echo 现在将即时工作。", + "deactivated": "演示模式已禁用。恢复正常参数。", + "toggleFailed": "切换演示模式失败", + "description": "加速 Memory Echo 以进行测试。连接会立即出现。", + "parametersActive": "演示参数已激活:", + "similarityThreshold": "50% 相似度阈值(通常为 75%)", + "delayBetweenNotes": "笔记之间 0 天延迟(通常为 7 天)", + "unlimitedInsights": "无限洞察(无频率限制)", + "createNotesTip": "创建 2 个以上相似的笔记,看看 Memory Echo 的实际效果!" + }, + "resetPassword": { + "title": "重置密码", + "description": "在下方输入您的新密码。", + "invalidLinkTitle": "无效链接", + "invalidLinkDescription": "此密码重置链接无效或已过期。", + "requestNewLink": "请求新链接", + "newPassword": "新密码", + "confirmNewPassword": "确认新密码", + "resetting": "重置中...", + "resetPassword": "重置密码", + "passwordMismatch": "密码不匹配", + "success": "密码重置成功。您现在可以登录了。", + "loading": "加载中..." + }, + "dataManagement": { + "title": "数据管理", + "toolsDescription": "维护数据库健康的工具", + "exporting": "导出中...", + "importing": "导入中...", + "deleting": "删除中...", + "dangerZone": "危险区域", + "dangerZoneDescription": "这些操作不可逆,请谨慎操作", + "indexingComplete": "索引完成", + "indexingError": "索引错误", + "cleanupComplete": "清理完成", + "cleanupError": "清理错误", + "export": { + "title": "导出所有笔记", + "description": "将所有笔记下载为 JSON 文件。包括所有内容、标签和元数据。", + "button": "导出笔记", + "success": "笔记导出成功", + "failed": "导出笔记失败" + }, + "import": { + "title": "导入笔记", + "description": "上传 JSON 文件以导入笔记。这将添加到您现有的笔记中,而不是替换它们。", + "button": "导入笔记", + "success": "已导入 {count} 条笔记", + "failed": "导入笔记失败" + }, + "delete": { + "title": "删除所有笔记", + "description": "永久删除所有笔记。此操作无法撤销。", + "button": "删除所有笔记", + "confirm": "确定吗?这将永久删除您的所有笔记。", + "success": "所有笔记已删除", + "failed": "删除笔记失败" + }, + "indexing": { + "title": "重建搜索索引", + "description": "为所有笔记重新生成嵌入以提高语义搜索效果。", + "button": "重建索引", + "success": "索引完成:已处理 {count} 条笔记", + "failed": "索引期间出错" + }, + "cleanup": { + "title": "清理孤立数据", + "description": "删除引用已删除笔记的标签和连接。", + "button": "清理", + "failed": "清理期间出错" + } + }, + "appearance": { + "title": "外观", + "description": "自定义应用的外观", + "notesViewDescription": "选择笔记在主页和笔记本中的显示方式。", + "notesViewLabel": "笔记布局", + "notesViewTabs": "标签页(OneNote 风格)", + "notesViewMasonry": "卡片(网格)", + "selectTheme": "Select theme" + }, + "generalSettings": { + "title": "常规设置", + "description": "常规应用程序设置" + }, + "toast": { + "saved": "设置已保存", + "saveFailed": "保存设置失败", + "operationSuccess": "操作成功", + "operationFailed": "操作失败", + "openingConnection": "正在打开连接...", + "openConnectionFailed": "打开连接失败", + "thanksFeedback": "感谢您的反馈!", + "thanksFeedbackImproving": "谢谢!我们将利用此来改进。", + "feedbackFailed": "提交反馈失败", + "notesFusionSuccess": "笔记合并成功!" }, "testPages": { "titleSuggestions": { - "analyzing": "分析中...", - "contentLabel": "内容(需要 50 个以上的单词):", - "error": "错误:", - "idle": "空闲", - "noSuggestions": "还没有建议。输入 50 个以上的单词并等待 2 秒。", - "placeholder": "在此输入至少 50 个单词...", - "status": "状态:", - "suggestions": "建议({count}):", "title": "测试标题建议", - "wordCount": "字数:" + "contentLabel": "内容(需要 50 个以上的单词):", + "placeholder": "在此输入至少 50 个单词...", + "wordCount": "字数:", + "status": "状态:", + "analyzing": "分析中...", + "idle": "空闲", + "error": "错误:", + "suggestions": "建议({count}):", + "noSuggestions": "还没有建议。输入 50 个以上的单词并等待 2 秒。" } }, - "time": { - "daysAgo": "{count} 天前", - "hoursAgo": "{count} 小时前", - "justNow": "刚刚", - "minutesAgo": "{count} 分钟前", - "today": "今天", - "tomorrow": "明天", - "yesterday": "昨天" - }, - "titleSuggestions": { - "available": "标题建议", - "dismiss": "忽略", - "generating": "生成中...", - "selectTitle": "选择标题", - "title": "AI 建议" - }, - "toast": { - "feedbackFailed": "提交反馈失败", - "notesFusionSuccess": "笔记合并成功!", - "openConnectionFailed": "打开连接失败", - "openingConnection": "正在打开连接...", - "operationFailed": "操作失败", - "operationSuccess": "操作成功", - "saveFailed": "保存设置失败", - "saved": "设置已保存", - "thanksFeedback": "感谢您的反馈!", - "thanksFeedbackImproving": "谢谢!我们将利用此来改进。" - }, "trash": { "title": "回收站", "empty": "回收站为空", @@ -1256,11 +1212,83 @@ "permanentDelete": "永久删除", "permanentDeleteConfirm": "此笔记将被永久删除,此操作无法撤销。" }, + "footer": { + "privacy": "隐私", + "terms": "条款", + "openSource": "开源克隆" + }, + "connection": { + "similarityInfo": "这些笔记通过 {similarity}% 的相似度连接", + "clickToView": "点击查看笔记", + "isHelpful": "此连接有帮助吗?", + "helpful": "有帮助", + "notHelpful": "无帮助", + "memoryEchoDiscovery": "Memory Echo 发现" + }, + "diagnostics": { + "title": "诊断", + "description": "检查您的 AI 提供商连接状态", + "configuredProvider": "已配置的提供商", + "apiStatus": "API 状态", + "operational": "正常运行", + "errorStatus": "错误", + "checking": "检查中...", + "testDetails": "测试详情:", + "troubleshootingTitle": "故障排除提示:", + "tip1": "确保 Ollama 正在运行(ollama serve)", + "tip2": "检查模型是否已安装(ollama pull llama3)", + "tip3": "验证您的 OpenAI API 密钥", + "tip4": "检查网络连接" + }, + "batch": { + "organizeWithAI": "用 AI 整理", + "organize": "整理" + }, + "common": { + "unknown": "未知", + "notAvailable": "不可用", + "loading": "加载中...", + "error": "错误", + "success": "成功", + "confirm": "确认", + "cancel": "取消", + "close": "关闭", + "save": "保存", + "delete": "删除", + "edit": "编辑", + "add": "添加", + "remove": "移除", + "search": "搜索", + "noResults": "无结果", + "required": "必填", + "optional": "可选" + }, + "time": { + "justNow": "刚刚", + "minutesAgo": "{count} 分钟前", + "hoursAgo": "{count} 小时前", + "daysAgo": "{count} 天前", + "yesterday": "昨天", + "today": "今天", + "tomorrow": "明天" + }, + "favorites": { + "title": "收藏夹", + "toggleSection": "切换收藏夹部分", + "noFavorites": "暂无收藏", + "pinToFavorite": "固定到收藏夹" + }, + "notebooks": { + "create": "创建笔记本", + "allNotebooks": "所有笔记本", + "noNotebooks": "暂无笔记本", + "createFirst": "创建您的第一个笔记本" + }, "ui": { "close": "关闭", - "collapse": "收起", + "open": "打开", "expand": "展开", - "open": "打开" + "collapse": "收起" }, "mcpSettings": { "title": "MCP 设置", @@ -1327,6 +1355,10 @@ "subtitle": "自动化您的监控和研究任务", "newAgent": "新建代理", "myAgents": "我的代理", + "searchPlaceholder": "Search agents...", + "filterAll": "All", + "newBadge": "New", + "noResults": "No agents match your search.", "noAgents": "暂无代理", "noAgentsDescription": "创建您的第一个代理或安装下方的模板以自动化监控任务。", "types": { @@ -1369,7 +1401,9 @@ "researchTopic": "研究主题", "researchTopicPlaceholder": "例如:人工智能最新进展", "notifyEmail": "邮件通知", - "notifyEmailHint": "每次运行后通过邮件接收代理结果" + "notifyEmailHint": "每次运行后通过邮件接收代理结果", + "includeImages": "Include images", + "includeImagesHint": "Extract images from scraped pages and attach them to the generated note" }, "frequencies": { "manual": "手动", @@ -1378,6 +1412,22 @@ "weekly": "每周", "monthly": "每月" }, + "schedule": { + "nextRun": "Next run", + "pending": "Pending trigger", + "time": "Time", + "dayOfWeek": "Day of week", + "dayOfMonth": "Day of month", + "days": { + "mon": "Monday", + "tue": "Tuesday", + "wed": "Wednesday", + "thu": "Thursday", + "fri": "Friday", + "sat": "Saturday", + "sun": "Sunday" + } + }, "status": { "success": "成功", "failure": "失败", @@ -1406,7 +1456,9 @@ "toggleError": "切换代理时出错", "installSuccess": "\"{name}\" 已安装", "installError": "安装时出错", - "saveError": "保存时出错" + "saveError": "保存时出错", + "autoRunSuccess": "Agent \"{name}\" executed automatically with success", + "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "模板", @@ -1519,7 +1571,8 @@ "welcome": "我可以帮助您综合笔记、生成新想法或讨论您的笔记本。", "searching": "搜索中...", "noNotesFoundForContext": "未找到与此问题相关的笔记。请用你的常识回答。", - "webSearch": "网络搜索" + "webSearch": "网络搜索", + "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "实验室", @@ -1536,30 +1589,8 @@ "createFailed": "创建失败", "deleteSpace": "删除空间", "deleted": "空间已删除", - "deleteError": "删除时出错" - }, - "notification": { - "shared": "分享了\"{title}\"", - "untitled": "无标题", - "notifications": "通知", - "accept": "Accept", - "accepted": "Share accepted", - "decline": "Decline", - "declined": "分享已拒绝", - "noNotifications": "No new notifications", - "removed": "笔记已从列表中移除" - }, - "reminders": { - "title": "提醒", - "empty": "暂无提醒", - "emptyDescription": "为笔记添加提醒后,它会显示在这里。", - "upcoming": "即将到来", - "overdue": "已过期", - "done": "已完成", - "markDone": "标记为已完成", - "markUndone": "标记为未完成", - "todayAt": "今天 {time}", - "tomorrowAt": "明天 {time}" + "deleteError": "删除时出错", + "rename": "Rename" }, "lab": { "initializing": "初始化工作区",