fix: comprehensive i18n — replace hardcoded French/English strings with t() calls
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 1m7s

Replaced ~100+ hardcoded French and English text strings across 30+ components
with proper i18n t() calls. Added 57 new translation keys to all 15 locale files
(ar, de, en, es, fa, fr, hi, it, ja, ko, nl, pl, pt, ru, zh).

Key changes:
- contextual-ai-chat.tsx: 30 French strings → t() (actions, toasts, labels, placeholders)
- ai-chat.tsx: 15 French/English strings → t() (header, tabs, welcome, insights, history)
- note-inline-editor.tsx: 20 French fallbacks removed (toolbar, save status, checklist)
- lab-skeleton.tsx: French loading text → t()
- admin-header.tsx, header.tsx, editor-connections-section.tsx: French fallbacks removed
- New AI chat component, agent cards, sidebar, settings panel i18n cleanup

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-26 21:14:45 +02:00
parent e358171c45
commit 153c921960
60 changed files with 4125 additions and 1677 deletions

View File

@@ -81,7 +81,30 @@
"noModels": "Nessun modello. Clicca ↺",
"modelsAvailable": "{count} modello/i disponibile/i",
"enterUrlToLoad": "Inserisci URL e clicca ↺ per caricare",
"currentProvider": "(Attuale: {provider})"
"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",
@@ -195,7 +218,9 @@
"email": "Email",
"name": "Name",
"role": "Role"
}
},
"title": "Utenti",
"description": "Gestisci utenti e permessi"
},
"chat": "AI Chat",
"lab": "The Lab",
@@ -231,7 +256,18 @@
"testing": "Test in corso...",
"testSearch": "Test ricerca web"
},
"settingsDescription": "Configura le impostazioni dell applicazione"
"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"
}
},
"ai": {
"analyzing": "AI analyzing...",
@@ -322,7 +358,57 @@
"translationFailed": "Traduzione fallita",
"undo": "Annulla IA",
"undoAI": "Annulla trasformazione IA",
"undoApplied": "Testo originale ripristinato"
"undoApplied": "Testo originale ripristinato",
"minWordsError": "La nota deve contenere almeno 5 parole per utilizzare le azioni IA.",
"genericError": "Errore IA",
"actionError": "Errore durante l'azione IA",
"appliedToNote": "Applicato alla nota",
"applyToNote": "Applica alla nota",
"undoLastAction": "Annulla ultima azione IA",
"selectContext": "Seleziona contesto...",
"selectNotebook": "Seleziona quaderno",
"chatPlaceholder": "Chiedi all'IA di modificare, riassumere o redigere...",
"assistantTitle": "Assistente IA",
"currentNote": "Nota corrente",
"shrinkPanel": "Comprimi pannello",
"expandPanel": "Espandi pannello",
"chatTab": "Chat",
"noteActions": "Azioni nota",
"askToStart": "Chiedi qualcosa all'Assistente per iniziare.",
"contextLabel": "Contesto",
"thisNote": "Questa nota",
"allMyNotes": "Tutte le mie note",
"notebookGeneric": "Quaderno",
"writingTone": "Tono di scrittura",
"askAboutThisNote": "Chiedi all'IA qualcosa su questa nota...",
"askAboutYourNotes": "Chiedi all'IA qualcosa sulle tue note...",
"webSearchLabel": "Ricerca web",
"newLineHint": "Shift+Enter = nuova riga",
"resultLabel": "Risultato",
"discardAction": "Scarta",
"transformationsDesc": "Trasformazioni — applicate direttamente alla nota",
"writeMinWordsAction": "Scrivi almeno 5 parole per attivare le azioni IA.",
"processingAction": "Elaborazione...",
"action": {
"clarify": "Chiarire",
"shorten": "Accorciare",
"improve": "Migliorare",
"toMarkdown": "In Markdown"
},
"openAssistant": "Apri assistente IA",
"poweredByMomento": "Offerto da Momento AI",
"welcomeMsg": "Ciao! Sono il tuo assistente IA. Come posso aiutarti oggi con le tue note? Posso affinare il tono, espandere i messaggi o riassumere i contenuti.",
"summaryLast5": "Riepilogo delle ultime 5 note",
"analyzingProgress": "Analisi in corso...",
"generateInsightsBtn": "Genera approfondimenti",
"newDiscussion": "Nuova discussione",
"noRecentConversations": "Nessuna conversazione recente.",
"discussionContextLabel": "Contesto discussione",
"webSearchNotConfigured": "Ricerca web (Non configurata)",
"historyTab": "Cronologia",
"insightsTab": "Approfondimenti",
"aiCopilot": "Copilot IA",
"suggestTitle": "Suggerimento titolo IA"
},
"aiSettings": {
"description": "Configura le funzionalità AI e le preferenze",
@@ -929,7 +1015,12 @@
"viewModeGroup": "Modalità di visualizzazione note",
"reorderTabs": "Riordina scheda",
"modified": "Modificata",
"created": "Creata"
"created": "Creata",
"loading": "Caricamento...",
"exportPDF": "Esporta PDF",
"savedStatus": "Salvato",
"dirtyStatus": "Modificato",
"completedLabel": "Completati"
},
"pagination": {
"next": "→",
@@ -1021,7 +1112,8 @@
"searchPlaceholder": "Cerca nelle tue note...",
"searching": "Ricerca in corso...",
"semanticInProgress": "Ricerca AI in corso...",
"semanticTooltip": "Ricerca semantica AI"
"semanticTooltip": "Ricerca semantica AI",
"disabledAdmin": "Ricerca disabilitata in modalità admin"
},
"semanticSearch": {
"exactMatch": "Corrispondenza esatta",
@@ -1462,5 +1554,9 @@
"markUndone": "Segna come non completato",
"todayAt": "Oggi alle {time}",
"tomorrowAt": "Domani alle {time}"
},
"lab": {
"initializing": "Inizializzazione spazio",
"loadingIdeas": "Caricamento delle tue idee..."
}
}