diff --git a/locales/de/settings.json b/locales/de/settings.json index c3bf4013..c631cab2 100644 --- a/locales/de/settings.json +++ b/locales/de/settings.json @@ -202,24 +202,24 @@ "settings.ai.webllm.tabLeaderNote": "Nur ein Browser-Tab führt lokale Inferenz gleichzeitig durch.", "settings.ai.webllm.vramLabel": "VRAM-Kategorie", "settings.ai.webllmHint": "Läuft vollständig im Browser via WebGPU (optionale Pakete). Beim ersten Start werden Modelle heruntergeladen; für größere Modelle empfiehlt sich Ollama in der Desktop-App.", - "settings.aiMode.activeLabel": "Active: {{mode}}", + "settings.aiMode.activeLabel": "Aktiv: {{mode}}", "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", + "settings.aiMode.cloudDesc": "Alle KI-Anfragen gehen an den Cloud-Anbieter (Gemini, OpenAI usw.). Beste Qualität, benötigt einen API-Schlüssel und Internet.", + "settings.aiMode.description": "Lege fest, wie die App KI-Anfragen verarbeitet. Der Cloud-Modus nutzt deinen API-Schlüssel für beste Qualität, der Lokal-Modus führt alles auf deinem Gerät aus (maximale Privatsphäre), und der Hybrid-Modus wählt automatisch die beste Option.", "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", + "settings.aiMode.ecoDesc": "Energiesparmodus für schwache oder mobile Geräte. Nutzt nur das kleine 0,5B-Textmodell und regelbasierte Heuristiken. Keine Cloud, keine schweren Modelle.", "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", + "settings.aiMode.hybridDesc": "Nutzt automatisch lokale Modelle, wenn vorgeladen, sonst Rückgriff auf die Cloud. Das Beste aus beiden Welten.", "settings.aiMode.indicator.cloud": "Cloud", "settings.aiMode.indicator.eco": "Eco", "settings.aiMode.indicator.hybrid": "Hybrid", - "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.local": "Lokal", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter pausiert (zu viele Rate-Limits). Rückgriff auf andere Anbieter.", + "settings.aiMode.indicator.tooltip.cloud": "Cloud-Modus – alle KI-Aufrufe gehen an deinen Cloud-Anbieter", + "settings.aiMode.indicator.tooltip.eco": "Eco-Modus – kleinstes lokales Modell, keine Cloud, energiesparend", + "settings.aiMode.indicator.tooltip.hybrid": "Hybrid-Modus – Cloud zuerst, lokal als Offline-Rückfall", + "settings.aiMode.indicator.tooltip.local": "Lokal-Modus – die gesamte KI läuft auf deinem Gerät", + "settings.aiMode.indicatorAriaLabel": "Aktiver KI-Modus", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -227,9 +227,9 @@ "settings.aiMode.hint.webgpuMissing": "WebGPU nicht erkannt — Modelle auf dem Gerät laufen evtl. langsam oder weichen auf eine kleinere Engine aus.", "settings.aiMode.hint.cloudOffline": "Du bist offline — im Cloud-Modus ist der KI-Anbieter nicht erreichbar. Verbinde dich neu oder wechsle zu Lokal/Eco.", "settings.aiMode.hint.hybridOffline": "Du bist offline — der Hybrid-Modus nutzt das Gerät-Fallback, bis du wieder online bist.", - "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.local": "Lokal", + "settings.aiMode.localDesc": "Die gesamte KI läuft auf deinem Gerät mit lokalen Modellen. Keine Daten verlassen das Gerät. Funktioniert nach dem Vorladen komplett offline.", + "settings.aiMode.title": "KI-Ausführungsmodus", "settings.apiKey.configured": "API-Schlüssel konfiguriert", "settings.apiKey.encryptedNote": "Verschlüsselt in IndexedDB gespeichert", "settings.apiKey.errorEmpty": "Bitte geben Sie einen API-Schlüssel ein", @@ -527,54 +527,54 @@ "settings.notifications.goalAchievements": "Ziel-Erreichungen", "settings.notifications.title": "Benachrichtigungseinstellungen", "settings.notifications.writingReminders": "Schreib-Erinnerungen", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "API-Schlüssel", + "settings.openRouter.apiKeyAriaLabel": "OpenRouter-API-Schlüssel", + "settings.openRouter.apiKeyHint": "Verschlüsselt auf diesem Gerät gespeichert.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Schutzschalter:", + "settings.openRouter.circuitClosed": "Geschlossen (gesund)", + "settings.openRouter.circuitOpen": "Offen (5 Min pausiert)", + "settings.openRouter.clearKey": "Entfernen", + "settings.openRouter.customModelAriaLabel": "Eigene Modellkennung", + "settings.openRouter.customModelLabel": "Eigenes Modell …", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Nutze OpenRouter als einheitliches Cloud-Gateway. Free-Tier-Modelle (mit :free markiert) benötigen kein Guthaben.", + "settings.openRouter.enabled": "OpenRouter aktivieren", + "settings.openRouter.enabledHint": "Wenn aktiviert, wird OpenRouter für Cloud-KI-Aufrufe bevorzugt, sofern der aktive Modus Cloud nicht verbietet.", + "settings.openRouter.errors.generic": "Ein unerwarteter OpenRouter-Fehler ist aufgetreten", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (gratis)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (gratis)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (gratis)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (gratis)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (gratis)", + "settings.openRouter.freeTierNote": "Free-Tier-Modelle: 20 Anfragen/Min, 50 Anfragen/Tag ohne Guthaben", + "settings.openRouter.getKeyLink": "Hol dir einen kostenlosen API-Schlüssel unter openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Bitte gib einen OpenRouter-API-Schlüssel ein", + "settings.openRouter.keyError.invalid": "Der API-Schlüssel scheint ungültig zu sein", + "settings.openRouter.keyError.network": "Netzwerkfehler bei der Schlüsselprüfung", + "settings.openRouter.keyError.saveFailed": "Speichern des API-Schlüssels fehlgeschlagen", + "settings.openRouter.keyStatus.removed": "API-Schlüssel entfernt", + "settings.openRouter.keyStatus.saved": "API-Schlüssel gespeichert", + "settings.openRouter.keyStatus.saving": "Wird gespeichert …", + "settings.openRouter.keyStatus.set": "Schlüssel gespeichert – gib einen neuen ein, um ihn zu ersetzen", + "settings.openRouter.keyStatus.unset": "Kein API-Schlüssel gespeichert", + "settings.openRouter.modeWarning.local": "OpenRouter ist deaktiviert, solange der KI-Modus auf „nur lokal“ steht.", + "settings.openRouter.modeWarning.offline": "OpenRouter ist pausiert, weil das Gerät offline ist.", + "settings.openRouter.modelAriaLabel": "Bevorzugtes OpenRouter-Modell", + "settings.openRouter.modelFetch.empty": "Keine Modelle gefunden", + "settings.openRouter.modelFetch.failed": "Modellkatalog konnte nicht geladen werden", + "settings.openRouter.modelFetch.loading": "Modellkatalog wird geladen …", + "settings.openRouter.modelPlaceholder": "Modell auswählen oder suchen", + "settings.openRouter.paidModelNote": "Kostenpflichtige Modelle benötigen Guthaben auf deinem OpenRouter-Konto.", + "settings.openRouter.policyBlocked": "OpenRouter ist durch den aktuellen KI-Modus oder eine Datenschutzeinstellung blockiert.", + "settings.openRouter.preferredModel": "Bevorzugtes Modell", + "settings.openRouter.resetCircuit": "Zurücksetzen", + "settings.openRouter.resetCircuitAria": "OpenRouter-Schutzschalter zurücksetzen", + "settings.openRouter.rpmLabel": "Anfragen / Min (letzte 60 s)", + "settings.openRouter.saveKey": "Speichern", + "settings.openRouter.testConnection": "Verbindung testen", + "settings.openRouter.testConnectionFailed": "Verbindung fehlgeschlagen", + "settings.openRouter.testConnectionOk": "Verbindung erfolgreich", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Vollständiger Leitfaden", "settings.overview.title": "Schnellzugriff", diff --git a/locales/el/settings.json b/locales/el/settings.json index c337a51a..eac35ac5 100644 --- a/locales/el/settings.json +++ b/locales/el/settings.json @@ -202,24 +202,24 @@ "settings.ai.webllm.tabLeaderNote": "Μόνο μία καρτέλα του προγράμματος περιήγησης εκτελεί τοπικά συμπεράσματα κάθε φορά.", "settings.ai.webllm.vramLabel": "Επίπεδο VRAM", "settings.ai.webllmHint": "Εκτελείται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας μέσω WebGPU (προαιρετικά πακέτα). Μεγάλες λήψεις μοντέλων κατά την πρώτη χρήση. χρησιμοποιήστε το Olama σε επιτραπέζιους υπολογιστές για βαρύτερα μοντέλα.", - "settings.aiMode.activeLabel": "Active: {{mode}}", + "settings.aiMode.activeLabel": "Ενεργό: {{mode}}", "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", + "settings.aiMode.cloudDesc": "Όλα τα αιτήματα AI αποστέλλονται στον πάροχο cloud (Gemini, OpenAI κ.λπ.). Βέλτιστη ποιότητα· απαιτεί κλειδί API και σύνδεση στο διαδίκτυο.", + "settings.aiMode.description": "Επίλεξε πώς η εφαρμογή επεξεργάζεται τα αιτήματα AI. Η λειτουργία Cloud χρησιμοποιεί το κλειδί API σου για βέλτιστη ποιότητα, η λειτουργία Local εκτελεί τα πάντα στη συσκευή σου για μέγιστη ιδιωτικότητα, και η Υβριδική λειτουργία επιλέγει αυτόματα την καλύτερη επιλογή.", "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", + "settings.aiMode.ecoDesc": "Λειτουργία εξοικονόμησης ενέργειας για συσκευές χαμηλών δυνατοτήτων ή κινητά. Χρησιμοποιεί μόνο το μικρό μοντέλο κειμένου 0,5B και ευρετικές βάσει κανόνων. Χωρίς cloud, χωρίς βαριά μοντέλα.", + "settings.aiMode.hybrid": "Υβριδική (έξυπνη)", + "settings.aiMode.hybridDesc": "Χρησιμοποιεί αυτόματα τοπικά μοντέλα όταν είναι προφορτωμένα, αλλιώς καταφεύγει στο cloud. Ό,τι καλύτερο και από τους δύο κόσμους.", "settings.aiMode.indicator.cloud": "Cloud", "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", - "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.hybrid": "Υβριδική", + "settings.aiMode.indicator.local": "Τοπικά", + "settings.aiMode.indicator.orCircuitOpen": "Το OpenRouter τέθηκε σε παύση (υπερβολικά όρια ρυθμού). Καταφυγή σε άλλους παρόχους.", + "settings.aiMode.indicator.tooltip.cloud": "Λειτουργία Cloud — όλες οι κλήσεις AI πηγαίνουν στον πάροχο cloud σου", + "settings.aiMode.indicator.tooltip.eco": "Λειτουργία Eco — το μικρότερο τοπικό μοντέλο, χωρίς cloud, εξοικονόμηση ενέργειας", + "settings.aiMode.indicator.tooltip.hybrid": "Υβριδική λειτουργία — πρώτα cloud, τοπικά ως εφεδρεία εκτός σύνδεσης", + "settings.aiMode.indicator.tooltip.local": "Τοπική λειτουργία — όλο το AI εκτελείται στη συσκευή σου", + "settings.aiMode.indicatorAriaLabel": "Ενεργή λειτουργία AI", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -227,9 +227,9 @@ "settings.aiMode.hint.webgpuMissing": "Δεν εντοπίστηκε WebGPU — τα τοπικά μοντέλα μπορεί να είναι αργά ή να επιστρέψουν σε μικρότερη μηχανή.", "settings.aiMode.hint.cloudOffline": "Είστε εκτός σύνδεσης — η λειτουργία Cloud δεν μπορεί να φτάσει τον πάροχο AI. Επανασυνδεθείτε ή αλλάξτε σε Local/Eco.", "settings.aiMode.hint.hybridOffline": "Είστε εκτός σύνδεσης — η υβριδική λειτουργία θα χρησιμοποιήσει την τοπική μηχανή μέχρι να επανασυνδεθείτε.", - "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.local": "Τοπικά", + "settings.aiMode.localDesc": "Όλο το AI εκτελείται στη συσκευή σου με τοπικά μοντέλα. Κανένα δεδομένο δεν φεύγει από τη συσκευή. Λειτουργεί πλήρως εκτός σύνδεσης μόλις προφορτωθούν τα μοντέλα.", + "settings.aiMode.title": "Λειτουργία εκτέλεσης AI", "settings.apiKey.configured": "Ρυθμίστηκε το κλειδί API", "settings.apiKey.encryptedNote": "Κρυπτογραφημένο και αποθηκευμένο στο IndexedDB", "settings.apiKey.errorEmpty": "Εισαγάγετε ένα κλειδί API", @@ -527,54 +527,54 @@ "settings.notifications.goalAchievements": "Επιτεύγματα Στόχων", "settings.notifications.title": "Notification Ρυθμίσεις", "settings.notifications.writingReminders": "Γράφοντας υπενθυμίσεις", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "Κλειδί API", + "settings.openRouter.apiKeyAriaLabel": "Κλειδί API του OpenRouter", + "settings.openRouter.apiKeyHint": "Αποθηκεύεται κρυπτογραφημένο σε αυτή τη συσκευή.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Διακόπτης προστασίας:", + "settings.openRouter.circuitClosed": "Κλειστός (υγιής)", + "settings.openRouter.circuitOpen": "Ανοιχτός (παύση 5 λεπτά)", + "settings.openRouter.clearKey": "Αφαίρεση", + "settings.openRouter.customModelAriaLabel": "Αναγνωριστικό προσαρμοσμένου μοντέλου", + "settings.openRouter.customModelLabel": "Προσαρμοσμένο μοντέλο…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Χρησιμοποίησε το OpenRouter ως ενοποιημένη πύλη cloud. Τα δωρεάν μοντέλα (με σήμανση :free) δεν χρειάζονται πιστώσεις.", + "settings.openRouter.enabled": "Ενεργοποίηση OpenRouter", + "settings.openRouter.enabledHint": "Όταν είναι ενεργό, το OpenRouter προτιμάται για κλήσεις AI cloud, εκτός αν η ενεργή λειτουργία απαγορεύει το cloud.", + "settings.openRouter.errors.generic": "Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα OpenRouter", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (δωρεάν)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (δωρεάν)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (δωρεάν)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (δωρεάν)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (δωρεάν)", + "settings.openRouter.freeTierNote": "Δωρεάν μοντέλα: 20 αιτήματα/λεπτό, 50 αιτήματα/ημέρα χωρίς πιστώσεις", + "settings.openRouter.getKeyLink": "Απόκτησε ένα δωρεάν κλειδί API στο openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Εισήγαγε ένα κλειδί API του OpenRouter", + "settings.openRouter.keyError.invalid": "Το κλειδί API φαίνεται μη έγκυρο", + "settings.openRouter.keyError.network": "Σφάλμα δικτύου κατά την επικύρωση του κλειδιού", + "settings.openRouter.keyError.saveFailed": "Αποτυχία αποθήκευσης του κλειδιού API", + "settings.openRouter.keyStatus.removed": "Το κλειδί API αφαιρέθηκε", + "settings.openRouter.keyStatus.saved": "Το κλειδί API αποθηκεύτηκε", + "settings.openRouter.keyStatus.saving": "Αποθήκευση…", + "settings.openRouter.keyStatus.set": "Το κλειδί αποθηκεύτηκε — εισήγαγε ένα νέο για αντικατάσταση", + "settings.openRouter.keyStatus.unset": "Δεν έχει αποθηκευτεί κλειδί API", + "settings.openRouter.modeWarning.local": "Το OpenRouter είναι απενεργοποιημένο όσο η λειτουργία AI είναι σε μόνο-τοπικά.", + "settings.openRouter.modeWarning.offline": "Το OpenRouter είναι σε παύση επειδή η συσκευή είναι εκτός σύνδεσης.", + "settings.openRouter.modelAriaLabel": "Προτιμώμενο μοντέλο OpenRouter", + "settings.openRouter.modelFetch.empty": "Δεν βρέθηκαν μοντέλα", + "settings.openRouter.modelFetch.failed": "Δεν ήταν δυνατή η φόρτωση του καταλόγου μοντέλων", + "settings.openRouter.modelFetch.loading": "Φόρτωση καταλόγου μοντέλων…", + "settings.openRouter.modelPlaceholder": "Επίλεξε ή αναζήτησε ένα μοντέλο", + "settings.openRouter.paidModelNote": "Τα επί πληρωμή μοντέλα απαιτούν πιστώσεις στον λογαριασμό σου OpenRouter.", + "settings.openRouter.policyBlocked": "Το OpenRouter αποκλείεται από την τρέχουσα λειτουργία AI ή μια ρύθμιση απορρήτου.", + "settings.openRouter.preferredModel": "Προτιμώμενο μοντέλο", + "settings.openRouter.resetCircuit": "Επαναφορά", + "settings.openRouter.resetCircuitAria": "Επαναφορά του διακόπτη προστασίας OpenRouter", + "settings.openRouter.rpmLabel": "Αιτήματα / λεπτό (τελευταία 60 δ)", + "settings.openRouter.saveKey": "Αποθήκευση", + "settings.openRouter.testConnection": "Δοκιμή σύνδεσης", + "settings.openRouter.testConnectionFailed": "Αποτυχία σύνδεσης", + "settings.openRouter.testConnectionOk": "Επιτυχής σύνδεση", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Πλήρης οδηγός ρυθμίσεων", "settings.overview.title": "Γρήγοροι σύνδεσμοι", diff --git a/locales/es/settings.json b/locales/es/settings.json index a79c5758..a53e4e0d 100644 --- a/locales/es/settings.json +++ b/locales/es/settings.json @@ -202,24 +202,24 @@ "settings.ai.webllm.tabLeaderNote": "Solo una pestaña del navegador ejecuta inferencia local a la vez.", "settings.ai.webllm.vramLabel": "Nivel de VRAM", "settings.ai.webllmHint": "Se ejecuta completamente en tu navegador a través de WebGPU (paquetes opcionales). Descargas grandes de modelos en el primer uso; usa Ollama en escritorio para modelos más pesados.", - "settings.aiMode.activeLabel": "Active: {{mode}}", - "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", + "settings.aiMode.activeLabel": "Activo: {{mode}}", + "settings.aiMode.cloud": "Nube", + "settings.aiMode.cloudDesc": "Todas las solicitudes de IA se envían al proveedor en la nube (Gemini, OpenAI, etc.). Mejor calidad; requiere una clave API y conexión a internet.", + "settings.aiMode.description": "Elige cómo procesa la app las solicitudes de IA. El modo Nube usa tu clave API para la mejor calidad, el modo Local ejecuta todo en tu dispositivo para máxima privacidad, y el modo Híbrido elige automáticamente la mejor opción.", "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", - "settings.aiMode.indicator.cloud": "Cloud", + "settings.aiMode.ecoDesc": "Modo de ahorro de batería para dispositivos de gama baja o móviles. Usa solo el pequeño modelo de texto de 0,5B y heurísticas basadas en reglas. Sin nube ni modelos pesados.", + "settings.aiMode.hybrid": "Híbrido (inteligente)", + "settings.aiMode.hybridDesc": "Usa automáticamente modelos locales cuando están precargados; de lo contrario, recurre a la nube. Lo mejor de ambos mundos.", + "settings.aiMode.indicator.cloud": "Nube", "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", + "settings.aiMode.indicator.hybrid": "Híbrido", "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter en pausa (demasiados límites de tasa). Recurriendo a otros proveedores.", + "settings.aiMode.indicator.tooltip.cloud": "Modo Nube: todas las llamadas de IA van a tu proveedor en la nube", + "settings.aiMode.indicator.tooltip.eco": "Modo Eco: el modelo local más pequeño, sin nube, ahorra batería", + "settings.aiMode.indicator.tooltip.hybrid": "Modo Híbrido: primero la nube, local como respaldo sin conexión", + "settings.aiMode.indicator.tooltip.local": "Modo Local: toda la IA se ejecuta en tu dispositivo", + "settings.aiMode.indicatorAriaLabel": "Modo de IA activo", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -228,8 +228,8 @@ "settings.aiMode.hint.cloudOffline": "Estás sin conexión: el modo Nube no puede acceder al proveedor de IA. Reconéctate o cambia a Local/Eco.", "settings.aiMode.hint.hybridOffline": "Estás sin conexión: el modo Híbrido usará el motor del dispositivo hasta que vuelvas a conectarte.", "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.localDesc": "Toda la IA se ejecuta en tu dispositivo con modelos locales. Ningún dato sale del dispositivo. Funciona totalmente sin conexión una vez precargados los modelos.", + "settings.aiMode.title": "Modo de ejecución de IA", "settings.apiKey.configured": "Clave API configurada", "settings.apiKey.encryptedNote": "Cifrada y almacenada en IndexedDB", "settings.apiKey.errorEmpty": "Por favor, introduce una clave API", @@ -527,54 +527,54 @@ "settings.notifications.goalAchievements": "Logros de objetivos", "settings.notifications.title": "Configuración de notificaciones", "settings.notifications.writingReminders": "Recordatorios de escritura", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "Clave API", + "settings.openRouter.apiKeyAriaLabel": "Clave API de OpenRouter", + "settings.openRouter.apiKeyHint": "Almacenada cifrada en este dispositivo.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Cortacircuitos:", + "settings.openRouter.circuitClosed": "Cerrado (saludable)", + "settings.openRouter.circuitOpen": "Abierto (en pausa 5 min)", + "settings.openRouter.clearKey": "Quitar", + "settings.openRouter.customModelAriaLabel": "Identificador de modelo personalizado", + "settings.openRouter.customModelLabel": "Modelo personalizado…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Usa OpenRouter como puerta de enlace unificada en la nube. Los modelos del nivel gratuito (marcados con :free) no requieren créditos.", + "settings.openRouter.enabled": "Activar OpenRouter", + "settings.openRouter.enabledHint": "Cuando está activado, se prefiere OpenRouter para las llamadas de IA en la nube, salvo que el modo activo prohíba la nube.", + "settings.openRouter.errors.generic": "Se produjo un error inesperado de OpenRouter", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (gratis)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (gratis)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (gratis)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (gratis)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (gratis)", + "settings.openRouter.freeTierNote": "Modelos gratuitos: 20 solicitudes/min, 50 solicitudes/día sin créditos", + "settings.openRouter.getKeyLink": "Consigue una clave API gratuita en openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Introduce una clave API de OpenRouter", + "settings.openRouter.keyError.invalid": "La clave API parece no ser válida", + "settings.openRouter.keyError.network": "Error de red al validar la clave", + "settings.openRouter.keyError.saveFailed": "No se pudo guardar la clave API", + "settings.openRouter.keyStatus.removed": "Clave API eliminada", + "settings.openRouter.keyStatus.saved": "Clave API guardada", + "settings.openRouter.keyStatus.saving": "Guardando…", + "settings.openRouter.keyStatus.set": "Clave guardada: introduce una nueva para reemplazarla", + "settings.openRouter.keyStatus.unset": "No hay ninguna clave API guardada", + "settings.openRouter.modeWarning.local": "OpenRouter está desactivado mientras el modo de IA es solo local.", + "settings.openRouter.modeWarning.offline": "OpenRouter está en pausa porque el dispositivo está sin conexión.", + "settings.openRouter.modelAriaLabel": "Modelo preferido de OpenRouter", + "settings.openRouter.modelFetch.empty": "No se encontraron modelos", + "settings.openRouter.modelFetch.failed": "No se pudo cargar el catálogo de modelos", + "settings.openRouter.modelFetch.loading": "Cargando catálogo de modelos…", + "settings.openRouter.modelPlaceholder": "Selecciona o busca un modelo", + "settings.openRouter.paidModelNote": "Los modelos de pago requieren créditos en tu cuenta de OpenRouter.", + "settings.openRouter.policyBlocked": "OpenRouter está bloqueado por el modo de IA actual o un ajuste de privacidad.", + "settings.openRouter.preferredModel": "Modelo preferido", + "settings.openRouter.resetCircuit": "Restablecer", + "settings.openRouter.resetCircuitAria": "Restablecer el cortacircuitos de OpenRouter", + "settings.openRouter.rpmLabel": "Solicitudes / min (últimos 60 s)", + "settings.openRouter.saveKey": "Guardar", + "settings.openRouter.testConnection": "Probar conexión", + "settings.openRouter.testConnectionFailed": "Error de conexión", + "settings.openRouter.testConnectionOk": "Conexión correcta", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Guía completa", "settings.overview.title": "Accesos rápidos", diff --git a/locales/fr/settings.json b/locales/fr/settings.json index 4aa263a4..d9fce3d1 100644 --- a/locales/fr/settings.json +++ b/locales/fr/settings.json @@ -202,24 +202,24 @@ "settings.ai.webllm.tabLeaderNote": "Un seul onglet du navigateur exécute l'inférence locale à la fois.", "settings.ai.webllm.vramLabel": "Niveau de VRAM", "settings.ai.webllmHint": "S'exécute entièrement dans votre navigateur via WebGPU (paquets optionnels). Téléchargements volumineux de modèles à la première utilisation ; utilisez Ollama sur ordinateur de bureau pour les modèles plus lourds.", - "settings.aiMode.activeLabel": "Active: {{mode}}", + "settings.aiMode.activeLabel": "Actif : {{mode}}", "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", - "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", + "settings.aiMode.cloudDesc": "Toutes les requêtes d'IA sont envoyées au fournisseur cloud (Gemini, OpenAI, etc.). Meilleure qualité ; nécessite une clé API et une connexion internet.", + "settings.aiMode.description": "Choisissez comment l'application traite les requêtes d'IA. Le mode Cloud utilise votre clé API pour une qualité optimale, le mode Local exécute tout sur votre appareil pour une confidentialité maximale, et le mode Hybride choisit automatiquement la meilleure option.", + "settings.aiMode.eco": "Éco", + "settings.aiMode.ecoDesc": "Mode économie d'énergie pour les appareils peu puissants ou mobiles. Utilise uniquement le petit modèle de texte 0,5B et des heuristiques à base de règles. Pas de cloud, pas de modèles lourds.", + "settings.aiMode.hybrid": "Hybride (intelligent)", + "settings.aiMode.hybridDesc": "Utilise automatiquement les modèles locaux lorsqu'ils sont préchargés, sinon bascule vers le cloud. Le meilleur des deux mondes.", "settings.aiMode.indicator.cloud": "Cloud", - "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", + "settings.aiMode.indicator.eco": "Éco", + "settings.aiMode.indicator.hybrid": "Hybride", "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter en pause (trop de limites de débit). Repli vers d'autres fournisseurs.", + "settings.aiMode.indicator.tooltip.cloud": "Mode Cloud — tous les appels d'IA vont à votre fournisseur cloud", + "settings.aiMode.indicator.tooltip.eco": "Mode Éco — le plus petit modèle local, pas de cloud, économe en énergie", + "settings.aiMode.indicator.tooltip.hybrid": "Mode Hybride — cloud d'abord, local en repli hors ligne", + "settings.aiMode.indicator.tooltip.local": "Mode Local — toute l'IA s'exécute sur votre appareil", + "settings.aiMode.indicatorAriaLabel": "Mode d'IA actif", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -228,8 +228,8 @@ "settings.aiMode.hint.cloudOffline": "Vous êtes hors ligne — le mode Cloud ne peut pas joindre le fournisseur d'IA. Reconnectez-vous ou passez en Local/Éco.", "settings.aiMode.hint.hybridOffline": "Vous êtes hors ligne — le mode Hybride utilisera le moteur local jusqu'à la reconnexion.", "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.localDesc": "Toute l'IA s'exécute sur votre appareil avec des modèles locaux. Aucune donnée ne quitte l'appareil. Fonctionne entièrement hors ligne une fois les modèles préchargés.", + "settings.aiMode.title": "Mode d'exécution de l'IA", "settings.apiKey.configured": "Clé API configurée", "settings.apiKey.encryptedNote": "Chiffrée et stockée dans IndexedDB", "settings.apiKey.errorEmpty": "Veuillez entrer une clé API", @@ -527,54 +527,54 @@ "settings.notifications.goalAchievements": "Objectifs atteints", "settings.notifications.title": "Paramètres de notification", "settings.notifications.writingReminders": "Rappels d'écriture", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "Clé API", + "settings.openRouter.apiKeyAriaLabel": "Clé API OpenRouter", + "settings.openRouter.apiKeyHint": "Stockée chiffrée sur cet appareil.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Disjoncteur :", + "settings.openRouter.circuitClosed": "Fermé (sain)", + "settings.openRouter.circuitOpen": "Ouvert (en pause 5 min)", + "settings.openRouter.clearKey": "Retirer", + "settings.openRouter.customModelAriaLabel": "Identifiant de modèle personnalisé", + "settings.openRouter.customModelLabel": "Modèle personnalisé…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Utilisez OpenRouter comme passerelle cloud unifiée. Les modèles de l'offre gratuite (marqués :free) ne nécessitent aucun crédit.", + "settings.openRouter.enabled": "Activer OpenRouter", + "settings.openRouter.enabledHint": "Lorsqu'il est activé, OpenRouter est privilégié pour les appels d'IA cloud, sauf si le mode actif interdit le cloud.", + "settings.openRouter.errors.generic": "Une erreur OpenRouter inattendue s'est produite", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (gratuit)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (gratuit)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (gratuit)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (gratuit)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (gratuit)", + "settings.openRouter.freeTierNote": "Modèles gratuits : 20 requêtes/min, 50 requêtes/jour sans crédits", + "settings.openRouter.getKeyLink": "Obtenez une clé API gratuite sur openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Veuillez saisir une clé API OpenRouter", + "settings.openRouter.keyError.invalid": "La clé API semble invalide", + "settings.openRouter.keyError.network": "Erreur réseau lors de la validation de la clé", + "settings.openRouter.keyError.saveFailed": "Échec de l'enregistrement de la clé API", + "settings.openRouter.keyStatus.removed": "Clé API supprimée", + "settings.openRouter.keyStatus.saved": "Clé API enregistrée", + "settings.openRouter.keyStatus.saving": "Enregistrement…", + "settings.openRouter.keyStatus.set": "Clé enregistrée — saisissez-en une nouvelle pour la remplacer", + "settings.openRouter.keyStatus.unset": "Aucune clé API enregistrée", + "settings.openRouter.modeWarning.local": "OpenRouter est désactivé tant que le mode d'IA est réglé sur local uniquement.", + "settings.openRouter.modeWarning.offline": "OpenRouter est en pause car l'appareil est hors ligne.", + "settings.openRouter.modelAriaLabel": "Modèle OpenRouter préféré", + "settings.openRouter.modelFetch.empty": "Aucun modèle trouvé", + "settings.openRouter.modelFetch.failed": "Impossible de charger le catalogue de modèles", + "settings.openRouter.modelFetch.loading": "Chargement du catalogue de modèles…", + "settings.openRouter.modelPlaceholder": "Sélectionner ou rechercher un modèle", + "settings.openRouter.paidModelNote": "Les modèles payants nécessitent des crédits sur votre compte OpenRouter.", + "settings.openRouter.policyBlocked": "OpenRouter est bloqué par le mode d'IA actuel ou un réglage de confidentialité.", + "settings.openRouter.preferredModel": "Modèle préféré", + "settings.openRouter.resetCircuit": "Réinitialiser", + "settings.openRouter.resetCircuitAria": "Réinitialiser le disjoncteur OpenRouter", + "settings.openRouter.rpmLabel": "Requêtes / min (60 dernières s)", + "settings.openRouter.saveKey": "Enregistrer", + "settings.openRouter.testConnection": "Tester la connexion", + "settings.openRouter.testConnectionFailed": "Échec de la connexion", + "settings.openRouter.testConnectionOk": "Connexion réussie", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Guide complet", "settings.overview.title": "Liens rapides", diff --git a/locales/it/settings.json b/locales/it/settings.json index b8a46a88..711638c3 100644 --- a/locales/it/settings.json +++ b/locales/it/settings.json @@ -202,24 +202,24 @@ "settings.ai.webllm.tabLeaderNote": "Solo una scheda del browser esegue l'inferenza locale alla volta.", "settings.ai.webllm.vramLabel": "Livello VRAM", "settings.ai.webllmHint": "Viene eseguito interamente nel tuo browser tramite WebGPU (pacchetti opzionali). Download di modelli di grandi dimensioni al primo utilizzo; usa Ollama su desktop per modelli più pesanti.", - "settings.aiMode.activeLabel": "Active: {{mode}}", + "settings.aiMode.activeLabel": "Attiva: {{mode}}", "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", + "settings.aiMode.cloudDesc": "Tutte le richieste IA vengono inviate al provider cloud (Gemini, OpenAI, ecc.). Migliore qualità; richiede una chiave API e una connessione a internet.", + "settings.aiMode.description": "Scegli come l'app elabora le richieste IA. La modalità Cloud usa la tua chiave API per la migliore qualità, la modalità Locale esegue tutto sul dispositivo per la massima privacy e la modalità Ibrida sceglie automaticamente l'opzione migliore.", "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", + "settings.aiMode.ecoDesc": "Modalità di risparmio energetico per dispositivi poco potenti o mobili. Usa solo il piccolo modello di testo da 0,5B ed euristiche basate su regole. Niente cloud, niente modelli pesanti.", + "settings.aiMode.hybrid": "Ibrida (intelligente)", + "settings.aiMode.hybridDesc": "Usa automaticamente i modelli locali quando precaricati, altrimenti ricorre al cloud. Il meglio di entrambi i mondi.", "settings.aiMode.indicator.cloud": "Cloud", "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", - "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.hybrid": "Ibrida", + "settings.aiMode.indicator.local": "Locale", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter in pausa (troppi limiti di frequenza). Ricorso ad altri provider.", + "settings.aiMode.indicator.tooltip.cloud": "Modalità Cloud — tutte le chiamate IA vanno al provider cloud", + "settings.aiMode.indicator.tooltip.eco": "Modalità Eco — il modello locale più piccolo, niente cloud, a risparmio energetico", + "settings.aiMode.indicator.tooltip.hybrid": "Modalità Ibrida — prima il cloud, locale come riserva offline", + "settings.aiMode.indicator.tooltip.local": "Modalità Locale — tutta l'IA viene eseguita sul dispositivo", + "settings.aiMode.indicatorAriaLabel": "Modalità IA attiva", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -227,9 +227,9 @@ "settings.aiMode.hint.webgpuMissing": "WebGPU non rilevato — i modelli sul dispositivo potrebbero essere lenti o ripiegare su un motore più leggero.", "settings.aiMode.hint.cloudOffline": "Sei offline — la modalità Cloud non può raggiungere il provider AI. Riconnettiti o passa a Locale/Eco.", "settings.aiMode.hint.hybridOffline": "Sei offline — la modalità Ibrida userà il motore locale finché non ti riconnetti.", - "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.local": "Locale", + "settings.aiMode.localDesc": "Tutta l'IA viene eseguita sul dispositivo con modelli locali. Nessun dato lascia il dispositivo. Funziona completamente offline una volta precaricati i modelli.", + "settings.aiMode.title": "Modalità di esecuzione dell'IA", "settings.apiKey.configured": "Chiave API configurata", "settings.apiKey.encryptedNote": "Crittografata e archiviata in IndexedDB", "settings.apiKey.errorEmpty": "Inserisci una chiave API", @@ -527,54 +527,54 @@ "settings.notifications.goalAchievements": "Obiettivi raggiunti", "settings.notifications.title": "Impostazioni notifiche", "settings.notifications.writingReminders": "Promemoria di scrittura", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "Chiave API", + "settings.openRouter.apiKeyAriaLabel": "Chiave API di OpenRouter", + "settings.openRouter.apiKeyHint": "Memorizzata cifrata su questo dispositivo.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Interruttore:", + "settings.openRouter.circuitClosed": "Chiuso (integro)", + "settings.openRouter.circuitOpen": "Aperto (in pausa 5 min)", + "settings.openRouter.clearKey": "Rimuovi", + "settings.openRouter.customModelAriaLabel": "Identificatore del modello personalizzato", + "settings.openRouter.customModelLabel": "Modello personalizzato…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Usa OpenRouter come gateway cloud unificato. I modelli del piano gratuito (contrassegnati con :free) non richiedono crediti.", + "settings.openRouter.enabled": "Abilita OpenRouter", + "settings.openRouter.enabledHint": "Se abilitato, OpenRouter è preferito per le chiamate IA cloud, a meno che la modalità attiva non vieti il cloud.", + "settings.openRouter.errors.generic": "Si è verificato un errore imprevisto di OpenRouter", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (gratis)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (gratis)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (gratis)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (gratis)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (gratis)", + "settings.openRouter.freeTierNote": "Modelli gratuiti: 20 richieste/min, 50 richieste/giorno senza crediti", + "settings.openRouter.getKeyLink": "Ottieni una chiave API gratuita su openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Inserisci una chiave API di OpenRouter", + "settings.openRouter.keyError.invalid": "La chiave API non sembra valida", + "settings.openRouter.keyError.network": "Errore di rete durante la convalida della chiave", + "settings.openRouter.keyError.saveFailed": "Impossibile salvare la chiave API", + "settings.openRouter.keyStatus.removed": "Chiave API rimossa", + "settings.openRouter.keyStatus.saved": "Chiave API salvata", + "settings.openRouter.keyStatus.saving": "Salvataggio…", + "settings.openRouter.keyStatus.set": "Chiave salvata — inseriscine una nuova per sostituirla", + "settings.openRouter.keyStatus.unset": "Nessuna chiave API salvata", + "settings.openRouter.modeWarning.local": "OpenRouter è disattivato finché la modalità IA è impostata su solo locale.", + "settings.openRouter.modeWarning.offline": "OpenRouter è in pausa perché il dispositivo è offline.", + "settings.openRouter.modelAriaLabel": "Modello OpenRouter preferito", + "settings.openRouter.modelFetch.empty": "Nessun modello trovato", + "settings.openRouter.modelFetch.failed": "Impossibile caricare il catalogo modelli", + "settings.openRouter.modelFetch.loading": "Caricamento del catalogo modelli…", + "settings.openRouter.modelPlaceholder": "Seleziona o cerca un modello", + "settings.openRouter.paidModelNote": "I modelli a pagamento richiedono crediti sul tuo account OpenRouter.", + "settings.openRouter.policyBlocked": "OpenRouter è bloccato dalla modalità IA attuale o da un'impostazione sulla privacy.", + "settings.openRouter.preferredModel": "Modello preferito", + "settings.openRouter.resetCircuit": "Reimposta", + "settings.openRouter.resetCircuitAria": "Reimposta l'interruttore di OpenRouter", + "settings.openRouter.rpmLabel": "Richieste / min (ultimi 60 s)", + "settings.openRouter.saveKey": "Salva", + "settings.openRouter.testConnection": "Prova connessione", + "settings.openRouter.testConnectionFailed": "Connessione non riuscita", + "settings.openRouter.testConnectionOk": "Connessione riuscita", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Guida completa", "settings.overview.title": "Collegamenti rapidi", diff --git a/locales/ja/settings.json b/locales/ja/settings.json index fc041e21..ca2c5c85 100644 --- a/locales/ja/settings.json +++ b/locales/ja/settings.json @@ -202,24 +202,24 @@ "settings.ai.webllm.tabLeaderNote": "ローカル推論を実行できるのは、一度に 1 つのブラウザ タブだけです。", "settings.ai.webllm.vramLabel": "VRAM層", "settings.ai.webllmHint": "WebGPU (オプションのパッケージ) を介してブラウザ内で完全に実行されます。初回使用時に大規模なモデルをダウンロードします。重いモデルの場合は、デスクトップで Ollama を使用してください。", - "settings.aiMode.activeLabel": "Active: {{mode}}", - "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", - "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", - "settings.aiMode.indicator.cloud": "Cloud", - "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", - "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.activeLabel": "有効: {{mode}}", + "settings.aiMode.cloud": "クラウド", + "settings.aiMode.cloudDesc": "すべてのAIリクエストはクラウドプロバイダー(Gemini、OpenAIなど)に送信されます。最高品質ですが、APIキーとインターネット接続が必要です。", + "settings.aiMode.description": "アプリがAIリクエストを処理する方法を選択します。クラウドモードはAPIキーを使って最高品質を提供し、ローカルモードはすべてをデバイス上で実行して最大限のプライバシーを確保し、ハイブリッドモードは自動的に最適な選択を行います。", + "settings.aiMode.eco": "エコ", + "settings.aiMode.ecoDesc": "低スペックまたはモバイル端末向けの省電力モード。小さな0.5Bテキストモデルとルールベースのヒューリスティックのみを使用します。クラウドや重いモデルは使いません。", + "settings.aiMode.hybrid": "ハイブリッド(スマート)", + "settings.aiMode.hybridDesc": "プリロード済みの場合はローカルモデルを自動使用し、そうでない場合はクラウドにフォールバックします。両方の長所を兼ね備えています。", + "settings.aiMode.indicator.cloud": "クラウド", + "settings.aiMode.indicator.eco": "エコ", + "settings.aiMode.indicator.hybrid": "ハイブリッド", + "settings.aiMode.indicator.local": "ローカル", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouterは一時停止中です(レート制限が多すぎます)。他のプロバイダーにフォールバックします。", + "settings.aiMode.indicator.tooltip.cloud": "クラウドモード — すべてのAI呼び出しはクラウドプロバイダーに送られます", + "settings.aiMode.indicator.tooltip.eco": "エコモード — 最小のローカルモデル、クラウドなし、省電力", + "settings.aiMode.indicator.tooltip.hybrid": "ハイブリッドモード — まずクラウド、オフライン時はローカルにフォールバック", + "settings.aiMode.indicator.tooltip.local": "ローカルモード — すべてのAIがデバイス上で実行されます", + "settings.aiMode.indicatorAriaLabel": "有効なAIモード", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -227,9 +227,9 @@ "settings.aiMode.hint.webgpuMissing": "WebGPU が検出されません — デバイス上のモデルは遅くなるか、より小さいエンジンにフォールバックする場合があります。", "settings.aiMode.hint.cloudOffline": "オフラインです — クラウドモードは AI プロバイダーに接続できません。再接続するか、ローカル/エコに切り替えてください。", "settings.aiMode.hint.hybridOffline": "オフラインです — ハイブリッドモードは再接続するまでデバイス上のフォールバックを使用します。", - "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.local": "ローカル", + "settings.aiMode.localDesc": "すべてのAIがローカルモデルでデバイス上で実行されます。データはデバイスから出ません。モデルをプリロードすれば完全にオフラインで動作します。", + "settings.aiMode.title": "AI実行モード", "settings.apiKey.configured": "API キーが設定されました", "settings.apiKey.encryptedNote": "暗号化されて IndexedDB に保存される", "settings.apiKey.errorEmpty": "APIキーを入力してください", @@ -527,54 +527,54 @@ "settings.notifications.goalAchievements": "目標の達成状況", "settings.notifications.title": "Notification 設定", "settings.notifications.writingReminders": "リマインダーを書く", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "APIキー", + "settings.openRouter.apiKeyAriaLabel": "OpenRouter APIキー", + "settings.openRouter.apiKeyHint": "このデバイスに暗号化して保存されます。", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "サーキットブレーカー:", + "settings.openRouter.circuitClosed": "クローズ(正常)", + "settings.openRouter.circuitOpen": "オープン(5分間停止)", + "settings.openRouter.clearKey": "削除", + "settings.openRouter.customModelAriaLabel": "カスタムモデル識別子", + "settings.openRouter.customModelLabel": "カスタムモデル…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "OpenRouterを統合クラウドゲートウェイとして使用します。無料枠のモデル(:free表示)はクレジット不要です。", + "settings.openRouter.enabled": "OpenRouterを有効化", + "settings.openRouter.enabledHint": "有効にすると、アクティブなモードがクラウドを禁止しない限り、クラウドAI呼び出しにOpenRouterが優先されます。", + "settings.openRouter.errors.generic": "予期しないOpenRouterエラーが発生しました", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (無料)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (無料)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (無料)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (無料)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (無料)", + "settings.openRouter.freeTierNote": "無料枠モデル: クレジットなしで20リクエスト/分、50リクエスト/日", + "settings.openRouter.getKeyLink": "openrouter.ai/keys で無料のAPIキーを取得", + "settings.openRouter.keyError.empty": "OpenRouter APIキーを入力してください", + "settings.openRouter.keyError.invalid": "APIキーが無効なようです", + "settings.openRouter.keyError.network": "キーの検証中にネットワークエラーが発生しました", + "settings.openRouter.keyError.saveFailed": "APIキーの保存に失敗しました", + "settings.openRouter.keyStatus.removed": "APIキーを削除しました", + "settings.openRouter.keyStatus.saved": "APIキーを保存しました", + "settings.openRouter.keyStatus.saving": "保存中…", + "settings.openRouter.keyStatus.set": "キーを保存しました — 置き換えるには新しいキーを入力してください", + "settings.openRouter.keyStatus.unset": "APIキーが保存されていません", + "settings.openRouter.modeWarning.local": "AIモードがローカル専用の間、OpenRouterは無効です。", + "settings.openRouter.modeWarning.offline": "デバイスがオフラインのため、OpenRouterは一時停止しています。", + "settings.openRouter.modelAriaLabel": "優先するOpenRouterモデル", + "settings.openRouter.modelFetch.empty": "モデルが見つかりません", + "settings.openRouter.modelFetch.failed": "モデルカタログを読み込めませんでした", + "settings.openRouter.modelFetch.loading": "モデルカタログを読み込み中…", + "settings.openRouter.modelPlaceholder": "モデルを選択または検索", + "settings.openRouter.paidModelNote": "有料モデルにはOpenRouterアカウントのクレジットが必要です。", + "settings.openRouter.policyBlocked": "OpenRouterは現在のAIモードまたはプライバシー設定によりブロックされています。", + "settings.openRouter.preferredModel": "優先モデル", + "settings.openRouter.resetCircuit": "リセット", + "settings.openRouter.resetCircuitAria": "OpenRouterサーキットブレーカーをリセット", + "settings.openRouter.rpmLabel": "リクエスト/分(直近60秒)", + "settings.openRouter.saveKey": "保存", + "settings.openRouter.testConnection": "接続をテスト", + "settings.openRouter.testConnectionFailed": "接続に失敗しました", + "settings.openRouter.testConnectionOk": "接続に成功しました", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "完全な設定ガイド", "settings.overview.title": "クイックリンク", diff --git a/locales/pt/settings.json b/locales/pt/settings.json index 94ce3df0..49de8f9c 100644 --- a/locales/pt/settings.json +++ b/locales/pt/settings.json @@ -202,24 +202,24 @@ "settings.ai.webllm.tabLeaderNote": "Apenas uma guia do navegador executa inferência local por vez.", "settings.ai.webllm.vramLabel": "Camada VRAM", "settings.ai.webllmHint": "Roda inteiramente no seu navegador via WebGPU (pacotes opcionais). Downloads de modelos grandes na primeira utilização; use Ollama no desktop para modelos mais pesados.", - "settings.aiMode.activeLabel": "Active: {{mode}}", + "settings.aiMode.activeLabel": "Ativo: {{mode}}", "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", + "settings.aiMode.cloudDesc": "Todos os pedidos de IA são enviados ao fornecedor na cloud (Gemini, OpenAI, etc.). Melhor qualidade; requer uma chave API e ligação à internet.", + "settings.aiMode.description": "Escolhe como a app processa os pedidos de IA. O modo Cloud usa a tua chave API para a melhor qualidade, o modo Local executa tudo no teu dispositivo para máxima privacidade, e o modo Híbrido escolhe automaticamente a melhor opção.", "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", + "settings.aiMode.ecoDesc": "Modo de poupança de energia para dispositivos fracos ou móveis. Usa apenas o pequeno modelo de texto de 0,5B e heurísticas baseadas em regras. Sem cloud, sem modelos pesados.", + "settings.aiMode.hybrid": "Híbrido (inteligente)", + "settings.aiMode.hybridDesc": "Usa automaticamente modelos locais quando pré-carregados; caso contrário, recorre à cloud. O melhor dos dois mundos.", "settings.aiMode.indicator.cloud": "Cloud", "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", + "settings.aiMode.indicator.hybrid": "Híbrido", "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter em pausa (demasiados limites de taxa). A recorrer a outros fornecedores.", + "settings.aiMode.indicator.tooltip.cloud": "Modo Cloud — todas as chamadas de IA vão para o teu fornecedor na cloud", + "settings.aiMode.indicator.tooltip.eco": "Modo Eco — o modelo local mais pequeno, sem cloud, poupa energia", + "settings.aiMode.indicator.tooltip.hybrid": "Modo Híbrido — cloud primeiro, local como alternativa offline", + "settings.aiMode.indicator.tooltip.local": "Modo Local — toda a IA é executada no teu dispositivo", + "settings.aiMode.indicatorAriaLabel": "Modo de IA ativo", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -228,8 +228,8 @@ "settings.aiMode.hint.cloudOffline": "Está offline — o modo Cloud não consegue aceder ao fornecedor de IA. Reconecte-se ou mude para Local/Eco.", "settings.aiMode.hint.hybridOffline": "Está offline — o modo Híbrido usará o motor local até voltar a ligar-se.", "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.localDesc": "Toda a IA é executada no teu dispositivo com modelos locais. Nenhum dado sai do dispositivo. Funciona totalmente offline depois de os modelos serem pré-carregados.", + "settings.aiMode.title": "Modo de execução da IA", "settings.apiKey.configured": "Chave de API configurada", "settings.apiKey.encryptedNote": "Criptografado e armazenado em IndexedDB", "settings.apiKey.errorEmpty": "Insira uma chave de API", @@ -527,54 +527,54 @@ "settings.notifications.goalAchievements": "Conquistas de metas", "settings.notifications.title": "Notification Configurações", "settings.notifications.writingReminders": "Escrevendo lembretes", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "Chave API", + "settings.openRouter.apiKeyAriaLabel": "Chave API do OpenRouter", + "settings.openRouter.apiKeyHint": "Guardada cifrada neste dispositivo.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Disjuntor:", + "settings.openRouter.circuitClosed": "Fechado (saudável)", + "settings.openRouter.circuitOpen": "Aberto (em pausa 5 min)", + "settings.openRouter.clearKey": "Remover", + "settings.openRouter.customModelAriaLabel": "Identificador de modelo personalizado", + "settings.openRouter.customModelLabel": "Modelo personalizado…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Usa o OpenRouter como gateway unificado na cloud. Os modelos do nível gratuito (marcados com :free) não precisam de créditos.", + "settings.openRouter.enabled": "Ativar OpenRouter", + "settings.openRouter.enabledHint": "Quando ativado, o OpenRouter é preferido para chamadas de IA na cloud, exceto se o modo ativo proibir a cloud.", + "settings.openRouter.errors.generic": "Ocorreu um erro inesperado do OpenRouter", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (grátis)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (grátis)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (grátis)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (grátis)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (grátis)", + "settings.openRouter.freeTierNote": "Modelos gratuitos: 20 pedidos/min, 50 pedidos/dia sem créditos", + "settings.openRouter.getKeyLink": "Obtém uma chave API gratuita em openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Introduz uma chave API do OpenRouter", + "settings.openRouter.keyError.invalid": "A chave API parece ser inválida", + "settings.openRouter.keyError.network": "Erro de rede ao validar a chave", + "settings.openRouter.keyError.saveFailed": "Falha ao guardar a chave API", + "settings.openRouter.keyStatus.removed": "Chave API removida", + "settings.openRouter.keyStatus.saved": "Chave API guardada", + "settings.openRouter.keyStatus.saving": "A guardar…", + "settings.openRouter.keyStatus.set": "Chave guardada — introduz uma nova para a substituir", + "settings.openRouter.keyStatus.unset": "Nenhuma chave API guardada", + "settings.openRouter.modeWarning.local": "O OpenRouter está desativado enquanto o modo de IA estiver definido como apenas local.", + "settings.openRouter.modeWarning.offline": "O OpenRouter está em pausa porque o dispositivo está offline.", + "settings.openRouter.modelAriaLabel": "Modelo OpenRouter preferido", + "settings.openRouter.modelFetch.empty": "Nenhum modelo encontrado", + "settings.openRouter.modelFetch.failed": "Não foi possível carregar o catálogo de modelos", + "settings.openRouter.modelFetch.loading": "A carregar o catálogo de modelos…", + "settings.openRouter.modelPlaceholder": "Seleciona ou procura um modelo", + "settings.openRouter.paidModelNote": "Os modelos pagos requerem créditos na tua conta OpenRouter.", + "settings.openRouter.policyBlocked": "O OpenRouter está bloqueado pelo modo de IA atual ou por uma definição de privacidade.", + "settings.openRouter.preferredModel": "Modelo preferido", + "settings.openRouter.resetCircuit": "Repor", + "settings.openRouter.resetCircuitAria": "Repor o disjuntor do OpenRouter", + "settings.openRouter.rpmLabel": "Pedidos / min (últimos 60 s)", + "settings.openRouter.saveKey": "Guardar", + "settings.openRouter.testConnection": "Testar ligação", + "settings.openRouter.testConnectionFailed": "Falha na ligação", + "settings.openRouter.testConnectionOk": "Ligação bem-sucedida", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Guia completo de configurações", "settings.overview.title": "Links rápidos", diff --git a/locales/zh/settings.json b/locales/zh/settings.json index b6f4b142..de66f83c 100644 --- a/locales/zh/settings.json +++ b/locales/zh/settings.json @@ -202,24 +202,24 @@ "settings.ai.webllm.tabLeaderNote": "一次只有一个浏览器选项卡运行本地推理。", "settings.ai.webllm.vramLabel": "显存层", "settings.ai.webllmHint": "通过 WebGPU(可选包)完全在浏览器中运行。首次使用时下载大型模型;对于较重的型号,请在桌面上使用 Ollama。", - "settings.aiMode.activeLabel": "Active: {{mode}}", - "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", - "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", - "settings.aiMode.indicator.cloud": "Cloud", - "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", - "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.activeLabel": "当前: {{mode}}", + "settings.aiMode.cloud": "云端", + "settings.aiMode.cloudDesc": "所有 AI 请求都发送到云端提供商(Gemini、OpenAI 等)。质量最佳,但需要 API 密钥和网络连接。", + "settings.aiMode.description": "选择应用处理 AI 请求的方式。云端模式使用你的 API 密钥以获得最佳质量,本地模式在你的设备上运行一切以实现最大隐私,混合模式则自动选择最佳选项。", + "settings.aiMode.eco": "节能", + "settings.aiMode.ecoDesc": "面向低端或移动设备的省电模式。仅使用小型 0.5B 文本模型和基于规则的启发式。无云端,无重型模型。", + "settings.aiMode.hybrid": "混合(智能)", + "settings.aiMode.hybridDesc": "在预加载时自动使用本地模型,否则回退到云端。两全其美。", + "settings.aiMode.indicator.cloud": "云端", + "settings.aiMode.indicator.eco": "节能", + "settings.aiMode.indicator.hybrid": "混合", + "settings.aiMode.indicator.local": "本地", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter 已暂停(速率限制过多)。正在回退到其他提供商。", + "settings.aiMode.indicator.tooltip.cloud": "云端模式 — 所有 AI 调用都发送到你的云端提供商", + "settings.aiMode.indicator.tooltip.eco": "节能模式 — 最小的本地模型,无云端,省电", + "settings.aiMode.indicator.tooltip.hybrid": "混合模式 — 优先云端,离线时回退到本地", + "settings.aiMode.indicator.tooltip.local": "本地模式 — 所有 AI 都在你的设备上运行", + "settings.aiMode.indicatorAriaLabel": "当前 AI 模式", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -227,9 +227,9 @@ "settings.aiMode.hint.webgpuMissing": "未检测到 WebGPU — 设备上的模型可能运行缓慢或回退到更小的引擎。", "settings.aiMode.hint.cloudOffline": "您已离线 — 云端模式无法连接 AI 提供商。请重新连接或切换到本地/节能模式。", "settings.aiMode.hint.hybridOffline": "您已离线 — 混合模式将使用设备本地引擎,直到您重新连接。", - "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.local": "本地", + "settings.aiMode.localDesc": "所有 AI 都在你的设备上使用本地模型运行。没有数据离开设备。模型预加载后可完全离线工作。", + "settings.aiMode.title": "AI 执行模式", "settings.apiKey.configured": "API 密钥已配置", "settings.apiKey.encryptedNote": "加密并存储在IndexedDB中", "settings.apiKey.errorEmpty": "请输入 API 密钥", @@ -527,54 +527,54 @@ "settings.notifications.goalAchievements": "目标成就", "settings.notifications.title": "Notification 设置", "settings.notifications.writingReminders": "写作提醒", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "API 密钥", + "settings.openRouter.apiKeyAriaLabel": "OpenRouter API 密钥", + "settings.openRouter.apiKeyHint": "在本设备上加密存储。", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "断路器:", + "settings.openRouter.circuitClosed": "关闭(正常)", + "settings.openRouter.circuitOpen": "打开(暂停 5 分钟)", + "settings.openRouter.clearKey": "移除", + "settings.openRouter.customModelAriaLabel": "自定义模型标识符", + "settings.openRouter.customModelLabel": "自定义模型…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "将 OpenRouter 用作统一的云端网关。免费层模型(标有 :free)无需付费额度。", + "settings.openRouter.enabled": "启用 OpenRouter", + "settings.openRouter.enabledHint": "启用后,除非当前模式禁止云端,否则云端 AI 调用将优先使用 OpenRouter。", + "settings.openRouter.errors.generic": "发生了意外的 OpenRouter 错误", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (免费)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (免费)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (免费)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (免费)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (免费)", + "settings.openRouter.freeTierNote": "免费层模型:无需额度,20 次请求/分钟,50 次请求/天", + "settings.openRouter.getKeyLink": "在 openrouter.ai/keys 获取免费 API 密钥", + "settings.openRouter.keyError.empty": "请输入 OpenRouter API 密钥", + "settings.openRouter.keyError.invalid": "API 密钥似乎无效", + "settings.openRouter.keyError.network": "验证密钥时发生网络错误", + "settings.openRouter.keyError.saveFailed": "保存 API 密钥失败", + "settings.openRouter.keyStatus.removed": "API 密钥已移除", + "settings.openRouter.keyStatus.saved": "API 密钥已保存", + "settings.openRouter.keyStatus.saving": "正在保存…", + "settings.openRouter.keyStatus.set": "密钥已保存 — 输入新密钥以替换", + "settings.openRouter.keyStatus.unset": "未保存 API 密钥", + "settings.openRouter.modeWarning.local": "当 AI 模式设为仅本地时,OpenRouter 处于禁用状态。", + "settings.openRouter.modeWarning.offline": "由于设备离线,OpenRouter 已暂停。", + "settings.openRouter.modelAriaLabel": "首选 OpenRouter 模型", + "settings.openRouter.modelFetch.empty": "未找到模型", + "settings.openRouter.modelFetch.failed": "无法加载模型目录", + "settings.openRouter.modelFetch.loading": "正在加载模型目录…", + "settings.openRouter.modelPlaceholder": "选择或搜索模型", + "settings.openRouter.paidModelNote": "付费模型需要你的 OpenRouter 账户额度。", + "settings.openRouter.policyBlocked": "OpenRouter 已被当前 AI 模式或隐私设置阻止。", + "settings.openRouter.preferredModel": "首选模型", + "settings.openRouter.resetCircuit": "重置", + "settings.openRouter.resetCircuitAria": "重置 OpenRouter 断路器", + "settings.openRouter.rpmLabel": "请求 / 分钟(最近 60 秒)", + "settings.openRouter.saveKey": "保存", + "settings.openRouter.testConnection": "测试连接", + "settings.openRouter.testConnectionFailed": "连接失败", + "settings.openRouter.testConnectionOk": "连接成功", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "完整设置指南", "settings.overview.title": "快速链接", diff --git a/public/locales/de/bundle.json b/public/locales/de/bundle.json index 7e40bbaa..28c3645f 100644 --- a/public/locales/de/bundle.json +++ b/public/locales/de/bundle.json @@ -1662,24 +1662,24 @@ "settings.ai.webllm.tabLeaderNote": "Nur ein Browser-Tab führt lokale Inferenz gleichzeitig durch.", "settings.ai.webllm.vramLabel": "VRAM-Kategorie", "settings.ai.webllmHint": "Läuft vollständig im Browser via WebGPU (optionale Pakete). Beim ersten Start werden Modelle heruntergeladen; für größere Modelle empfiehlt sich Ollama in der Desktop-App.", - "settings.aiMode.activeLabel": "Active: {{mode}}", + "settings.aiMode.activeLabel": "Aktiv: {{mode}}", "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", + "settings.aiMode.cloudDesc": "Alle KI-Anfragen gehen an den Cloud-Anbieter (Gemini, OpenAI usw.). Beste Qualität, benötigt einen API-Schlüssel und Internet.", + "settings.aiMode.description": "Lege fest, wie die App KI-Anfragen verarbeitet. Der Cloud-Modus nutzt deinen API-Schlüssel für beste Qualität, der Lokal-Modus führt alles auf deinem Gerät aus (maximale Privatsphäre), und der Hybrid-Modus wählt automatisch die beste Option.", "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", + "settings.aiMode.ecoDesc": "Energiesparmodus für schwache oder mobile Geräte. Nutzt nur das kleine 0,5B-Textmodell und regelbasierte Heuristiken. Keine Cloud, keine schweren Modelle.", "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", + "settings.aiMode.hybridDesc": "Nutzt automatisch lokale Modelle, wenn vorgeladen, sonst Rückgriff auf die Cloud. Das Beste aus beiden Welten.", "settings.aiMode.indicator.cloud": "Cloud", "settings.aiMode.indicator.eco": "Eco", "settings.aiMode.indicator.hybrid": "Hybrid", - "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.local": "Lokal", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter pausiert (zu viele Rate-Limits). Rückgriff auf andere Anbieter.", + "settings.aiMode.indicator.tooltip.cloud": "Cloud-Modus – alle KI-Aufrufe gehen an deinen Cloud-Anbieter", + "settings.aiMode.indicator.tooltip.eco": "Eco-Modus – kleinstes lokales Modell, keine Cloud, energiesparend", + "settings.aiMode.indicator.tooltip.hybrid": "Hybrid-Modus – Cloud zuerst, lokal als Offline-Rückfall", + "settings.aiMode.indicator.tooltip.local": "Lokal-Modus – die gesamte KI läuft auf deinem Gerät", + "settings.aiMode.indicatorAriaLabel": "Aktiver KI-Modus", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -1687,9 +1687,9 @@ "settings.aiMode.hint.webgpuMissing": "WebGPU nicht erkannt — Modelle auf dem Gerät laufen evtl. langsam oder weichen auf eine kleinere Engine aus.", "settings.aiMode.hint.cloudOffline": "Du bist offline — im Cloud-Modus ist der KI-Anbieter nicht erreichbar. Verbinde dich neu oder wechsle zu Lokal/Eco.", "settings.aiMode.hint.hybridOffline": "Du bist offline — der Hybrid-Modus nutzt das Gerät-Fallback, bis du wieder online bist.", - "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.local": "Lokal", + "settings.aiMode.localDesc": "Die gesamte KI läuft auf deinem Gerät mit lokalen Modellen. Keine Daten verlassen das Gerät. Funktioniert nach dem Vorladen komplett offline.", + "settings.aiMode.title": "KI-Ausführungsmodus", "settings.apiKey.configured": "API-Schlüssel konfiguriert", "settings.apiKey.encryptedNote": "Verschlüsselt in IndexedDB gespeichert", "settings.apiKey.errorEmpty": "Bitte geben Sie einen API-Schlüssel ein", @@ -1987,54 +1987,54 @@ "settings.notifications.goalAchievements": "Ziel-Erreichungen", "settings.notifications.title": "Benachrichtigungseinstellungen", "settings.notifications.writingReminders": "Schreib-Erinnerungen", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "API-Schlüssel", + "settings.openRouter.apiKeyAriaLabel": "OpenRouter-API-Schlüssel", + "settings.openRouter.apiKeyHint": "Verschlüsselt auf diesem Gerät gespeichert.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Schutzschalter:", + "settings.openRouter.circuitClosed": "Geschlossen (gesund)", + "settings.openRouter.circuitOpen": "Offen (5 Min pausiert)", + "settings.openRouter.clearKey": "Entfernen", + "settings.openRouter.customModelAriaLabel": "Eigene Modellkennung", + "settings.openRouter.customModelLabel": "Eigenes Modell …", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Nutze OpenRouter als einheitliches Cloud-Gateway. Free-Tier-Modelle (mit :free markiert) benötigen kein Guthaben.", + "settings.openRouter.enabled": "OpenRouter aktivieren", + "settings.openRouter.enabledHint": "Wenn aktiviert, wird OpenRouter für Cloud-KI-Aufrufe bevorzugt, sofern der aktive Modus Cloud nicht verbietet.", + "settings.openRouter.errors.generic": "Ein unerwarteter OpenRouter-Fehler ist aufgetreten", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (gratis)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (gratis)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (gratis)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (gratis)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (gratis)", + "settings.openRouter.freeTierNote": "Free-Tier-Modelle: 20 Anfragen/Min, 50 Anfragen/Tag ohne Guthaben", + "settings.openRouter.getKeyLink": "Hol dir einen kostenlosen API-Schlüssel unter openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Bitte gib einen OpenRouter-API-Schlüssel ein", + "settings.openRouter.keyError.invalid": "Der API-Schlüssel scheint ungültig zu sein", + "settings.openRouter.keyError.network": "Netzwerkfehler bei der Schlüsselprüfung", + "settings.openRouter.keyError.saveFailed": "Speichern des API-Schlüssels fehlgeschlagen", + "settings.openRouter.keyStatus.removed": "API-Schlüssel entfernt", + "settings.openRouter.keyStatus.saved": "API-Schlüssel gespeichert", + "settings.openRouter.keyStatus.saving": "Wird gespeichert …", + "settings.openRouter.keyStatus.set": "Schlüssel gespeichert – gib einen neuen ein, um ihn zu ersetzen", + "settings.openRouter.keyStatus.unset": "Kein API-Schlüssel gespeichert", + "settings.openRouter.modeWarning.local": "OpenRouter ist deaktiviert, solange der KI-Modus auf „nur lokal“ steht.", + "settings.openRouter.modeWarning.offline": "OpenRouter ist pausiert, weil das Gerät offline ist.", + "settings.openRouter.modelAriaLabel": "Bevorzugtes OpenRouter-Modell", + "settings.openRouter.modelFetch.empty": "Keine Modelle gefunden", + "settings.openRouter.modelFetch.failed": "Modellkatalog konnte nicht geladen werden", + "settings.openRouter.modelFetch.loading": "Modellkatalog wird geladen …", + "settings.openRouter.modelPlaceholder": "Modell auswählen oder suchen", + "settings.openRouter.paidModelNote": "Kostenpflichtige Modelle benötigen Guthaben auf deinem OpenRouter-Konto.", + "settings.openRouter.policyBlocked": "OpenRouter ist durch den aktuellen KI-Modus oder eine Datenschutzeinstellung blockiert.", + "settings.openRouter.preferredModel": "Bevorzugtes Modell", + "settings.openRouter.resetCircuit": "Zurücksetzen", + "settings.openRouter.resetCircuitAria": "OpenRouter-Schutzschalter zurücksetzen", + "settings.openRouter.rpmLabel": "Anfragen / Min (letzte 60 s)", + "settings.openRouter.saveKey": "Speichern", + "settings.openRouter.testConnection": "Verbindung testen", + "settings.openRouter.testConnectionFailed": "Verbindung fehlgeschlagen", + "settings.openRouter.testConnectionOk": "Verbindung erfolgreich", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Vollständiger Leitfaden", "settings.overview.title": "Schnellzugriff", diff --git a/public/locales/el/bundle.json b/public/locales/el/bundle.json index 395b882b..04ce80da 100644 --- a/public/locales/el/bundle.json +++ b/public/locales/el/bundle.json @@ -1662,24 +1662,24 @@ "settings.ai.webllm.tabLeaderNote": "Μόνο μία καρτέλα του προγράμματος περιήγησης εκτελεί τοπικά συμπεράσματα κάθε φορά.", "settings.ai.webllm.vramLabel": "Επίπεδο VRAM", "settings.ai.webllmHint": "Εκτελείται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας μέσω WebGPU (προαιρετικά πακέτα). Μεγάλες λήψεις μοντέλων κατά την πρώτη χρήση. χρησιμοποιήστε το Olama σε επιτραπέζιους υπολογιστές για βαρύτερα μοντέλα.", - "settings.aiMode.activeLabel": "Active: {{mode}}", + "settings.aiMode.activeLabel": "Ενεργό: {{mode}}", "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", + "settings.aiMode.cloudDesc": "Όλα τα αιτήματα AI αποστέλλονται στον πάροχο cloud (Gemini, OpenAI κ.λπ.). Βέλτιστη ποιότητα· απαιτεί κλειδί API και σύνδεση στο διαδίκτυο.", + "settings.aiMode.description": "Επίλεξε πώς η εφαρμογή επεξεργάζεται τα αιτήματα AI. Η λειτουργία Cloud χρησιμοποιεί το κλειδί API σου για βέλτιστη ποιότητα, η λειτουργία Local εκτελεί τα πάντα στη συσκευή σου για μέγιστη ιδιωτικότητα, και η Υβριδική λειτουργία επιλέγει αυτόματα την καλύτερη επιλογή.", "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", + "settings.aiMode.ecoDesc": "Λειτουργία εξοικονόμησης ενέργειας για συσκευές χαμηλών δυνατοτήτων ή κινητά. Χρησιμοποιεί μόνο το μικρό μοντέλο κειμένου 0,5B και ευρετικές βάσει κανόνων. Χωρίς cloud, χωρίς βαριά μοντέλα.", + "settings.aiMode.hybrid": "Υβριδική (έξυπνη)", + "settings.aiMode.hybridDesc": "Χρησιμοποιεί αυτόματα τοπικά μοντέλα όταν είναι προφορτωμένα, αλλιώς καταφεύγει στο cloud. Ό,τι καλύτερο και από τους δύο κόσμους.", "settings.aiMode.indicator.cloud": "Cloud", "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", - "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.hybrid": "Υβριδική", + "settings.aiMode.indicator.local": "Τοπικά", + "settings.aiMode.indicator.orCircuitOpen": "Το OpenRouter τέθηκε σε παύση (υπερβολικά όρια ρυθμού). Καταφυγή σε άλλους παρόχους.", + "settings.aiMode.indicator.tooltip.cloud": "Λειτουργία Cloud — όλες οι κλήσεις AI πηγαίνουν στον πάροχο cloud σου", + "settings.aiMode.indicator.tooltip.eco": "Λειτουργία Eco — το μικρότερο τοπικό μοντέλο, χωρίς cloud, εξοικονόμηση ενέργειας", + "settings.aiMode.indicator.tooltip.hybrid": "Υβριδική λειτουργία — πρώτα cloud, τοπικά ως εφεδρεία εκτός σύνδεσης", + "settings.aiMode.indicator.tooltip.local": "Τοπική λειτουργία — όλο το AI εκτελείται στη συσκευή σου", + "settings.aiMode.indicatorAriaLabel": "Ενεργή λειτουργία AI", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -1687,9 +1687,9 @@ "settings.aiMode.hint.webgpuMissing": "Δεν εντοπίστηκε WebGPU — τα τοπικά μοντέλα μπορεί να είναι αργά ή να επιστρέψουν σε μικρότερη μηχανή.", "settings.aiMode.hint.cloudOffline": "Είστε εκτός σύνδεσης — η λειτουργία Cloud δεν μπορεί να φτάσει τον πάροχο AI. Επανασυνδεθείτε ή αλλάξτε σε Local/Eco.", "settings.aiMode.hint.hybridOffline": "Είστε εκτός σύνδεσης — η υβριδική λειτουργία θα χρησιμοποιήσει την τοπική μηχανή μέχρι να επανασυνδεθείτε.", - "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.local": "Τοπικά", + "settings.aiMode.localDesc": "Όλο το AI εκτελείται στη συσκευή σου με τοπικά μοντέλα. Κανένα δεδομένο δεν φεύγει από τη συσκευή. Λειτουργεί πλήρως εκτός σύνδεσης μόλις προφορτωθούν τα μοντέλα.", + "settings.aiMode.title": "Λειτουργία εκτέλεσης AI", "settings.apiKey.configured": "Ρυθμίστηκε το κλειδί API", "settings.apiKey.encryptedNote": "Κρυπτογραφημένο και αποθηκευμένο στο IndexedDB", "settings.apiKey.errorEmpty": "Εισαγάγετε ένα κλειδί API", @@ -1987,54 +1987,54 @@ "settings.notifications.goalAchievements": "Επιτεύγματα Στόχων", "settings.notifications.title": "Notification Ρυθμίσεις", "settings.notifications.writingReminders": "Γράφοντας υπενθυμίσεις", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "Κλειδί API", + "settings.openRouter.apiKeyAriaLabel": "Κλειδί API του OpenRouter", + "settings.openRouter.apiKeyHint": "Αποθηκεύεται κρυπτογραφημένο σε αυτή τη συσκευή.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Διακόπτης προστασίας:", + "settings.openRouter.circuitClosed": "Κλειστός (υγιής)", + "settings.openRouter.circuitOpen": "Ανοιχτός (παύση 5 λεπτά)", + "settings.openRouter.clearKey": "Αφαίρεση", + "settings.openRouter.customModelAriaLabel": "Αναγνωριστικό προσαρμοσμένου μοντέλου", + "settings.openRouter.customModelLabel": "Προσαρμοσμένο μοντέλο…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Χρησιμοποίησε το OpenRouter ως ενοποιημένη πύλη cloud. Τα δωρεάν μοντέλα (με σήμανση :free) δεν χρειάζονται πιστώσεις.", + "settings.openRouter.enabled": "Ενεργοποίηση OpenRouter", + "settings.openRouter.enabledHint": "Όταν είναι ενεργό, το OpenRouter προτιμάται για κλήσεις AI cloud, εκτός αν η ενεργή λειτουργία απαγορεύει το cloud.", + "settings.openRouter.errors.generic": "Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα OpenRouter", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (δωρεάν)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (δωρεάν)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (δωρεάν)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (δωρεάν)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (δωρεάν)", + "settings.openRouter.freeTierNote": "Δωρεάν μοντέλα: 20 αιτήματα/λεπτό, 50 αιτήματα/ημέρα χωρίς πιστώσεις", + "settings.openRouter.getKeyLink": "Απόκτησε ένα δωρεάν κλειδί API στο openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Εισήγαγε ένα κλειδί API του OpenRouter", + "settings.openRouter.keyError.invalid": "Το κλειδί API φαίνεται μη έγκυρο", + "settings.openRouter.keyError.network": "Σφάλμα δικτύου κατά την επικύρωση του κλειδιού", + "settings.openRouter.keyError.saveFailed": "Αποτυχία αποθήκευσης του κλειδιού API", + "settings.openRouter.keyStatus.removed": "Το κλειδί API αφαιρέθηκε", + "settings.openRouter.keyStatus.saved": "Το κλειδί API αποθηκεύτηκε", + "settings.openRouter.keyStatus.saving": "Αποθήκευση…", + "settings.openRouter.keyStatus.set": "Το κλειδί αποθηκεύτηκε — εισήγαγε ένα νέο για αντικατάσταση", + "settings.openRouter.keyStatus.unset": "Δεν έχει αποθηκευτεί κλειδί API", + "settings.openRouter.modeWarning.local": "Το OpenRouter είναι απενεργοποιημένο όσο η λειτουργία AI είναι σε μόνο-τοπικά.", + "settings.openRouter.modeWarning.offline": "Το OpenRouter είναι σε παύση επειδή η συσκευή είναι εκτός σύνδεσης.", + "settings.openRouter.modelAriaLabel": "Προτιμώμενο μοντέλο OpenRouter", + "settings.openRouter.modelFetch.empty": "Δεν βρέθηκαν μοντέλα", + "settings.openRouter.modelFetch.failed": "Δεν ήταν δυνατή η φόρτωση του καταλόγου μοντέλων", + "settings.openRouter.modelFetch.loading": "Φόρτωση καταλόγου μοντέλων…", + "settings.openRouter.modelPlaceholder": "Επίλεξε ή αναζήτησε ένα μοντέλο", + "settings.openRouter.paidModelNote": "Τα επί πληρωμή μοντέλα απαιτούν πιστώσεις στον λογαριασμό σου OpenRouter.", + "settings.openRouter.policyBlocked": "Το OpenRouter αποκλείεται από την τρέχουσα λειτουργία AI ή μια ρύθμιση απορρήτου.", + "settings.openRouter.preferredModel": "Προτιμώμενο μοντέλο", + "settings.openRouter.resetCircuit": "Επαναφορά", + "settings.openRouter.resetCircuitAria": "Επαναφορά του διακόπτη προστασίας OpenRouter", + "settings.openRouter.rpmLabel": "Αιτήματα / λεπτό (τελευταία 60 δ)", + "settings.openRouter.saveKey": "Αποθήκευση", + "settings.openRouter.testConnection": "Δοκιμή σύνδεσης", + "settings.openRouter.testConnectionFailed": "Αποτυχία σύνδεσης", + "settings.openRouter.testConnectionOk": "Επιτυχής σύνδεση", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Πλήρης οδηγός ρυθμίσεων", "settings.overview.title": "Γρήγοροι σύνδεσμοι", diff --git a/public/locales/es/bundle.json b/public/locales/es/bundle.json index 29a46ae2..0f281ec2 100644 --- a/public/locales/es/bundle.json +++ b/public/locales/es/bundle.json @@ -1662,24 +1662,24 @@ "settings.ai.webllm.tabLeaderNote": "Solo una pestaña del navegador ejecuta inferencia local a la vez.", "settings.ai.webllm.vramLabel": "Nivel de VRAM", "settings.ai.webllmHint": "Se ejecuta completamente en tu navegador a través de WebGPU (paquetes opcionales). Descargas grandes de modelos en el primer uso; usa Ollama en escritorio para modelos más pesados.", - "settings.aiMode.activeLabel": "Active: {{mode}}", - "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", + "settings.aiMode.activeLabel": "Activo: {{mode}}", + "settings.aiMode.cloud": "Nube", + "settings.aiMode.cloudDesc": "Todas las solicitudes de IA se envían al proveedor en la nube (Gemini, OpenAI, etc.). Mejor calidad; requiere una clave API y conexión a internet.", + "settings.aiMode.description": "Elige cómo procesa la app las solicitudes de IA. El modo Nube usa tu clave API para la mejor calidad, el modo Local ejecuta todo en tu dispositivo para máxima privacidad, y el modo Híbrido elige automáticamente la mejor opción.", "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", - "settings.aiMode.indicator.cloud": "Cloud", + "settings.aiMode.ecoDesc": "Modo de ahorro de batería para dispositivos de gama baja o móviles. Usa solo el pequeño modelo de texto de 0,5B y heurísticas basadas en reglas. Sin nube ni modelos pesados.", + "settings.aiMode.hybrid": "Híbrido (inteligente)", + "settings.aiMode.hybridDesc": "Usa automáticamente modelos locales cuando están precargados; de lo contrario, recurre a la nube. Lo mejor de ambos mundos.", + "settings.aiMode.indicator.cloud": "Nube", "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", + "settings.aiMode.indicator.hybrid": "Híbrido", "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter en pausa (demasiados límites de tasa). Recurriendo a otros proveedores.", + "settings.aiMode.indicator.tooltip.cloud": "Modo Nube: todas las llamadas de IA van a tu proveedor en la nube", + "settings.aiMode.indicator.tooltip.eco": "Modo Eco: el modelo local más pequeño, sin nube, ahorra batería", + "settings.aiMode.indicator.tooltip.hybrid": "Modo Híbrido: primero la nube, local como respaldo sin conexión", + "settings.aiMode.indicator.tooltip.local": "Modo Local: toda la IA se ejecuta en tu dispositivo", + "settings.aiMode.indicatorAriaLabel": "Modo de IA activo", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -1688,8 +1688,8 @@ "settings.aiMode.hint.cloudOffline": "Estás sin conexión: el modo Nube no puede acceder al proveedor de IA. Reconéctate o cambia a Local/Eco.", "settings.aiMode.hint.hybridOffline": "Estás sin conexión: el modo Híbrido usará el motor del dispositivo hasta que vuelvas a conectarte.", "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.localDesc": "Toda la IA se ejecuta en tu dispositivo con modelos locales. Ningún dato sale del dispositivo. Funciona totalmente sin conexión una vez precargados los modelos.", + "settings.aiMode.title": "Modo de ejecución de IA", "settings.apiKey.configured": "Clave API configurada", "settings.apiKey.encryptedNote": "Cifrada y almacenada en IndexedDB", "settings.apiKey.errorEmpty": "Por favor, introduce una clave API", @@ -1987,54 +1987,54 @@ "settings.notifications.goalAchievements": "Logros de objetivos", "settings.notifications.title": "Configuración de notificaciones", "settings.notifications.writingReminders": "Recordatorios de escritura", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "Clave API", + "settings.openRouter.apiKeyAriaLabel": "Clave API de OpenRouter", + "settings.openRouter.apiKeyHint": "Almacenada cifrada en este dispositivo.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Cortacircuitos:", + "settings.openRouter.circuitClosed": "Cerrado (saludable)", + "settings.openRouter.circuitOpen": "Abierto (en pausa 5 min)", + "settings.openRouter.clearKey": "Quitar", + "settings.openRouter.customModelAriaLabel": "Identificador de modelo personalizado", + "settings.openRouter.customModelLabel": "Modelo personalizado…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Usa OpenRouter como puerta de enlace unificada en la nube. Los modelos del nivel gratuito (marcados con :free) no requieren créditos.", + "settings.openRouter.enabled": "Activar OpenRouter", + "settings.openRouter.enabledHint": "Cuando está activado, se prefiere OpenRouter para las llamadas de IA en la nube, salvo que el modo activo prohíba la nube.", + "settings.openRouter.errors.generic": "Se produjo un error inesperado de OpenRouter", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (gratis)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (gratis)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (gratis)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (gratis)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (gratis)", + "settings.openRouter.freeTierNote": "Modelos gratuitos: 20 solicitudes/min, 50 solicitudes/día sin créditos", + "settings.openRouter.getKeyLink": "Consigue una clave API gratuita en openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Introduce una clave API de OpenRouter", + "settings.openRouter.keyError.invalid": "La clave API parece no ser válida", + "settings.openRouter.keyError.network": "Error de red al validar la clave", + "settings.openRouter.keyError.saveFailed": "No se pudo guardar la clave API", + "settings.openRouter.keyStatus.removed": "Clave API eliminada", + "settings.openRouter.keyStatus.saved": "Clave API guardada", + "settings.openRouter.keyStatus.saving": "Guardando…", + "settings.openRouter.keyStatus.set": "Clave guardada: introduce una nueva para reemplazarla", + "settings.openRouter.keyStatus.unset": "No hay ninguna clave API guardada", + "settings.openRouter.modeWarning.local": "OpenRouter está desactivado mientras el modo de IA es solo local.", + "settings.openRouter.modeWarning.offline": "OpenRouter está en pausa porque el dispositivo está sin conexión.", + "settings.openRouter.modelAriaLabel": "Modelo preferido de OpenRouter", + "settings.openRouter.modelFetch.empty": "No se encontraron modelos", + "settings.openRouter.modelFetch.failed": "No se pudo cargar el catálogo de modelos", + "settings.openRouter.modelFetch.loading": "Cargando catálogo de modelos…", + "settings.openRouter.modelPlaceholder": "Selecciona o busca un modelo", + "settings.openRouter.paidModelNote": "Los modelos de pago requieren créditos en tu cuenta de OpenRouter.", + "settings.openRouter.policyBlocked": "OpenRouter está bloqueado por el modo de IA actual o un ajuste de privacidad.", + "settings.openRouter.preferredModel": "Modelo preferido", + "settings.openRouter.resetCircuit": "Restablecer", + "settings.openRouter.resetCircuitAria": "Restablecer el cortacircuitos de OpenRouter", + "settings.openRouter.rpmLabel": "Solicitudes / min (últimos 60 s)", + "settings.openRouter.saveKey": "Guardar", + "settings.openRouter.testConnection": "Probar conexión", + "settings.openRouter.testConnectionFailed": "Error de conexión", + "settings.openRouter.testConnectionOk": "Conexión correcta", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Guía completa", "settings.overview.title": "Accesos rápidos", diff --git a/public/locales/fr/bundle.json b/public/locales/fr/bundle.json index 007064fb..8ea68aa6 100644 --- a/public/locales/fr/bundle.json +++ b/public/locales/fr/bundle.json @@ -1662,24 +1662,24 @@ "settings.ai.webllm.tabLeaderNote": "Un seul onglet du navigateur exécute l'inférence locale à la fois.", "settings.ai.webllm.vramLabel": "Niveau de VRAM", "settings.ai.webllmHint": "S'exécute entièrement dans votre navigateur via WebGPU (paquets optionnels). Téléchargements volumineux de modèles à la première utilisation ; utilisez Ollama sur ordinateur de bureau pour les modèles plus lourds.", - "settings.aiMode.activeLabel": "Active: {{mode}}", + "settings.aiMode.activeLabel": "Actif : {{mode}}", "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", - "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", + "settings.aiMode.cloudDesc": "Toutes les requêtes d'IA sont envoyées au fournisseur cloud (Gemini, OpenAI, etc.). Meilleure qualité ; nécessite une clé API et une connexion internet.", + "settings.aiMode.description": "Choisissez comment l'application traite les requêtes d'IA. Le mode Cloud utilise votre clé API pour une qualité optimale, le mode Local exécute tout sur votre appareil pour une confidentialité maximale, et le mode Hybride choisit automatiquement la meilleure option.", + "settings.aiMode.eco": "Éco", + "settings.aiMode.ecoDesc": "Mode économie d'énergie pour les appareils peu puissants ou mobiles. Utilise uniquement le petit modèle de texte 0,5B et des heuristiques à base de règles. Pas de cloud, pas de modèles lourds.", + "settings.aiMode.hybrid": "Hybride (intelligent)", + "settings.aiMode.hybridDesc": "Utilise automatiquement les modèles locaux lorsqu'ils sont préchargés, sinon bascule vers le cloud. Le meilleur des deux mondes.", "settings.aiMode.indicator.cloud": "Cloud", - "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", + "settings.aiMode.indicator.eco": "Éco", + "settings.aiMode.indicator.hybrid": "Hybride", "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter en pause (trop de limites de débit). Repli vers d'autres fournisseurs.", + "settings.aiMode.indicator.tooltip.cloud": "Mode Cloud — tous les appels d'IA vont à votre fournisseur cloud", + "settings.aiMode.indicator.tooltip.eco": "Mode Éco — le plus petit modèle local, pas de cloud, économe en énergie", + "settings.aiMode.indicator.tooltip.hybrid": "Mode Hybride — cloud d'abord, local en repli hors ligne", + "settings.aiMode.indicator.tooltip.local": "Mode Local — toute l'IA s'exécute sur votre appareil", + "settings.aiMode.indicatorAriaLabel": "Mode d'IA actif", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -1688,8 +1688,8 @@ "settings.aiMode.hint.cloudOffline": "Vous êtes hors ligne — le mode Cloud ne peut pas joindre le fournisseur d'IA. Reconnectez-vous ou passez en Local/Éco.", "settings.aiMode.hint.hybridOffline": "Vous êtes hors ligne — le mode Hybride utilisera le moteur local jusqu'à la reconnexion.", "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.localDesc": "Toute l'IA s'exécute sur votre appareil avec des modèles locaux. Aucune donnée ne quitte l'appareil. Fonctionne entièrement hors ligne une fois les modèles préchargés.", + "settings.aiMode.title": "Mode d'exécution de l'IA", "settings.apiKey.configured": "Clé API configurée", "settings.apiKey.encryptedNote": "Chiffrée et stockée dans IndexedDB", "settings.apiKey.errorEmpty": "Veuillez entrer une clé API", @@ -1987,54 +1987,54 @@ "settings.notifications.goalAchievements": "Objectifs atteints", "settings.notifications.title": "Paramètres de notification", "settings.notifications.writingReminders": "Rappels d'écriture", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "Clé API", + "settings.openRouter.apiKeyAriaLabel": "Clé API OpenRouter", + "settings.openRouter.apiKeyHint": "Stockée chiffrée sur cet appareil.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Disjoncteur :", + "settings.openRouter.circuitClosed": "Fermé (sain)", + "settings.openRouter.circuitOpen": "Ouvert (en pause 5 min)", + "settings.openRouter.clearKey": "Retirer", + "settings.openRouter.customModelAriaLabel": "Identifiant de modèle personnalisé", + "settings.openRouter.customModelLabel": "Modèle personnalisé…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Utilisez OpenRouter comme passerelle cloud unifiée. Les modèles de l'offre gratuite (marqués :free) ne nécessitent aucun crédit.", + "settings.openRouter.enabled": "Activer OpenRouter", + "settings.openRouter.enabledHint": "Lorsqu'il est activé, OpenRouter est privilégié pour les appels d'IA cloud, sauf si le mode actif interdit le cloud.", + "settings.openRouter.errors.generic": "Une erreur OpenRouter inattendue s'est produite", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (gratuit)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (gratuit)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (gratuit)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (gratuit)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (gratuit)", + "settings.openRouter.freeTierNote": "Modèles gratuits : 20 requêtes/min, 50 requêtes/jour sans crédits", + "settings.openRouter.getKeyLink": "Obtenez une clé API gratuite sur openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Veuillez saisir une clé API OpenRouter", + "settings.openRouter.keyError.invalid": "La clé API semble invalide", + "settings.openRouter.keyError.network": "Erreur réseau lors de la validation de la clé", + "settings.openRouter.keyError.saveFailed": "Échec de l'enregistrement de la clé API", + "settings.openRouter.keyStatus.removed": "Clé API supprimée", + "settings.openRouter.keyStatus.saved": "Clé API enregistrée", + "settings.openRouter.keyStatus.saving": "Enregistrement…", + "settings.openRouter.keyStatus.set": "Clé enregistrée — saisissez-en une nouvelle pour la remplacer", + "settings.openRouter.keyStatus.unset": "Aucune clé API enregistrée", + "settings.openRouter.modeWarning.local": "OpenRouter est désactivé tant que le mode d'IA est réglé sur local uniquement.", + "settings.openRouter.modeWarning.offline": "OpenRouter est en pause car l'appareil est hors ligne.", + "settings.openRouter.modelAriaLabel": "Modèle OpenRouter préféré", + "settings.openRouter.modelFetch.empty": "Aucun modèle trouvé", + "settings.openRouter.modelFetch.failed": "Impossible de charger le catalogue de modèles", + "settings.openRouter.modelFetch.loading": "Chargement du catalogue de modèles…", + "settings.openRouter.modelPlaceholder": "Sélectionner ou rechercher un modèle", + "settings.openRouter.paidModelNote": "Les modèles payants nécessitent des crédits sur votre compte OpenRouter.", + "settings.openRouter.policyBlocked": "OpenRouter est bloqué par le mode d'IA actuel ou un réglage de confidentialité.", + "settings.openRouter.preferredModel": "Modèle préféré", + "settings.openRouter.resetCircuit": "Réinitialiser", + "settings.openRouter.resetCircuitAria": "Réinitialiser le disjoncteur OpenRouter", + "settings.openRouter.rpmLabel": "Requêtes / min (60 dernières s)", + "settings.openRouter.saveKey": "Enregistrer", + "settings.openRouter.testConnection": "Tester la connexion", + "settings.openRouter.testConnectionFailed": "Échec de la connexion", + "settings.openRouter.testConnectionOk": "Connexion réussie", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Guide complet", "settings.overview.title": "Liens rapides", diff --git a/public/locales/it/bundle.json b/public/locales/it/bundle.json index 11f964de..312f60a3 100644 --- a/public/locales/it/bundle.json +++ b/public/locales/it/bundle.json @@ -1662,24 +1662,24 @@ "settings.ai.webllm.tabLeaderNote": "Solo una scheda del browser esegue l'inferenza locale alla volta.", "settings.ai.webllm.vramLabel": "Livello VRAM", "settings.ai.webllmHint": "Viene eseguito interamente nel tuo browser tramite WebGPU (pacchetti opzionali). Download di modelli di grandi dimensioni al primo utilizzo; usa Ollama su desktop per modelli più pesanti.", - "settings.aiMode.activeLabel": "Active: {{mode}}", + "settings.aiMode.activeLabel": "Attiva: {{mode}}", "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", + "settings.aiMode.cloudDesc": "Tutte le richieste IA vengono inviate al provider cloud (Gemini, OpenAI, ecc.). Migliore qualità; richiede una chiave API e una connessione a internet.", + "settings.aiMode.description": "Scegli come l'app elabora le richieste IA. La modalità Cloud usa la tua chiave API per la migliore qualità, la modalità Locale esegue tutto sul dispositivo per la massima privacy e la modalità Ibrida sceglie automaticamente l'opzione migliore.", "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", + "settings.aiMode.ecoDesc": "Modalità di risparmio energetico per dispositivi poco potenti o mobili. Usa solo il piccolo modello di testo da 0,5B ed euristiche basate su regole. Niente cloud, niente modelli pesanti.", + "settings.aiMode.hybrid": "Ibrida (intelligente)", + "settings.aiMode.hybridDesc": "Usa automaticamente i modelli locali quando precaricati, altrimenti ricorre al cloud. Il meglio di entrambi i mondi.", "settings.aiMode.indicator.cloud": "Cloud", "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", - "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.hybrid": "Ibrida", + "settings.aiMode.indicator.local": "Locale", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter in pausa (troppi limiti di frequenza). Ricorso ad altri provider.", + "settings.aiMode.indicator.tooltip.cloud": "Modalità Cloud — tutte le chiamate IA vanno al provider cloud", + "settings.aiMode.indicator.tooltip.eco": "Modalità Eco — il modello locale più piccolo, niente cloud, a risparmio energetico", + "settings.aiMode.indicator.tooltip.hybrid": "Modalità Ibrida — prima il cloud, locale come riserva offline", + "settings.aiMode.indicator.tooltip.local": "Modalità Locale — tutta l'IA viene eseguita sul dispositivo", + "settings.aiMode.indicatorAriaLabel": "Modalità IA attiva", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -1687,9 +1687,9 @@ "settings.aiMode.hint.webgpuMissing": "WebGPU non rilevato — i modelli sul dispositivo potrebbero essere lenti o ripiegare su un motore più leggero.", "settings.aiMode.hint.cloudOffline": "Sei offline — la modalità Cloud non può raggiungere il provider AI. Riconnettiti o passa a Locale/Eco.", "settings.aiMode.hint.hybridOffline": "Sei offline — la modalità Ibrida userà il motore locale finché non ti riconnetti.", - "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.local": "Locale", + "settings.aiMode.localDesc": "Tutta l'IA viene eseguita sul dispositivo con modelli locali. Nessun dato lascia il dispositivo. Funziona completamente offline una volta precaricati i modelli.", + "settings.aiMode.title": "Modalità di esecuzione dell'IA", "settings.apiKey.configured": "Chiave API configurata", "settings.apiKey.encryptedNote": "Crittografata e archiviata in IndexedDB", "settings.apiKey.errorEmpty": "Inserisci una chiave API", @@ -1987,54 +1987,54 @@ "settings.notifications.goalAchievements": "Obiettivi raggiunti", "settings.notifications.title": "Impostazioni notifiche", "settings.notifications.writingReminders": "Promemoria di scrittura", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "Chiave API", + "settings.openRouter.apiKeyAriaLabel": "Chiave API di OpenRouter", + "settings.openRouter.apiKeyHint": "Memorizzata cifrata su questo dispositivo.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Interruttore:", + "settings.openRouter.circuitClosed": "Chiuso (integro)", + "settings.openRouter.circuitOpen": "Aperto (in pausa 5 min)", + "settings.openRouter.clearKey": "Rimuovi", + "settings.openRouter.customModelAriaLabel": "Identificatore del modello personalizzato", + "settings.openRouter.customModelLabel": "Modello personalizzato…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Usa OpenRouter come gateway cloud unificato. I modelli del piano gratuito (contrassegnati con :free) non richiedono crediti.", + "settings.openRouter.enabled": "Abilita OpenRouter", + "settings.openRouter.enabledHint": "Se abilitato, OpenRouter è preferito per le chiamate IA cloud, a meno che la modalità attiva non vieti il cloud.", + "settings.openRouter.errors.generic": "Si è verificato un errore imprevisto di OpenRouter", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (gratis)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (gratis)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (gratis)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (gratis)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (gratis)", + "settings.openRouter.freeTierNote": "Modelli gratuiti: 20 richieste/min, 50 richieste/giorno senza crediti", + "settings.openRouter.getKeyLink": "Ottieni una chiave API gratuita su openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Inserisci una chiave API di OpenRouter", + "settings.openRouter.keyError.invalid": "La chiave API non sembra valida", + "settings.openRouter.keyError.network": "Errore di rete durante la convalida della chiave", + "settings.openRouter.keyError.saveFailed": "Impossibile salvare la chiave API", + "settings.openRouter.keyStatus.removed": "Chiave API rimossa", + "settings.openRouter.keyStatus.saved": "Chiave API salvata", + "settings.openRouter.keyStatus.saving": "Salvataggio…", + "settings.openRouter.keyStatus.set": "Chiave salvata — inseriscine una nuova per sostituirla", + "settings.openRouter.keyStatus.unset": "Nessuna chiave API salvata", + "settings.openRouter.modeWarning.local": "OpenRouter è disattivato finché la modalità IA è impostata su solo locale.", + "settings.openRouter.modeWarning.offline": "OpenRouter è in pausa perché il dispositivo è offline.", + "settings.openRouter.modelAriaLabel": "Modello OpenRouter preferito", + "settings.openRouter.modelFetch.empty": "Nessun modello trovato", + "settings.openRouter.modelFetch.failed": "Impossibile caricare il catalogo modelli", + "settings.openRouter.modelFetch.loading": "Caricamento del catalogo modelli…", + "settings.openRouter.modelPlaceholder": "Seleziona o cerca un modello", + "settings.openRouter.paidModelNote": "I modelli a pagamento richiedono crediti sul tuo account OpenRouter.", + "settings.openRouter.policyBlocked": "OpenRouter è bloccato dalla modalità IA attuale o da un'impostazione sulla privacy.", + "settings.openRouter.preferredModel": "Modello preferito", + "settings.openRouter.resetCircuit": "Reimposta", + "settings.openRouter.resetCircuitAria": "Reimposta l'interruttore di OpenRouter", + "settings.openRouter.rpmLabel": "Richieste / min (ultimi 60 s)", + "settings.openRouter.saveKey": "Salva", + "settings.openRouter.testConnection": "Prova connessione", + "settings.openRouter.testConnectionFailed": "Connessione non riuscita", + "settings.openRouter.testConnectionOk": "Connessione riuscita", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Guida completa", "settings.overview.title": "Collegamenti rapidi", diff --git a/public/locales/ja/bundle.json b/public/locales/ja/bundle.json index ec57741a..7dcfe92c 100644 --- a/public/locales/ja/bundle.json +++ b/public/locales/ja/bundle.json @@ -1662,24 +1662,24 @@ "settings.ai.webllm.tabLeaderNote": "ローカル推論を実行できるのは、一度に 1 つのブラウザ タブだけです。", "settings.ai.webllm.vramLabel": "VRAM層", "settings.ai.webllmHint": "WebGPU (オプションのパッケージ) を介してブラウザ内で完全に実行されます。初回使用時に大規模なモデルをダウンロードします。重いモデルの場合は、デスクトップで Ollama を使用してください。", - "settings.aiMode.activeLabel": "Active: {{mode}}", - "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", - "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", - "settings.aiMode.indicator.cloud": "Cloud", - "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", - "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.activeLabel": "有効: {{mode}}", + "settings.aiMode.cloud": "クラウド", + "settings.aiMode.cloudDesc": "すべてのAIリクエストはクラウドプロバイダー(Gemini、OpenAIなど)に送信されます。最高品質ですが、APIキーとインターネット接続が必要です。", + "settings.aiMode.description": "アプリがAIリクエストを処理する方法を選択します。クラウドモードはAPIキーを使って最高品質を提供し、ローカルモードはすべてをデバイス上で実行して最大限のプライバシーを確保し、ハイブリッドモードは自動的に最適な選択を行います。", + "settings.aiMode.eco": "エコ", + "settings.aiMode.ecoDesc": "低スペックまたはモバイル端末向けの省電力モード。小さな0.5Bテキストモデルとルールベースのヒューリスティックのみを使用します。クラウドや重いモデルは使いません。", + "settings.aiMode.hybrid": "ハイブリッド(スマート)", + "settings.aiMode.hybridDesc": "プリロード済みの場合はローカルモデルを自動使用し、そうでない場合はクラウドにフォールバックします。両方の長所を兼ね備えています。", + "settings.aiMode.indicator.cloud": "クラウド", + "settings.aiMode.indicator.eco": "エコ", + "settings.aiMode.indicator.hybrid": "ハイブリッド", + "settings.aiMode.indicator.local": "ローカル", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouterは一時停止中です(レート制限が多すぎます)。他のプロバイダーにフォールバックします。", + "settings.aiMode.indicator.tooltip.cloud": "クラウドモード — すべてのAI呼び出しはクラウドプロバイダーに送られます", + "settings.aiMode.indicator.tooltip.eco": "エコモード — 最小のローカルモデル、クラウドなし、省電力", + "settings.aiMode.indicator.tooltip.hybrid": "ハイブリッドモード — まずクラウド、オフライン時はローカルにフォールバック", + "settings.aiMode.indicator.tooltip.local": "ローカルモード — すべてのAIがデバイス上で実行されます", + "settings.aiMode.indicatorAriaLabel": "有効なAIモード", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -1687,9 +1687,9 @@ "settings.aiMode.hint.webgpuMissing": "WebGPU が検出されません — デバイス上のモデルは遅くなるか、より小さいエンジンにフォールバックする場合があります。", "settings.aiMode.hint.cloudOffline": "オフラインです — クラウドモードは AI プロバイダーに接続できません。再接続するか、ローカル/エコに切り替えてください。", "settings.aiMode.hint.hybridOffline": "オフラインです — ハイブリッドモードは再接続するまでデバイス上のフォールバックを使用します。", - "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.local": "ローカル", + "settings.aiMode.localDesc": "すべてのAIがローカルモデルでデバイス上で実行されます。データはデバイスから出ません。モデルをプリロードすれば完全にオフラインで動作します。", + "settings.aiMode.title": "AI実行モード", "settings.apiKey.configured": "API キーが設定されました", "settings.apiKey.encryptedNote": "暗号化されて IndexedDB に保存される", "settings.apiKey.errorEmpty": "APIキーを入力してください", @@ -1987,54 +1987,54 @@ "settings.notifications.goalAchievements": "目標の達成状況", "settings.notifications.title": "Notification 設定", "settings.notifications.writingReminders": "リマインダーを書く", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "APIキー", + "settings.openRouter.apiKeyAriaLabel": "OpenRouter APIキー", + "settings.openRouter.apiKeyHint": "このデバイスに暗号化して保存されます。", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "サーキットブレーカー:", + "settings.openRouter.circuitClosed": "クローズ(正常)", + "settings.openRouter.circuitOpen": "オープン(5分間停止)", + "settings.openRouter.clearKey": "削除", + "settings.openRouter.customModelAriaLabel": "カスタムモデル識別子", + "settings.openRouter.customModelLabel": "カスタムモデル…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "OpenRouterを統合クラウドゲートウェイとして使用します。無料枠のモデル(:free表示)はクレジット不要です。", + "settings.openRouter.enabled": "OpenRouterを有効化", + "settings.openRouter.enabledHint": "有効にすると、アクティブなモードがクラウドを禁止しない限り、クラウドAI呼び出しにOpenRouterが優先されます。", + "settings.openRouter.errors.generic": "予期しないOpenRouterエラーが発生しました", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (無料)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (無料)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (無料)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (無料)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (無料)", + "settings.openRouter.freeTierNote": "無料枠モデル: クレジットなしで20リクエスト/分、50リクエスト/日", + "settings.openRouter.getKeyLink": "openrouter.ai/keys で無料のAPIキーを取得", + "settings.openRouter.keyError.empty": "OpenRouter APIキーを入力してください", + "settings.openRouter.keyError.invalid": "APIキーが無効なようです", + "settings.openRouter.keyError.network": "キーの検証中にネットワークエラーが発生しました", + "settings.openRouter.keyError.saveFailed": "APIキーの保存に失敗しました", + "settings.openRouter.keyStatus.removed": "APIキーを削除しました", + "settings.openRouter.keyStatus.saved": "APIキーを保存しました", + "settings.openRouter.keyStatus.saving": "保存中…", + "settings.openRouter.keyStatus.set": "キーを保存しました — 置き換えるには新しいキーを入力してください", + "settings.openRouter.keyStatus.unset": "APIキーが保存されていません", + "settings.openRouter.modeWarning.local": "AIモードがローカル専用の間、OpenRouterは無効です。", + "settings.openRouter.modeWarning.offline": "デバイスがオフラインのため、OpenRouterは一時停止しています。", + "settings.openRouter.modelAriaLabel": "優先するOpenRouterモデル", + "settings.openRouter.modelFetch.empty": "モデルが見つかりません", + "settings.openRouter.modelFetch.failed": "モデルカタログを読み込めませんでした", + "settings.openRouter.modelFetch.loading": "モデルカタログを読み込み中…", + "settings.openRouter.modelPlaceholder": "モデルを選択または検索", + "settings.openRouter.paidModelNote": "有料モデルにはOpenRouterアカウントのクレジットが必要です。", + "settings.openRouter.policyBlocked": "OpenRouterは現在のAIモードまたはプライバシー設定によりブロックされています。", + "settings.openRouter.preferredModel": "優先モデル", + "settings.openRouter.resetCircuit": "リセット", + "settings.openRouter.resetCircuitAria": "OpenRouterサーキットブレーカーをリセット", + "settings.openRouter.rpmLabel": "リクエスト/分(直近60秒)", + "settings.openRouter.saveKey": "保存", + "settings.openRouter.testConnection": "接続をテスト", + "settings.openRouter.testConnectionFailed": "接続に失敗しました", + "settings.openRouter.testConnectionOk": "接続に成功しました", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "完全な設定ガイド", "settings.overview.title": "クイックリンク", diff --git a/public/locales/pt/bundle.json b/public/locales/pt/bundle.json index 0e269cce..b283188b 100644 --- a/public/locales/pt/bundle.json +++ b/public/locales/pt/bundle.json @@ -1662,24 +1662,24 @@ "settings.ai.webllm.tabLeaderNote": "Apenas uma guia do navegador executa inferência local por vez.", "settings.ai.webllm.vramLabel": "Camada VRAM", "settings.ai.webllmHint": "Roda inteiramente no seu navegador via WebGPU (pacotes opcionais). Downloads de modelos grandes na primeira utilização; use Ollama no desktop para modelos mais pesados.", - "settings.aiMode.activeLabel": "Active: {{mode}}", + "settings.aiMode.activeLabel": "Ativo: {{mode}}", "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", + "settings.aiMode.cloudDesc": "Todos os pedidos de IA são enviados ao fornecedor na cloud (Gemini, OpenAI, etc.). Melhor qualidade; requer uma chave API e ligação à internet.", + "settings.aiMode.description": "Escolhe como a app processa os pedidos de IA. O modo Cloud usa a tua chave API para a melhor qualidade, o modo Local executa tudo no teu dispositivo para máxima privacidade, e o modo Híbrido escolhe automaticamente a melhor opção.", "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", + "settings.aiMode.ecoDesc": "Modo de poupança de energia para dispositivos fracos ou móveis. Usa apenas o pequeno modelo de texto de 0,5B e heurísticas baseadas em regras. Sem cloud, sem modelos pesados.", + "settings.aiMode.hybrid": "Híbrido (inteligente)", + "settings.aiMode.hybridDesc": "Usa automaticamente modelos locais quando pré-carregados; caso contrário, recorre à cloud. O melhor dos dois mundos.", "settings.aiMode.indicator.cloud": "Cloud", "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", + "settings.aiMode.indicator.hybrid": "Híbrido", "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter em pausa (demasiados limites de taxa). A recorrer a outros fornecedores.", + "settings.aiMode.indicator.tooltip.cloud": "Modo Cloud — todas as chamadas de IA vão para o teu fornecedor na cloud", + "settings.aiMode.indicator.tooltip.eco": "Modo Eco — o modelo local mais pequeno, sem cloud, poupa energia", + "settings.aiMode.indicator.tooltip.hybrid": "Modo Híbrido — cloud primeiro, local como alternativa offline", + "settings.aiMode.indicator.tooltip.local": "Modo Local — toda a IA é executada no teu dispositivo", + "settings.aiMode.indicatorAriaLabel": "Modo de IA ativo", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -1688,8 +1688,8 @@ "settings.aiMode.hint.cloudOffline": "Está offline — o modo Cloud não consegue aceder ao fornecedor de IA. Reconecte-se ou mude para Local/Eco.", "settings.aiMode.hint.hybridOffline": "Está offline — o modo Híbrido usará o motor local até voltar a ligar-se.", "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.localDesc": "Toda a IA é executada no teu dispositivo com modelos locais. Nenhum dado sai do dispositivo. Funciona totalmente offline depois de os modelos serem pré-carregados.", + "settings.aiMode.title": "Modo de execução da IA", "settings.apiKey.configured": "Chave de API configurada", "settings.apiKey.encryptedNote": "Criptografado e armazenado em IndexedDB", "settings.apiKey.errorEmpty": "Insira uma chave de API", @@ -1987,54 +1987,54 @@ "settings.notifications.goalAchievements": "Conquistas de metas", "settings.notifications.title": "Notification Configurações", "settings.notifications.writingReminders": "Escrevendo lembretes", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "Chave API", + "settings.openRouter.apiKeyAriaLabel": "Chave API do OpenRouter", + "settings.openRouter.apiKeyHint": "Guardada cifrada neste dispositivo.", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "Disjuntor:", + "settings.openRouter.circuitClosed": "Fechado (saudável)", + "settings.openRouter.circuitOpen": "Aberto (em pausa 5 min)", + "settings.openRouter.clearKey": "Remover", + "settings.openRouter.customModelAriaLabel": "Identificador de modelo personalizado", + "settings.openRouter.customModelLabel": "Modelo personalizado…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "Usa o OpenRouter como gateway unificado na cloud. Os modelos do nível gratuito (marcados com :free) não precisam de créditos.", + "settings.openRouter.enabled": "Ativar OpenRouter", + "settings.openRouter.enabledHint": "Quando ativado, o OpenRouter é preferido para chamadas de IA na cloud, exceto se o modo ativo proibir a cloud.", + "settings.openRouter.errors.generic": "Ocorreu um erro inesperado do OpenRouter", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (grátis)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (grátis)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (grátis)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (grátis)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (grátis)", + "settings.openRouter.freeTierNote": "Modelos gratuitos: 20 pedidos/min, 50 pedidos/dia sem créditos", + "settings.openRouter.getKeyLink": "Obtém uma chave API gratuita em openrouter.ai/keys", + "settings.openRouter.keyError.empty": "Introduz uma chave API do OpenRouter", + "settings.openRouter.keyError.invalid": "A chave API parece ser inválida", + "settings.openRouter.keyError.network": "Erro de rede ao validar a chave", + "settings.openRouter.keyError.saveFailed": "Falha ao guardar a chave API", + "settings.openRouter.keyStatus.removed": "Chave API removida", + "settings.openRouter.keyStatus.saved": "Chave API guardada", + "settings.openRouter.keyStatus.saving": "A guardar…", + "settings.openRouter.keyStatus.set": "Chave guardada — introduz uma nova para a substituir", + "settings.openRouter.keyStatus.unset": "Nenhuma chave API guardada", + "settings.openRouter.modeWarning.local": "O OpenRouter está desativado enquanto o modo de IA estiver definido como apenas local.", + "settings.openRouter.modeWarning.offline": "O OpenRouter está em pausa porque o dispositivo está offline.", + "settings.openRouter.modelAriaLabel": "Modelo OpenRouter preferido", + "settings.openRouter.modelFetch.empty": "Nenhum modelo encontrado", + "settings.openRouter.modelFetch.failed": "Não foi possível carregar o catálogo de modelos", + "settings.openRouter.modelFetch.loading": "A carregar o catálogo de modelos…", + "settings.openRouter.modelPlaceholder": "Seleciona ou procura um modelo", + "settings.openRouter.paidModelNote": "Os modelos pagos requerem créditos na tua conta OpenRouter.", + "settings.openRouter.policyBlocked": "O OpenRouter está bloqueado pelo modo de IA atual ou por uma definição de privacidade.", + "settings.openRouter.preferredModel": "Modelo preferido", + "settings.openRouter.resetCircuit": "Repor", + "settings.openRouter.resetCircuitAria": "Repor o disjuntor do OpenRouter", + "settings.openRouter.rpmLabel": "Pedidos / min (últimos 60 s)", + "settings.openRouter.saveKey": "Guardar", + "settings.openRouter.testConnection": "Testar ligação", + "settings.openRouter.testConnectionFailed": "Falha na ligação", + "settings.openRouter.testConnectionOk": "Ligação bem-sucedida", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "Guia completo de configurações", "settings.overview.title": "Links rápidos", diff --git a/public/locales/zh/bundle.json b/public/locales/zh/bundle.json index 644f5123..7aa4dbfa 100644 --- a/public/locales/zh/bundle.json +++ b/public/locales/zh/bundle.json @@ -1662,24 +1662,24 @@ "settings.ai.webllm.tabLeaderNote": "一次只有一个浏览器选项卡运行本地推理。", "settings.ai.webllm.vramLabel": "显存层", "settings.ai.webllmHint": "通过 WebGPU(可选包)完全在浏览器中运行。首次使用时下载大型模型;对于较重的型号,请在桌面上使用 Ollama。", - "settings.aiMode.activeLabel": "Active: {{mode}}", - "settings.aiMode.cloud": "Cloud", - "settings.aiMode.cloudDesc": "All AI requests are sent to the cloud provider (Gemini, OpenAI, etc.). Best quality, requires an API key and internet connection.", - "settings.aiMode.description": "Choose how the app processes AI requests. Cloud mode uses your API key for best quality, Local mode runs everything on your device for maximum privacy, and Hybrid mode automatically picks the best option.", - "settings.aiMode.eco": "Eco", - "settings.aiMode.ecoDesc": "Battery-saving mode for low-end or mobile devices. Uses only the small 0.5B text model and rule-based heuristics. No cloud, no heavy models.", - "settings.aiMode.hybrid": "Hybrid (Smart)", - "settings.aiMode.hybridDesc": "Automatically uses local models when preloaded, otherwise falls back to the cloud. Best of both worlds.", - "settings.aiMode.indicator.cloud": "Cloud", - "settings.aiMode.indicator.eco": "Eco", - "settings.aiMode.indicator.hybrid": "Hybrid", - "settings.aiMode.indicator.local": "Local", - "settings.aiMode.indicator.orCircuitOpen": "OpenRouter paused (too many rate limits). Falling back to other providers.", - "settings.aiMode.indicator.tooltip.cloud": "Cloud mode — all AI calls go to your cloud provider", - "settings.aiMode.indicator.tooltip.eco": "Eco mode — smallest local model, no cloud, battery-saving", - "settings.aiMode.indicator.tooltip.hybrid": "Hybrid mode — cloud first, local as offline fallback", - "settings.aiMode.indicator.tooltip.local": "Local mode — all AI runs on your device", - "settings.aiMode.indicatorAriaLabel": "Active AI mode", + "settings.aiMode.activeLabel": "当前: {{mode}}", + "settings.aiMode.cloud": "云端", + "settings.aiMode.cloudDesc": "所有 AI 请求都发送到云端提供商(Gemini、OpenAI 等)。质量最佳,但需要 API 密钥和网络连接。", + "settings.aiMode.description": "选择应用处理 AI 请求的方式。云端模式使用你的 API 密钥以获得最佳质量,本地模式在你的设备上运行一切以实现最大隐私,混合模式则自动选择最佳选项。", + "settings.aiMode.eco": "节能", + "settings.aiMode.ecoDesc": "面向低端或移动设备的省电模式。仅使用小型 0.5B 文本模型和基于规则的启发式。无云端,无重型模型。", + "settings.aiMode.hybrid": "混合(智能)", + "settings.aiMode.hybridDesc": "在预加载时自动使用本地模型,否则回退到云端。两全其美。", + "settings.aiMode.indicator.cloud": "云端", + "settings.aiMode.indicator.eco": "节能", + "settings.aiMode.indicator.hybrid": "混合", + "settings.aiMode.indicator.local": "本地", + "settings.aiMode.indicator.orCircuitOpen": "OpenRouter 已暂停(速率限制过多)。正在回退到其他提供商。", + "settings.aiMode.indicator.tooltip.cloud": "云端模式 — 所有 AI 调用都发送到你的云端提供商", + "settings.aiMode.indicator.tooltip.eco": "节能模式 — 最小的本地模型,无云端,省电", + "settings.aiMode.indicator.tooltip.hybrid": "混合模式 — 优先云端,离线时回退到本地", + "settings.aiMode.indicator.tooltip.local": "本地模式 — 所有 AI 都在你的设备上运行", + "settings.aiMode.indicatorAriaLabel": "当前 AI 模式", "settings.aiMode.indicator.openRouter": "OpenRouter", "settings.aiMode.indicator.openRouterFree": "OpenRouter Free", "settings.aiMode.indicator.orShort": "OR ⚠", @@ -1687,9 +1687,9 @@ "settings.aiMode.hint.webgpuMissing": "未检测到 WebGPU — 设备上的模型可能运行缓慢或回退到更小的引擎。", "settings.aiMode.hint.cloudOffline": "您已离线 — 云端模式无法连接 AI 提供商。请重新连接或切换到本地/节能模式。", "settings.aiMode.hint.hybridOffline": "您已离线 — 混合模式将使用设备本地引擎,直到您重新连接。", - "settings.aiMode.local": "Local", - "settings.aiMode.localDesc": "All AI runs on your device using local models. No data leaves the device. Works completely offline once models are preloaded.", - "settings.aiMode.title": "AI Execution Mode", + "settings.aiMode.local": "本地", + "settings.aiMode.localDesc": "所有 AI 都在你的设备上使用本地模型运行。没有数据离开设备。模型预加载后可完全离线工作。", + "settings.aiMode.title": "AI 执行模式", "settings.apiKey.configured": "API 密钥已配置", "settings.apiKey.encryptedNote": "加密并存储在IndexedDB中", "settings.apiKey.errorEmpty": "请输入 API 密钥", @@ -1987,54 +1987,54 @@ "settings.notifications.goalAchievements": "目标成就", "settings.notifications.title": "Notification 设置", "settings.notifications.writingReminders": "写作提醒", - "settings.openRouter.apiKey": "API Key", - "settings.openRouter.apiKeyAriaLabel": "OpenRouter API key", - "settings.openRouter.apiKeyHint": "Stored encrypted on this device.", + "settings.openRouter.apiKey": "API 密钥", + "settings.openRouter.apiKeyAriaLabel": "OpenRouter API 密钥", + "settings.openRouter.apiKeyHint": "在本设备上加密存储。", "settings.openRouter.apiKeyPlaceholder": "sk-or-v1-…", - "settings.openRouter.circuitBreaker": "Circuit breaker:", - "settings.openRouter.circuitClosed": "Closed (healthy)", - "settings.openRouter.circuitOpen": "Open (paused 5 min)", - "settings.openRouter.clearKey": "Remove", - "settings.openRouter.customModelAriaLabel": "Custom model identifier", - "settings.openRouter.customModelLabel": "Custom model…", + "settings.openRouter.circuitBreaker": "断路器:", + "settings.openRouter.circuitClosed": "关闭(正常)", + "settings.openRouter.circuitOpen": "打开(暂停 5 分钟)", + "settings.openRouter.clearKey": "移除", + "settings.openRouter.customModelAriaLabel": "自定义模型标识符", + "settings.openRouter.customModelLabel": "自定义模型…", "settings.openRouter.customModelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.description": "Use OpenRouter as a unified cloud gateway. Free-tier models (marked with :free) need no paid credits.", - "settings.openRouter.enabled": "Enable OpenRouter", - "settings.openRouter.enabledHint": "When enabled, OpenRouter is preferred for cloud AI calls unless the active mode forbids cloud.", - "settings.openRouter.errors.generic": "An unexpected OpenRouter error occurred", - "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (free)", - "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (free)", - "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (free)", - "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (free)", - "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (free)", - "settings.openRouter.freeTierNote": "Free-tier models: 20 req/min, 50 req/day without credits", - "settings.openRouter.getKeyLink": "Get a free API key at openrouter.ai/keys", - "settings.openRouter.keyError.empty": "Please enter an OpenRouter API key", - "settings.openRouter.keyError.invalid": "The API key appears invalid", - "settings.openRouter.keyError.network": "Network error while validating the key", - "settings.openRouter.keyError.saveFailed": "Failed to save the API key", - "settings.openRouter.keyStatus.removed": "API key removed", - "settings.openRouter.keyStatus.saved": "API key saved", - "settings.openRouter.keyStatus.saving": "Saving…", - "settings.openRouter.keyStatus.set": "Key stored — enter a new key to replace it", - "settings.openRouter.keyStatus.unset": "No API key stored", - "settings.openRouter.modeWarning.local": "OpenRouter is disabled while AI mode is set to local-only.", - "settings.openRouter.modeWarning.offline": "OpenRouter is paused because the device is offline.", - "settings.openRouter.modelAriaLabel": "Preferred OpenRouter model", - "settings.openRouter.modelFetch.empty": "No models found", - "settings.openRouter.modelFetch.failed": "Could not load model catalog", - "settings.openRouter.modelFetch.loading": "Loading model catalog…", - "settings.openRouter.modelPlaceholder": "deepseek/deepseek-r1:free", - "settings.openRouter.paidModelNote": "Paid models require credits on your OpenRouter account.", - "settings.openRouter.policyBlocked": "OpenRouter is blocked by the current AI mode or privacy setting.", - "settings.openRouter.preferredModel": "Preferred Model", - "settings.openRouter.resetCircuit": "Reset", - "settings.openRouter.resetCircuitAria": "Reset OpenRouter circuit breaker", - "settings.openRouter.rpmLabel": "Requests / min (last 60 s)", - "settings.openRouter.saveKey": "Save", - "settings.openRouter.testConnection": "Test connection", - "settings.openRouter.testConnectionFailed": "Connection failed", - "settings.openRouter.testConnectionOk": "Connection successful", + "settings.openRouter.description": "将 OpenRouter 用作统一的云端网关。免费层模型(标有 :free)无需付费额度。", + "settings.openRouter.enabled": "启用 OpenRouter", + "settings.openRouter.enabledHint": "启用后,除非当前模式禁止云端,否则云端 AI 调用将优先使用 OpenRouter。", + "settings.openRouter.errors.generic": "发生了意外的 OpenRouter 错误", + "settings.openRouter.freeModel.deepseekR1": "DeepSeek R1 (免费)", + "settings.openRouter.freeModel.gemma327b": "Gemma 3 27B IT (免费)", + "settings.openRouter.freeModel.llama3370b": "Llama 3.3 70B Instruct (免费)", + "settings.openRouter.freeModel.mistral7b": "Mistral 7B Instruct (免费)", + "settings.openRouter.freeModel.qwen2572b": "Qwen 2.5 72B Instruct (免费)", + "settings.openRouter.freeTierNote": "免费层模型:无需额度,20 次请求/分钟,50 次请求/天", + "settings.openRouter.getKeyLink": "在 openrouter.ai/keys 获取免费 API 密钥", + "settings.openRouter.keyError.empty": "请输入 OpenRouter API 密钥", + "settings.openRouter.keyError.invalid": "API 密钥似乎无效", + "settings.openRouter.keyError.network": "验证密钥时发生网络错误", + "settings.openRouter.keyError.saveFailed": "保存 API 密钥失败", + "settings.openRouter.keyStatus.removed": "API 密钥已移除", + "settings.openRouter.keyStatus.saved": "API 密钥已保存", + "settings.openRouter.keyStatus.saving": "正在保存…", + "settings.openRouter.keyStatus.set": "密钥已保存 — 输入新密钥以替换", + "settings.openRouter.keyStatus.unset": "未保存 API 密钥", + "settings.openRouter.modeWarning.local": "当 AI 模式设为仅本地时,OpenRouter 处于禁用状态。", + "settings.openRouter.modeWarning.offline": "由于设备离线,OpenRouter 已暂停。", + "settings.openRouter.modelAriaLabel": "首选 OpenRouter 模型", + "settings.openRouter.modelFetch.empty": "未找到模型", + "settings.openRouter.modelFetch.failed": "无法加载模型目录", + "settings.openRouter.modelFetch.loading": "正在加载模型目录…", + "settings.openRouter.modelPlaceholder": "选择或搜索模型", + "settings.openRouter.paidModelNote": "付费模型需要你的 OpenRouter 账户额度。", + "settings.openRouter.policyBlocked": "OpenRouter 已被当前 AI 模式或隐私设置阻止。", + "settings.openRouter.preferredModel": "首选模型", + "settings.openRouter.resetCircuit": "重置", + "settings.openRouter.resetCircuitAria": "重置 OpenRouter 断路器", + "settings.openRouter.rpmLabel": "请求 / 分钟(最近 60 秒)", + "settings.openRouter.saveKey": "保存", + "settings.openRouter.testConnection": "测试连接", + "settings.openRouter.testConnectionFailed": "连接失败", + "settings.openRouter.testConnectionOk": "连接成功", "settings.openRouter.title": "OpenRouter", "settings.overview.openGuide": "完整设置指南", "settings.overview.title": "快速链接",