Feature/lmstudio provider (#30)

* chore: just a plan update

* Add LM Studio as local AI provider (OpenAI-compatible, like Ollama)

* Convert WebP thumbnails to JPEG before image analysis for LM Studio compatibility

* Strengthen language enforcement in image analysis prompt for local models

* Use i18n localized prompts for image analysis instead of English instructions

* Add airplane mode (Flugmodus) with status bar toggle and offline model preferences

* Fix flightmode: persist model IDs, skip network when offline, airplane icon

* Auto-fallback to offline models in airplane mode for chat, title, and image analysis

* Auto-select first local model as offline fallback when no explicit offline model configured

* Block git fetch/pull/push and site upload in airplane mode

* fix: thumbnails optimized for AI

* fix: error handling in airplane mode

---------

Co-authored-by: hugo <hugoms@me.com>
This commit is contained in:
Georg Bauer
2026-03-02 13:35:42 +01:00
committed by GitHub
parent 4b4a9c1c8b
commit 5747925503
34 changed files with 2215 additions and 105 deletions

View File

@@ -34,6 +34,7 @@
"app.sitemapGenerationFailed": "Sitemap-Erstellung fehlgeschlagen",
"app.calendarRegenerationFailed": "Kalender-Neuerstellung fehlgeschlagen",
"app.uploadSiteFailed": "Website-Upload fehlgeschlagen",
"app.uploadSiteOfflineMode": "Website-Upload ist im Flugmodus nicht verfügbar.",
"app.uploadSiteNoCredentials": "Bitte konfigurieren Sie zuerst die SSH-Zugangsdaten in den Einstellungen.",
"app.previewOpenFailed": "Ausgewählte Beitragsvorschau konnte nicht geöffnet werden",
"app.metadataDiff": "Metadaten-Diff",
@@ -314,6 +315,7 @@
"gitSidebar.error.loadRepoStatus": "Repository-Status konnte nicht geladen werden.",
"gitSidebar.error.initFailed": "Git-Repository konnte nicht initialisiert werden.",
"gitSidebar.error.actionFailed": "Fehler beim {action}.",
"gitSidebar.error.offlineMode": "Diese Aktion ist im Flugmodus nicht verfügbar.",
"gitSidebar.error.commitFailed": "Änderungen konnten nicht committet werden.",
"gitSidebar.progress.preparingInit": "Repository-Initialisierung wird vorbereitet...",
"gitSidebar.progress.pushingRemote": "Commits werden zum Remote übertragen... das kann bei großen Uploads eine Weile dauern.",
@@ -742,6 +744,7 @@
"settings.ai.providerOpenCode": "OpenCode",
"settings.ai.providerMistral": "Mistral",
"settings.ai.providerOllama": "Ollama (Lokal)",
"settings.ai.providerLmstudio": "LM Studio (Lokal)",
"settings.ai.providerOther": "Andere",
"settings.ai.ollamaLabel": "Ollama (Lokale Modelle)",
"settings.ai.ollamaDescription": "Verbinde dich mit einer lokal laufenden Ollama-Instanz, um lokale KI-Modelle zu verwenden.",
@@ -756,6 +759,28 @@
"settings.toast.modelCatalogRefreshFailed": "Modellkatalog konnte nicht aktualisiert werden",
"settings.toast.ollamaEnabled": "Ollama aktiviert",
"settings.toast.ollamaDisabled": "Ollama deaktiviert",
"settings.ai.lmstudioLabel": "LM Studio (Lokale Modelle)",
"settings.ai.lmstudioDescription": "Verbinde dich mit einer lokal laufenden LM Studio-Instanz, um lokale KI-Modelle zu verwenden.",
"settings.ai.lmstudioEnable": "LM Studio aktivieren",
"settings.ai.lmstudioCapabilitiesDescription": "Fähigkeiten für jedes LM Studio-Modell konfigurieren. Tools für Funktionsaufrufe oder Vision für Bildanalyse aktivieren.",
"settings.ai.lmstudioCapModel": "Modell",
"settings.ai.lmstudioCapTools": "Tools",
"settings.ai.lmstudioCapVision": "Vision",
"settings.toast.lmstudioEnabled": "LM Studio aktiviert",
"settings.toast.lmstudioDisabled": "LM Studio deaktiviert",
"settings.ai.offlineLabel": "Flugmodus",
"settings.ai.offlineDescription": "Wenn aktiviert, werden nur lokal gehostete Modelle (Ollama, LM Studio) verwendet. Cloud-Anbieter werden deaktiviert.",
"settings.ai.offlineEnable": "Flugmodus aktivieren",
"settings.ai.offlineChatModel": "Offline-Chat-Modell",
"settings.ai.offlineChatModelDescription": "Modell für Chat-Gespräche im Flugmodus.",
"settings.ai.offlineTitleModel": "Offline-Titelmodell",
"settings.ai.offlineTitleModelDescription": "Modell für die Titelgenerierung im Flugmodus.",
"settings.ai.offlineImageAnalysisModel": "Offline-Bildanalysemodell",
"settings.ai.offlineImageAnalysisModelDescription": "Modell für die Bildanalyse im Flugmodus.",
"settings.ai.offlineNoLocalProviders": "Keine lokalen Anbieter aktiviert. Aktiviere zuerst Ollama oder LM Studio.",
"settings.ai.offlineNoLocalModels": "Keine lokalen Modelle verfügbar",
"settings.toast.offlineEnabled": "Flugmodus aktiviert",
"settings.toast.offlineDisabled": "Flugmodus deaktiviert",
"settings.publishing.sshHostDescription": "Hostname oder IP-Adresse des SSH-Servers.",
"settings.publishing.sshUsernameDescription": "Benutzername deines SSH-Kontos.",
"settings.publishing.sshRemotePathDescription": "Das Zielverzeichnis auf dem Remote-Server, in das dein Blog veröffentlicht wird.",
@@ -891,6 +916,9 @@
"statusBar.theme": "Theme: {theme}",
"statusBar.ui": "UI",
"statusBar.uiLanguage": "UI-Sprache",
"statusBar.offlineMode": "Flugmodus",
"statusBar.offlineModeActive": "Flugmodus (aktiv)",
"statusBar.offlineModeTooltip": "Klicken zum Umschalten des Flugmodus",
"windowTitleBar.toggleSidebar": "Seitenleiste umschalten",
"windowTitleBar.hideSidebar": "Seitenleiste ausblenden (Ctrl+B)",
"windowTitleBar.showSidebar": "Seitenleiste anzeigen (Ctrl+B)",

View File

@@ -34,6 +34,7 @@
"app.sitemapGenerationFailed": "Sitemap generation failed",
"app.calendarRegenerationFailed": "Calendar regeneration failed",
"app.uploadSiteFailed": "Site upload failed",
"app.uploadSiteOfflineMode": "Site upload is blocked while airplane mode is active.",
"app.uploadSiteNoCredentials": "Please configure SSH publishing credentials in Settings first.",
"app.previewOpenFailed": "Failed to open selected post preview",
"app.metadataDiff": "Metadata Diff",
@@ -314,6 +315,7 @@
"gitSidebar.error.loadRepoStatus": "Unable to load repository status.",
"gitSidebar.error.initFailed": "Failed to initialize git repository.",
"gitSidebar.error.actionFailed": "Failed to {action}.",
"gitSidebar.error.offlineMode": "This action is blocked while airplane mode is active.",
"gitSidebar.error.commitFailed": "Failed to commit changes.",
"gitSidebar.progress.preparingInit": "Preparing repository initialization...",
"gitSidebar.progress.pushingRemote": "Pushing commits to remote... this can take a while for large uploads.",
@@ -742,6 +744,7 @@
"settings.ai.providerOpenCode": "OpenCode",
"settings.ai.providerMistral": "Mistral",
"settings.ai.providerOllama": "Ollama (Local)",
"settings.ai.providerLmstudio": "LM Studio (Local)",
"settings.ai.providerOther": "Other",
"settings.ai.ollamaLabel": "Ollama (Local Models)",
"settings.ai.ollamaDescription": "Connect to a locally running Ollama instance to use local AI models.",
@@ -756,6 +759,28 @@
"settings.toast.modelCatalogRefreshFailed": "Failed to refresh model catalog",
"settings.toast.ollamaEnabled": "Ollama enabled",
"settings.toast.ollamaDisabled": "Ollama disabled",
"settings.ai.lmstudioLabel": "LM Studio (Local Models)",
"settings.ai.lmstudioDescription": "Connect to a locally running LM Studio instance to use local AI models.",
"settings.ai.lmstudioEnable": "Enable LM Studio",
"settings.ai.lmstudioCapabilitiesDescription": "Configure capabilities for each LM Studio model. Enable tools for function calling or vision for image analysis.",
"settings.ai.lmstudioCapModel": "Model",
"settings.ai.lmstudioCapTools": "Tools",
"settings.ai.lmstudioCapVision": "Vision",
"settings.toast.lmstudioEnabled": "LM Studio enabled",
"settings.toast.lmstudioDisabled": "LM Studio disabled",
"settings.ai.offlineLabel": "Airplane Mode",
"settings.ai.offlineDescription": "When enabled, only locally hosted models (Ollama, LM Studio) are used. Cloud providers are disabled.",
"settings.ai.offlineEnable": "Enable Airplane Mode",
"settings.ai.offlineChatModel": "Offline Chat Model",
"settings.ai.offlineChatModelDescription": "Model used for chat conversations when in airplane mode.",
"settings.ai.offlineTitleModel": "Offline Title Model",
"settings.ai.offlineTitleModelDescription": "Model used for title generation when in airplane mode.",
"settings.ai.offlineImageAnalysisModel": "Offline Image Analysis Model",
"settings.ai.offlineImageAnalysisModelDescription": "Model used for image analysis when in airplane mode.",
"settings.ai.offlineNoLocalProviders": "No local providers enabled. Enable Ollama or LM Studio first.",
"settings.ai.offlineNoLocalModels": "No local models available",
"settings.toast.offlineEnabled": "Airplane mode enabled",
"settings.toast.offlineDisabled": "Airplane mode disabled",
"settings.publishing.sshHostDescription": "The SSH server hostname or IP address.",
"settings.publishing.sshUsernameDescription": "Your SSH account username.",
"settings.publishing.sshRemotePathDescription": "The destination directory on the remote server where your blog will be published.",
@@ -891,6 +916,9 @@
"statusBar.theme": "Theme: {theme}",
"statusBar.ui": "UI",
"statusBar.uiLanguage": "UI language",
"statusBar.offlineMode": "Airplane Mode",
"statusBar.offlineModeActive": "Airplane Mode (active)",
"statusBar.offlineModeTooltip": "Click to toggle airplane mode",
"windowTitleBar.toggleSidebar": "Toggle Sidebar",
"windowTitleBar.hideSidebar": "Hide Sidebar (Ctrl+B)",
"windowTitleBar.showSidebar": "Show Sidebar (Ctrl+B)",

View File

@@ -34,6 +34,7 @@
"app.sitemapGenerationFailed": "La generación del sitemap falló",
"app.calendarRegenerationFailed": "La regeneración del calendario falló",
"app.uploadSiteFailed": "Error al subir el sitio",
"app.uploadSiteOfflineMode": "La subida del sitio no está disponible en modo avión.",
"app.uploadSiteNoCredentials": "Configure primero las credenciales SSH en Configuración.",
"app.previewOpenFailed": "No se pudo abrir la vista previa de la entrada seleccionada",
"app.metadataDiff": "Diferencia de Metadatos",
@@ -314,6 +315,7 @@
"gitSidebar.error.loadRepoStatus": "No se pudo cargar el estado del repositorio.",
"gitSidebar.error.initFailed": "No se pudo inicializar el repositorio Git.",
"gitSidebar.error.actionFailed": "No se pudo {action}.",
"gitSidebar.error.offlineMode": "Esta acción no está disponible en modo avión.",
"gitSidebar.error.commitFailed": "No se pudieron confirmar los cambios.",
"gitSidebar.progress.preparingInit": "Preparando inicialización del repositorio...",
"gitSidebar.progress.pushingRemote": "Enviando commits al remoto... esto puede tardar con cargas grandes.",
@@ -742,6 +744,7 @@
"settings.ai.providerOpenCode": "OpenCode",
"settings.ai.providerMistral": "Mistral",
"settings.ai.providerOllama": "Ollama (Local)",
"settings.ai.providerLmstudio": "LM Studio (Local)",
"settings.ai.providerOther": "Otro",
"settings.ai.ollamaLabel": "Ollama (Modelos locales)",
"settings.ai.ollamaDescription": "Conéctate a una instancia local de Ollama para usar modelos de IA locales.",
@@ -756,6 +759,28 @@
"settings.toast.modelCatalogRefreshFailed": "No se pudo actualizar el catálogo",
"settings.toast.ollamaEnabled": "Ollama activado",
"settings.toast.ollamaDisabled": "Ollama desactivado",
"settings.ai.lmstudioLabel": "LM Studio (Modelos locales)",
"settings.ai.lmstudioDescription": "Conéctate a una instancia local de LM Studio para usar modelos de IA locales.",
"settings.ai.lmstudioEnable": "Activar LM Studio",
"settings.ai.lmstudioCapabilitiesDescription": "Configurar las capacidades de cada modelo LM Studio. Activar herramientas para llamadas a funciones o visión para análisis de imágenes.",
"settings.ai.lmstudioCapModel": "Modelo",
"settings.ai.lmstudioCapTools": "Herramientas",
"settings.ai.lmstudioCapVision": "Visión",
"settings.toast.lmstudioEnabled": "LM Studio activado",
"settings.toast.lmstudioDisabled": "LM Studio desactivado",
"settings.ai.offlineLabel": "Modo avión",
"settings.ai.offlineDescription": "Cuando está activado, solo se usan modelos alojados localmente (Ollama, LM Studio). Los proveedores en la nube se desactivan.",
"settings.ai.offlineEnable": "Activar modo avión",
"settings.ai.offlineChatModel": "Modelo de chat sin conexión",
"settings.ai.offlineChatModelDescription": "Modelo usado para conversaciones en modo avión.",
"settings.ai.offlineTitleModel": "Modelo de título sin conexión",
"settings.ai.offlineTitleModelDescription": "Modelo usado para generar títulos en modo avión.",
"settings.ai.offlineImageAnalysisModel": "Modelo de análisis de imagen sin conexión",
"settings.ai.offlineImageAnalysisModelDescription": "Modelo usado para el análisis de imágenes en modo avión.",
"settings.ai.offlineNoLocalProviders": "No hay proveedores locales activados. Activa primero Ollama o LM Studio.",
"settings.ai.offlineNoLocalModels": "No hay modelos locales disponibles",
"settings.toast.offlineEnabled": "Modo avión activado",
"settings.toast.offlineDisabled": "Modo avión desactivado",
"settings.publishing.sshHostDescription": "Nombre de host o IP del servidor SSH.",
"settings.publishing.sshUsernameDescription": "Nombre de usuario de SSH.",
"settings.publishing.sshRemotePathDescription": "El directorio de destino en el servidor remoto donde se publicará tu blog.",
@@ -891,6 +916,9 @@
"statusBar.theme": "Tema: {theme}",
"statusBar.ui": "UI",
"statusBar.uiLanguage": "Idioma de la interfaz",
"statusBar.offlineMode": "Modo avión",
"statusBar.offlineModeActive": "Modo avión (activo)",
"statusBar.offlineModeTooltip": "Haz clic para activar/desactivar el modo avión",
"windowTitleBar.toggleSidebar": "Alternar barra lateral",
"windowTitleBar.hideSidebar": "Ocultar barra lateral",
"windowTitleBar.showSidebar": "Mostrar barra lateral",

View File

@@ -32,8 +32,11 @@
"app.databaseRebuildFailed": "Échec de la reconstruction de la base de données",
"app.textReindexFailed": "Échec de la réindexation du texte",
"app.sitemapGenerationFailed": "Échec de la génération du sitemap",
"app.calendarRegenerationFailed": "Échec de la régénération du calendrier", "app.uploadSiteFailed": "Échec de la publication du site",
"app.uploadSiteNoCredentials": "Veuillez d'abord configurer les identifiants SSH dans les paramètres.", "app.previewOpenFailed": "Impossible douvrir laperçu de larticle sélectionné",
"app.calendarRegenerationFailed": "Échec de la régénération du calendrier",
"app.uploadSiteFailed": "Échec de la publication du site",
"app.uploadSiteOfflineMode": "La publication du site est bloquée en mode avion.",
"app.uploadSiteNoCredentials": "Veuillez d'abord configurer les identifiants SSH dans les paramètres.",
"app.previewOpenFailed": "Impossible douvrir laperçu de larticle sélectionné",
"app.metadataDiff": "Diff Métadonnées",
"app.importComplete": "Import terminé : {posts} articles, {media} fichiers média",
"siteValidation.tabTitle": "Validation du site",
@@ -312,6 +315,7 @@
"gitSidebar.error.loadRepoStatus": "Impossible de charger létat du dépôt.",
"gitSidebar.error.initFailed": "Impossible dinitialiser le dépôt Git.",
"gitSidebar.error.actionFailed": "Échec de {action}.",
"gitSidebar.error.offlineMode": "Cette action est bloquée en mode avion.",
"gitSidebar.error.commitFailed": "Impossible de valider les modifications.",
"gitSidebar.progress.preparingInit": "Préparation de linitialisation du dépôt...",
"gitSidebar.progress.pushingRemote": "Envoi des commits vers le distant... cela peut prendre un moment pour les gros envois.",
@@ -740,6 +744,7 @@
"settings.ai.providerOpenCode": "OpenCode",
"settings.ai.providerMistral": "Mistral",
"settings.ai.providerOllama": "Ollama (Local)",
"settings.ai.providerLmstudio": "LM Studio (Local)",
"settings.ai.providerOther": "Autre",
"settings.ai.ollamaLabel": "Ollama (Modèles locaux)",
"settings.ai.ollamaDescription": "Connectez-vous à une instance Ollama locale pour utiliser des modèles d'IA locaux.",
@@ -754,6 +759,28 @@
"settings.toast.modelCatalogRefreshFailed": "Échec de l'actualisation du catalogue",
"settings.toast.ollamaEnabled": "Ollama activé",
"settings.toast.ollamaDisabled": "Ollama désactivé",
"settings.ai.lmstudioLabel": "LM Studio (Modèles locaux)",
"settings.ai.lmstudioDescription": "Connectez-vous à une instance LM Studio locale pour utiliser des modèles d'IA locaux.",
"settings.ai.lmstudioEnable": "Activer LM Studio",
"settings.ai.lmstudioCapabilitiesDescription": "Configurer les capacités de chaque modèle LM Studio. Activer les outils pour les appels de fonctions ou la vision pour l'analyse d'images.",
"settings.ai.lmstudioCapModel": "Modèle",
"settings.ai.lmstudioCapTools": "Outils",
"settings.ai.lmstudioCapVision": "Vision",
"settings.toast.lmstudioEnabled": "LM Studio activé",
"settings.toast.lmstudioDisabled": "LM Studio désactivé",
"settings.ai.offlineLabel": "Mode avion",
"settings.ai.offlineDescription": "Lorsqu'il est activé, seuls les modèles hébergés localement (Ollama, LM Studio) sont utilisés. Les fournisseurs cloud sont désactivés.",
"settings.ai.offlineEnable": "Activer le mode avion",
"settings.ai.offlineChatModel": "Modèle de chat hors ligne",
"settings.ai.offlineChatModelDescription": "Modèle utilisé pour les conversations en mode avion.",
"settings.ai.offlineTitleModel": "Modèle de titre hors ligne",
"settings.ai.offlineTitleModelDescription": "Modèle utilisé pour la génération de titres en mode avion.",
"settings.ai.offlineImageAnalysisModel": "Modèle d'analyse d'image hors ligne",
"settings.ai.offlineImageAnalysisModelDescription": "Modèle utilisé pour l'analyse d'images en mode avion.",
"settings.ai.offlineNoLocalProviders": "Aucun fournisseur local activé. Activez d'abord Ollama ou LM Studio.",
"settings.ai.offlineNoLocalModels": "Aucun modèle local disponible",
"settings.toast.offlineEnabled": "Mode avion activé",
"settings.toast.offlineDisabled": "Mode avion désactivé",
"settings.publishing.sshHostDescription": "Nom d'hôte ou IP du serveur SSH.",
"settings.publishing.sshUsernameDescription": "Nom d'utilisateur SSH.",
"settings.publishing.sshRemotePathDescription": "Le répertoire de destination sur le serveur distant où votre blog sera publié.",
@@ -889,6 +916,9 @@
"statusBar.theme": "Thème : {theme}",
"statusBar.ui": "UI",
"statusBar.uiLanguage": "Langue de linterface",
"statusBar.offlineMode": "Mode avion",
"statusBar.offlineModeActive": "Mode avion (actif)",
"statusBar.offlineModeTooltip": "Cliquer pour basculer le mode avion",
"windowTitleBar.toggleSidebar": "Basculer la barre latérale",
"windowTitleBar.hideSidebar": "Masquer la barre latérale",
"windowTitleBar.showSidebar": "Afficher la barre latérale",
@@ -1005,9 +1035,7 @@
"importAnalysis.usedIn": "Utilisé dans : {items}{more}",
"importAnalysis.moreSuffix": ", +{count} de plus",
"importAnalysis.noParameters": "(aucun paramètre)",
"sidebar.nav.mcp": "Serveur MCP",
"settings.mcp.title": "Serveur MCP",
"settings.mcp.description": "Configurez le serveur Model Context Protocol qui permet aux agents de programmation IA d'interagir avec votre blog.",
"settings.mcp.statusLabel": "État du serveur",

View File

@@ -32,8 +32,11 @@
"app.databaseRebuildFailed": "Ricostruzione database non riuscita",
"app.textReindexFailed": "Reindicizzazione testo non riuscita",
"app.sitemapGenerationFailed": "Generazione sitemap non riuscita",
"app.calendarRegenerationFailed": "Rigenerazione del calendario non riuscita", "app.uploadSiteFailed": "Caricamento del sito non riuscito",
"app.uploadSiteNoCredentials": "Configurare prima le credenziali SSH nelle impostazioni.", "app.previewOpenFailed": "Impossibile aprire lanteprima del post selezionato",
"app.calendarRegenerationFailed": "Rigenerazione del calendario non riuscita",
"app.uploadSiteFailed": "Caricamento del sito non riuscito",
"app.uploadSiteOfflineMode": "Il caricamento del sito non è disponibile in modalità aereo.",
"app.uploadSiteNoCredentials": "Configurare prima le credenziali SSH nelle impostazioni.",
"app.previewOpenFailed": "Impossibile aprire lanteprima del post selezionato",
"app.metadataDiff": "Diff Metadati",
"app.importComplete": "Import completato: {posts} post, {media} file multimediali",
"siteValidation.tabTitle": "Validazione sito",
@@ -312,6 +315,7 @@
"gitSidebar.error.loadRepoStatus": "Impossibile caricare lo stato del repository.",
"gitSidebar.error.initFailed": "Impossibile inizializzare il repository Git.",
"gitSidebar.error.actionFailed": "Impossibile {action}.",
"gitSidebar.error.offlineMode": "Questa azione non è disponibile in modalità aereo.",
"gitSidebar.error.commitFailed": "Impossibile eseguire il commit delle modifiche.",
"gitSidebar.progress.preparingInit": "Preparazione inizializzazione repository...",
"gitSidebar.progress.pushingRemote": "Invio dei commit al remoto... può richiedere tempo per upload grandi.",
@@ -740,6 +744,7 @@
"settings.ai.providerOpenCode": "OpenCode",
"settings.ai.providerMistral": "Mistral",
"settings.ai.providerOllama": "Ollama (Locale)",
"settings.ai.providerLmstudio": "LM Studio (Locale)",
"settings.ai.providerOther": "Altro",
"settings.ai.ollamaLabel": "Ollama (Modelli locali)",
"settings.ai.ollamaDescription": "Connettiti a un'istanza Ollama locale per utilizzare modelli IA locali.",
@@ -754,6 +759,28 @@
"settings.toast.modelCatalogRefreshFailed": "Aggiornamento del catalogo non riuscito",
"settings.toast.ollamaEnabled": "Ollama attivato",
"settings.toast.ollamaDisabled": "Ollama disattivato",
"settings.ai.lmstudioLabel": "LM Studio (Modelli locali)",
"settings.ai.lmstudioDescription": "Connettiti a un'istanza LM Studio locale per utilizzare modelli IA locali.",
"settings.ai.lmstudioEnable": "Attiva LM Studio",
"settings.ai.lmstudioCapabilitiesDescription": "Configura le capacità per ogni modello LM Studio. Attiva gli strumenti per le chiamate a funzioni o la visione per l'analisi delle immagini.",
"settings.ai.lmstudioCapModel": "Modello",
"settings.ai.lmstudioCapTools": "Strumenti",
"settings.ai.lmstudioCapVision": "Visione",
"settings.toast.lmstudioEnabled": "LM Studio attivato",
"settings.toast.lmstudioDisabled": "LM Studio disattivato",
"settings.ai.offlineLabel": "Modalità aereo",
"settings.ai.offlineDescription": "Quando attivato, vengono utilizzati solo i modelli ospitati localmente (Ollama, LM Studio). I provider cloud sono disabilitati.",
"settings.ai.offlineEnable": "Attiva modalità aereo",
"settings.ai.offlineChatModel": "Modello chat offline",
"settings.ai.offlineChatModelDescription": "Modello utilizzato per le conversazioni in modalità aereo.",
"settings.ai.offlineTitleModel": "Modello titolo offline",
"settings.ai.offlineTitleModelDescription": "Modello utilizzato per la generazione dei titoli in modalità aereo.",
"settings.ai.offlineImageAnalysisModel": "Modello analisi immagini offline",
"settings.ai.offlineImageAnalysisModelDescription": "Modello utilizzato per l'analisi delle immagini in modalità aereo.",
"settings.ai.offlineNoLocalProviders": "Nessun provider locale attivato. Attiva prima Ollama o LM Studio.",
"settings.ai.offlineNoLocalModels": "Nessun modello locale disponibile",
"settings.toast.offlineEnabled": "Modalità aereo attivata",
"settings.toast.offlineDisabled": "Modalità aereo disattivata",
"settings.publishing.sshHostDescription": "Hostname o IP del server SSH.",
"settings.publishing.sshUsernameDescription": "Nome utente SSH.",
"settings.publishing.sshRemotePathDescription": "La directory di destinazione sul server remoto in cui verrà pubblicato il tuo blog.",
@@ -889,6 +916,9 @@
"statusBar.theme": "Tema: {theme}",
"statusBar.ui": "UI",
"statusBar.uiLanguage": "Lingua interfaccia",
"statusBar.offlineMode": "Modalità aereo",
"statusBar.offlineModeActive": "Modalità aereo (attiva)",
"statusBar.offlineModeTooltip": "Clicca per attivare/disattivare la modalità aereo",
"windowTitleBar.toggleSidebar": "Mostra/Nascondi barra laterale",
"windowTitleBar.hideSidebar": "Nascondi barra laterale",
"windowTitleBar.showSidebar": "Mostra barra laterale",
@@ -1005,9 +1035,7 @@
"importAnalysis.usedIn": "Usato in: {items}{more}",
"importAnalysis.moreSuffix": ", +{count} altri",
"importAnalysis.noParameters": "(nessun parametro)",
"sidebar.nav.mcp": "Server MCP",
"settings.mcp.title": "Server MCP",
"settings.mcp.description": "Configura il server Model Context Protocol che permette agli agenti di programmazione IA di interagire con il tuo blog.",
"settings.mcp.statusLabel": "Stato del server",