fix: i18n system overhaul and sidebar UI bugs

- Fix LanguageProvider: add RTL support (ar/fa), translation caching,
  prevent blank flash during load, browser language detection
- Fix detect-user-language: extend whitelist from 5 to all 15 languages
- Remove hardcoded initialLanguage="fr" from auth layout
- Complete fr.json translation (all sections translated from English)
- Add missing admin.ai keys to all 13 non-English locales
- Translate ai.autoLabels, ai.batchOrganization, memoryEcho sections
  for all locales
- Remove duplicate top-level autoLabels/batchOrganization from en.json
- Fix notebook creation: replace window.location.reload() with
  createNotebookOptimistic + router.refresh()
- Fix notebook name truncation in sidebar with min-w-0
- Remove redundant router.refresh() after note creation in page.tsx

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Sepehr Ramezani
2026-03-29 22:14:05 +02:00
parent 8bf56cd8cd
commit 8daf50ac3f
27 changed files with 1210 additions and 936 deletions

View File

@@ -63,7 +63,13 @@
"tagsGenerationProvider": "टैग जनरेशन प्रदाता",
"title": "AI कॉन्फ़िगरेशन",
"updateFailed": "AI सेटिंग्स अपडेट करने में विफल",
"updateSuccess": "AI सेटिंग्स सफलतापूर्वक अपडेट की गईं"
"updateSuccess": "AI सेटिंग्स सफलतापूर्वक अपडेट की गईं",
"bestValue": "सर्वोत्तम मूल्य",
"bestQuality": "सर्वोत्तम गुणवत्ता",
"providerOllamaOption": "🦙 Ollama (Local & Free)",
"providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)",
"providerCustomOption": "🔧 Custom OpenAI-Compatible",
"saved": "(सहेजा गया)"
},
"aiTest": {
"description": "टैग जनरेशन और सिमेंटिक खोज एम्बेडिंग्स के लिए अपने AI प्रदाताओं का परीक्षण करें",
@@ -153,34 +159,36 @@
"analyzing": "AI विश्लेषण जारी है...",
"assistant": "AI सहायक",
"autoLabels": {
"analyzing": "लेबल सुझावों के लिए आपके नोट्स का विश्लेषण किया जा रहा है...",
"analyzing": "आपके नोट्स का विश्लेषण हो रहा है...",
"create": "बनाएं",
"createNewLabel": "Create this new label and add it",
"created": "{count} labels created successfully",
"createNewLabel": "यह नया लेबल बनाएं और जोड़ें",
"created": "{count} लेबल सफलतापूर्वक बनाए गए",
"creating": "लेबल बनाए जा रहे हैं...",
"description": "I've detected recurring themes in \"{notebookName}\" ({totalNotes} notes). Create labels for them?",
"error": "Failed to fetch label suggestions",
"description": "मैंने \"{notebookName}\" ({totalNotes} नोट्स) में बार-बार आने वाले विषयों का पता लगाया। उनके लिए लेबल बनाएं?",
"error": "लेबल सुझाव प्राप्त करने में विफल",
"new": "(नया)",
"noLabelsSelected": "No labels selected",
"note": "note",
"notes": "notes",
"title": "लेबल सुझाव",
"typeContent": "Type content to get label suggestions..."
"noLabelsSelected": "कोई लेबल चयनित नहीं",
"note": "नोट",
"notes": "नोट्स",
"title": "नए लेबल सुझाव",
"typeContent": "लेबल सुझाव प्राप्त करने के लिए सामग्री लिखें...",
"notesCount": "{count} नोट्स",
"typeForSuggestions": "लेबल सुझाव प्राप्त करने के लिए सामग्री लिखें..."
},
"batchOrganization": {
"analyzing": "Analyzing your notes...",
"apply": "Apply",
"applyFailed": "Failed to apply organization plan",
"applying": "Applying...",
"description": "AI आपके नोट्स का विश्लेषण करेगा और उन्हें नोटबुक में व्यवस्थित करने का सुझाव देगा।",
"error": "Failed to create organization plan",
"noNotebooks": "No notebooks available. Create notebooks first to organize your notes.",
"noNotesSelected": "No notes selected",
"noSuggestions": "AI could not find a good way to organize these notes.",
"selectAllIn": "Select all notes in {notebook}",
"selectNote": "Select note: {title}",
"success": "{count} notes moved successfully",
"title": "Organize with AI"
"analyzing": "आपके नोट्स का विश्लेषण हो रहा है...",
"apply": "लागू करें",
"applyFailed": "संगठन योजना लागू करने में विफल",
"applying": "लागू हो रहा है...",
"description": "AI आपके नोट्स का विश्लेषण करेगा और नोटबुक में व्यवस्थित करने का सुझाव देगा।",
"error": "संगठन योजना बनाने में विफल",
"noNotebooks": "कोई नोटबुक उपलब्ध नहीं। पहले नोटबुक बनाएं।",
"noNotesSelected": "कोई नोट चयनित नहीं",
"noSuggestions": "AI इन नोट्स को व्यवस्थित करने का अच्छा तरीका नहीं ढूंढ सका।",
"selectAllIn": "{notebook} में सभी नोट्स चुनें",
"selectNote": "नोट चुनें: {title}",
"success": "{count} नोट्स सफलतापूर्वक स्थानांतरित",
"title": "AI से व्यवस्थित करें"
},
"clarify": "स्पष्ट करें",
"clickToAddTag": "इस टैग को जोड़ने के लिए क्लिक करें",