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:
@@ -63,7 +63,13 @@
|
||||
"tagsGenerationProvider": "Tags Generation Provider",
|
||||
"title": "AI Configuration",
|
||||
"updateFailed": "Failed to update AI settings",
|
||||
"updateSuccess": "AI Settings updated successfully"
|
||||
"updateSuccess": "AI Settings updated successfully",
|
||||
"bestValue": "Melhor custo-benefício",
|
||||
"bestQuality": "Melhor qualidade",
|
||||
"providerOllamaOption": "🦙 Ollama (Local & Free)",
|
||||
"providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)",
|
||||
"providerCustomOption": "🔧 Custom OpenAI-Compatible",
|
||||
"saved": "(Salvo)"
|
||||
},
|
||||
"aiTest": {
|
||||
"description": "Test your AI providers for tag generation and semantic search embeddings",
|
||||
@@ -156,9 +162,9 @@
|
||||
"analyzing": "Analisando suas notas para sugestões de rótulos...",
|
||||
"create": "Criar",
|
||||
"createNewLabel": "Criar nova etiqueta",
|
||||
"created": "{count} labels created successfully",
|
||||
"created": "{count} etiquetas criadas com sucesso",
|
||||
"creating": "Criando rótulos...",
|
||||
"description": "I've detected recurring themes in \"{notebookName}\" ({totalNotes} notes). Create labels for them?",
|
||||
"description": "Detectei temas recorrentes em \"{notebookName}\" ({totalNotes} notas). Criar etiquetas para eles?",
|
||||
"error": "Failed to fetch label suggestions",
|
||||
"new": "(novo)",
|
||||
"noLabelsSelected": "No labels selected",
|
||||
@@ -530,14 +536,14 @@
|
||||
"memoryEcho": {
|
||||
"clickToView": "Clique para visualizar",
|
||||
"comparison": {
|
||||
"clickToView": "Click to view note",
|
||||
"helpful": "Helpful",
|
||||
"helpfulQuestion": "Is this comparison helpful?",
|
||||
"highSimilarityInsight": "These notes deal with the same topic with a high degree of similarity. They could be merged or consolidated.",
|
||||
"notHelpful": "Not Helpful",
|
||||
"similarityInfo": "These notes are connected by {similarity}% similarity",
|
||||
"title": "💡 Note Comparison",
|
||||
"untitled": "Untitled"
|
||||
"title": "💡 Comparação de notas",
|
||||
"similarityInfo": "Estas notas estão conectadas por {similarity}% de similaridade",
|
||||
"highSimilarityInsight": "Estas notas tratam do mesmo tema com alto grau de similaridade. Podem ser mescladas.",
|
||||
"untitled": "Sem título",
|
||||
"clickToView": "Clique para ver a nota",
|
||||
"helpfulQuestion": "Esta comparação é útil?",
|
||||
"helpful": "Útil",
|
||||
"notHelpful": "Não útil"
|
||||
},
|
||||
"connection": "connection",
|
||||
"connections": "Connections",
|
||||
@@ -546,40 +552,40 @@
|
||||
"description": "Proactive connections between your notes",
|
||||
"dismiss": "Dismiss for now",
|
||||
"editorSection": {
|
||||
"close": "Fechar",
|
||||
"compare": "Compare",
|
||||
"compareAll": "Compare all",
|
||||
"loading": "Loading...",
|
||||
"merge": "Merge",
|
||||
"mergeAll": "Merge all",
|
||||
"title": "⚡ Connected Notes ({count})",
|
||||
"view": "View"
|
||||
"title": "⚡ Notas conectadas ({count})",
|
||||
"loading": "Carregando...",
|
||||
"view": "Visualizar",
|
||||
"compare": "Comparar",
|
||||
"merge": "Mesclar",
|
||||
"compareAll": "Comparar tudo",
|
||||
"mergeAll": "Mesclar tudo",
|
||||
"close": "Fechar"
|
||||
},
|
||||
"fused": "Fused",
|
||||
"fused": "Mesclado",
|
||||
"fusion": {
|
||||
"archiveOriginals": "Archive original notes",
|
||||
"cancel": "Cancel",
|
||||
"confirmFusion": "Confirm fusion",
|
||||
"createBacklinks": "Create backlink to original notes",
|
||||
"edit": "Edit",
|
||||
"error": "Failed to merge notes",
|
||||
"finishEditing": "Finish editing",
|
||||
"generateError": "Failed to generate fusion",
|
||||
"generateFusion": "Generate the fusion",
|
||||
"generating": "Generating...",
|
||||
"keepAllTags": "Keep all tags",
|
||||
"mergeNotes": "Merge {count} note(s)",
|
||||
"modify": "Modify",
|
||||
"noContentReturned": "No fusion content returned from API",
|
||||
"notesToMerge": "📝 Notes to merge",
|
||||
"optionalPrompt": "💬 Fusion prompt (optional)",
|
||||
"optionsTitle": "Fusion options",
|
||||
"previewTitle": "📝 Preview of merged note",
|
||||
"promptPlaceholder": "Optional instructions for AI (e.g., 'Keep the formal style of note 1')...",
|
||||
"success": "Notes merged successfully!",
|
||||
"title": "🔗 Intelligent Fusion",
|
||||
"unknownDate": "Unknown date",
|
||||
"useLatestTitle": "Use latest note as title"
|
||||
"title": "🔗 Fusão inteligente",
|
||||
"mergeNotes": "Mesclar {count} nota(s)",
|
||||
"notesToMerge": "📝 Notas para mesclar",
|
||||
"optionalPrompt": "💬 Prompt de fusão (opcional)",
|
||||
"promptPlaceholder": "Instruções opcionais para IA (ex: 'Manter o estilo formal da nota 1')...",
|
||||
"generateFusion": "Gerar fusão",
|
||||
"generating": "Gerando...",
|
||||
"previewTitle": "📝 Prévia da nota mesclada",
|
||||
"edit": "Editar",
|
||||
"modify": "Modificar",
|
||||
"finishEditing": "Concluir edição",
|
||||
"optionsTitle": "Opções de fusão",
|
||||
"archiveOriginals": "Arquivar notas originais",
|
||||
"keepAllTags": "Manter todas as tags",
|
||||
"useLatestTitle": "Usar nota mais recente como título",
|
||||
"createBacklinks": "Criar link para notas originais",
|
||||
"cancel": "Cancelar",
|
||||
"confirmFusion": "Confirmar fusão",
|
||||
"success": "Notas mescladas com sucesso!",
|
||||
"error": "Falha ao mesclar notas",
|
||||
"generateError": "Falha ao gerar fusão",
|
||||
"noContentReturned": "Nenhum conteúdo de fusão retornado pela API",
|
||||
"unknownDate": "Data desconhecida"
|
||||
},
|
||||
"helpful": "Helpful",
|
||||
"insightReady": "Your insight is ready!",
|
||||
|
||||
Reference in New Issue
Block a user