diff --git a/src/assets/locale/it/common.json b/src/assets/locale/it/common.json
new file mode 100644
index 00000000..df4f4c31
--- /dev/null
+++ b/src/assets/locale/it/common.json
@@ -0,0 +1,88 @@
+{
+ "pageAssist": "Page Assist",
+ "selectAModel": "Seleziona un Modello",
+ "save": "Salva",
+ "saved": "Salvato",
+ "cancel": "Annulla",
+ "retry": "Riprova",
+ "share": {
+ "tooltip": {
+ "share": "Condividi"
+ },
+ "modal": {
+ "title": "Condividi Collegamento alla Chat"
+ },
+ "form": {
+ "defaultValue": {
+ "name": "Anonimo",
+ "title": "Chat Senza Titolo"
+ },
+ "title": {
+ "label": "Titolo della Chat",
+ "placeholder": "Inserisci il Titolo della Chat",
+ "required": "Titolo della Chat obbligatorio"
+ },
+ "name": {
+ "label": "Il tuo Nome",
+ "placeholder": "Inserisci il tuo Nome",
+ "required": "Nome obbligatorio"
+ },
+ "btn": {
+ "save": "Genera Link",
+ "saving": "Sto generando il Link..."
+ }
+ },
+ "notification": {
+ "successGenerate": "Link copiato negli appunti",
+ "failGenerate": "Impossibile generare il link"
+ }
+ },
+ "copyToClipboard": "Copia negli Appunti",
+ "webSearch": "Ricerca nel Web",
+ "regenerate": "Rigenera",
+ "edit": "Modifica",
+ "saveAndSubmit": "Salva e Invia",
+ "editMessage": {
+ "placeholder": "Scrivi un messaggio..."
+ },
+ "submit": "Invia",
+ "noData": "Nessun Dato",
+ "noHistory": "Nessuna Cronologia Chat",
+ "chatWithCurrentPage": "Chatta con la Pagina Corrente",
+ "beta": "Beta",
+ "tts": "Leggi ad Alta Voce",
+ "currentChatModelSettings": "Impostazioni del Modello Corrente",
+ "modelSettings": {
+ "label": "Impostazioni del Modello",
+ "description": "Imposta le opzioni del modello globalmente per tutte le chat",
+ "form": {
+ "keepAlive": {
+ "label": "Keep Alive",
+ "help": "Imposta il tempo per cui il modello deve rimanere caricato in memoria (default: 5m)",
+ "placeholder": "Inserisci la durata del Keep Alive (e.g. 5m, 10m, 1h)"
+ },
+ "temperature": {
+ "label": "Temperatura",
+ "placeholder": "Inserisci la Temperatura (e.g. 0.7, 1.0)"
+ },
+ "numCtx": {
+ "label": "Dimensione del Contesto",
+ "placeholder": "Inserisci la Dimensione del Contesto (default: 2048)"
+ },
+ "seed": {
+ "label": "Seed",
+ "placeholder": "Inserisci il Valore Seed (e.g. 1234)",
+ "help": "Riproducibilità dell'output del modello"
+ },
+ "topK": {
+ "label": "Top K",
+ "placeholder": "Inserisci il Valore Top K (e.g. 40, 100)"
+ },
+ "topP": {
+ "label": "Top P",
+ "placeholder": "Inserisci il Valore Top P (e.g. 0.9, 0.95)"
+ }
+ },
+ "advanced": "Altre Impostazioni del Modello"
+ }
+}
diff --git a/src/assets/locale/it/knowledge.json b/src/assets/locale/it/knowledge.json
new file mode 100644
index 00000000..867cd84f
--- /dev/null
+++ b/src/assets/locale/it/knowledge.json
@@ -0,0 +1,42 @@
+{
+ "addBtn": "Aggiungi nuova Knowledge Base",
+ "columns": {
+ "title": "Titolo",
+ "status": "Stato",
+ "embeddings": "Modello di Embedding",
+ "createdAt": "Creato da",
+ "action": "Azioni"
+ },
+ "expandedColumns": {
+ "name": "Nome"
+ },
+ "tooltip": {
+ "delete": "Elimina"
+ },
+ "confirm": {
+ "delete": "Sei sicuro di voler eliminare questa Knowledge Base?"
+ },
+ "deleteSuccess": "Knowledge Base eliminata correttamente",
+ "status": {
+ "pending": "In attesa",
+ "finished": "Completato",
+ "processing": "In corso"
+ },
+ "addKnowledge": "Aggiungi Knowledge Base",
+ "form": {
+ "title": {
+ "label": "Titolo Knowledge Base",
+ "placeholder": "Inserisci il titolo della Knowledge Base",
+ "required": "Il Titolo è obbligatorio"
+ },
+ "uploadFile": {
+ "label": "Carica File",
+ "uploadText": "Trascina un file qui or scegli upload",
+ "uploadHint": "Tipi di file supportati: .pdf, .csv, .txt, .md, .docx",
+ "required": "File è obbligatorio"
+ },
+ "submit": "Invia",
+ "success": "Knowledge Base aggiunta correttamente"
+ },
+ "noEmbeddingModel": "Aggiungi prima un modello dalla pagina di impostazione di Ollama"
+}
\ No newline at end of file
diff --git a/src/assets/locale/it/option.json b/src/assets/locale/it/option.json
new file mode 100644
index 00000000..6fcd098f
--- /dev/null
+++ b/src/assets/locale/it/option.json
@@ -0,0 +1,12 @@
+{
+ "newChat": "Nuova Chat",
+ "selectAPrompt": "Scegli un Prompt",
+ "githubRepository": "GitHub Repository",
+ "settings": "Impsotazioni",
+ "sidebarTitle": "Cronologia Chat",
+ "error": "Errore",
+ "somethingWentWrong": "Qualcosa è andato storto",
+ "validationSelectModel": "Scegliere un modello per continuare",
+ "deleteHistoryConfirmation": "Sei sicuro che vuoi eliminare la cronologia?",
+ "editHistoryTitle": "Inserisci un nuovo titolo"
+}
\ No newline at end of file
diff --git a/src/assets/locale/it/playground.json b/src/assets/locale/it/playground.json
new file mode 100644
index 00000000..44972ebd
--- /dev/null
+++ b/src/assets/locale/it/playground.json
@@ -0,0 +1,29 @@
+{
+ "ollamaState": {
+ "searching": "Sto cercando Ollama 🦙",
+ "running": "Ollama è attivo 🦙",
+ "notRunning": "Impossibile connettersi a Ollama 🦙",
+ "connectionError": "C'è stato un problema di connessione. Controlla la documentazione per investigare."
+ },
+ "formError": {
+ "noModel": "Seleziona un modello",
+ "noEmbeddingModel": "Imposta un modello di embedding da Impostazioni > Ollama"
+ },
+ "form": {
+ "textarea": {
+ "placeholder": "Scrivi un messaggio..."
+ },
+ "webSearch": {
+ "on": "Attivo",
+ "off": "Disattivato"
+ }
+ },
+ "tooltip": {
+ "searchInternet": "Cerca su Internet",
+ "speechToText": "Speech to Text",
+ "uploadImage": "Carica immagine",
+ "stopStreaming": "Ferma lo Streaming",
+ "knowledge": "Conoscenza"
+ },
+ "sendWhenEnter": "Invia subito dopo Enter"
+}
\ No newline at end of file
diff --git a/src/assets/locale/it/settings.json b/src/assets/locale/it/settings.json
new file mode 100644
index 00000000..7ab29d8d
--- /dev/null
+++ b/src/assets/locale/it/settings.json
@@ -0,0 +1,286 @@
+{
+ "generalSettings": {
+ "title": "Impostazioni Generali",
+ "settings": {
+ "heading": "Impostazioni Web UI",
+ "speechRecognitionLang": {
+ "label": "Lingua per il riconoscimento vocale",
+ "placeholder": "Scegli una lingua"
+ },
+ "language": {
+ "label": "Lingua",
+ "placeholder": "Scegli una lingua"
+ },
+ "darkMode": {
+ "label": "Cambia il Tema",
+ "options": {
+ "light": "Chiaro",
+ "dark": "Scuro"
+ }
+ },
+ "copilotResumeLastChat": {
+ "label": "Riprendi l'ultima chat quando apri il Pannello Laterale (Copilot)"
+ },
+ "hideCurrentChatModelSettings": {
+ "label": "Nascondi le impostazioni correnti del modello Chat"
+ }
+ },
+ "webSearch": {
+ "heading": "Gestione ricerca Web",
+ "searchMode": {
+ "label": "Effettua ricerca web Internet semplice"
+ },
+ "provider": {
+ "label": "Motori di ricerca",
+ "placeholder": "Scegli un motore di ricerca"
+ },
+ "totalSearchResults": {
+ "label": "Risultati della ricerca",
+ "placeholder": "Inserisci il totale delle ricerche"
+ }
+ },
+ "system": {
+ "heading": "Impostazioni di Sistema",
+ "deleteChatHistory": {
+ "label": "Elimina cronologia Chat",
+ "button": "Elimina",
+ "confirm": "Sei sicuro che vuoi eliminare la tua cronologia delle chat? Questa azione non può essere annullata."
+ },
+ "export": {
+ "label": "Esporta la cronologia Chat, Base di Conoscenza, e Prompts",
+ "button": "Esporta Dati",
+ "success": "Esportato con Successo"
+ },
+ "import": {
+ "label": "Imposta la cronologia Chat, Base di Conoscenza, e Prompts",
+ "button": "Importa Dati",
+ "success": "Importato con Successo",
+ "error": "Errore Importazione"
+ }
+ },
+ "tts": {
+ "heading": "Impostazioni Text-to-Speech",
+ "ttsEnabled": {
+ "label": "Abilita Text-to-Speech"
+ },
+ "ttsProvider": {
+ "label": "Text-to-Speech Provider",
+ "placeholder": "Seleziona un provider"
+ },
+ "ttsVoice": {
+ "label": "Text-to-Speech Voce",
+ "placeholder": "Seleziona una voce"
+ },
+ "ssmlEnabled": {
+ "label": "Abilita SSML (Speech Synthesis Markup Language)"
+ }
+ }
+ },
+ "manageModels": {
+ "title": "Gestione Modelli",
+ "addBtn": "Aggiungi un nuovo Modello",
+ "columns": {
+ "name": "Nome",
+ "digest": "Digest",
+ "modifiedAt": "Modificato il",
+ "size": "Dimensioni",
+ "actions": "Azioni"
+ },
+ "expandedColumns": {
+ "parentModel": "Modello Padre",
+ "format": "Formato",
+ "family": "Famiglia",
+ "parameterSize": "Numero di Parametri",
+ "quantizationLevel": "Livello di Quantizzazione"
+ },
+ "tooltip": {
+ "delete": "Elimina Modello",
+ "repull": "Ri-Scarica Modello"
+ },
+ "confirm": {
+ "delete": "Sei sicuro di voler eliminare questo modello?",
+ "repull": "Se sicuro che vuoi ri-scaricare questo modello?"
+ },
+ "modal": {
+ "title": "Aggiungi Nuovo Modello",
+ "placeholder": "Inserisci il Nome Modello",
+ "pull": "Scarico del Modello"
+ },
+ "notification": {
+ "pullModel": "Scarico del Modello",
+ "pullModelDescription": "Scaricando il modello {{modelName}}. Per ulteriori dettagli visualizza l'icona dell'estensione.",
+ "success": "Completato",
+ "error": "Errore",
+ "successDescription": "Scarico del modello completato",
+ "successDeleteDescription": "Eliminazione del modello completato",
+ "someError": "Qualcosa è andato storto. Riprova più tardi"
+ }
+ },
+ "managePrompts": {
+ "title": "Gestisci Prompts",
+ "addBtn": "Aggiungi nuovo Prompt",
+ "option1": "Normale",
+ "option2": "RAG",
+ "questionPrompt": "Question Prompt",
+ "columns": {
+ "title": "Titolo",
+ "prompt": "Prompt",
+ "type": "Tipo di Prompt",
+ "actions": "Azioni"
+ },
+ "systemPrompt": "Prompt di Sistema",
+ "quickPrompt": "Prompt Veloce",
+ "tooltip": {
+ "delete": "Elimina Prompt",
+ "edit": "Modifica Prompt"
+ },
+ "confirm": {
+ "delete": "Sei sicuro di voler eliminare questo prompt? L'azione non può essere annullata."
+ },
+ "modal": {
+ "addTitle": "Aggiungi Nuovo Prompt",
+ "editTitle": "Modifica Prompt"
+ },
+ "form": {
+ "title": {
+ "label": "Titolo",
+ "placeholder": "I Miei Prompt",
+ "required": "Inserisci il Titolo"
+ },
+ "prompt": {
+ "label": "Prompt",
+ "placeholder": "Inserisci Prompt",
+ "required": "Scrivi il prompt",
+ "help": "Puoi usare {key} come variabile nel tuo prompt."
+ },
+ "isSystem": {
+ "label": "Prompt di Sistema"
+ },
+ "btnSave": {
+ "saving": "Aggiungendo Prompt...",
+ "save": "Aggiungi Prompt"
+ },
+ "btnEdit": {
+ "saving": "Aggiornando Prompt...",
+ "save": "Aggiorna Prompt"
+ }
+ },
+ "notification": {
+ "addSuccess": "Prompt Aggiunto",
+ "addSuccessDesc": "Il Prompt è stato aggiunto correttamente",
+ "error": "Errore",
+ "someError": "Qualcosa è andato storto. Riprova più tardi",
+ "updatedSuccess": "Prompt Aggiornato",
+ "updatedSuccessDesc": "Il Prompt è stato aggiornato correttmante",
+ "deletedSuccess": "Prompt Eliminato",
+ "deletedSuccessDesc": "Il Prompt è stato eliminato correttamente"
+ }
+ },
+ "manageShare": {
+ "title": "Gestione Condivisioni",
+ "heading": "Configura l'URL della Pagina di Condivisione",
+ "form": {
+ "url": {
+ "label": "URL Pagina di Condivisione",
+ "placeholder": "Inserisci URL Pagina di Condivisione",
+ "required": "Inserisci l'url della pagina di condivisione!",
+ "help": "Per ragioni di privacy, tu puoi ospitare in self-host la paginacon il seguente URL. Leggi altro."
+ }
+ },
+ "webshare": {
+ "heading": "Condivisioni Web",
+ "columns": {
+ "title": "Titolo",
+ "url": "URL",
+ "actions": "Azioni"
+ },
+ "tooltip": {
+ "delete": "Elimina Condivisione"
+ },
+ "confirm": {
+ "delete": "Sei sicuro che vuoi eliminare questa condivisione? L'azione non può essere annullata."
+ },
+ "label": "Gestione Condivisioni",
+ "description": "Abilita o Disattiva la funzionalità di condivisione"
+ },
+ "notification": {
+ "pageShareSuccess": " URL di condivisione aggiornato correttamente",
+ "someError": "Qualcosa è andato storto. Riprova più tardi",
+ "webShareDeleteSuccess": "Condivisione eliminata correttamente"
+ }
+ },
+ "ollamaSettings": {
+ "title": "Impostazioni Ollama",
+ "heading": "Configura Ollama",
+ "settings": {
+ "ollamaUrl": {
+ "label": "Ollama URL",
+ "placeholder": "Inserici l'URL di Ollama"
+ },
+ "ragSettings": {
+ "label": "Impostazioni RAG",
+ "model": {
+ "label": "Modello di Embedding",
+ "required": "Scegliere il modello",
+ "help": "E' raccomandato l'uso di modelli come `nomic-embed-text`.",
+ "placeholder": "Seleziona un modello"
+ },
+ "chunkSize": {
+ "label": "Dimensione del Blocco (Chunk Size)",
+ "placeholder": "Inserisci la Dimensione del Blocco (Chunk Size)",
+ "required": "Inserisci la Dimensione del Blocco (chunk size)"
+ },
+ "chunkOverlap": {
+ "label": "Sovrapposizione del Blocco (Chunk Overlap)",
+ "placeholder": "Inserisci la Sovrapposizione del Blocco (Chunk Overlap)",
+ "required": "Inserisci la Sovrapposizione del Blocco"
+ }
+ },
+ "prompt": {
+ "label": "Configura il Prompt RAG",
+ "option1": "Normale",
+ "option2": "Web",
+ "alert": "La configurazione del prompt di sistema qui è deprecato. Usa la sezione Gestione Prompt per aggiungere o modificare i prompts.Questa sezione sarà eliminata nelle prossime release",
+ "systemPrompt": "Prompt di Sistema",
+ "systemPromptPlaceholder": "Inserisci il Prompt di Sistema",
+ "webSearchPrompt": "Prompt per la Ricerca Web",
+ "webSearchPromptHelp": "Non rimuovere `{search_results}` dal prompt.",
+ "webSearchPromptError": "Inserisci il prompt per la ricerca web",
+ "webSearchPromptPlaceholder": "Imserosco il Prompt per la Ricerca Web",
+ "webSearchFollowUpPrompt": "Prompt di Follow Up sulla Ricerca Web",
+ "webSearchFollowUpPromptHelp": "Non rimuovere `{chat_history}` e `{question}` dal prompt.",
+ "webSearchFollowUpPromptError": "Inserisci il Prompt di Follow Up della Ricerca Web!",
+ "webSearchFollowUpPromptPlaceholder": "I tuoi Prompt di Follow Up delle Ricerche Web"
+ },
+ "advanced": {
+ "label": "Configurazione Avanzata Ollama URL",
+ "urlRewriteEnabled": {
+ "label": "Abilita o Disabilita l'URL di Origine Personalizzato"
+ },
+ "rewriteUrl": {
+ "label": "URL di Origine Personalizzato",
+ "placeholder": "Inserisci URL di Origine Personalizzato"
+ },
+ "help": "Se hai problemi di connessione con Ollama su Page Assist, puoi configurare un URL di origine personalizzato. Per saperne di più sulla configurazione, clicca qui."
+ }
+ }
+ },
+ "manageSearch": {
+ "title": "Gestisci Ricerca Web",
+ "heading": "Configura Ricerca Web"
+ },
+ "about": {
+ "title": "Informazioni",
+ "heading": "Informazioni",
+ "chromeVersion": "Versione di Page Assist",
+ "ollamaVersion": "Versione di Ollama",
+ "support": "Puoi supportare il progetto Page Assist donando o sponsorizzando attraverso le seguenti piattaforme:",
+ "koFi": "Supporta su Ko-fi",
+ "githubSponsor": "Sponsorizza su GitHub",
+ "githubRepo": "Repository GitHub"
+ },
+ "manageKnowledge": {
+ "title": "Gestisci Conoscenza",
+ "heading": "Configura Base di Conoscenza"
+ }
+}
diff --git a/src/assets/locale/it/sidepanel.json b/src/assets/locale/it/sidepanel.json
new file mode 100644
index 00000000..89c9ac2f
--- /dev/null
+++ b/src/assets/locale/it/sidepanel.json
@@ -0,0 +1,7 @@
+{
+ "tooltip": {
+ "embed": "L'inserimento della pagina potrebbe richiedere alcuni minuti. Attendere prego...",
+ "clear": "Cancella la cronologia della chat",
+ "history": "Cronologia della chat"
+ }
+}
\ No newline at end of file
diff --git a/src/i18n/index.ts b/src/i18n/index.ts
index 3a28a6e5..d0b7317e 100644
--- a/src/i18n/index.ts
+++ b/src/i18n/index.ts
@@ -5,6 +5,7 @@ import { ru } from "./lang/ru";
import { ml } from "./lang/ml";
import { zh } from "./lang/zh";
import { ja } from "./lang/ja";
+import { it } from "./lang/it";
import LanguageDetector from 'i18next-browser-languagedetector';
i18n
@@ -13,6 +14,7 @@ i18n
.init({
resources: {
en: en,
+ "it": it,
ml: ml,
"zh-CN": zh,
ru: ru,
diff --git a/src/i18n/lang/it.ts b/src/i18n/lang/it.ts
new file mode 100644
index 00000000..6be87df4
--- /dev/null
+++ b/src/i18n/lang/it.ts
@@ -0,0 +1,15 @@
+import option from "@/assets/locale/it/option.json";
+import playground from "@/assets/locale/it/playground.json";
+import common from "@/assets/locale/it/common.json";
+import sidepanel from "@/assets/locale/it/sidepanel.json";
+import settings from "@/assets/locale/it/settings.json";
+import knowledge from "@/assets/locale/it/knowledge.json";
+
+export const it = {
+ option,
+ playground,
+ common,
+ sidepanel,
+ settings,
+ knowledge
+}
\ No newline at end of file
diff --git a/src/i18n/support-language.ts b/src/i18n/support-language.ts
index af7db404..a6e3f878 100644
--- a/src/i18n/support-language.ts
+++ b/src/i18n/support-language.ts
@@ -4,6 +4,10 @@ export const supportLanguage = [
label: "English",
value: "en"
},
+ {
+ label: "Italiano",
+ value: "it"
+ },
{
label: "Russian",
value: "ru"