From c9a133fc57ad8707b989c6419b9e097de43e9e58 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:42:49 -0700 Subject: [PATCH 001/251] New translations messages.properties (French) [ci skip] --- .../resources/i18n/messages_fr.properties | 235 +++++++++--------- 1 file changed, 115 insertions(+), 120 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 1816786d6..da0a1e0cd 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -1,4 +1,4 @@ -# Askimo Desktop Application - French Strings (Comments Preserved) +# Askimo Desktop Application - English Strings # Application @@ -43,7 +43,7 @@ menu.help.share=🗣 Partager Askimo menu.help.share.x=Partager sur X / Twitter menu.help.share.linkedin=Partager sur LinkedIn menu.help.share.facebook=Partager sur Facebook -menu.help.share.text=Découvrez Askimo — un client IA gratuit et local pour bureau. Compatible avec Ollama, OpenAI, Anthropic et plus. https://askimo.chat +menu.help.share.text=Découvrez Askimo — un client IA gratuit et local pour bureau. Compatible avec Ollama, OpenAI, Anthropic et plus. https\://askimo.chat menu.help.share.hackernews=Publier sur Hacker News menu.eventlog=Journal des événements menu.help.model.capabilities=Ouvrir le fichier des capacités du modèle @@ -52,7 +52,6 @@ menu.about=À propos d’Askimo menu.help.check.updates=Vérifier les mises à jour... menu.help.diagnostics=Diagnostics système... - # Common Dialog Buttons dialog.cancel=Annuler dialog.close=Fermer @@ -60,16 +59,16 @@ dialog.close=Fermer # Backup and Restore backup.export.title=Exporter la sauvegarde backup.export.success.title=Sauvegarde exportée -backup.export.success.message=Sauvegarde exportée avec succès vers :\n{0} +backup.export.success.message=Sauvegarde exportée avec succès vers \:\n{0} backup.export.error.title=Échec de l'exportation -backup.export.error.message=Impossible d'exporter la sauvegarde :\n{0} +backup.export.error.message=Impossible d''exporter la sauvegarde \:\n{0} backup.import.title=Importer la sauvegarde backup.import.confirm.title=Confirmer l'importation backup.import.confirm.message=Cette action remplacera toutes les données actuelles par la sauvegarde.\n\nUne sauvegarde de sécurité sera créée automatiquement avant l'importation.\n\nÊtes-vous sûr de vouloir continuer ? backup.import.success.title=Sauvegarde importée backup.import.success.message=Sauvegarde importée avec succès.\n\nVeuillez redémarrer Askimo pour que tous les changements prennent effet. backup.import.error.title=Échec de l'importation -backup.import.error.message=Impossible d'importer la sauvegarde :\n{0} +backup.import.error.message=Impossible d''importer la sauvegarde \:\n{0} # Event Log eventlog.title=Journal des événements ({0}) @@ -142,7 +141,7 @@ session.rename.error.empty=Le titre ne peut pas être vide session.export.file.chooser.title=Enregistrer l’historique session.export.button.export=Exporter session.export.success.title=Exportation réussie -session.export.success.message=La session a été exportée avec succès vers : +session.export.success.message=La session a été exportée avec succès vers \: # Projects project.title=Projets @@ -158,11 +157,11 @@ project.new.dialog.file.browse=Sélectionner les fichiers à traiter... project.new.dialog.sources.label=Matériaux de référence (optionnel) project.new.dialog.sources.add=Ajouter une source project.new.dialog.error.empty.name=Le nom du projet ne peut pas être vide -project.new.dialog.error.create.failed=Échec de la création du projet : {0} +project.new.dialog.error.create.failed=Échec de la création du projet \: {0} project.new.dialog.name.error.empty=Le nom du projet ne peut pas être vide project.new.dialog.button.create=Créer le projet project.new.dialog.button.cancel=Annuler -project.new.dialog.success.title=Projet créé avec succès ! +project.new.dialog.success.title=Projet créé avec succès \! project.new.dialog.success.message=Le projet ''{0}'' a été créé. project.new.dialog.success.countdown=Fermeture dans {0} seconde{1}... project.new.dialog.success.close=Fermer maintenant @@ -185,7 +184,7 @@ projects.title=Projets projects.description=Organisez vos discussions autour d'un sujet et joignez des fichiers, des dossiers ou des URL comme sources de connaissances, afin que l'IA dispose toujours du contexte approprié pour ce projet. projects.error=❌ {0} projects.empty=Aucun projet trouvé. -projects.empty.hint=💡 Créez un nouveau projet pour organiser vos sessions de chat ! +projects.empty.hint=💡 Créez un nouveau projet pour organiser vos sessions de chat \! projects.search.placeholder=Rechercher par nom… projects.search.empty=Aucun projet ne correspond à "{0}". projects.col.name=Nom @@ -196,13 +195,16 @@ projects.sources.expand=Afficher les matériaux de référence projects.sources.collapse=Masquer les matériaux de référence projects.sources.empty.title=Aucun document de référence pour le moment projects.sources.empty.description=Ajoutez des documents afin qu’Askimo puisse s’y référer lorsqu’il répond à vos questions -projects.sources.info.tooltip=Les documents de référence aident Askimo à comprendre votre contexte spécifique.\n\n\ -Ajoutez des dossiers, des fichiers ou des sites web contenant les informations auxquelles Askimo doit se référer pour répondre à vos questions.\n\n\ -Par exemple :\n\ +projects.sources.info.tooltip=Les documents de référence aident Askimo à comprendre votre contexte spécifique.\n\ +\n\ +Ajoutez des dossiers, des fichiers ou des sites web contenant les informations auxquelles Askimo doit se référer pour répondre à vos questions.\n\ +\n\ +Par exemple \:\n\ • Documentation de votre projet\n\ • Base de connaissances de l’entreprise\n\ • Spécifications techniques\n\ -• Articles de recherche\n\n\ +• Articles de recherche\n\ +\n\ Askimo analysera ces documents afin de fournir des réponses plus précises et adaptées au contexte. projects.sources.type.local_folders=Dossiers Locaux projects.sources.type.local_files=Fichiers Locaux @@ -229,8 +231,8 @@ project.reindex=Réindexer le projet project.menu.tooltip=Menu du projet project.new.chat.placeholder=Nouvelle conversation dans {0} project.recent.chats=Conversations récentes -project.no.chats=Pas encore de conversations. Commencez-en une nouvelle ci-dessous ! -project.indexing.label=Indexation de la source de connaissances: {0} +project.no.chats=Pas encore de conversations. Commencez-en une nouvelle ci-dessous \! +project.indexing.label=Indexation de la source de connaissances\: {0} project.indexing.queued=Indexation mise en file d'attente - en attente de la fin d'un autre projet... project.indexing.failed=L'indexation a échoué. Essayez de réindexer à partir du menu du projet. project.indexing.ready.label=Indexé @@ -250,7 +252,7 @@ settings.appearance=Apparence settings.appearance.accent=Couleur d’accent settings.appearance.accent.description=Personnalisez en toute sécurité une seule couleur d’accent. Askimo l’applique aux accents principaux de l’interface et dérive des couleurs associées pour préserver la lisibilité. settings.appearance.accent.label=Couleur d’accent (Hex) -settings.appearance.accent.invalid=Entrez une couleur hexadécimale valide comme #0284C7 +settings.appearance.accent.invalid=Entrez une couleur hexadécimale valide comme \#0284C7 settings.appearance.accent.swatch.primary=Primaire settings.appearance.accent.swatch.primary.container=Conteneur settings.appearance.accent.swatch.on.primary.container=Sur le conteneur @@ -273,8 +275,8 @@ settings.network=Réseau settings.network.description=Configurer les paramètres réseau et proxy settings.mcp.servers=Serveurs MCP settings.skills=Compétences -settings.skills.description=Les Skills sont des agents IA réutilisables qui fonctionnent directement sur votre machine. Chaque skill est un fichier Markdown contenant un prompt système et des instructions. Lorsque vous exécutez un skill, il s'exécute via {0} — lecture et écriture de vos fichiers, exécution de commandes shell et itération jusqu'à ce que la tâche soit terminée. Aucun copier-coller requis. -settings.skills.runtimes=Environnements d'exécution pris en charge : +settings.skills.description=Les Skills sont des agents IA réutilisables qui fonctionnent directement sur votre machine. Chaque skill est un fichier Markdown contenant un prompt système et des instructions. Lorsque vous exécutez un skill, il s''exécute via {0} — lecture et écriture de vos fichiers, exécution de commandes shell et itération jusqu''à ce que la tâche soit terminée. Aucun copier-coller requis. +settings.skills.runtimes=Environnements d'exécution pris en charge \: settings.skills.directory=Répertoire des compétences settings.skills.open.folder=Ouvrir le dossier settings.skills.new.skill=Nouvelle compétence @@ -365,11 +367,11 @@ settings.log.viewer=Fichiers journaux settings.log.viewer.description=Voir les journaux et diagnostics settings.log.viewer.view=Voir les journaux settings.log.viewer.open_folder=Ouvrir le dossier des journaux -settings.log.viewer.path=Fichier journal : {0} +settings.log.viewer.path=Fichier journal \: {0} settings.log.viewer.dialog.title=Journaux de l’application settings.log.viewer.refresh=Rafraîchir settings.log.viewer.copy=Copier -settings.log.viewer.copied=Copié ! +settings.log.viewer.copied=Copié \! settings.log.viewer.loading=Chargement des journaux... settings.log.viewer.error=Erreur lors du chargement des journaux settings.log.viewer.empty=Aucun journal disponible @@ -427,7 +429,7 @@ user.profile.interests.custom.placeholder=ex. Apprentissage automatique, Photogr user.profile.interests.custom.hint=Séparez plusieurs centres d’intérêt par des virgules # Welcome Dialog (First Run) -welcome.title=Bienvenue sur Askimo ! +welcome.title=Bienvenue sur Askimo \! welcome.subtitle=Aidez-nous à personnaliser votre expérience IA welcome.avatar.optional=Cliquez pour ajouter une photo (facultatif) welcome.name=Votre nom @@ -466,6 +468,7 @@ user.interest.environment=Environnement # Actions action.delete=Supprimer +action.remove=Supprimer action.edit=Modifier action.pin=Épingler à la barre latérale action.unpin=Détacher de la barre latérale @@ -486,12 +489,10 @@ action.retry=Réessayer action.done=Terminé action.refresh=Rafraîchir - - # Happiness Gate (shown before Star Prompt) happiness.gate.title=Comment trouvez-vous Askimo ? happiness.gate.subtitle=Dites-nous comment nous nous en sortons -happiness.gate.happy=Je l'adore ! 😍 +happiness.gate.happy=Je l'adore \! 😍 happiness.gate.neutral=Ça va 🙂 happiness.gate.unhappy=Pas vraiment 😕 happiness.gate.feedback.title=Aidez-nous à nous améliorer @@ -532,17 +533,15 @@ file.overwrite.message=Ce fichier existe déjà. Voulez-vous le remplacer ? file.overwrite.confirm=Remplacer file.name.too.long=Le nom du fichier est trop long. Veuillez utiliser un nom plus court (255 caractères maximum). - # About about.title=À propos de {0} -action.remove=Supprimer about.version=Version about.buildDate=Date de compilation about.buildJdk=JDK de compilation about.license=Licence about.description=Description about.description.text=Une plateforme d’agents IA local-first pour ordinateur et CLI. Discutez avec plusieurs fournisseurs (OpenAI, Anthropic, Gemini, xAI, Ollama, LM Studio et plus encore), récupérez des connaissances depuis des fichiers locaux et des URL via le RAG, exécutez des workflows IA en plusieurs étapes avec les Plans, lancez des scripts et connectez des outils externes via MCP — le tout sur votre propre machine. -about.copyright=Droits d'auteur (c) {0} {1} +about.copyright=Droits d''auteur (c) {0} {1} about.runtime.info=Informations d'exécution about.links=Liens @@ -576,7 +575,7 @@ shortcut.send.message=Envoyer le message shortcut.new.line=Nouvelle ligne # Chat View -chat.welcome=Bienvenue sur Askimo !\nCommencez une conversation en tapant un message ci-dessous. +chat.welcome=Bienvenue sur Askimo \!\nCommencez une conversation en tapant un message ci-dessous. chat.no.active.session=Sélectionnez une session dans la barre latérale ou démarrez une nouvelle conversation chat.search.placeholder=Rechercher dans la conversation... chat.search.no.results=Aucun résultat @@ -614,7 +613,7 @@ global.search.results.count={0} résultat trouvé global.search.results.count.plural={0} résultats trouvés # Rest of chat view strings -chat.directive=Directive : +chat.directive=Directive \: chat.directive.none=Aucune chat.directive.new=Nouvelle directive chat.directive.manage=Gérer les directives @@ -651,7 +650,7 @@ chat.attachment.remove=Supprimer la pièce jointe chat.attachment.preview.loading=Chargement de l'aperçu… chat.attachment.preview.file.not.found=(Fichier introuvable) chat.attachment.preview.too.large=(Fichier trop volumineux pour l'aperçu) -chat.attachment.preview.cannot.read=(Impossible de lire le fichier : {0}) +chat.attachment.preview.cannot.read=(Impossible de lire le fichier \: {0}) chat.attachment.preview.more.lines={0} lignes supplémentaires # Sessions View @@ -663,12 +662,12 @@ sessions.col.created=Créé sessions.col.updated=Mis à jour sessions.error=❌ {0} sessions.empty=Aucune session trouvée. -sessions.empty.hint=💡 Démarrez une nouvelle conversation pour créer votre première session ! +sessions.empty.hint=💡 Démarrez une nouvelle conversation pour créer votre première session \! sessions.search.placeholder=Rechercher par titre… sessions.search.empty=Aucune session ne correspond à "{0}". -# Commandes génériques de pagination des tableaux -table.page.size.label=Lignes par page: +# Generic table pagination controls +table.page.size.label=Lignes par page\: table.page=Page {0} sur {1} table.page.previous=Page précédente table.page.next=Page suivante @@ -682,10 +681,9 @@ sessions.error.not.found=Session introuvable. sessions.error.rename.failed=Renommage impossible. # ChatSessionService Errors - # Update Check update.dialog.title=Mise à jour du logiciel -update.dialog.new.version.available=Une nouvelle version d’Askimo est disponible ! +update.dialog.new.version.available=Une nouvelle version d’Askimo est disponible \! update.urgency.medium=Vous avez {0} versions de retard — vous pourriez manquer des correctifs importants et de nouvelles fonctionnalités. update.urgency.high=Vous avez {0} versions de retard — vous manquez des améliorations importantes. Veuillez mettre à jour bientôt. update.dialog.current.version.label=Version actuelle @@ -696,7 +694,7 @@ update.dialog.download=Télécharger maintenant update.dialog.how.to.update=Comment mettre à jour update.dialog.later=Plus tard update.dialog.skip.version=Ignorer cette version -update.check.up.to.date=Vous utilisez la dernière version ! +update.check.up.to.date=Vous utilisez la dernière version \! update.check.failed=Échec de la vérification # Event Names @@ -724,15 +722,15 @@ settings.app.language.translation.contribute=Contribuer sur Crowdin settings.ai.response.language=Langue de réponse préférée settings.ai.response.language.description=Forcer l'IA à répondre dans une langue spécifique (laisser vide pour détection automatique) settings.ai.response.language.auto=Détection automatique -settings.ai.response.language.tooltip=L'IA détecte automatiquement votre langue, mais remplacez quand :\n• Apprentissage de langues (pratique immersive)\n• Cohérence professionnelle (ex : docs de code toujours en anglais)\n• Optimisation RAG (correspondre à la langue de la base de connaissances)\n• Enseignement (poser une question dans une langue, expliquer dans une autre)\n• Éviter les changements de langue indésirables -settings.model.select=Sélectionner un modèle pour {0} : +settings.ai.response.language.tooltip=L'IA détecte automatiquement votre langue, mais remplacez quand \:\n• Apprentissage de langues (pratique immersive)\n• Cohérence professionnelle (ex \: docs de code toujours en anglais)\n• Optimisation RAG (correspondre à la langue de la base de connaissances)\n• Enseignement (poser une question dans une langue, expliquer dans une autre)\n• Éviter les changements de langue indésirables +settings.model.select=Sélectionner un modèle pour {0} \: settings.model.loading=Chargement des modèles... settings.model.none=Aucun modèle disponible settings.model.select.title=Sélection du modèle settings.model.current=Modèle actuel settings.model.selected=Modèle sélectionné settings.model.new=Nouveau modèle -settings.model.change.description=Choisissez un modèle dans la liste ci-dessous : +settings.model.change.description=Choisissez un modèle dans la liste ci-dessous \: settings.model.search=Rechercher un modèle settings.model.search.placeholder=Filtrer les modèles... settings.model.filtered=Affichage de {0} sur {1} modèles @@ -740,22 +738,22 @@ settings.model.no.match=Aucun modèle correspondant settings.model.no.results=Aucun modèle correspondant settings.configure.title=Configurer {0} settings.test.connection.testing=Test en cours... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=Impossible de se connecter au fournisseur. Veuillez vérifier que votre clé API est correcte (pour les fournisseurs cloud) ou que votre URL de base est accessible (pour les fournisseurs locaux). Vous pouvez trouver des instructions de configuration en utilisant le lien d'aide ci-dessus. # Directives Dialog directive.manage.title=Gérer les directives -directive.manage.empty=Aucune directive disponible. Créez-en une pour commencer ! +directive.manage.empty=Aucune directive disponible. Créez-en une pour commencer \! directive.edit.name.label=Nom directive.edit.name.placeholder=Entrez le nom de la directive... directive.edit.content.label=Contenu directive.edit.content.placeholder=Entrez les instructions de la directive... directive.edit.name.required=Le nom est obligatoire directive.edit.content.required=Le contenu est obligatoire -directive.created=Créée : {0} +directive.created=Créée \: {0} directive.new.title=Nouvelle directive directive.new.guidelines=Les directives guident la manière dont l'IA répond à vos messages. Soyez précis sur le ton, le niveau de détail, le format ou toute exigence particulière dont vous avez besoin. -directive.new.name.placeholder=ex.: concise-code, explain-like-im-5 +directive.new.name.placeholder=ex.\: concise-code, explain-like-im-5 directive.new.content.placeholder=Entrez les instructions... directive.new.apply.current=Appliquer à la session actuelle directive.new.create=Créer @@ -767,8 +765,8 @@ directive.export.tooltip=Exporter toutes les directives vers un fichier JSON pou directive.export.filename=askimo-directives directive.import=Importer directive.import.tooltip=Importer des directives à partir d'un fichier JSON -directive.import.result=Importation terminée : {0} importées, {1} renommées, {2} ignorées -directive.import.error=Échec de l'importation : format de fichier non valide ou non pris en charge +directive.import.result=Importation terminée \: {0} importées, {1} renommées, {2} ignorées +directive.import.error=Échec de l'importation \: format de fichier non valide ou non pris en charge # Log Levels log.level.error=Erreur @@ -817,7 +815,7 @@ message.edited.indicator=(modifié) message.date.today=Aujourd'hui message.date.yesterday=Hier message.token.usage={0} tokens · {1} en entrée / {2} en sortie -message.token.usage.tooltip=Tokens utilisés par cette réponse.\nEntrée: votre prompt + contexte envoyé à l'IA.\nSortie: la réponse générée par l'IA. +message.token.usage.tooltip=Tokens utilisés par cette réponse.\nEntrée\: votre prompt + contexte envoyé à l'IA.\nSortie\: la réponse générée par l'IA. attachment.download=Télécharger la pièce jointe attachment.download.description=Télécharger cette pièce jointe attachment.save.file=Enregistrer la pièce jointe @@ -832,8 +830,8 @@ provider.select.title=Sélectionner un fournisseur provider.setup.required.title=Configuration du fournisseur IA requise provider.setup.required.message=Avant de commencer à discuter, sélectionnez et configurez un fournisseur IA. provider.setup.required.button=Configurer -provider.select.prompt=Sélectionner un fournisseur : -provider.configure.prompt=Configurer : +provider.select.prompt=Sélectionner un fournisseur \: +provider.configure.prompt=Configurer \: provider.choose.placeholder=Choisissez un fournisseur... provider.setup.guide=Comment configurer {0} provider.apikey.stored=Clé API stockée en toute sécurité @@ -844,31 +842,31 @@ provider.apikey.security.link=En savoir plus sur notre protection des données provider.not.set=Non défini # Provider Configuration - OpenAI -provider.openai.apikey.description=Votre clé API OpenAI : https://platform.openai.com/account/api-keys +provider.openai.apikey.description=Votre clé API OpenAI \: https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=Clé API déjà stockée. Laissez vide pour conserver l’actuelle. -provider.openai.setup.help=💡 Pour utiliser OpenAI, une clé API est nécessaire.\n\n1. Obtenez-la ici : https://platform.openai.com/account/api-keys\n2. Configurez-la dans les paramètres ou via :change-settings +provider.openai.setup.help=💡 Pour utiliser OpenAI, une clé API est nécessaire.\n\n1. Obtenez-la ici \: https\://platform.openai.com/account/api-keys\n2. Configurez-la dans les paramètres ou via \:change-settings # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Votre clé API Anthropic : https://console.anthropic.com/ +provider.anthropic.apikey.description=Votre clé API Anthropic \: https\://console.anthropic.com/ provider.anthropic.apikey.stored=Clé API déjà stockée. -provider.anthropic.setup.help=💡 Pour utiliser Anthropic, une clé API est nécessaire.\n\n1. Obtenez-la ici : https://console.anthropic.com/\n2. Configurez-la dans les paramètres ou via :change-settings +provider.anthropic.setup.help=💡 Pour utiliser Anthropic, une clé API est nécessaire.\n\n1. Obtenez-la ici \: https\://console.anthropic.com/\n2. Configurez-la dans les paramètres ou via \:change-settings # Provider Configuration - Gemini -provider.gemini.apikey.description=Votre clé API Google AI Studio : https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Votre clé API Google AI Studio \: https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=Clé API déjà stockée. -provider.gemini.setup.help=💡 Pour utiliser Gemini, une clé API est nécessaire.\n\n1. Obtenez-la ici : https://aistudio.google.com/app/apikey\n2. Configurez-la dans les paramètres ou via :change-settings +provider.gemini.setup.help=💡 Pour utiliser Gemini, une clé API est nécessaire.\n\n1. Obtenez-la ici \: https\://aistudio.google.com/app/apikey\n2. Configurez-la dans les paramètres ou via \:change-settings # Provider Configuration - XAI -provider.xai.apikey.description=Votre clé API XAI : https://console.x.ai/ +provider.xai.apikey.description=Votre clé API XAI \: https\://console.x.ai/ provider.xai.apikey.stored=Clé API déjà stockée. -provider.xai.setup.help=💡 Pour utiliser XAI, une clé API est nécessaire.\n\n1. Obtenez-la ici : https://console.x.ai/\n2. Configurez-la dans les paramètres ou via :change-settings +provider.xai.setup.help=💡 Pour utiliser XAI, une clé API est nécessaire.\n\n1. Obtenez-la ici \: https\://console.x.ai/\n2. Configurez-la dans les paramètres ou via \:change-settings # Provider Configuration - Ollama -provider.ollama.baseurl.description=Base URL Ollama (défaut : http://localhost:11434) -provider.ollama.setup.help=💡 Pour utiliser Ollama, il doit s'exécuter localement.\n\n1. Installez : https://ollama.ai/\n2. Lancez le service\n3. Ajustez l'URL de base si nécessaire +provider.ollama.baseurl.description=Base URL Ollama (défaut \: http\://localhost\:11434) +provider.ollama.setup.help=💡 Pour utiliser Ollama, il doit s'exécuter localement.\n\n1. Installez \: https\://ollama.ai/\n2. Lancez le service\n3. Ajustez l'URL de base si nécessaire # Provider Configuration - Docker AI -provider.docker.baseurl.description=Base URL Docker AI (défaut : http://localhost:12434) +provider.docker.baseurl.description=Base URL Docker AI (défaut \: http\://localhost\:12434) provider.docker.setup.help=💡 Pour utiliser Docker AI, il doit s'exécuter localement.\n\n1. Assurez-vous que Docker AI est installé et en cours d'exécution\n2. Lancez le service\n3. Ajustez l'URL de base si nécessaire # Provider Configuration - LocalAI @@ -876,8 +874,8 @@ provider.localai.baseurl.description=Base URL LocalAI provider.localai.setup.help=💡 Pour utiliser LocalAI, vous devez l’exécuter d’abord.\n\n1. Installez et lancez LocalAI\n2. Configurez l’URL de base # Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=Base URL LMStudio (défaut : http://localhost:1234) -provider.lmstudio.setup.help=💡 Pour utiliser LMStudio :\n\n1. Installez : https://lmstudio.ai/\n2. Lancez le serveur local\n3. Modifier l’URL de base si nécessaire +provider.lmstudio.baseurl.description=Base URL LMStudio (défaut \: http\://localhost\:1234) +provider.lmstudio.setup.help=💡 Pour utiliser LMStudio \:\n\n1. Installez \: https\://lmstudio.ai/\n2. Lancez le serveur local\n3. Modifier l’URL de base si nécessaire provider.lmstudio.openai.compat.info=Askimo utilise les points de terminaison compatibles OpenAI (/v1), pas l’API LMStudio native (/api/v1/). # Provider Configuration - Open AI Compatible @@ -886,7 +884,7 @@ provider.openai_compatible.apikey.stored=La clé API est déjà stockée en tout # System Resources system.share.feedback=Partager vos commentaires -system.ai.provider.tooltip=Fournisseur d’IA : {0}\nCliquez pour configurer +system.ai.provider.tooltip=Fournisseur d’IA \: {0}\nCliquez pour configurer system.diagnostics.title=Diagnostics système system.diagnostics.resources=Ressources system.diagnostics.jvm.memory=Mémoire JVM (utilisée / totale) @@ -912,7 +910,7 @@ telemetry.llm.calls=Appels LLM telemetry.llm.calls.count={0} appels telemetry.llm.tokens={0} tok telemetry.llm.errors={0} err -telemetry.total.tokens=Tokens Totaux : {0} +telemetry.total.tokens=Tokens Totaux \: {0} telemetry.llm.col.provider=Fournisseur telemetry.llm.col.model=Modèle telemetry.llm.col.calls=Appels @@ -956,14 +954,15 @@ export.format.html.benefit.3=Aspect professionnel export.format.html.benefit.4=Facile à partager # Error Messages -error.network=⚠️ Impossible de se connecter au service IA{endpoint}\n\nVeuillez vérifier :\n• Votre connexion Internet\n• L’URL du service IA (vérifiez les paramètres)\n• Les paramètres du pare-feu\n• La disponibilité du service +error.network=⚠️ Impossible de se connecter au service IA{endpoint}\n\nVeuillez vérifier \:\n• Votre connexion Internet\n• L’URL du service IA (vérifiez les paramètres)\n• Les paramètres du pare-feu\n• La disponibilité du service error.authentication=⚠️ La clé API est manquante ou invalide{provider}\n\nCorrigez cela en configurant votre clé API dans les paramètres. -error.model_configuration=⚠️ Erreur de configuration du modèle : {issue}\n\nPour corriger :\n1. Ouvrez les paramètres\n2. Sélectionnez un fournisseur IA\n3. Choisissez un modèle dans la liste +error.model_configuration=⚠️ Erreur de configuration du modèle \: {issue}\n\nPour corriger \:\n1. Ouvrez les paramètres\n2. Sélectionnez un fournisseur IA\n3. Choisissez un modèle dans la liste +error.provider_not_configured=⚠️ Aucun fournisseur IA configuré.\n\nPour commencer à discuter \:\n1. Ouvrez les paramètres\n2. Sélectionnez un fournisseur IA (OpenAI, Ollama, Anthropic, etc.)\n3. Entrez votre clé API ou configurez la connexion error.rate_limit=⚠️ Limite d’utilisation atteinte\n{retryAfter}\n\nVous avez atteint votre limite d’utilisation de l’API. Veuillez patienter avant d’envoyer d’autres messages. error.insufficient_credits=⚠️ Crédits insuffisants\n\nVotre solde est trop faible pour utiliser ce fournisseur.\n\nVisitez la page de facturation pour ajouter des crédits. -error.timeout=⚠️ La requête a expiré après {timeout} secondes\n\nCauses possibles :\n• Charge serveur élevée – réessayez plus tard\n• Requête complexe – simplifiez-la\n• Latence réseau -error.invalid_request=⚠️ Requête invalide : {details}\n\nVeuillez vérifier votre saisie et réessayer. -error.system=⚠️ Erreur système\n\nUne erreur inattendue est survenue : {errorCode}\n\nVeuillez contacter le support Askimo avec :\n• Ce que vous faisiez\n• Le code d’erreur ci-dessus\n• L’horodatage +error.timeout=⚠️ La requête a expiré après {timeout} secondes\n\nCauses possibles \:\n• Charge serveur élevée – réessayez plus tard\n• Requête complexe – simplifiez-la\n• Latence réseau +error.invalid_request=⚠️ Requête invalide \: {details}\n\nVeuillez vérifier votre saisie et réessayer. +error.system=⚠️ Erreur système\n\nUne erreur inattendue est survenue \: {errorCode}\n\nVeuillez contacter le support Askimo avec \:\n• Ce que vous faisiez\n• Le code d’erreur ci-dessus\n• L’horodatage # Model Availability Errors error.model.not_available.title.chat=Modèle non disponible @@ -971,16 +970,15 @@ error.model.not_available.title.embedding=Modèle d’embedding non disponible error.model.not_available.message.chat=Le modèle ''{0}'' n’est pas disponible. error.model.not_available.message.embedding=Le modèle d’embedding ''{0}'' n’est pas disponible.\n\nVeuillez configurer correctement votre modèle d’embedding. error.model.not_available.config_link=Configurer le modèle d’embedding -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration # Generic Application Errors error.app.title=Une erreur s’est produite -error.app.message=Une erreur inattendue s’est produite : {0} +error.app.message=Une erreur inattendue s’est produite \: {0} # Send Message Errors error.send_message.title=Échec de l’envoi du message - # Indexing Errors error.indexing.model_not_found.title=Modèle d’embedding introuvable error.indexing.model_not_found.message=Le modèle d’embedding ''{0}'' est introuvable. Veuillez télécharger ou activer ce modèle depuis {1} avant l’indexation. @@ -989,16 +987,15 @@ error.indexing.io_error.message=Une erreur d’E/S s’est produite lors de l’ error.indexing.unknown.title=Erreur d’indexation error.indexing.unknown.message=Une erreur inconnue s’est produite lors de l’indexation - # Settings - Embedding Models (for RAG features) settings.embedding.rag_feature_only=État du modèle d’embedding (requis uniquement pour les fonctionnalités RAG) -settings.embedding.not_available_rag_only=⚠️ {0}.\n\nRemarque : cela affecte uniquement les fonctionnalités RAG basées sur les projets. Le chat standard fonctionne normalement. -settings.embedding.provider_unreachable=⚠️ Impossible de se connecter au fournisseur : {0}.\n\nRemarque : les modèles d’embedding sont nécessaires uniquement pour les fonctionnalités RAG basées sur les projets. -settings.embedding.check_failed=Échec de la vérification du modèle d’embedding : {0} +settings.embedding.not_available_rag_only=⚠️ {0}.\n\nRemarque \: cela affecte uniquement les fonctionnalités RAG basées sur les projets. Le chat standard fonctionne normalement. +settings.embedding.provider_unreachable=⚠️ Impossible de se connecter au fournisseur \: {0}.\n\nRemarque \: les modèles d’embedding sont nécessaires uniquement pour les fonctionnalités RAG basées sur les projets. +settings.embedding.check_failed=Échec de la vérification du modèle d’embedding \: {0} settings.embedding.download_model=Télécharger le modèle d’embedding -settings.embedding.download_success=✅ Modèle d’embedding téléchargé avec succès : {0} -settings.embedding.download_failed=❌ Échec du téléchargement du modèle d’embedding : {0}. Veuillez essayer manuellement : ollama pull {0} -settings.embedding.download_error=Erreur lors du téléchargement du modèle : {0} +settings.embedding.download_success=✅ Modèle d’embedding téléchargé avec succès \: {0} +settings.embedding.download_failed=❌ Échec du téléchargement du modèle d’embedding \: {0}. Veuillez essayer manuellement \: ollama pull {0} +settings.embedding.download_error=Erreur lors du téléchargement du modèle \: {0} settings.embedding.anthropic_no_embedding=Anthropic ne fournit pas de modèles d’embedding settings.embedding.xai_no_embedding=xAI ne fournit pas de modèles d’embedding @@ -1006,21 +1003,21 @@ settings.embedding.xai_no_embedding=xAI ne fournit pas de modèles d’embedding settings.rag.title=Configuration RAG settings.rag.description=Configurez les paramètres de la génération augmentée par la recherche pour la récupération de connaissances basée sur les projets settings.rag.vector.max.results=Nombre maximal de résultats de recherche vectorielle -settings.rag.vector.max.results.hint=Nombre maximal de documents issus de la recherche vectorielle (par défaut : 20) +settings.rag.vector.max.results.hint=Nombre maximal de documents issus de la recherche vectorielle (par défaut \: 20) settings.rag.vector.min.score=Score minimal de recherche vectorielle -settings.rag.vector.min.score.hint=Score de similarité minimal 0,0–1,0 (par défaut : 0,3) +settings.rag.vector.min.score.hint=Score de similarité minimal 0,0–1,0 (par défaut \: 0,3) settings.rag.hybrid.max.results=Résultats hybrides maximaux -settings.rag.hybrid.max.results.hint=Nombre final de documents après fusion (par défaut : 15) +settings.rag.hybrid.max.results.hint=Nombre final de documents après fusion (par défaut \: 15) settings.rag.rank.fusion.constant=Constante de fusion de classement -settings.rag.rank.fusion.constant.hint=Constante RRF pour le classement hybride (par défaut : 60) +settings.rag.rank.fusion.constant.hint=Constante RRF pour le classement hybride (par défaut \: 60) settings.rag.use.absolute.paths=Utiliser des chemins absolus dans les citations settings.rag.use.absolute.paths.hint=Afficher les chemins de fichiers complets dans les réponses de l’IA pour plus de clarté lorsque plusieurs fichiers portent le même nom settings.rag.embedding.title=Configuration des embeddings settings.rag.embedding.description=Configurez les paramètres de segmentation du texte et des embeddings settings.rag.embedding.max.chars.per.chunk=Nombre maximal de caractères par segment -settings.rag.embedding.max.chars.per.chunk.hint=Nombre maximal de caractères dans chaque segment de texte (par défaut : 1500) +settings.rag.embedding.max.chars.per.chunk.hint=Nombre maximal de caractères dans chaque segment de texte (par défaut \: 1500) settings.rag.embedding.chunk.overlap=Chevauchement des segments -settings.rag.embedding.chunk.overlap.hint=Nombre de caractères chevauchants entre les segments (par défaut : 100) +settings.rag.embedding.chunk.overlap.hint=Nombre de caractères chevauchants entre les segments (par défaut \: 100) settings.rag.embedding.models=Modèles d’embedding par fournisseur settings.rag.indexing.title=Configuration de l'indexation settings.rag.indexing.description=Contrôlez les fichiers indexés et la taille maximale de fichier autorisée @@ -1035,18 +1032,18 @@ settings.rag.indexing.binary.extensions.hint=Extensions de fichiers séparées p settings.rag.indexing.embedding.batch.size=Taille du lot d'embeddings settings.rag.indexing.embedding.batch.size.hint=Nombre de segments de texte envoyés au modèle d'embeddings par requête. Si l'indexation est lente et que vous utilisez un fournisseur distant (OpenAI, Gemini), essayez d'augmenter à 100–500. Avec un modèle local (Ollama, LM Studio), gardez cette valeur basse pour éviter les délais d'attente. -# Settings - Utility Models +## Settings - Utility Models settings.utility.models.title=Modèles utilitaires settings.utility.models.uses.selected=(utilise le modèle sélectionné) settings.utility.models.local.note={0} est un fournisseur local — le modèle de chat actif est utilisé automatiquement pour les tâches utilitaires. -# Settings - Vision Models +## Settings - Vision Models settings.vision.models.title=Modèles de vision ## Settings - Image Models settings.image.models.title=Modèles de génération d’images -# Settings - Provider Model Config +## Settings - Provider Model Config settings.provider.model.config.title=Configuration du modèle settings.provider.model.config.description=Remplacez les modèles par défaut utilisés pour des tâches spécifiques. Laissez un champ vide pour utiliser le modèle par défaut du fournisseur. settings.provider.model.config.guide=Voir le guide de configuration du modèle d'IA @@ -1057,26 +1054,25 @@ settings.provider.model.embedding.hint=Modèle utilisé pour générer des embed settings.model.placeholder.enter=Saisir le modèle {0} - # File Viewer Dialog file.viewer.title=Visionneuse de fichiers file.viewer.title.with.name=Visionneuse de fichiers - {0} file.viewer.dialog.close=Fermer file.viewer.copy.clipboard=Copier dans le presse-papiers -file.viewer.copied=Copié ! +file.viewer.copied=Copié \! # Mermaid Chart Renderer mermaid.setup.required.title=Mermaid CLI requis mermaid.setup.privacy.note=Askimo génère les diagrammes localement afin de protéger votre confidentialité. mermaid.setup.instructions.title=Instructions de configuration -mermaid.setup.instructions.text=Pour afficher des diagrammes Mermaid dans Askimo, veuillez suivre le guide d’installation à l’adresse suivante : -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.text=Pour afficher des diagrammes Mermaid dans Askimo, veuillez suivre le guide d’installation à l’adresse suivante \: +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=Ouvrir le guide de configuration mermaid.setup.button.copy.diagram=Copier le diagramme -mermaid.diagram.source.label=Source du diagramme : +mermaid.diagram.source.label=Source du diagramme \: mermaid.rendering.progress=Rendu du diagramme en cours... mermaid.error.rendering.title=Erreur lors du rendu du diagramme -mermaid.error.rendering.raw.label=Diagramme brut : +mermaid.error.rendering.raw.label=Diagramme brut \: mermaid.error.unexpected.state=État inattendu. Veuillez réessayer. mermaid.error.failed.load.image=Échec du chargement de l’image du diagramme mermaid.button.copy.code=Copier le code @@ -1086,7 +1082,8 @@ mermaid.button.zoom.in=Zoom avant mermaid.button.zoom.out=Zoom arrière mermaid.button.reset.zoom=Réinitialiser le zoom mermaid.button.retry=Réessayer -mermaid.feedback.copied=Copié ! +mermaid.feedback.copied=Copié \! + # Reference Material knowledge.source.type.folder=Dossier (surveillé pour les modifications) @@ -1104,9 +1101,9 @@ mcp.instances.title=Instances MCP mcp.instances.description=Ces instances MCP sont disponibles mcp.instances.empty=Aucune instance MCP configurée mcp.instances.count={0} instance(s) -mcp.instance.server.label=Serveur: {0} +mcp.instance.server.label=Serveur\: {0} mcp.instance.delete.confirm.title=Supprimer l'instance MCP ? -mcp.instance.delete.confirm.message=Êtes-vous sûr de vouloir supprimer l'instance mcp "{0}"? Cette action est irréversible. +mcp.instance.delete.confirm.message=Êtes-vous sûr de vouloir supprimer l''instance mcp "{0}"? Cette action est irréversible. mcp.instance.enable.tooltip=Activer cette instance MCP mcp.instance.disable.tooltip=Désactiver cette instance MCP mcp.instance.add.dialog.title=Ajouter une instance MCP @@ -1130,7 +1127,7 @@ mcp.instance.field.description=Description mcp.instance.field.description.placeholder=Brève description de ce que fait ce serveur mcp.instance.field.transport=Type de transport mcp.instance.field.command=Modèle de commande -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=Commande séparée par des espaces avec des espaces réservés {{parameter}} mcp.instance.validation.error.empty.id=L'ID du serveur ne peut pas être vide mcp.instance.validation.error.invalid.id.pattern=L'ID du serveur doit contenir uniquement des minuscules, des chiffres et des tirets @@ -1139,20 +1136,20 @@ mcp.instance.validation.error.empty.command=Le modèle de commande ne peut pas mcp.instance.validation.error.empty.parameter.key=La clé du paramètre ne peut pas être vide mcp.instance.validation.error.empty.parameter.label=L'étiquette du paramètre ne peut pas être vide mcp.instance.env.label=Variables d'environnement (Optionnel) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=Format : CLÉ=valeur ou CLÉ={{parameter}} (une par ligne) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=Format \: CLÉ\=valeur ou CLÉ\={{parameter}} (une par ligne) mcp.instance.transport.stdio=Stdio (Processus local) mcp.instance.transport.http=HTTP (Serveur distant) mcp.instance.http.url.label=Modèle d'URL -mcp.instance.http.url.placeholder=https://{{host}}/mcp ou https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp ou https\://api.example.com/mcp mcp.instance.http.url.hint=URL du point de terminaison du serveur. Utilisez des espaces réservés {{parameter}} pour les valeurs dynamiques mcp.instance.http.headers.label=En-têtes HTTP (Optionnel) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=Format : Nom-en-tête=valeur ou Nom-en-tête={{parameter}} (une par ligne) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=Format \: Nom-en-tête\=valeur ou Nom-en-tête\={{parameter}} (une par ligne) mcp.instance.http.timeout.label=Délai (ms) mcp.instance.http.timeout.hint=Délai de la requête en millisecondes mcp.instance.validation.error.empty.url=Le modèle d'URL ne peut pas être vide -mcp.instance.validation.error.invalid.url=Le modèle d'URL doit commencer par http:// ou https:// +mcp.instance.validation.error.invalid.url=Le modèle d'URL doit commencer par http\:// ou https\:// # MCP Integrations (Project View) mcp.instance.delete.tooltip=Supprimer l'instance MCP @@ -1202,7 +1199,7 @@ mcp.tools.dialog.search.count={0} de {1} outil(s) mcp.tools.dialog.search.empty=Aucun outil ne correspond à votre recherche mcp.tools.dialog.export=Exporter les outils mcp.tools.dialog.export.success=Outils exportés vers {0} -mcp.tools.dialog.export.failed=Échec de l'exportation des outils : {0} +mcp.tools.dialog.export.failed=Échec de l''exportation des outils \: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=Ajouter un serveur MCP @@ -1258,7 +1255,7 @@ file.viewer.close=Fermer la visionneuse file.viewer.open.external=Ouvrir en externe file.viewer.binary=Fichier binaire — impossible de prévisualiser sous forme de texte. file.viewer.too.large=Le fichier est trop volumineux pour être prévisualisé ({0} KB). Le maximum est de 512 KB. -file.viewer.error=Impossible de lire le fichier : {0} +file.viewer.error=Impossible de lire le fichier \: {0} file.viewer.select.prompt=Sélectionnez un fichier dans l'arborescence ci-dessus pour prévisualiser son contenu # Project Side Panel @@ -1267,15 +1264,14 @@ panel.context.menu=Menu contextuel panel.context.add.material=Ajouter du matériel de référence panel.context.reindex=Réindexer le projet panel.reindex.confirm.title=Arrêter et réindexer ? -panel.reindex.confirm.message="{0}" est en cours d'indexation. Arrêter l'indexation en cours et réindexer depuis le début ? +panel.reindex.confirm.message="{0}" est en cours d''indexation. Arrêter l''indexation en cours et réindexer depuis le début ? panel.reindex.confirm.button=Arrêter et réindexer panel.reindex.confirm.cancel=Annuler panel.collapse=Réduire le panneau -panel.collapse=Réduire le panneau # RAG Status rag.status.started=Indexation démarrée -rag.status.inprogress=Indexation : {0}% +rag.status.inprogress=Indexation \: {0}% rag.status.inprogress.unknown=Indexation... rag.status.queued=En file d'attente — en attente de la fin de l'indexation d'un autre projet rag.status.ready=Prêt @@ -1325,7 +1321,7 @@ plans.editor.label=Contenu YAML plans.editor.placeholder=Collez ou saisissez ici le YAML de votre plan... plans.editor.valid=YAML valide plans.editor.hint.title=Référence -plans.editor.hint.fields=Requis : id, name, steps\nOptionnel : description, icon, inputs, workflow\nTypes d’étape : text, multiline, toggle, number\nTypes de workflow : sequence, parallel, conditional +plans.editor.hint.fields=Requis \: id, name, steps\nOptionnel \: description, icon, inputs, workflow\nTypes d’étape \: text, multiline, toggle, number\nTypes de workflow \: sequence, parallel, conditional plans.editor.menu.edit=Modifier le YAML plans.editor.ai.label=Générer avec l'IA plans.editor.ai.placeholder=Décrivez ce que vous souhaitez que ce plan fasse en mots simples... @@ -1385,12 +1381,12 @@ skills.view.panel.collapse=Réduire le panneau skills.view.panel.expand=Développer le panneau skills.view.tab.skills=Compétences skills.view.tab.workspace=Espace de travail -skills.view.last.run=Dernière exécution : {0} +skills.view.last.run=Dernière exécution \: {0} skills.view.category.uncategorized=Autres skills.view.search.placeholder=Rechercher des compétences ... skills.view.search.clear=Effacer la recherche skills.view.context.placeholder=Que souhaitez-vous faire ? (facultatif) -skills.view.command.mode.hint=Mode commande : une saisie commençant par / est exécutée comme commande d'agent. +skills.view.command.mode.hint=Mode commande \: une saisie commençant par / est exécutée comme commande d'agent. skills.view.system.prompt.preview=Prompt système skills.view.response.title=Réponse skills.view.followup.label=Suivi @@ -1400,7 +1396,7 @@ skills.view.history.empty=Aucune exécution pour le moment skills.view.copy=Copier skills.view.system.prompt.file=fichier skills.view.system.prompt.files=fichiers -skills.view.system.prompt.also.included=Également inclus dans le contexte de l’agent : +skills.view.system.prompt.also.included=Également inclus dans le contexte de l’agent \: skills.view.docs.tooltip=Voir le guide des compétences skills.view.mode.agentic=Agentique skills.view.mode.manual=Manuel @@ -1445,7 +1441,7 @@ onboarding.step.analytics.section.never=Ce que nous ne collectons jamais onboarding.step.analytics.toggle.subtitle=Nous aide à nous concentrer sur l'essentiel · modifiable à tout moment dans Paramètres → Avancé # Onboarding Step 1: Welcome -onboarding.step.welcome.title=👋 Bienvenue sur Askimo ! +onboarding.step.welcome.title=👋 Bienvenue sur Askimo \! onboarding.step.welcome.description=Votre assistant IA personnel. Discutez avec plusieurs modèles IA, organisez vos connaissances en projets, et automatisez des workflows avec des skills et des plans. onboarding.step.welcome.feature1.title=💬 Discutez avec l’IA onboarding.step.welcome.feature1.description=Posez des questions, obtenez de l’aide pour des tâches ou discutez avec n’importe quel modèle IA. @@ -1472,9 +1468,8 @@ onboarding.step.directives.feature2.description=Des questions vagues produisent onboarding.step.directives.feature3.title=Le bon expert pour chaque tâche onboarding.step.directives.feature3.description=Besoin d’un tuteur patient pour apprendre et d’un relecteur de code direct pour le débogage ? Gardez des instructions séparées et obtenez l’état d’esprit adapté à chaque tâche. onboarding.step.directives.link=Voir exemples et astuces - # Onboarding Step 6: Ready -onboarding.step.ready.title=🚀 Tout est prêt ! +onboarding.step.ready.title=🚀 Tout est prêt \! onboarding.step.ready.description=Tout est configuré et prêt à l’emploi. Démarrez votre première discussion ou explorez les ressources ci-dessous. onboarding.step.ready.link.docs=📚 Parcourir la documentation onboarding.step.ready.link.providers=🔧 Configurer les fournisseurs IA @@ -1484,13 +1479,13 @@ onboarding.step.ready.link.github=⭐ Ajoutez-nous à vos favoris sur GitHub onboarding.step.persona.title=🎯 Que voulez-vous faire principalement ? onboarding.step.persona.description=Choisissez l'option qui ressemble le plus à votre travail. Askimo affichera les fonctionnalités les plus pertinentes. Vous pourrez toujours modifier cela depuis le menu Affichage. onboarding.step.persona.developer.description=Lire et écrire du code, remanier des fichiers, générer des structures ou exécuter des tâches agentiques sur votre projet local. -onboarding.step.persona.developer.features=Active : Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=Active \: Skills (Gemini CLI, Claude Code), Projects onboarding.step.persona.researcher.description=Rechercher des sujets, analyser des données, rédiger des rapports structurés et obtenir des réponses basées sur les connaissances. -onboarding.step.persona.researcher.features=Active : Plans, Projects (RAG) +onboarding.step.persona.researcher.features=Active \: Plans, Projects (RAG) onboarding.step.persona.manager.description=Rédiger des e-mails, traiter des notes de réunion, écrire des rapports d'état ou exécuter des flux de travail de contenu en plusieurs étapes. -onboarding.step.persona.manager.features=Active : Plans +onboarding.step.persona.manager.features=Active \: Plans onboarding.step.persona.everything.description=Je fais un mélange de choses — montrez-moi toutes les fonctionnalités et je déciderai quoi utiliser. -onboarding.step.persona.everything.features=Active : Skills, Plans, Projects, MCP, RAG +onboarding.step.persona.everything.features=Active \: Skills, Plans, Projects, MCP, RAG # Persona labels persona.developer=💻 Écrire et réviser du code From 35812f8cfdc41558e1f624ac602991403e74bad5 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:42:51 -0700 Subject: [PATCH 002/251] New translations messages.properties (Spanish) [ci skip] --- .../resources/i18n/messages_es.properties | 226 +++++++++--------- 1 file changed, 112 insertions(+), 114 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 46503f67a..ded48d564 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -1,4 +1,4 @@ -# Askimo Desktop Application - Spanish Strings (Comments Preserved) +# Askimo Desktop Application - English Strings # Application @@ -43,7 +43,7 @@ menu.help.share=🗣 Compartir Askimo menu.help.share.x=Compartir en X / Twitter menu.help.share.linkedin=Compartir en LinkedIn menu.help.share.facebook=Compartir en Facebook -menu.help.share.text=Descubre Askimo: un cliente de escritorio de IA gratuito y local. Funciona con Ollama, OpenAI, Anthropic y más. https://askimo.chat +menu.help.share.text=Descubre Askimo\: un cliente de escritorio de IA gratuito y local. Funciona con Ollama, OpenAI, Anthropic y más. https\://askimo.chat menu.help.share.hackernews=Publicar en Hacker News menu.eventlog=Registro de eventos menu.help.model.capabilities=Abrir archivo de capacidades del modelo @@ -52,7 +52,6 @@ menu.about=Acerca de Askimo menu.help.check.updates=Buscar actualizaciones... menu.help.diagnostics=Diagnóstico del sistema... - # Common Dialog Buttons dialog.cancel=Cancelar dialog.close=Cerrar @@ -60,16 +59,16 @@ dialog.close=Cerrar # Backup and Restore backup.export.title=Exportar copia de seguridad backup.export.success.title=Copia de seguridad exportada -backup.export.success.message=Copia de seguridad exportada correctamente a:\n{0} +backup.export.success.message=Copia de seguridad exportada correctamente a\:\n{0} backup.export.error.title=Error al exportar -backup.export.error.message=No se pudo exportar la copia de seguridad:\n{0} +backup.export.error.message=No se pudo exportar la copia de seguridad\:\n{0} backup.import.title=Importar copia de seguridad backup.import.confirm.title=Confirmar importación backup.import.confirm.message=Esta acción reemplazará todos los datos actuales con la copia de seguridad.\n\nSe creará automáticamente una copia de seguridad de seguridad antes de importar.\n\n¿Está seguro de que desea continuar? backup.import.success.title=Copia de seguridad importada backup.import.success.message=Copia de seguridad importada correctamente.\n\nReinicie Askimo para que todos los cambios surtan efecto. backup.import.error.title=Error al importar -backup.import.error.message=No se pudo importar la copia de seguridad:\n{0} +backup.import.error.message=No se pudo importar la copia de seguridad\:\n{0} # Event Log eventlog.title=Registro de eventos ({0}) @@ -142,7 +141,7 @@ session.rename.error.empty=El título no puede estar vacío session.export.file.chooser.title=Guardar historial del chat session.export.button.export=Exportar session.export.success.title=Exportación exitosa -session.export.success.message=La sesión ha sido exportada correctamente a: +session.export.success.message=La sesión ha sido exportada correctamente a\: # Projects project.title=Proyectos @@ -158,11 +157,11 @@ project.new.dialog.file.browse=Seleccionar archivos para procesar... project.new.dialog.sources.label=Materiales de referencia (opcional) project.new.dialog.sources.add=Agregar fuente project.new.dialog.error.empty.name=El nombre del proyecto no puede estar vacío -project.new.dialog.error.create.failed=No se pudo crear el proyecto: {0} +project.new.dialog.error.create.failed=No se pudo crear el proyecto\: {0} project.new.dialog.name.error.empty=El nombre del proyecto no puede estar vacío project.new.dialog.button.create=Crear proyecto project.new.dialog.button.cancel=Cancelar -project.new.dialog.success.title=¡Proyecto creado con éxito! +project.new.dialog.success.title=¡Proyecto creado con éxito\! project.new.dialog.success.message=El proyecto ''{0}'' ha sido creado. project.new.dialog.success.countdown=Cerrando en {0} segundo{1}... project.new.dialog.success.close=Cerrar ahora @@ -185,7 +184,7 @@ projects.title=Proyectos projects.description=Organiza tus chats en torno a un tema y adjunta archivos, carpetas o URL como fuentes de conocimiento, para que la IA siempre tenga el contexto adecuado para ese proyecto. projects.error=❌ {0} projects.empty=No se encontraron proyectos. -projects.empty.hint=💡 ¡Crea un nuevo proyecto para organizar tus sesiones de chat! +projects.empty.hint=💡 ¡Crea un nuevo proyecto para organizar tus sesiones de chat\! projects.search.placeholder=Buscar por nombre… projects.search.empty=Ningún proyecto coincide con "{0}". projects.col.name=Nombre @@ -196,13 +195,16 @@ projects.sources.expand=Mostrar materiales de referencia projects.sources.collapse=Ocultar materiales de referencia projects.sources.empty.title=Aún no hay materiales de referencia projects.sources.empty.description=Añada documentos para que Askimo pueda consultarlos al responder a sus preguntas -projects.sources.info.tooltip=Los materiales de referencia ayudan a Askimo a comprender su contexto específico.\n\n\ -Añada carpetas, archivos o sitios web que contengan la información que desea que Askimo utilice al responder preguntas.\n\n\ -Por ejemplo:\n\ +projects.sources.info.tooltip=Los materiales de referencia ayudan a Askimo a comprender su contexto específico.\n\ +\n\ +Añada carpetas, archivos o sitios web que contengan la información que desea que Askimo utilice al responder preguntas.\n\ +\n\ +Por ejemplo\:\n\ • Documentación de su proyecto\n\ • Base de conocimiento de la empresa\n\ • Especificaciones técnicas\n\ -• Artículos de investigación\n\n\ +• Artículos de investigación\n\ +\n\ Askimo buscará en estos materiales para proporcionar respuestas más precisas y contextualizadas. projects.sources.type.local_folders=Carpetas Locales projects.sources.type.local_files=Archivos Locales @@ -229,8 +231,8 @@ project.reindex=Reindexar proyecto project.menu.tooltip=Menú del proyecto project.new.chat.placeholder=Nuevo chat en {0} project.recent.chats=Chats recientes -project.no.chats=Aún no hay chats. ¡Comienza uno nuevo abajo! -project.indexing.label=Indexación de la fuente de conocimiento: {0} +project.no.chats=Aún no hay chats. ¡Comienza uno nuevo abajo\! +project.indexing.label=Indexación de la fuente de conocimiento\: {0} project.indexing.queued=Indexación en cola - esperando a que termine otro proyecto... project.indexing.failed=La indexación falló. Intente volver a indexar desde el menú del proyecto. project.indexing.ready.label=Indexado @@ -250,7 +252,7 @@ settings.appearance=Apariencia settings.appearance.accent=Color de acento settings.appearance.accent.description=Personaliza con seguridad un solo color de acento. Askimo lo aplica a los acentos principales de la interfaz y deriva colores relacionados para mantener la legibilidad. settings.appearance.accent.label=Color de acento (Hex) -settings.appearance.accent.invalid=Introduce un color hexadecimal válido como #0284C7 +settings.appearance.accent.invalid=Introduce un color hexadecimal válido como \#0284C7 settings.appearance.accent.swatch.primary=Primario settings.appearance.accent.swatch.primary.container=Contenedor settings.appearance.accent.swatch.on.primary.container=Sobre el contenedor @@ -274,7 +276,7 @@ settings.network.description=Configurar ajustes de red y proxy settings.mcp.servers=Servidores MCP settings.skills=Habilidades settings.skills.description=Skills son agentes de IA reutilizables que se ejecutan directamente en su máquina. Cada skill es un archivo Markdown con un prompt de sistema e instrucciones. Cuando ejecutas un skill, se ejecuta a través de {0} — leyendo y escribiendo sus archivos, ejecutando comandos de shell e iterando hasta que la tarea esté completa. No es necesario copiar y pegar. -settings.skills.runtimes=Entornos de ejecución compatibles: +settings.skills.runtimes=Entornos de ejecución compatibles\: settings.skills.directory=Directorio de habilidades settings.skills.open.folder=Abrir carpeta settings.skills.new.skill=Nueva habilidad @@ -352,7 +354,7 @@ layout.density.comfortable.description=Espaciado más generoso para facilitar la layout.density.compact=Compacto layout.density.compact.description=Espaciado más ajustado para mostrar más contenido settings.background.image=Imagen de fondo -settings.background.image.description=Elige una imagen de fondo: selecciona una predefinida o usa tu propia imagen. Una superposición translúcida mantiene el texto legible. Las imágenes de fondo son independientes del tema seleccionado. +settings.background.image.description=Elige una imagen de fondo\: selecciona una predefinida o usa tu propia imagen. Una superposición translúcida mantiene el texto legible. Las imágenes de fondo son independientes del tema seleccionado. settings.background.image.browse=Examinar settings.background.image.custom=Imagen personalizada settings.appearance.avatar.ai=Avatar del asistente de IA @@ -365,11 +367,11 @@ settings.log.viewer=Archivos de registro settings.log.viewer.description=Ver registros y diagnósticos settings.log.viewer.view=Ver registros settings.log.viewer.open_folder=Abrir carpeta de registros -settings.log.viewer.path=Archivo de registro: {0} +settings.log.viewer.path=Archivo de registro\: {0} settings.log.viewer.dialog.title=Registros de la aplicación settings.log.viewer.refresh=Actualizar settings.log.viewer.copy=Copiar -settings.log.viewer.copied=¡Copiado! +settings.log.viewer.copied=¡Copiado\! settings.log.viewer.loading=Cargando registros... settings.log.viewer.error=Error al cargar registros settings.log.viewer.empty=No hay registros disponibles @@ -427,7 +429,7 @@ user.profile.interests.custom.placeholder=p. ej., Aprendizaje automático, Fotog user.profile.interests.custom.hint=Separe varios intereses con comas # Welcome Dialog (First Run) -welcome.title=¡Bienvenido a Askimo! +welcome.title=¡Bienvenido a Askimo\! welcome.subtitle=Ayúdenos a personalizar su experiencia con la IA welcome.avatar.optional=Haga clic para añadir una foto (opcional) welcome.name=Su nombre @@ -466,6 +468,7 @@ user.interest.environment=Medio ambiente # Actions action.delete=Eliminar +action.remove=Eliminar action.edit=Editar action.pin=Fijar en la barra lateral action.unpin=Desfijar de la barra lateral @@ -489,7 +492,7 @@ action.refresh=Actualizar # Happiness Gate (shown before Star Prompt) happiness.gate.title=¿Cómo te está yendo con Askimo? happiness.gate.subtitle=Cuéntanos cómo nos estamos desenvolviendo -happiness.gate.happy=¡Me encanta! 😍 +happiness.gate.happy=¡Me encanta\! 😍 happiness.gate.neutral=Está bien 🙂 happiness.gate.unhappy=No mucho 😕 happiness.gate.feedback.title=Ayúdanos a mejorar @@ -530,10 +533,8 @@ file.overwrite.message=Este archivo ya existe. ¿Quieres sobrescribirlo? file.overwrite.confirm=Sobrescribir file.name.too.long=El nombre del archivo es demasiado largo. Usa un nombre más corto (máximo 255 caracteres). - # About about.title=Acerca de {0} -action.remove=Eliminar about.version=Versión about.buildDate=Fecha de compilación about.buildJdk=JDK de compilación @@ -574,7 +575,7 @@ shortcut.send.message=Enviar mensaje shortcut.new.line=Nueva línea # Chat View -chat.welcome=¡Bienvenido a Askimo!\nComienza una conversación escribiendo un mensaje abajo. +chat.welcome=¡Bienvenido a Askimo\!\nComienza una conversación escribiendo un mensaje abajo. chat.no.active.session=Seleccione una sesión en la barra lateral o inicie un nuevo chat chat.search.placeholder=Buscar en la conversación... chat.search.no.results=Sin resultados @@ -612,7 +613,7 @@ global.search.results.count={0} resultado encontrado global.search.results.count.plural={0} resultados encontrados # Rest of chat view strings -chat.directive=Directiva: +chat.directive=Directiva\: chat.directive.none=Ninguna chat.directive.new=Nueva directiva chat.directive.manage=Gestionar directivas @@ -649,7 +650,7 @@ chat.attachment.remove=Eliminar archivo adjunto chat.attachment.preview.loading=Cargando vista previa… chat.attachment.preview.file.not.found=(Archivo no encontrado) chat.attachment.preview.too.large=(Archivo demasiado grande para la vista previa) -chat.attachment.preview.cannot.read=(No se puede leer el archivo: {0}) +chat.attachment.preview.cannot.read=(No se puede leer el archivo\: {0}) chat.attachment.preview.more.lines={0} líneas más # Sessions View @@ -661,12 +662,12 @@ sessions.col.created=Creado sessions.col.updated=Actualizado sessions.error=❌ {0} sessions.empty=No se encontraron sesiones. -sessions.empty.hint=💡 ¡Inicia un chat nuevo para crear tu primera sesión! +sessions.empty.hint=💡 ¡Inicia un chat nuevo para crear tu primera sesión\! sessions.search.placeholder=Buscar por título… sessions.search.empty=Ninguna sesión coincide con "{0}". -# Controles genéricos de paginación de tablas -table.page.size.label=Filas por página: +# Generic table pagination controls +table.page.size.label=Filas por página\: table.page=Página {0} de {1} table.page.previous=Página anterior table.page.next=Página siguiente @@ -680,10 +681,9 @@ sessions.error.not.found=Sesión no encontrada. sessions.error.rename.failed=Fallo al renombrar sesión. # ChatSessionService Errors - # Update Check update.dialog.title=Actualización de software -update.dialog.new.version.available=¡Hay una nueva versión de Askimo disponible! +update.dialog.new.version.available=¡Hay una nueva versión de Askimo disponible\! update.urgency.medium=Llevas {0} versiones de retraso — puede que te estés perdiendo correcciones importantes y nuevas funciones. update.urgency.high=Llevas {0} versiones de retraso — te estás perdiendo mejoras significativas. Por favor, actualiza pronto. update.dialog.current.version.label=Versión actual @@ -694,7 +694,7 @@ update.dialog.download=Descargar ahora update.dialog.how.to.update=Cómo actualizar update.dialog.later=Más tarde update.dialog.skip.version=Omitir esta versión -update.check.up.to.date=¡Ya estás usando la última versión! +update.check.up.to.date=¡Ya estás usando la última versión\! update.check.failed=Fallo al buscar actualizaciones # Event Names @@ -722,15 +722,15 @@ settings.app.language.translation.contribute=Contribuir en Crowdin settings.ai.response.language=Idioma de respuesta preferido settings.ai.response.language.description=Forzar a la IA a responder en un idioma específico (dejar vacío para detección automática) settings.ai.response.language.auto=Detección automática -settings.ai.response.language.tooltip=La IA detecta automáticamente tu idioma, pero anúlalo cuando:\n• Aprendizaje de idiomas (práctica inmersiva)\n• Consistencia profesional (ej: docs de código siempre en inglés)\n• Optimización RAG (coincidir con el idioma de la base de conocimientos)\n• Enseñanza (preguntar en un idioma, explicar en otro)\n• Evitar cambios de idioma no deseados -settings.model.select=Seleccionar modelo para {0}: +settings.ai.response.language.tooltip=La IA detecta automáticamente tu idioma, pero anúlalo cuando\:\n• Aprendizaje de idiomas (práctica inmersiva)\n• Consistencia profesional (ej\: docs de código siempre en inglés)\n• Optimización RAG (coincidir con el idioma de la base de conocimientos)\n• Enseñanza (preguntar en un idioma, explicar en otro)\n• Evitar cambios de idioma no deseados +settings.model.select=Seleccionar modelo para {0}\: settings.model.loading=Cargando modelos... settings.model.none=No hay modelos disponibles settings.model.select.title=Seleccionar modelo settings.model.current=Modelo actual settings.model.selected=Modelo seleccionado settings.model.new=Nuevo modelo -settings.model.change.description=Elige un modelo de la lista a continuación: +settings.model.change.description=Elige un modelo de la lista a continuación\: settings.model.search=Buscar modelos settings.model.search.placeholder=Escribe para filtrar modelos... settings.model.filtered=Mostrando {0} de {1} modelos @@ -738,22 +738,22 @@ settings.model.no.match=No hay coincidencias settings.model.no.results=No hay coincidencias settings.configure.title=Configurar {0} settings.test.connection.testing=Probando... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=No se pudo conectar al proveedor. Verifique que su clave API sea correcta (para proveedores en la nube) o que su URL base sea accesible (para proveedores locales). Puede encontrar instrucciones de configuración usando el enlace de ayuda de arriba. # Directives Dialog directive.manage.title=Gestionar directivas -directive.manage.empty=No hay directivas. ¡Crea una para comenzar! +directive.manage.empty=No hay directivas. ¡Crea una para comenzar\! directive.edit.name.label=Nombre directive.edit.name.placeholder=Escribe el nombre de la directiva... directive.edit.content.label=Contenido directive.edit.content.placeholder=Escribe las instrucciones de la directiva... directive.edit.name.required=El nombre es obligatorio directive.edit.content.required=El contenido es obligatorio -directive.created=Creado: {0} +directive.created=Creado\: {0} directive.new.title=Nueva directiva directive.new.guidelines=Las directivas guían cómo responde la IA a tus mensajes. Sé específico sobre el tono, nivel de detalle, formato o cualquier requisito especial que necesites. -directive.new.name.placeholder=ej.: concise-code, explain-like-im-5 +directive.new.name.placeholder=ej.\: concise-code, explain-like-im-5 directive.new.content.placeholder=Escribe las instrucciones... directive.new.apply.current=Aplicar a la sesión actual directive.new.create=Crear @@ -765,8 +765,8 @@ directive.export.tooltip=Exportar todas las directivas a un archivo JSON para co directive.export.filename=askimo-directives directive.import=Importar directive.import.tooltip=Importar directivas desde un archivo JSON -directive.import.result=Importación completa: {0} importadas, {1} renombradas, {2} omitidas -directive.import.error=Error al importar: formato de archivo no válido o no compatible +directive.import.result=Importación completa\: {0} importadas, {1} renombradas, {2} omitidas +directive.import.error=Error al importar\: formato de archivo no válido o no compatible # Log Levels log.level.error=Error @@ -815,7 +815,7 @@ message.edited.indicator=(editado) message.date.today=Hoy message.date.yesterday=Ayer message.token.usage={0} tokens · {1} de entrada / {2} de salida -message.token.usage.tooltip=Tokens utilizados por esta respuesta.\nEntrada: su prompt + contexto enviado a la IA.\nSalida: la respuesta generada por la IA. +message.token.usage.tooltip=Tokens utilizados por esta respuesta.\nEntrada\: su prompt + contexto enviado a la IA.\nSalida\: la respuesta generada por la IA. attachment.download=Descargar adjunto attachment.download.description=Descargar este archivo adjunto attachment.save.file=Guardar adjunto @@ -830,8 +830,8 @@ provider.select.title=Seleccionar proveedor provider.setup.required.title=Configuración de proveedor IA necesaria provider.setup.required.message=Selecciona y configura un proveedor IA antes de comenzar a chatear. provider.setup.required.button=Configurar -provider.select.prompt=Seleccionar proveedor: -provider.configure.prompt=Configurar: +provider.select.prompt=Seleccionar proveedor\: +provider.configure.prompt=Configurar\: provider.choose.placeholder=Escoge un proveedor... provider.setup.guide=Cómo configurar {0} provider.apikey.stored=Clave API almacenada de forma segura @@ -842,31 +842,31 @@ provider.apikey.security.link=Aprende cómo protegemos tus datos provider.not.set=No configurado # Provider Configuration - OpenAI -provider.openai.apikey.description=Tu clave API de OpenAI: https://platform.openai.com/account/api-keys +provider.openai.apikey.description=Tu clave API de OpenAI\: https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=Clave API ya almacenada. Deja en blanco para mantener la actual. -provider.openai.setup.help=💡 Para usar OpenAI necesitas una clave API.\n\n1. Consíguela aquí: https://platform.openai.com/account/api-keys\n2. Configúrala en los ajustes o con :change-settings +provider.openai.setup.help=💡 Para usar OpenAI necesitas una clave API.\n\n1. Consíguela aquí\: https\://platform.openai.com/account/api-keys\n2. Configúrala en los ajustes o con \:change-settings # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Tu clave API de Anthropic: https://console.anthropic.com/ +provider.anthropic.apikey.description=Tu clave API de Anthropic\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=Clave API ya almacenada. -provider.anthropic.setup.help=💡 Para usar Anthropic, necesitas una clave API.\n\n1. Consíguela en: https://console.anthropic.com/\n2. Configúrala en los ajustes o con :change-settings +provider.anthropic.setup.help=💡 Para usar Anthropic, necesitas una clave API.\n\n1. Consíguela en\: https\://console.anthropic.com/\n2. Configúrala en los ajustes o con \:change-settings # Provider Configuration - Gemini -provider.gemini.apikey.description=Tu clave API de Google AI Studio: https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Tu clave API de Google AI Studio\: https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=Clave API ya almacenada. -provider.gemini.setup.help=💡 Para usar Gemini, necesitas una clave API.\n\n1. Consíguela en: https://aistudio.google.com/app/apikey\n2. Configúrala en los ajustes o con :change-settings +provider.gemini.setup.help=💡 Para usar Gemini, necesitas una clave API.\n\n1. Consíguela en\: https\://aistudio.google.com/app/apikey\n2. Configúrala en los ajustes o con \:change-settings # Provider Configuration - XAI -provider.xai.apikey.description=Tu clave API de XAI: https://console.x.ai/ +provider.xai.apikey.description=Tu clave API de XAI\: https\://console.x.ai/ provider.xai.apikey.stored=Clave API ya almacenada. -provider.xai.setup.help=💡 Para usar XAI, necesitas una clave API.\n\n1. Consíguela en: https://console.x.ai/\n2. Configúrala en los ajustes o con :change-settings +provider.xai.setup.help=💡 Para usar XAI, necesitas una clave API.\n\n1. Consíguela en\: https\://console.x.ai/\n2. Configúrala en los ajustes o con \:change-settings # Provider Configuration - Ollama -provider.ollama.baseurl.description=Base URL de Ollama (por defecto: http://localhost:11434) -provider.ollama.setup.help=💡 Para usar Ollama, debe estar ejecutándose localmente.\n\n1. Instálalo desde: https://ollama.ai/\n2. Ejecuta el servicio\n3. Ajusta la URL base si es necesario +provider.ollama.baseurl.description=Base URL de Ollama (por defecto\: http\://localhost\:11434) +provider.ollama.setup.help=💡 Para usar Ollama, debe estar ejecutándose localmente.\n\n1. Instálalo desde\: https\://ollama.ai/\n2. Ejecuta el servicio\n3. Ajusta la URL base si es necesario # Provider Configuration - Docker AI -provider.docker.baseurl.description=Base URL de Docker AI (por defecto: http://localhost:12434) +provider.docker.baseurl.description=Base URL de Docker AI (por defecto\: http\://localhost\:12434) provider.docker.setup.help=💡 Para usar Docker AI, debe estar ejecutándose localmente.\n\n1. Asegúrate de que Docker AI esté instalado y ejecutándose\n2. Ejecuta el servicio\n3. Ajusta la URL base si es necesario # Provider Configuration - LocalAI @@ -874,8 +874,8 @@ provider.localai.baseurl.description=Base URL de LocalAI provider.localai.setup.help=💡 Para usar LocalAI, debes ejecutarlo primero.\n\n1. Instala y ejecuta LocalAI\n2. Configura la URL base # Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=Base URL de LMStudio (por defecto: http://localhost:1234) -provider.lmstudio.setup.help=💡 Para usar LMStudio:\n\n1. Instálalo desde: https://lmstudio.ai/\n2. Ejecuta el servidor local\n3. Ajusta la URL base si es necesario +provider.lmstudio.baseurl.description=Base URL de LMStudio (por defecto\: http\://localhost\:1234) +provider.lmstudio.setup.help=💡 Para usar LMStudio\:\n\n1. Instálalo desde\: https\://lmstudio.ai/\n2. Ejecuta el servidor local\n3. Ajusta la URL base si es necesario provider.lmstudio.openai.compat.info=Askimo utiliza los endpoints compatibles con OpenAI (/v1), no la API nativa de LMStudio (/api/v1/). # Provider Configuration - Open AI Compatible @@ -884,7 +884,7 @@ provider.openai_compatible.apikey.stored=La clave API ya está almacenada de for # System Resources system.share.feedback=Compartir comentarios -system.ai.provider.tooltip=Proveedor de IA: {0}\nHaz clic para configurar +system.ai.provider.tooltip=Proveedor de IA\: {0}\nHaz clic para configurar system.diagnostics.title=Diagnóstico del sistema system.diagnostics.resources=Recursos system.diagnostics.jvm.memory=Memoria JVM (usada / total) @@ -910,7 +910,7 @@ telemetry.llm.calls=Llamadas LLM telemetry.llm.calls.count={0} llamadas telemetry.llm.tokens={0} tok telemetry.llm.errors={0} err -telemetry.total.tokens=Tokens Totales: {0} +telemetry.total.tokens=Tokens Totales\: {0} telemetry.llm.col.provider=Proveedor telemetry.llm.col.model=Modelo telemetry.llm.col.calls=Llamadas @@ -954,14 +954,15 @@ export.format.html.benefit.3=Apariencia profesional export.format.html.benefit.4=Fácil de compartir # Error Messages -error.network=⚠️ No se puede conectar al servicio de IA{endpoint}\n\nPor favor, compruebe:\n• Su conexión a Internet\n• La URL del servicio de IA (revise la configuración)\n• La configuración del firewall\n• La disponibilidad del servicio +error.network=⚠️ No se puede conectar al servicio de IA{endpoint}\n\nPor favor, compruebe\:\n• Su conexión a Internet\n• La URL del servicio de IA (revise la configuración)\n• La configuración del firewall\n• La disponibilidad del servicio error.authentication=⚠️ La clave API no es válida o falta{provider}\n\nSolucione esto configurando su clave API en Ajustes. -error.model_configuration=⚠️ Error de configuración del modelo: {issue}\n\nSolución:\n1. Abrir Ajustes\n2. Seleccionar un proveedor de IA\n3. Elegir un modelo de la lista +error.model_configuration=⚠️ Error de configuración del modelo\: {issue}\n\nSolución\:\n1. Abrir Ajustes\n2. Seleccionar un proveedor de IA\n3. Elegir un modelo de la lista +error.provider_not_configured=⚠️ No hay ningún proveedor de IA configurado.\n\nPara comenzar a chatear\:\n1. Abre los Ajustes\n2. Selecciona un proveedor de IA (OpenAI, Ollama, Anthropic, etc.)\n3. Introduce tu API key o configura la conexión error.rate_limit=⚠️ Límite de uso excedido\n{retryAfter}\n\nHa alcanzado su límite de uso de la API. Espere antes de enviar más mensajes. error.insufficient_credits=⚠️ Créditos insuficientes\n\nSu saldo de créditos es demasiado bajo.\n\nVaya a la página de facturación para añadir créditos. -error.timeout=⚠️ La solicitud expiró después de {timeout} segundos\n\nPosibles causas:\n• Alta carga del servidor – intente nuevamente más tarde\n• Consulta compleja – intente simplificarla\n• Latencia de red -error.invalid_request=⚠️ Solicitud no válida: {details}\n\nRevise su entrada e inténtelo de nuevo. -error.system=⚠️ Error del sistema\n\nOcurrió un error inesperado: {errorCode}\n\nContacte al soporte de Askimo con:\n• Lo que estaba haciendo\n• El código de error anterior\n• La marca de tiempo +error.timeout=⚠️ La solicitud expiró después de {timeout} segundos\n\nPosibles causas\:\n• Alta carga del servidor – intente nuevamente más tarde\n• Consulta compleja – intente simplificarla\n• Latencia de red +error.invalid_request=⚠️ Solicitud no válida\: {details}\n\nRevise su entrada e inténtelo de nuevo. +error.system=⚠️ Error del sistema\n\nOcurrió un error inesperado\: {errorCode}\n\nContacte al soporte de Askimo con\:\n• Lo que estaba haciendo\n• El código de error anterior\n• La marca de tiempo # Model Availability Errors error.model.not_available.title.chat=Modelo no disponible @@ -969,11 +970,11 @@ error.model.not_available.title.embedding=Modelo de incrustación no disponible error.model.not_available.message.chat=El modelo ''{0}'' no está disponible. error.model.not_available.message.embedding=El modelo de incrustación ''{0}'' no está disponible.\n\nConfigura correctamente tu modelo de incrustación. error.model.not_available.config_link=Configurar modelo de incrustación -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration # Generic Application Errors error.app.title=Algo salió mal -error.app.message=Ocurrió un error inesperado: {0} +error.app.message=Ocurrió un error inesperado\: {0} # Send Message Errors error.send_message.title=No se pudo enviar el mensaje @@ -986,16 +987,15 @@ error.indexing.io_error.message=Se produjo un error de E/S durante la indexació error.indexing.unknown.title=Error de indexación error.indexing.unknown.message=Se produjo un error desconocido durante la indexación - # Settings - Embedding Models (for RAG features) settings.embedding.rag_feature_only=Estado del modelo de incrustación (solo requerido para funciones RAG) -settings.embedding.not_available_rag_only=⚠️ {0}.\n\nNota: Esto solo afecta a las funciones RAG basadas en proyectos. El chat normal seguirá funcionando. -settings.embedding.provider_unreachable=⚠️ No se puede conectar con el proveedor: {0}.\n\nNota: Los modelos de incrustación solo son necesarios para funciones RAG basadas en proyectos. -settings.embedding.check_failed=No se pudo verificar el modelo de incrustación: {0} +settings.embedding.not_available_rag_only=⚠️ {0}.\n\nNota\: Esto solo afecta a las funciones RAG basadas en proyectos. El chat normal seguirá funcionando. +settings.embedding.provider_unreachable=⚠️ No se puede conectar con el proveedor\: {0}.\n\nNota\: Los modelos de incrustación solo son necesarios para funciones RAG basadas en proyectos. +settings.embedding.check_failed=No se pudo verificar el modelo de incrustación\: {0} settings.embedding.download_model=Descargar modelo de incrustación -settings.embedding.download_success=✅ Modelo de incrustación descargado correctamente: {0} -settings.embedding.download_failed=❌ No se pudo descargar el modelo de incrustación: {0}. Intente manualmente: ollama pull {0} -settings.embedding.download_error=Error al descargar el modelo: {0} +settings.embedding.download_success=✅ Modelo de incrustación descargado correctamente\: {0} +settings.embedding.download_failed=❌ No se pudo descargar el modelo de incrustación\: {0}. Intente manualmente\: ollama pull {0} +settings.embedding.download_error=Error al descargar el modelo\: {0} settings.embedding.anthropic_no_embedding=Anthropic no proporciona modelos de incrustación settings.embedding.xai_no_embedding=xAI no proporciona modelos de incrustación @@ -1003,21 +1003,21 @@ settings.embedding.xai_no_embedding=xAI no proporciona modelos de incrustación settings.rag.title=Configuración de RAG settings.rag.description=Configura los parámetros de Retrieval-Augmented Generation para la recuperación de conocimiento basada en proyectos settings.rag.vector.max.results=Máximo de resultados de búsqueda vectorial -settings.rag.vector.max.results.hint=Número máximo de documentos de la búsqueda vectorial (predeterminado: 20) +settings.rag.vector.max.results.hint=Número máximo de documentos de la búsqueda vectorial (predeterminado\: 20) settings.rag.vector.min.score=Puntuación mínima de búsqueda vectorial -settings.rag.vector.min.score.hint=Puntuación mínima de similitud 0.0–1.0 (predeterminado: 0.3) +settings.rag.vector.min.score.hint=Puntuación mínima de similitud 0.0–1.0 (predeterminado\: 0.3) settings.rag.hybrid.max.results=Máximo de resultados híbridos -settings.rag.hybrid.max.results.hint=Recuento final de documentos tras la fusión (predeterminado: 15) +settings.rag.hybrid.max.results.hint=Recuento final de documentos tras la fusión (predeterminado\: 15) settings.rag.rank.fusion.constant=Constante de fusión de ranking -settings.rag.rank.fusion.constant.hint=Constante RRF para el ranking híbrido (predeterminado: 60) +settings.rag.rank.fusion.constant.hint=Constante RRF para el ranking híbrido (predeterminado\: 60) settings.rag.use.absolute.paths=Absolute Pfade in Zitaten verwenden settings.rag.use.absolute.paths.hint=Vollständige Dateipfade in KI-Antworten anzeigen, um bei mehreren Dateien mit demselben Namen mehr Klarheit zu schaffen settings.rag.embedding.title=Configuración de embeddings settings.rag.embedding.description=Configura los parámetros de segmentación de texto y embeddings settings.rag.embedding.max.chars.per.chunk=Máximo de caracteres por segmento -settings.rag.embedding.max.chars.per.chunk.hint=Número máximo de caracteres en cada segmento de texto (predeterminado: 1500) +settings.rag.embedding.max.chars.per.chunk.hint=Número máximo de caracteres en cada segmento de texto (predeterminado\: 1500) settings.rag.embedding.chunk.overlap=Superposición de segmentos -settings.rag.embedding.chunk.overlap.hint=Número de caracteres superpuestos entre segmentos (predeterminado: 100) +settings.rag.embedding.chunk.overlap.hint=Número de caracteres superpuestos entre segmentos (predeterminado\: 100) settings.rag.embedding.models=Modelos de embedding por proveedor settings.rag.indexing.title=Configuración de indexación settings.rag.indexing.description=Controla qué archivos se indexan y el tamaño máximo de archivo permitido @@ -1032,7 +1032,7 @@ settings.rag.indexing.binary.extensions.hint=Extensiones de archivo separadas po settings.rag.indexing.embedding.batch.size=Tamaño del lote de embeddings settings.rag.indexing.embedding.batch.size.hint=Número de segmentos de texto enviados al modelo de embeddings por solicitud. Si la indexación es lenta y usas un proveedor remoto (OpenAI, Gemini), intenta aumentarlo a 100–500. Si usas un modelo local (Ollama, LM Studio), mantenlo bajo para evitar tiempos de espera. -# Settings - Utility Models +## Settings - Utility Models settings.utility.models.title=Modelos de utilidad settings.utility.models.uses.selected=(usa el modelo seleccionado) settings.utility.models.local.note={0} es un proveedor local — el modelo de chat activo se utiliza automáticamente para las tareas de utilidad. @@ -1043,7 +1043,7 @@ settings.vision.models.title=Modelos de visión ## Settings - Image Models settings.image.models.title=Modelos de generación de imágenes -# Settings - Provider Model Config +## Settings - Provider Model Config settings.provider.model.config.title=Configuración del modelo settings.provider.model.config.description=Anule los modelos predeterminados utilizados para tareas específicas. Deje un campo vacío para usar el modelo predeterminado del proveedor. settings.provider.model.config.guide=Ver guía de configuración del modelo de IA @@ -1054,26 +1054,25 @@ settings.provider.model.embedding.hint=Modelo utilizado para generar embeddings settings.model.placeholder.enter=Introducir modelo {0} - # File Viewer Dialog file.viewer.title=Visor de archivos file.viewer.title.with.name=Visor de archivos - {0} file.viewer.dialog.close=Cerrar file.viewer.copy.clipboard=Copiar al portapapeles -file.viewer.copied=¡Copiado! +file.viewer.copied=¡Copiado\! # Mermaid Chart Renderer mermaid.setup.required.title=Se requiere Mermaid CLI mermaid.setup.privacy.note=Askimo renderiza los diagramas localmente para proteger tu privacidad. mermaid.setup.instructions.title=Instrucciones de configuración -mermaid.setup.instructions.text=Para renderizar diagramas Mermaid en Askimo, sigue la guía de instalación en: -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.text=Para renderizar diagramas Mermaid en Askimo, sigue la guía de instalación en\: +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=Abrir guía de configuración mermaid.setup.button.copy.diagram=Copiar diagrama -mermaid.diagram.source.label=Fuente del diagrama: +mermaid.diagram.source.label=Fuente del diagrama\: mermaid.rendering.progress=Renderizando diagrama... mermaid.error.rendering.title=Error al renderizar el diagrama -mermaid.error.rendering.raw.label=Diagrama sin procesar: +mermaid.error.rendering.raw.label=Diagrama sin procesar\: mermaid.error.unexpected.state=Estado inesperado. Por favor, inténtalo de nuevo. mermaid.error.failed.load.image=No se pudo cargar la imagen del diagrama mermaid.button.copy.code=Copiar código @@ -1083,7 +1082,8 @@ mermaid.button.zoom.in=Acercar mermaid.button.zoom.out=Alejar mermaid.button.reset.zoom=Restablecer zoom mermaid.button.retry=Reintentar -mermaid.feedback.copied=¡Copiado! +mermaid.feedback.copied=¡Copiado\! + # Reference Material knowledge.source.type.folder=Carpeta (supervisada para cambios) @@ -1101,7 +1101,7 @@ mcp.instances.title=Instancias MCP mcp.instances.description=Estas instancias MCP están disponibles mcp.instances.empty=No hay instancias MCP configuradas mcp.instances.count={0} instancia(s) -mcp.instance.server.label=Servidor: {0} +mcp.instance.server.label=Servidor\: {0} mcp.instance.delete.confirm.title=¿Eliminar instancia MCP? mcp.instance.delete.confirm.message=¿Está seguro de que desea eliminar la instancia mcp "{0}"? Esto no se puede deshacer. mcp.instance.enable.tooltip=Activar esta instancia MCP @@ -1127,7 +1127,7 @@ mcp.instance.field.description=Descripción mcp.instance.field.description.placeholder=Breve descripción de lo que hace este servidor mcp.instance.field.transport=Tipo de transporte mcp.instance.field.command=Plantilla de comando -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=Comando separado por espacios con marcadores de posición {{parameter}} mcp.instance.validation.error.empty.id=La ID del servidor no puede estar vacía mcp.instance.validation.error.invalid.id.pattern=La ID del servidor solo debe contener letras minúsculas, números y guiones @@ -1136,20 +1136,20 @@ mcp.instance.validation.error.empty.command=La plantilla de comando no puede est mcp.instance.validation.error.empty.parameter.key=La clave del parámetro no puede estar vacía mcp.instance.validation.error.empty.parameter.label=La etiqueta del parámetro no puede estar vacía mcp.instance.env.label=Variables de entorno (Opcional) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=Formato: CLAVE=valor o CLAVE={{parameter}} (uno por línea) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=Formato\: CLAVE\=valor o CLAVE\={{parameter}} (uno por línea) mcp.instance.transport.stdio=Stdio (Proceso local) mcp.instance.transport.http=HTTP (Servidor remoto) mcp.instance.http.url.label=Plantilla de URL -mcp.instance.http.url.placeholder=https://{{host}}/mcp o https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp o https\://api.example.com/mcp mcp.instance.http.url.hint=URL del endpoint del servidor. Use marcadores de posición {{parameter}} para valores dinámicos mcp.instance.http.headers.label=Encabezados HTTP (Opcional) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=Formato: Nombre-Encabezado=valor o Nombre-Encabezado={{parameter}} (uno por línea) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=Formato\: Nombre-Encabezado\=valor o Nombre-Encabezado\={{parameter}} (uno por línea) mcp.instance.http.timeout.label=Tiempo de espera (ms) mcp.instance.http.timeout.hint=Tiempo de espera de la solicitud en milisegundos mcp.instance.validation.error.empty.url=La plantilla de URL no puede estar vacía -mcp.instance.validation.error.invalid.url=La plantilla de URL debe comenzar con http:// o https:// +mcp.instance.validation.error.invalid.url=La plantilla de URL debe comenzar con http\:// o https\:// # MCP Integrations (Project View) mcp.instance.delete.tooltip=Eliminar instancia MCP @@ -1199,7 +1199,7 @@ mcp.tools.dialog.search.count={0} de {1} herramienta(s) mcp.tools.dialog.search.empty=Ninguna herramienta coincide con su búsqueda mcp.tools.dialog.export=Exportar herramientas mcp.tools.dialog.export.success=Herramientas exportadas a {0} -mcp.tools.dialog.export.failed=Error al exportar herramientas: {0} +mcp.tools.dialog.export.failed=Error al exportar herramientas\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=Añadir servidor MCP @@ -1255,7 +1255,7 @@ file.viewer.close=Cerrar visor file.viewer.open.external=Abrir externamente file.viewer.binary=Archivo binario — no se puede previsualizar como texto. file.viewer.too.large=El archivo es demasiado grande para previsualizarlo ({0} KB). El máximo es 512 KB. -file.viewer.error=No se pudo leer el archivo: {0} +file.viewer.error=No se pudo leer el archivo\: {0} file.viewer.select.prompt=Selecciona un archivo del árbol superior para previsualizar su contenido # Project Side Panel @@ -1267,12 +1267,11 @@ panel.reindex.confirm.title=¿Detener y reindexar? panel.reindex.confirm.message="{0}" se está indexando actualmente. ¿Detener la indexación actual y reindexar desde cero? panel.reindex.confirm.button=Detener y reindexar panel.reindex.confirm.cancel=Cancelar -panel.collapse=Colapsar panel panel.collapse=Contraer panel # RAG Status rag.status.started=Indexación iniciada -rag.status.inprogress=Indexando: {0}% +rag.status.inprogress=Indexando\: {0}% rag.status.inprogress.unknown=Indexando... rag.status.queued=En cola — esperando a que otro proyecto termine de indexar rag.status.ready=Listo @@ -1322,7 +1321,7 @@ plans.editor.label=Contenido YAML plans.editor.placeholder=Pega o escribe aquí el YAML de tu plan... plans.editor.valid=YAML válido plans.editor.hint.title=Referencia -plans.editor.hint.fields=Obligatorio: id, name, steps\nOpcional: description, icon, inputs, workflow\nTipos de paso: text, multiline, toggle, number\nTipos de flujo de trabajo: sequence, parallel, conditional +plans.editor.hint.fields=Obligatorio\: id, name, steps\nOpcional\: description, icon, inputs, workflow\nTipos de paso\: text, multiline, toggle, number\nTipos de flujo de trabajo\: sequence, parallel, conditional plans.editor.menu.edit=Editar YAML plans.editor.ai.label=Generar con IA plans.editor.ai.placeholder=Describe lo que quieres que haga este plan con palabras sencillas... @@ -1382,12 +1381,12 @@ skills.view.panel.collapse=Contraer panel skills.view.panel.expand=Expandir panel skills.view.tab.skills=Habilidades skills.view.tab.workspace=Espacio de trabajo -skills.view.last.run=Última ejecución: {0} +skills.view.last.run=Última ejecución\: {0} skills.view.category.uncategorized=Otros skills.view.search.placeholder=Buscar habilidades ... skills.view.search.clear=Borrar búsqueda skills.view.context.placeholder=¿Qué te gustaría hacer? (opcional) -skills.view.command.mode.hint=Modo comando: una entrada que comienza con / se ejecuta como comando de agente. +skills.view.command.mode.hint=Modo comando\: una entrada que comienza con / se ejecuta como comando de agente. skills.view.system.prompt.preview=Prompt del sistema skills.view.response.title=Respuesta skills.view.followup.label=Seguimiento @@ -1397,7 +1396,7 @@ skills.view.history.empty=Aún no hay ejecuciones skills.view.copy=Copiar skills.view.system.prompt.file=archivo skills.view.system.prompt.files=archivos -skills.view.system.prompt.also.included=También incluido en el contexto del agente: +skills.view.system.prompt.also.included=También incluido en el contexto del agente\: skills.view.docs.tooltip=Ver Guía de Habilidades skills.view.mode.agentic=Agente skills.view.mode.manual=Manual @@ -1442,7 +1441,7 @@ onboarding.step.analytics.section.never=Lo que nunca recopilamos onboarding.step.analytics.toggle.subtitle=Nos ayuda a centrarnos en lo que más importa · se puede cambiar en cualquier momento en Ajustes → Avanzado # Onboarding Step 1: Welcome -onboarding.step.welcome.title=👋 ¡Bienvenido a Askimo! +onboarding.step.welcome.title=👋 ¡Bienvenido a Askimo\! onboarding.step.welcome.description=Tu asistente personal de IA. Chatea con varios modelos de IA, organiza el conocimiento en proyectos y automatiza flujos de trabajo con skills y planes. onboarding.step.welcome.feature1.title=💬 Chatea con IA onboarding.step.welcome.feature1.description=Haz preguntas, recibe ayuda con tareas o conversa con cualquier modelo de IA. @@ -1469,9 +1468,8 @@ onboarding.step.directives.feature2.description=Preguntas vagas obtienen respues onboarding.step.directives.feature3.title=El experto adecuado para cada tarea onboarding.step.directives.feature3.description=¿Necesitas un tutor paciente para aprender y un crítico de código directo para depurar? Mantén directivas separadas y obtén la mentalidad adecuada para cada tarea. onboarding.step.directives.link=Ver ejemplos y consejos - # Onboarding Step 6: Ready -onboarding.step.ready.title=🚀 ¡Todo listo! +onboarding.step.ready.title=🚀 ¡Todo listo\! onboarding.step.ready.description=Todo está configurado y listo para empezar. Inicia tu primer chat o explora los recursos a continuación. onboarding.step.ready.link.docs=📚 Explorar la documentación onboarding.step.ready.link.providers=🔧 Configurar proveedores de IA @@ -1481,16 +1479,16 @@ onboarding.step.ready.link.github=⭐ Danos una estrella en GitHub onboarding.step.persona.title=🎯 ¿Qué es lo que principalmente quieres hacer? onboarding.step.persona.description=Elige la opción que más se parezca a tu trabajo. Askimo mostrará las funciones más relevantes. Siempre puedes cambiar esto desde el menú Ver. onboarding.step.persona.developer.description=Leer y escribir código, refactorizar archivos, generar andamiajes o ejecutar tareas agénticas en tu proyecto local. -onboarding.step.persona.developer.features=Habilita: Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=Habilita\: Skills (Gemini CLI, Claude Code), Projects onboarding.step.persona.researcher.description=Investigar temas, analizar datos, escribir informes estructurados y obtener respuestas fundamentadas en el conocimiento. -onboarding.step.persona.researcher.features=Habilita: Plans, Projects (RAG) +onboarding.step.persona.researcher.features=Habilita\: Plans, Projects (RAG) onboarding.step.persona.manager.description=Redactar correos electrónicos, procesar notas de reuniones, escribir informes de estado o ejecutar flujos de trabajo de contenido de varios pasos. -onboarding.step.persona.manager.features=Habilita: Plans +onboarding.step.persona.manager.features=Habilita\: Plans onboarding.step.persona.everything.description=Hago una mezcla de cosas — muéstrame todas las funciones y yo decidiré qué usar. -onboarding.step.persona.everything.features=Habilita: Skills, Plans, Projects, MCP, RAG +onboarding.step.persona.everything.features=Habilita\: Skills, Plans, Projects, MCP, RAG # Persona labels persona.developer=💻 Escribir y revisar código persona.researcher=🔬 Investigar y analizar persona.manager=📋 Escribir y organizar -persona.everything=⚡ Hago una mezcla de cosas \ No newline at end of file +persona.everything=⚡ Hago una mezcla de cosas From e65153e8835c213b7a369498c757ceec511b9eab Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:42:52 -0700 Subject: [PATCH 003/251] New translations messages.properties (German) [ci skip] --- .../resources/i18n/messages_de.properties | 230 +++++++++--------- 1 file changed, 112 insertions(+), 118 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index efc8c2c4c..b94b95fd5 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -1,4 +1,4 @@ -# Askimo Desktop Application - German Strings (Comments Preserved) +# Askimo Desktop Application - English Strings # Application @@ -43,11 +43,11 @@ menu.help.share=🗣 Askimo teilen menu.help.share.x=Auf X / Twitter teilen menu.help.share.linkedin=Auf LinkedIn teilen menu.help.share.facebook=Auf Facebook teilen -menu.help.share.text=Entdecke Askimo — ein kostenloser, lokaler KI-Desktop-Client. Unterstützt Ollama, OpenAI, Anthropic und mehr. https://askimo.chat +menu.help.share.text=Entdecke Askimo — ein kostenloser, lokaler KI-Desktop-Client. Unterstützt Ollama, OpenAI, Anthropic und mehr. https\://askimo.chat menu.help.share.hackernews=Auf Hacker News posten menu.eventlog=Ereignisprotokoll menu.help.model.capabilities=Modellfähigkeitsdatei öffnen -menu.dev.clear.account.preferences= [Dev] Kontoeinstellungen löschen +menu.dev.clear.account.preferences=[Dev] Kontoeinstellungen löschen menu.about=Über Askimo menu.help.check.updates=Nach Updates suchen... menu.help.diagnostics=Systemdiagnose... @@ -59,16 +59,16 @@ dialog.close=Schließen # Backup and Restore backup.export.title=Sicherung exportieren backup.export.success.title=Sicherung exportiert -backup.export.success.message=Sicherung erfolgreich exportiert nach:\n{0} +backup.export.success.message=Sicherung erfolgreich exportiert nach\:\n{0} backup.export.error.title=Export fehlgeschlagen -backup.export.error.message=Sicherung konnte nicht exportiert werden:\n{0} +backup.export.error.message=Sicherung konnte nicht exportiert werden\:\n{0} backup.import.title=Sicherung importieren backup.import.confirm.title=Import bestätigen backup.import.confirm.message=Dieser Vorgang ersetzt alle aktuellen Daten durch die Sicherung.\n\nVor dem Import wird automatisch eine Sicherheitssicherung erstellt.\n\nMöchten Sie wirklich fortfahren? backup.import.success.title=Sicherung importiert backup.import.success.message=Sicherung erfolgreich importiert.\n\nBitte starten Sie Askimo neu, damit alle Änderungen wirksam werden. backup.import.error.title=Import fehlgeschlagen -backup.import.error.message=Sicherung konnte nicht importiert werden:\n{0} +backup.import.error.message=Sicherung konnte nicht importiert werden\:\n{0} # Event Log eventlog.title=Ereignisprotokoll ({0}) @@ -141,7 +141,7 @@ session.rename.error.empty=Der Titel darf nicht leer sein session.export.file.chooser.title=Chatverlauf speichern session.export.button.export=Exportieren session.export.success.title=Erfolgreich exportiert -session.export.success.message=Die Chatsitzung wurde erfolgreich exportiert nach: +session.export.success.message=Die Chatsitzung wurde erfolgreich exportiert nach\: # Projects project.title=Projekte @@ -157,11 +157,11 @@ project.new.dialog.file.browse=Dateien zum Verarbeiten auswählen... project.new.dialog.sources.label=Referenzmaterialien (optional) project.new.dialog.sources.add=Quelle hinzufügen project.new.dialog.error.empty.name=Projektname darf nicht leer sein -project.new.dialog.error.create.failed=Projekt konnte nicht erstellt werden: {0} +project.new.dialog.error.create.failed=Projekt konnte nicht erstellt werden\: {0} project.new.dialog.name.error.empty=Projektname darf nicht leer sein project.new.dialog.button.create=Projekt erstellen project.new.dialog.button.cancel=Abbrechen -project.new.dialog.success.title=Projekt erfolgreich erstellt! +project.new.dialog.success.title=Projekt erfolgreich erstellt\! project.new.dialog.success.message=Projekt ''{0}'' wurde erstellt. project.new.dialog.success.countdown=Schließt in {0} Sekunde{1}... project.new.dialog.success.close=Jetzt schließen @@ -184,7 +184,7 @@ projects.title=Projekte projects.description=Organisieren Sie Ihre Chats rund um ein Thema und hängen Sie Dateien, Ordner oder URLs als Wissensquellen an, damit die KI immer den richtigen Kontext für das jeweilige Projekt hat. projects.error=❌ {0} projects.empty=Keine Projekte gefunden. -projects.empty.hint=💡 Erstellen Sie ein neues Projekt, um Ihre Chat-Sitzungen zu organisieren! +projects.empty.hint=💡 Erstellen Sie ein neues Projekt, um Ihre Chat-Sitzungen zu organisieren\! projects.search.placeholder=Nach Name suchen… projects.search.empty=Keine Projekte entsprechen "{0}". projects.col.name=Name @@ -195,13 +195,16 @@ projects.sources.expand=Referenzmaterialien anzeigen projects.sources.collapse=Referenzmaterialien ausblenden projects.sources.empty.title=Noch keine Referenzmaterialien projects.sources.empty.description=Fügen Sie Dokumente hinzu, damit Askimo sie bei der Beantwortung Ihrer Fragen berücksichtigen kann -projects.sources.info.tooltip=Referenzmaterialien helfen Askimo, Ihren spezifischen Kontext zu verstehen.\n\n\ -Fügen Sie Ordner, Dateien oder Websites hinzu, die Informationen enthalten, auf die Askimo bei der Beantwortung Ihrer Fragen zurückgreifen soll.\n\n\ -Zum Beispiel:\n\ +projects.sources.info.tooltip=Referenzmaterialien helfen Askimo, Ihren spezifischen Kontext zu verstehen.\n\ +\n\ +Fügen Sie Ordner, Dateien oder Websites hinzu, die Informationen enthalten, auf die Askimo bei der Beantwortung Ihrer Fragen zurückgreifen soll.\n\ +\n\ +Zum Beispiel\:\n\ • Ihre Projektdokumentation\n\ • Unternehmens-Wissensdatenbank\n\ • Technische Spezifikationen\n\ -• Forschungsarbeiten\n\n\ +• Forschungsarbeiten\n\ +\n\ Askimo durchsucht diese Materialien, um genauere und kontextbezogene Antworten zu liefern. projects.sources.type.local_folders=Lokale Ordner projects.sources.type.local_files=Lokale Dateien @@ -228,8 +231,8 @@ project.reindex=Projekt neu indexieren project.menu.tooltip=Projektmenü project.new.chat.placeholder=Neuer Chat in {0} project.recent.chats=Letzte Chats -project.no.chats=Noch keine Chats. Starten Sie unten einen neuen Chat! -project.indexing.label=Indexierung der Wissensquelle: {0} +project.no.chats=Noch keine Chats. Starten Sie unten einen neuen Chat\! +project.indexing.label=Indexierung der Wissensquelle\: {0} project.indexing.queued=Indizierung in der Warteschlange - warten auf den Abschluss eines anderen Projekts... project.indexing.failed=Indizierung fehlgeschlagen. Versuchen Sie, über das Projektmenü neu zu indizieren. project.indexing.ready.label=Indiziert @@ -249,7 +252,7 @@ settings.appearance=Erscheinungsbild settings.appearance.accent=Akzentfarbe settings.appearance.accent.description=Passen Sie eine einzelne Akzentfarbe sicher an. Askimo wendet sie auf primäre UI-Akzente an und leitet weitere Farben für gute Lesbarkeit ab. settings.appearance.accent.label=Akzentfarbe (Hex) -settings.appearance.accent.invalid=Geben Sie eine gültige Hex-Farbe wie #0284C7 ein +settings.appearance.accent.invalid=Geben Sie eine gültige Hex-Farbe wie \#0284C7 ein settings.appearance.accent.swatch.primary=Primär settings.appearance.accent.swatch.primary.container=Container settings.appearance.accent.swatch.on.primary.container=Auf dem Container @@ -273,7 +276,7 @@ settings.network.description=Netzwerk- und Proxy-Einstellungen konfigurieren settings.mcp.servers=MCP-Server settings.skills=Fähigkeiten settings.skills.description=Skills sind wiederverwendbare KI-Agenten, die direkt auf Ihrer Maschine laufen. Jeder Skill ist eine Markdown-Datei mit einem System-Prompt und Anweisungen. Wenn Sie einen Skill ausführen, wird er über {0} ausgeführt — liest und schreibt Ihre Dateien, führt Shell-Befehle aus und iteriert, bis die Aufgabe erledigt ist. Kein Kopieren und Einfügen erforderlich. -settings.skills.runtimes=Unterstützte Laufzeitumgebungen: +settings.skills.runtimes=Unterstützte Laufzeitumgebungen\: settings.skills.directory=Fähigkeitenverzeichnis settings.skills.open.folder=Ordner öffnen settings.skills.new.skill=Neue Fähigkeit @@ -364,11 +367,11 @@ settings.log.viewer=Log-Dateien settings.log.viewer.description=Anwendungslogs und Diagnosen anzeigen settings.log.viewer.view=Logs anzeigen settings.log.viewer.open_folder=Log-Ordner öffnen -settings.log.viewer.path=Log-Datei: {0} +settings.log.viewer.path=Log-Datei\: {0} settings.log.viewer.dialog.title=Anwendungslogs settings.log.viewer.refresh=Aktualisieren settings.log.viewer.copy=Kopieren -settings.log.viewer.copied=Kopiert! +settings.log.viewer.copied=Kopiert\! settings.log.viewer.loading=Logs werden geladen... settings.log.viewer.error=Fehler beim Laden der Logs settings.log.viewer.empty=Keine Logs verfügbar @@ -426,7 +429,7 @@ user.profile.interests.custom.placeholder=z. B. Maschinelles Lernen, Fotografie user.profile.interests.custom.hint=Mehrere Interessen durch Kommas trennen # Welcome Dialog (First Run) -welcome.title=Willkommen bei Askimo! +welcome.title=Willkommen bei Askimo\! welcome.subtitle=Helfen Sie uns, Ihr KI-Erlebnis zu personalisieren welcome.avatar.optional=Klicken, um ein Foto hinzuzufügen (optional) welcome.name=Ihr Name @@ -465,6 +468,7 @@ user.interest.environment=Umwelt # Actions action.delete=Löschen +action.remove=Entfernen action.edit=Bearbeiten action.pin=An Seitenleiste anheften action.unpin=Von Seitenleiste lösen @@ -485,11 +489,10 @@ action.retry=Erneut versuchen action.done=Fertig action.refresh=Aktualisieren - # Happiness Gate (shown before Star Prompt) happiness.gate.title=Wie gefällt Ihnen Askimo? happiness.gate.subtitle=Sagen Sie uns, wie wir uns machen -happiness.gate.happy=Ich liebe es! 😍 +happiness.gate.happy=Ich liebe es\! 😍 happiness.gate.neutral=Es geht 🙂 happiness.gate.unhappy=Nicht wirklich 😕 happiness.gate.feedback.title=Helfen Sie uns, uns zu verbessern @@ -530,10 +533,8 @@ file.overwrite.message=Diese Datei existiert bereits. Möchten Sie sie überschr file.overwrite.confirm=Überschreiben file.name.too.long=Der Dateiname ist zu lang. Bitte verwenden Sie einen kürzeren Namen (maximal 255 Zeichen). - # About about.title=Über {0} -action.remove=Entfernen about.version=Version about.buildDate=Build-Datum about.buildJdk=Build-JDK @@ -573,9 +574,8 @@ shortcut.attach.file=Datei anhängen shortcut.send.message=Nachricht senden shortcut.new.line=Neue Zeile - # Chat View -chat.welcome=Willkommen bei Askimo!\nBeginnen Sie eine Unterhaltung, indem Sie unten eine Nachricht eingeben. +chat.welcome=Willkommen bei Askimo\!\nBeginnen Sie eine Unterhaltung, indem Sie unten eine Nachricht eingeben. chat.no.active.session=Wählen Sie eine Sitzung in der Seitenleiste aus oder starten Sie einen neuen Chat chat.search.placeholder=Im Gespräch suchen... chat.search.no.results=Keine Ergebnisse @@ -613,7 +613,7 @@ global.search.results.count={0} Ergebnis gefunden global.search.results.count.plural={0} Ergebnisse gefunden # Rest of chat view strings -chat.directive=Direktive: +chat.directive=Direktive\: chat.directive.none=Keine chat.directive.new=Neue Direktive chat.directive.manage=Direktiven verwalten @@ -650,7 +650,7 @@ chat.attachment.remove=Anhang entfernen chat.attachment.preview.loading=Vorschau wird geladen… chat.attachment.preview.file.not.found=(Datei nicht gefunden) chat.attachment.preview.too.large=(Datei zu groß für eine Vorschau) -chat.attachment.preview.cannot.read=(Datei kann nicht gelesen werden: {0}) +chat.attachment.preview.cannot.read=(Datei kann nicht gelesen werden\: {0}) chat.attachment.preview.more.lines={0} weitere Zeilen # Sessions View @@ -662,12 +662,12 @@ sessions.col.created=Erstellt sessions.col.updated=Aktualisiert sessions.error=❌ {0} sessions.empty=Keine Chatsitzungen gefunden. -sessions.empty.hint=💡 Starten Sie eine neue Unterhaltung, um Ihre erste Sitzung zu erstellen! +sessions.empty.hint=💡 Starten Sie eine neue Unterhaltung, um Ihre erste Sitzung zu erstellen\! sessions.search.placeholder=Nach Titel suchen… sessions.search.empty=Keine Sitzungen entsprechen "{0}". -# Allgemeine Tabellen-Paginierungssteuerelemente -table.page.size.label=Zeilen pro Seite: +# Generic table pagination controls +table.page.size.label=Zeilen pro Seite\: table.page=Seite {0} von {1} table.page.previous=Vorherige Seite table.page.next=Nächste Seite @@ -681,10 +681,9 @@ sessions.error.not.found=Sitzung nicht gefunden. sessions.error.rename.failed=Umbenennen fehlgeschlagen. # ChatSessionService Errors - # Update Check update.dialog.title=Software-Update -update.dialog.new.version.available=Eine neue Version von Askimo ist verfügbar! +update.dialog.new.version.available=Eine neue Version von Askimo ist verfügbar\! update.urgency.medium=Sie liegen {0} Versionen zurück — Sie könnten wichtige Fehlerbehebungen und neue Funktionen verpassen. update.urgency.high=Sie liegen {0} Versionen zurück — Sie verpassen erhebliche Verbesserungen. Bitte bald aktualisieren. update.dialog.current.version.label=Aktuelle Version @@ -695,7 +694,7 @@ update.dialog.download=Jetzt herunterladen update.dialog.how.to.update=So aktualisieren Sie update.dialog.later=Später update.dialog.skip.version=Diese Version überspringen -update.check.up.to.date=Sie verwenden die neueste Version! +update.check.up.to.date=Sie verwenden die neueste Version\! update.check.failed=Update-Prüfung fehlgeschlagen # Event Names @@ -723,15 +722,15 @@ settings.app.language.translation.contribute=Auf Crowdin beitragen settings.ai.response.language=Bevorzugte Antwortsprache settings.ai.response.language.description=KI auf eine bestimmte Sprache für Antworten festlegen (leer lassen für automatische Erkennung) settings.ai.response.language.auto=Automatische Erkennung -settings.ai.response.language.tooltip=KI erkennt Ihre Sprache automatisch, aber überschreiben wenn:\n• Sprachenlernen (immersive Praxis)\n• Professionelle Konsistenz (z.B. Code-Dokumentation immer auf Englisch)\n• RAG-Optimierung (Wissensdatenbank-Sprache abgleichen)\n• Lehre (in einer Sprache fragen, in einer anderen erklären)\n• Unerwünschte Sprachwechsel verhindern -settings.model.select=Modell für {0} auswählen: +settings.ai.response.language.tooltip=KI erkennt Ihre Sprache automatisch, aber überschreiben wenn\:\n• Sprachenlernen (immersive Praxis)\n• Professionelle Konsistenz (z.B. Code-Dokumentation immer auf Englisch)\n• RAG-Optimierung (Wissensdatenbank-Sprache abgleichen)\n• Lehre (in einer Sprache fragen, in einer anderen erklären)\n• Unerwünschte Sprachwechsel verhindern +settings.model.select=Modell für {0} auswählen\: settings.model.loading=Modelle werden geladen... settings.model.none=Keine Modelle verfügbar settings.model.select.title=Modell auswählen settings.model.current=Aktuelles Modell settings.model.selected=Ausgewähltes Modell settings.model.new=Neues Modell -settings.model.change.description=Wählen Sie ein Modell aus der folgenden Liste aus: +settings.model.change.description=Wählen Sie ein Modell aus der folgenden Liste aus\: settings.model.search=Modelle durchsuchen settings.model.search.placeholder=Eingeben, um Modelle zu filtern... settings.model.filtered={0} von {1} Modellen angezeigt @@ -739,22 +738,22 @@ settings.model.no.match=Keine passenden Modelle settings.model.no.results=Keine passenden Modelle settings.configure.title={0} konfigurieren settings.test.connection.testing=Teste... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=Verbindung zum Anbieter konnte nicht hergestellt werden. Bitte überprüfen Sie, ob Ihr API-Schlüssel korrekt ist (für Cloud-Anbieter) oder Ihre Basis-URL erreichbar ist (für lokale Anbieter). Installationsanweisungen finden Sie über den obigen Hilfe-Link. # Directives Dialog directive.manage.title=Direktiven verwalten -directive.manage.empty=Keine Direktiven verfügbar. Erstellen Sie eine, um zu beginnen! +directive.manage.empty=Keine Direktiven verfügbar. Erstellen Sie eine, um zu beginnen\! directive.edit.name.label=Name directive.edit.name.placeholder=Direktivenname eingeben... directive.edit.content.label=Inhalt directive.edit.content.placeholder=Direktivenanweisungen eingeben... directive.edit.name.required=Name ist erforderlich directive.edit.content.required=Inhalt ist erforderlich -directive.created=Erstellt: {0} +directive.created=Erstellt\: {0} directive.new.title=Neue Direktive directive.new.guidelines=Direktiven leiten, wie die KI auf Ihre Nachrichten antwortet. Seien Sie spezifisch über Ton, Detailgrad, Format oder besondere Anforderungen, die Sie benötigen. -directive.new.name.placeholder=z. B.: concise-code, explain-like-im-5 +directive.new.name.placeholder=z. B.\: concise-code, explain-like-im-5 directive.new.content.placeholder=Anweisungen eingeben... directive.new.apply.current=Auf aktuelle Sitzung anwenden directive.new.create=Erstellen @@ -766,8 +765,8 @@ directive.export.tooltip=Alle Anweisungen in eine JSON-Datei exportieren, um sie directive.export.filename=askimo-directives directive.import=Importieren directive.import.tooltip=Anweisungen aus einer JSON-Datei importieren -directive.import.result=Import abgeschlossen: {0} importiert, {1} umbenannt, {2} übersprungen -directive.import.error=Import fehlgeschlagen: ungültiges oder nicht unterstütztes Dateiformat +directive.import.result=Import abgeschlossen\: {0} importiert, {1} umbenannt, {2} übersprungen +directive.import.error=Import fehlgeschlagen\: ungültiges oder nicht unterstütztes Dateiformat # Log Levels log.level.error=Fehler @@ -816,7 +815,7 @@ message.edited.indicator=(bearbeitet) message.date.today=Heute message.date.yesterday=Gestern message.token.usage={0} Tokens · {1} in / {2} out -message.token.usage.tooltip=Von dieser Antwort verwendete Tokens.\nEingabe: Ihr Prompt + Kontext, der an die KI gesendet wurde.\nAusgabe: die KI-generierte Antwort. +message.token.usage.tooltip=Von dieser Antwort verwendete Tokens.\nEingabe\: Ihr Prompt + Kontext, der an die KI gesendet wurde.\nAusgabe\: die KI-generierte Antwort. attachment.download=Anhang herunterladen attachment.download.description=Diese Dateianlage herunterladen attachment.save.file=Anhang speichern @@ -831,8 +830,8 @@ provider.select.title=Anbieter auswählen provider.setup.required.title=KI-Anbieterkonfiguration erforderlich provider.setup.required.message=Bevor Sie chatten können, wählen und konfigurieren Sie einen KI-Anbieter. provider.setup.required.button=Konfigurieren -provider.select.prompt=Anbieter auswählen: -provider.configure.prompt=Konfigurieren: +provider.select.prompt=Anbieter auswählen\: +provider.configure.prompt=Konfigurieren\: provider.choose.placeholder=Anbieter auswählen... provider.setup.guide=So richten Sie {0} ein provider.apikey.stored=API-Schlüssel wurde sicher gespeichert @@ -843,31 +842,31 @@ provider.apikey.security.link=Hier erfahren Sie, wie wir Ihre Daten schützen provider.not.set=Nicht festgelegt # Provider Configuration - OpenAI -provider.openai.apikey.description=Ihr OpenAI API-Schlüssel: https://platform.openai.com/account/api-keys +provider.openai.apikey.description=Ihr OpenAI API-Schlüssel\: https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=API-Schlüssel ist bereits gespeichert. Leer lassen, um den aktuellen beizubehalten. -provider.openai.setup.help=💡 Für die Nutzung von OpenAI benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten: https://platform.openai.com/account/api-keys\n2. In den Einstellungen eintragen oder :change-settings verwenden +provider.openai.setup.help=💡 Für die Nutzung von OpenAI benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten\: https\://platform.openai.com/account/api-keys\n2. In den Einstellungen eintragen oder \:change-settings verwenden # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Ihr Anthropic API-Schlüssel: https://console.anthropic.com/ +provider.anthropic.apikey.description=Ihr Anthropic API-Schlüssel\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=API-Schlüssel ist bereits gespeichert. -provider.anthropic.setup.help=💡 Für die Nutzung von Anthropic benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten: https://console.anthropic.com/\n2. In den Einstellungen eintragen oder :change-settings verwenden +provider.anthropic.setup.help=💡 Für die Nutzung von Anthropic benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten\: https\://console.anthropic.com/\n2. In den Einstellungen eintragen oder \:change-settings verwenden # Provider Configuration - Gemini -provider.gemini.apikey.description=Ihr Google AI Studio API-Schlüssel: https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Ihr Google AI Studio API-Schlüssel\: https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=API-Schlüssel ist bereits gespeichert. -provider.gemini.setup.help=💡 Für die Nutzung von Gemini benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten: https://aistudio.google.com/app/apikey\n2. In den Einstellungen eintragen oder :change-settings verwenden +provider.gemini.setup.help=💡 Für die Nutzung von Gemini benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten\: https\://aistudio.google.com/app/apikey\n2. In den Einstellungen eintragen oder \:change-settings verwenden # Provider Configuration - XAI -provider.xai.apikey.description=Ihr XAI API-Schlüssel: https://console.x.ai/ +provider.xai.apikey.description=Ihr XAI API-Schlüssel\: https\://console.x.ai/ provider.xai.apikey.stored=API-Schlüssel ist bereits gespeichert. -provider.xai.setup.help=💡 Für die Nutzung von XAI benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten: https://console.x.ai/\n2. In den Einstellungen eintragen oder :change-settings verwenden +provider.xai.setup.help=💡 Für die Nutzung von XAI benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten\: https\://console.x.ai/\n2. In den Einstellungen eintragen oder \:change-settings verwenden # Provider Configuration - Ollama -provider.ollama.baseurl.description=Ollama Basis-URL (Standard: http://localhost:11434) -provider.ollama.setup.help=💡 Für die Nutzung von Ollama muss es lokal ausgeführt werden.\n\n1. Installieren: https://ollama.ai/\n2. Dienst starten\n3. Basis-URL bei Bedarf ändern +provider.ollama.baseurl.description=Ollama Basis-URL (Standard\: http\://localhost\:11434) +provider.ollama.setup.help=💡 Für die Nutzung von Ollama muss es lokal ausgeführt werden.\n\n1. Installieren\: https\://ollama.ai/\n2. Dienst starten\n3. Basis-URL bei Bedarf ändern # Provider Configuration - Docker AI -provider.docker.baseurl.description=Docker AI Basis-URL (Standard: http://localhost:12434) +provider.docker.baseurl.description=Docker AI Basis-URL (Standard\: http\://localhost\:12434) provider.docker.setup.help=💡 Für die Nutzung von Docker AI muss es lokal ausgeführt werden.\n\n1. Stellen Sie sicher, dass Docker AI installiert ist und läuft\n2. Dienst starten\n3. Basis-URL bei Bedarf ändern # Provider Configuration - LocalAI @@ -875,8 +874,8 @@ provider.localai.baseurl.description=LocalAI Basis-URL provider.localai.setup.help=💡 Für die Nutzung von LocalAI müssen Sie es zuerst ausführen.\n\n1. LocalAI installieren und starten\n2. Basis-URL konfigurieren # Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=LMStudio Basis-URL (Standard: http://localhost:1234) -provider.lmstudio.setup.help=💡 So verwenden Sie LMStudio:\n\n1. Installieren: https://lmstudio.ai/\n2. Lokalen Server starten\n3. Basis-URL bei Bedarf ändern +provider.lmstudio.baseurl.description=LMStudio Basis-URL (Standard\: http\://localhost\:1234) +provider.lmstudio.setup.help=💡 So verwenden Sie LMStudio\:\n\n1. Installieren\: https\://lmstudio.ai/\n2. Lokalen Server starten\n3. Basis-URL bei Bedarf ändern provider.lmstudio.openai.compat.info=Askimo verwendet OpenAI-kompatible Endpunkte (/v1), nicht die native LMStudio-API (/api/v1/). # Provider Configuration - Open AI Compatible @@ -885,7 +884,7 @@ provider.openai_compatible.apikey.stored=Der API-Schlüssel ist bereits sicher g # System Resources system.share.feedback=Feedback teilen -system.ai.provider.tooltip=KI-Anbieter: {0}\nKlicken, um zu konfigurieren +system.ai.provider.tooltip=KI-Anbieter\: {0}\nKlicken, um zu konfigurieren system.diagnostics.title=Systemdiagnose system.diagnostics.resources=Ressourcen system.diagnostics.jvm.memory=JVM-Speicher (verwendet / gesamt) @@ -911,7 +910,7 @@ telemetry.llm.calls=LLM-Aufrufe telemetry.llm.calls.count={0} Aufrufe telemetry.llm.tokens={0} Tok telemetry.llm.errors={0} Fehl -telemetry.total.tokens=Gesamte Tokens: {0} +telemetry.total.tokens=Gesamte Tokens\: {0} telemetry.llm.col.provider=Anbieter telemetry.llm.col.model=Modell telemetry.llm.col.calls=Aufrufe @@ -930,7 +929,6 @@ developer.session.memory.messages=Memory Messages developer.session.memory.word.count={0} words developer.session.memory.empty=(Empty) - # Export Format - Markdown export.format.markdown.name=Markdown export.format.markdown.description=Für Menschen lesbares Textformat @@ -956,14 +954,15 @@ export.format.html.benefit.3=Professionelles Erscheinungsbild export.format.html.benefit.4=Einfach zu teilen # Error Messages -error.network=⚠️ Verbindung zum KI-Dienst{endpoint} konnte nicht hergestellt werden\n\nBitte überprüfen Sie:\n• Ihre Internetverbindung\n• Die URL des KI-Dienstes (Einstellungen prüfen)\n• Firewall-Einstellungen\n• Die Verfügbarkeit des Dienstes +error.network=⚠️ Verbindung zum KI-Dienst{endpoint} konnte nicht hergestellt werden\n\nBitte überprüfen Sie\:\n• Ihre Internetverbindung\n• Die URL des KI-Dienstes (Einstellungen prüfen)\n• Firewall-Einstellungen\n• Die Verfügbarkeit des Dienstes error.authentication=⚠️ API-Schlüssel ist ungültig oder fehlt{provider}\n\nBeheben Sie dies, indem Sie Ihren API-Schlüssel in den Einstellungen festlegen. -error.model_configuration=⚠️ Fehler in der Modellkonfiguration: {issue}\n\nBeheben Sie dies durch:\n1. Öffnen der Einstellungen\n2. Auswahl eines KI-Anbieters\n3. Auswahl eines Modells aus der Liste +error.model_configuration=⚠️ Fehler in der Modellkonfiguration\: {issue}\n\nBeheben Sie dies durch\:\n1. Öffnen der Einstellungen\n2. Auswahl eines KI-Anbieters\n3. Auswahl eines Modells aus der Liste +error.provider_not_configured=⚠️ Kein KI-Anbieter konfiguriert.\n\nUm zu chatten\:\n1. Öffnen Sie die Einstellungen\n2. Wählen Sie einen KI-Anbieter (OpenAI, Ollama, Anthropic usw.)\n3. Geben Sie Ihren API-Schlüssel ein oder konfigurieren Sie die Verbindung error.rate_limit=⚠️ Ratenlimit überschritten\n{retryAfter}\n\nSie haben Ihr API-Nutzungslimit erreicht. Bitte warten Sie, bevor Sie weitere Nachrichten senden. error.insufficient_credits=⚠️ Unzureichendes Guthaben\n\nIhr Guthaben ist zu niedrig, um diesen KI-Anbieter zu nutzen.\n\nBitte gehen Sie zur Abrechnungsseite Ihres Anbieters. -error.timeout=⚠️ Anfrage nach {timeout} Sekunden abgelaufen\n\nMögliche Ursachen:\n• Hohe Serverlast – versuchen Sie es später erneut\n• Komplexe Anfrage – vereinfachen Sie Ihre Eingabe\n• Netzwerkverzögerungen -error.invalid_request=⚠️ Ungültige Anfrage: {details}\n\nBitte überprüfen Sie Ihre Eingabe und versuchen Sie es erneut. -error.system=⚠️ Systemfehler\n\nEin unerwarteter Fehler ist aufgetreten: {errorCode}\n\nBitte wenden Sie sich an den Askimo-Support mit:\n• Ihrer letzten Aktion\n• Dem obigen Fehlercode\n• Dem Zeitstempel +error.timeout=⚠️ Anfrage nach {timeout} Sekunden abgelaufen\n\nMögliche Ursachen\:\n• Hohe Serverlast – versuchen Sie es später erneut\n• Komplexe Anfrage – vereinfachen Sie Ihre Eingabe\n• Netzwerkverzögerungen +error.invalid_request=⚠️ Ungültige Anfrage\: {details}\n\nBitte überprüfen Sie Ihre Eingabe und versuchen Sie es erneut. +error.system=⚠️ Systemfehler\n\nEin unerwarteter Fehler ist aufgetreten\: {errorCode}\n\nBitte wenden Sie sich an den Askimo-Support mit\:\n• Ihrer letzten Aktion\n• Dem obigen Fehlercode\n• Dem Zeitstempel # Model Availability Errors error.model.not_available.title.chat=Modell nicht verfügbar @@ -971,16 +970,15 @@ error.model.not_available.title.embedding=Einbettungsmodell nicht verfügbar error.model.not_available.message.chat=Das Modell ''{0}'' ist nicht verfügbar. error.model.not_available.message.embedding=Das Einbettungsmodell ''{0}'' ist nicht verfügbar.\n\nBitte konfigurieren Sie Ihr Einbettungsmodell korrekt. error.model.not_available.config_link=Einbettungsmodell konfigurieren -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration # Generic Application Errors error.app.title=Etwas ist schiefgelaufen -error.app.message=Ein unerwarteter Fehler ist aufgetreten: {0} +error.app.message=Ein unerwarteter Fehler ist aufgetreten\: {0} # Send Message Errors error.send_message.title=Nachricht konnte nicht gesendet werden - # Indexing Errors error.indexing.model_not_found.title=Einbettungsmodell nicht gefunden error.indexing.model_not_found.message=Das Einbettungsmodell ''{0}'' wurde nicht gefunden. Bitte laden oder aktivieren Sie dieses Einbettungsmodell von {1}, bevor Sie mit der Indexierung beginnen. @@ -989,16 +987,15 @@ error.indexing.io_error.message=Während der Indexierung ist ein E/A-Fehler aufg error.indexing.unknown.title=Indexierungsfehler error.indexing.unknown.message=Während der Indexierung ist ein unbekannter Fehler aufgetreten - # Settings - Embedding Models (for RAG features) settings.embedding.rag_feature_only=Status des Einbettungsmodells (nur für RAG-Funktionen erforderlich) -settings.embedding.not_available_rag_only=⚠️ {0}.\n\nHinweis: Dies betrifft nur projektbasierte RAG-Funktionen. Normale Chat-Funktionen bleiben unbeeinträchtigt. -settings.embedding.provider_unreachable=⚠️ Verbindung zum Anbieter nicht möglich: {0}.\n\nHinweis: Einbettungsmodelle werden nur für projektbasierte RAG-Funktionen benötigt. -settings.embedding.check_failed=Überprüfung des Einbettungsmodells fehlgeschlagen: {0} +settings.embedding.not_available_rag_only=⚠️ {0}.\n\nHinweis\: Dies betrifft nur projektbasierte RAG-Funktionen. Normale Chat-Funktionen bleiben unbeeinträchtigt. +settings.embedding.provider_unreachable=⚠️ Verbindung zum Anbieter nicht möglich\: {0}.\n\nHinweis\: Einbettungsmodelle werden nur für projektbasierte RAG-Funktionen benötigt. +settings.embedding.check_failed=Überprüfung des Einbettungsmodells fehlgeschlagen\: {0} settings.embedding.download_model=Einbettungsmodell herunterladen -settings.embedding.download_success=✅ Einbettungsmodell erfolgreich heruntergeladen: {0} -settings.embedding.download_failed=❌ Einbettungsmodell konnte nicht heruntergeladen werden: {0}. Bitte manuell versuchen: ollama pull {0} -settings.embedding.download_error=Fehler beim Herunterladen des Modells: {0} +settings.embedding.download_success=✅ Einbettungsmodell erfolgreich heruntergeladen\: {0} +settings.embedding.download_failed=❌ Einbettungsmodell konnte nicht heruntergeladen werden\: {0}. Bitte manuell versuchen\: ollama pull {0} +settings.embedding.download_error=Fehler beim Herunterladen des Modells\: {0} settings.embedding.anthropic_no_embedding=Anthropic stellt keine Einbettungsmodelle bereit settings.embedding.xai_no_embedding=xAI stellt keine Einbettungsmodelle bereit @@ -1006,21 +1003,21 @@ settings.embedding.xai_no_embedding=xAI stellt keine Einbettungsmodelle bereit settings.rag.title=RAG-Konfiguration settings.rag.description=Konfiguration der Parameter für Retrieval-Augmented Generation zur projektbasierten Wissensabfrage settings.rag.vector.max.results=Maximale Ergebnisse der Vektorsuche -settings.rag.vector.max.results.hint=Maximale Anzahl von Dokumenten aus der Vektorsuche (Standard: 20) +settings.rag.vector.max.results.hint=Maximale Anzahl von Dokumenten aus der Vektorsuche (Standard\: 20) settings.rag.vector.min.score=Minimaler Score der Vektorsuche -settings.rag.vector.min.score.hint=Minimaler Ähnlichkeitswert 0,0–1,0 (Standard: 0,3) +settings.rag.vector.min.score.hint=Minimaler Ähnlichkeitswert 0,0–1,0 (Standard\: 0,3) settings.rag.hybrid.max.results=Maximale Hybrid-Ergebnisse -settings.rag.hybrid.max.results.hint=Endgültige Dokumentanzahl nach Fusion (Standard: 15) +settings.rag.hybrid.max.results.hint=Endgültige Dokumentanzahl nach Fusion (Standard\: 15) settings.rag.rank.fusion.constant=Rank-Fusion-Konstante -settings.rag.rank.fusion.constant.hint=RRF-Konstante für hybrides Ranking (Standard: 60) +settings.rag.rank.fusion.constant.hint=RRF-Konstante für hybrides Ranking (Standard\: 60) settings.rag.use.absolute.paths=Absolute Pfade in Zitaten verwenden settings.rag.use.absolute.paths.hint=Vollständige Dateipfade in KI-Antworten anzeigen, um bei mehreren Dateien mit demselben Namen mehr Klarheit zu schaffen settings.rag.embedding.title=Embedding-Konfiguration settings.rag.embedding.description=Konfigurieren Sie Parameter für Textsegmentierung und Embeddings settings.rag.embedding.max.chars.per.chunk=Maximale Zeichen pro Segment -settings.rag.embedding.max.chars.per.chunk.hint=Maximale Anzahl an Zeichen pro Textsegment (Standard: 1500) +settings.rag.embedding.max.chars.per.chunk.hint=Maximale Anzahl an Zeichen pro Textsegment (Standard\: 1500) settings.rag.embedding.chunk.overlap=Segmentüberlappung -settings.rag.embedding.chunk.overlap.hint=Anzahl überlappender Zeichen zwischen Segmenten (Standard: 100) +settings.rag.embedding.chunk.overlap.hint=Anzahl überlappender Zeichen zwischen Segmenten (Standard\: 100) settings.rag.embedding.models=Embedding-Modelle nach Anbieter settings.rag.indexing.title=Indizierungskonfiguration settings.rag.indexing.description=Steuern Sie, welche Dateien indiziert werden und die maximal zulässige Dateigröße @@ -1035,7 +1032,7 @@ settings.rag.indexing.binary.extensions.hint=Kommagetrennte Dateierweiterungen, settings.rag.indexing.embedding.batch.size=Embedding-Batchgröße settings.rag.indexing.embedding.batch.size.hint=Anzahl der Textsegmente, die pro Anfrage an das Embedding-Modell gesendet werden. Wenn die Indizierung langsam ist und Sie einen Remote-Anbieter (OpenAI, Gemini) verwenden, versuchen Sie, den Wert auf 100–500 zu erhöhen. Bei einem lokalen Modell (Ollama, LM Studio) sollte der Wert niedrig bleiben, um Timeouts zu vermeiden. -# Settings - Utility Models +## Settings - Utility Models settings.utility.models.title=Hilfsmodelle settings.utility.models.uses.selected=(verwendet das ausgewählte Modell) settings.utility.models.local.note={0} ist ein lokaler Anbieter — das aktuell aktive Chat-Modell wird automatisch für Hilfsaufgaben verwendet. @@ -1046,7 +1043,7 @@ settings.vision.models.title=Vision-Modelle ## Settings - Image Models settings.image.models.title=Bildgenerierungsmodelle -# Settings - Provider Model Config +## Settings - Provider Model Config settings.provider.model.config.title=Modellkonfiguration settings.provider.model.config.description=Überschreiben Sie die Standardmodelle für bestimmte Aufgaben. Lassen Sie ein Feld leer, um das Standardmodell des Anbieters zu verwenden. settings.provider.model.config.guide=KI-Modellkonfigurationsanleitung anzeigen @@ -1057,26 +1054,25 @@ settings.provider.model.embedding.hint=Modell zur Erzeugung von Vektor-Embedding settings.model.placeholder.enter={0}-Modell eingeben - # File Viewer Dialog file.viewer.title=Dateibetrachter file.viewer.title.with.name=Dateibetrachter – {0} file.viewer.dialog.close=Schließen file.viewer.copy.clipboard=In die Zwischenablage kopieren -file.viewer.copied=Kopiert! +file.viewer.copied=Kopiert\! # Mermaid Chart Renderer mermaid.setup.required.title=Mermaid-CLI erforderlich mermaid.setup.privacy.note=Askimo rendert Diagramme lokal, um Ihre Privatsphäre zu schützen. mermaid.setup.instructions.title=Einrichtungsanleitung -mermaid.setup.instructions.text=Um Mermaid-Diagramme in Askimo darzustellen, folgen Sie bitte der Installationsanleitung unter: -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.text=Um Mermaid-Diagramme in Askimo darzustellen, folgen Sie bitte der Installationsanleitung unter\: +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=Einrichtungsanleitung öffnen mermaid.setup.button.copy.diagram=Diagramm kopieren -mermaid.diagram.source.label=Diagrammquelle: +mermaid.diagram.source.label=Diagrammquelle\: mermaid.rendering.progress=Diagramm wird gerendert... mermaid.error.rendering.title=Fehler beim Rendern des Diagramms -mermaid.error.rendering.raw.label=Rohes Diagramm: +mermaid.error.rendering.raw.label=Rohes Diagramm\: mermaid.error.unexpected.state=Unerwarteter Zustand. Bitte versuchen Sie es erneut. mermaid.error.failed.load.image=Diagrammbild konnte nicht geladen werden mermaid.button.copy.code=Code kopieren @@ -1086,7 +1082,8 @@ mermaid.button.zoom.in=Vergrößern mermaid.button.zoom.out=Verkleinern mermaid.button.reset.zoom=Zoom zurücksetzen mermaid.button.retry=Erneut versuchen -mermaid.feedback.copied=Kopiert! +mermaid.feedback.copied=Kopiert\! + # Reference Material knowledge.source.type.folder=Ordner (auf Änderungen überwacht) @@ -1104,7 +1101,7 @@ mcp.instances.title=MCP-Instanzen mcp.instances.description=Diese MCP-Instanzen stehen zur Verfügung mcp.instances.empty=Keine MCP-Instanzen konfiguriert mcp.instances.count={0} Instanz(en) -mcp.instance.server.label=Server: {0} +mcp.instance.server.label=Server\: {0} mcp.instance.delete.confirm.title=MCP-Instanz löschen? mcp.instance.delete.confirm.message=Sind Sie sicher, dass Sie die mcp-Instanz "{0}" löschen möchten? Dies kann nicht rückgängig gemacht werden. mcp.instance.enable.tooltip=Diese MCP-Instanz aktivieren @@ -1130,7 +1127,7 @@ mcp.instance.field.description=Beschreibung mcp.instance.field.description.placeholder=Kurze Beschreibung, was dieser Server tut mcp.instance.field.transport=Transport-Typ mcp.instance.field.command=Befehlsvorlage -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=Leerzeichengetrennter Befehl mit {{parameter}}-Platzhaltern mcp.instance.validation.error.empty.id=Die Server-ID darf nicht leer sein mcp.instance.validation.error.invalid.id.pattern=Die Server-ID darf nur Kleinbuchstaben, Zahlen und Bindestriche enthalten @@ -1139,20 +1136,20 @@ mcp.instance.validation.error.empty.command=Die Befehlsvorlage darf nicht leer s mcp.instance.validation.error.empty.parameter.key=Der Parameter-Schlüssel darf nicht leer sein mcp.instance.validation.error.empty.parameter.label=Die Parameter-Bezeichnung darf nicht leer sein mcp.instance.env.label=Umgebungsvariablen (Optional) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=Format: SCHLÜSSEL=wert oder SCHLÜSSEL={{parameter}} (einer pro Zeile) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=Format\: SCHLÜSSEL\=wert oder SCHLÜSSEL\={{parameter}} (einer pro Zeile) mcp.instance.transport.stdio=Stdio (Lokaler Prozess) mcp.instance.transport.http=HTTP (Remotes Server) mcp.instance.http.url.label=URL-Vorlage -mcp.instance.http.url.placeholder=https://{{host}}/mcp oder https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp oder https\://api.example.com/mcp mcp.instance.http.url.hint=Der Endpunkt-URL des Servers. Verwenden Sie {{parameter}}-Platzhalter für dynamische Werte mcp.instance.http.headers.label=HTTP-Header (Optional) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=Format: Header-Name=wert oder Header-Name={{parameter}} (einer pro Zeile) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=Format\: Header-Name\=wert oder Header-Name\={{parameter}} (einer pro Zeile) mcp.instance.http.timeout.label=Timeout (ms) mcp.instance.http.timeout.hint=Anfrage-Timeout in Millisekunden mcp.instance.validation.error.empty.url=Die URL-Vorlage darf nicht leer sein -mcp.instance.validation.error.invalid.url=Die URL-Vorlage muss mit http:// oder https:// beginnen +mcp.instance.validation.error.invalid.url=Die URL-Vorlage muss mit http\:// oder https\:// beginnen # MCP Integrations (Project View) mcp.instance.delete.tooltip=MCP-Instanz löschen @@ -1202,7 +1199,7 @@ mcp.tools.dialog.search.count={0} von {1} Tool(s) mcp.tools.dialog.search.empty=Keine Tools stimmen mit Ihrer Suche überein mcp.tools.dialog.export=Tools exportieren mcp.tools.dialog.export.success=Tools nach {0} exportiert -mcp.tools.dialog.export.failed=Fehler beim Exportieren der Tools: {0} +mcp.tools.dialog.export.failed=Fehler beim Exportieren der Tools\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=MCP-Server hinzufügen @@ -1258,7 +1255,7 @@ file.viewer.close=Viewer schließen file.viewer.open.external=Extern öffnen file.viewer.binary=Binärdatei — Vorschau als Text nicht möglich. file.viewer.too.large=Datei ist zu groß für eine Vorschau ({0} KB). Das Maximum liegt bei 512 KB. -file.viewer.error=Datei konnte nicht gelesen werden: {0} +file.viewer.error=Datei konnte nicht gelesen werden\: {0} file.viewer.select.prompt=Wählen Sie eine Datei aus dem Baum oben aus, um ihren Inhalt als Vorschau anzuzeigen # Project Side Panel @@ -1270,12 +1267,11 @@ panel.reindex.confirm.title=Stoppen und neu indizieren? panel.reindex.confirm.message="{0}" wird gerade indiziert. Aktuelle Indizierung stoppen und von vorne beginnen? panel.reindex.confirm.button=Stoppen und neu indizieren panel.reindex.confirm.cancel=Abbrechen -panel.collapse=Panel ausblenden panel.collapse=Panel reduzieren # RAG Status rag.status.started=Indizierung gestartet -rag.status.inprogress=Indizierung: {0}% +rag.status.inprogress=Indizierung\: {0}% rag.status.inprogress.unknown=Indizierung... rag.status.queued=In Warteschlange — wartet darauf, dass ein anderes Projekt die Indizierung abschließt rag.status.ready=Bereit @@ -1287,7 +1283,6 @@ rag.empty.title=Keine Wissensquellen rag.empty.description=Fügen Sie Dateien oder Ordner hinzu,\num RAG für dieses Projekt zu aktivieren rag.empty.button.add=Quellen hinzufügen - # Plans plans.nav.title=Pläne plans.title=Pläne @@ -1326,7 +1321,7 @@ plans.editor.label=YAML-Inhalt plans.editor.placeholder=Fügen Sie hier Ihr Plan-YAML ein oder geben Sie es ein... plans.editor.valid=Gültiges YAML plans.editor.hint.title=Referenz -plans.editor.hint.fields=Erforderlich: id, name, steps\nOptional: description, icon, inputs, workflow\nSchritttypen: text, multiline, toggle, number\nWorkflow-Typen: sequence, parallel, conditional +plans.editor.hint.fields=Erforderlich\: id, name, steps\nOptional\: description, icon, inputs, workflow\nSchritttypen\: text, multiline, toggle, number\nWorkflow-Typen\: sequence, parallel, conditional plans.editor.menu.edit=YAML bearbeiten plans.editor.ai.label=Mit KI generieren plans.editor.ai.placeholder=Beschreibe in einfachen Worten, was dieser Plan tun soll... @@ -1386,12 +1381,12 @@ skills.view.panel.collapse=Panel einklappen skills.view.panel.expand=Panel ausklappen skills.view.tab.skills=Fähigkeiten skills.view.tab.workspace=Arbeitsbereich -skills.view.last.run=Letzte Ausführung: {0} +skills.view.last.run=Letzte Ausführung\: {0} skills.view.category.uncategorized=Sonstige skills.view.search.placeholder=Fähigkeiten suchen ... skills.view.search.clear=Suche leeren skills.view.context.placeholder=Was möchtest du tun? (optional) -skills.view.command.mode.hint=Befehlsmodus: Eine Eingabe, die mit / beginnt, wird als Agenten-Befehl ausgeführt. +skills.view.command.mode.hint=Befehlsmodus\: Eine Eingabe, die mit / beginnt, wird als Agenten-Befehl ausgeführt. skills.view.system.prompt.preview=System-Prompt skills.view.response.title=Antwort skills.view.followup.label=Nachfrage @@ -1401,7 +1396,7 @@ skills.view.history.empty=Noch keine Ausführungen skills.view.copy=Kopieren skills.view.system.prompt.file=Datei skills.view.system.prompt.files=Dateien -skills.view.system.prompt.also.included=Ebenfalls im Agent-Kontext enthalten: +skills.view.system.prompt.also.included=Ebenfalls im Agent-Kontext enthalten\: skills.view.docs.tooltip=Fertigkeitsanleitung anzeigen skills.view.mode.agentic=Agentisch skills.view.mode.manual=Manuell @@ -1446,7 +1441,7 @@ onboarding.step.analytics.section.never=Was wir niemals sammeln onboarding.step.analytics.toggle.subtitle=Hilft uns, uns auf das Wichtigste zu konzentrieren · jederzeit änderbar unter Einstellungen → Erweitert # Onboarding Step 1: Welcome -onboarding.step.welcome.title=👋 Willkommen bei Askimo! +onboarding.step.welcome.title=👋 Willkommen bei Askimo\! onboarding.step.welcome.description=Ihr persönlicher KI-Assistent. Chatten Sie mit mehreren KI-Modellen, organisieren Sie Wissen in Projekten und automatisieren Sie Abläufe mit Skills und Plänen. onboarding.step.welcome.feature1.title=💬 Mit KI chatten onboarding.step.welcome.feature1.description=Stellen Sie Fragen, lassen Sie sich bei Aufgaben helfen oder führen Sie ein Gespräch mit einem beliebigen KI-Modell. @@ -1473,9 +1468,8 @@ onboarding.step.directives.feature2.description=Unklare Fragen bringen unklare A onboarding.step.directives.feature3.title=Für jede Aufgabe der richtige Experte onboarding.step.directives.feature3.description=Benötigen Sie einen geduldigen Tutor zum Lernen und einen direkten Code Reviewer zum Debuggen? Bewahren Sie verschiedene Direktiven getrennt auf und erhalten immer das richtige Mindset für jede Aufgabe. onboarding.step.directives.link=Beispiele und Tipps ansehen - # Onboarding Step 6: Ready -onboarding.step.ready.title=🚀 Sie sind fertig! +onboarding.step.ready.title=🚀 Sie sind fertig\! onboarding.step.ready.description=Alles ist eingerichtet und bereit. Starten Sie Ihren ersten Chat oder stöbern Sie in den untenstehenden Ressourcen. onboarding.step.ready.link.docs=📚 Dokumentation durchsuchen onboarding.step.ready.link.providers=🔧 KI-Anbieter konfigurieren @@ -1485,16 +1479,16 @@ onboarding.step.ready.link.github=⭐ Uns auf GitHub favorisieren onboarding.step.persona.title=🎯 Was möchten Sie hauptsächlich tun? onboarding.step.persona.description=Wählen Sie die Option, die am ehesten Ihrer Arbeit entspricht. Askimo wird die relevantesten Funktionen anzeigen. Sie können dies jederzeit über das Menü „Ansicht“ ändern. onboarding.step.persona.developer.description=Code lesen und schreiben, Dateien refaktorieren, Gerüste generieren oder agentische Aufgaben in Ihrem lokalen Projekt ausführen. -onboarding.step.persona.developer.features=Aktiviert: Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=Aktiviert\: Skills (Gemini CLI, Claude Code), Projects onboarding.step.persona.researcher.description=Themen recherchieren, Daten analysieren, strukturierte Berichte schreiben und wissensbasierte Antworten erhalten. -onboarding.step.persona.researcher.features=Aktiviert: Plans, Projects (RAG) +onboarding.step.persona.researcher.features=Aktiviert\: Plans, Projects (RAG) onboarding.step.persona.manager.description=E-Mails entwerfen, Besprechungsnotizen verarbeiten, Statusberichte schreiben oder mehrstufige Content-Workflows ausführen. -onboarding.step.persona.manager.features=Aktiviert: Plans +onboarding.step.persona.manager.features=Aktiviert\: Plans onboarding.step.persona.everything.description=Ich mache eine Mischung aus verschiedenen Dingen — zeigen Sie mir alle Funktionen und ich werde entscheiden, was ich verwende. -onboarding.step.persona.everything.features=Aktiviert: Skills, Plans, Projects, MCP, RAG +onboarding.step.persona.everything.features=Aktiviert\: Skills, Plans, Projects, MCP, RAG # Persona labels persona.developer=💻 Code schreiben und überprüfen persona.researcher=🔬 Recherchieren und analysieren persona.manager=📋 Schreiben und organisieren -persona.everything=⚡ Ich mache eine Mischung aus Dingen \ No newline at end of file +persona.everything=⚡ Ich mache eine Mischung aus Dingen From 954f05c2d91791135faa42ff63f62f3d5e424eb8 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:42:54 -0700 Subject: [PATCH 004/251] New translations messages.properties (Japanese) [ci skip] --- .../resources/i18n/messages_ja_JP.properties | 156 +++++++++--------- 1 file changed, 76 insertions(+), 80 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 0e6f2f159..695f1cae9 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -1,4 +1,4 @@ -# Askimo Desktop Application - Japanese Strings (Comments Preserved) +# Askimo Desktop Application - English Strings # Application @@ -43,7 +43,7 @@ menu.help.share=🗣 Askimo をシェア menu.help.share.x=X / Twitter でシェア menu.help.share.linkedin=LinkedIn でシェア menu.help.share.facebook=Facebook でシェア -menu.help.share.text=Askimo をチェックアウト — Ollama、OpenAI、Anthropic などに対応した無料のローカル AI デスクトップクライアント。 https://askimo.chat +menu.help.share.text=Askimo をチェックアウト — Ollama、OpenAI、Anthropic などに対応した無料のローカル AI デスクトップクライアント。 https\://askimo.chat menu.help.share.hackernews=Hacker Newsに投稿 menu.eventlog=イベントログ menu.help.model.capabilities=モデル機能ファイルを開く @@ -141,7 +141,7 @@ session.rename.error.empty=タイトルは必須です session.export.file.chooser.title=チャット履歴を保存 session.export.button.export=エクスポート session.export.success.title=エクスポート成功 -session.export.success.message=チャットセッションは次の場所に正常にエクスポートされました: +session.export.success.message=チャットセッションは次の場所に正常にエクスポートされました\: # Projects project.title=プロジェクト @@ -157,7 +157,7 @@ project.new.dialog.file.browse=処理するファイルを選択... project.new.dialog.sources.label=参考資料(任意) project.new.dialog.sources.add=ソースを追加 project.new.dialog.error.empty.name=プロジェクト名は空にできません -project.new.dialog.error.create.failed=プロジェクトの作成に失敗しました: {0} +project.new.dialog.error.create.failed=プロジェクトの作成に失敗しました\: {0} project.new.dialog.name.error.empty=プロジェクト名は空にできません project.new.dialog.button.create=プロジェクトを作成 project.new.dialog.button.cancel=キャンセル @@ -195,13 +195,16 @@ projects.sources.expand=参考資料を表示 projects.sources.collapse=参考資料を非表示 projects.sources.empty.title=参照資料がまだありません projects.sources.empty.description=ドキュメントを追加すると、Askimo が質問に回答する際に参照できるようになります -projects.sources.info.tooltip=参照資料は、Askimo があなた固有のコンテキストを理解するのに役立ちます。\n\n\ -質問に回答する際に Askimo が参照すべき情報を含むフォルダー、ファイル、または Web サイトを追加してください。\n\n\ -例:\n\ +projects.sources.info.tooltip=参照資料は、Askimo があなた固有のコンテキストを理解するのに役立ちます。\n\ +\n\ +質問に回答する際に Askimo が参照すべき情報を含むフォルダー、ファイル、または Web サイトを追加してください。\n\ +\n\ +例\:\n\ • プロジェクトのドキュメント\n\ • 会社のナレッジベース\n\ • 技術仕様書\n\ -• 研究論文\n\n\ +• 研究論文\n\ +\n\ Askimo はこれらの資料を検索し、より正確で文脈に沿った回答を提供します。 projects.sources.type.local_folders=ローカルフォルダー projects.sources.type.local_files=ローカルファイル @@ -229,7 +232,7 @@ project.menu.tooltip=プロジェクトメニュー project.new.chat.placeholder={0} で新しいチャット project.recent.chats=最近のチャット project.no.chats=まだチャットがありません。下から新しいチャットを開始してください! -project.indexing.label=知識ソースのインデックス化: {0} +project.indexing.label=知識ソースのインデックス化\: {0} project.indexing.queued=インデックス作成をキューに入れました - 他のプロジェクトの完了を待機中です... project.indexing.failed=インデックス作成に失敗しました。プロジェクトメニューから再インデックスをお試しください。 project.indexing.ready.label=インデックス済み @@ -249,7 +252,7 @@ settings.appearance=外観 settings.appearance.accent=アクセントカラー settings.appearance.accent.description=単一のアクセントカラーを安全にカスタマイズします。Askimo は主要な UI アクセントに適用し、読みやすさのために関連色を自動生成します。 settings.appearance.accent.label=アクセントカラー (Hex) -settings.appearance.accent.invalid=#0284C7 のような有効な16進カラーを入力してください +settings.appearance.accent.invalid=\#0284C7 のような有効な16進カラーを入力してください settings.appearance.accent.swatch.primary=プライマリ settings.appearance.accent.swatch.primary.container=コンテナ settings.appearance.accent.swatch.on.primary.container=コンテナ上 @@ -364,11 +367,11 @@ settings.log.viewer=ログファイル settings.log.viewer.description=アプリのログと診断を表示 settings.log.viewer.view=ログを見る settings.log.viewer.open_folder=ログフォルダを開く -settings.log.viewer.path=ログファイル: {0} +settings.log.viewer.path=ログファイル\: {0} settings.log.viewer.dialog.title=アプリケーションログ settings.log.viewer.refresh=再読み込み settings.log.viewer.copy=コピー -settings.log.viewer.copied=コピーしました! +settings.log.viewer.copied=コピーしました\! settings.log.viewer.loading=ログを読み込み中... settings.log.viewer.error=ログの読み込みに失敗 settings.log.viewer.empty=ログがありません @@ -465,6 +468,7 @@ user.interest.environment=環境 # Actions action.delete=削除 +action.remove=削除 action.edit=編集 action.pin=サイドバーに固定 action.unpin=サイドバーから固定解除 @@ -485,8 +489,6 @@ action.retry=再試行 action.done=完了 action.refresh=更新 - - # Happiness Gate (shown before Star Prompt) happiness.gate.title=Askimoはいかがですか? happiness.gate.subtitle=ご意見をお聞かせください @@ -531,10 +533,8 @@ file.overwrite.message=このファイルは既に存在しています。上書 file.overwrite.confirm=上書きする file.name.too.long=ファイル名が長すぎます。より短いファイル名を使用してください(最大255文字)。 - # About about.title={0} について -action.remove=削除 about.version=バージョン about.buildDate=ビルド日 about.buildJdk=ビルド JDK @@ -613,7 +613,7 @@ global.search.results.count={0}件の結果 global.search.results.count.plural={0}件の結果 # Rest of chat view strings -chat.directive=ディレクティブ: +chat.directive=ディレクティブ\: chat.directive.none=なし chat.directive.new=新しいディレクティブ chat.directive.manage=ディレクティブ管理 @@ -650,7 +650,7 @@ chat.attachment.remove=添付ファイルを削除 chat.attachment.preview.loading=プレビューを読み込み中… chat.attachment.preview.file.not.found=(ファイルが見つかりません) chat.attachment.preview.too.large=(ファイルが大きすぎてプレビューできません) -chat.attachment.preview.cannot.read=(ファイルを読み込めません: {0}) +chat.attachment.preview.cannot.read=(ファイルを読み込めません\: {0}) chat.attachment.preview.more.lines=さらに {0} 行 # Sessions View @@ -666,8 +666,8 @@ sessions.empty.hint=💡 新しいチャットを開始して最初のセッシ sessions.search.placeholder=タイトルで検索… sessions.search.empty="{0}" に一致するセッションはありません。 -# 汎用テーブルページネーションコントロール -table.page.size.label=1ページあたりの行数: +# Generic table pagination controls +table.page.size.label=1ページあたりの行数\: table.page=ページ {0} / {1} table.page.previous=前のページ table.page.next=次のページ @@ -681,7 +681,6 @@ sessions.error.not.found=セッションが見つかりません。 sessions.error.rename.failed=セッション名の変更に失敗しました。 # ChatSessionService Errors - # Update Check update.dialog.title=ソフトウェアアップデート update.dialog.new.version.available=新しい Askimo バージョンがあります! @@ -724,7 +723,7 @@ settings.ai.response.language=優先応答言語 settings.ai.response.language.description=AIに特定の言語で応答させる(空欄で自動検出) settings.ai.response.language.auto=自動検出 settings.ai.response.language.tooltip=AIは自動的に言語を検出しますが、以下の場合は上書きしてください:\n• 言語学習(実践的な練習)\n• 専門的な一貫性(例:コード文書は常に英語)\n• RAG最適化(ナレッジベースの言語に合わせる)\n• 教育(ある言語で質問し、別の言語で説明)\n• 不要な言語切り替えを防止 -settings.model.select={0} のモデル選択: +settings.model.select={0} のモデル選択\: settings.model.loading=モデル読み込み中... settings.model.none=使用可能なモデルなし settings.model.select.title=モデルを選択 @@ -739,7 +738,7 @@ settings.model.no.match=一致するモデルなし settings.model.no.results=一致するモデルなし settings.configure.title={0} 設定構成 settings.test.connection.testing=テスト中... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=プロバイダーに接続できませんでした。APIキーが正しいこと(クラウドプロバイダーの場合)、またはベースURLに到達可能であること(ローカルプロバイダーの場合)を確認してください。セットアップ手順については、上のヘルプリンクを使用してください。 # Directives Dialog @@ -751,10 +750,10 @@ directive.edit.content.label=内容 directive.edit.content.placeholder=ディレクティブ内容を入力... directive.edit.name.required=名前は必須です directive.edit.content.required=内容は必須です -directive.created=作成日: {0} +directive.created=作成日\: {0} directive.new.title=新しいディレクティブ directive.new.guidelines=ディレクティブは、AIがメッセージに応答する方法を指示します。トーン、詳細レベル、形式、または必要な特別な要件について具体的に指定してください。 -directive.new.name.placeholder=例: concise-code, explain-like-im-5 +directive.new.name.placeholder=例\: concise-code, explain-like-im-5 directive.new.content.placeholder=ディレクティブ内容を入力... directive.new.apply.current=現在のセッションに適用 directive.new.create=作成 @@ -766,8 +765,8 @@ directive.export.tooltip=すべてのディレクティブをJSONファイルに directive.export.filename=askimo-directives directive.import=インポート directive.import.tooltip=JSONファイルからディレクティブをインポートします -directive.import.result=インポート完了: {0}件をインポート、{1}件を名前変更、{2}件をスキップしました -directive.import.error=インポート失敗: 無効またはサポートされていないファイル形式です +directive.import.result=インポート完了\: {0}件をインポート、{1}件を名前変更、{2}件をスキップしました +directive.import.error=インポート失敗\: 無効またはサポートされていないファイル形式です # Log Levels log.level.error=エラー @@ -816,7 +815,7 @@ message.edited.indicator=(編集済み) message.date.today=今日 message.date.yesterday=昨日 message.token.usage={0} トークン · {1} 入力 / {2} 出力 -message.token.usage.tooltip=この応答で使用されたトークン。\n入力: AIに送信されたプロンプトとコンテキスト。\n出力: AIが生成した返信。 +message.token.usage.tooltip=この応答で使用されたトークン。\n入力\: AIに送信されたプロンプトとコンテキスト。\n出力\: AIが生成した返信。 attachment.download=添付ファイルをダウンロード attachment.download.description=この添付ファイルをダウンロード attachment.save.file=添付ファイルを保存 @@ -831,8 +830,8 @@ provider.select.title=プロバイダー選択 provider.setup.required.title=AI プロバイダー設定が必要です provider.setup.required.message=チャットを開始する前に、AI プロバイダーを選択して構成してください。 provider.setup.required.button=設定 -provider.select.prompt=プロバイダーを選択: -provider.configure.prompt=設定: +provider.select.prompt=プロバイダーを選択\: +provider.configure.prompt=設定\: provider.choose.placeholder=プロバイダーを選択... provider.setup.guide={0}の設定方法 provider.apikey.stored=API キーは安全に保存されています @@ -843,31 +842,31 @@ provider.apikey.security.link=データ保護について詳しく見る provider.not.set=未設定 # Provider Configuration - OpenAI -provider.openai.apikey.description=OpenAI API キー: https://platform.openai.com/account/api-keys +provider.openai.apikey.description=OpenAI API キー\: https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=API キーは既に保存されています。空欄のままにすると現在のキーが維持されます。 -provider.openai.setup.help=💡 OpenAI を使うには API キーが必要です。\n\n1. https://platform.openai.com/account/api-keys で取得\n2. 設定で追加するか :change-settings を使用 +provider.openai.setup.help=💡 OpenAI を使うには API キーが必要です。\n\n1. https\://platform.openai.com/account/api-keys で取得\n2. 設定で追加するか \:change-settings を使用 # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Anthropic API キー: https://console.anthropic.com/ +provider.anthropic.apikey.description=Anthropic API キー\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=API キーは既に保存されています。 -provider.anthropic.setup.help=💡 Anthropic を使うには API キーが必要です。\n\n1. https://console.anthropic.com/ で取得\n2. 設定で構成するか :change-settings を使用 +provider.anthropic.setup.help=💡 Anthropic を使うには API キーが必要です。\n\n1. https\://console.anthropic.com/ で取得\n2. 設定で構成するか \:change-settings を使用 # Provider Configuration - Gemini -provider.gemini.apikey.description=Google AI Studio API キー: https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Google AI Studio API キー\: https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=API キーは既に保存されています。 -provider.gemini.setup.help=💡 Gemini を使用するには API キーが必要です。\n\n1. https://aistudio.google.com/app/apikey で取得\n2. 設定または :change-settings で構成 +provider.gemini.setup.help=💡 Gemini を使用するには API キーが必要です。\n\n1. https\://aistudio.google.com/app/apikey で取得\n2. 設定または \:change-settings で構成 # Provider Configuration - XAI -provider.xai.apikey.description=XAI API キー: https://console.x.ai/ +provider.xai.apikey.description=XAI API キー\: https\://console.x.ai/ provider.xai.apikey.stored=API キーは既に保存されています。 -provider.xai.setup.help=💡 XAI を使用するには API キーが必要です。\n\n1. https://console.x.ai/ で取得\n2. 設定または :change-settings で構成 +provider.xai.setup.help=💡 XAI を使用するには API キーが必要です。\n\n1. https\://console.x.ai/ で取得\n2. 設定または \:change-settings で構成 # Provider Configuration - Ollama -provider.ollama.baseurl.description=Ollama ベース URL (デフォルト: http://localhost:11434) -provider.ollama.setup.help=💡 Ollama を使用するにはローカルで実行する必要があります。\n\n1. https://ollama.ai/ からインストール\n2. サービスを開始\n3. 必要に応じてベース URL を変更 +provider.ollama.baseurl.description=Ollama ベース URL (デフォルト\: http\://localhost\:11434) +provider.ollama.setup.help=💡 Ollama を使用するにはローカルで実行する必要があります。\n\n1. https\://ollama.ai/ からインストール\n2. サービスを開始\n3. 必要に応じてベース URL を変更 # Provider Configuration - Docker AI -provider.docker.baseurl.description=Docker AI ベース URL (デフォルト: http://localhost:12434) +provider.docker.baseurl.description=Docker AI ベース URL (デフォルト\: http\://localhost\:12434) provider.docker.setup.help=💡 Docker AI を使用するにはローカルで実行する必要があります。\n\n1. Docker AI がインストールされ実行されていることを確認\n2. サービスを開始\n3. 必要に応じてベース URL を変更 # Provider Configuration - LocalAI @@ -875,8 +874,8 @@ provider.localai.baseurl.description=LocalAI ベース URL provider.localai.setup.help=💡 LocalAI を使用するには先に実行してください。\n\n1. LocalAI をインストールして起動\n2. 利用可能なベース URL を構成 # Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=LMStudio ベース URL (デフォルト: http://localhost:1234) -provider.lmstudio.setup.help=💡 LMStudio の利用方法:\n\n1. https://lmstudio.ai/ でインストール\n2. ローカルサーバーを起動\n3. 必要に応じてベース URL を変更 +provider.lmstudio.baseurl.description=LMStudio ベース URL (デフォルト\: http\://localhost\:1234) +provider.lmstudio.setup.help=💡 LMStudio の利用方法\:\n\n1. https\://lmstudio.ai/ でインストール\n2. ローカルサーバーを起動\n3. 必要に応じてベース URL を変更 provider.lmstudio.openai.compat.info=Askimo はネイティブ LMStudio API(/api/v1/)ではなく、OpenAI 互換エンドポイント(/v1)を使用します。 # Provider Configuration - Open AI Compatible @@ -911,7 +910,7 @@ telemetry.llm.calls=LLM 呼び出し telemetry.llm.calls.count={0} 回 telemetry.llm.tokens={0} トークン telemetry.llm.errors={0} エラー -telemetry.total.tokens=総トークン数: {0} +telemetry.total.tokens=総トークン数\: {0} telemetry.llm.col.provider=プロバイダー telemetry.llm.col.model=モデル telemetry.llm.col.calls=呼び出し @@ -954,11 +953,11 @@ export.format.html.benefit.2=どのブラウザでも閲覧可能 export.format.html.benefit.3=プロフェッショナルな外観 export.format.html.benefit.4=共有が簡単 - # Error Messages error.network=⚠️ AI サービス{endpoint}に接続できません\n\n次をご確認ください:\n• インターネット接続\n• AI サービスの URL(設定を確認)\n• ファイアウォール設定\n• サービスの稼働状況 error.authentication=⚠️ API キーが無効、または設定されていません{provider}\n\n設定画面で API キーを入力すると解決できます。 error.model_configuration=⚠️ モデル設定エラー:{issue}\n\n次の手順で修正してください:\n1. 設定を開く\n2. AI プロバイダーを選択\n3. 一覧からモデルを選ぶ +error.provider_not_configured=⚠️ AI プロバイダーが設定されていません。\n\nチャットを開始するには:\n1. 設定を開く\n2. AI プロバイダーを選択(OpenAI、Ollama、Anthropic など)\n3. API キーを入力するか接続を設定する error.rate_limit=⚠️ レート制限を超えました\n{retryAfter}\n\nAPI の利用上限に達しました。しばらく待ってから、もう一度送信してください。 error.insufficient_credits=⚠️ クレジット残高不足\n\nクレジット残高が不足しています。\n\n請求ページでクレジットを追加してください。 error.timeout=⚠️ {timeout} 秒後にリクエストがタイムアウトしました\n\n原因として考えられること:\n• サーバー負荷が高い—少し待って再試行してください\n• クエリが複雑—内容を簡略化してみてください\n• ネットワーク遅延 @@ -971,16 +970,15 @@ error.model.not_available.title.embedding=埋め込みモデルを利用でき error.model.not_available.message.chat=モデル ''{0}'' は利用できません。 error.model.not_available.message.embedding=埋め込みモデル ''{0}'' は利用できません。\n\n埋め込みモデルを正しく設定してください。 error.model.not_available.config_link=埋め込みモデルを設定 -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration # Generic Application Errors error.app.title=問題が発生しました -error.app.message=予期しないエラーが発生しました: {0} +error.app.message=予期しないエラーが発生しました\: {0} # Send Message Errors error.send_message.title=メッセージの送信に失敗しました - # Indexing Errors error.indexing.model_not_found.title=埋め込みモデルが見つかりません error.indexing.model_not_found.message=埋め込みモデル ''{0}'' が見つかりません。インデックス作成の前に、{1} からこのモデルを取得または有効化してください。 @@ -989,7 +987,6 @@ error.indexing.io_error.message=インデックス作成中に IO エラーが error.indexing.unknown.title=インデックスエラー error.indexing.unknown.message=インデックス作成中に不明なエラーが発生しました - # Settings - Embedding Models (for RAG features) settings.embedding.rag_feature_only=埋め込みモデルの状態(RAG 機能専用) settings.embedding.not_available_rag_only=⚠️ {0}。\n\n注意:これはプロジェクトベースの RAG 機能にのみ影響します。通常のチャット機能は問題なく動作します。 @@ -1006,47 +1003,47 @@ settings.embedding.xai_no_embedding=xAI は埋め込みモデルを提供して settings.rag.title=RAG 設定 settings.rag.description=プロジェクトベースの知識検索のための Retrieval-Augmented Generation パラメータを設定します settings.rag.vector.max.results=ベクトル検索の最大結果数 -settings.rag.vector.max.results.hint=ベクトル検索から取得する最大ドキュメント数(デフォルト: 20) +settings.rag.vector.max.results.hint=ベクトル検索から取得する最大ドキュメント数(デフォルト\: 20) settings.rag.vector.min.score=ベクトル検索の最小スコア -settings.rag.vector.min.score.hint=最小類似度スコア 0.0~1.0(デフォルト: 0.3) +settings.rag.vector.min.score.hint=最小類似度スコア 0.0~1.0(デフォルト\: 0.3) settings.rag.hybrid.max.results=ハイブリッド最大結果数 -settings.rag.hybrid.max.results.hint=融合後の最終ドキュメント数(デフォルト: 15) +settings.rag.hybrid.max.results.hint=融合後の最終ドキュメント数(デフォルト\: 15) settings.rag.rank.fusion.constant=ランキング融合定数 -settings.rag.rank.fusion.constant.hint=ハイブリッドランキング用の RRF 定数(デフォルト: 60) +settings.rag.rank.fusion.constant.hint=ハイブリッドランキング用の RRF 定数(デフォルト\: 60) settings.rag.use.absolute.paths=引用で絶対パスを使用 settings.rag.use.absolute.paths.hint=同じ名前のファイルが複数ある場合に分かりやすくするため、AIの回答に完全なファイルパスを表示します settings.rag.embedding.title=埋め込み設定 settings.rag.embedding.description=テキスト分割および埋め込みのパラメータを設定します settings.rag.embedding.max.chars.per.chunk=チャンクあたりの最大文字数 -settings.rag.embedding.max.chars.per.chunk.hint=各テキストチャンクの最大文字数(デフォルト: 1500) +settings.rag.embedding.max.chars.per.chunk.hint=各テキストチャンクの最大文字数(デフォルト\: 1500) settings.rag.embedding.chunk.overlap=チャンクの重なり -settings.rag.embedding.chunk.overlap.hint=チャンク間で重複する文字数(デフォルト: 100) +settings.rag.embedding.chunk.overlap.hint=チャンク間で重複する文字数(デフォルト\: 100) settings.rag.embedding.models=プロバイダー別の埋め込みモデル settings.rag.indexing.title=インデックス設定 settings.rag.indexing.description=インデックス対象のファイルと許可される最大ファイルサイズを設定します settings.rag.indexing.max.file.bytes=最大ファイルサイズ(バイト) settings.rag.indexing.max.file.bytes.hint=この値より大きいファイルはインデックス作成時にスキップされます。値を高く設定しすぎると、インデックス作成が大幅に遅くなる場合があります。 settings.rag.indexing.supported.extensions=対応する拡張子 -settings.rag.indexing.supported.extensions.hint=インデックスするファイル拡張子をカンマ区切りで指定します(例: kt, java, py, md)。空欄にするとビルトインのデフォルトを使用します。 +settings.rag.indexing.supported.extensions.hint=インデックスするファイル拡張子をカンマ区切りで指定します(例\: kt, java, py, md)。空欄にするとビルトインのデフォルトを使用します。 settings.rag.indexing.exclude.file.names=除外するファイル名 -settings.rag.indexing.exclude.file.names.hint=常にスキップするファイル名をカンマ区切りで指定します(例: package-lock.json, yarn.lock)。 +settings.rag.indexing.exclude.file.names.hint=常にスキップするファイル名をカンマ区切りで指定します(例\: package-lock.json, yarn.lock)。 settings.rag.indexing.binary.extensions=バイナリ拡張子 -settings.rag.indexing.binary.extensions.hint=インデックス中にバイナリとして扱いスキップするファイル拡張子をカンマ区切りで指定します(例: png, jpg, zip, exe)。空欄にするとビルトインのデフォルトを使用します。 +settings.rag.indexing.binary.extensions.hint=インデックス中にバイナリとして扱いスキップするファイル拡張子をカンマ区切りで指定します(例\: png, jpg, zip, exe)。空欄にするとビルトインのデフォルトを使用します。 settings.rag.indexing.embedding.batch.size=埋め込みバッチサイズ settings.rag.indexing.embedding.batch.size.hint=1回のリクエストで埋め込みモデルに送信するテキストセグメント数です。リモートプロバイダー(OpenAI、Gemini)を使用していてインデックスが遅い場合は、100〜500に増やすことを検討してください。ローカルモデル(Ollama、LM Studio)の場合はタイムアウトを避けるために低く保ってください。 -# Settings - Utility Models +## Settings - Utility Models settings.utility.models.title=ユーティリティモデル settings.utility.models.uses.selected=(選択されたモデルを使用) settings.utility.models.local.note={0} はローカルプロバイダーです — ユーティリティタスクには現在のチャットモデルが自動的に使用されます。 -#Settings - Vision Models +## Settings - Vision Models settings.vision.models.title=ビジョンモデル ## Settings - Image Models settings.image.models.title=画像生成モデル -# Settings - Provider Model Config +## Settings - Provider Model Config settings.provider.model.config.title=モデル設定 settings.provider.model.config.description=特定のタスクで使用されるデフォルトモデルを上書きします。空欄のままにすると、プロバイダーのデフォルトモデルが使用されます。 settings.provider.model.config.guide=AIモデル設定ガイドを見る @@ -1069,7 +1066,7 @@ mermaid.setup.required.title=Mermaid CLI が必要です mermaid.setup.privacy.note=Askimo はプライバシー保護のため、図をローカルでレンダリングします。 mermaid.setup.instructions.title=セットアップ手順 mermaid.setup.instructions.text=Askimo で Mermaid 図をレンダリングするには、次のインストールガイドに従ってください: -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=セットアップガイドを開く mermaid.setup.button.copy.diagram=図をコピー mermaid.diagram.source.label=図のソース: @@ -1087,6 +1084,7 @@ mermaid.button.reset.zoom=ズームをリセット mermaid.button.retry=再試行 mermaid.feedback.copied=コピーしました! + # Reference Material knowledge.source.type.folder=フォルダー(変更を監視) knowledge.source.type.file=ファイル(静的) @@ -1103,7 +1101,7 @@ mcp.instances.title=MCP インスタンス mcp.instances.description=これらの MCP インスタンスが利用可能です mcp.instances.empty=設定された MCP インスタンスはありません mcp.instances.count={0} インスタンス -mcp.instance.server.label=サーバー: {0} +mcp.instance.server.label=サーバー\: {0} mcp.instance.delete.confirm.title=MCP インスタンスを削除しますか? mcp.instance.delete.confirm.message=MCP インスタンス「{0}」を削除してもよろしいですか?この操作は元に戻せません。 mcp.instance.enable.tooltip=この MCP インスタンスを有効にする @@ -1129,7 +1127,7 @@ mcp.instance.field.description=説明 mcp.instance.field.description.placeholder=このサーバーが何をするかの簡単な説明 mcp.instance.field.transport=トランスポートタイプ mcp.instance.field.command=コマンドテンプレート -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint={{parameter}} プレースホルダーを含むスペース区切りコマンド mcp.instance.validation.error.empty.id=サーバーIDは空にできません mcp.instance.validation.error.invalid.id.pattern=サーバーIDは小文字のアルファベット、数字、ハイフンのみを含む必要があります @@ -1138,20 +1136,20 @@ mcp.instance.validation.error.empty.command=コマンドテンプレートは空 mcp.instance.validation.error.empty.parameter.key=パラメータキーは空にできません mcp.instance.validation.error.empty.parameter.label=パラメータラベルは空にできません mcp.instance.env.label=環境変数 (オプション) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=書式: キー=値 または キー={{parameter}} (1行に1組) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=書式\: キー\=値 または キー\={{parameter}} (1行に1組) mcp.instance.transport.stdio=Stdio (ローカルプロセス) mcp.instance.transport.http=HTTP (リモートサーバー) mcp.instance.http.url.label=URLテンプレート -mcp.instance.http.url.placeholder=https://{{host}}/mcp または https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp または https\://api.example.com/mcp mcp.instance.http.url.hint=サーバーエンドポイントURL。動的な値には {{parameter}} プレースホルダーを使用します mcp.instance.http.headers.label=HTTPヘッダー (オプション) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=書式: ヘッダー名=値 または ヘッダー名={{parameter}} (1行に1組) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=書式\: ヘッダー名\=値 または ヘッダー名\={{parameter}} (1行に1組) mcp.instance.http.timeout.label=タイムアウト (ms) mcp.instance.http.timeout.hint=ミリ秒単位のリクエストタイムアウト mcp.instance.validation.error.empty.url=URLテンプレートは空にできません -mcp.instance.validation.error.invalid.url=URLテンプレートはhttp://またはhttps://で始める必要があります +mcp.instance.validation.error.invalid.url=URLテンプレートはhttp\://またはhttps\://で始める必要があります # MCP Integrations (Project View) mcp.instance.delete.tooltip=MCP インスタンスを削除 @@ -1162,7 +1160,7 @@ mcp.instance.field.serverId=サーバータイプ # Add MCP Integration Dialog mcp.instance.name=MCP 名 -mcp.instance.name.placeholder=例: 本番データベース、プロジェクトファイル +mcp.instance.name.placeholder=例\: 本番データベース、プロジェクトファイル mcp.instance.tools.title=利用可能なツール mcp.instance.tools.count={0} ツールが利用可能です mcp.instance.tool.strategy.intent=意図ベース @@ -1201,7 +1199,7 @@ mcp.tools.dialog.search.count={0} / {1} ツール mcp.tools.dialog.search.empty=検索に一致するツールはありません mcp.tools.dialog.export=ツールのエクスポート mcp.tools.dialog.export.success={0} にツールをエクスポートしました -mcp.tools.dialog.export.failed=ツールのエクスポートに失敗しました: {0} +mcp.tools.dialog.export.failed=ツールのエクスポートに失敗しました\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=MCPサーバーを追加 @@ -1257,7 +1255,7 @@ file.viewer.close=ビューアーを閉じる file.viewer.open.external=外部で開く file.viewer.binary=バイナリファイル — テキストとしてプレビューできません。 file.viewer.too.large=ファイルが大きすぎてプレビューできません({0} KB)。最大サイズは 512 KB です。 -file.viewer.error=ファイルを読み込めませんでした: {0} +file.viewer.error=ファイルを読み込めませんでした\: {0} file.viewer.select.prompt=上のツリーからファイルを選択して内容をプレビューします # Project Side Panel @@ -1270,11 +1268,10 @@ panel.reindex.confirm.message="{0}" は現在インデックス中です。現 panel.reindex.confirm.button=停止して再インデックス panel.reindex.confirm.cancel=キャンセル panel.collapse=パネルを折りたたむ -panel.collapse=パネルを折りたたむ # RAG Status rag.status.started=インデックス作成を開始しました -rag.status.inprogress=インデックス作成中: {0}% +rag.status.inprogress=インデックス作成中\: {0}% rag.status.inprogress.unknown=インデックス作成中... rag.status.queued=キュー済み — 他のプロジェクトのインデックス作成が完了するのを待機中 rag.status.ready=準備完了 @@ -1324,7 +1321,7 @@ plans.editor.label=YAML コンテンツ plans.editor.placeholder=ここにプランの YAML を貼り付けるか入力してください... plans.editor.valid=有効な YAML plans.editor.hint.title=リファレンス -plans.editor.hint.fields=必須: id, name, steps\n任意: description, icon, inputs, workflow\nステップタイプ: text, multiline, toggle, number\nワークフロータイプ: sequence, parallel, conditional +plans.editor.hint.fields=必須\: id, name, steps\n任意\: description, icon, inputs, workflow\nステップタイプ\: text, multiline, toggle, number\nワークフロータイプ\: sequence, parallel, conditional plans.editor.menu.edit=YAML を編集 plans.editor.ai.label=AIで生成 plans.editor.ai.placeholder=このプランにさせたいことをわかりやすい言葉で説明してください... @@ -1384,7 +1381,7 @@ skills.view.panel.collapse=パネルを閉じる skills.view.panel.expand=パネルを開く skills.view.tab.skills=スキル skills.view.tab.workspace=ワークスペース -skills.view.last.run=最後の実行: {0} +skills.view.last.run=最後の実行\: {0} skills.view.category.uncategorized=その他 skills.view.search.placeholder=スキルを検索 ... skills.view.search.clear=検索をクリア @@ -1399,7 +1396,7 @@ skills.view.history.empty=まだ実行履歴がありません skills.view.copy=コピー skills.view.system.prompt.file=ファイル skills.view.system.prompt.files=ファイル -skills.view.system.prompt.also.included=エージェントコンテキストにも含まれています: +skills.view.system.prompt.also.included=エージェントコンテキストにも含まれています\: skills.view.docs.tooltip=スキルガイドを表示 skills.view.mode.agentic=エージェント型 skills.view.mode.manual=手動 @@ -1471,12 +1468,11 @@ onboarding.step.directives.feature2.description=曖昧な質問からは曖昧 onboarding.step.directives.feature3.title=仕事ごとに最適な専門家 onboarding.step.directives.feature3.description=勉強用の親切な先生と、デバッグ用の厳しいコードレビュアーが欲しいですか?指示を分けて保存すれば、タスクに合わせて適した応対が得られます。 onboarding.step.directives.link=例やヒントを見る - # Onboarding Step 6: Ready onboarding.step.ready.title=🚀 準備完了です! onboarding.step.ready.description=すべて準備が整いました。最初のチャットを始めるか、以下のリソースをチェックしましょう。 onboarding.step.ready.link.docs=📚 ドキュメントを読む -onboarding.step.ready.link.providers=🔧 AIプロバイダーを設定 +onboarding.step.ready.link.providers=🔧 AIプロバイダを設定 onboarding.step.ready.link.github=⭐ GitHubで応援する # Onboarding Step 5: Persona From 696ea6bc53cc72e87c08294083eb92b82d842144 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:42:55 -0700 Subject: [PATCH 005/251] New translations messages.properties (Korean) [ci skip] --- .../resources/i18n/messages_ko_KR.properties | 246 +++++++++--------- 1 file changed, 122 insertions(+), 124 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 925ce3ed0..10ebbb64c 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -1,4 +1,4 @@ -# Askimo Desktop Application - Korean Strings (Comments Preserved) +# Askimo Desktop Application - English Strings # Application @@ -43,7 +43,7 @@ menu.help.share=🗣 Askimo 공유 menu.help.share.x=X / 트위터에서 공유 menu.help.share.linkedin=링크드인에서 공유 menu.help.share.facebook=페이스북에서 공유 -menu.help.share.text=Askimo을 확인해보세요 — 무료로 사용 가능한 로컬 우선 AI 데스크톱 클라이언트입니다. Ollama, OpenAI, Anthropic 및 기타 등과 연동됩니다. https://askimo.chat +menu.help.share.text=Askimo을 확인해보세요 — 무료로 사용 가능한 로컬 우선 AI 데스크톱 클라이언트입니다. Ollama, OpenAI, Anthropic 및 기타 등과 연동됩니다. https\://askimo.chat menu.help.share.hackernews=Hacker News에 게시 menu.eventlog=이벤트 로그 menu.help.model.capabilities=모델 기능 파일 열기 @@ -52,7 +52,6 @@ menu.about=Askimo 정보 menu.help.check.updates=업데이트 확인... menu.help.diagnostics=시스템 진단... - # Common Dialog Buttons dialog.cancel=취소 dialog.close=닫기 @@ -60,16 +59,16 @@ dialog.close=닫기 # Backup and Restore backup.export.title=백업 내보내기 backup.export.success.title=백업을 내보냈습니다 -backup.export.success.message=백업을 성공적으로 내보냈습니다:\n{0} +backup.export.success.message=백업을 성공적으로 내보냈습니다\:\n{0} backup.export.error.title=내보내기 실패 -backup.export.error.message=백업을 내보내지 못했습니다:\n{0} +backup.export.error.message=백업을 내보내지 못했습니다\:\n{0} backup.import.title=백업 가져오기 backup.import.confirm.title=가져오기 확인 backup.import.confirm.message=이 작업은 현재 모든 데이터를 백업으로 교체합니다.\n\n가져오기 전에 안전 백업이 자동으로 생성됩니다.\n\n계속하시겠습니까? backup.import.success.title=백업을 가져왔습니다 backup.import.success.message=백업을 성공적으로 가져왔습니다.\n\n모든 변경 사항을 적용하려면 Askimo를 다시 시작하십시오. backup.import.error.title=가져오기 실패 -backup.import.error.message=백업을 가져오지 못했습니다:\n{0} +backup.import.error.message=백업을 가져오지 못했습니다\:\n{0} # Event Log eventlog.title=이벤트 로그 ({0}) @@ -142,7 +141,7 @@ session.rename.error.empty=제목은 비울 수 없습니다 session.export.file.chooser.title=채팅 기록 저장 session.export.button.export=내보내기 session.export.success.title=내보내기 완료 -session.export.success.message=채팅 세션이 성공적으로 내보내졌습니다: +session.export.success.message=채팅 세션이 성공적으로 내보내졌습니다\: # Projects project.title=프로젝트 @@ -158,11 +157,11 @@ project.new.dialog.file.browse=처리할 파일 선택... project.new.dialog.sources.label=참고 자료 (선택 사항) project.new.dialog.sources.add=소스 추가 project.new.dialog.error.empty.name=프로젝트 이름은 비울 수 없습니다 -project.new.dialog.error.create.failed=프로젝트 생성에 실패했습니다: {0} +project.new.dialog.error.create.failed=프로젝트 생성에 실패했습니다\: {0} project.new.dialog.name.error.empty=프로젝트 이름은 비워둘 수 없습니다 project.new.dialog.button.create=프로젝트 생성 project.new.dialog.button.cancel=취소 -project.new.dialog.success.title=프로젝트가 성공적으로 생성되었습니다! +project.new.dialog.success.title=프로젝트가 성공적으로 생성되었습니다\! project.new.dialog.success.message=프로젝트 ''{0}''가 생성되었습니다. project.new.dialog.success.countdown={0}초 후에 닫힙니다... project.new.dialog.success.close=지금 닫기 @@ -185,7 +184,7 @@ projects.title=프로젝트 projects.description=주제별로 채팅을 구성하고 파일, 폴더 또는 URL을 지식 소스로 첨부하여, AI가 항상 해당 프로젝트에 대한 올바른 컨텍스트를 갖도록 합니다. projects.error=❌ {0} projects.empty=프로젝트를 찾을 수 없습니다. -projects.empty.hint=💡 새 프로젝트를 생성하여 채팅 세션을 정리하세요! +projects.empty.hint=💡 새 프로젝트를 생성하여 채팅 세션을 정리하세요\! projects.search.placeholder=이름으로 검색… projects.search.empty="{0}"과(와) 일치하는 프로젝트가 없습니다. projects.col.name=이름 @@ -196,13 +195,16 @@ projects.sources.expand=참고 자료 표시 projects.sources.collapse=참고 자료 숨기기 projects.sources.empty.title=아직 참조 자료가 없습니다 projects.sources.empty.description=문서를 추가하면 Askimo가 질문에 답변할 때 이를 참조할 수 있습니다 -projects.sources.info.tooltip=참조 자료는 Askimo가 사용자의 구체적인 맥락을 이해하는 데 도움이 됩니다.\n\n\ -질문에 답변할 때 Askimo가 참조해야 할 정보가 포함된 폴더, 파일 또는 웹사이트를 추가하세요.\n\n\ -예:\n\ +projects.sources.info.tooltip=참조 자료는 Askimo가 사용자의 구체적인 맥락을 이해하는 데 도움이 됩니다.\n\ +\n\ +질문에 답변할 때 Askimo가 참조해야 할 정보가 포함된 폴더, 파일 또는 웹사이트를 추가하세요.\n\ +\n\ +예\:\n\ • 프로젝트 문서\n\ • 회사 지식 베이스\n\ • 기술 사양서\n\ -• 연구 논문\n\n\ +• 연구 논문\n\ +\n\ Askimo는 이러한 자료를 검색하여 더 정확하고 맥락에 맞는 답변을 제공합니다. projects.sources.type.local_folders=로컬 폴더 projects.sources.type.local_files=로컬 파일 @@ -229,8 +231,8 @@ project.reindex=프로젝트 재인덱싱 project.menu.tooltip=프로젝트 메뉴 project.new.chat.placeholder={0}에서 새 채팅 project.recent.chats=최근 채팅 -project.no.chats=아직 채팅이 없습니다. 아래에서 새 채팅을 시작하세요! -project.indexing.label=지식 소스 인덱싱: {0} +project.no.chats=아직 채팅이 없습니다. 아래에서 새 채팅을 시작하세요\! +project.indexing.label=지식 소스 인덱싱\: {0} project.indexing.queued=인덱싱 대기 중 - 다른 프로젝트가 완료되기를 기다리는 중... project.indexing.failed=인덱싱에 실패했습니다. 프로젝트 메뉴에서 다시 인덱싱을 시도하세요. project.indexing.ready.label=인덱싱됨 @@ -250,7 +252,7 @@ settings.appearance=모양 settings.appearance.accent=강조 색상 settings.appearance.accent.description=단일 강조 색상을 안전하게 사용자 지정합니다. Askimo는 이를 주요 UI 강조에 적용하고, 읽기 쉬움을 위해 관련 색상을 파생합니다. settings.appearance.accent.label=강조 색상 (Hex) -settings.appearance.accent.invalid=유효한 16진수 색상을 입력하세요. 예: #0284C7 +settings.appearance.accent.invalid=유효한 16진수 색상을 입력하세요. 예\: \#0284C7 settings.appearance.accent.swatch.primary=기본 settings.appearance.accent.swatch.primary.container=컨테이너 settings.appearance.accent.swatch.on.primary.container=컨테이너 위 @@ -274,7 +276,7 @@ settings.network.description=네트워크 및 프록시 설정 구성 settings.mcp.servers=MCP 서버 settings.skills=스킬 settings.skills.description=스킬은 사용자의 기기에서 직접 실행되는 재사용 가능한 AI 에이전트입니다. 각 스킬은 시스템 프롬프트와 지침을 담고 있는 Markdown 파일입니다. 스킬을 실행하면 {0}를 통해 실행되며 장치 파일을 읽고 쓰고, 셸 명령을 실행하며, 작업을 완료할 때까지 반복합니다. 복사 및 붙여넣기가 필요하지 않습니다. -settings.skills.runtimes=지원되는 런타임: +settings.skills.runtimes=지원되는 런타임\: settings.skills.directory=스킬 디렉터리 settings.skills.open.folder=폴더 열기 settings.skills.new.skill=새 스킬 @@ -365,11 +367,11 @@ settings.log.viewer=로그 파일 settings.log.viewer.description=애플리케이션 로그 및 진단 보기 settings.log.viewer.view=로그 보기 settings.log.viewer.open_folder=로그 폴더 열기 -settings.log.viewer.path=로그 파일: {0} +settings.log.viewer.path=로그 파일\: {0} settings.log.viewer.dialog.title=애플리케이션 로그 settings.log.viewer.refresh=새로 고침 settings.log.viewer.copy=복사 -settings.log.viewer.copied=복사됨! +settings.log.viewer.copied=복사됨\! settings.log.viewer.loading=로그 불러오는 중... settings.log.viewer.error=로그 불러오기 실패 settings.log.viewer.empty=로그 없음 @@ -415,25 +417,25 @@ user.profile.name=이름 user.profile.email=이메일 user.profile.email.placeholder=your.email@example.com user.profile.occupation=직업 -user.profile.occupation.placeholder=예: 소프트웨어 개발자, 디자이너, 학생 +user.profile.occupation.placeholder=예\: 소프트웨어 개발자, 디자이너, 학생 user.profile.location=위치 -user.profile.location.placeholder=예: 샌프란시스코, CA +user.profile.location.placeholder=예\: 샌프란시스코, CA user.profile.bio=소개 user.profile.bio.placeholder=자신에 대해 간단히 알려주세요… user.profile.interests=관심사 user.profile.interests.description=관심 있는 주제를 선택하여 AI 경험을 개인화하세요 user.profile.interests.custom=사용자 지정 관심사 -user.profile.interests.custom.placeholder=예: 머신 러닝, 사진 +user.profile.interests.custom.placeholder=예\: 머신 러닝, 사진 user.profile.interests.custom.hint=여러 관심사는 쉼표로 구분하세요 # Welcome Dialog (First Run) -welcome.title=Askimo에 오신 것을 환영합니다! +welcome.title=Askimo에 오신 것을 환영합니다\! welcome.subtitle=AI 경험을 개인화할 수 있도록 도와주세요 welcome.avatar.optional=클릭하여 사진 추가 (선택 사항) welcome.name=이름 -welcome.name.placeholder=예: 홍길동 +welcome.name.placeholder=예\: 홍길동 welcome.occupation=직업 -welcome.occupation.placeholder=예: 소프트웨어 개발자 +welcome.occupation.placeholder=예\: 소프트웨어 개발자 welcome.interests=관심 있는 분야는 무엇인가요? welcome.interests.description=경험을 맞춤화할 수 있도록 몇 가지 주제를 선택하세요 welcome.skip=나중에 설정 @@ -466,6 +468,7 @@ user.interest.environment=환경 # Actions action.delete=삭제 +action.remove=삭제 action.edit=편집 action.pin=사이드바에 고정 action.unpin=사이드바에서 고정 해제 @@ -489,7 +492,7 @@ action.refresh=새로고침 # Happiness Gate (shown before Star Prompt) happiness.gate.title=Askimo는 어떠신가요? happiness.gate.subtitle=어떻게 사용하고 계신지 알려주세요 -happiness.gate.happy=정말 마음에 들어요! 😍 +happiness.gate.happy=정말 마음에 들어요\! 😍 happiness.gate.neutral=괜찮아요 🙂 happiness.gate.unhappy=별로예요 😕 happiness.gate.feedback.title=개선에 도움을 주세요 @@ -510,7 +513,7 @@ star.prompt.social.proof=⭐ 이미 Askimo에 별표를 표시한 {0}명과 함 # Analytics Settings (Advanced section toggle) settings.analytics.title=익명 분석 -settings.analytics.description=익명 기능 사용 데이터를 Askimo 팀과 공유하여 다음에 무엇을 개발할지 우선순위를 정하는 데 도움이 됩니다. 대화, 프롬프트, 파일 내용, API 키는 절대 수집되지 않습니다. +settings.analytics.description=익명 기능 사용 데이터를 Askimo 팀과 공유하여 다음에 무엇을 개발할지 우선순위를 정하는 데 도움을 줍니다. 대화, 프롬프트, 파일 내용, API 키는 절대 수집되지 않습니다. # Hardware Acceleration Settings (Advanced section toggle) settings.hardware.acceleration.title=하드웨어 가속 @@ -530,10 +533,8 @@ file.overwrite.message=이 파일은 이미 존재합니다. 덮어쓰시겠습 file.overwrite.confirm=덮어쓰기 file.name.too.long=파일 이름이 너무 깁니다. 더 짧은 이름을 사용해주세요 (최대 255자). - # About about.title={0} 정보 -action.remove=삭제 about.version=버전 about.buildDate=빌드 날짜 about.buildJdk=빌드 JDK @@ -574,7 +575,7 @@ shortcut.send.message=메시지 전송 shortcut.new.line=새 줄 # Chat View -chat.welcome=Askimo에 오신 것을 환영합니다!\n아래에 메시지를 입력하여 대화를 시작하세요. +chat.welcome=Askimo에 오신 것을 환영합니다\!\n아래에 메시지를 입력하여 대화를 시작하세요. chat.no.active.session=사이드바에서 세션을 선택하거나 새 채팅을 시작하세요 chat.search.placeholder=대화 내 검색... chat.search.no.results=결과 없음 @@ -612,7 +613,7 @@ global.search.results.count={0}개 결과 global.search.results.count.plural={0}개 결과 # Rest of chat view strings -chat.directive=지시문: +chat.directive=지시문\: chat.directive.none=없음 chat.directive.new=새 지시문 chat.directive.manage=지시문 관리 @@ -649,7 +650,7 @@ chat.attachment.remove=첨부 파일 삭제 chat.attachment.preview.loading=미리보기 불러오는 중… chat.attachment.preview.file.not.found=(파일을 찾을 수 없음) chat.attachment.preview.too.large=(파일이 너무 커서 미리볼 수 없음) -chat.attachment.preview.cannot.read=(파일을 읽을 수 없음: {0}) +chat.attachment.preview.cannot.read=(파일을 읽을 수 없음\: {0}) chat.attachment.preview.more.lines={0}줄 더 # Sessions View @@ -661,12 +662,12 @@ sessions.col.created=생성됨 sessions.col.updated=업데이트됨 sessions.error=❌ {0} sessions.empty=세션을 찾을 수 없습니다. -sessions.empty.hint=💡 새 대화를 시작해 첫 세션을 만들어 보세요! +sessions.empty.hint=💡 새 대화를 시작해 첫 세션을 만들어 보세요\! sessions.search.placeholder=제목으로 검색… sessions.search.empty="{0}"과(와) 일치하는 세션이 없습니다. -# 일반 테이블 페이지 매김 컨트롤 -table.page.size.label=페이지당 행 수: +# Generic table pagination controls +table.page.size.label=페이지당 행 수\: table.page=페이지 {0} / {1} table.page.previous=이전 페이지 table.page.next=다음 페이지 @@ -680,10 +681,9 @@ sessions.error.not.found=세션을 찾을 수 없습니다. sessions.error.rename.failed=이름 변경 실패. # ChatSessionService Errors - # Update Check update.dialog.title=소프트웨어 업데이트 -update.dialog.new.version.available=새로운 Askimo 버전 이용 가능! +update.dialog.new.version.available=새로운 Askimo 버전 이용 가능\! update.urgency.medium={0}개 버전 뒤처져 있습니다 — 중요한 버그 수정 및 신기능을 놓쳤을 수 있습니다. update.urgency.high={0}개 버전 뒤처져 있습니다 — 상당한 개선 사항을 놓치고 있습니다. 빨리 업데이트하세요. update.dialog.current.version.label=현재 버전 @@ -694,7 +694,7 @@ update.dialog.download=지금 다운로드 update.dialog.how.to.update=업데이트 방법 update.dialog.later=나중에 update.dialog.skip.version=이 버전 건너뛰기 -update.check.up.to.date=최신 버전을 사용 중입니다! +update.check.up.to.date=최신 버전을 사용 중입니다\! update.check.failed=업데이트 확인 실패 # Event Names @@ -722,15 +722,15 @@ settings.app.language.translation.contribute=Crowdin에서 기여하기 settings.ai.response.language=선호 응답 언어 settings.ai.response.language.description=AI가 특정 언어로 응답하도록 강제 (비워두면 자동 감지) settings.ai.response.language.auto=자동 감지 -settings.ai.response.language.tooltip=AI가 자동으로 언어를 감지하지만 다음 경우 재정의하세요:\n• 언어 학습 (몰입형 연습)\n• 전문적 일관성 (예: 코드 문서는 항상 영어로)\n• RAG 최적화 (지식 베이스 언어와 일치)\n• 교육 (한 언어로 질문하고 다른 언어로 설명)\n• 원치 않는 언어 전환 방지 -settings.model.select={0}의 모델 선택: +settings.ai.response.language.tooltip=AI가 자동으로 언어를 감지하지만 다음 경우 재정의하세요\:\n• 언어 학습 (몰입형 연습)\n• 전문적 일관성 (예\: 코드 문서는 항상 영어로)\n• RAG 최적화 (지식 베이스 언어와 일치)\n• 교육 (한 언어로 질문하고 다른 언어로 설명)\n• 원치 않는 언어 전환 방지 +settings.model.select={0}의 모델 선택\: settings.model.loading=모델 불러오는 중... settings.model.none=사용 가능한 모델 없음 settings.model.select.title=모델 선택 settings.model.current=현재 모델 settings.model.selected=선택된 모델 settings.model.new=새 모델 -settings.model.change.description=아래 목록에서 모델을 선택하세요: +settings.model.change.description=아래 목록에서 모델을 선택하세요\: settings.model.search=모델 검색 settings.model.search.placeholder=모델 필터링 입력... settings.model.filtered={0}/{1} 모델 표시 중 @@ -738,22 +738,22 @@ settings.model.no.match=일치하는 모델 없음 settings.model.no.results=일치하는 모델 없음 settings.configure.title={0} 설정 구성 settings.test.connection.testing=테스트 중... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=제공자에 연결할 수 없습니다. API 키가 올바른지(클라우드 제공자의 경우) 또는 기본 URL에 도달할 수 있는지(로컬 제공자의 경우) 확인하십시오. 위의 도움말 링크를 사용하여 설정 지침을 찾을 수 있습니다. # Directives Dialog directive.manage.title=지시문 관리 -directive.manage.empty=지시문이 없습니다. 새로 만들어보세요! +directive.manage.empty=지시문이 없습니다. 새로 만들어보세요\! directive.edit.name.label=이름 directive.edit.name.placeholder=지시문 이름 입력... directive.edit.content.label=내용 directive.edit.content.placeholder=지시문 내용을 입력하세요... directive.edit.name.required=이름은 필수입니다 directive.edit.content.required=내용은 필수입니다 -directive.created=생성됨: {0} +directive.created=생성됨\: {0} directive.new.title=새 지시문 directive.new.guidelines=지시문은 AI가 메시지에 응답하는 방식을 안내합니다. 어조, 세부 수준, 형식 또는 필요한 특별 요구 사항에 대해 구체적으로 작성하세요. -directive.new.name.placeholder=예: concise-code, explain-like-im-5 +directive.new.name.placeholder=예\: concise-code, explain-like-im-5 directive.new.content.placeholder=지시문 내용을 입력... directive.new.apply.current=현재 세션에 적용 directive.new.create=생성 @@ -765,8 +765,8 @@ directive.export.tooltip=모든 지시문을 JSON 파일로 내보내 공유합 directive.export.filename=askimo-directives directive.import=가져오기 directive.import.tooltip=JSON 파일에서 지시문을 가져옵니다 -directive.import.result=가져오기 완료: {0}개 가져옴, {1}개 이름 변경됨, {2}개 건너뜀 -directive.import.error=가져오기 실패: 잘못되었거나 지원되지 않는 파일 형식입니다 +directive.import.result=가져오기 완료\: {0}개 가져옴, {1}개 이름 변경됨, {2}개 건너뜀 +directive.import.error=가져오기 실패\: 잘못되었거나 지원되지 않는 파일 형식입니다 # Log Levels log.level.error=오류 @@ -815,7 +815,7 @@ message.edited.indicator=(편집됨) message.date.today=오늘 message.date.yesterday=어제 message.token.usage={0} 토큰 · {1} 입력 / {2} 출력 -message.token.usage.tooltip=이 응답에 사용된 토큰입니다.\n입력: AI로 전송된 프롬프트 및 컨텍스트.\n출력: AI가 생성한 응답. +message.token.usage.tooltip=이 응답에 사용된 토큰입니다.\n입력\: AI로 전송된 프롬프트 및 컨텍스트.\n출력\: AI가 생성한 응답. attachment.download=첨부파일 다운로드 attachment.download.description=이 첨부파일 다운로드 attachment.save.file=첨부파일 저장 @@ -830,8 +830,8 @@ provider.select.title=제공자 선택 provider.setup.required.title=AI 제공자 설정 필요 provider.setup.required.message=대화를 시작하기 전에 AI 제공자를 선택하고 구성해야 합니다. provider.setup.required.button=설정 -provider.select.prompt=제공자 선택: -provider.configure.prompt=구성: +provider.select.prompt=제공자 선택\: +provider.configure.prompt=구성\: provider.choose.placeholder=제공자 선택... provider.setup.guide={0}를 설정하는 방법 provider.apikey.stored=API 키가 안전하게 저장되었습니다 @@ -842,31 +842,31 @@ provider.apikey.security.link=데이터 보호 방식 알아보기 provider.not.set=설정되지 않음 # Provider Configuration - OpenAI -provider.openai.apikey.description=OpenAI API 키: https://platform.openai.com/account/api-keys +provider.openai.apikey.description=OpenAI API 키\: https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=API 키가 이미 저장됨. 비워두면 기존 키를 유지합니다. -provider.openai.setup.help=💡 OpenAI 사용을 위해 API 키가 필요합니다.\n\n1. https://platform.openai.com/account/api-keys 에서 키를 받으세요\n2. 설정 메뉴 또는 :change-settings 명령으로 추가하세요 +provider.openai.setup.help=💡 OpenAI 사용을 위해 API 키가 필요합니다.\n\n1. https\://platform.openai.com/account/api-keys 에서 키를 받으세요\n2. 설정 메뉴 또는 \:change-settings 명령으로 추가하세요 # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Anthropic API 키: https://console.anthropic.com/ +provider.anthropic.apikey.description=Anthropic API 키\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=API 키가 이미 저장됨. -provider.anthropic.setup.help=💡 Anthropic 사용을 위해 API 키가 필요합니다.\n\n1. https://console.anthropic.com/ 에서 키를 받으세요\n2. 설정 또는 :change-settings 명령으로 구성하세요 +provider.anthropic.setup.help=💡 Anthropic 사용을 위해 API 키가 필요합니다.\n\n1. https\://console.anthropic.com/ 에서 키를 받으세요\n2. 설정 또는 \:change-settings 명령으로 구성하세요 # Provider Configuration - Gemini -provider.gemini.apikey.description=Google AI Studio API 키: https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Google AI Studio API 키\: https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=API 키가 이미 저장됨. -provider.gemini.setup.help=💡 Gemini 사용을 위해 API 키가 필요합니다.\n\n1. https://aistudio.google.com/app/apikey 에서 키를 받으세요\n2. 설정에서 구성하거나 :change-settings 명령을 사용하세요 +provider.gemini.setup.help=💡 Gemini 사용을 위해 API 키가 필요합니다.\n\n1. https\://aistudio.google.com/app/apikey 에서 키를 받으세요\n2. 설정에서 구성하거나 \:change-settings 명령을 사용하세요 # Provider Configuration - XAI -provider.xai.apikey.description=XAI API 키: https://console.x.ai/ +provider.xai.apikey.description=XAI API 키\: https\://console.x.ai/ provider.xai.apikey.stored=API 키가 이미 저장됨. -provider.xai.setup.help=💡 XAI 사용을 위해 API 키가 필요합니다.\n\n1. https://console.x.ai/ 에서 키를 받으세요\n2. 설정 또는 :change-settings 명령으로 구성하세요 +provider.xai.setup.help=💡 XAI 사용을 위해 API 키가 필요합니다.\n\n1. https\://console.x.ai/ 에서 키를 받으세요\n2. 설정 또는 \:change-settings 명령으로 구성하세요 # Provider Configuration - Ollama -provider.ollama.baseurl.description=Ollama 기본 URL (기본값: http://localhost:11434) -provider.ollama.setup.help=💡 Ollama를 사용하려면 로컬에서 실행해야 합니다.\n\n1. https://ollama.ai/ 에서 설치\n2. 서비스 실행\n3. 필요 시 기본 URL 변경 +provider.ollama.baseurl.description=Ollama 기본 URL (기본값\: http\://localhost\:11434) +provider.ollama.setup.help=💡 Ollama를 사용하려면 로컬에서 실행해야 합니다.\n\n1. https\://ollama.ai/ 에서 설치\n2. 서비스 실행\n3. 필요 시 기본 URL 변경 # Provider Configuration - Docker AI -provider.docker.baseurl.description=Docker AI 기본 URL (기본값: http://localhost:12434) +provider.docker.baseurl.description=Docker AI 기본 URL (기본값\: http\://localhost\:12434) provider.docker.setup.help=💡 Docker AI를 사용하려면 로컬에서 실행해야 합니다.\n\n1. Docker AI가 설치되고 실행되는지 확인\n2. 서비스 실행\n3. 필요 시 기본 URL 변경 # Provider Configuration - LocalAI @@ -874,8 +874,8 @@ provider.localai.baseurl.description=LocalAI 기본 URL provider.localai.setup.help=💡 LocalAI를 사용하려면 먼저 실행해야 합니다.\n\n1. LocalAI 설치 및 실행\n2. 접근 가능한 기본 URL 구성 # Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=LMStudio 기본 URL (기본값: http://localhost:1234) -provider.lmstudio.setup.help=💡 LMStudio 사용 방법:\n\n1. https://lmstudio.ai/ 에서 설치\n2. 로컬 서버 실행\n3. 필요 시 기본 URL 변경 +provider.lmstudio.baseurl.description=LMStudio 기본 URL (기본값\: http\://localhost\:1234) +provider.lmstudio.setup.help=💡 LMStudio 사용 방법\:\n\n1. https\://lmstudio.ai/ 에서 설치\n2. 로컬 서버 실행\n3. 필요 시 기본 URL 변경 provider.lmstudio.openai.compat.info=Askimo는 기본 LMStudio API(/api/v1/)가 아닌 OpenAI 호환 엔드포인트(/v1)를 사용합니다. # Provider Configuration - Open AI Compatible @@ -884,7 +884,7 @@ provider.openai_compatible.apikey.stored=API 키가 이미 안전하게 저장 # System Resources system.share.feedback=피드백 공유 -system.ai.provider.tooltip=AI 제공자: {0}\n클릭하여 설정 +system.ai.provider.tooltip=AI 제공자\: {0}\n클릭하여 설정 system.diagnostics.title=시스템 진단 system.diagnostics.resources=리소스 system.diagnostics.jvm.memory=JVM 메모리 (사용됨 / 전체) @@ -910,7 +910,7 @@ telemetry.llm.calls=LLM 호출 telemetry.llm.calls.count={0} 호출 telemetry.llm.tokens={0} 토큰 telemetry.llm.errors={0} 오류 -telemetry.total.tokens=총 토큰: {0} +telemetry.total.tokens=총 토큰\: {0} telemetry.llm.col.provider=제공자 telemetry.llm.col.model=모델 telemetry.llm.col.calls=호출 @@ -953,16 +953,16 @@ export.format.html.benefit.2=어느 브라우저에서도 볼 수 있음 export.format.html.benefit.3=전문적인 외관 export.format.html.benefit.4=공유하기 쉬움 - # Error Messages -error.network=⚠️ AI 서비스{endpoint}에 연결할 수 없습니다\n\n다음을 확인하세요:\n• 인터넷 연결 상태\n• AI 서비스 URL (설정 확인)\n• 방화벽 설정\n• 서비스 사용 가능 여부 +error.network=⚠️ AI 서비스{endpoint}에 연결할 수 없습니다\n\n다음을 확인하세요\:\n• 인터넷 연결 상태\n• AI 서비스 URL (설정 확인)\n• 방화벽 설정\n• 서비스 사용 가능 여부 error.authentication=⚠️ API 키가 없거나 유효하지 않습니다{provider}\n\n설정에서 API 키를 입력하면 해결할 수 있습니다. -error.model_configuration=⚠️ 모델 구성 오류: {issue}\n\n다음 방법으로 해결하세요:\n1. 설정 열기\n2. AI 제공자 선택\n3. 목록에서 모델 선택 +error.model_configuration=⚠️ 모델 구성 오류\: {issue}\n\n다음 방법으로 해결하세요\:\n1. 설정 열기\n2. AI 제공자 선택\n3. 목록에서 모델 선택 +error.provider_not_configured=⚠️ AI 제공자가 설정되지 않았습니다.\n\n채팅을 시작하려면\:\n1. 설정 열기\n2. AI 제공자 선택 (OpenAI, Ollama, Anthropic 등)\n3. API 키 입력 또는 연결 설정 error.rate_limit=⚠️ 사용량 제한을 초과했습니다\n{retryAfter}\n\nAPI 사용 한도에 도달했습니다. 잠시 기다린 후 다시 메시지를 보내세요. error.insufficient_credits=⚠️ 크레딧 부족\n\n크레딧 잔액이 너무 낮습니다.\n\n결제 페이지를 방문하여 크레딧을 추가하세요. -error.timeout=⚠️ {timeout}초 후 요청 시간이 초과되었습니다\n\n가능한 원인:\n• 서버 부하가 높음 - 잠시 후 다시 시도\n• 쿼리가 복잡함 - 더 간단하게 작성\n• 네트워크 지연 -error.invalid_request=⚠️ 잘못된 요청: {details}\n\n입력 내용을 확인한 뒤 다시 시도하세요. -error.system=⚠️ 시스템 오류\n\n예기치 않은 오류가 발생했습니다: {errorCode}\n\nAskimo 지원팀에 다음 정보를 함께 전달해 주세요:\n• 수행 중이던 작업\n• 위의 오류 코드\n• 타임스탬프 +error.timeout=⚠️ {timeout}초 후 요청 시간이 초과되었습니다\n\n가능한 원인\:\n• 서버 부하가 높음 - 잠시 후 다시 시도\n• 쿼리가 복잡함 - 더 간단하게 작성\n• 네트워크 지연 +error.invalid_request=⚠️ 잘못된 요청\: {details}\n\n입력 내용을 확인한 뒤 다시 시도하세요. +error.system=⚠️ 시스템 오류\n\n예기치 않은 오류가 발생했습니다\: {errorCode}\n\nAskimo 지원팀에 다음 정보를 함께 전달해 주세요\:\n• 수행 중이던 작업\n• 위의 오류 코드\n• 타임스탬프 # Model Availability Errors error.model.not_available.title.chat=모델을 사용할 수 없음 @@ -970,11 +970,11 @@ error.model.not_available.title.embedding=임베딩 모델을 사용할 수 없 error.model.not_available.message.chat=모델 ''{0}''을(를) 사용할 수 없습니다. error.model.not_available.message.embedding=임베딩 모델 ''{0}''을(를) 사용할 수 없습니다.\n\n임베딩 모델을 올바르게 설정하세요. error.model.not_available.config_link=임베딩 모델 설정 -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration # Generic Application Errors error.app.title=문제가 발생했습니다 -error.app.message=예기치 않은 오류가 발생했습니다: {0} +error.app.message=예기치 않은 오류가 발생했습니다\: {0} # Send Message Errors error.send_message.title=메시지 전송 실패 @@ -987,16 +987,15 @@ error.indexing.io_error.message=인덱싱 중 IO 오류가 발생했습니다 error.indexing.unknown.title=인덱싱 오류 error.indexing.unknown.message=인덱싱 중 알 수 없는 오류가 발생했습니다 - # Settings - Embedding Models (for RAG features) settings.embedding.rag_feature_only=임베딩 모델 상태 (RAG 기능에만 필요) -settings.embedding.not_available_rag_only=⚠️ {0}.\n\n참고: 이는 프로젝트 기반 RAG 기능에만 영향을 미칩니다. 일반 채팅 기능은 정상적으로 작동합니다. -settings.embedding.provider_unreachable=⚠️ 제공자에 연결할 수 없습니다: {0}.\n\n참고: 임베딩 모델은 프로젝트 기반 RAG 기능에만 필요합니다. -settings.embedding.check_failed=임베딩 모델 확인 실패: {0} +settings.embedding.not_available_rag_only=⚠️ {0}.\n\n참고\: 이는 프로젝트 기반 RAG 기능에만 영향을 미칩니다. 일반 채팅 기능은 정상적으로 작동합니다. +settings.embedding.provider_unreachable=⚠️ 제공자에 연결할 수 없습니다\: {0}.\n\n참고\: 임베딩 모델은 프로젝트 기반 RAG 기능에만 필요합니다. +settings.embedding.check_failed=임베딩 모델 확인 실패\: {0} settings.embedding.download_model=임베딩 모델 다운로드 -settings.embedding.download_success=✅ 임베딩 모델을 성공적으로 다운로드했습니다: {0} -settings.embedding.download_failed=❌ 임베딩 모델 다운로드에 실패했습니다: {0}. 수동으로 시도하세요: ollama pull {0} -settings.embedding.download_error=모델 다운로드 중 오류 발생: {0} +settings.embedding.download_success=✅ 임베딩 모델을 성공적으로 다운로드했습니다\: {0} +settings.embedding.download_failed=❌ 임베딩 모델 다운로드에 실패했습니다\: {0}. 수동으로 시도하세요\: ollama pull {0} +settings.embedding.download_error=모델 다운로드 중 오류 발생\: {0} settings.embedding.anthropic_no_embedding=Anthropic은 임베딩 모델을 제공하지 않습니다 settings.embedding.xai_no_embedding=xAI는 임베딩 모델을 제공하지 않습니다 @@ -1004,47 +1003,47 @@ settings.embedding.xai_no_embedding=xAI는 임베딩 모델을 제공하지 않 settings.rag.title=RAG 구성 settings.rag.description=프로젝트 기반 지식 검색을 위한 Retrieval-Augmented Generation 매개변수를 구성합니다 settings.rag.vector.max.results=벡터 검색 최대 결과 수 -settings.rag.vector.max.results.hint=벡터 검색에서 가져올 최대 문서 수 (기본값: 20) +settings.rag.vector.max.results.hint=벡터 검색에서 가져올 최대 문서 수 (기본값\: 20) settings.rag.vector.min.score=벡터 검색 최소 점수 -settings.rag.vector.min.score.hint=최소 유사도 점수 0.0–1.0 (기본값: 0.3) +settings.rag.vector.min.score.hint=최소 유사도 점수 0.0–1.0 (기본값\: 0.3) settings.rag.hybrid.max.results=하이브리드 최대 결과 수 -settings.rag.hybrid.max.results.hint=융합 후 최종 문서 수 (기본값: 15) +settings.rag.hybrid.max.results.hint=융합 후 최종 문서 수 (기본값\: 15) settings.rag.rank.fusion.constant=랭크 퓨전 상수 -settings.rag.rank.fusion.constant.hint=하이브리드 랭킹을 위한 RRF 상수 (기본값: 60) +settings.rag.rank.fusion.constant.hint=하이브리드 랭킹을 위한 RRF 상수 (기본값\: 60) settings.rag.use.absolute.paths=인용에서 절대 경로 사용 settings.rag.use.absolute.paths.hint=동일한 이름의 파일이 여러 개 있을 때 더 명확하게 하기 위해 AI 응답에 전체 파일 경로를 표시합니다 settings.rag.embedding.title=임베딩 구성 settings.rag.embedding.description=텍스트 분할 및 임베딩 매개변수를 구성합니다 settings.rag.embedding.max.chars.per.chunk=청크당 최대 문자 수 -settings.rag.embedding.max.chars.per.chunk.hint=각 텍스트 청크의 최대 문자 수 (기본값: 1500) +settings.rag.embedding.max.chars.per.chunk.hint=각 텍스트 청크의 최대 문자 수 (기본값\: 1500) settings.rag.embedding.chunk.overlap=청크 중첩 -settings.rag.embedding.chunk.overlap.hint=청크 간 중첩되는 문자 수 (기본값: 100) +settings.rag.embedding.chunk.overlap.hint=청크 간 중첩되는 문자 수 (기본값\: 100) settings.rag.embedding.models=제공자별 임베딩 모델 settings.rag.indexing.title=인덱싱 구성 settings.rag.indexing.description=인덱싱할 파일과 허용되는 최대 파일 크기를 제어합니다 settings.rag.indexing.max.file.bytes=최대 파일 크기 (바이트) settings.rag.indexing.max.file.bytes.hint=이 값보다 큰 파일은 인덱싱 중에 건너뜁니다. 너무 높게 설정하면 인덱싱 속도가 크게 느려질 수 있습니다. settings.rag.indexing.supported.extensions=지원되는 확장자 -settings.rag.indexing.supported.extensions.hint=인덱싱할 파일 확장자를 쉼표로 구분하여 입력합니다 (예: kt, java, py, md). 빈칸으로 두면 기본값을 사용합니다. +settings.rag.indexing.supported.extensions.hint=인덱싱할 파일 확장자를 쉼표로 구분하여 입력합니다 (예\: kt, java, py, md). 빈칸으로 두면 기본값을 사용합니다. settings.rag.indexing.exclude.file.names=제외할 파일 이름 -settings.rag.indexing.exclude.file.names.hint=항상 건너뛸 정확한 파일 이름을 쉼표로 구분하여 입력합니다 (예: package-lock.json, yarn.lock). +settings.rag.indexing.exclude.file.names.hint=항상 건너뛸 정확한 파일 이름을 쉼표로 구분하여 입력합니다 (예\: package-lock.json, yarn.lock). settings.rag.indexing.binary.extensions=바이너리 확장자 -settings.rag.indexing.binary.extensions.hint=인덱싱 중 바이너리로 처리되어 건너뛸 파일 확장자를 쉼표로 구분하여 입력합니다 (예: png, jpg, zip, exe). 빈칸으로 두면 기본값을 사용합니다. +settings.rag.indexing.binary.extensions.hint=인덱싱 중 바이너리로 처리되어 건너뛸 파일 확장자를 쉼표로 구분하여 입력합니다 (예\: png, jpg, zip, exe). 빈칸으로 두면 기본값을 사용합니다. settings.rag.indexing.embedding.batch.size=임베딩 배치 크기 settings.rag.indexing.embedding.batch.size.hint=요청당 임베딩 모델에 전송되는 텍스트 세그먼트 수입니다. 인덱싱이 느리고 원격 공급자(OpenAI, Gemini)를 사용하는 경우 100–500으로 늘려 보세요. 로컬 모델(Ollama, LM Studio)을 사용하는 경우 타임아웃을 방지하려면 낮게 유지하세요. -# Settings - Utility Models +## Settings - Utility Models settings.utility.models.title=유틸리티 모델 settings.utility.models.uses.selected=(선택된 모델 사용) settings.utility.models.local.note={0}는 로컬 제공자입니다 — 유틸리티 작업에는 현재 활성화된 채팅 모델이 자동으로 사용됩니다. -# Settings - Vision Models +## Settings - Vision Models settings.vision.models.title=비전 모델 ## Settings - Image Models settings.image.models.title=이미지 생성 모델 -# Settings - Provider Model Config +## Settings - Provider Model Config settings.provider.model.config.title=모델 설정 settings.provider.model.config.description=특정 작업에 사용되는 기본 모델을 재정의합니다. 필드를 비워두면 제공자의 기본 모델이 사용됩니다. settings.provider.model.config.guide=AI 모델 구성 가이드 보기 @@ -1060,20 +1059,20 @@ file.viewer.title=파일 뷰어 file.viewer.title.with.name=파일 뷰어 - {0} file.viewer.dialog.close=닫기 file.viewer.copy.clipboard=클립보드에 복사 -file.viewer.copied=복사됨! +file.viewer.copied=복사됨\! # Mermaid Chart Renderer mermaid.setup.required.title=Mermaid CLI 필요 mermaid.setup.privacy.note=Askimo는 개인정보 보호를 위해 다이어그램을 로컬에서 렌더링합니다. mermaid.setup.instructions.title=설정 안내 -mermaid.setup.instructions.text=Askimo에서 Mermaid 다이어그램을 렌더링하려면 다음 설치 가이드를 참고하세요: -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.text=Askimo에서 Mermaid 다이어그램을 렌더링하려면 다음 설치 가이드를 참고하세요\: +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=설정 가이드 열기 mermaid.setup.button.copy.diagram=다이어그램 복사 -mermaid.diagram.source.label=다이어그램 소스: +mermaid.diagram.source.label=다이어그램 소스\: mermaid.rendering.progress=다이어그램 렌더링 중... mermaid.error.rendering.title=다이어그램 렌더링 오류 -mermaid.error.rendering.raw.label=원본 다이어그램: +mermaid.error.rendering.raw.label=원본 다이어그램\: mermaid.error.unexpected.state=예기치 않은 상태입니다. 다시 시도하세요. mermaid.error.failed.load.image=다이어그램 이미지를 불러오지 못했습니다 mermaid.button.copy.code=코드 복사 @@ -1083,7 +1082,8 @@ mermaid.button.zoom.in=확대 mermaid.button.zoom.out=축소 mermaid.button.reset.zoom=확대/축소 초기화 mermaid.button.retry=다시 시도 -mermaid.feedback.copied=복사됨! +mermaid.feedback.copied=복사됨\! + # Reference Material knowledge.source.type.folder=폴더 (변경 사항 감시) @@ -1101,7 +1101,7 @@ mcp.instances.title=MCP 인스턴스 mcp.instances.description=사용 가능한 MCP 인스턴스입니다 mcp.instances.empty=구성된 MCP 인스턴스가 없습니다 mcp.instances.count={0} 인스턴스 -mcp.instance.server.label=서버: {0} +mcp.instance.server.label=서버\: {0} mcp.instance.delete.confirm.title=MCP 인스턴스를 삭제하시겠습니까? mcp.instance.delete.confirm.message=MCP 인스턴스 "{0}"를 정말로 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다. mcp.instance.enable.tooltip=이 MCP 인스턴스 활성화 @@ -1127,7 +1127,7 @@ mcp.instance.field.description=설명 mcp.instance.field.description.placeholder=이 서버가 수행하는 작업에 대한 간단한 설명 mcp.instance.field.transport=전송 유형 mcp.instance.field.command=명령어 템플릿 -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint={{parameter}} 플레이스홀더가 포함된 공백 구분 명령어 mcp.instance.validation.error.empty.id=서버 ID는 비워둘 수 없습니다 mcp.instance.validation.error.invalid.id.pattern=서버 ID는 소문자 문자, 숫자 및 하이픈만 포함해야 합니다 @@ -1136,20 +1136,20 @@ mcp.instance.validation.error.empty.command=명령어 템플릿은 비워둘 수 mcp.instance.validation.error.empty.parameter.key=매개변수 키는 비워둘 수 없습니다 mcp.instance.validation.error.empty.parameter.label=매개변수 라벨은 비워둘 수 없습니다 mcp.instance.env.label=환경 변수 (선택 사항) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=형식: KEY=값 또는 KEY={{parameter}} (1줄에 1쌍) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=형식\: KEY\=값 또는 KEY\={{parameter}} (1줄에 1쌍) mcp.instance.transport.stdio=Stdio (로컬 프로세스) mcp.instance.transport.http=HTTP (원격 서버) mcp.instance.http.url.label=URL 템플릿 -mcp.instance.http.url.placeholder=https://{{host}}/mcp 또는 https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp 또는 https\://api.example.com/mcp mcp.instance.http.url.hint=서버 엔드포인트 URL입니다. 동적 값에는 {{parameter}} 플레이스홀더를 사용합니다 mcp.instance.http.headers.label=HTTP 헤더 (선택 사항) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=형식: 헤더 이름=값 또는 헤더 이름={{parameter}} (1줄에 1쌍) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=형식\: 헤더 이름\=값 또는 헤더 이름\={{parameter}} (1줄에 1쌍) mcp.instance.http.timeout.label=시간 초과 (ms) mcp.instance.http.timeout.hint=요청 시간 초과를 밀리초 단위로 지정하세요 mcp.instance.validation.error.empty.url=URL 템플릿은 비워둘 수 없습니다 -mcp.instance.validation.error.invalid.url=URL 템플릿은 http:// 또는 https://로 시작해야 합니다 +mcp.instance.validation.error.invalid.url=URL 템플릿은 http\:// 또는 https\://로 시작해야 합니다 # MCP Integrations (Project View) mcp.instance.delete.tooltip=MCP 인스턴스 삭제 @@ -1160,7 +1160,7 @@ mcp.instance.field.serverId=서버 유형 # Add MCP Integration Dialog mcp.instance.name=MCP 이름 -mcp.instance.name.placeholder=예: 프로덕션 데이터베이스, 프로젝트 파일 +mcp.instance.name.placeholder=예\: 프로덕션 데이터베이스, 프로젝트 파일 mcp.instance.tools.title=사용 가능한 도구 mcp.instance.tools.count={0} 개의 도구가 사용 가능합니다 mcp.instance.tool.strategy.intent=의도 기반 @@ -1199,7 +1199,7 @@ mcp.tools.dialog.search.count={0} / {1} 도구 mcp.tools.dialog.search.empty=검색에 일치하는 도구가 없습니다 mcp.tools.dialog.export=도구 내보내기 mcp.tools.dialog.export.success={0}로 도구를 내보냈습니다 -mcp.tools.dialog.export.failed=도구 내보내기 실패: {0} +mcp.tools.dialog.export.failed=도구 내보내기 실패\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=MCP 서버 추가 @@ -1255,7 +1255,7 @@ file.viewer.close=뷰어 닫기 file.viewer.open.external=외부에서 열기 file.viewer.binary=바이너리 파일 — 텍스트로 미리 볼 수 없습니다. file.viewer.too.large=파일이 너무 커서 미리 볼 수 없습니다({0} KB). 최대 크기는 512 KB입니다. -file.viewer.error=파일을 읽을 수 없습니다: {0} +file.viewer.error=파일을 읽을 수 없습니다\: {0} file.viewer.select.prompt=위 트리에서 파일을 선택하여 내용을 미리 보세요 # Project Side Panel @@ -1267,12 +1267,11 @@ panel.reindex.confirm.title=중지하고 다시 인덱싱하시겠습니까? panel.reindex.confirm.message="{0}"이(가) 현재 인덱싱 중입니다. 현재 인덱싱을 중지하고 처음부터 다시 인덱싱하시겠습니까? panel.reindex.confirm.button=중지 및 재인덱싱 panel.reindex.confirm.cancel=취소 -panel.collapse=패널 접기 panel.collapse=패널 축소 # RAG Status rag.status.started=인덱싱 시작됨 -rag.status.inprogress=인덱싱 중: {0}% +rag.status.inprogress=인덱싱 중\: {0}% rag.status.inprogress.unknown=인덱싱 중... rag.status.queued=대기열 추가됨 — 다른 프로젝트의 인덱싱이 완료되기를 기다리는 중 rag.status.ready=준비 완료 @@ -1322,7 +1321,7 @@ plans.editor.label=YAML 내용 plans.editor.placeholder=여기에 플랜 YAML을 붙여넣거나 입력하세요... plans.editor.valid=유효한 YAML plans.editor.hint.title=참고 -plans.editor.hint.fields=필수: id, name, steps\n선택: description, icon, inputs, workflow\n단계 유형: text, multiline, toggle, number\n워크플로 유형: sequence, parallel, conditional +plans.editor.hint.fields=필수\: id, name, steps\n선택\: description, icon, inputs, workflow\n단계 유형\: text, multiline, toggle, number\n워크플로 유형\: sequence, parallel, conditional plans.editor.menu.edit=YAML 편집 plans.editor.ai.label=AI로 생성 plans.editor.ai.placeholder=이 계획이 수행할 작업을 알기 쉬운 말로 설명해주세요... @@ -1382,12 +1381,12 @@ skills.view.panel.collapse=패널 접기 skills.view.panel.expand=패널 펼치기 skills.view.tab.skills=스킬 skills.view.tab.workspace=작업 공간 -skills.view.last.run=마지막 실행: {0} +skills.view.last.run=마지막 실행\: {0} skills.view.category.uncategorized=기타 skills.view.search.placeholder=기술 검색 ... skills.view.search.clear=검색 지우기 skills.view.context.placeholder=무엇을 하고 싶으신가요? (선택 사항) -skills.view.command.mode.hint=명령 모드: /로 시작하는 입력은 에이전트 명령으로 실행됩니다. +skills.view.command.mode.hint=명령 모드\: /로 시작하는 입력은 에이전트 명령으로 실행됩니다. skills.view.system.prompt.preview=시스템 프롬프트 skills.view.response.title=응답 skills.view.followup.label=후속 질문 @@ -1397,7 +1396,7 @@ skills.view.history.empty=아직 실행 기록이 없습니다 skills.view.copy=복사 skills.view.system.prompt.file=파일 skills.view.system.prompt.files=파일 -skills.view.system.prompt.also.included=에이전트 컨텍스트에도 포함됨: +skills.view.system.prompt.also.included=에이전트 컨텍스트에도 포함됨\: skills.view.docs.tooltip=스킬 가이드 보기 skills.view.mode.agentic=에이전트형 skills.view.mode.manual=수동 @@ -1429,7 +1428,7 @@ onboarding.step.language.label=언어 # Onboarding Step 1: Analytics onboarding.step.analytics.title=Askimo를 모두에게 더 좋게 만드는 데 도움 주세요 onboarding.step.analytics.description=Askimo는 무료 오픈 소스입니다. 익명 사용 데이터 공유는 작은 기여이지만, 어떤 기능을 우선 개발할지 이해하는 데 큰 도움이 됩니다. -onboarding.step.analytics.collected.yes.features=✅ 사용된 기능들 (예: RAG, MCP 도구, 플랜, 스킬) +onboarding.step.analytics.collected.yes.features=✅ 사용된 기능들 (예\: RAG, MCP 도구, 플랜, 스킬) onboarding.step.analytics.collected.yes.version=✅ 앱 버전 및 운영체제 유형 onboarding.step.analytics.collected.no.conversations=❌ 대화 내용이나 프롬프트는 절대 제공하지 않음 onboarding.step.analytics.collected.no.personal=❌ 개인정보, 파일, API 키는 절대 수집하지 않습니다 @@ -1442,7 +1441,7 @@ onboarding.step.analytics.section.never=수집하지 않는 정보 onboarding.step.analytics.toggle.subtitle=가장 중요한 것에 집중할 수 있도록 도와줍니다 · 설정 → 고급에서 언제든지 변경 가능 # Onboarding Step 1: Welcome -onboarding.step.welcome.title=👋 Askimo에 오신 것을 환영합니다! +onboarding.step.welcome.title=👋 Askimo에 오신 것을 환영합니다\! onboarding.step.welcome.description=여러 AI 모델과 대화하고, 프로젝트로 지식을 정리하며, 스킬 및 플랜을 활용해 워크플로를 자동화할 수 있는 당신만의 AI 비서입니다. onboarding.step.welcome.feature1.title=💬 AI와 대화하기 onboarding.step.welcome.feature1.description=질문하거나, 과제 도움을 받거나, 어떤 AI 모델과도 자연스럽게 대화할 수 있습니다. @@ -1469,9 +1468,8 @@ onboarding.step.directives.feature2.description=모호한 질문엔 모호한 onboarding.step.directives.feature3.title=작업별로 적합한 전문가 onboarding.step.directives.feature3.description=학습엔 친절한 튜터, 디버깅땐 직설적 코드 리뷰어가 필요하신가요? 별도 지시문을 사용해 작업에 맞는 역할을 분리할 수 있습니다. onboarding.step.directives.link=예시와 팁 보기 - # Onboarding Step 6: Ready -onboarding.step.ready.title=🚀 준비 완료! +onboarding.step.ready.title=🚀 준비 완료\! onboarding.step.ready.description=모든 설정이 완료됐습니다. 첫 채팅을 시작하거나 아래 리소스를 확인해보세요. onboarding.step.ready.link.docs=📚 문서 보기 onboarding.step.ready.link.providers=🔧 AI 제공업체 설정 @@ -1481,13 +1479,13 @@ onboarding.step.ready.link.github=⭐ GitHub에서 별 주기 onboarding.step.persona.title=🎯 주로 어떤 작업을 하고 싶으신가요? onboarding.step.persona.description=귀하의 업무와 가장 비슷한 옵션을 선택하세요. Askimo가 가장 관련성 높은 기능을 보여드립니다. 보기 메뉴에서 언제든지 이를 변경할 수 있습니다. onboarding.step.persona.developer.description=코드 읽기 및 쓰기, 파일 리팩토링, 스캐폴딩 생성 또는 로컬 프로젝트에서 에이전트 작업 실행. -onboarding.step.persona.developer.features=활성화: Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=활성화\: Skills (Gemini CLI, Claude Code), Projects onboarding.step.persona.researcher.description=주제 조사, 데이터 분석, 구조화된 보고서 작성 및 지식 기반 답변 얻기. -onboarding.step.persona.researcher.features=활성화: Plans, Projects (RAG) +onboarding.step.persona.researcher.features=활성화\: Plans, Projects (RAG) onboarding.step.persona.manager.description=이메일 초안 작성, 회의록 처리, 상태 보고서 작성 또는 다단계 콘텐츠 워크플로 실행. -onboarding.step.persona.manager.features=활성화: Plans +onboarding.step.persona.manager.features=활성화\: Plans onboarding.step.persona.everything.description=저는 여러 가지 작업을 혼합하여 합니다 — 모든 기능을 보여주시면 제가 무엇을 사용할지 결정하겠습니다. -onboarding.step.persona.everything.features=활성화: Skills, Plans, Projects, MCP, RAG +onboarding.step.persona.everything.features=활성화\: Skills, Plans, Projects, MCP, RAG # Persona labels persona.developer=💻 코드 작성 및 검토 From 6ae45eb9499c88807401504e5129e02c62f82efc Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:42:57 -0700 Subject: [PATCH 006/251] New translations messages.properties (Portuguese) [ci skip] --- .../resources/i18n/messages_pt.properties | 1494 +++++++++++++++++ 1 file changed, 1494 insertions(+) create mode 100644 desktop-shared/src/main/resources/i18n/messages_pt.properties diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties new file mode 100644 index 000000000..8a8a9c25f --- /dev/null +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -0,0 +1,1494 @@ +# Askimo Desktop Application - English Strings + +# Application + +# Menu Items +menu.file=File +menu.new.project=New Project +menu.search.sessions=Search in Sessions +menu.export.backup=Export Backup... +menu.import.backup=Import Backup... +menu.invalidate.caches=Invalidate Caches... +menu.invalidate.caches.title=Invalidate Caches? +menu.invalidate.caches.message=This will delete all cached data (model capabilities, context sizes, etc.).\n\nAre you sure you want to continue? +menu.invalidate.caches.success.title=Caches Deleted +menu.invalidate.caches.success.message=All cache files have been successfully deleted. +menu.clear.preferences=Clear All Preferences... +menu.clear.preferences.title=Clear All Preferences? +menu.clear.preferences.message=This will reset all application preferences to their defaults (UI state, onboarding flags, saved inputs, etc.).\n\nThis is useful for testing a fresh install. The app will continue running.\n\nAre you sure? +menu.clear.preferences.success.title=Preferences Cleared +menu.clear.preferences.success.message=All application preferences have been reset to defaults. +menu.quit=Quit +menu.view=View +menu.view.discover=Discover +menu.view.plans=Plans +menu.view.skills=Skills +menu.view.projects=Project +menu.view.show.sidebar=Show Sidebar +menu.view.hide.sidebar=Hide Sidebar +menu.view.appearance=Appearance +menu.view.appearance.system=System +menu.view.appearance.light=Light +menu.view.appearance.dark=Dark +menu.view.fullscreen=Enter Full Screen +menu.terminal=Terminal +menu.terminal.new=New Terminal +menu.help=Help +menu.documentation=Documentation +menu.help.gettingstarted=Getting Started +menu.help.release.notes=Release Notes +menu.help.star.github=⭐ Star on GitHub +menu.help.discord=💬 Join Discord Community +menu.help.share=🗣 Share Askimo +menu.help.share.x=Share on X / Twitter +menu.help.share.linkedin=Share on LinkedIn +menu.help.share.facebook=Share on Facebook +menu.help.share.text=Just discovered Askimo - an AI desktop app packed with RAG, MCP tools, multi-step Plans, and AI Skills. Works with Claude, Gemini, Codex, Ollama, OpenAI and more. One app for every AI workflow. https\://askimo.chat +menu.help.share.hackernews=Post on Hacker News +menu.eventlog=Event Log +menu.help.model.capabilities=Open Model Capabilities File +menu.dev.clear.account.preferences=[Dev] Clear Account Preferences +menu.about=About Askimo +menu.help.check.updates=Check for Updates... +menu.help.diagnostics=System Diagnostics... + +# Common Dialog Buttons +dialog.cancel=Cancel +dialog.close=Close + +# Backup and Restore +backup.export.title=Export Backup +backup.export.success.title=Backup Exported +backup.export.success.message=Backup successfully exported to\:\n{0} +backup.export.error.title=Export Failed +backup.export.error.message=Failed to export backup\:\n{0} +backup.import.title=Import Backup +backup.import.confirm.title=Confirm Import +backup.import.confirm.message=This will replace all current data with the backup.\n\nA safety backup will be created automatically before importing.\n\nAre you sure you want to continue? +backup.import.success.title=Backup Imported +backup.import.success.message=Backup successfully imported.\n\nPlease restart Askimo for all changes to take effect. +backup.import.error.title=Import Failed +backup.import.error.message=Failed to import backup\:\n{0} + +# Event Log +eventlog.title=Event Log ({0}) +eventlog.clear=Clear Events +eventlog.dock.change=Change dock position +eventlog.dock.bottom=Dock to Bottom +eventlog.dock.left=Dock to Left +eventlog.dock.right=Dock to Right +eventlog.detach=Detach to separate window +eventlog.close=Close +eventlog.empty=No events yet +eventlog.unknown=Unknown +eventlog.window.title=Event Log - Developer Tools +eventlog.window.header=Event Log +eventlog.window.attach=Attach to Main Window +eventlog.window.events.count={0} events +eventlog.window.empty.message=No events yet. Events will appear here as they occur. + +# Chat Interface +chat.new=New Chat +chat.new.tooltip=New Chat ({0}+N) +chat.sessions=Sessions +chat.sessions.tooltip=View chat sessions + +# Sidebar +sidebar.expand=Expand sidebar +sidebar.collapse=Collapse sidebar +sidebar.pinned=Pinned + +# Discover View +discover.greeting.morning=Good morning, {0} +discover.greeting.afternoon=Good afternoon, {0} +discover.greeting.evening=Good evening, {0} +discover.stat.chats=Chats +discover.stat.projects=Projects +discover.stat.mcp=MCP Servers +discover.stat.plans=Plans +discover.stat.skills=Skills +discover.explore.title=Explore Features +discover.explore.mcp.title=MCP Servers +discover.explore.mcp.desc=Extend Askimo with external tools and data sources via the Model Context Protocol. +discover.explore.rag.title=Knowledge Base (RAG) +discover.explore.rag.desc=Ground your AI with your own documents for more accurate, context-aware answers. +discover.explore.plans.title=Plans +discover.explore.plans.desc=Automate multi-step AI workflows and run them on demand with a single click. +discover.explore.skills.title=Skills +discover.explore.skills.desc=Run AI-powered skills backed by Gemini CLI or Claude Code directly from your workspace. +discover.recent.title=Recent Sessions +discover.recent.empty=No recent sessions yet. + +# Sessions +session.star=Star +session.unstar=Unstar +session.delete.confirm=Are you sure you want to delete this session? +session.delete.confirm.title=Delete Chat? +session.delete.confirm.message=Are you sure you want to delete "{0}"?\n\nThis action cannot be undone. +session.delete.confirm.button=Delete Chat +session.delete.confirm.cancel=Cancel +session.export=Export +session.export.title=Export Chat Session +session.export.description=Choose a format and location to export your chat session +session.export.select.format=Select Export Format +session.export.location=Save Location +session.export.file.path=File Path +session.export.browse=Browse +session.rename.title=Rename Title +session.rename.field.label=Title +session.rename.field.placeholder=Enter session title... +session.rename.error.empty=Title cannot be empty +session.export.file.chooser.title=Save export file +session.export.button.export=Export +session.export.success.title=Export Successful +session.export.success.message=Chat session has been successfully exported to\: + +# Projects +project.title=Projects +project.new=New Project +project.new.dialog.title=Create New Project +project.edit.dialog.title=Edit Project +project.new.dialog.name.label=Project Name +project.new.dialog.name.placeholder=Enter project name +project.new.dialog.description.label=Description (optional) +project.new.dialog.description.placeholder=Describe your project +project.new.dialog.folder.browse=Select Folder to Process... +project.new.dialog.file.browse=Select Files to Process... +project.new.dialog.sources.label=Reference Materials (optional) +project.new.dialog.sources.add=Add Source +project.new.dialog.error.empty.name=Project name cannot be empty +project.new.dialog.error.create.failed=Failed to create project\: {0} +project.new.dialog.name.error.empty=Project name cannot be empty +project.new.dialog.button.create=Create Project +project.new.dialog.button.cancel=Cancel +project.new.dialog.success.title=Project created successfully\! +project.new.dialog.success.message=Project ''{0}'' has been created. +project.new.dialog.success.countdown=Closing in {0} second{1}... +project.new.dialog.success.close=Close Now +project.dialog.url.title=Add URL Reference Material +project.dialog.url.description=Enter a URL to add web content as a reference material. The URL will be validated and checked for accessibility. +project.dialog.url.label=URL +project.dialog.url.button.add=Add URL +project.dialog.url.button.cancel=Cancel +project.dialog.url.button.validating=Validating... +project.delete=Delete Project +project.delete.confirm.title=Delete Project? +project.delete.confirm.message=Are you sure you want to delete the project "{0}"?\n\nAll sessions in this project will also be permanently deleted. +project.delete.confirm.button=Delete Project +project.delete.confirm.cancel=Cancel +project.not.found=Project not found +project.not.selected=No project selected + +# Projects View +projects.title=Projects +projects.description=Organize your chats around a topic and attach files, folders, or URLs as knowledge sources, so the AI always has the right context for that project. +projects.error=❌ {0} +projects.empty=No projects found. +projects.empty.hint=💡Create a new project to organize your chat sessions\! +projects.search.placeholder=Search by name… +projects.search.empty=No projects match "{0}". +projects.col.name=Name +projects.col.modified=Modified +projects.col.created=Created +projects.sources.count={0} reference material(s) +projects.sources.expand=Show reference materials +projects.sources.collapse=Hide reference materials +projects.sources.empty.title=No reference materials yet +projects.sources.empty.description=Add documents so Askimo can reference them when answering your questions +projects.sources.info.tooltip=Reference materials help Askimo understand your specific context.\n\ +\n\ +Add folders, files, or websites containing information you want Askimo to reference when answering questions.\n\ +\n\ +For example\:\n\ +• Your project documentation\n\ +• Company knowledge base\n\ +• Technical specifications\n\ +• Research papers\n\ +\n\ +Askimo will search these materials to provide more accurate, context-aware answers. +projects.sources.type.local_folders=Local Folders +projects.sources.type.local_files=Local Files +projects.sources.type.urls=URLs +projects.sources.add.tooltip=Add Reference Material +projects.sources.add.button=Add Reference Material +projects.sources.add.dialog.title=Add Reference Material +projects.sources.add.dialog.description=Select folders, files, or URLs to add as reference materials for this project. +projects.sources.add.dialog.button.add=Add +projects.sources.delete.tooltip=Delete reference material +projects.sources.guide=View Reference Materials Guide +projects.error.loading=Failed to load projects. Please try again. +projects.error.deleting=Failed to delete project. Please try again. +projects.error.updating=Failed to update project. Please try again. +projects.error.not.found=Project not found. +project.update.success=Project updated successfully. +project.error.loading=Failed to load project. Please try again. +project.error.loading_sessions=Failed to load project sessions. Please try again. +project.error.updating=Failed to update project. Please try again. +project.error.deleting_knowledge_source=Failed to delete reference material. Please try again. +project.knowledge_source.delete.success=Reference material deleted successfully. +project.edit=Edit Project +project.reindex=Re-index Project +project.menu.tooltip=Project menu +project.new.chat.placeholder=New chat in {0} +project.recent.chats=Recent Chats +project.no.chats=No chats yet. Start a new chat below\! +project.indexing.label=Indexing knowledge source\: {0} +project.indexing.queued=Indexing queued — waiting for "{0}" to finish... +project.indexing.failed=Indexing failed. Try re-indexing from the project menu. +project.indexing.ready.label=Indexed +project.indexing.ready.tooltip=Knowledge sources are indexed and ready for AI context +session.move.to.project=Move to Project +session.move.to.project.new=New Project +session.remove.from.project=Remove from {0} +session.move.success=Session moved to project successfully. +session.remove.success=Session removed from project. +session.error.moving=Failed to move session to project. Please try again. +session.error.removing=Failed to remove session from project. Please try again. + +# Settings +settings.title=Settings +settings.general=General +settings.appearance=Appearance +settings.appearance.accent=Accent Color +settings.appearance.accent.description=Customize a single accent color safely. Askimo applies it to primary UI accents and derives related colors for readability. +settings.appearance.accent.label=Accent Color (Hex) +settings.appearance.accent.invalid=Enter a valid hex color like \#0284C7 +settings.appearance.accent.swatch.primary=Primary +settings.appearance.accent.swatch.primary.container=Container +settings.appearance.accent.swatch.on.primary.container=On Container +settings.appearance.accent.pick=Pick Color +settings.appearance.accent.pick.title=Select Accent Color +settings.appearance.accent.presets=Quick Presets +settings.appearance.accent.reset=Reset +settings.appearance.palette=Color Style +settings.appearance.palette.description=Choose how Askimo derives the full palette from your accent color. +settings.appearance.palette.balanced=Balanced +settings.appearance.palette.balanced.description=Natural Material-style palette with strong readability and familiar contrast. +settings.appearance.palette.vibrant=Vibrant +settings.appearance.palette.vibrant.description=More chroma and stronger supporting colors while keeping the selected hue recognizable. +settings.appearance.palette.literal=Literal +settings.appearance.palette.literal.description=Keeps the chosen accent closest to the original seed color. +settings.appearance.palette.soft=Soft +settings.appearance.palette.soft.description=More muted supporting colors for a calmer appearance. +settings.ai.provider=AI Provider +settings.network=Network +settings.network.description=Configure network and proxy settings +settings.mcp.servers=MCP Servers +settings.skills=Skills +settings.skills.description=Skills are reusable AI agents that run directly on your machine. Each skill is a Markdown file with a system prompt and instructions. When you run a skill, it executes via {0} — reading and writing your files, running shell commands, and iterating until the job is done. No copy-pasting required. +settings.skills.runtimes=Supported runtimes\: +settings.skills.directory=Skills directory +settings.skills.open.folder=Open Folder +settings.skills.new.skill=New Skill +settings.skills.import.github=Import from GitHub +settings.skills.import.github.description=Clone a GitHub repository containing skill (.md) files into your skills directory. Requires git on PATH. +settings.skills.import.github.url.label=GitHub Repository URL +settings.skills.import.github.button=Import +settings.skills.import.github.importing=Importing… +settings.skills.import.zip=Import from ZIP +settings.skills.import.zip.description=Import a local ZIP archive that contains skill folders (each skill folder should include a skill.md entry file). +settings.skills.import.zip.picker.title=Select ZIP skill pack +settings.skills.import.zip.pick.button=Choose ZIP File +settings.skills.import.zip.button=Import ZIP +settings.skills.import.zip.importing=Importing ZIP... +settings.skills.editor.name=Name +settings.skills.editor.description=Description +settings.skills.editor.system.prompt=System Prompt +settings.skills.editor.system.prompt.placeholder=Write the system prompt here… +settings.skills.editor.system.prompt.hint=This is the instruction given to the AI when the skill is active. +settings.skills.empty=No skills found +settings.skills.empty.hint=Use the + button to create your first skill +settings.skills.select.prompt=Select a skill from the panel to view or edit it +settings.skills.editor.empty.file=Empty file +settings.skills.editor.mode.read=Read +settings.skills.editor.mode.edit=Edit +settings.skills.editor.line.count={0} line +settings.skills.editor.line.count.plural={0} lines +settings.skills.new.skill.placeholder=my-skill +settings.skills.delete.file.title=Delete file +settings.skills.delete.file.confirm=Delete "{0}"? This cannot be undone. +settings.skills.delete.folder.title=Delete folder +settings.skills.delete.folder.confirm=Delete "{0}" and all skills inside it? This cannot be undone. +settings.skills.delete.all.title=Delete All Skills +settings.skills.delete.all.confirm=Delete all skills? This will permanently remove all skill folders and cannot be undone. +settings.skills.import.success.title=Import Successful +settings.skills.import.success.message=Successfully imported {0} skill(s) into "{1}". +settings.skills.add.file=Add File +settings.skills.add.file.name=File name +settings.skills.add.folder=Add Folder +settings.skills.add.folder.name=Folder name +settings.advanced=Advanced +settings.about=About +settings.model=Model +settings.provider=Provider +settings.theme=Theme +settings.save=Save +settings.cancel=Cancel +settings.provider.change.button=Change +settings.model.change.button=Change +settings.change.button=Change + +# Theme +theme.light=Light +theme.light.description=Always use light theme +theme.dark=Dark +theme.dark.description=Always use dark theme +theme.system=System +theme.system.description=Follow system theme settings +theme.sepia=Sepia +theme.sepia.description=Warm parchment tones, easy on the eyes +theme.ocean=Ocean +theme.ocean.description=Soft sky-blue tones, calm and refreshing +theme.nord=Nord +theme.nord.description=Arctic dark palette, cool and focused +theme.sage=Sage +theme.sage.description=Muted grey-green tones, sophisticated and calm +theme.rose=Rose +theme.rose.description=Soft blush pink, elegant and warm +theme.indigo=Indigo +theme.indigo.description=Deep violet-blue, mystical and creative +settings.layout.density=Layout Density +settings.layout.density.description=Adjust spacing and padding density across the app. +layout.density.comfortable=Comfortable +layout.density.comfortable.description=More generous spacing for easier scanning +layout.density.compact=Compact +layout.density.compact.description=Tighter spacing to fit more content +settings.background.image=Background Image +settings.background.image.description=Choose a background image — pick a preset or use your own image. A translucent overlay keeps text readable. Background images are independent of the selected theme. +settings.background.image.browse=Browse +settings.background.image.custom=Custom Image +settings.appearance.avatar.ai=AI Assistant Avatar +settings.appearance.avatar.ai.description=Customize the AI assistant's avatar in chat conversations. User avatar is managed in User Profile. +settings.appearance.avatar.ai.label=AI Avatar +settings.appearance.avatar.select=Select +settings.log.level=Log Level +settings.log.level.description=Control the verbosity of application logs +settings.log.viewer=Log Files +settings.log.viewer.description=View application logs and diagnostics +settings.log.viewer.view=View Logs +settings.log.viewer.open_folder=Open Log Folder +settings.log.viewer.path=Log file\: {0} +settings.log.viewer.dialog.title=Application Logs +settings.log.viewer.refresh=Refresh +settings.log.viewer.copy=Copy to Clipboard +settings.log.viewer.copied=Copied\! +settings.log.viewer.loading=Loading logs... +settings.log.viewer.error=Error loading logs +settings.log.viewer.empty=No logs available + +# Developer Mode +settings.developer.mode=Developer Mode +settings.developer.mode.description=Show detailed information about AI responses, prompts, and session metadata for debugging and development purposes. + +# Proxy Settings +settings.proxy.title=Proxy Configuration +settings.proxy.description=Configure HTTP proxy for all network connections to AI providers +settings.proxy.guide=View Proxy Configuration Guide +settings.proxy.type=Proxy Type +settings.proxy.type.none=No Proxy +settings.proxy.type.none.description=Direct connection without proxy +settings.proxy.type.http=HTTP Proxy +settings.proxy.type.http.description=Standard HTTP proxy server +settings.proxy.type.https=HTTPS Proxy +settings.proxy.type.https.description=HTTPS proxy server (uses same protocol as HTTP) +settings.proxy.type.socks5=SOCKS5 Proxy +settings.proxy.type.socks5.description=SOCKS5 proxy for advanced networking and privacy +settings.proxy.type.system=System Proxy +settings.proxy.type.system.description=Use operating system proxy settings automatically +settings.proxy.host=Proxy Host +settings.proxy.port=Proxy Port +settings.proxy.authentication=Proxy Authentication (Optional) +settings.proxy.authentication.description=Leave blank if your proxy doesn't require authentication +settings.proxy.username=Username +settings.proxy.username.placeholder=Optional +settings.proxy.password=Password +settings.proxy.password.placeholder=Optional +settings.proxy.system.info=ℹ️ Using system proxy settings from your operating system configuration +settings.proxy.socks5.no.auth.info=ℹ️ SOCKS5 authentication is not currently supported. Use SOCKS5 proxy without authentication, or create an issue on GitHub if you need this feature. + +# User Profile +user.profile.default_name=Guest User +user.profile.menu=User Profile Menu +user.profile.title=User Profile +user.profile.avatar=Avatar +user.profile.avatar.click_to_change=Click to change avatar +user.profile.basic_info=Basic Information +user.profile.name=Name +user.profile.email=Email +user.profile.email.placeholder=your.email@example.com +user.profile.occupation=Occupation +user.profile.occupation.placeholder=e.g., Software Developer, Designer, Student +user.profile.location=Location +user.profile.location.placeholder=e.g., San Francisco, CA +user.profile.bio=Bio +user.profile.bio.placeholder=Tell us a bit about yourself... +user.profile.interests=Interests +user.profile.interests.description=Select topics you're interested in to help personalize your AI experience +user.profile.interests.custom=Custom Interests +user.profile.interests.custom.placeholder=e.g., Machine Learning, Photography +user.profile.interests.custom.hint=Separate multiple interests with commas + +# Welcome Dialog (First Run) +welcome.title=Welcome to Askimo\! +welcome.subtitle=Help us personalize your AI experience +welcome.avatar.optional=Click to add photo (optional) +welcome.name=Your Name +welcome.name.placeholder=e.g., John Doe +welcome.occupation=Occupation +welcome.occupation.placeholder=e.g., Software Developer +welcome.interests=What are you interested in? +welcome.interests.description=Select a few topics to help us tailor your experience +welcome.skip=Set up later +welcome.get_started=Get Started +welcome.required_note=* Required field + +# User Menu +user.menu.edit_profile=Edit Profile +user.menu.settings=Settings +user.menu.about=About Askimo +user.menu.logout=Sign Out + +# User Interest Categories +user.interest.technology=Technology +user.interest.science=Science +user.interest.travel=Travel +user.interest.politics=Politics +user.interest.business=Business +user.interest.health=Health +user.interest.arts=Arts +user.interest.sports=Sports +user.interest.cooking=Cooking +user.interest.literature=Literature +user.interest.music=Music +user.interest.movies=Movies +user.interest.gaming=Gaming +user.interest.finance=Finance +user.interest.education=Education +user.interest.environment=Environment + +# Actions +action.delete=Delete +action.remove=Remove +action.edit=Edit +action.pin=Pin to sidebar +action.unpin=Unpin from sidebar +action.open=Open +action.export=Export +action.save=Save +action.rename=Rename +action.cancel=Cancel +action.create=Create +action.ok=OK +action.yes=Yes +action.no=No +action.close=Close +action.show.more=Show more +action.show.less=Show less +action.back=Back +action.retry=Try Again +action.done=Done +action.refresh=Refresh + +# Happiness Gate (shown before Star Prompt) +happiness.gate.title=How are you finding Askimo? +happiness.gate.subtitle=Let us know how we're doing +happiness.gate.happy=Yes, I'm loving it\! 😍 +happiness.gate.neutral=It's okay 🙂 +happiness.gate.unhappy=Not really 😕 +happiness.gate.feedback.title=Help us improve +happiness.gate.feedback.message=Would you like to share your feedback? It helps us make Askimo better for you and everyone else. +happiness.gate.feedback.yes=Yes, share feedback +happiness.gate.feedback.no=No thanks + +# Star Prompt +star.prompt.title=Enjoying Askimo? Help spread the word 💙 +star.prompt.message=Askimo is free and open-source, built with community support. Two quick ways to help others discover it\: +star.prompt.star.button=Star on GitHub +star.prompt.star.description=Show your support and help others find the project. +star.prompt.share.button=Share +star.prompt.share.description=Tell your network about Askimo on X, LinkedIn, or Facebook. +star.prompt.maybe.later=Maybe later +star.prompt.already.starred=Already starred ✓ +star.prompt.social.proof=⭐ Join {0} people who already starred Askimo + +# Analytics Settings (Advanced section toggle) +settings.analytics.title=Anonymous Analytics +settings.analytics.description=Share anonymous feature usage data with the Askimo team to help prioritize what to build next. No conversations, prompts, file contents, or API keys are ever collected. + +# Hardware Acceleration Settings (Advanced section toggle) +settings.hardware.acceleration.title=Hardware Acceleration +settings.hardware.acceleration.description=Use GPU-accelerated rendering for smoother UI performance. Disable this if you experience graphical issues. +settings.hardware.acceleration.description.windows=Use GPU-accelerated rendering (Direct3D/OpenGL) for smoother UI performance. Disable this if you experience flickering or erratic refresh rates with G-Sync or FreeSync displays. +settings.hardware.acceleration.restart.notice=Restart Askimo for this change to take effect. +settings.hardware.acceleration.restart.title=Restart Required +settings.hardware.acceleration.restart.message=Please restart Askimo for the rendering change to take effect. +settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync Detected +settings.hardware.acceleration.vrr.hint.message=Your display appears to use a high refresh rate, which may be paired with G-Sync or FreeSync. Some users experience flickering or erratic frame rates with hardware-accelerated rendering in this configuration. Would you like to switch to software rendering? (Requires restart) +settings.hardware.acceleration.vrr.hint.disable=Switch to Software Rendering +settings.hardware.acceleration.vrr.hint.keep=Keep Hardware Acceleration + +# File operations +file.overwrite.title=File Already Exists +file.overwrite.message=This file already exists. Do you want to overwrite it? +file.overwrite.confirm=Overwrite +file.name.too.long=The filename is too long. Please use a shorter filename (maximum 255 characters). + +# About +about.title=About {0} +about.version=Version +about.buildDate=Build Date +about.buildJdk=Build JDK +about.license=License +about.description=Description +about.description.text=A local-first AI agent platform for desktop and CLI. Chat with multiple providers (OpenAI, Anthropic, Gemini, xAI, Ollama, LM Studio and more), retrieve knowledge from local files and URLs via RAG, run multi-step AI workflows with Plans, execute scripts, and connect external tools via MCP—all on your machine. +about.copyright=Copyright (c) {0} {1} +about.runtime.info=Runtime Information +about.links=Links + +# Keyboard Shortcuts +shortcut.category.global=Global +shortcut.category.file=File +shortcut.category.view=View +shortcut.category.project=Project +shortcut.category.terminal=Terminal +shortcut.category.search=Search +shortcut.category.input=Input +shortcut.new.chat=New Chat +shortcut.new.terminal=New Terminal +shortcut.create.project=Create New Project +shortcut.export.backup=Export Backup +shortcut.import.backup=Import Backup +shortcut.search.in.chat=Search in Chat +shortcut.global.search=Global Search +shortcut.toggle.chat.history=Toggle Chat History +shortcut.open.settings=Open Settings +shortcut.stop.ai.response=Stop AI Response +shortcut.quit.application=Quit Application +shortcut.navigate.to.sessions=Navigate to Sessions +shortcut.navigate.to.projects=Navigate to Projects +shortcut.enter.fullscreen=Enter Full Screen +shortcut.close.search=Close Search +shortcut.next.search.result=Next Search Result +shortcut.previous.search.result=Previous Search Result +shortcut.attach.file=Attach File +shortcut.send.message=Send Message +shortcut.new.line=New Line + +# Chat View +chat.welcome=Welcome to Askimo\!\nStart a conversation by typing a message below. +chat.no.active.session=Select a session from the sidebar or start a new chat +chat.search.placeholder=Search in conversation... +chat.search.no.results=No results +chat.search.not.found=No messages found matching "{0}" + +# Global Search +global.search.title=Search in Sessions +global.search.query=Search Query +global.search.query.placeholder=Search across all sessions... +global.search.filter.date=Date Range +global.search.sort.by=Sort By +global.search.button=Search + +# Date Filter Options +global.search.date.all.time=All Time +global.search.date.today=Today +global.search.date.last.7.days=Last 7 Days +global.search.date.last.30.days=Last 30 Days +global.search.date.last.3.months=Last 3 Months +global.search.date.last.year=Last Year + +# Sort By Options +global.search.sort.relevance=Relevance +global.search.sort.date.newest=Date (Newest First) +global.search.sort.date.oldest=Date (Oldest First) + +# Project Filter Options + +# Search States +global.search.searching=Searching... +global.search.no.results=No results found +global.search.no.results.hint=Try different search terms or filters +global.search.initial.message=Enter a search query to begin +global.search.results.count={0} result found +global.search.results.count.plural={0} results found + +# Rest of chat view strings +chat.directive=Directive\: +chat.directive.none=None +chat.directive.new=New Directive +chat.directive.manage=Manage Directives +chat.directive.learn.more=Learn how to use directives +chat.attach.file=Attach File ({0}+A) +chat.attach.file.menu=Add Attachments +chat.drop.files=Drop files to attach to the conversation +chat.create.image.menu=Create Image +chat.create.image.mode=Image +chat.create.image.mode.cancel=Cancel image creation mode +chat.tools.button=Available Tools +chat.tools.popup.title=Available Tools +chat.tools.popup.loading=Loading servers... +chat.tools.popup.no.servers.global=No global MCP servers configured. +chat.tools.popup.manage=Manage MCP Servers +chat.tools.server.scope.global=Global +chat.tools.server.scope.project=Project +chat.tools.server.scope.builtin=Built-in +chat.tools.tool.no.description=No description available +chat.tools.button.disabled=Available Tools ({0} disabled) +chat.reasoning.effort.label=Thinking +chat.reasoning.effort.tooltip=Reasoning effort — controls how deeply the model thinks before responding +chat.reasoning.effort.off=Off +chat.reasoning.effort.off.description=Disables extended reasoning. The model responds directly without deep thinking. +chat.reasoning.effort.low=Low +chat.reasoning.effort.low.description=Faster response, lower cost. Best for straightforward tasks. +chat.reasoning.effort.medium=Medium +chat.reasoning.effort.medium.description=Balanced depth and speed. Suitable for most tasks. +chat.reasoning.effort.high=High +chat.reasoning.effort.high.description=Thorough reasoning, higher cost. Best for complex problem-solving. +chat.input.placeholder=Type your message... (Enter to send, Shift+Enter for new line) +chat.select.file=Select File(s) +chat.attachment.remove=Remove attachment +chat.attachment.preview.loading=Loading preview… +chat.attachment.preview.file.not.found=(File not found) +chat.attachment.preview.too.large=(File too large to preview) +chat.attachment.preview.cannot.read=(Cannot read file\: {0}) +chat.attachment.preview.more.lines={0} more lines + +# Sessions View +session.tooltip.started=Started +session.tooltip.last.activity=Last activity +sessions.title=Chat Sessions +sessions.col.title=Title +sessions.col.created=Created +sessions.col.updated=Updated +sessions.error=❌ {0} +sessions.empty=No chat sessions found. +sessions.empty.hint=💡Start a new conversation to create your first session\! +sessions.search.placeholder=Search by title… +sessions.search.empty=No sessions match "{0}". + +# Generic table pagination controls +table.page.size.label=Rows per page\: +table.page=Page {0} of {1} +table.page.previous=Previous page +table.page.next=Next page + +# SessionsViewModel Errors +sessions.error.loading=Failed to load sessions. Please try again. +sessions.error.deleting=Failed to delete session. Please try again. +sessions.error.updating=Failed to update session. Please try again. +sessions.error.renaming=Failed to rename session. Please try again. +sessions.error.not.found=Session not found. +sessions.error.rename.failed=Failed to rename session. + +# ChatSessionService Errors +# Update Check +update.dialog.title=Software Update +update.dialog.new.version.available=A new version of Askimo is available\! +update.urgency.medium=You are {0} versions behind — you may be missing important bug fixes and new features. +update.urgency.high=You are {0} versions behind — you are missing significant improvements. Please update soon. +update.dialog.current.version.label=Current Version +update.dialog.new.version.label=New Version +update.dialog.release.date=Release Date +update.dialog.release.notes=What's New +update.dialog.download=Download Now +update.dialog.how.to.update=How to Update +update.dialog.later=Later +update.dialog.skip.version=Skip This Version +update.check.up.to.date=You're using the latest version\! +update.check.failed=Update Check Failed + +# Event Names +event.update.available=🚀 New Version Available +event.details.action=Release Notes +event.update.download=Download Now +event.notification.empty=No events yet +event.notification.clear=Clear +event.notification.clear.all=Clear All +event.notification.group.errors=Background Errors +event.shell.error=Background Error +event.shell.error.cause.show=Show technical details +event.shell.error.cause.hide=Hide technical details + +# Settings View +settings.font.family.ui=UI Font Family +settings.font.family.code=Code Font Family +settings.font.size=Font Size +settings.font.line.spacing=Line Spacing +settings.shortcuts=Keyboard Shortcuts +settings.shortcuts.description=View all available keyboard shortcuts to improve your productivity +settings.app.language=Application Language +settings.app.language.translation.help=See something wrong? Help us improve the translation. +settings.app.language.translation.contribute=Contribute on Crowdin +settings.ai.response.language=Preferred response language +settings.ai.response.language.description=Force AI to respond in a specific language (leave empty for auto-detect) +settings.ai.response.language.auto=Auto-detect +settings.ai.response.language.tooltip=AI auto-detects your language, but override when\:\n• Language learning (immersive practice)\n• Professional consistency (e.g., all code docs in English)\n• RAG optimization (match your knowledge base language)\n• Teaching (ask in one language, explain in another)\n• Prevent unwanted language switching +settings.model.select=Select a model for {0}\: +settings.model.loading=Loading models... +settings.model.none=No models available +settings.model.select.title=Select Model +settings.model.current=Current Model +settings.model.selected=Selected Model +settings.model.new=New Model +settings.model.change.description=Choose a model from the list below\: +settings.model.search=Search Models +settings.model.search.placeholder=Type to filter models... +settings.model.filtered=Showing {0} of {1} models +settings.model.no.match=No models match your search +settings.model.no.results=No models match your search +settings.configure.title=Configure {0} Settings +settings.test.connection.testing=Testing... +settings.placeholder.baseurl=http\://localhost\:11434 +provider.connection.failed=Could not connect to the provider. Please verify your API key is correct (for cloud providers) or your base URL is reachable (for local providers). You can find setup instructions using the help link above. + +# Directives Dialog +directive.manage.title=Manage Directives +directive.manage.empty=No directives available. Create one to get started\! +directive.edit.name.label=Name +directive.edit.name.placeholder=Enter directive name... +directive.edit.content.label=Content +directive.edit.content.placeholder=Enter directive instructions... +directive.edit.name.required=Name is required +directive.edit.content.required=Content is required +directive.created=Created\: {0} +directive.new.title=New Directive +directive.new.guidelines=Directives guide how the AI responds to your messages. Be specific about tone, detail level, format, or any special requirements you need. +directive.new.name.placeholder=e.g., concise-code, explain-like-im-5 +directive.new.content.placeholder=Enter the directive instructions... +directive.new.apply.current=Apply to the current chat session +directive.new.create=Create +directive.edit.title=Edit Directive +directive.edit.save=Save Changes +directive.scope.team=Shared +directive.export=Export +directive.export.tooltip=Export all directives to a JSON file to share with others +directive.export.filename=askimo-directives +directive.import=Import +directive.import.tooltip=Import directives from a JSON file +directive.import.result=Import complete\: {0} imported, {1} renamed, {2} skipped +directive.import.error=Failed to import\: invalid or unsupported file format + +# Log Levels +log.level.error=Error +log.level.error.description=Only show errors +log.level.warn=Warning +log.level.warn.description=Show warnings and errors +log.level.info=Info +log.level.info.description=Show general information (default) +log.level.debug=Debug +log.level.debug.description=Show detailed debug information +log.level.trace=Trace +log.level.trace.description=Show all log messages (most verbose) + +# Message Components +message.loading.previous=Loading previous messages... +message.thinking=Thinking... ({0}s) +message.copy=Copy message +message.copy.description=Copy message +message.edit=Edit message +code.copy=Copy code +code.copy.description=Copy code +code.run=Run +code.run.description=Run script +code.run.dialog.title=Run Code +code.run.dialog.message=Do you want to paste the command into the terminal, or execute it immediately? +code.run.dialog.paste=Paste Only +code.run.dialog.execute=Execute +message.edit.description=Edit message +message.editing.banner=Editing message +message.editing.banner.from=Editing message from {0} +message.cancel.edit=Cancel edit +message.send=Send +message.update.regenerate=Update & Regenerate +message.ai.edit=Edit AI response +message.ai.edit.description=Edit this AI response +message.ai.edit.content.label=AI Response Content +message.ai.try.again=Try again +message.ai.try.again.description=Resend the previous message and get a new response +message.ai.try.again.confirm.title=Regenerate response? +message.ai.try.again.confirm.message=This will delete all messages after this point. Do you want to continue? +message.ai.try.again.confirm.cancel=Cancel +message.ai.try.again.confirm.confirm=Regenerate +message.ai.export.pdf=Export as PDF +message.ai.export.pdf.dialog.title=Save AI Response as PDF +message.edited.indicator=(edited) +message.date.today=Today +message.date.yesterday=Yesterday +message.token.usage={0} tokens · {1} in / {2} out +message.token.usage.tooltip=Tokens used by this response.\nInput\: your prompt + context sent to the AI.\nOutput\: the AI-generated reply. +attachment.download=Download attachment +attachment.download.description=Download this file attachment +attachment.save.file=Save Attachment +outdated.expand=Expand outdated messages +outdated.collapse=Collapse outdated messages +outdated.branch.header={0} outdated messages from previous edit (click to expand) +outdated.label=outdated + +# Provider Dialog +provider.change.title=Change Provider +provider.select.title=Select Provider +provider.setup.required.title=Setup AI Provider +provider.setup.required.message=Before you can start chatting, you need to set up an AI provider. Please select a provider from the list and configure it. +provider.setup.required.button=Set Up Provider +provider.select.prompt=Select a provider\: +provider.configure.prompt=Configure provider\: +provider.choose.placeholder=Choose a provider... +provider.setup.guide=How to set up {0} +provider.apikey.stored=API key stored securely +provider.apikey.enter=Enter API key +provider.apikey.already.stored=Already stored +provider.apikey.security.message=🔒 Your API key is encrypted and stored securely. We never share your data. +provider.apikey.security.link=Learn how we protect your data +provider.not.set=Not set + +# Provider Configuration - OpenAI +provider.openai.apikey.description=Your OpenAI API key from https\://platform.openai.com/account/api-keys +provider.openai.apikey.stored=API key already stored securely. Leave blank to keep existing key, or enter a new one to update. +provider.openai.setup.help=💡To use OpenAI, you need to provide an API key.\n\n1. Get your API key from\: https\://platform.openai.com/account/api-keys\n2. Then set it in the Settings or using\: \:change-settings\n\nGet an API key here\: https\://platform.openai.com/api-keys + +# Provider Configuration - Anthropic +provider.anthropic.apikey.description=Your Anthropic API key from https\://console.anthropic.com/ +provider.anthropic.apikey.stored=API key already stored securely. Leave blank to keep existing key, or enter a new one to update. +provider.anthropic.setup.help=💡To use Anthropic, you need to provide an API key.\n\n1. Get your API key from\: https\://console.anthropic.com/\n2. Then set it in the Settings or using\: \:change-settings + +# Provider Configuration - Gemini +provider.gemini.apikey.description=Your Google AI Studio API key from https\://aistudio.google.com/app/apikey +provider.gemini.apikey.stored=API key already stored securely. Leave blank to keep existing key, or enter a new one to update. +provider.gemini.setup.help=💡To use Gemini, you need to provide an API key.\n\n1. Get your API key from\: https\://aistudio.google.com/app/apikey\n2. Then set it in the Settings or using\: \:change-settings + +# Provider Configuration - XAI +provider.xai.apikey.description=Your XAI API key from https\://console.x.ai/ +provider.xai.apikey.stored=API key already stored securely. Leave blank to keep existing key, or enter a new one to update. +provider.xai.setup.help=💡To use XAI, you need to provide an API key.\n\n1. Get your API key from\: https\://console.x.ai/\n2. Then set it in the Settings or using\: \:change-settings + +# Provider Configuration - Ollama +provider.ollama.baseurl.description=The base URL for your Ollama instance (default\: http\://localhost\:11434) +provider.ollama.setup.help=💡To use Ollama, you need to have it running locally.\n\n1. Install Ollama from\: https\://ollama.ai/\n2. Start Ollama service\n3. Optionally configure the base URL if not using default + +# Provider Configuration - Docker AI +provider.docker.baseurl.description=The base URL for your Docker AI instance (default\: http\://localhost\:12434) +provider.docker.setup.help=💡To use Docker AI, you need to have it running locally.\n\n1. Ensure Docker AI is installed and running\n2. Start Docker AI service\n3. Optionally configure the base URL if not using default + +# Provider Configuration - LocalAI +provider.localai.baseurl.description=The base URL for your LocalAI instance +provider.localai.setup.help=💡To use LocalAI, you need to have it running.\n\n1. Install and start LocalAI\n2. Configure the base URL where LocalAI is accessible + +# Provider Configuration - LMStudio +provider.lmstudio.baseurl.description=The base URL for your LMStudio instance (default\: http\://localhost\:1234) +provider.lmstudio.setup.help=💡To use LMStudio, you need to have it running locally.\n\n1. Install LMStudio from\: https\://lmstudio.ai/\n2. Start the local server\n3. Optionally configure the base URL if not using default +provider.lmstudio.openai.compat.info=Askimo uses OpenAI-compatible endpoints (/v1), not the native LMStudio API (/api/v1/). + +# Provider Configuration - Open AI Compatible +provider.openai_compatible.baseurl.description=The base URL for your OpenAI Compatible instance +provider.openai_compatible.apikey.stored=API key already stored securely. Leave blank to keep existing key, or enter a new one to update. + +# System Resources +system.share.feedback=Share feedback +system.ai.provider.tooltip=AI Provider\: {0}\nClick to configure +system.diagnostics.title=System Diagnostics +system.diagnostics.resources=Resources +system.diagnostics.jvm.memory=JVM Memory (used / total) +system.diagnostics.cpu.usage=CPU Usage +system.diagnostics.telemetry=Telemetry + +# Telemetry +telemetry.reset=Reset telemetry data +telemetry.title=📊 Session Metrics +telemetry.no.data=No metrics collected yet. Send a message to see telemetry data. +telemetry.rag.efficiency=RAG Efficiency +telemetry.rag.triggered={0}/{1} triggered +telemetry.classification=Classification +telemetry.classification.time=avg decision time +telemetry.retrieval=Retrieval +telemetry.retrieval.chunks={0} chunks avg +telemetry.tab.rag=RAG +telemetry.tab.llm=LLM +telemetry.rag.total.queries=Total Queries +telemetry.rag.triggered.label=Triggered +telemetry.rag.skipped.label=Skipped +telemetry.llm.calls=LLM Calls +telemetry.llm.calls.count={0} calls +telemetry.llm.tokens={0} tok +telemetry.llm.errors={0} err +telemetry.total.tokens=Total Tokens\: {0} +telemetry.llm.col.provider=Provider +telemetry.llm.col.model=Model +telemetry.llm.col.calls=Calls +telemetry.llm.col.tokens=Tokens +telemetry.llm.col.avg.duration=Avg Duration +telemetry.llm.col.errors=Errors +telemetry.llm.col.total=Total + +# Developer Mode +developer.menu.show.session.summary=Show Session Summary +developer.session.memory.title=Session Memory +developer.session.memory.loading=Loading session memory... +developer.session.memory.not.found=No memory found for this session +developer.session.memory.summary=Memory Summary +developer.session.memory.messages=Memory Messages +developer.session.memory.word.count={0} words +developer.session.memory.empty=(Empty) + +# Export Format - Markdown +export.format.markdown.name=Markdown +export.format.markdown.description=Human-readable text format +export.format.markdown.benefit.1=Easy to read and edit +export.format.markdown.benefit.2=Works in any text editor +export.format.markdown.benefit.3=Perfect for documentation +export.format.markdown.benefit.4=GitHub compatible + +# Export Format - JSON +export.format.json.name=JSON +export.format.json.description=Structured data format +export.format.json.benefit.1=Machine-readable +export.format.json.benefit.2=Easy to parse and process +export.format.json.benefit.3=Can be re-imported +export.format.json.benefit.4=Perfect for integrations + +# Export Format - HTML +export.format.html.name=HTML +export.format.html.description=Formatted web page +export.format.html.benefit.1=Beautiful presentation +export.format.html.benefit.2=View in any browser +export.format.html.benefit.3=Professional appearance +export.format.html.benefit.4=Easy to share + +# Error Messages +error.network=⚠️ Cannot connect to AI service{endpoint}\n\nPlease check\:\n• Your internet connection\n• AI service URL (check settings)\n• Firewall settings\n• Service availability +error.authentication=⚠️ API key is invalid or missing{provider}\n\nFix this by setting your API key in Settings. +error.model_configuration=⚠️ Model configuration error\: {issue}\n\nFix this by\:\n1. Opening Settings\n2. Selecting an AI provider\n3. Choosing a model from the list +error.provider_not_configured=⚠️ No AI provider configured.\n\nTo start chatting\:\n1. Open Settings\n2. Select an AI provider (OpenAI, Ollama, Anthropic, etc.)\n3. Enter your API key or configure the connection +error.rate_limit=⚠️ Rate limit exceeded\n{retryAfter}\n\nYou''ve reached your API usage limit. Please wait before sending more messages. +error.insufficient_credits=⚠️ Insufficient API credits\n\nYour credit balance has been exhausted.\n\nPlease go to Plans & Billing to top up your credits.\n\nerror.timeout\=⚠️ Request timed out after {timeout} seconds\n\nThis might be due to\:\n• High server load - try again in a moment\n• Complex query - try simplifying\n• Network latency +error.timeout=⚠️ Request timed out after {timeout} seconds\n\nPossible causes\:\n• High server load – please try again later\n• Complex request – simplify your input\n• Network delays +error.invalid_request=⚠️ Invalid request\: {details}\n\nPlease check your input and try again. +error.system=⚠️ System Error\n\nAn unexpected error occurred\: {errorCode}\n\nPlease contact Askimo support with\:\n• What you were doing\n• The error code above\n• The timestamp + +# Model Availability Errors +error.model.not_available.title.chat=Model Not Available +error.model.not_available.title.embedding=Embedding Model Not Available +error.model.not_available.message.chat=Model ''{0}'' is not available. +error.model.not_available.message.embedding=Embedding model ''{0}'' is not available.\n\nPlease configure your embedding model properly. +error.model.not_available.config_link=Configure Embedding Model +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration + +# Generic Application Errors +error.app.title=Something Went Wrong +error.app.message=An unexpected error occurred\: {0} + +# Send Message Errors +error.send_message.title=Failed to Send Message + +# Indexing Errors +error.indexing.model_not_found.title=Embedding Model Not Found +error.indexing.model_not_found.message=The embedding model ''{0}'' was not found. Please pull or enable this embedding model from {1} before indexing. +error.indexing.io_error.title=IO Error +error.indexing.io_error.message=An IO error occurred during indexing +error.indexing.unknown.title=Indexing Error +error.indexing.unknown.message=An unknown error occurred during indexing + +# Settings - Embedding Models (for RAG features) +settings.embedding.rag_feature_only=Embedding Model Status (Required for RAG Features Only) +settings.embedding.not_available_rag_only=⚠️ {0}.\n\nNote\: This only affects project-based RAG features. Regular chat functionality will work normally. +settings.embedding.provider_unreachable=⚠️ Cannot connect to provider\: {0}.\n\nNote\: Embedding models are only needed for project-based RAG features. +settings.embedding.check_failed=Failed to check embedding model\: {0} +settings.embedding.download_model=Download Embedding Model +settings.embedding.download_success=✅ Successfully downloaded embedding model\: {0} +settings.embedding.download_failed=❌ Failed to download embedding model\: {0}. Please try manually\: ollama pull {0} +settings.embedding.download_error=Error downloading model\: {0} +settings.embedding.anthropic_no_embedding=Anthropic does not provide embedding models +settings.embedding.xai_no_embedding=xAI does not provide embedding models + +# RAG Configuration +settings.rag.title=RAG Configuration +settings.rag.description=Configure Retrieval-Augmented Generation parameters for project-based knowledge retrieval +settings.rag.vector.max.results=Vector Search Max Results +settings.rag.vector.max.results.hint=Maximum documents from vector search (default\: 20) +settings.rag.vector.min.score=Vector Search Min Score +settings.rag.vector.min.score.hint=Minimum similarity score 0.0-1.0 (default\: 0.3) +settings.rag.hybrid.max.results=Hybrid Max Results +settings.rag.hybrid.max.results.hint=Final document count after fusion (default\: 15) +settings.rag.rank.fusion.constant=Rank Fusion Constant +settings.rag.rank.fusion.constant.hint=RRF constant for hybrid ranking (default\: 60) +settings.rag.use.absolute.paths=Use Absolute Paths in Citations +settings.rag.use.absolute.paths.hint=Show full file paths in AI responses for better clarity when multiple files have the same name +settings.rag.embedding.title=Embedding Configuration +settings.rag.embedding.description=Configure text chunking and embedding parameters +settings.rag.embedding.max.chars.per.chunk=Max Characters Per Chunk +settings.rag.embedding.max.chars.per.chunk.hint=Maximum characters in each text chunk (default\: 1500) +settings.rag.embedding.chunk.overlap=Chunk Overlap +settings.rag.embedding.chunk.overlap.hint=Number of overlapping characters between chunks (default\: 100) +settings.rag.embedding.models=Embedding Models by Provider +settings.rag.indexing.title=Indexing Configuration +settings.rag.indexing.description=Control which files are indexed and the maximum file size allowed +settings.rag.indexing.max.file.bytes=Max File Size (bytes) +settings.rag.indexing.max.file.bytes.hint=Files larger than this are skipped during indexing. Setting it too high may slow down indexing significantly. +settings.rag.indexing.supported.extensions=Supported Extensions +settings.rag.indexing.supported.extensions.hint=Comma-separated file extensions to index (e.g. kt, java, py, md). Leave empty to use the built-in defaults. +settings.rag.indexing.exclude.file.names=Excluded File Names +settings.rag.indexing.exclude.file.names.hint=Comma-separated exact file names to always skip (e.g. package-lock.json, yarn.lock). +settings.rag.indexing.binary.extensions=Binary Extensions +settings.rag.indexing.binary.extensions.hint=Comma-separated file extensions treated as binary and skipped during indexing (e.g. png, jpg, zip, exe). Leave empty to use the built-in defaults. +settings.rag.indexing.embedding.batch.size=Embedding Batch Size +settings.rag.indexing.embedding.batch.size.hint=Number of text segments sent to the embedding model per request. If indexing feels slow and you use a remote provider (OpenAI, Gemini), try increasing to 100–500. If you use a local model (Ollama, LM Studio), keep this low to avoid timeouts. + +## Settings - Utility Models +settings.utility.models.title=Utility Models +settings.utility.models.uses.selected=(uses selected model) +settings.utility.models.local.note={0} is a local provider — the active chat model is used automatically for utility tasks. + +## Settings - Vision Models +settings.vision.models.title=Vision Models + +## Settings - Image Models +settings.image.models.title=Image Generation Models + +## Settings - Provider Model Config +settings.provider.model.config.title=Model Configuration +settings.provider.model.config.description=Override the default models used for specific tasks. Leave a field blank to use the provider default. +settings.provider.model.config.guide=View AI Model Configuration Guide +settings.provider.model.utility.hint=Low-cost model for background tasks (title generation, summarization, etc.) +settings.provider.model.vision.hint=Model used for image understanding, screenshots, and visual content +settings.provider.model.image.hint=Model used to generate images from text descriptions +settings.provider.model.embedding.hint=Model used to generate vector embeddings for RAG knowledge base search + +settings.model.placeholder.enter=Enter {0} model + +# File Viewer Dialog +file.viewer.title=File Viewer +file.viewer.title.with.name=File Viewer - {0} +file.viewer.dialog.close=Close +file.viewer.copy.clipboard=Copy to Clipboard +file.viewer.copied=Copied\! + +# Mermaid Chart Renderer +mermaid.setup.required.title=Mermaid CLI Required +mermaid.setup.privacy.note=Askimo renders diagrams locally to protect your privacy. +mermaid.setup.instructions.title=Setup Instructions +mermaid.setup.instructions.text=To render Mermaid diagrams in Askimo, please follow the installation guide at\: +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.button.open.guide=Open Setup Guide +mermaid.setup.button.copy.diagram=Copy Diagram +mermaid.diagram.source.label=Diagram Source\: +mermaid.rendering.progress=Rendering diagram... +mermaid.error.rendering.title=Error rendering diagram +mermaid.error.rendering.raw.label=Raw diagram\: +mermaid.error.unexpected.state=Unexpected state. Please try again. +mermaid.error.failed.load.image=Failed to load diagram image +mermaid.button.copy.code=Copy Code +mermaid.button.download=Download +mermaid.button.expand=Expand +mermaid.button.zoom.in=Zoom In +mermaid.button.zoom.out=Zoom Out +mermaid.button.reset.zoom=Reset Zoom +mermaid.button.retry=Retry +mermaid.feedback.copied=Copied\! + + +# Reference Material +knowledge.source.type.folder=Folder (watched for changes) +knowledge.source.type.file=Files (static) +knowledge.source.type.url=URL (web content) + +# MCP Server Management +mcp.servers.title=MCP Server Templates +mcp.servers.guide=View MCP Integration Guide +mcp.instance.add.tooltip=Add a MCP instance + +# Global MCP Instances +mcp.instance.add=MCP Instance +mcp.instances.title=MCP Instances +mcp.instances.description=These MCP instances are available +mcp.instances.empty=No MCP instances configured +mcp.instances.count={0} instance(s) +mcp.instance.server.label=Server\: {0} +mcp.instance.delete.confirm.title=Delete MCP Instance? +mcp.instance.delete.confirm.message=Are you sure you want to delete the mcp instance "{0}"? This cannot be undone. +mcp.instance.enable.tooltip=Enable this MCP instance +mcp.instance.disable.tooltip=Disable this MCP instance +mcp.instance.add.dialog.title=Add MCP Instance +mcp.instance.add.dialog.description=Create a MCP instance that will be available in Universal Chat +mcp.instance.edit.dialog.title=Edit MCP Instance +mcp.instance.edit.dialog.description=Modify the configuration of this MCP instance +mcp.instance.edit.tooltip=Edit this MCP instance +mcp.instance.field.args=Arguments (Optional) +mcp.instance.field.args.placeholder=--port 3000 --verbose +mcp.instance.field.args.hint=Command line arguments (space-separated) +mcp.instance.field.workingdir=Working Directory (Optional) +mcp.instance.field.workingdir.hint=Directory where the MCP server process will run. Relative file paths will be resolved from here. +mcp.instance.test.connection=Test Connection +mcp.instance.test.success=Connection successful +mcp.instance.test.failed=Connection failed +mcp.instance.connection.status=Connection Status +mcp.instance.connection.info=Click "Save" to test connection and create the instance + +# MCP Server Dialog +mcp.instance.field.description=Description +mcp.instance.field.description.placeholder=Brief description of what this server does +mcp.instance.field.transport=Transport Type +mcp.instance.field.command=Command Template +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} +mcp.instance.field.command.hint=Space-separated command with {{parameter}} placeholders +mcp.instance.validation.error.empty.id=Server ID cannot be empty +mcp.instance.validation.error.invalid.id.pattern=Server ID must contain only lowercase letters, numbers, and hyphens +mcp.instance.validation.error.empty.name=Server name cannot be empty +mcp.instance.validation.error.empty.command=Command template cannot be empty +mcp.instance.validation.error.empty.parameter.key=Parameter key cannot be empty +mcp.instance.validation.error.empty.parameter.label=Parameter label cannot be empty +mcp.instance.env.label=Environment Variables (Optional) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=Format\: KEY\=value or KEY\={{parameter}} (one per line) +mcp.instance.transport.stdio=Stdio (Local Process) +mcp.instance.transport.http=HTTP (Remote Server) +mcp.instance.http.url.label=URL +mcp.instance.http.url.placeholder=https\://{{host}}/mcp or https\://api.example.com/mcp +mcp.instance.http.url.hint=Server endpoint URL. Use {{parameter}} placeholders for dynamic values +mcp.instance.http.headers.label=HTTP Headers (Optional) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=Format\: Header-Name\=value or Header-Name\={{parameter}} (one per line) +mcp.instance.http.timeout.label=Timeout (ms) +mcp.instance.http.timeout.hint=Request timeout in milliseconds +mcp.instance.validation.error.empty.url=URL cannot be empty +mcp.instance.validation.error.invalid.url=URL must start with http\:// or https\:// + +# MCP Integrations (Project View) +mcp.instance.delete.tooltip=Delete MCP instance +mcp.instance.view.tools.tooltip=View available tools + +# MCP Instance Fields +mcp.instance.field.serverId=Server Type + +# Add MCP Integration Dialog +mcp.instance.name=MCP Name +mcp.instance.name.placeholder=e.g., Production Database, Project Files +mcp.instance.tools.title=Available Tools +mcp.instance.tools.count={0} tools available +mcp.instance.tool.strategy.intent=Intent-Based +mcp.instance.tool.strategy.followup=Follow-Up +mcp.instance.tool.strategy.both=Both +mcp.instance.tool.strategy.unknown=Unknown +mcp.instance.password.hide=Hide password +mcp.instance.password.show=Show password + +# MCP Tool Categories +mcp.tool.category.DATABASE.desc=Database queries and operations +mcp.tool.category.NETWORK.desc=HTTP requests and API calls +mcp.tool.category.FILE_READ.desc=File system read operations +mcp.tool.category.FILE_WRITE.desc=File system write operations +mcp.tool.category.VISUALIZE.desc=Data visualization and charting +mcp.tool.category.EXECUTE.desc=Code execution and commands +mcp.tool.category.SEARCH.desc=Search and retrieval operations +mcp.tool.category.TRANSFORM.desc=Data transformation +mcp.tool.category.VERSION_CONTROL.desc=Git and version control +mcp.tool.category.COMMUNICATION.desc=Email, messaging, notifications +mcp.tool.category.MONITORING.desc=Logging and monitoring +mcp.tool.category.WEATHER.desc=Weather data and forecasts +mcp.tool.category.WEB_SEARCH.desc=Web search and page reading +mcp.tool.category.DATETIME.desc=Date and time operations +mcp.tool.category.OTHER.desc=Unclassified tools + +# MCP Tools Dialog +mcp.tools.dialog.title=Available Tools - {0} +mcp.tools.dialog.instance.info=Instance Information +mcp.tools.dialog.parameters=Parameters +mcp.tools.dialog.loading=Loading available tools... +mcp.tools.dialog.empty=No tools available for this integration +mcp.tools.dialog.count=Found {0} tool(s) +mcp.tools.dialog.search.placeholder=Search by name or description... +mcp.tools.dialog.search.count={0} of {1} tool(s) +mcp.tools.dialog.search.empty=No tools match your search +mcp.tools.dialog.export=Export Tools +mcp.tools.dialog.export.success=Tools exported to {0} +mcp.tools.dialog.export.failed=Failed to export tools\: {0} + +# MCP Server Catalog Dialog +mcp.catalog.dialog.title=Add MCP Server +mcp.catalog.dialog.description=Choose a popular integration from the catalog, or configure one manually. +mcp.catalog.search.placeholder=Search servers… +mcp.catalog.search.empty=No servers match your search. +mcp.catalog.category.popular=Popular +mcp.catalog.card.credentials.required={0} credential(s) required +mcp.catalog.card.no.credentials=No credentials required +mcp.catalog.card.configure=Configure +mcp.catalog.action.cancel=Cancel +mcp.catalog.action.manual=Manual Setup + +# MCP Instance Template Parameters +mcp.instance.template.no.credentials=✅ No credentials required — this server works out of the box. +mcp.instance.template.config.title=Configuration +mcp.instance.template.config.description=Fill in the credentials required for this integration. Values are stored securely on your device. +mcp.instance.template.param.optional= (optional) +mcp.instance.template.advanced.show=Advanced settings +mcp.instance.template.advanced.hide=Hide advanced settings + +# RAG Sources Tree +rag.tree.expand=Expand +rag.tree.collapse=Collapse +rag.tree.folder.open=Open in File Browser +rag.tree.folder.copy.path=Copy Path +rag.tree.file.open=Open File +rag.tree.file.open.folder=Open Containing Folder +rag.tree.file.copy.path=Copy Path +rag.tree.url.open=Open in Browser +rag.tree.url.copy=Copy URL +rag.tree.remove=Remove Reference Material +rag.tree.file.preview=Preview File +rag.tree.chat.select=Add to Chat +rag.tree.chat.deselect=Remove from Chat +rag.tree.chat.selected={0} file(s) selected +rag.tree.chat.clear=Clear +rag.tree.chat.add=Add to Chat +rag.tree.search.placeholder=Search files... +rag.tree.search.clear=Clear search +rag.tree.search.indexing=Building file index... +rag.tree.search.no.results=No files match your search +rag.tree.search.results.count={0} result(s) +rag.tree.search.results.capped=Showing first {0} results +rag.tree.status.indexed=Indexed +rag.tree.status.not_indexed=Not indexed + +# File Viewer Pane +file.viewer.loading=Loading... +file.viewer.lines={0} lines +file.viewer.copy=Copy content +file.viewer.close=Close viewer +file.viewer.open.external=Open Externally +file.viewer.binary=Binary file — cannot preview as text. +file.viewer.too.large=File is too large to preview ({0} KB). Maximum is 512 KB. +file.viewer.error=Could not read file\: {0} +file.viewer.select.prompt=Select a file from the tree above to preview its contents + +# Project Side Panel +panel.tab.rag.sources=RAG Sources +panel.context.menu=Context menu +panel.context.add.material=Add Reference Material +panel.context.reindex=Reindex project +panel.reindex.confirm.title=Stop and Re-index? +panel.reindex.confirm.message="{0}" is currently being indexed. Stop the current indexing and re-index from scratch? +panel.reindex.confirm.button=Stop and Re-index +panel.reindex.confirm.cancel=Cancel +panel.collapse=Collapse panel + +# RAG Status +rag.status.started=Indexing Started +rag.status.inprogress=Indexing\: {0}% +rag.status.inprogress.unknown=Indexing... +rag.status.queued=Queued — waiting for another project to finish indexing +rag.status.ready=Ready +rag.status.failed=Indexing Failed +rag.status.not.indexed=Not Indexed + +# RAG Empty State +rag.empty.title=No Knowledge Sources +rag.empty.description=Add files or folders to enable RAG\nfor this project +rag.empty.button.add=Add Sources + +# Plans +plans.nav.title=Plans +plans.title=Plans +plans.docs.tooltip=View Plans Guide +plans.description=Run AI-powered multi-step workflows +plans.empty=No plans available +plans.run=Run Plan +plans.running=Running... +plans.clear.result=Clear +plans.result.title=Result +plans.result.pinned=Pinned result +plans.result.pin=Pin for comparison +plans.result.unpin=Remove pin +plans.export=Export +plans.export.result.pdf=Export Result as PDF +plans.export.result.word=Export Result as Word +plans.export.fullrun.pdf=Export Full Run as PDF +plans.export.fullrun.word=Export Full Run as Word +plans.steps.title=Steps +plans.steps.running=Running +plans.steps.duration.hour=h +plans.steps.duration.minute=m +plans.steps.duration.second=s +plans.steps.duration.less.than.one.second=< 1s +plans.detail.inputs=Inputs +plans.detail.how.it.works=How it works +plans.detail.step=step +plans.detail.steps=steps +plans.retry=Retry +plans.history.title=Run History +plans.history.empty=No runs yet +plans.history.restore=Restore inputs from this run +plans.editor.title.new=New Plan +plans.editor.title.edit=Edit Plan +plans.editor.label=YAML Content +plans.editor.placeholder=Paste or type your plan YAML here... +plans.editor.valid=Valid YAML +plans.editor.hint.title=Reference +plans.editor.hint.fields=Required\: id, name, steps\nOptional\: description, icon, inputs, workflow\nStep types\: text, multiline, toggle, number\nWorkflow types\: sequence, parallel, conditional +plans.editor.menu.edit=Edit YAML +plans.editor.ai.label=Generate with AI +plans.editor.ai.placeholder=Describe what you want this plan to do in plain English... +plans.editor.ai.generate=Generate +plans.editor.ai.hint=AI will generate the YAML — you can review and edit it before saving. +plans.editor.docs.link=View documentation ↗ +plans.duplicate=Duplicate & Edit +plans.tab.builtin=Built-in +plans.tab.my.plans=My Plans +plans.tab.my.plans.empty=You have no plans yet +plans.tab.my.plans.empty.hint=Duplicate a built-in plan or create your own with + +plans.followup.placeholder=Ask a follow-up question or request a change... +plans.followup.send=Send +plans.followup.label=Follow-up +plans.interactive.question.label=Question +plans.interactive.answer.placeholder=Type your answer... +plans.interactive.send=Submit Answer +plans.interactive.skip=Skip (leave blank) + +#Skills +skills.nav.title=Skills +skills.view.title=Skills +skills.view.empty=No skills yet +skills.view.empty.hint=Create skills in Settings → Skills to get started +skills.view.empty.search=No skills match your search +skills.view.manage=Manage Skills +skills.view.select.prompt=Select a skill to run +skills.view.select.hint=Select a skill from the list on the left to run it +skills.view.select.skill=Select skill… +skills.view.run=Run Skill +skills.view.run.command=Send Command +skills.view.running=Running… +skills.view.no.agent=No agent installed +skills.view.agent.not.installed=Not installed +skills.view.agent.install.hint={0} is not installed. See the installation guide. +skills.view.agent.configure=Configure agents +skills.view.agent.needs.key={0} is installed but needs an API key to run skills. +skills.view.agent.key.placeholder=Paste API key here +skills.view.response.error=Error +skills.view.workdir.change=Change +skills.view.workdir.open=Open folder +skills.view.workspace=Workspace +skills.view.workspace.empty=No files in workspace +skills.view.workspace.copy.path=Copy Path +skills.view.workspace.open.file=Open File +skills.view.workspace.open.folder=Open Containing Folder +skills.view.workspace.new=New… +skills.view.workspace.new.folder=New Folder +skills.view.workspace.new.file=New File +skills.view.workspace.new.subfolder=New Subfolder +skills.view.workspace.new.file.here=New File Here +skills.view.workspace.name.placeholder=Name +skills.view.workspace.duplicate=Duplicate +skills.view.workspace.delete.confirm.title=Delete "{0}"? +skills.view.workspace.delete.confirm.message=This action cannot be undone. +skills.view.panel.collapse=Collapse panel +skills.view.panel.expand=Expand panel +skills.view.tab.skills=Skills +skills.view.tab.workspace=Workspace +skills.view.last.run=Last run\: {0} +skills.view.category.uncategorized=Other +skills.view.search.placeholder=Search skills ... +skills.view.search.clear=Clear search +skills.view.context.placeholder=What would you like to do? (optional) +skills.view.command.mode.hint=Command mode\: input starting with / runs as an agent command. +skills.view.system.prompt.preview=System Prompt +skills.view.response.title=Response +skills.view.followup.label=Follow-up +skills.view.followup.placeholder=Ask a follow-up question or request a change... +skills.view.followup.send=Send +skills.view.history.empty=No runs yet +skills.view.copy=Copy +skills.view.system.prompt.file=file +skills.view.system.prompt.files=files +skills.view.system.prompt.also.included=Also included in agent context\: +skills.view.docs.tooltip=View Skills Guide +skills.view.mode.agentic=Agentic +skills.view.mode.manual=Manual + +# Agentic run mode +skills.agentic.run=Run +skills.agentic.goal.placeholder=Describe your goal — the agent will select the right skills automatically… +skills.agentic.skills.available={0} skills available as agent context +skills.agentic.no.skills.hint=No skills yet — add skills in Settings → Skills to give the agent specialized capabilities +skills.agentic.model.default=Default model + +# File / folder chooser +file.chooser.folder.select=Select +file.chooser.folder.hint=Double-click a folder to enter it. When you’re in the folder you want to index, click “Select”. +file.chooser.file.select=Select + +# Onboarding Wizard +onboarding.title=Welcome to Askimo +onboarding.step.indicator=Step {0} of {1} +onboarding.previous=Previous +onboarding.next=Next +onboarding.finish=Start Chatting + +# Onboarding Step 0: Language +onboarding.step.language.title=🌍 Choose Your Language +onboarding.step.language.description=Select the language you'd like to use in Askimo. You can change it anytime in Settings. +onboarding.step.language.label=Language + +# Onboarding Step 1: Analytics +onboarding.step.analytics.title=Help make Askimo better for everyone +onboarding.step.analytics.description=Askimo is free and open-source. Sharing anonymous usage data is one small way to give back. It helps us understand what to build next. +onboarding.step.analytics.collected.yes.features=✅ Which features are used (e.g., RAG, MCP tools, Plans, Skills) +onboarding.step.analytics.collected.yes.version=✅ App version and OS type +onboarding.step.analytics.collected.no.conversations=❌ No conversation content or prompts +onboarding.step.analytics.collected.no.personal=❌ No personal data, files, or API keys. Ever. +onboarding.step.analytics.toggle.on=Yes, help improve Askimo ❤️ +onboarding.step.analytics.toggle.off=No thanks +onboarding.step.analytics.learn_more=Learn more about our privacy policy +onboarding.step.analytics.tagline=100% anonymous · no conversations · no personal data +onboarding.step.analytics.section.collected=What we collect +onboarding.step.analytics.section.never=What we never collect +onboarding.step.analytics.toggle.subtitle=Helps us focus on what matters most · changeable anytime in Settings → Advanced + +# Onboarding Step 1: Welcome +onboarding.step.welcome.title=👋 Welcome to Askimo\! +onboarding.step.welcome.description=Your personal AI assistant. Chat with multiple AI models, organize knowledge in projects, and automate workflows with skills and plans. +onboarding.step.welcome.feature1.title=💬 Chat with AI +onboarding.step.welcome.feature1.description=Ask questions, get help with tasks, or have a conversation with any AI model. +onboarding.step.welcome.feature2.title=📁 Organize with Projects +onboarding.step.welcome.feature2.description=Group chats and attach knowledge sources so AI always has the right context. +onboarding.step.welcome.feature3.title=⚡ Automate with Skills & Plans +onboarding.step.welcome.feature3.description=Create reusable AI workflows and multi-step plans that run automatically. + +# Onboarding Step 2: Profile +onboarding.step.profile.title=Tell us about yourself +onboarding.step.profile.description=Your profile helps Askimo personalize AI responses to suit your background and needs. You can update it anytime in Settings. +onboarding.step.profile.name.label=Your name +onboarding.step.profile.name.placeholder=Jane Smith +onboarding.step.profile.occupation.label=Occupation (optional) +onboarding.step.profile.occupation.placeholder=Software Engineer, Researcher, Designer… + +# Onboarding Step 3: Directives +onboarding.step.directives.title=✨ Make Every Reply Work for You +onboarding.step.directives.description=Write one short instruction and the AI follows it for the entire conversation. No re-explaining. No repetition. +onboarding.step.directives.feature1.title=The AI thinks like you +onboarding.step.directives.feature1.description=Tell it your role, your rules, your preferred format once. Every reply automatically follows, from the first message to the last. +onboarding.step.directives.feature2.title=Get the answer you actually want +onboarding.step.directives.feature2.description=Vague questions get vague answers. A directive like "reply in bullet points, max 5 lines" turns a generic AI into a specialist that matches how you think. +onboarding.step.directives.feature3.title=The right expert for every job +onboarding.step.directives.feature3.description=Need a patient tutor for learning and a blunt code reviewer for debugging? Keep separate directives and get the right mindset for each task. +onboarding.step.directives.link=See examples and tips +# Onboarding Step 6: Ready +onboarding.step.ready.title=🚀 You're all set\! +onboarding.step.ready.description=Everything is configured and ready to go. Start your first chat or explore the resources below. +onboarding.step.ready.link.docs=📚 Browse Documentation +onboarding.step.ready.link.providers=🔧 Configure AI Providers +onboarding.step.ready.link.github=⭐ Star us on GitHub + +# Onboarding Step 5: Persona +onboarding.step.persona.title=🎯 What do you mainly want to do? +onboarding.step.persona.description=Pick the option that sounds most like your work. Askimo will show the most relevant features. You can always change this from the View menu. +onboarding.step.persona.developer.description=Read and write code, refactor files, generate scaffolding, or run agentic tasks on your local project. +onboarding.step.persona.developer.features=Enables\: Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.researcher.description=Research topics, analyse data, write structured reports, and get knowledge-grounded answers. +onboarding.step.persona.researcher.features=Enables\: Plans, Projects (RAG) +onboarding.step.persona.manager.description=Draft emails, process meeting notes, write status reports, or run multi-step content workflows. +onboarding.step.persona.manager.features=Enables\: Plans +onboarding.step.persona.everything.description=I do a mix of things — show me all features and I will decide what to use. +onboarding.step.persona.everything.features=Enables\: Skills, Plans, Projects, MCP, RAG + +# Persona labels +persona.developer=💻 Write and review code +persona.researcher=🔬 Research and analyse +persona.manager=📋 Write and organise +persona.everything=⚡ I do a mix of things From 70439d5013d3ac4d08db8c25e2e3fddfc1694792 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:42:58 -0700 Subject: [PATCH 007/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../resources/i18n/messages_zh_CN.properties | 99 +++++++++---------- 1 file changed, 47 insertions(+), 52 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index c216282f1..b2b9d7952 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -1,4 +1,4 @@ -# Askimo Desktop Application - English Strings +# Askimo Desktop Application - English Strings # Application @@ -43,7 +43,7 @@ menu.help.share=🗣 分享 Askimo menu.help.share.x=分享到 X / Twitter menu.help.share.linkedin=分享到 LinkedIn menu.help.share.facebook=分享到 Facebook -menu.help.share.text=推荐 Askimo — 免费、本地优先的 AI 桌面客户端,支持 Ollama、OpenAI、Anthropic 等。 https://askimo.chat +menu.help.share.text=推荐 Askimo — 免费、本地优先的 AI 桌面客户端,支持 Ollama、OpenAI、Anthropic 等。 https\://askimo.chat menu.help.share.hackernews=发布到 Hacker News menu.eventlog=事件日志 menu.help.model.capabilities=打开模型功能文件 @@ -195,13 +195,16 @@ projects.sources.expand=显示参考资料 projects.sources.collapse=隐藏参考资料 projects.sources.empty.title=尚未添加参考资料 projects.sources.empty.description=添加文档后,Askimo 才能在回答问题时进行参考 -projects.sources.info.tooltip=参考资料可帮助 Askimo 理解您的具体上下文。\n\n\ -请添加包含您希望 Askimo 在回答问题时参考的信息的文件夹、文件或网站。\n\n\ +projects.sources.info.tooltip=参考资料可帮助 Askimo 理解您的具体上下文。\n\ +\n\ +请添加包含您希望 Askimo 在回答问题时参考的信息的文件夹、文件或网站。\n\ +\n\ 例如:\n\ • 项目文档\n\ • 公司知识库\n\ • 技术规格说明\n\ -• 研究论文\n\n\ +• 研究论文\n\ +\n\ Askimo 将搜索这些资料,以提供更准确、更具上下文感知的回答。 projects.sources.type.local_folders=本地文件夹 projects.sources.type.local_files=本地文件 @@ -229,7 +232,7 @@ project.menu.tooltip=项目菜单 project.new.chat.placeholder=在 {0} 中开始新聊天 project.recent.chats=最近的聊天 project.no.chats=还没有聊天记录。请在下方开始新的聊天! -project.indexing.label=正在索引知识源: {0} +project.indexing.label=正在索引知识源\: {0} project.indexing.queued=索引已排队 - 等待另一个项目完成... project.indexing.failed=索引失败。请尝试从项目菜单重新索引。 project.indexing.ready.label=已索引 @@ -249,7 +252,7 @@ settings.appearance=外观 settings.appearance.accent=强调色 settings.appearance.accent.description=安全地自定义单一强调色。Askimo 会将其应用于主要界面强调,并派生相关颜色以保证可读性。 settings.appearance.accent.label=强调色(Hex) -settings.appearance.accent.invalid=请输入有效的十六进制颜色,例如 #0284C7 +settings.appearance.accent.invalid=请输入有效的十六进制颜色,例如 \#0284C7 settings.appearance.accent.swatch.primary=主色 settings.appearance.accent.swatch.primary.container=容器 settings.appearance.accent.swatch.on.primary.container=容器前景 @@ -465,6 +468,7 @@ user.interest.environment=环境 # Actions action.delete=删除 +action.remove=移除 action.edit=编辑 action.pin=固定到侧边栏 action.unpin=从侧边栏取消固定 @@ -485,8 +489,6 @@ action.retry=重试 action.done=完成 action.refresh=刷新 - - # Happiness Gate (shown before Star Prompt) happiness.gate.title=您觉得 Askimo 怎么样? happiness.gate.subtitle=让我们知道您的使用体验 @@ -531,10 +533,8 @@ file.overwrite.message=该文件已存在。你要覆盖它吗? file.overwrite.confirm=覆盖 file.name.too.long=文件名太长。请使用较短的文件名(最多 255 个字符)。 - # About about.title=关于 {0} -action.remove=移除 about.version=版本 about.buildDate=构建日期 about.buildJdk=构建 JDK @@ -574,7 +574,6 @@ shortcut.attach.file=附加文件 shortcut.send.message=发送消息 shortcut.new.line=新行 - # Chat View chat.welcome=欢迎使用 Askimo!\n在下方输入消息开始对话。 chat.no.active.session=从侧边栏选择一个会话,或开始新的聊天 @@ -667,8 +666,8 @@ sessions.empty.hint=💡 开始新的聊天以创建第一个会话! sessions.search.placeholder=按标题搜索… sessions.search.empty=没有与 "{0}" 匹配的会话。 -# 通用表格分页控件 -table.page.size.label=每页行数: +# Generic table pagination controls +table.page.size.label=每页行数\: table.page=第 {0} 页 共 {1} 页 table.page.previous=上一页 table.page.next=下一页 @@ -739,7 +738,7 @@ settings.model.no.match=无匹配模型 settings.model.no.results=无匹配模型 settings.configure.title=配置 {0} settings.test.connection.testing=正在测试... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=无法连接到提供商。请验证您的 API 密钥是否正确(对于云提供商)或您的基础 URL 是否可达(对于本地提供商)。您可以使用上面的帮助链接找到设置说明。 # Directives Dialog @@ -816,7 +815,7 @@ message.edited.indicator=(已编辑) message.date.today=今天 message.date.yesterday=昨天 message.token.usage={0} 个 token · {1} 进 / {2} 出 -message.token.usage.tooltip=此回复使用的 token。\n输入: 您的 prompt + 发送给 AI 的上下文。\n输出: AI 生成的回复。 +message.token.usage.tooltip=此回复使用的 token。\n输入\: 您的 prompt + 发送给 AI 的上下文。\n输出\: AI 生成的回复。 attachment.download=下载附件 attachment.download.description=下载此附件 attachment.save.file=保存附件 @@ -843,31 +842,31 @@ provider.apikey.security.link=了解我们如何保护您的数据 provider.not.set=未设置 # Provider Configuration - OpenAI -provider.openai.apikey.description=OpenAI API Key(https://platform.openai.com/account/api-keys) +provider.openai.apikey.description=OpenAI API Key(https\://platform.openai.com/account/api-keys) provider.openai.apikey.stored=API Key 已保存。留空表示保留现有 Key。 -provider.openai.setup.help=使用 OpenAI 需要 API Key。\n\n1. 获取:https://platform.openai.com/account/api-keys\n2. 在设置中配置或使用 :change-settings +provider.openai.setup.help=使用 OpenAI 需要 API Key。\n\n1. 获取:https\://platform.openai.com/account/api-keys\n2. 在设置中配置或使用 \:change-settings # Provider Configuration - Anthropic -provider.anthropic.apikey.description=Anthropic API Key:https://console.anthropic.com/ +provider.anthropic.apikey.description=Anthropic API Key:https\://console.anthropic.com/ provider.anthropic.apikey.stored=API Key 已保存。 -provider.anthropic.setup.help=使用 Anthropic 需要 API Key。\n\n1. 获取:https://console.anthropic.com/\n2. 在设置中配置或使用 :change-settings +provider.anthropic.setup.help=使用 Anthropic 需要 API Key。\n\n1. 获取:https\://console.anthropic.com/\n2. 在设置中配置或使用 \:change-settings # Provider Configuration - Gemini -provider.gemini.apikey.description=Google AI Studio API Key:https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=Google AI Studio API Key:https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=API Key 已保存。 -provider.gemini.setup.help=使用 Gemini 需要 API Key。\n\n1. 获取:https://aistudio.google.com/app/apikey\n2. 在设置中配置或使用 :change-settings +provider.gemini.setup.help=使用 Gemini 需要 API Key。\n\n1. 获取:https\://aistudio.google.com/app/apikey\n2. 在设置中配置或使用 \:change-settings # Provider Configuration - XAI -provider.xai.apikey.description=XAI API Key:https://console.x.ai/ +provider.xai.apikey.description=XAI API Key:https\://console.x.ai/ provider.xai.apikey.stored=API Key 已保存。 -provider.xai.setup.help=使用 XAI 需要 API Key。\n\n1. 获取:https://console.x.ai/\n2. 在设置中配置或使用 :change-settings +provider.xai.setup.help=使用 XAI 需要 API Key。\n\n1. 获取:https\://console.x.ai/\n2. 在设置中配置或使用 \:change-settings # Provider Configuration - Ollama -provider.ollama.baseurl.description=Ollama 基础 URL(默认 http://localhost:11434) -provider.ollama.setup.help=使用 Ollama 需要本地运行。\n\n1. 安装:https://ollama.ai/\n2. 启动服务\n3. 如需可更改基础 URL +provider.ollama.baseurl.description=Ollama 基础 URL(默认 http\://localhost\:11434) +provider.ollama.setup.help=使用 Ollama 需要本地运行。\n\n1. 安装:https\://ollama.ai/\n2. 启动服务\n3. 如需可更改基础 URL # Provider Configuration - Docker AI -provider.docker.baseurl.description=Docker AI 基础 URL(默认 http://localhost:12434) +provider.docker.baseurl.description=Docker AI 基础 URL(默认 http\://localhost\:12434) provider.docker.setup.help=使用 Docker AI 需要本地运行。\n\n1. 确保 Docker AI 已安装并运行\n2. 启动服务\n3. 如需可更改基础 URL # Provider Configuration - LocalAI @@ -875,8 +874,8 @@ provider.localai.baseurl.description=LocalAI 基础 URL provider.localai.setup.help=使用 LocalAI 需先运行。\n\n1. 安装并启动 LocalAI\n2. 配置基础 URL # Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=LMStudio 基础 URL(默认 http://localhost:1234) -provider.lmstudio.setup.help=使用 LMStudio:\n\n1. 安装:https://lmstudio.ai/\n2. 启动本地服务\n3. 可选更改基础 URL +provider.lmstudio.baseurl.description=LMStudio 基础 URL(默认 http\://localhost\:1234) +provider.lmstudio.setup.help=使用 LMStudio:\n\n1. 安装:https\://lmstudio.ai/\n2. 启动本地服务\n3. 可选更改基础 URL provider.lmstudio.openai.compat.info=Askimo 使用 OpenAI 兼容端点(/v1),而非 LMStudio 原生 API(/api/v1/)。 # Provider Configuration - Open AI Compatible @@ -911,7 +910,7 @@ telemetry.llm.calls=LLM 调用 telemetry.llm.calls.count={0} 次调用 telemetry.llm.tokens={0} tok telemetry.llm.errors={0} 错误 -telemetry.total.tokens=总 Token 数: {0} +telemetry.total.tokens=总 Token 数\: {0} telemetry.llm.col.provider=提供商 telemetry.llm.col.model=模型 telemetry.llm.col.calls=调用 @@ -954,11 +953,11 @@ export.format.html.benefit.2=可在任何浏览器查看 export.format.html.benefit.3=专业外观 export.format.html.benefit.4=易于分享 - # Error Messages error.network=⚠️ 无法连接到 AI 服务{endpoint}\n\n请检查:\n• 网络连接\n• AI 服务地址(检查设置)\n• 防火墙设置\n• 服务是否可用 error.authentication=⚠️ API 密钥无效或缺失{provider}\n\n请在设置中配置您的 API 密钥以解决此问题。 error.model_configuration=⚠️ 模型配置错误:{issue}\n\n解决方法:\n1. 打开设置\n2. 选择 AI 提供商\n3. 从列表中选择模型 +error.provider_not_configured=⚠️ 尚未配置 AI 提供商。\n\n开始聊天需要:\n1. 打开设置\n2. 选择 AI 提供商(OpenAI、Ollama、Anthropic 等)\n3. 输入 API Key 或配置连接 error.rate_limit=⚠️ 已超过速率限制\n{retryAfter}\n\n您已达到 API 使用上限,请稍后再发送消息。 error.insufficient_credits=⚠️ 积分不足\n\n您的积分余额过低。\n\n请前往提供商的账单页面充值。 error.timeout=⚠️ 请求在 {timeout} 秒后超时\n\n可能原因:\n• 服务器负载过高,请稍后重试\n• 请求过于复杂,请尝试简化\n• 网络延迟 @@ -971,7 +970,7 @@ error.model.not_available.title.embedding=嵌入模型不可用 error.model.not_available.message.chat=模型 ''{0}'' 不可用。 error.model.not_available.message.embedding=嵌入模型 ''{0}'' 不可用。\n\n请正确配置嵌入模型。 error.model.not_available.config_link=配置嵌入模型 -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration # Generic Application Errors error.app.title=出现错误 @@ -980,7 +979,6 @@ error.app.message=发生了一个意外错误:{0} # Send Message Errors error.send_message.title=发送消息失败 - # Indexing Errors error.indexing.model_not_found.title=未找到嵌入模型 error.indexing.model_not_found.message=未找到嵌入模型 ''{0}''。请在索引前从 {1} 下载或启用该模型。 @@ -989,7 +987,6 @@ error.indexing.io_error.message=索引过程中发生 IO 错误 error.indexing.unknown.title=索引错误 error.indexing.unknown.message=索引过程中发生未知错误 - # Settings - Embedding Models (for RAG features) settings.embedding.rag_feature_only=嵌入模型状态(仅用于 RAG 功能) settings.embedding.not_available_rag_only=⚠️ {0}。\n\n说明:这只影响基于项目的 RAG 功能,普通聊天功能可正常使用。 @@ -1035,18 +1032,18 @@ settings.rag.indexing.binary.extensions.hint=以逗号分隔的在索引时被 settings.rag.indexing.embedding.batch.size=嵌入批处理大小 settings.rag.indexing.embedding.batch.size.hint=每次请求发送到嵌入模型的文本片段数量。如果索引速度较慢且您使用远程提供商(OpenAI、Gemini),可尝试增大至 100–500。如果使用本地模型(Ollama、LM Studio),请保持较低值以避免超时。 -# Settings - Utility Models +## Settings - Utility Models settings.utility.models.title=实用模型 settings.utility.models.uses.selected=(使用所选模型) settings.utility.models.local.note={0} 是本地提供商 —— 实用任务会自动使用当前活动的聊天模型。 -# Vision Models +## Settings - Vision Models settings.vision.models.title=视觉模型 ## Settings - Image Models settings.image.models.title=图像生成模型 -# Settings - Provider Model Config +## Settings - Provider Model Config settings.provider.model.config.title=模型配置 settings.provider.model.config.description=为特定任务覆盖默认模型。若字段留空,则使用提供商的默认模型。 settings.provider.model.config.guide=查看 AI 模型配置指南 @@ -1057,7 +1054,6 @@ settings.provider.model.embedding.hint=用于生成向量嵌入以支持 RAG 知 settings.model.placeholder.enter=输入 {0} 模型 - # File Viewer Dialog file.viewer.title=文件查看器 file.viewer.title.with.name=文件查看器 - {0} @@ -1070,7 +1066,7 @@ mermaid.setup.required.title=需要 Mermaid CLI mermaid.setup.privacy.note=Askimo 在本地渲染图表,以保护你的隐私。 mermaid.setup.instructions.title=安装说明 mermaid.setup.instructions.text=要在 Askimo 中渲染 Mermaid 图表,请按照以下安装指南操作: -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=打开安装指南 mermaid.setup.button.copy.diagram=复制图表 mermaid.diagram.source.label=图表来源: @@ -1088,6 +1084,7 @@ mermaid.button.reset.zoom=重置缩放 mermaid.button.retry=重试 mermaid.feedback.copied=已复制! + # Reference Material knowledge.source.type.folder=文件夹(监控更改) knowledge.source.type.file=文件(静态) @@ -1104,7 +1101,7 @@ mcp.instances.title=MCP 实例 mcp.instances.description=这些 MCP 实例可用 mcp.instances.empty=未配置 MCP 实例 mcp.instances.count={0} 个实例 -mcp.instance.server.label=服务器: {0} +mcp.instance.server.label=服务器\: {0} mcp.instance.delete.confirm.title=删除 MCP 实例? mcp.instance.delete.confirm.message=您确定要删除 mcp 实例 "{0}" 吗?此操作不可撤销。 mcp.instance.enable.tooltip=启用此 MCP 实例 @@ -1130,7 +1127,7 @@ mcp.instance.field.description=描述 mcp.instance.field.description.placeholder=关于此服务器做什么的简要描述 mcp.instance.field.transport=传输类型 mcp.instance.field.command=命令模板 -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=包含 {{parameter}} 占位符的空格分隔命令 mcp.instance.validation.error.empty.id=服务器 ID 不能为空 mcp.instance.validation.error.invalid.id.pattern=服务器 ID 只能包含小写字母、数字和连字符 @@ -1139,20 +1136,20 @@ mcp.instance.validation.error.empty.command=命令模板不能为空 mcp.instance.validation.error.empty.parameter.key=参数键不能为空 mcp.instance.validation.error.empty.parameter.label=参数标签不能为空 mcp.instance.env.label=环境变量 (可选) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=格式: KEY=值 或 KEY={{parameter}} (每行一个) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=格式\: KEY\=值 或 KEY\={{parameter}} (每行一个) mcp.instance.transport.stdio=Stdio (本地进程) mcp.instance.transport.http=HTTP (远程服务器) mcp.instance.http.url.label=URL 模板 -mcp.instance.http.url.placeholder=https://{{host}}/mcp 或 https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp 或 https\://api.example.com/mcp mcp.instance.http.url.hint=服务器端点 URL。使用 {{parameter}} 占位符用于动态值 mcp.instance.http.headers.label=HTTP 头部 (可选) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=格式: 头部名称=值 或 头部名称={{parameter}} (每行一个) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=格式\: 头部名称\=值 或 头部名称\={{parameter}} (每行一个) mcp.instance.http.timeout.label=超时时间 (ms) mcp.instance.http.timeout.hint=请求超时时间(毫秒) mcp.instance.validation.error.empty.url=URL 模板不能为空 -mcp.instance.validation.error.invalid.url=URL 模板必须以 http:// 或 https:// 开头 +mcp.instance.validation.error.invalid.url=URL 模板必须以 http\:// 或 https\:// 开头 # MCP Integrations (Project View) mcp.instance.delete.tooltip=删除 MCP 实例 @@ -1202,7 +1199,7 @@ mcp.tools.dialog.search.count={0} / {1} 个工具 mcp.tools.dialog.search.empty=没有工具匹配您的搜索 mcp.tools.dialog.export=导出工具 mcp.tools.dialog.export.success=已将工具导出到 {0} -mcp.tools.dialog.export.failed=导出工具失败: {0} +mcp.tools.dialog.export.failed=导出工具失败\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=添加 MCP 服务器 @@ -1271,7 +1268,6 @@ panel.reindex.confirm.message="{0}" 当前正在索引。停止当前索引并 panel.reindex.confirm.button=停止并重新索引 panel.reindex.confirm.cancel=取消 panel.collapse=折叠面板 -panel.collapse=折叠面板 # RAG Status rag.status.started=开始建立索引 @@ -1400,7 +1396,7 @@ skills.view.history.empty=还没有运行记录 skills.view.copy=复制 skills.view.system.prompt.file=文件 skills.view.system.prompt.files=文件 -skills.view.system.prompt.also.included=也包含在代理上下文中: +skills.view.system.prompt.also.included=也包含在代理上下文中\: skills.view.docs.tooltip=查看技能指南 skills.view.mode.agentic=代理式 skills.view.mode.manual=手动 @@ -1472,7 +1468,6 @@ onboarding.step.directives.feature2.description=模糊的问题只会得到模 onboarding.step.directives.feature3.title=每个任务都有对的专家 onboarding.step.directives.feature3.description=学习时需要耐心导师,调试时需要犀利点评?为不同任务设定不同指令,获得匹配角色的 AI 回复。 onboarding.step.directives.link=查看示例及技巧 - # Onboarding Step 6: Ready onboarding.step.ready.title=🚀 一切就绪! onboarding.step.ready.description=配置完成,准备就绪。现在就开始第一次聊天或探索以下资源吧。 @@ -1496,4 +1491,4 @@ onboarding.step.persona.everything.features=启用:Skills, Plans, Projects, MC persona.developer=💻 编写和审查代码 persona.researcher=🔬 研究和分析 persona.manager=📋 撰写和组织 -persona.everything=⚡ 我做各种混合的工作 \ No newline at end of file +persona.everything=⚡ 我做各种混合的工作 From 27d86b35461da60b44f7f55a734d4b8eba4b4363 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:43:00 -0700 Subject: [PATCH 008/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../resources/i18n/messages_zh_TW.properties | 98 +++++++++---------- 1 file changed, 46 insertions(+), 52 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index cc73e3bfa..45d8f0ea1 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -1,4 +1,4 @@ -# Askimo Desktop Application - Traditional Chinese Strings (Comments Preserved) +# Askimo Desktop Application - English Strings # Application @@ -43,7 +43,7 @@ menu.help.share=🗣 分享 Askimo menu.help.share.x=分享到 X / Twitter menu.help.share.linkedin=分享到 LinkedIn menu.help.share.facebook=分享到 Facebook -menu.help.share.text=推薦 Askimo — 免費、本地優先的 AI 桜面客戶端,支持 Ollama、OpenAI、Anthropic 等。 https://askimo.chat +menu.help.share.text=推薦 Askimo — 免費、本地優先的 AI 桜面客戶端,支持 Ollama、OpenAI、Anthropic 等。 https\://askimo.chat menu.help.share.hackernews=發佈到 Hacker News menu.eventlog=事件記錄 menu.help.model.capabilities=開啟模型功能檔案 @@ -195,13 +195,16 @@ projects.sources.expand=顯示參考資料 projects.sources.collapse=隱藏參考資料 projects.sources.empty.title=尚未新增參考資料 projects.sources.empty.description=新增文件後,Askimo 才能在回答問題時進行參考 -projects.sources.info.tooltip=參考資料可協助 Askimo 理解您的具體情境。\n\n\ -請新增包含您希望 Askimo 在回答問題時參考之資訊的資料夾、檔案或網站。\n\n\ +projects.sources.info.tooltip=參考資料可協助 Askimo 理解您的具體情境。\n\ +\n\ +請新增包含您希望 Askimo 在回答問題時參考之資訊的資料夾、檔案或網站。\n\ +\n\ 例如:\n\ • 專案文件\n\ • 公司知識庫\n\ • 技術規格文件\n\ -• 研究論文\n\n\ +• 研究論文\n\ +\n\ Askimo 會搜尋這些資料,以提供更準確且具情境理解的回答。 projects.sources.type.local_folders=本機資料夾 projects.sources.type.local_files=本機檔案 @@ -229,7 +232,7 @@ project.menu.tooltip=專案選單 project.new.chat.placeholder=在 {0} 中建立新聊天 project.recent.chats=最近的聊天 project.no.chats=尚未有聊天記錄。請在下方開始新的聊天! -project.indexing.label=正在索引知識源: {0} +project.indexing.label=正在索引知識源\: {0} project.indexing.queued=索引已排入佇列 - 等待另一個專案完成... project.indexing.failed=索引失敗。請嘗試從專案選單重新索引。 project.indexing.ready.label=已索引 @@ -249,7 +252,7 @@ settings.appearance=外觀 settings.appearance.accent=強調色 settings.appearance.accent.description=安全地自訂單一強調色。Askimo 會將其套用到主要介面強調,並衍生相關顏色以確保可讀性。 settings.appearance.accent.label=強調色 (Hex) -settings.appearance.accent.invalid=請輸入有效的十六進位顏色,例如 #0284C7 +settings.appearance.accent.invalid=請輸入有效的十六進位顏色,例如 \#0284C7 settings.appearance.accent.swatch.primary=主色 settings.appearance.accent.swatch.primary.container=容器 settings.appearance.accent.swatch.on.primary.container=容器前景 @@ -465,6 +468,7 @@ user.interest.environment=環境 # Actions action.delete=刪除 +action.remove=移除 action.edit=編輯 action.pin=釘選到側邊欄 action.unpin=從側邊欄取消釘選 @@ -485,8 +489,6 @@ action.retry=重試 action.done=完成 action.refresh=重新整理 - - # Happiness Gate (shown before Star Prompt) happiness.gate.title=您覺得 Askimo 怎麼樣? happiness.gate.subtitle=讓我們知道您的使用體驗 @@ -531,10 +533,8 @@ file.overwrite.message=此檔案已存在。你要覆寫它嗎? file.overwrite.confirm=覆寫 file.name.too.long=檔名太長。請使用較短的檔名(最多 255 個字元)。 - # About about.title=關於 {0} -action.remove=移除 about.version=版本 about.buildDate=建置日期 about.buildJdk=建置 JDK @@ -666,8 +666,8 @@ sessions.empty.hint=💡 開始新的對話即可建立第一個工作階段! sessions.search.placeholder=按標題搜尋… sessions.search.empty=沒有與 "{0}" 相符的會話。 -# 通用表格分頁控制項 -table.page.size.label=每頁列數: +# Generic table pagination controls +table.page.size.label=每頁列數\: table.page=第 {0} 頁 共 {1} 頁 table.page.previous=上一頁 table.page.next=下一頁 @@ -681,7 +681,6 @@ sessions.error.not.found=找不到工作階段。 sessions.error.rename.failed=重新命名失敗。 # ChatSessionService Errors - # Update Check update.dialog.title=軟體更新 update.dialog.new.version.available=有可用的 Askimo 新版本! @@ -739,7 +738,7 @@ settings.model.no.match=沒有符合的模型 settings.model.no.results=沒有符合的模型 settings.configure.title=設定 {0} settings.test.connection.testing=測試中... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=無法連接到提供商。請驗證您的 API 金鑰是否正確(對於雲端提供商)或您的基礎 URL 是否可達(對於本地提供商)。您可以使用上面的幫助連結找到設定說明。 # Directives Dialog @@ -816,7 +815,7 @@ message.edited.indicator=(已編輯) message.date.today=今天 message.date.yesterday=昨天 message.token.usage={0} 個 token · {1} 進 / {2} 出 -message.token.usage.tooltip=此回覆使用的 token。\n輸入: 您的 prompt + 傳送給 AI 的上下文。\n輸出: AI 產生的回覆。 +message.token.usage.tooltip=此回覆使用的 token。\n輸入\: 您的 prompt + 傳送給 AI 的上下文。\n輸出\: AI 產生的回覆。 attachment.download=下載附件 attachment.download.description=下載此附件 attachment.save.file=儲存附件 @@ -843,31 +842,31 @@ provider.apikey.security.link=了解我們如何保護您的資料 provider.not.set=尚未設定 # Provider Configuration - OpenAI -provider.openai.apikey.description=您的 OpenAI API 金鑰(https://platform.openai.com/account/api-keys) +provider.openai.apikey.description=您的 OpenAI API 金鑰(https\://platform.openai.com/account/api-keys) provider.openai.apikey.stored=API 金鑰已儲存。留白表示保持原金鑰,或輸入新金鑰以更新。 -provider.openai.setup.help=💡 若要使用 OpenAI,您必須提供 API 金鑰。\n\n1. 前往:https://platform.openai.com/account/api-keys\n2. 於設定中輸入或使用 :change-settings +provider.openai.setup.help=💡 若要使用 OpenAI,您必須提供 API 金鑰。\n\n1. 前往:https\://platform.openai.com/account/api-keys\n2. 於設定中輸入或使用 \:change-settings # Provider Configuration - Anthropic -provider.anthropic.apikey.description=您的 Anthropic API 金鑰(https://console.anthropic.com/) +provider.anthropic.apikey.description=您的 Anthropic API 金鑰(https\://console.anthropic.com/) provider.anthropic.apikey.stored=API 金鑰已儲存。留白代表保持現有設定。 -provider.anthropic.setup.help=💡 若要使用 Anthropic,請提供 API 金鑰。\n\n1. 取得位置:https://console.anthropic.com/\n2. 在設定中輸入或使用 :change-settings +provider.anthropic.setup.help=💡 若要使用 Anthropic,請提供 API 金鑰。\n\n1. 取得位置:https\://console.anthropic.com/\n2. 在設定中輸入或使用 \:change-settings # Provider Configuration - Gemini -provider.gemini.apikey.description=您的 Google AI Studio API 金鑰(https://aistudio.google.com/app/apikey) +provider.gemini.apikey.description=您的 Google AI Studio API 金鑰(https\://aistudio.google.com/app/apikey) provider.gemini.apikey.stored=API 金鑰已儲存。 -provider.gemini.setup.help=💡 若要使用 Gemini,請提供 API 金鑰。\n\n1. 取得位置:https://aistudio.google.com/app/apikey\n2. 在設定中輸入或使用 :change-settings +provider.gemini.setup.help=💡 若要使用 Gemini,請提供 API 金鑰。\n\n1. 取得位置:https\://aistudio.google.com/app/apikey\n2. 在設定中輸入或使用 \:change-settings # Provider Configuration - XAI -provider.xai.apikey.description=您的 XAI API 金鑰(https://console.x.ai/) +provider.xai.apikey.description=您的 XAI API 金鑰(https\://console.x.ai/) provider.xai.apikey.stored=API 金鑰已儲存。 -provider.xai.setup.help=💡 若要使用 XAI,請提供 API 金鑰。\n\n1. 前往:https://console.x.ai/\n2. 在設定中輸入或使用 :change-settings +provider.xai.setup.help=💡 若要使用 XAI,請提供 API 金鑰。\n\n1. 前往:https\://console.x.ai/\n2. 在設定中輸入或使用 \:change-settings # Provider Configuration - Ollama -provider.ollama.baseurl.description=您的 Ollama 基本 URL(預設:http://localhost:11434) -provider.ollama.setup.help=💡 若要使用 Ollama,需在本機執行。\n\n1. 安裝:https://ollama.ai/\n2. 啟動服務\n3. 若非使用預設設定,可調整基本 URL +provider.ollama.baseurl.description=您的 Ollama 基本 URL(預設:http\://localhost\:11434) +provider.ollama.setup.help=💡 若要使用 Ollama,需在本機執行。\n\n1. 安裝:https\://ollama.ai/\n2. 啟動服務\n3. 若非使用預設設定,可調整基本 URL # Provider Configuration - Docker AI -provider.docker.baseurl.description=您的 Docker AI 基本 URL(預設:http://localhost:12434) +provider.docker.baseurl.description=您的 Docker AI 基本 URL(預設:http\://localhost\:12434) provider.docker.setup.help=💡 若要使用 Docker AI,需在本機執行。\n\n1. 確認已安裝並執行 Docker AI\n2. 啟動服務\n3. 若非使用預設設定,可調整基本 URL # Provider Configuration - LocalAI @@ -875,8 +874,8 @@ provider.localai.baseurl.description=您的 LocalAI 基本 URL provider.localai.setup.help=💡 若要使用 LocalAI,請先啟動服務。\n\n1. 安裝並啟動 LocalAI\n2. 設定可存取的 URL # Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=您的 LMStudio 基本 URL(預設:http://localhost:1234) -provider.lmstudio.setup.help=💡 若要使用 LMStudio:\n\n1. 安裝:https://lmstudio.ai/\n2. 啟動本機伺服器\n3. 若需要,調整基本 URL +provider.lmstudio.baseurl.description=您的 LMStudio 基本 URL(預設:http\://localhost\:1234) +provider.lmstudio.setup.help=💡 若要使用 LMStudio:\n\n1. 安裝:https\://lmstudio.ai/\n2. 啟動本機伺服器\n3. 若需要,調整基本 URL provider.lmstudio.openai.compat.info=Askimo 使用 OpenAI 相容端點(/v1),而非 LMStudio 原生 API(/api/v1/)。 # Provider Configuration - Open AI Compatible @@ -911,7 +910,7 @@ telemetry.llm.calls=LLM 呼叫 telemetry.llm.calls.count={0} 次呼叫 telemetry.llm.tokens={0} tok telemetry.llm.errors={0} 錯誤 -telemetry.total.tokens=總 Token 數: {0} +telemetry.total.tokens=總 Token 數\: {0} telemetry.llm.col.provider=提供者 telemetry.llm.col.model=模型 telemetry.llm.col.calls=呼叫 @@ -930,7 +929,6 @@ developer.session.memory.messages=記憶訊息 developer.session.memory.word.count={0} 個字 developer.session.memory.empty=(空) - # Export Format - Markdown export.format.markdown.name=Markdown export.format.markdown.description=易於閱讀的文字格式 @@ -955,11 +953,11 @@ export.format.html.benefit.2=可在任何瀏覽器檢視 export.format.html.benefit.3=專業外觀 export.format.html.benefit.4=容易分享 - # Error Messages error.network=⚠️ 無法連線至 AI 服務{endpoint}\n\n請檢查:\n• 網路連線\n• AI 服務位址(請確認設定)\n• 防火牆設定\n• 服務是否可用 error.authentication=⚠️ API 金鑰無效或缺失{provider}\n\n請至設定中設定您的 API 金鑰以解決此問題。 error.model_configuration=⚠️ 模型設定錯誤:{issue}\n\n請依以下步驟修正:\n1. 開啟設定\n2. 選擇 AI 提供商\n3. 從清單中選擇模型 +error.provider_not_configured=⚠️ 尚未設定 AI 提供商。\n\n開始聊天需要:\n1. 開啟設定\n2. 選擇 AI 提供商(OpenAI、Ollama、Anthropic 等)\n3. 輸入 API 金鑰或設定連線 error.rate_limit=⚠️ 已超過使用速率限制\n{retryAfter}\n\n您已達到 API 使用上限,請稍後再嘗試傳送訊息。 error.insufficient_credits=⚠️ 積分不足\n\n您的積分餘額過低。\n\n請前往提供商的帳單頁面充值。 error.timeout=⚠️ 請求於 {timeout} 秒後逾時\n\n可能原因包括:\n• 伺服器負載過高,請稍後再試\n• 查詢內容過於複雜,請嘗試簡化\n• 網路延遲 @@ -972,7 +970,7 @@ error.model.not_available.title.embedding=嵌入模型無法使用 error.model.not_available.message.chat=模型 ''{0}'' 無法使用。 error.model.not_available.message.embedding=嵌入模型 ''{0}'' 無法使用。\n\n請正確設定嵌入模型。 error.model.not_available.config_link=設定嵌入模型 -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration # Generic Application Errors error.app.title=發生錯誤 @@ -981,7 +979,6 @@ error.app.message=發生未預期的錯誤:{0} # Send Message Errors error.send_message.title=傳送訊息失敗 - # Indexing Errors error.indexing.model_not_found.title=找不到嵌入模型 error.indexing.model_not_found.message=找不到嵌入模型 ''{0}''。請在索引前從 {1} 下載或啟用此模型。 @@ -990,7 +987,6 @@ error.indexing.io_error.message=索引過程中發生 IO 錯誤 error.indexing.unknown.title=索引錯誤 error.indexing.unknown.message=索引過程中發生未知錯誤 - # Settings - Embedding Models (for RAG features) settings.embedding.rag_feature_only=嵌入模型狀態(僅供 RAG 功能使用) settings.embedding.not_available_rag_only=⚠️ {0}。\n\n說明:此問題僅影響以專案為基礎的 RAG 功能,一般聊天功能可正常使用。 @@ -1036,18 +1032,18 @@ settings.rag.indexing.binary.extensions.hint=以逗號分隔的在索引時被 settings.rag.indexing.embedding.batch.size=嵌入批次大小 settings.rag.indexing.embedding.batch.size.hint=每次請求傳送至嵌入模型的文字片段數量。若索引速度慢且使用遠端提供商(OpenAI、Gemini),可嘗試增大至 100–500。若使用本地模型(Ollama、LM Studio),請保持較低值以避免逾時。 -# Settings - Utility Models +## Settings - Utility Models settings.utility.models.title=工具模型 settings.utility.models.uses.selected=(使用所選模型) settings.utility.models.local.note={0} 是本地提供者 —— 工具任務會自動使用目前啟用的聊天模型。 -# Vision Models +## Settings - Vision Models settings.vision.models.title=視覺模型 ## Settings - Image Models settings.image.models.title=影像生成模型 -# Settings - Provider Model Config +## Settings - Provider Model Config settings.provider.model.config.title=模型設定 settings.provider.model.config.description=覆寫特定任務所使用的預設模型。若欄位留空,則使用提供者的預設模型。 settings.provider.model.config.guide=查看 AI 模型設定指南 @@ -1058,7 +1054,6 @@ settings.provider.model.embedding.hint=用於產生向量嵌入以支援 RAG 知 settings.model.placeholder.enter=輸入 {0} 模型 - # File Viewer Dialog file.viewer.title=檔案檢視器 file.viewer.title.with.name=檔案檢視器 - {0} @@ -1071,7 +1066,7 @@ mermaid.setup.required.title=需要 Mermaid CLI mermaid.setup.privacy.note=Askimo 會在本機渲染圖表,以保護您的隱私。 mermaid.setup.instructions.title=安裝說明 mermaid.setup.instructions.text=要在 Askimo 中渲染 Mermaid 圖表,請依照以下安裝指南進行: -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=開啟安裝指南 mermaid.setup.button.copy.diagram=複製圖表 mermaid.diagram.source.label=圖表來源: @@ -1089,6 +1084,7 @@ mermaid.button.reset.zoom=重設縮放 mermaid.button.retry=重試 mermaid.feedback.copied=已複製! + # Reference Material knowledge.source.type.folder=資料夾(監控變更) knowledge.source.type.file=檔案(靜態) @@ -1105,7 +1101,7 @@ mcp.instances.title=MCP 實例 mcp.instances.description=這些 MCP 實例可用 mcp.instances.empty=未配置 MCP 實例 mcp.instances.count={0} 個實例 -mcp.instance.server.label=伺服器: {0} +mcp.instance.server.label=伺服器\: {0} mcp.instance.delete.confirm.title=是否要刪除 MCP 實例? mcp.instance.delete.confirm.message=您確定要刪除 MCP 實例 "{0}" 嗎?此操作無法復原。 mcp.instance.enable.tooltip=啟用此 MCP 實例 @@ -1131,7 +1127,7 @@ mcp.instance.field.description=描述 mcp.instance.field.description.placeholder=此伺服器功能的簡短描述 mcp.instance.field.transport=傳輸類型 mcp.instance.field.command=命令範本 -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=包含 {{parameter}} 佔位符的空格分隔命令 mcp.instance.validation.error.empty.id=伺服器 ID 不能為空 mcp.instance.validation.error.invalid.id.pattern=伺服器 ID 只能包含小寫字母、數字和連字符 @@ -1140,20 +1136,20 @@ mcp.instance.validation.error.empty.command=命令範本不能為空 mcp.instance.validation.error.empty.parameter.key=參數鍵不能為空 mcp.instance.validation.error.empty.parameter.label=參數標籤不能為空 mcp.instance.env.label=環境變數 (可選) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=格式: KEY=值 或 KEY={{parameter}} (每行一個) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=格式\: KEY\=值 或 KEY\={{parameter}} (每行一個) mcp.instance.transport.stdio=Stdio (本地程序) mcp.instance.transport.http=HTTP (遠端伺服器) mcp.instance.http.url.label=URL 範本 -mcp.instance.http.url.placeholder=https://{{host}}/mcp 或 https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp 或 https\://api.example.com/mcp mcp.instance.http.url.hint=伺服器端點 URL。可使用 {{parameter}} 佔位符用於動態值 mcp.instance.http.headers.label=HTTP 標頭 (可選) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=格式: 標頭名稱=值 或 標頭名稱={{parameter}} (每行一個) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=格式\: 標頭名稱\=值 或 標頭名稱\={{parameter}} (每行一個) mcp.instance.http.timeout.label=逾時時間 (ms) mcp.instance.http.timeout.hint=請求逾時時間(毫秒) mcp.instance.validation.error.empty.url=URL 範本不能為空 -mcp.instance.validation.error.invalid.url=URL 範本必須以 http:// 或 https:// 開頭 +mcp.instance.validation.error.invalid.url=URL 範本必須以 http\:// 或 https\:// 開頭 # MCP Integrations (Project View) mcp.instance.delete.tooltip=刪除 MCP 實例 @@ -1203,7 +1199,7 @@ mcp.tools.dialog.search.count={0} / {1} 個工具 mcp.tools.dialog.search.empty=沒有工具符合您的搜尋 mcp.tools.dialog.export=匯出工具 mcp.tools.dialog.export.success=已將工具匯出到 {0} -mcp.tools.dialog.export.failed=匯出工具失敗: {0} +mcp.tools.dialog.export.failed=匯出工具失敗\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=新增 MCP 伺服器 @@ -1272,7 +1268,6 @@ panel.reindex.confirm.message="{0}" 目前正在索引。停止目前的索引 panel.reindex.confirm.button=停止並重新索引 panel.reindex.confirm.cancel=取消 panel.collapse=收合面板 -panel.collapse=收合面板 # RAG Status rag.status.started=開始建立索引 @@ -1401,7 +1396,7 @@ skills.view.history.empty=尚無執行記錄 skills.view.copy=複製 skills.view.system.prompt.file=檔案 skills.view.system.prompt.files=檔案 -skills.view.system.prompt.also.included=也包含在代理程式上下文中: +skills.view.system.prompt.also.included=也包含在代理程式上下文中\: skills.view.docs.tooltip=檢視技能指南 skills.view.mode.agentic=代理式 skills.view.mode.manual=手動 @@ -1473,7 +1468,6 @@ onboarding.step.directives.feature2.description=模糊問題只會得到模糊 onboarding.step.directives.feature3.title=每項工作都有對的專家 onboarding.step.directives.feature3.description=學習時要耐心導師,Debug 時要率直審閱者?分開維護不同指令,讓每項任務都能符合心境。 onboarding.step.directives.link=參考範例和技巧 - # Onboarding Step 6: Ready onboarding.step.ready.title=🚀 一切準備就緒! onboarding.step.ready.description=所有內容都已配置好,現在可開始聊天或瀏覽以下資源。 From 86d4e997facbdc606698c5b8cd353dbf6d69ec9c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:43:01 -0700 Subject: [PATCH 009/251] New translations messages.properties (Vietnamese) [ci skip] --- .../resources/i18n/messages_vi_VN.properties | 271 +++++++++--------- 1 file changed, 134 insertions(+), 137 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index b10b3a216..e06026861 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -1,4 +1,4 @@ -# Askimo Desktop Application - English Strings +# Askimo Desktop Application - English Strings # Application @@ -43,20 +43,10 @@ menu.help.share=🗣 Chia sẻ Askimo menu.help.share.x=Chia sẻ trên X / Twitter menu.help.share.linkedin=Chia sẻ trên LinkedIn menu.help.share.facebook=Chia sẻ trên Facebook -menu.help.share.text=Khám phá Askimo — ứng dụng AI miễn phí chạy cục bộ trên máy tính. Hỗ trợ Ollama, OpenAI, Anthropic và nhiều hơn. https://askimo.chat +menu.help.share.text=Khám phá Askimo — ứng dụng AI miễn phí chạy cục bộ trên máy tính. Hỗ trợ Ollama, OpenAI, Anthropic và nhiều hơn. https\://askimo.chat menu.help.share.hackernews=Bài đăng trên Hacker News menu.eventlog=Nhật ký sự kiện menu.help.model.capabilities=Mở tệp khả năng mô hình -chat.reasoning.effort.label=Đang suy nghĩ -chat.reasoning.effort.tooltip=Mức độ suy luận — kiểm soát mức độ mô hình suy nghĩ sâu như thế nào trước khi phản hồi -chat.reasoning.effort.off=Tắt -chat.reasoning.effort.off.description=Vô hiệu hóa suy luận mở rộng. Mô hình phản hồi trực tiếp mà không cần suy nghĩ sâu. -chat.reasoning.effort.low=Thấp -chat.reasoning.effort.low.description=Phản hồi nhanh hơn, chi phí thấp hơn. Tốt nhất cho các tác vụ đơn giản. -chat.reasoning.effort.medium=Trung bình -chat.reasoning.effort.medium.description=Cân bằng giữa độ sâu và tốc độ. Phù hợp cho hầu hết các tác vụ. -chat.reasoning.effort.high=Cao -chat.reasoning.effort.high.description=Suy luận kỹ lưỡng, chi phí cao hơn. Tốt nhất cho việc giải quyết các vấn đề phức tạp. menu.dev.clear.account.preferences=[Dev] Xóa cài đặt tài khoản menu.about=Giới thiệu Askimo menu.help.check.updates=Kiểm tra cập nhật... @@ -69,16 +59,16 @@ dialog.close=Đóng # Backup and Restore backup.export.title=Xuất bản sao lưu backup.export.success.title=Đã xuất bản sao lưu -backup.export.success.message=Đã xuất bản sao lưu thành công vào:\n{0} +backup.export.success.message=Đã xuất bản sao lưu thành công vào\:\n{0} backup.export.error.title=Xuất thất bại -backup.export.error.message=Không thể xuất bản sao lưu:\n{0} +backup.export.error.message=Không thể xuất bản sao lưu\:\n{0} backup.import.title=Nhập bản sao lưu backup.import.confirm.title=Xác nhận nhập backup.import.confirm.message=Thao tác này sẽ thay thế toàn bộ dữ liệu hiện tại bằng bản sao lưu.\n\nMột bản sao lưu an toàn sẽ được tạo tự động trước khi nhập.\n\nBạn có chắc chắn muốn tiếp tục không? backup.import.success.title=Đã nhập bản sao lưu backup.import.success.message=Đã nhập bản sao lưu thành công.\n\nVui lòng khởi động lại Askimo để áp dụng tất cả thay đổi. backup.import.error.title=Nhập thất bại -backup.import.error.message=Không thể nhập bản sao lưu:\n{0} +backup.import.error.message=Không thể nhập bản sao lưu\:\n{0} # Event Log eventlog.title=Nhật ký sự kiện ({0}) @@ -151,7 +141,7 @@ session.rename.error.empty=Tiêu đề không được để trống session.export.file.chooser.title=Lưu lịch sử trò chuyện session.export.button.export=Xuất session.export.success.title=Xuất thành công -session.export.success.message=Phiên trò chuyện đã được xuất đến: +session.export.success.message=Phiên trò chuyện đã được xuất đến\: # Projects project.title=Dự án @@ -167,11 +157,11 @@ project.new.dialog.file.browse=Chọn tệp để xử lý... project.new.dialog.sources.label=Tài liệu tham khảo (tùy chọn) project.new.dialog.sources.add=Thêm nguồn project.new.dialog.error.empty.name=Tên dự án không được để trống -project.new.dialog.error.create.failed=Không thể tạo dự án: {0} +project.new.dialog.error.create.failed=Không thể tạo dự án\: {0} project.new.dialog.name.error.empty=Tên dự án không được để trống project.new.dialog.button.create=Tạo dự án project.new.dialog.button.cancel=Hủy -project.new.dialog.success.title=Dự án đã được tạo thành công! +project.new.dialog.success.title=Dự án đã được tạo thành công\! project.new.dialog.success.message=Dự án ''{0}'' đã được tạo. project.new.dialog.success.countdown=Đóng sau {0} giây{1}... project.new.dialog.success.close=Đóng ngay @@ -194,7 +184,7 @@ projects.title=Dự án projects.description=Tổ chức các cuộc trò chuyện của bạn xoay quanh một chủ đề và đính kèm các tệp, thư mục hoặc URL làm nguồn kiến thức, để AI luôn có đúng ngữ cảnh cho dự án đó. projects.error=❌ {0} projects.empty=Không tìm thấy dự án nào. -projects.empty.hint=💡 Tạo dự án mới để tổ chức các phiên trò chuyện! +projects.empty.hint=💡 Tạo dự án mới để tổ chức các phiên trò chuyện\! projects.search.placeholder=Tìm kiếm theo tên… projects.search.empty=Không có dự án nào khớp với "{0}". projects.col.name=Tên @@ -205,13 +195,16 @@ projects.sources.expand=Hiển thị tài liệu tham khảo projects.sources.collapse=Ẩn tài liệu tham khảo projects.sources.empty.title=Chưa có tài liệu tham chiếu projects.sources.empty.description=Thêm tài liệu để Askimo có thể tham chiếu khi trả lời câu hỏi của bạn -projects.sources.info.tooltip=Tài liệu tham chiếu giúp Askimo hiểu rõ bối cảnh cụ thể của bạn.\n\n\ -Thêm thư mục, tệp hoặc trang web chứa thông tin mà bạn muốn Askimo tham chiếu khi trả lời câu hỏi.\n\n\ -Ví dụ:\n\ +projects.sources.info.tooltip=Tài liệu tham chiếu giúp Askimo hiểu rõ bối cảnh cụ thể của bạn.\n\ +\n\ +Thêm thư mục, tệp hoặc trang web chứa thông tin mà bạn muốn Askimo tham chiếu khi trả lời câu hỏi.\n\ +\n\ +Ví dụ\:\n\ • Tài liệu dự án\n\ • Cơ sở tri thức của công ty\n\ • Thông số kỹ thuật\n\ -• Bài nghiên cứu\n\n\ +• Bài nghiên cứu\n\ +\n\ Askimo sẽ tìm kiếm trong các tài liệu này để cung cấp câu trả lời chính xác và phù hợp với ngữ cảnh hơn. projects.sources.type.local_folders=Thư Mục Cục Bộ projects.sources.type.local_files=Tệp Cục Bộ @@ -238,8 +231,8 @@ project.reindex=Lập chỉ mục lại dự án project.menu.tooltip=Menu dự án project.new.chat.placeholder=Cuộc trò chuyện mới trong {0} project.recent.chats=Cuộc trò chuyện gần đây -project.no.chats=Chưa có cuộc trò chuyện nào. Hãy bắt đầu một cuộc trò chuyện mới bên dưới! -project.indexing.label=Đang lập chỉ mục nguồn kiến thức: {0} +project.no.chats=Chưa có cuộc trò chuyện nào. Hãy bắt đầu một cuộc trò chuyện mới bên dưới\! +project.indexing.label=Đang lập chỉ mục nguồn kiến thức\: {0} project.indexing.queued=Đang xếp hàng lập chỉ mục - chờ dự án khác hoàn thành... project.indexing.failed=Lập chỉ mục thất bại. Hãy thử lập chỉ mục lại từ menu dự án. project.indexing.ready.label=Đã lập chỉ mục @@ -259,7 +252,7 @@ settings.appearance=Giao diện settings.appearance.accent=Màu nhấn settings.appearance.accent.description=Tùy chỉnh an toàn một màu nhấn duy nhất. Askimo sẽ áp dụng nó cho các điểm nhấn giao diện chính và tạo các màu liên quan để đảm bảo dễ đọc. settings.appearance.accent.label=Màu nhấn (Hex) -settings.appearance.accent.invalid=Hãy nhập một màu hex hợp lệ như #0284C7 +settings.appearance.accent.invalid=Hãy nhập một màu hex hợp lệ như \#0284C7 settings.appearance.accent.swatch.primary=Chính settings.appearance.accent.swatch.primary.container=Vùng chứa settings.appearance.accent.swatch.on.primary.container=Trên vùng chứa @@ -283,7 +276,7 @@ settings.network.description=Cấu hình cài đặt mạng và proxy settings.mcp.servers=Máy chủ MCP settings.skills=Kỹ năng settings.skills.description=Skills là các tác nhân AI tái sử dụng được chạy trực tiếp trên máy của bạn. Mỗi skill là một tệp Markdown với lời nhắc hệ thống và hướng dẫn. Khi bạn chạy một skill, nó sẽ được thực thi qua {0} — đọc và ghi các tệp của bạn, chạy các lệnh shell và lặp cho đến khi công việc hoàn tất. Không yêu cầu sao chép và dán. -settings.skills.runtimes=Các môi trường chạy được hỗ trợ: +settings.skills.runtimes=Các môi trường chạy được hỗ trợ\: settings.skills.directory=Thư mục kỹ năng settings.skills.open.folder=Mở thư mục settings.skills.new.skill=Kỹ năng mới @@ -331,6 +324,9 @@ settings.provider=Nhà cung cấp settings.theme=Chủ đề settings.save=Lưu settings.cancel=Hủy +settings.provider.change.button=Đổi nhà cung cấp +settings.model.change.button=Đổi mô hình +settings.change.button=Đổi cài đặt # Theme theme.light=Sáng @@ -371,11 +367,11 @@ settings.log.viewer=Tệp log settings.log.viewer.description=Xem log và thông tin chẩn đoán settings.log.viewer.view=Xem log settings.log.viewer.open_folder=Mở thư mục log -settings.log.viewer.path=Tệp log: {0} +settings.log.viewer.path=Tệp log\: {0} settings.log.viewer.dialog.title=Log ứng dụng settings.log.viewer.refresh=Tải lại settings.log.viewer.copy=Sao chép -settings.log.viewer.copied=Đã sao chép! +settings.log.viewer.copied=Đã sao chép\! settings.log.viewer.loading=Đang tải log... settings.log.viewer.error=Lỗi khi tải log settings.log.viewer.empty=Không có log @@ -421,25 +417,25 @@ user.profile.name=Tên user.profile.email=Email user.profile.email.placeholder=your.email@example.com user.profile.occupation=Nghề nghiệp -user.profile.occupation.placeholder=vd: Lập trình viên, Nhà thiết kế, Sinh viên +user.profile.occupation.placeholder=vd\: Lập trình viên, Nhà thiết kế, Sinh viên user.profile.location=Vị trí -user.profile.location.placeholder=vd: San Francisco, CA +user.profile.location.placeholder=vd\: San Francisco, CA user.profile.bio=Giới thiệu user.profile.bio.placeholder=Hãy chia sẻ một chút về bạn… user.profile.interests=Sở thích user.profile.interests.description=Chọn các chủ đề bạn quan tâm để cá nhân hóa trải nghiệm AI user.profile.interests.custom=Sở thích tùy chỉnh -user.profile.interests.custom.placeholder=vd: Học máy, Nhiếp ảnh +user.profile.interests.custom.placeholder=vd\: Học máy, Nhiếp ảnh user.profile.interests.custom.hint=Phân tách nhiều sở thích bằng dấu phẩy # Welcome Dialog (First Run) -welcome.title=Chào mừng đến với Askimo! +welcome.title=Chào mừng đến với Askimo\! welcome.subtitle=Hãy giúp chúng tôi cá nhân hóa trải nghiệm AI của bạn welcome.avatar.optional=Nhấp để thêm ảnh (tùy chọn) welcome.name=Tên của bạn -welcome.name.placeholder=vd: Nguyễn Văn A +welcome.name.placeholder=vd\: Nguyễn Văn A welcome.occupation=Nghề nghiệp -welcome.occupation.placeholder=vd: Lập trình viên phần mềm +welcome.occupation.placeholder=vd\: Lập trình viên phần mềm welcome.interests=Bạn quan tâm đến điều gì? welcome.interests.description=Chọn một vài chủ đề để chúng tôi điều chỉnh trải nghiệm cho bạn welcome.skip=Thiết lập sau @@ -472,6 +468,7 @@ user.interest.environment=Môi trường # Actions action.delete=Xóa +action.remove=Xóa action.edit=Chỉnh sửa action.pin=Ghim vào thanh bên action.unpin=Bỏ ghim khỏi thanh bên @@ -492,12 +489,10 @@ action.retry=Thử lại action.done=Hoàn thành action.refresh=Tải lại - - # Happiness Gate (shown before Star Prompt) happiness.gate.title=Bạn thấy Askimo thế nào? happiness.gate.subtitle=Cho chúng tôi biết trải nghiệm của bạn -happiness.gate.happy=Tôi rất thích! 😍 +happiness.gate.happy=Tôi rất thích\! 😍 happiness.gate.neutral=Ổn 🙂 happiness.gate.unhappy=Chưa thực sự ưng 😕 happiness.gate.feedback.title=Giúp chúng tôi cải thiện @@ -538,10 +533,8 @@ file.overwrite.message=Tệp này đã tồn tại. Bạn có muốn ghi đè kh file.overwrite.confirm=Ghi đè file.name.too.long=Tên tệp quá dài. Vui lòng dùng tên ngắn hơn (tối đa 255 ký tự). - # About about.title=Giới thiệu {0} -action.remove=Xóa about.version=Phiên bản about.buildDate=Ngày build about.buildJdk=JDK build @@ -582,7 +575,7 @@ shortcut.send.message=Gửi tin nhắn shortcut.new.line=Dòng mới # Chat View -chat.welcome=Chào mừng đến Askimo!\nBắt đầu trò chuyện bằng cách nhập tin nhắn bên dưới. +chat.welcome=Chào mừng đến Askimo\!\nBắt đầu trò chuyện bằng cách nhập tin nhắn bên dưới. chat.no.active.session=Chọn một phiên trong thanh bên hoặc bắt đầu cuộc trò chuyện mới chat.search.placeholder=Tìm trong cuộc trò chuyện... chat.search.no.results=Không có kết quả @@ -620,7 +613,7 @@ global.search.results.count={0} kết quả global.search.results.count.plural={0} kết quả # Rest of chat view strings -chat.directive=Chỉ thị: +chat.directive=Chỉ thị\: chat.directive.none=Không có chat.directive.new=Chỉ thị mới chat.directive.manage=Quản lý chỉ thị @@ -641,13 +634,23 @@ chat.tools.server.scope.project=Dự án chat.tools.server.scope.builtin=Tích hợp sẵn chat.tools.tool.no.description=Không có mô tả chat.tools.button.disabled=Công cụ khả dụng ({0} bị vô hiệu hóa) +chat.reasoning.effort.label=Đang suy nghĩ +chat.reasoning.effort.tooltip=Mức độ suy luận — kiểm soát mức độ mô hình suy nghĩ sâu như thế nào trước khi phản hồi +chat.reasoning.effort.off=Tắt +chat.reasoning.effort.off.description=Vô hiệu hóa suy luận mở rộng. Mô hình phản hồi trực tiếp mà không cần suy nghĩ sâu. +chat.reasoning.effort.low=Thấp +chat.reasoning.effort.low.description=Phản hồi nhanh hơn, chi phí thấp hơn. Tốt nhất cho các tác vụ đơn giản. +chat.reasoning.effort.medium=Trung bình +chat.reasoning.effort.medium.description=Cân bằng giữa độ sâu và tốc độ. Phù hợp cho hầu hết các tác vụ. +chat.reasoning.effort.high=Cao +chat.reasoning.effort.high.description=Suy luận kỹ lưỡng, chi phí cao hơn. Tốt nhất cho việc giải quyết các vấn đề phức tạp. chat.input.placeholder=Nhập tin nhắn... (Enter để gửi, Shift+Enter để xuống dòng) chat.select.file=Chọn tệp (nhiều tệp) chat.attachment.remove=Xóa tệp đính kèm chat.attachment.preview.loading=Đang tải bản xem trước… chat.attachment.preview.file.not.found=(Không tìm thấy tệp) chat.attachment.preview.too.large=(Tệp quá lớn để xem trước) -chat.attachment.preview.cannot.read=(Không thể đọc tệp: {0}) +chat.attachment.preview.cannot.read=(Không thể đọc tệp\: {0}) chat.attachment.preview.more.lines=thêm {0} dòng # Sessions View @@ -659,12 +662,12 @@ sessions.col.created=Đã tạo sessions.col.updated=Đã cập nhật sessions.error=❌ {0} sessions.empty=Không có phiên trò chuyện. -sessions.empty.hint=💡 Bắt đầu một cuộc trò chuyện mới để tạo phiên đầu tiên! +sessions.empty.hint=💡 Bắt đầu một cuộc trò chuyện mới để tạo phiên đầu tiên\! sessions.search.placeholder=Tìm kiếm theo tiêu đề… sessions.search.empty=Không có phiên nào khớp với "{0}". -# Điều khiển phân trang bảng chung -table.page.size.label=Số hàng mỗi trang: +# Generic table pagination controls +table.page.size.label=Số hàng mỗi trang\: table.page=Trang {0} trên {1} table.page.previous=Trang trước table.page.next=Trang tiếp theo @@ -680,7 +683,7 @@ sessions.error.rename.failed=Đổi tên thất bại. # ChatSessionService Errors # Update Check update.dialog.title=Cập nhật phần mềm -update.dialog.new.version.available=Có phiên bản Askimo mới! +update.dialog.new.version.available=Có phiên bản Askimo mới\! update.urgency.medium=Bạn đang dùng phiên bản cũ hơn {0} bản — bạn có thể đã bỏ lỡ các bản sửa lỗi quan trọng và tính năng mới. update.urgency.high=Bạn đang dùng phiên bản cũ hơn {0} bản — bạn đang bỏ lỡ nhiều cải tiến đáng kể. Vui lòng cập nhật sớm. update.dialog.current.version.label=Phiên bản hiện tại @@ -691,7 +694,7 @@ update.dialog.download=Tải ngay update.dialog.how.to.update=Cách cập nhật update.dialog.later=Để sau update.dialog.skip.version=Bỏ qua phiên bản này -update.check.up.to.date=Bạn đang sử dụng phiên bản mới nhất! +update.check.up.to.date=Bạn đang sử dụng phiên bản mới nhất\! update.check.failed=Kiểm tra cập nhật thất bại # Event Names @@ -719,18 +722,15 @@ settings.app.language.translation.contribute=Đóng góp trên Crowdin settings.ai.response.language=Ngôn ngữ phản hồi ưu tiên settings.ai.response.language.description=Bắt AI phản hồi bằng một ngôn ngữ cụ thể (để trống để tự động phát hiện) settings.ai.response.language.auto=Tự động phát hiện -settings.ai.response.language.tooltip=AI tự động phát hiện ngôn ngữ, nhưng nên ghi đè khi:\n• Học ngôn ngữ mới (luyện tập nhập vai)\n• Tính nhất quán chuyên nghiệp (ví dụ: tài liệu code luôn bằng tiếng Anh)\n• Tối ưu hóa RAG (khớp ngôn ngữ cơ sở tri thức)\n• Dạy học (hỏi bằng ngôn ngữ này, giải thích bằng ngôn ngữ khác)\n• Ngăn chặn chuyển đổi ngôn ngữ không mong muốn -settings.model.select=Chọn mô hình cho {0}: +settings.ai.response.language.tooltip=AI tự động phát hiện ngôn ngữ, nhưng nên ghi đè khi\:\n• Học ngôn ngữ mới (luyện tập nhập vai)\n• Tính nhất quán chuyên nghiệp (ví dụ\: tài liệu code luôn bằng tiếng Anh)\n• Tối ưu hóa RAG (khớp ngôn ngữ cơ sở tri thức)\n• Dạy học (hỏi bằng ngôn ngữ này, giải thích bằng ngôn ngữ khác)\n• Ngăn chặn chuyển đổi ngôn ngữ không mong muốn +settings.model.select=Chọn mô hình cho {0}\: settings.model.loading=Đang tải mô hình... settings.model.none=Không có mô hình -settings.provider.change.button=Đổi nhà cung cấp -settings.model.change.button=Đổi mô hình -settings.change.button=Đổi cài đặt settings.model.select.title=Chọn mô hình settings.model.current=Mô hình hiện tại settings.model.selected=Mô hình đã chọn settings.model.new=Mô hình mới -settings.model.change.description=Chọn một mô hình từ danh sách dưới đây: +settings.model.change.description=Chọn một mô hình từ danh sách dưới đây\: settings.model.search=Tìm mô hình settings.model.search.placeholder=Nhập để lọc mô hình... settings.model.filtered=Hiển thị {0}/{1} mô hình @@ -738,19 +738,19 @@ settings.model.no.match=Không có mô hình phù hợp settings.model.no.results=Không có mô hình phù hợp settings.configure.title=Cấu hình {0} settings.test.connection.testing=Đang kiểm tra... -settings.placeholder.baseurl=http://localhost:11434 +settings.placeholder.baseurl=http\://localhost\:11434 provider.connection.failed=Não foi possível conectar ao provedor. Verifique se a sua chave API está correta (para provedores em nuvem) ou se a sua URL base está acessível (para provedores locais). Você pode encontrar instruções de configuração usando o link de ajuda acima. # Directives Dialog directive.manage.title=Quản lý chỉ thị -directive.manage.empty=Chưa có chỉ thị. Hãy tạo mới! +directive.manage.empty=Chưa có chỉ thị. Hãy tạo mới\! directive.edit.name.label=Tên directive.edit.name.placeholder=Nhập tên chỉ thị... directive.edit.content.label=Nội dung directive.edit.content.placeholder=Nhập hướng dẫn... directive.edit.name.required=Yêu cầu tên directive.edit.content.required=Yêu cầu nội dung -directive.created=Tạo lúc: {0} +directive.created=Tạo lúc\: {0} directive.new.title=Chỉ thị mới directive.new.guidelines=Chỉ thị hướng dẫn cách AI phản hồi tin nhắn của bạn. Hãy cụ thể về giọng điệu, mức độ chi tiết, định dạng hoặc bất kỳ yêu cầu đặc biệt nào bạn cần. directive.new.name.placeholder=v.d., concise-code, explain-like-im-5 @@ -765,8 +765,8 @@ directive.export.tooltip=Xuất tất cả các chỉ thị ra tệp JSON để directive.export.filename=askimo-directives directive.import=Nhập directive.import.tooltip=Nhập chỉ thị từ tệp JSON -directive.import.result=Nhập hoàn tất: {0} đã nhập, {1} đã đổi tên, {2} đã bỏ qua -directive.import.error=Nhập thất bại: định dạng tệp không hợp lệ hoặc không được hỗ trợ +directive.import.result=Nhập hoàn tất\: {0} đã nhập, {1} đã đổi tên, {2} đã bỏ qua +directive.import.error=Nhập thất bại\: định dạng tệp không hợp lệ hoặc không được hỗ trợ # Log Levels log.level.error=Lỗi @@ -815,7 +815,7 @@ message.edited.indicator=(đã chỉnh sửa) message.date.today=Hôm nay message.date.yesterday=Hôm qua message.token.usage={0} token · {1} vào / {2} ra -message.token.usage.tooltip=Số token được sử dụng bởi phản hồi này.\nĐầu vào: prompt của bạn + ngữ cảnh được gửi đến AI.\nĐầu ra: phản hồi do AI tạo ra. +message.token.usage.tooltip=Số token được sử dụng bởi phản hồi này.\nĐầu vào\: prompt của bạn + ngữ cảnh được gửi đến AI.\nĐầu ra\: phản hồi do AI tạo ra. attachment.download=Tải xuống tệp đính kèm attachment.download.description=Tải xuống tệp đính kèm này attachment.save.file=Lưu tệp đính kèm @@ -830,8 +830,8 @@ provider.select.title=Chọn nhà cung cấp provider.setup.required.title=Thiết lập nhà cung cấp AI provider.setup.required.message=Hãy chọn và cấu hình nhà cung cấp AI trước khi bắt đầu trò chuyện. provider.setup.required.button=Thiết lập -provider.select.prompt=Chọn nhà cung cấp: -provider.configure.prompt=Cấu hình: +provider.select.prompt=Chọn nhà cung cấp\: +provider.configure.prompt=Cấu hình\: provider.choose.placeholder=Chọn nhà cung cấp... provider.setup.guide=Cách thiết lập {0} provider.apikey.stored=API key đã lưu an toàn @@ -842,31 +842,31 @@ provider.apikey.security.link=Tìm hiểu cách chúng tôi bảo vệ dữ li provider.not.set=Chưa thiết lập # Provider Configuration - OpenAI -provider.openai.apikey.description=API key OpenAI từ https://platform.openai.com/account/api-keys +provider.openai.apikey.description=API key OpenAI từ https\://platform.openai.com/account/api-keys provider.openai.apikey.stored=API key đã lưu. Để trống để giữ nguyên hoặc nhập key mới để cập nhật. -provider.openai.setup.help=💡 Để sử dụng OpenAI, bạn cần API key.\n\n1. Lấy key từ: https://platform.openai.com/account/api-keys\n2. Thiết lập trong Cài đặt hoặc dùng :change-settings\n\nLấy key tại: https://platform.openai.com/api-keys +provider.openai.setup.help=💡 Để sử dụng OpenAI, bạn cần API key.\n\n1. Lấy key từ\: https\://platform.openai.com/account/api-keys\n2. Thiết lập trong Cài đặt hoặc dùng \:change-settings\n\nLấy key tại\: https\://platform.openai.com/api-keys # Provider Configuration - Anthropic -provider.anthropic.apikey.description=API key Anthropic từ https://console.anthropic.com/ +provider.anthropic.apikey.description=API key Anthropic từ https\://console.anthropic.com/ provider.anthropic.apikey.stored=API key đã lưu. Để trống để giữ nguyên hoặc nhập mới để cập nhật. -provider.anthropic.setup.help=💡 Để sử dụng Anthropic, bạn cần API key.\n\n1. Lấy từ https://console.anthropic.com/\n2. Thiết lập trong Cài đặt hoặc dùng :change-settings +provider.anthropic.setup.help=💡 Để sử dụng Anthropic, bạn cần API key.\n\n1. Lấy từ https\://console.anthropic.com/\n2. Thiết lập trong Cài đặt hoặc dùng \:change-settings # Provider Configuration - Gemini -provider.gemini.apikey.description=API key Google AI Studio từ https://aistudio.google.com/app/apikey +provider.gemini.apikey.description=API key Google AI Studio từ https\://aistudio.google.com/app/apikey provider.gemini.apikey.stored=API key đã lưu.Để trống để giữ nguyên hoặc nhập mới. -provider.gemini.setup.help=💡 Để sử dụng Gemini, bạn cần API key.\n\n1. Lấy key tại https://aistudio.google.com/app/apikey\n2. Thiết lập trong Cài đặt hoặc dùng :change-settings +provider.gemini.setup.help=💡 Để sử dụng Gemini, bạn cần API key.\n\n1. Lấy key tại https\://aistudio.google.com/app/apikey\n2. Thiết lập trong Cài đặt hoặc dùng \:change-settings # Provider Configuration - XAI -provider.xai.apikey.description=API key XAI từ https://console.x.ai/ +provider.xai.apikey.description=API key XAI từ https\://console.x.ai/ provider.xai.apikey.stored=API key đã lưu. -provider.xai.setup.help=💡 Để dùng XAI, bạn cần API key.\n\n1. Lấy tại https://console.x.ai/\n2. Thiết lập trong Cài đặt hoặc dùng :change-settings +provider.xai.setup.help=💡 Để dùng XAI, bạn cần API key.\n\n1. Lấy tại https\://console.x.ai/\n2. Thiết lập trong Cài đặt hoặc dùng \:change-settings # Provider Configuration - Ollama -provider.ollama.baseurl.description=Base URL cho Ollama (mặc định http://localhost:11434) -provider.ollama.setup.help=💡 Để dùng Ollama, bạn cần chạy nó cục bộ.\n\n1. Cài từ https://ollama.ai/\n2. Chạy dịch vụ Ollama\n3. Tùy chọn thay đổi base URL +provider.ollama.baseurl.description=Base URL cho Ollama (mặc định http\://localhost\:11434) +provider.ollama.setup.help=💡 Để dùng Ollama, bạn cần chạy nó cục bộ.\n\n1. Cài từ https\://ollama.ai/\n2. Chạy dịch vụ Ollama\n3. Tùy chọn thay đổi base URL # Provider Configuration - Docker AI -provider.docker.baseurl.description=Base URL cho Docker AI (mặc định http://localhost:12434) +provider.docker.baseurl.description=Base URL cho Docker AI (mặc định http\://localhost\:12434) provider.docker.setup.help=💡 Để dùng Docker AI, bạn cần chạy nó cục bộ.\n\n1. Đảm bảo Docker AI đã cài và chạy\n2. Chạy dịch vụ Docker AI\n3. Tùy chọn thay đổi base URL # Provider Configuration - LocalAI @@ -874,8 +874,8 @@ provider.localai.baseurl.description=Base URL cho LocalAI provider.localai.setup.help=💡 Để dùng LocalAI, cần chạy LocalAI.\n\n1. Cài và chạy LocalAI\n2. Thiết lập base URL tương ứng # Provider Configuration - LMStudio -provider.lmstudio.baseurl.description=Base URL LMStudio (mặc định http://localhost:1234) -provider.lmstudio.setup.help=💡 Để dùng LMStudio:\n\n1. Cài từ https://lmstudio.ai/\n2. Chạy server cục bộ\n3. Tùy chọn thay đổi base URL +provider.lmstudio.baseurl.description=Base URL LMStudio (mặc định http\://localhost\:1234) +provider.lmstudio.setup.help=💡 Để dùng LMStudio\:\n\n1. Cài từ https\://lmstudio.ai/\n2. Chạy server cục bộ\n3. Tùy chọn thay đổi base URL provider.lmstudio.openai.compat.info=Askimo sử dụng các endpoint tương thích OpenAI (/v1), không phải API LMStudio gốc (/api/v1/). # Provider Configuration - Open AI Compatible @@ -884,7 +884,7 @@ provider.openai_compatible.apikey.stored=Khóa API đã được lưu trữ an t # System Resources system.share.feedback=Chia sẻ phản hồi -system.ai.provider.tooltip=Nhà cung cấp AI: {0}\nNhấn để cấu hình +system.ai.provider.tooltip=Nhà cung cấp AI\: {0}\nNhấn để cấu hình system.diagnostics.title=Chẩn đoán hệ thống system.diagnostics.resources=Tài nguyên system.diagnostics.jvm.memory=Bộ nhớ JVM (đã dùng / tổng) @@ -910,7 +910,7 @@ telemetry.llm.calls=Cuộc gọi LLM telemetry.llm.calls.count={0} cuộc gọi telemetry.llm.tokens={0} tok telemetry.llm.errors={0} lỗi -telemetry.total.tokens=Tổng số Token: {0} +telemetry.total.tokens=Tổng số Token\: {0} telemetry.llm.col.provider=Nhà cung cấp telemetry.llm.col.model=Mô hình telemetry.llm.col.calls=Cuộc gọi @@ -954,14 +954,15 @@ export.format.html.benefit.3=Giao diện chuyên nghiệp export.format.html.benefit.4=Dễ chia sẻ # Error Messages -error.network=⚠️ Không thể kết nối tới dịch vụ AI{endpoint}\n\nVui lòng kiểm tra:\n• Kết nối internet của bạn\n• URL dịch vụ AI (kiểm tra cài đặt)\n• Cấu hình tường lửa\n• Trạng thái hoạt động của dịch vụ +error.network=⚠️ Không thể kết nối tới dịch vụ AI{endpoint}\n\nVui lòng kiểm tra\:\n• Kết nối internet của bạn\n• URL dịch vụ AI (kiểm tra cài đặt)\n• Cấu hình tường lửa\n• Trạng thái hoạt động của dịch vụ error.authentication=⚠️ API key bị thiếu hoặc không hợp lệ{provider}\n\nHãy vào Cài đặt để thiết lập API key của bạn. -error.model_configuration=⚠️ Lỗi cấu hình mô hình: {issue}\n\nCách khắc phục:\n1. Mở Cài đặt\n2. Chọn nhà cung cấp AI\n3. Chọn một mô hình từ danh sách +error.model_configuration=⚠️ Lỗi cấu hình mô hình\: {issue}\n\nCách khắc phục\:\n1. Mở Cài đặt\n2. Chọn nhà cung cấp AI\n3. Chọn một mô hình từ danh sách +error.provider_not_configured=⚠️ Chưa cấu hình nhà cung cấp AI.\n\nĐể bắt đầu trò chuyện\:\n1. Mở Cài đặt\n2. Chọn nhà cung cấp AI (OpenAI, Ollama, Anthropic, v.v.)\n3. Nhập API key hoặc cấu hình kết nối error.rate_limit=⚠️ Đã vượt giới hạn tốc độ\n{retryAfter}\n\nBạn đã đạt giới hạn sử dụng API. Vui lòng chờ một chút trước khi gửi thêm tin nhắn. error.insufficient_credits=⚠️ Không đủ tín dụng\n\nSố dư tín dụng quá thấp.\n\nVui lòng truy cập trang thanh toán để thêm tín dụng. -error.timeout=⚠️ Yêu cầu đã hết thời gian chờ sau {timeout} giây\n\nNguyên nhân có thể do:\n• Máy chủ đang quá tải - hãy thử lại sau ít phút\n• Truy vấn quá phức tạp - hãy thử đơn giản hóa\n• Độ trễ mạng -error.invalid_request=⚠️ Yêu cầu không hợp lệ: {details}\n\nVui lòng kiểm tra nội dung nhập và thử lại. -error.system=⚠️ Lỗi hệ thống\n\nĐã xảy ra lỗi không mong muốn: {errorCode}\n\nVui lòng liên hệ hỗ trợ Askimo và cung cấp:\n• Bạn đang làm gì\n• Mã lỗi ở trên\n• Thời điểm xảy ra lỗi +error.timeout=⚠️ Yêu cầu đã hết thời gian chờ sau {timeout} giây\n\nNguyên nhân có thể do\:\n• Máy chủ đang quá tải - hãy thử lại sau ít phút\n• Truy vấn quá phức tạp - hãy thử đơn giản hóa\n• Độ trễ mạng +error.invalid_request=⚠️ Yêu cầu không hợp lệ\: {details}\n\nVui lòng kiểm tra nội dung nhập và thử lại. +error.system=⚠️ Lỗi hệ thống\n\nĐã xảy ra lỗi không mong muốn\: {errorCode}\n\nVui lòng liên hệ hỗ trợ Askimo và cung cấp\:\n• Bạn đang làm gì\n• Mã lỗi ở trên\n• Thời điểm xảy ra lỗi # Model Availability Errors error.model.not_available.title.chat=Không khả dụng mô hình @@ -969,16 +970,15 @@ error.model.not_available.title.embedding=Không khả dụng mô hình embeddin error.model.not_available.message.chat=Mô hình ''{0}'' không khả dụng. error.model.not_available.message.embedding=Mô hình embedding ''{0}'' không khả dụng.\n\nVui lòng cấu hình đúng mô hình embedding. error.model.not_available.config_link=Cấu hình mô hình embedding -error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration +error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration # Generic Application Errors error.app.title=Đã xảy ra lỗi -error.app.message=Đã xảy ra lỗi không mong muốn: {0} +error.app.message=Đã xảy ra lỗi không mong muốn\: {0} # Send Message Errors error.send_message.title=Gửi tin nhắn thất bại - # Indexing Errors error.indexing.model_not_found.title=Không tìm thấy mô hình embedding error.indexing.model_not_found.message=Không tìm thấy mô hình embedding ''{0}''. Vui lòng tải hoặc bật mô hình này từ {1} trước khi lập chỉ mục. @@ -987,16 +987,15 @@ error.indexing.io_error.message=Đã xảy ra lỗi IO trong quá trình lập c error.indexing.unknown.title=Lỗi lập chỉ mục error.indexing.unknown.message=Đã xảy ra lỗi không xác định trong quá trình lập chỉ mục - # Settings - Embedding Models (for RAG features) settings.embedding.rag_feature_only=Trạng thái mô hình embedding (chỉ cần cho tính năng RAG) -settings.embedding.not_available_rag_only=⚠️ {0}.\n\nLưu ý: Điều này chỉ ảnh hưởng đến các tính năng RAG theo dự án. Chức năng trò chuyện thông thường vẫn hoạt động bình thường. -settings.embedding.provider_unreachable=⚠️ Không thể kết nối tới nhà cung cấp: {0}.\n\nLưu ý: Mô hình embedding chỉ cần cho các tính năng RAG theo dự án. -settings.embedding.check_failed=Không thể kiểm tra mô hình embedding: {0} +settings.embedding.not_available_rag_only=⚠️ {0}.\n\nLưu ý\: Điều này chỉ ảnh hưởng đến các tính năng RAG theo dự án. Chức năng trò chuyện thông thường vẫn hoạt động bình thường. +settings.embedding.provider_unreachable=⚠️ Không thể kết nối tới nhà cung cấp\: {0}.\n\nLưu ý\: Mô hình embedding chỉ cần cho các tính năng RAG theo dự án. +settings.embedding.check_failed=Không thể kiểm tra mô hình embedding\: {0} settings.embedding.download_model=Tải mô hình embedding -settings.embedding.download_success=✅ Đã tải thành công mô hình embedding: {0} -settings.embedding.download_failed=❌ Không thể tải mô hình embedding: {0}. Vui lòng thử thủ công: ollama pull {0} -settings.embedding.download_error=Lỗi khi tải mô hình: {0} +settings.embedding.download_success=✅ Đã tải thành công mô hình embedding\: {0} +settings.embedding.download_failed=❌ Không thể tải mô hình embedding\: {0}. Vui lòng thử thủ công\: ollama pull {0} +settings.embedding.download_error=Lỗi khi tải mô hình\: {0} settings.embedding.anthropic_no_embedding=Anthropic không cung cấp mô hình embedding settings.embedding.xai_no_embedding=xAI không cung cấp mô hình embedding @@ -1004,47 +1003,47 @@ settings.embedding.xai_no_embedding=xAI không cung cấp mô hình embedding settings.rag.title=Cấu hình RAG settings.rag.description=Cấu hình các tham số Retrieval-Augmented Generation cho truy xuất tri thức theo dự án settings.rag.vector.max.results=Số kết quả tìm kiếm vector tối đa -settings.rag.vector.max.results.hint=Số lượng tài liệu tối đa từ tìm kiếm vector (mặc định: 20) +settings.rag.vector.max.results.hint=Số lượng tài liệu tối đa từ tìm kiếm vector (mặc định\: 20) settings.rag.vector.min.score=Điểm tối thiểu của tìm kiếm vector -settings.rag.vector.min.score.hint=Điểm tương đồng tối thiểu 0.0–1.0 (mặc định: 0.3) +settings.rag.vector.min.score.hint=Điểm tương đồng tối thiểu 0.0–1.0 (mặc định\: 0.3) settings.rag.hybrid.max.results=Số kết quả hybrid tối đa -settings.rag.hybrid.max.results.hint=Số lượng tài liệu cuối cùng sau khi hợp nhất (mặc định: 15) +settings.rag.hybrid.max.results.hint=Số lượng tài liệu cuối cùng sau khi hợp nhất (mặc định\: 15) settings.rag.rank.fusion.constant=Hằng số hợp nhất xếp hạng -settings.rag.rank.fusion.constant.hint=Hằng số RRF cho xếp hạng hybrid (mặc định: 60) +settings.rag.rank.fusion.constant.hint=Hằng số RRF cho xếp hạng hybrid (mặc định\: 60) settings.rag.use.absolute.paths=Sử dụng đường dẫn tuyệt đối trong trích dẫn settings.rag.use.absolute.paths.hint=Hiển thị đường dẫn đầy đủ của tệp trong câu trả lời của AI để rõ ràng hơn khi có nhiều tệp trùng tên settings.rag.embedding.title=Cấu hình embedding settings.rag.embedding.description=Cấu hình các tham số chia đoạn văn bản và embedding settings.rag.embedding.max.chars.per.chunk=Số ký tự tối đa mỗi đoạn -settings.rag.embedding.max.chars.per.chunk.hint=Số ký tự tối đa trong mỗi đoạn văn bản (mặc định: 1500) +settings.rag.embedding.max.chars.per.chunk.hint=Số ký tự tối đa trong mỗi đoạn văn bản (mặc định\: 1500) settings.rag.embedding.chunk.overlap=Chồng lấp đoạn -settings.rag.embedding.chunk.overlap.hint=Số ký tự chồng lấp giữa các đoạn (mặc định: 100) +settings.rag.embedding.chunk.overlap.hint=Số ký tự chồng lấp giữa các đoạn (mặc định\: 100) settings.rag.embedding.models=Mô hình embedding theo nhà cung cấp settings.rag.indexing.title=Cấu hình lập chỉ mục settings.rag.indexing.description=Kiểm soát những tệp nào được lập chỉ mục và kích thước tệp tối đa được phép settings.rag.indexing.max.file.bytes=Kích thước tệp tối đa (byte) settings.rag.indexing.max.file.bytes.hint=Các tệp lớn hơn giá trị này sẽ bị bỏ qua trong quá trình lập chỉ mục. Đặt giá trị quá cao có thể làm chậm quá trình lập chỉ mục đáng kể. settings.rag.indexing.supported.extensions=Phần mở rộng được hỗ trợ -settings.rag.indexing.supported.extensions.hint=Phần mở rộng tệp cách nhau bằng dấu phẩy để lập chỉ mục (vd: kt, java, py, md). Để trống để dùng mặc định tích hợp sẵn. +settings.rag.indexing.supported.extensions.hint=Phần mở rộng tệp cách nhau bằng dấu phẩy để lập chỉ mục (vd\: kt, java, py, md). Để trống để dùng mặc định tích hợp sẵn. settings.rag.indexing.exclude.file.names=Tên tệp bị loại trừ -settings.rag.indexing.exclude.file.names.hint=Tên tệp chính xác cách nhau bằng dấu phẩy luôn bị bỏ qua (vd: package-lock.json, yarn.lock). +settings.rag.indexing.exclude.file.names.hint=Tên tệp chính xác cách nhau bằng dấu phẩy luôn bị bỏ qua (vd\: package-lock.json, yarn.lock). settings.rag.indexing.binary.extensions=Phần mở rộng nhị phân -settings.rag.indexing.binary.extensions.hint=Phần mở rộng tệp cách nhau bằng dấu phẩy được coi là nhị phân và bỏ qua khi lập chỉ mục (vd: png, jpg, zip, exe). Để trống để dùng mặc định tích hợp sẵn. +settings.rag.indexing.binary.extensions.hint=Phần mở rộng tệp cách nhau bằng dấu phẩy được coi là nhị phân và bỏ qua khi lập chỉ mục (vd\: png, jpg, zip, exe). Để trống để dùng mặc định tích hợp sẵn. settings.rag.indexing.embedding.batch.size=Kích thước lô nhúng settings.rag.indexing.embedding.batch.size.hint=Số đoạn văn bản gửi đến mô hình nhúng mỗi yêu cầu. Nếu lập chỉ mục chậm và bạn dùng nhà cung cấp từ xa (OpenAI, Gemini), hãy thử tăng lên 100–500. Nếu dùng mô hình cục bộ (Ollama, LM Studio), hãy giữ thấp để tránh hết thời gian chờ. -# Settings - Utility Models +## Settings - Utility Models settings.utility.models.title=Mô hình tiện ích settings.utility.models.uses.selected=(sử dụng mô hình đã chọn) settings.utility.models.local.note={0} là nhà cung cấp cục bộ — mô hình chat đang hoạt động sẽ tự động được sử dụng cho các tác vụ tiện ích. -# Settings - Vision Models +## Settings - Vision Models settings.vision.models.title=Mô hình thị giác ## Settings - Image Models settings.image.models.title=Mô hình tạo hình ảnh -# Settings - Provider Model Config +## Settings - Provider Model Config settings.provider.model.config.title=Cấu hình mô hình settings.provider.model.config.description=Ghi đè các mô hình mặc định được dùng cho các tác vụ cụ thể. Để trống trường nếu muốn sử dụng mô hình mặc định của nhà cung cấp. settings.provider.model.config.guide=Xem hướng dẫn cấu hình mô hình AI @@ -1055,26 +1054,25 @@ settings.provider.model.embedding.hint=Mô hình dùng để tạo vector embedd settings.model.placeholder.enter=Nhập mô hình {0} - # File Viewer Dialog file.viewer.title=Trình xem tệp file.viewer.title.with.name=Trình xem tệp - {0} file.viewer.dialog.close=Đóng file.viewer.copy.clipboard=Sao chép vào clipboard -file.viewer.copied=Đã sao chép! +file.viewer.copied=Đã sao chép\! # Mermaid Chart Renderer mermaid.setup.required.title=Cần Mermaid CLI mermaid.setup.privacy.note=Askimo hiển thị sơ đồ cục bộ để bảo vệ quyền riêng tư của bạn. mermaid.setup.instructions.title=Hướng dẫn cài đặt -mermaid.setup.instructions.text=Để hiển thị sơ đồ Mermaid trong Askimo, vui lòng làm theo hướng dẫn cài đặt tại: -mermaid.setup.instructions.link=https://askimo.chat/docs/desktop/mermaid-diagrams/ +mermaid.setup.instructions.text=Để hiển thị sơ đồ Mermaid trong Askimo, vui lòng làm theo hướng dẫn cài đặt tại\: +mermaid.setup.instructions.link=https\://askimo.chat/docs/desktop/mermaid-diagrams/ mermaid.setup.button.open.guide=Mở hướng dẫn cài đặt mermaid.setup.button.copy.diagram=Sao chép sơ đồ -mermaid.diagram.source.label=Nguồn sơ đồ: +mermaid.diagram.source.label=Nguồn sơ đồ\: mermaid.rendering.progress=Đang hiển thị sơ đồ... mermaid.error.rendering.title=Lỗi hiển thị sơ đồ -mermaid.error.rendering.raw.label=Sơ đồ thô: +mermaid.error.rendering.raw.label=Sơ đồ thô\: mermaid.error.unexpected.state=Trạng thái không mong đợi. Vui lòng thử lại. mermaid.error.failed.load.image=Không thể tải hình ảnh sơ đồ mermaid.button.copy.code=Sao chép mã @@ -1084,7 +1082,8 @@ mermaid.button.zoom.in=Phóng to mermaid.button.zoom.out=Thu nhỏ mermaid.button.reset.zoom=Đặt lại thu phóng mermaid.button.retry=Thử lại -mermaid.feedback.copied=Đã sao chép! +mermaid.feedback.copied=Đã sao chép\! + # Reference Material knowledge.source.type.folder=Thư mục (theo dõi thay đổi) @@ -1102,7 +1101,7 @@ mcp.instances.title=Các Instance MCP mcp.instances.description=Các instance MCP này có sẵn mcp.instances.empty=Không có instance MCP nào được cấu hình mcp.instances.count={0} instance(s) -mcp.instance.server.label=Máy chủ: {0} +mcp.instance.server.label=Máy chủ\: {0} mcp.instance.delete.confirm.title=Bạn có muốn xóa Instance MCP không? mcp.instance.delete.confirm.message=Bạn có chắc chắn muốn xóa instance mcp "{0}"? Thao tác này không thể hoàn tác. mcp.instance.enable.tooltip=Kích hoạt instance MCP này @@ -1128,7 +1127,7 @@ mcp.instance.field.description=Mô tả mcp.instance.field.description.placeholder=Mô tả ngắn gọn về chức năng của máy chủ này mcp.instance.field.transport=Loại truyền tải mcp.instance.field.command=Mẫu lệnh -mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2:--flag}} +mcp.instance.field.command.placeholder=npx -y mcp-server@latest {{param1}} {{?param2\:--flag}} mcp.instance.field.command.hint=Lệnh phân tách bằng dấu cách với các placeholder {{parameter}} mcp.instance.validation.error.empty.id=ID máy chủ không được để trống mcp.instance.validation.error.invalid.id.pattern=ID máy chủ chỉ được chứa các chữ cái thường, số và dấu gạch nối @@ -1137,20 +1136,20 @@ mcp.instance.validation.error.empty.command=Mẫu lệnh không được để t mcp.instance.validation.error.empty.parameter.key=Khóa tham số không được để trống mcp.instance.validation.error.empty.parameter.label=Nhãn tham số không được để trống mcp.instance.env.label=Biến môi trường (Tùy chọn) -mcp.instance.env.placeholder=API_KEY={{apiKey}}\nDEBUG={{debug}} -mcp.instance.env.hint=Định dạng: KHÓA=giá trị hoặc KHÓA={{parameter}} (mỗi dòng một cặp) +mcp.instance.env.placeholder=API_KEY\={{apiKey}}\nDEBUG\={{debug}} +mcp.instance.env.hint=Định dạng\: KHÓA\=giá trị hoặc KHÓA\={{parameter}} (mỗi dòng một cặp) mcp.instance.transport.stdio=Stdio (Quy trình cục bộ) mcp.instance.transport.http=HTTP (Máy chủ từ xa) mcp.instance.http.url.label=Mẫu URL -mcp.instance.http.url.placeholder=https://{{host}}/mcp hoặc https://api.example.com/mcp +mcp.instance.http.url.placeholder=https\://{{host}}/mcp hoặc https\://api.example.com/mcp mcp.instance.http.url.hint=URL endpoint máy chủ. Sử dụng placeholder {{parameter}} cho các giá trị động mcp.instance.http.headers.label=Tiêu đề HTTP (Tùy chọn) -mcp.instance.http.headers.placeholder=Authorization=Bearer {{apiKey}}\nX-Tenant-Id={{tenantId}} -mcp.instance.http.headers.hint=Định dạng: Tên-Tiêu đề=giá trị hoặc Tên-Tiêu đề={{parameter}} (mỗi dòng một cặp) +mcp.instance.http.headers.placeholder=Authorization\=Bearer {{apiKey}}\nX-Tenant-Id\={{tenantId}} +mcp.instance.http.headers.hint=Định dạng\: Tên-Tiêu đề\=giá trị hoặc Tên-Tiêu đề\={{parameter}} (mỗi dòng một cặp) mcp.instance.http.timeout.label=Thời gian chờ (ms) mcp.instance.http.timeout.hint=Thời gian chờ yêu cầu bằng mili giây mcp.instance.validation.error.empty.url=Mẫu URL không được để trống -mcp.instance.validation.error.invalid.url=Mẫu URL phải bắt đầu bằng http:// hoặc https:// +mcp.instance.validation.error.invalid.url=Mẫu URL phải bắt đầu bằng http\:// hoặc https\:// # MCP Integrations (Project View) mcp.instance.delete.tooltip=Xóa instance MCP @@ -1161,7 +1160,7 @@ mcp.instance.field.serverId=Loại máy chủ # Add MCP Integration Dialog mcp.instance.name=Tên MCP -mcp.instance.name.placeholder=Ví dụ: Cơ sở dữ liệu sản xuất, Tệp dự án +mcp.instance.name.placeholder=Ví dụ\: Cơ sở dữ liệu sản xuất, Tệp dự án mcp.instance.tools.title=Các công cụ có sẵn mcp.instance.tools.count={0} công cụ có sẵn mcp.instance.tool.strategy.intent=Dựa trên Ý định @@ -1200,7 +1199,7 @@ mcp.tools.dialog.search.count={0} trên {1} công cụ mcp.tools.dialog.search.empty=Không có công cụ nào khớp với tìm kiếm của bạn mcp.tools.dialog.export=Xuất công cụ mcp.tools.dialog.export.success=Các công cụ đã được xuất tới {0} -mcp.tools.dialog.export.failed=Lỗi khi xuất công cụ: {0} +mcp.tools.dialog.export.failed=Lỗi khi xuất công cụ\: {0} # MCP Server Catalog Dialog mcp.catalog.dialog.title=Thêm Máy chủ MCP @@ -1256,7 +1255,7 @@ file.viewer.close=Đóng trình xem file.viewer.open.external=Mở bên ngoài file.viewer.binary=Tệp nhị phân — không thể xem trước dưới dạng văn bản. file.viewer.too.large=Tệp quá lớn để xem trước ({0} KB). Tối đa là 512 KB. -file.viewer.error=Không thể đọc tệp: {0} +file.viewer.error=Không thể đọc tệp\: {0} file.viewer.select.prompt=Chọn một tệp từ cây bên trên để xem trước nội dung # Project Side Panel @@ -1269,11 +1268,10 @@ panel.reindex.confirm.message="{0}" đang được lập chỉ mục. Dừng qu panel.reindex.confirm.button=Dừng và lập chỉ mục lại panel.reindex.confirm.cancel=Hủy panel.collapse=Thu gọn bảng điều khiển -panel.collapse=Thu gọn bảng điều khiển # RAG Status rag.status.started=Bắt đầu lập chỉ mục -rag.status.inprogress=Đang lập chỉ mục: {0}% +rag.status.inprogress=Đang lập chỉ mục\: {0}% rag.status.inprogress.unknown=Đang lập chỉ mục... rag.status.queued=Đang xếp hàng — đang chờ dự án khác hoàn tất việc lập chỉ mục rag.status.ready=Sẵn sàng @@ -1323,7 +1321,7 @@ plans.editor.label=Nội dung YAML plans.editor.placeholder=Dán hoặc nhập YAML kế hoạch của bạn tại đây... plans.editor.valid=YAML hợp lệ plans.editor.hint.title=Tham khảo -plans.editor.hint.fields=Bắt buộc: id, name, steps\nTùy chọn: description, icon, inputs, workflow\nLoại bước: text, multiline, toggle, number\nLoại quy trình: sequence, parallel, conditional +plans.editor.hint.fields=Bắt buộc\: id, name, steps\nTùy chọn\: description, icon, inputs, workflow\nLoại bước\: text, multiline, toggle, number\nLoại quy trình\: sequence, parallel, conditional plans.editor.menu.edit=Chỉnh sửa YAML plans.editor.ai.label=Tạo bằng AI plans.editor.ai.placeholder=Mô tả những gì bạn muốn kế hoạch này thực hiện bằng ngôn ngữ đơn giản... @@ -1383,12 +1381,12 @@ skills.view.panel.collapse=Thu gọn bảng skills.view.panel.expand=Mở rộng bảng skills.view.tab.skills=Kỹ năng skills.view.tab.workspace=Không gian làm việc -skills.view.last.run=Lần chạy cuối: {0} +skills.view.last.run=Lần chạy cuối\: {0} skills.view.category.uncategorized=Khác skills.view.search.placeholder=Tìm kiếm kỹ năng ... skills.view.search.clear=Xóa tìm kiếm skills.view.context.placeholder=Bạn muốn làm gì? (tùy chọn) -skills.view.command.mode.hint=Chế độ lệnh: đầu vào bắt đầu bằng / sẽ được chạy như lệnh tác nhân. +skills.view.command.mode.hint=Chế độ lệnh\: đầu vào bắt đầu bằng / sẽ được chạy như lệnh tác nhân. skills.view.system.prompt.preview=System Prompt skills.view.response.title=Phản hồi skills.view.followup.label=Theo dõi @@ -1398,7 +1396,7 @@ skills.view.history.empty=Chưa có lượt chạy nào skills.view.copy=Sao chép skills.view.system.prompt.file=tệp skills.view.system.prompt.files=tệp -skills.view.system.prompt.also.included=Cũng được bao gồm trong ngữ cảnh agent: +skills.view.system.prompt.also.included=Cũng được bao gồm trong ngữ cảnh agent\: skills.view.docs.tooltip=Xem Hướng dẫn Kỹ năng skills.view.mode.agentic=Tác nhân skills.view.mode.manual=Thủ công @@ -1430,7 +1428,7 @@ onboarding.step.language.label=Ngôn ngữ # Onboarding Step 1: Analytics onboarding.step.analytics.title=Giúp Askimo tốt hơn cho mọi người onboarding.step.analytics.description=Askimo là miễn phí và mã nguồn mở. Chia sẻ dữ liệu sử dụng ẩn danh là cách đóng góp nhỏ bé. Nó giúp chúng tôi biết tính năng nào nên phát triển tiếp theo. -onboarding.step.analytics.collected.yes.features=✅ Tính năng nào được dùng (ví dụ: RAG, công cụ MCP, Kế hoạch, Kỹ năng) +onboarding.step.analytics.collected.yes.features=✅ Tính năng nào được dùng (ví dụ\: RAG, công cụ MCP, Kế hoạch, Kỹ năng) onboarding.step.analytics.collected.yes.version=✅ Phiên bản ứng dụng và loại hệ điều hành onboarding.step.analytics.collected.no.conversations=❌ Không lấy nội dung hội thoại hay prompt onboarding.step.analytics.collected.no.personal=❌ Không bao giờ có dữ liệu cá nhân, tệp hay API key @@ -1443,7 +1441,7 @@ onboarding.step.analytics.section.never=Những gì chúng tôi không bao giờ onboarding.step.analytics.toggle.subtitle=Giúp chúng tôi tập trung vào những gì quan trọng nhất · có thể thay đổi bất cứ lúc nào trong Cài đặt → Nâng cao # Onboarding Step 1: Welcome -onboarding.step.welcome.title=👋 Chào mừng đến với Askimo! +onboarding.step.welcome.title=👋 Chào mừng đến với Askimo\! onboarding.step.welcome.description=Trợ lý AI cá nhân cho bạn. Trò chuyện với nhiều mô hình AI, tổ chức tri thức trong dự án, và tự động hóa công việc với kỹ năng và kế hoạch. onboarding.step.welcome.feature1.title=💬 Chat với AI onboarding.step.welcome.feature1.description=Đặt câu hỏi, nhận trợ giúp cho công việc hoặc trò chuyện với bất kỳ mô hình AI nào. @@ -1470,9 +1468,8 @@ onboarding.step.directives.feature2.description=Câu hỏi mơ hồ thì câu tr onboarding.step.directives.feature3.title=Chuyên gia phù hợp cho từng công việc onboarding.step.directives.feature3.description=Cần gia sư kiên nhẫn để học và người review code thẳng thắn khi debug? Giữ chỉ dẫn riêng biệt để AI vào đúng vai cho từng nhiệm vụ. onboarding.step.directives.link=Xem ví dụ và mẹo - # Onboarding Step 6: Ready -onboarding.step.ready.title=🚀 Mọi thứ đã sẵn sàng! +onboarding.step.ready.title=🚀 Mọi thứ đã sẵn sàng\! onboarding.step.ready.description=Bạn đã cấu hình xong. Hãy bắt đầu chat đầu tiên hoặc khám phá các tài nguyên bên dưới. onboarding.step.ready.link.docs=📚 Xem tài liệu onboarding.step.ready.link.providers=🔧 Cấu hình nhà cung cấp AI @@ -1482,16 +1479,16 @@ onboarding.step.ready.link.github=⭐ Star cho chúng tôi trên GitHub onboarding.step.persona.title=🎯 Bạn chủ yếu muốn làm gì? onboarding.step.persona.description=Chọn tùy chọn nghe giống công việc của bạn nhất. Askimo sẽ hiển thị các tính năng phù hợp nhất. Bạn luôn có thể thay đổi điều này từ menu Xem. onboarding.step.persona.developer.description=Đọc và viết mã, tái cấu trúc tệp, tạo giàn giáo (scaffolding) hoặc chạy các tác vụ đại lý trên dự án cục bộ của bạn. -onboarding.step.persona.developer.features=Kích hoạt: Skills (Gemini CLI, Claude Code), Projects +onboarding.step.persona.developer.features=Kích hoạt\: Skills (Gemini CLI, Claude Code), Projects onboarding.step.persona.researcher.description=Nghiên cứu các chủ đề, phân tích dữ liệu, viết báo cáo có cấu trúc và nhận câu trả lời dựa trên kiến thức. -onboarding.step.persona.researcher.features=Kích hoạt: Plans, Projects (RAG) +onboarding.step.persona.researcher.features=Kích hoạt\: Plans, Projects (RAG) onboarding.step.persona.manager.description=Soạn thảo email, xử lý ghi chú cuộc họp, viết báo cáo trạng thái hoặc chạy quy trình làm việc nội dung nhiều bước. -onboarding.step.persona.manager.features=Kích hoạt: Plans +onboarding.step.persona.manager.features=Kích hoạt\: Plans onboarding.step.persona.everything.description=Tôi làm nhiều việc kết hợp — hãy cho tôi xem tất cả các tính năng và tôi sẽ quyết định sử dụng gì. -onboarding.step.persona.everything.features=Kích hoạt: Skills, Plans, Projects, MCP, RAG +onboarding.step.persona.everything.features=Kích hoạt\: Skills, Plans, Projects, MCP, RAG # Persona labels persona.developer=💻 Viết và đánh giá mã persona.researcher=🔬 Nghiên cứu và phân tích persona.manager=📋 Viết và tổ chức -persona.everything=⚡ Tôi làm nhiều việc kết hợp \ No newline at end of file +persona.everything=⚡ Tôi làm nhiều việc kết hợp From 629d71d3ca6b7d94e15aea92924f3943bc4ec118 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 30 Jun 2026 16:17:23 -0700 Subject: [PATCH 010/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 2e2bd5da7..8c6fee069 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -39,7 +39,6 @@ menu.help.gettingstarted=Getting Started menu.help.release.notes=Release Notes menu.help.star.github=⭐ Star on GitHub menu.help.discord=💬 Join Discord Community -menu.help.discord=💬 Join Discord Community menu.help.share=🗣 Share Askimo menu.help.share.x=Share on X / Twitter menu.help.share.linkedin=Share on LinkedIn @@ -955,6 +954,7 @@ export.format.html.benefit.4=Easy to share error.network=⚠️ Cannot connect to AI service{endpoint}\n\nPlease check:\n• Your internet connection\n• AI service URL (check settings)\n• Firewall settings\n• Service availability error.authentication=⚠️ API key is invalid or missing{provider}\n\nFix this by setting your API key in Settings. error.model_configuration=⚠️ Model configuration error: {issue}\n\nFix this by:\n1. Opening Settings\n2. Selecting an AI provider\n3. Choosing a model from the list +error.provider_not_configured=⚠️ No AI provider configured.\n\nTo start chatting:\n1. Open Settings\n2. Select an AI provider (OpenAI, Ollama, Anthropic, etc.)\n3. Enter your API key or configure the connection error.rate_limit=⚠️ Rate limit exceeded\n{retryAfter}\n\nYou've reached your API usage limit. Please wait before sending more messages. error.insufficient_credits=⚠️ Insufficient API credits\n\nYour credit balance has been exhausted.\n\nPlease go to Plans & Billing to top up your credits.\n\nerror.timeout=⚠️ Request timed out after {timeout} seconds\n\nThis might be due to:\n• High server load - try again in a moment\n• Complex query - try simplifying\n• Network latency error.timeout=⚠️ Request timed out after {timeout} seconds\n\nPossible causes:\n• High server load – please try again later\n• Complex request – simplify your input\n• Network delays From 3ad12d14f70d862cd67111a2a4bdae1157450b4d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:34:32 -0700 Subject: [PATCH 011/251] New translations messages.properties (French) [ci skip] --- .../resources/i18n/messages_fr.properties | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index da0a1e0cd..6d7711427 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -406,6 +406,31 @@ settings.proxy.password.placeholder=Facultatif settings.proxy.system.info=ℹ️ Utilisation des paramètres proxy du système d’exploitation settings.proxy.socks5.no.auth.info=ℹ️ L’authentification SOCKS5 n’est actuellement pas prise en charge. Utilisez un proxy SOCKS5 sans authentification ou créez un ticket sur GitHub si vous avez besoin de cette fonctionnalité. +# Web Search Settings +settings.web_search=Web Search +settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. +settings.web_search.title=Web Search Configuration +settings.web_search.enabled=Enabled +settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. +settings.web_search.backend=Search Backend +settings.web_search.backend.duckduckgo=DuckDuckGo +settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.brave=Brave Search +settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.tavily=Tavily +settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.searxng=SearxNG +settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. +settings.web_search.api_key=API Key +settings.web_search.api_key.placeholder=Paste your API key here +settings.web_search.get_api_key=Get a free API key ↗ +settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.endpoint.placeholder=https\://search.example.com +settings.web_search.test=Test Search +settings.web_search.test.running=Testing... +settings.web_search.test.success=✅ Search is working +settings.web_search.test.fail=❌ {0} + # User Profile user.profile.default_name=Utilisateur invité user.profile.menu=Menu du profil utilisateur @@ -645,6 +670,8 @@ chat.reasoning.effort.medium.description=Profondeur et vitesse équilibrées. Co chat.reasoning.effort.high=Élevé chat.reasoning.effort.high.description=Raisonnement approfondi, coût plus élevé. Idéal pour la résolution de problèmes complexes. chat.input.placeholder=Tapez votre message... (Entrée pour envoyer, Shift+Entrée pour une nouvelle ligne) +chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page +chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=Sélectionner un ou plusieurs fichiers chat.attachment.remove=Supprimer la pièce jointe chat.attachment.preview.loading=Chargement de l'aperçu… From 8c56346b5fe536a188a0f75f4708bf7ec6db8a98 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:34:33 -0700 Subject: [PATCH 012/251] New translations messages.properties (Spanish) [ci skip] --- .../resources/i18n/messages_es.properties | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index ded48d564..745b73689 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -406,6 +406,31 @@ settings.proxy.password.placeholder=Opcional settings.proxy.system.info=ℹ️ Se utilizan los ajustes de proxy del sistema operativo settings.proxy.socks5.no.auth.info=ℹ️ La autenticación SOCKS5 no es compatible actualmente. Use un proxy SOCKS5 sin autenticación o cree un issue en GitHub si necesita esta función. +# Web Search Settings +settings.web_search=Web Search +settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. +settings.web_search.title=Web Search Configuration +settings.web_search.enabled=Enabled +settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. +settings.web_search.backend=Search Backend +settings.web_search.backend.duckduckgo=DuckDuckGo +settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.brave=Brave Search +settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.tavily=Tavily +settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.searxng=SearxNG +settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. +settings.web_search.api_key=API Key +settings.web_search.api_key.placeholder=Paste your API key here +settings.web_search.get_api_key=Get a free API key ↗ +settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.endpoint.placeholder=https\://search.example.com +settings.web_search.test=Test Search +settings.web_search.test.running=Testing... +settings.web_search.test.success=✅ Search is working +settings.web_search.test.fail=❌ {0} + # User Profile user.profile.default_name=Usuario invitado user.profile.menu=Menú de perfil de usuario @@ -645,6 +670,8 @@ chat.reasoning.effort.medium.description=Profundidad y velocidad equilibradas. A chat.reasoning.effort.high=Alto chat.reasoning.effort.high.description=Razonamiento exhaustivo, mayor costo. Ideal para la resolución de problemas complejos. chat.input.placeholder=Escribe tu mensaje... (Enter para enviar, Shift+Enter para nueva línea) +chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page +chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=Seleccionar archivo(s) chat.attachment.remove=Eliminar archivo adjunto chat.attachment.preview.loading=Cargando vista previa… From d1d3075f1c69e0aae696f277e0e12d4ce00a77b9 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:34:34 -0700 Subject: [PATCH 013/251] New translations messages.properties (German) [ci skip] --- .../resources/i18n/messages_de.properties | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index b94b95fd5..78cf2639d 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -406,6 +406,31 @@ settings.proxy.password.placeholder=Optional settings.proxy.system.info=ℹ️ System-Proxy-Einstellungen aus der Betriebssystemkonfiguration werden verwendet settings.proxy.socks5.no.auth.info=ℹ️ SOCKS5-Authentifizierung wird derzeit nicht unterstützt. Verwenden Sie einen SOCKS5-Proxy ohne Authentifizierung oder erstellen Sie ein Issue auf GitHub, wenn Sie diese Funktion benötigen. +# Web Search Settings +settings.web_search=Web Search +settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. +settings.web_search.title=Web Search Configuration +settings.web_search.enabled=Enabled +settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. +settings.web_search.backend=Search Backend +settings.web_search.backend.duckduckgo=DuckDuckGo +settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.brave=Brave Search +settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.tavily=Tavily +settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.searxng=SearxNG +settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. +settings.web_search.api_key=API Key +settings.web_search.api_key.placeholder=Paste your API key here +settings.web_search.get_api_key=Get a free API key ↗ +settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.endpoint.placeholder=https\://search.example.com +settings.web_search.test=Test Search +settings.web_search.test.running=Testing... +settings.web_search.test.success=✅ Search is working +settings.web_search.test.fail=❌ {0} + # User Profile user.profile.default_name=Gastbenutzer user.profile.menu=Benutzerprofil-Menü @@ -645,6 +670,8 @@ chat.reasoning.effort.medium.description=Ausgewogene Tiefe und Geschwindigkeit. chat.reasoning.effort.high=Hoch chat.reasoning.effort.high.description=Gründliches Nachdenken, höhere Kosten. Am besten für komplexe Problemlösungen. chat.input.placeholder=Nachricht eingeben... (Enter zum Senden, Shift+Enter für neue Zeile) +chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page +chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=Datei(en) auswählen chat.attachment.remove=Anhang entfernen chat.attachment.preview.loading=Vorschau wird geladen… From e97cc2df8dfb9113e22acf8d3d81154955f931e0 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:34:36 -0700 Subject: [PATCH 014/251] New translations messages.properties (Japanese) [ci skip] --- .../resources/i18n/messages_ja_JP.properties | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 695f1cae9..4cb6881b3 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -406,6 +406,31 @@ settings.proxy.password.placeholder=任意 settings.proxy.system.info=ℹ️ オペレーティングシステムの設定からシステムプロキシを使用しています settings.proxy.socks5.no.auth.info=ℹ️ 現在、SOCKS5 認証はサポートされていません。認証なしの SOCKS5 プロキシを使用するか、この機能が必要な場合は GitHub で Issue を作成してください。 +# Web Search Settings +settings.web_search=Web Search +settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. +settings.web_search.title=Web Search Configuration +settings.web_search.enabled=Enabled +settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. +settings.web_search.backend=Search Backend +settings.web_search.backend.duckduckgo=DuckDuckGo +settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.brave=Brave Search +settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.tavily=Tavily +settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.searxng=SearxNG +settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. +settings.web_search.api_key=API Key +settings.web_search.api_key.placeholder=Paste your API key here +settings.web_search.get_api_key=Get a free API key ↗ +settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.endpoint.placeholder=https\://search.example.com +settings.web_search.test=Test Search +settings.web_search.test.running=Testing... +settings.web_search.test.success=✅ Search is working +settings.web_search.test.fail=❌ {0} + # User Profile user.profile.default_name=ゲストユーザー user.profile.menu=ユーザープロファイルメニュー @@ -645,6 +670,8 @@ chat.reasoning.effort.medium.description=深さと速度のバランスが取れ chat.reasoning.effort.high=高 chat.reasoning.effort.high.description=徹底的な推論を行い、コストが高くなります。複雑な問題解決に最適です。 chat.input.placeholder=メッセージを入力...(Enter 送信、Shift+Enter 改行) +chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page +chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=ファイルを選択(複数可) chat.attachment.remove=添付ファイルを削除 chat.attachment.preview.loading=プレビューを読み込み中… From 3b4e276056755ea6f90cc194a9ff384f946e8bd0 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:34:37 -0700 Subject: [PATCH 015/251] New translations messages.properties (Korean) [ci skip] --- .../resources/i18n/messages_ko_KR.properties | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 10ebbb64c..9ec296631 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -406,6 +406,31 @@ settings.proxy.password.placeholder=선택 사항 settings.proxy.system.info=ℹ️ 운영체제 설정의 시스템 프록시를 사용 중입니다 settings.proxy.socks5.no.auth.info=ℹ️ 현재 SOCKS5 인증은 지원되지 않습니다. 인증 없이 SOCKS5 프록시를 사용하거나 이 기능이 필요하다면 GitHub에 이슈를 등록해 주세요. +# Web Search Settings +settings.web_search=Web Search +settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. +settings.web_search.title=Web Search Configuration +settings.web_search.enabled=Enabled +settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. +settings.web_search.backend=Search Backend +settings.web_search.backend.duckduckgo=DuckDuckGo +settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.brave=Brave Search +settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.tavily=Tavily +settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.searxng=SearxNG +settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. +settings.web_search.api_key=API Key +settings.web_search.api_key.placeholder=Paste your API key here +settings.web_search.get_api_key=Get a free API key ↗ +settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.endpoint.placeholder=https\://search.example.com +settings.web_search.test=Test Search +settings.web_search.test.running=Testing... +settings.web_search.test.success=✅ Search is working +settings.web_search.test.fail=❌ {0} + # User Profile user.profile.default_name=게스트 사용자 user.profile.menu=사용자 프로필 메뉴 @@ -645,6 +670,8 @@ chat.reasoning.effort.medium.description=깊이와 속도의 균형. 대부분 chat.reasoning.effort.high=높음 chat.reasoning.effort.high.description=철저한 추론, 높은 비용. 복잡한 문제 해결에 가장 적합합니다. chat.input.placeholder=메시지 입력... (Enter 전송, Shift+Enter 줄바꿈) +chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page +chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=파일 선택 (여러 개 선택 가능) chat.attachment.remove=첨부 파일 삭제 chat.attachment.preview.loading=미리보기 불러오는 중… From f6723d8826927d85c1fd807c57b31421b2064f59 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:34:39 -0700 Subject: [PATCH 016/251] New translations messages.properties (Portuguese) [ci skip] --- .../resources/i18n/messages_pt.properties | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index 8a8a9c25f..1b27b72a5 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -406,6 +406,31 @@ settings.proxy.password.placeholder=Optional settings.proxy.system.info=ℹ️ Using system proxy settings from your operating system configuration settings.proxy.socks5.no.auth.info=ℹ️ SOCKS5 authentication is not currently supported. Use SOCKS5 proxy without authentication, or create an issue on GitHub if you need this feature. +# Web Search Settings +settings.web_search=Web Search +settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. +settings.web_search.title=Web Search Configuration +settings.web_search.enabled=Enabled +settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. +settings.web_search.backend=Search Backend +settings.web_search.backend.duckduckgo=DuckDuckGo +settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.brave=Brave Search +settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.tavily=Tavily +settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.searxng=SearxNG +settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. +settings.web_search.api_key=API Key +settings.web_search.api_key.placeholder=Paste your API key here +settings.web_search.get_api_key=Get a free API key ↗ +settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.endpoint.placeholder=https\://search.example.com +settings.web_search.test=Test Search +settings.web_search.test.running=Testing... +settings.web_search.test.success=✅ Search is working +settings.web_search.test.fail=❌ {0} + # User Profile user.profile.default_name=Guest User user.profile.menu=User Profile Menu @@ -645,6 +670,8 @@ chat.reasoning.effort.medium.description=Balanced depth and speed. Suitable for chat.reasoning.effort.high=High chat.reasoning.effort.high.description=Thorough reasoning, higher cost. Best for complex problem-solving. chat.input.placeholder=Type your message... (Enter to send, Shift+Enter for new line) +chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page +chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=Select File(s) chat.attachment.remove=Remove attachment chat.attachment.preview.loading=Loading preview… From 1aa4350521be73c80c7a7ff36ae735e88d9aefab Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:34:40 -0700 Subject: [PATCH 017/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../resources/i18n/messages_zh_CN.properties | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index b2b9d7952..c62158a4b 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -406,6 +406,31 @@ settings.proxy.password.placeholder=可选 settings.proxy.system.info=ℹ️ 正在使用操作系统配置中的系统代理设置 settings.proxy.socks5.no.auth.info=ℹ️ 当前尚不支持 SOCKS5 认证。请使用无需认证的 SOCKS5 代理,或如果您需要此功能,请在 GitHub 上创建 issue。 +# Web Search Settings +settings.web_search=Web Search +settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. +settings.web_search.title=Web Search Configuration +settings.web_search.enabled=Enabled +settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. +settings.web_search.backend=Search Backend +settings.web_search.backend.duckduckgo=DuckDuckGo +settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.brave=Brave Search +settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.tavily=Tavily +settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.searxng=SearxNG +settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. +settings.web_search.api_key=API Key +settings.web_search.api_key.placeholder=Paste your API key here +settings.web_search.get_api_key=Get a free API key ↗ +settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.endpoint.placeholder=https\://search.example.com +settings.web_search.test=Test Search +settings.web_search.test.running=Testing... +settings.web_search.test.success=✅ Search is working +settings.web_search.test.fail=❌ {0} + # User Profile user.profile.default_name=访客用户 user.profile.menu=用户资料菜单 @@ -645,6 +670,8 @@ chat.reasoning.effort.medium.description=深度与速度平衡。适合大多数 chat.reasoning.effort.high=高 chat.reasoning.effort.high.description=彻底推理,成本较高。最适合解决复杂问题。 chat.input.placeholder=输入消息...(Enter 发送,Shift+Enter 换行) +chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page +chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=选择文件(可多选) chat.attachment.remove=移除附件 chat.attachment.preview.loading=正在加载预览… From f20052e9c1151d92fc7d52b685b70d35b80e6343 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:34:42 -0700 Subject: [PATCH 018/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../resources/i18n/messages_zh_TW.properties | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 45d8f0ea1..5db124be6 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -406,6 +406,31 @@ settings.proxy.password.placeholder=選用 settings.proxy.system.info=ℹ️ 正在使用作業系統設定中的系統代理 settings.proxy.socks5.no.auth.info=ℹ️ 目前尚未支援 SOCKS5 驗證。請使用不需驗證的 SOCKS5 代理,或若您需要此功能,請在 GitHub 上建立 issue。 +# Web Search Settings +settings.web_search=Web Search +settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. +settings.web_search.title=Web Search Configuration +settings.web_search.enabled=Enabled +settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. +settings.web_search.backend=Search Backend +settings.web_search.backend.duckduckgo=DuckDuckGo +settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.brave=Brave Search +settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.tavily=Tavily +settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.searxng=SearxNG +settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. +settings.web_search.api_key=API Key +settings.web_search.api_key.placeholder=Paste your API key here +settings.web_search.get_api_key=Get a free API key ↗ +settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.endpoint.placeholder=https\://search.example.com +settings.web_search.test=Test Search +settings.web_search.test.running=Testing... +settings.web_search.test.success=✅ Search is working +settings.web_search.test.fail=❌ {0} + # User Profile user.profile.default_name=訪客使用者 user.profile.menu=使用者個人資料選單 @@ -645,6 +670,8 @@ chat.reasoning.effort.medium.description=深度與速度平衡。適合大多數 chat.reasoning.effort.high=高 chat.reasoning.effort.high.description=徹底推理,成本較高。最適合解決複雜問題。 chat.input.placeholder=輸入訊息...(Enter 送出,Shift+Enter 換行) +chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page +chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=選擇檔案(可多選) chat.attachment.remove=移除附件 chat.attachment.preview.loading=正在載入預覽… From df352fb2c105a4fbc9a49ca1341d4ccdcb3c86fc Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:34:43 -0700 Subject: [PATCH 019/251] New translations messages.properties (Vietnamese) [ci skip] --- .../resources/i18n/messages_vi_VN.properties | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index e06026861..f26c92e94 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -406,6 +406,31 @@ settings.proxy.password.placeholder=Tùy chọn settings.proxy.system.info=ℹ️ Đang sử dụng cài đặt proxy của hệ điều hành settings.proxy.socks5.no.auth.info=ℹ️ Hiện tại chưa hỗ trợ xác thực SOCKS5. Vui lòng sử dụng proxy SOCKS5 không cần xác thực hoặc tạo issue trên GitHub nếu bạn cần tính năng này. +# Web Search Settings +settings.web_search=Web Search +settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. +settings.web_search.title=Web Search Configuration +settings.web_search.enabled=Enabled +settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. +settings.web_search.backend=Search Backend +settings.web_search.backend.duckduckgo=DuckDuckGo +settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.brave=Brave Search +settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.tavily=Tavily +settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.searxng=SearxNG +settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. +settings.web_search.api_key=API Key +settings.web_search.api_key.placeholder=Paste your API key here +settings.web_search.get_api_key=Get a free API key ↗ +settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.endpoint.placeholder=https\://search.example.com +settings.web_search.test=Test Search +settings.web_search.test.running=Testing... +settings.web_search.test.success=✅ Search is working +settings.web_search.test.fail=❌ {0} + # User Profile user.profile.default_name=Người dùng khách user.profile.menu=Menu hồ sơ người dùng @@ -645,6 +670,8 @@ chat.reasoning.effort.medium.description=Cân bằng giữa độ sâu và tốc chat.reasoning.effort.high=Cao chat.reasoning.effort.high.description=Suy luận kỹ lưỡng, chi phí cao hơn. Tốt nhất cho việc giải quyết các vấn đề phức tạp. chat.input.placeholder=Nhập tin nhắn... (Enter để gửi, Shift+Enter để xuống dòng) +chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page +chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=Chọn tệp (nhiều tệp) chat.attachment.remove=Xóa tệp đính kèm chat.attachment.preview.loading=Đang tải bản xem trước… From 718f17871381e7f0554fa4368d35d8023d2ff25d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 1 Jul 2026 16:47:23 -0700 Subject: [PATCH 020/251] Update source file messages.properties [ci skip] --- .../main/resources/i18n/messages.properties | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 8c6fee069..a40e53c97 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -403,6 +403,31 @@ settings.proxy.password.placeholder=Optional settings.proxy.system.info=ℹ️ Using system proxy settings from your operating system configuration settings.proxy.socks5.no.auth.info=ℹ️ SOCKS5 authentication is not currently supported. Use SOCKS5 proxy without authentication, or create an issue on GitHub if you need this feature. +# Web Search Settings +settings.web_search=Web Search +settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. +settings.web_search.title=Web Search Configuration +settings.web_search.enabled=Enabled +settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. +settings.web_search.backend=Search Backend +settings.web_search.backend.duckduckgo=DuckDuckGo +settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.brave=Brave Search +settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.tavily=Tavily +settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.searxng=SearxNG +settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. +settings.web_search.api_key=API Key +settings.web_search.api_key.placeholder=Paste your API key here +settings.web_search.get_api_key=Get a free API key ↗ +settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.endpoint.placeholder=https://search.example.com +settings.web_search.test=Test Search +settings.web_search.test.running=Testing... +settings.web_search.test.success=✅ Search is working +settings.web_search.test.fail=❌ {0} + # User Profile user.profile.default_name=Guest User user.profile.menu=User Profile Menu @@ -642,6 +667,8 @@ chat.reasoning.effort.medium.description=Balanced depth and speed. Suitable for chat.reasoning.effort.high=High chat.reasoning.effort.high.description=Thorough reasoning, higher cost. Best for complex problem-solving. chat.input.placeholder=Type your message... (Enter to send, Shift+Enter for new line) +chat.input.placeholder.hint.search=Try: "search the web for…" or paste a URL to read any page +chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=Select File(s) chat.attachment.remove=Remove attachment chat.attachment.preview.loading=Loading preview\u2026 From 39b26f7dc3d2154ff9ecce5a6a8b8d7aa22ae98c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:06:13 -0700 Subject: [PATCH 021/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index a40e53c97..616bcfeb2 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -915,6 +915,12 @@ system.diagnostics.jvm.memory=JVM Memory (used / total) system.diagnostics.cpu.usage=CPU Usage system.diagnostics.telemetry=Telemetry +# Telemetry export +telemetry.export.csv=Export CSV +telemetry.export.dialog.title=Export Telemetry as ZIP +telemetry.export.error.title=Export Failed +telemetry.export.error.message=Failed to export telemetry data: {0} + # Telemetry telemetry.reset=Reset telemetry data telemetry.title=📊 Session Metrics From 77b5a0a9ae04151238b260944d48cd3482594d13 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:06:15 -0700 Subject: [PATCH 022/251] New translations messages.properties (French) [ci skip] --- .../src/main/resources/i18n/messages_fr.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 6d7711427..d7cfbfa63 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -918,6 +918,12 @@ system.diagnostics.jvm.memory=Mémoire JVM (utilisée / totale) system.diagnostics.cpu.usage=Utilisation du CPU system.diagnostics.telemetry=Télémétrie +# Telemetry export +telemetry.export.csv=Exporter CSV +telemetry.export.dialog.title=Exporter la télémétrie en ZIP +telemetry.export.error.title=Échec de l'exportation +telemetry.export.error.message=Échec de l''exportation des données de télémétrie \: {0} + # Telemetry telemetry.reset=Réinitialiser les données de télémétrie telemetry.title=📊 Métriques de session From 59ac25504bcefbc27abd9f324294fa5ef59e8a4f Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:06:17 -0700 Subject: [PATCH 023/251] New translations messages.properties (Spanish) [ci skip] --- .../src/main/resources/i18n/messages_es.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 745b73689..e1014bb11 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -918,6 +918,12 @@ system.diagnostics.jvm.memory=Memoria JVM (usada / total) system.diagnostics.cpu.usage=Uso de CPU system.diagnostics.telemetry=Telemetría +# Telemetry export +telemetry.export.csv=Exportar CSV +telemetry.export.dialog.title=Exportar Telemetría como ZIP +telemetry.export.error.title=Error de Exportación +telemetry.export.error.message=Error al exportar datos de telemetría\: {0} + # Telemetry telemetry.reset=Restablecer datos de telemetría telemetry.title=📊 Métricas de sesión From e7b3fd5d5af420c163cb57492283ae498d55b65c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:06:18 -0700 Subject: [PATCH 024/251] New translations messages.properties (German) [ci skip] --- .../src/main/resources/i18n/messages_de.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 78cf2639d..44546bd35 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -918,6 +918,12 @@ system.diagnostics.jvm.memory=JVM-Speicher (verwendet / gesamt) system.diagnostics.cpu.usage=CPU-Auslastung system.diagnostics.telemetry=Telemetrie +# Telemetry export +telemetry.export.csv=CSV exportieren +telemetry.export.dialog.title=Telemetrie als ZIP exportieren +telemetry.export.error.title=Export fehlgeschlagen +telemetry.export.error.message=Telemetriedaten konnten nicht exportiert werden\: {0} + # Telemetry telemetry.reset=Telemetriedaten zurücksetzen telemetry.title=📊 Sitzungsmetriken From 567497e66a1179206e9d32d3d3d148af9e96cae2 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:06:20 -0700 Subject: [PATCH 025/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 4cb6881b3..59c24a9b8 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -918,6 +918,12 @@ system.diagnostics.jvm.memory=JVM メモリ (使用済み / 合計) system.diagnostics.cpu.usage=CPU 使用率 system.diagnostics.telemetry=テレメトリ +# Telemetry export +telemetry.export.csv=CSV エクスポート +telemetry.export.dialog.title=テレメトリを ZIP としてエクスポート +telemetry.export.error.title=エクスポート失敗 +telemetry.export.error.message=テレメトリデータのエクスポートに失敗しました\: {0} + # Telemetry telemetry.reset=テレメトリデータをリセット telemetry.title=📊 セッション指標 From 991b1ff9977aa905756e383a9db8a64e80903e44 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:06:21 -0700 Subject: [PATCH 026/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 9ec296631..ba6e92f9d 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -918,6 +918,12 @@ system.diagnostics.jvm.memory=JVM 메모리 (사용됨 / 전체) system.diagnostics.cpu.usage=CPU 사용량 system.diagnostics.telemetry=텔레메트리 +# Telemetry export +telemetry.export.csv=CSV 내보내기 +telemetry.export.dialog.title=텔레메트리를 ZIP으로 내보내기 +telemetry.export.error.title=내보내기 실패 +telemetry.export.error.message=텔레메트리 데이터 내보내기 실패\: {0} + # Telemetry telemetry.reset=텔레메트리 데이터 재설정 telemetry.title=📊 세션 지표 From 92eb377b26598ab4a2c70ffb251024f2f1ec1d0a Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:06:23 -0700 Subject: [PATCH 027/251] New translations messages.properties (Portuguese) [ci skip] --- .../src/main/resources/i18n/messages_pt.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index 1b27b72a5..e79b263f5 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -918,6 +918,12 @@ system.diagnostics.jvm.memory=JVM Memory (used / total) system.diagnostics.cpu.usage=CPU Usage system.diagnostics.telemetry=Telemetry +# Telemetry export +telemetry.export.csv=Export CSV +telemetry.export.dialog.title=Export Telemetry as ZIP +telemetry.export.error.title=Export Failed +telemetry.export.error.message=Failed to export telemetry data\: {0} + # Telemetry telemetry.reset=Reset telemetry data telemetry.title=📊 Session Metrics From 37d586815774c43c2b27b1ffb5c7163347143fd8 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:06:24 -0700 Subject: [PATCH 028/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index c62158a4b..2b216711a 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -918,6 +918,12 @@ system.diagnostics.jvm.memory=JVM 内存 (已用 / 总计) system.diagnostics.cpu.usage=CPU 使用率 system.diagnostics.telemetry=遥测 +# Telemetry export +telemetry.export.csv=导出 CSV +telemetry.export.dialog.title=将遥测数据导出为 ZIP +telemetry.export.error.title=导出失败 +telemetry.export.error.message=导出遥测数据失败:{0} + # Telemetry telemetry.reset=重置遥测数据 telemetry.title=📊 会话指标 From df57b335f119d9c52a9187f85008d6b86b678073 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:06:25 -0700 Subject: [PATCH 029/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 5db124be6..16688a047 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -918,6 +918,12 @@ system.diagnostics.jvm.memory=JVM 記憶體 (已使用 / 總計) system.diagnostics.cpu.usage=CPU 使用率 system.diagnostics.telemetry=遙測 +# Telemetry export +telemetry.export.csv=匯出 CSV +telemetry.export.dialog.title=將遙測資料匯出為 ZIP +telemetry.export.error.title=匯出失敗 +telemetry.export.error.message=無法匯出遙測資料:{0} + # Telemetry telemetry.reset=重設遙測資料 telemetry.title=📊 工作階段指標 From 2da492a42f65a9306ac6a6ec1931dede5c953779 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:06:27 -0700 Subject: [PATCH 030/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index f26c92e94..5353c5dcb 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -918,6 +918,12 @@ system.diagnostics.jvm.memory=Bộ nhớ JVM (đã dùng / tổng) system.diagnostics.cpu.usage=Mức sử dụng CPU system.diagnostics.telemetry=Đo từ xa +# Telemetry export +telemetry.export.csv=Xuất CSV +telemetry.export.dialog.title=Xuất Dữ Liệu Đo Lường thành ZIP +telemetry.export.error.title=Xuất Thất Bại +telemetry.export.error.message=Không thể xuất dữ liệu đo lường\: {0} + # Telemetry telemetry.reset=Đặt lại dữ liệu telemetry telemetry.title=📊 Chỉ số phiên làm việc From 3cb82683983502eaeaf86142801bd4effdc868c5 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:15:42 -0700 Subject: [PATCH 031/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 616bcfeb2..e74c674ab 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -998,7 +998,7 @@ error.system=⚠️ System Error\n\nAn unexpected error occurred: {errorCode}\n\ error.model.not_available.title.chat=Model Not Available error.model.not_available.title.embedding=Embedding Model Not Available error.model.not_available.message.chat=Model ''{0}'' is not available. -error.model.not_available.message.embedding=Embedding model ''{0}'' is not available.\n\nPlease configure your embedding model properly. +error.model.not_available.message.embedding=Embedding model ''{0}'' is not available in your local provider.\n\nGo to Settings → AI Provider and select an available embedding model under the provider configuration card. error.model.not_available.config_link=Configure Embedding Model error.model.not_available.config_url=https://askimo.chat/docs/desktop/rag/#embedding-model-configuration From d977c73e108197ccfe8556ba3ea1b50a1901f6a0 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:15:45 -0700 Subject: [PATCH 032/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index d7cfbfa63..d9bd3beab 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -1001,7 +1001,7 @@ error.system=⚠️ Erreur système\n\nUne erreur inattendue est survenue \: {er error.model.not_available.title.chat=Modèle non disponible error.model.not_available.title.embedding=Modèle d’embedding non disponible error.model.not_available.message.chat=Le modèle ''{0}'' n’est pas disponible. -error.model.not_available.message.embedding=Le modèle d’embedding ''{0}'' n’est pas disponible.\n\nVeuillez configurer correctement votre modèle d’embedding. +error.model.not_available.message.embedding=Le modèle d’embedding ''{0}'' n’est pas disponible dans votre fournisseur local.\n\nAccédez à Paramètres → Fournisseur IA et sélectionnez un modèle d’embedding disponible dans la carte de configuration du fournisseur. error.model.not_available.config_link=Configurer le modèle d’embedding error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration From acc5a52f9997692468ad8fedaa386146ea7958ee Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:15:46 -0700 Subject: [PATCH 033/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index e1014bb11..07cd9743c 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -1001,7 +1001,7 @@ error.system=⚠️ Error del sistema\n\nOcurrió un error inesperado\: {errorCo error.model.not_available.title.chat=Modelo no disponible error.model.not_available.title.embedding=Modelo de incrustación no disponible error.model.not_available.message.chat=El modelo ''{0}'' no está disponible. -error.model.not_available.message.embedding=El modelo de incrustación ''{0}'' no está disponible.\n\nConfigura correctamente tu modelo de incrustación. +error.model.not_available.message.embedding=El modelo de incrustación ''{0}'' no está disponible en tu proveedor local.\n\nVe a Configuración → Proveedor IA y selecciona un modelo de incrustación disponible en la tarjeta de configuración del proveedor. error.model.not_available.config_link=Configurar modelo de incrustación error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration From 28c8d6f239668037e15b6000427cc37334786e87 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:15:47 -0700 Subject: [PATCH 034/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 44546bd35..087aced0b 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -1001,7 +1001,7 @@ error.system=⚠️ Systemfehler\n\nEin unerwarteter Fehler ist aufgetreten\: {e error.model.not_available.title.chat=Modell nicht verfügbar error.model.not_available.title.embedding=Einbettungsmodell nicht verfügbar error.model.not_available.message.chat=Das Modell ''{0}'' ist nicht verfügbar. -error.model.not_available.message.embedding=Das Einbettungsmodell ''{0}'' ist nicht verfügbar.\n\nBitte konfigurieren Sie Ihr Einbettungsmodell korrekt. +error.model.not_available.message.embedding=Das Einbettungsmodell ''{0}'' ist in Ihrem lokalen Anbieter nicht verfügbar.\n\nGehen Sie zu Einstellungen → KI-Anbieter und wählen Sie ein verfügbares Einbettungsmodell in der Anbieterkonfigurationskarte aus. error.model.not_available.config_link=Einbettungsmodell konfigurieren error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration From 59abcac086d5069a8dde4f12a057812b9cd7371f Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:15:49 -0700 Subject: [PATCH 035/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 59c24a9b8..a5b9e1bdd 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -1001,7 +1001,7 @@ error.system=⚠️ システムエラー\n\n予期しないエラーが発生 error.model.not_available.title.chat=モデルを利用できません error.model.not_available.title.embedding=埋め込みモデルを利用できません error.model.not_available.message.chat=モデル ''{0}'' は利用できません。 -error.model.not_available.message.embedding=埋め込みモデル ''{0}'' は利用できません。\n\n埋め込みモデルを正しく設定してください。 +error.model.not_available.message.embedding=埋め込みモデル ''{0}'' はローカルプロバイダーで利用できません。\n\n設定 → AIプロバイダー に移動し、プロバイダー設定カードから利用可能な埋め込みモデルを選択してください。 error.model.not_available.config_link=埋め込みモデルを設定 error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration From d8dd198f8ef3da7878405c0247f91ccd69377d27 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:15:51 -0700 Subject: [PATCH 036/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index ba6e92f9d..5e3ae0855 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -1001,7 +1001,7 @@ error.system=⚠️ 시스템 오류\n\n예기치 않은 오류가 발생했습 error.model.not_available.title.chat=모델을 사용할 수 없음 error.model.not_available.title.embedding=임베딩 모델을 사용할 수 없음 error.model.not_available.message.chat=모델 ''{0}''을(를) 사용할 수 없습니다. -error.model.not_available.message.embedding=임베딩 모델 ''{0}''을(를) 사용할 수 없습니다.\n\n임베딩 모델을 올바르게 설정하세요. +error.model.not_available.message.embedding=임베딩 모델 ''{0}''을(를) 로컬 프로바이더에서 사용할 수 없습니다.\n\n설정 → AI 프로바이더 로 이동하여 프로바이더 구성 카드에서 사용 가능한 임베딩 모델을 선택하세요. error.model.not_available.config_link=임베딩 모델 설정 error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration From 54630f7bc315e4921d51f2bc7621c9d8734b567a Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:15:52 -0700 Subject: [PATCH 037/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index e79b263f5..baab75445 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -1001,7 +1001,7 @@ error.system=⚠️ System Error\n\nAn unexpected error occurred\: {errorCode}\n error.model.not_available.title.chat=Model Not Available error.model.not_available.title.embedding=Embedding Model Not Available error.model.not_available.message.chat=Model ''{0}'' is not available. -error.model.not_available.message.embedding=Embedding model ''{0}'' is not available.\n\nPlease configure your embedding model properly. +error.model.not_available.message.embedding=Embedding model ''{0}'' is not available in your local provider.\n\nGo to Settings → AI Provider and select an available embedding model under the provider configuration card. error.model.not_available.config_link=Configure Embedding Model error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration From b00f577cccf2f2d234308e2e6718fe3ec1770913 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:15:54 -0700 Subject: [PATCH 038/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 2b216711a..e54c3db2e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -1001,7 +1001,7 @@ error.system=⚠️ 系统错误\n\n发生了意外错误:{errorCode}\n\n请 error.model.not_available.title.chat=模型不可用 error.model.not_available.title.embedding=嵌入模型不可用 error.model.not_available.message.chat=模型 ''{0}'' 不可用。 -error.model.not_available.message.embedding=嵌入模型 ''{0}'' 不可用。\n\n请正确配置嵌入模型。 +error.model.not_available.message.embedding=嵌入模型 ''{0}'' 在本地提供商中不可用。\n\n请前往 设置 → AI 提供商,在提供商配置卡片中选择一个可用的嵌入模型。 error.model.not_available.config_link=配置嵌入模型 error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration From 753966a79140200d93649050810969761285c96e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:15:55 -0700 Subject: [PATCH 039/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 16688a047..a4f9aad04 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -1001,7 +1001,7 @@ error.system=⚠️ 系統錯誤\n\n發生未預期的錯誤:{errorCode}\n\n error.model.not_available.title.chat=模型無法使用 error.model.not_available.title.embedding=嵌入模型無法使用 error.model.not_available.message.chat=模型 ''{0}'' 無法使用。 -error.model.not_available.message.embedding=嵌入模型 ''{0}'' 無法使用。\n\n請正確設定嵌入模型。 +error.model.not_available.message.embedding=嵌入模型 ''{0}'' 在本地提供商中無法使用。\n\n請前往 設定 → AI 提供商,在提供商設定卡片中選擇可用的嵌入模型。 error.model.not_available.config_link=設定嵌入模型 error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration From 71b42812f307e9b47615926e856e5b3a1f5c33a0 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:15:57 -0700 Subject: [PATCH 040/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 5353c5dcb..d74d27697 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -1001,7 +1001,7 @@ error.system=⚠️ Lỗi hệ thống\n\nĐã xảy ra lỗi không mong muốn error.model.not_available.title.chat=Không khả dụng mô hình error.model.not_available.title.embedding=Không khả dụng mô hình embedding error.model.not_available.message.chat=Mô hình ''{0}'' không khả dụng. -error.model.not_available.message.embedding=Mô hình embedding ''{0}'' không khả dụng.\n\nVui lòng cấu hình đúng mô hình embedding. +error.model.not_available.message.embedding=Mô hình embedding ''{0}'' không khả dụng trong nhà cung cấp cục bộ của bạn.\n\nHãy vào Cài đặt → Nhà cung cấp AI và chọn một mô hình embedding khả dụng trong thẻ cấu hình nhà cung cấp. error.model.not_available.config_link=Cấu hình mô hình embedding error.model.not_available.config_url=https\://askimo.chat/docs/desktop/rag/\#embedding-model-configuration From e2946e92ecca8eb5558f9609a068c8cb680478f4 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:16:51 -0700 Subject: [PATCH 041/251] New translations messages.properties (French) [ci skip] --- .../src/main/resources/i18n/messages_fr.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index d9bd3beab..099ae5909 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -353,6 +353,10 @@ layout.density.comfortable=Confortable layout.density.comfortable.description=Espacement plus généreux pour une meilleure lisibilité layout.density.compact=Compact layout.density.compact.description=Espacement réduit pour afficher plus de contenu +layout.density.relaxed=Aéré +layout.density.relaxed.description=Espacement légèrement plus grand pour une meilleure lisibilité +layout.density.spacious=Très aéré +layout.density.spacious.description=Espacement maximal pour les écrans ultra haute DPI settings.background.image=Image d’arrière-plan settings.background.image.description=Choisissez une image d’arrière-plan — sélectionnez un préréglage ou utilisez votre propre image. Une superposition translucide permet de garder le texte lisible. Les images d’arrière-plan sont indépendantes du thème sélectionné. settings.background.image.browse=Parcourir @@ -741,6 +745,9 @@ settings.font.family.ui=Famille de police UI settings.font.family.code=Famille de police Code settings.font.size=Taille de police settings.font.line.spacing=Interligne +settings.font.custom.scale=Mise à l'échelle personnalisée (avancé) +settings.font.custom.scale.description=Remplace les préréglages. À utiliser avec précaution sur les écrans à très haute DPI. +settings.font.custom.scale.value=Échelle \: {0}% settings.shortcuts=Raccourcis clavier settings.shortcuts.description=Afficher tous les raccourcis clavier disponibles pour améliorer votre productivité settings.app.language=Langue de l'application From 92248cd1b13ee13ef758e40943c0f51e62d605e0 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:16:53 -0700 Subject: [PATCH 042/251] New translations messages.properties (Spanish) [ci skip] --- .../src/main/resources/i18n/messages_es.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 07cd9743c..aedd114b0 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -353,6 +353,10 @@ layout.density.comfortable=Cómodo layout.density.comfortable.description=Espaciado más generoso para facilitar la lectura layout.density.compact=Compacto layout.density.compact.description=Espaciado más ajustado para mostrar más contenido +layout.density.relaxed=Relajado +layout.density.relaxed.description=Espaciado ligeramente mayor para mejorar la legibilidad +layout.density.spacious=Espacioso +layout.density.spacious.description=Espaciado máximo para pantallas de ultra alta DPI settings.background.image=Imagen de fondo settings.background.image.description=Elige una imagen de fondo\: selecciona una predefinida o usa tu propia imagen. Una superposición translúcida mantiene el texto legible. Las imágenes de fondo son independientes del tema seleccionado. settings.background.image.browse=Examinar @@ -741,6 +745,9 @@ settings.font.family.ui=Familia de Tipografía UI settings.font.family.code=Familia de Tipografía Código settings.font.size=Tamaño de fuente settings.font.line.spacing=Espaciado de línea +settings.font.custom.scale=Escalado personalizado (avanzado) +settings.font.custom.scale.description=Anula los ajustes predefinidos. Úselo con cuidado en pantallas con DPI muy alto. +settings.font.custom.scale.value=Escala\: {0}% settings.shortcuts=Atajos settings.shortcuts.description=Ver todas las combinaciones de teclas disponibles para mejorar su productividad settings.app.language=Idioma de la aplicación From 634c6d72a9b0a119a21ecc5b5a1802d00af6a0a5 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:16:54 -0700 Subject: [PATCH 043/251] New translations messages.properties (German) [ci skip] --- .../src/main/resources/i18n/messages_de.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 087aced0b..dbfe69865 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -353,6 +353,10 @@ layout.density.comfortable=Komfortabel layout.density.comfortable.description=Großzügigere Abstände für bessere Übersichtlichkeit layout.density.compact=Kompakt layout.density.compact.description=Engere Abstände für mehr Inhalt +layout.density.relaxed=Entspannt +layout.density.relaxed.description=Etwas größere Abstände für bessere Lesbarkeit +layout.density.spacious=Großzügig +layout.density.spacious.description=Maximale Abstände für Ultra-High-DPI-Bildschirme settings.background.image=Hintergrundbild settings.background.image.description=Wählen Sie ein Hintergrundbild aus — verwenden Sie eine Vorlage oder Ihr eigenes Bild. Eine transparente Überlagerung sorgt dafür, dass der Text gut lesbar bleibt. Hintergrundbilder sind unabhängig vom ausgewählten Design. settings.background.image.browse=Durchsuchen @@ -741,6 +745,9 @@ settings.font.family.ui=UI-Schriftfamilie settings.font.family.code=Code-Schriftfamilie settings.font.size=Schriftgröße settings.font.line.spacing=Zeilenabstand +settings.font.custom.scale=Benutzerdefinierte Skalierung (Erweitert) +settings.font.custom.scale.description=Überschreibt Voreinstellungen. Bei sehr hochauflösenden Displays mit Bedacht verwenden. +settings.font.custom.scale.value=Skalierung\: {0}% settings.shortcuts=Tastenkombinationen settings.shortcuts.description=Alle verfügbaren Tastenkombinationen anzeigen, um Ihre Produktivität zu steigern settings.app.language=App-Sprache From 1b878f27f01ae77ff4b5ba5b3059a1afe8887387 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:16:56 -0700 Subject: [PATCH 044/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index a5b9e1bdd..a68dd803c 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -353,6 +353,10 @@ layout.density.comfortable=ゆったり layout.density.comfortable.description=広めの余白で見やすくなります layout.density.compact=コンパクト layout.density.compact.description=狭い余白でより多くのコンテンツを表示します +layout.density.relaxed=ややゆったり +layout.density.relaxed.description=可読性向上のため余白を少し広げます +layout.density.spacious=とてもゆったり +layout.density.spacious.description=超高DPIディスプレイ向けの最大余白 settings.background.image=背景画像 settings.background.image.description=背景画像を選択します — プリセットを選ぶか、自分の画像を使用できます。半透明のオーバーレイにより、テキストの読みやすさが保たれます。背景画像は選択したテーマとは独立しています。 settings.background.image.browse=参照 @@ -741,6 +745,9 @@ settings.font.family.ui=UI フォントファミリー settings.font.family.code=コード フォントファミリー settings.font.size=フォントサイズ settings.font.line.spacing=行間 +settings.font.custom.scale=カスタムスケーリング(上級者向け) +settings.font.custom.scale.description=プリセットを上書きします。超高DPIディスプレイでは注意して使用してください。 +settings.font.custom.scale.value=スケール\: {0}% settings.shortcuts=ショートカット settings.shortcuts.description=生産性を向上させるために、利用可能なすべてのキーボードショートカットを表示します settings.app.language=アプリ言語 From 41d0eeadd52815894e669ced7f7ed9c12421af5e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:16:57 -0700 Subject: [PATCH 045/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 5e3ae0855..8547ac141 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -353,6 +353,10 @@ layout.density.comfortable=편안함 layout.density.comfortable.description=더 넓은 여백으로 편리하게 탐색 layout.density.compact=컴팩트 layout.density.compact.description=더 좊은 여백으로 더 많은 콘텐츠 표시 +layout.density.relaxed=여유 +layout.density.relaxed.description=가독성을 위해 여백을 조금 더 넓게 조정 +layout.density.spacious=넉넉함 +layout.density.spacious.description=초고DPI 디스플레이를 위한 최대 여백 settings.background.image=배경 이미지 settings.background.image.description=배경 이미지를 선택하세요 — 기본 제공 이미지를 고르거나 직접 이미지를 사용할 수 있습니다. 반투명 오버레이가 텍스트 가독성을 유지해 줍니다. 배경 이미지는 선택한 테마와는 별개로 적용됩니다. settings.background.image.browse=찾아보기 @@ -741,6 +745,9 @@ settings.font.family.ui=UI 폰트 패밀리 settings.font.family.code=코드 폰트 패밀리 settings.font.size=글꼴 크기 settings.font.line.spacing=줄 간격 +settings.font.custom.scale=사용자 지정 스케일링(고급) +settings.font.custom.scale.description=프리셋을 덮어씁니다. 매우 높은 DPI 디스플레이에서는 주의해서 사용하세요. +settings.font.custom.scale.value=배율\: {0}% settings.shortcuts=단축키 settings.shortcuts.description=생산성을 높이기 위해 사용 가능한 모든 키보드 단축키를 확인하세요 settings.app.language=애플리케이션 언어 From c430af393ae00afafb846cebc8f55904cf1874f7 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:16:59 -0700 Subject: [PATCH 046/251] New translations messages.properties (Portuguese) [ci skip] --- .../src/main/resources/i18n/messages_pt.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index baab75445..4e0bb7980 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -353,6 +353,10 @@ layout.density.comfortable=Comfortable layout.density.comfortable.description=More generous spacing for easier scanning layout.density.compact=Compact layout.density.compact.description=Tighter spacing to fit more content +layout.density.relaxed=Relaxed +layout.density.relaxed.description=Slightly larger spacing for better readability +layout.density.spacious=Spacious +layout.density.spacious.description=Largest spacing for ultra-high DPI screens settings.background.image=Background Image settings.background.image.description=Choose a background image — pick a preset or use your own image. A translucent overlay keeps text readable. Background images are independent of the selected theme. settings.background.image.browse=Browse @@ -741,6 +745,9 @@ settings.font.family.ui=UI Font Family settings.font.family.code=Code Font Family settings.font.size=Font Size settings.font.line.spacing=Line Spacing +settings.font.custom.scale=Custom scaling (advanced) +settings.font.custom.scale.description=Overrides presets. Use with care on very high DPI displays. +settings.font.custom.scale.value=Scale\: {0}% settings.shortcuts=Keyboard Shortcuts settings.shortcuts.description=View all available keyboard shortcuts to improve your productivity settings.app.language=Application Language From 0bc35be51ceef36c3540e5604e1d5129f11ed8cf Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:17:01 -0700 Subject: [PATCH 047/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index e54c3db2e..5975c0ffe 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -353,6 +353,10 @@ layout.density.comfortable=舒适 layout.density.comfortable.description=更宽松的间距,方便浏览 layout.density.compact=紧凑 layout.density.compact.description=更紧密的间距以显示更多内容 +layout.density.relaxed=宽松 +layout.density.relaxed.description=稍大的间距以提升可读性 +layout.density.spacious=超宽松 +layout.density.spacious.description=为超高 DPI 屏幕提供最大间距 settings.background.image=背景图片 settings.background.image.description=选择背景图片——可选择预设图片或使用您自己的图片。半透明覆盖层可保持文字清晰易读。背景图片独立于所选主题。 settings.background.image.browse=浏览 @@ -741,6 +745,9 @@ settings.font.family.ui=UI 字体系列 settings.font.family.code=代码字体系列 settings.font.size=字号 settings.font.line.spacing=行间距 +settings.font.custom.scale=自定义缩放(高级) +settings.font.custom.scale.description=覆盖预设值。在超高 DPI 显示器上请谨慎使用。 +settings.font.custom.scale.value=缩放:{0}% settings.shortcuts=快捷键 settings.shortcuts.description=查看所有可用的键盘快捷键,以提升您的工作效率 settings.app.language=应用语言 From f6376e5a9bb01b03e635cfd24ddbf8ed7626c5df Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:17:02 -0700 Subject: [PATCH 048/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index a4f9aad04..386efc272 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -353,6 +353,10 @@ layout.density.comfortable=舒適 layout.density.comfortable.description=更对鬆的間距,方便瀏覽 layout.density.compact=緊湊 layout.density.compact.description=更緊密的間距以顯示更多內容 +layout.density.relaxed=寬鬆 +layout.density.relaxed.description=稍大的間距以提升可讀性 +layout.density.spacious=超寬鬆 +layout.density.spacious.description=為超高 DPI 螢幕提供最大間距 settings.background.image=背景圖片 settings.background.image.description=選擇背景圖片——可選擇預設圖片或使用您自己的圖片。半透明覆蓋層可保持文字清晰易讀。背景圖片獨立於所選主題。 settings.background.image.browse=瀏覽 @@ -741,6 +745,9 @@ settings.font.family.ui=UI 字體系列 settings.font.family.code=代碼字體系列 settings.font.size=字型大小 settings.font.line.spacing=行距 +settings.font.custom.scale=自訂縮放(進階) +settings.font.custom.scale.description=覆蓋預設值。在超高 DPI 顯示器上請謹慎使用。 +settings.font.custom.scale.value=縮放:{0}% settings.shortcuts=快捷鍵 settings.shortcuts.description=查看所有可用的鍵盤快捷鍵,以提升您的工作效率 settings.app.language=應用程式語言 From 6039b036e352fa0ea887c7f0d7120a61ba9778b2 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:17:04 -0700 Subject: [PATCH 049/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index d74d27697..c146749b3 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -353,6 +353,10 @@ layout.density.comfortable=Thoải mái layout.density.comfortable.description=Khoảng cách rộng hơn để dễ xem layout.density.compact=Gọn layout.density.compact.description=Khoảng cách chặt hơn để hiển thị nhiều nội dung hơn +layout.density.relaxed=Thoáng +layout.density.relaxed.description=Khoảng cách lớn hơn một chút để cải thiện khả năng đọc +layout.density.spacious=Rộng rãi +layout.density.spacious.description=Khoảng cách lớn nhất cho màn hình DPI siêu cao settings.background.image=Ảnh nền settings.background.image.description=Chọn ảnh nền — chọn một ảnh có sẵn hoặc dùng ảnh của riêng bạn. Một lớp phủ trong mờ giúp văn bản luôn dễ đọc. Ảnh nền hoạt động độc lập với chủ đề đã chọn. settings.background.image.browse=Duyệt @@ -741,6 +745,9 @@ settings.font.family.ui=Family Font UI settings.font.family.code=Family Font Code settings.font.size=Cỡ chữ settings.font.line.spacing=Giãn dòng +settings.font.custom.scale=Tùy chỉnh tỷ lệ (nâng cao) +settings.font.custom.scale.description=Ghi đè các mức cài sẵn. Hãy dùng cẩn thận trên màn hình DPI rất cao. +settings.font.custom.scale.value=Tỷ lệ\: {0}% settings.shortcuts=Phím tắt settings.shortcuts.description=Xem tất cả các phím tắt có sẵn để nâng cao năng suất làm việc settings.app.language=Ngôn ngữ ứng dụng From b4cc53b6a6f2740ea5a64cb30d6faa9bd0a8d9f6 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 15 Jul 2026 15:40:12 -0700 Subject: [PATCH 050/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index e74c674ab..33d5c0c87 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -350,6 +350,10 @@ layout.density.comfortable=Comfortable layout.density.comfortable.description=More generous spacing for easier scanning layout.density.compact=Compact layout.density.compact.description=Tighter spacing to fit more content +layout.density.relaxed=Relaxed +layout.density.relaxed.description=Slightly larger spacing for better readability +layout.density.spacious=Spacious +layout.density.spacious.description=Largest spacing for ultra-high DPI screens settings.background.image=Background Image settings.background.image.description=Choose a background image — pick a preset or use your own image. A translucent overlay keeps text readable. Background images are independent of the selected theme. settings.background.image.browse=Browse @@ -738,6 +742,9 @@ settings.font.family.ui=UI Font Family settings.font.family.code=Code Font Family settings.font.size=Font Size settings.font.line.spacing=Line Spacing +settings.font.custom.scale=Custom scaling (advanced) +settings.font.custom.scale.description=Overrides presets. Use with care on very high DPI displays. +settings.font.custom.scale.value=Scale: {0}% settings.shortcuts=Keyboard Shortcuts settings.shortcuts.description=View all available keyboard shortcuts to improve your productivity settings.app.language=Application Language From 558c3ae52ddca7e5ab17c28343df48c64c9b3b1d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 18 Jul 2026 06:05:28 +0000 Subject: [PATCH 051/251] New translations messages.properties (French) [ci skip] --- .../resources/i18n/messages_fr.properties | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 099ae5909..78f5b4006 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -335,18 +335,6 @@ theme.dark=Sombre theme.dark.description=Toujours utiliser le thème sombre theme.system=Système theme.system.description=Suivre le thème du système -theme.sepia=Sépia -theme.sepia.description=Tons chauds parchemin, agréables pour les yeux -theme.ocean=Océan -theme.ocean.description=Douces tonalités bleu ciel, calmes et rafraîchissantes -theme.nord=Nord -theme.nord.description=Palette sombre arctique, froide et concentrée -theme.sage=Sauge -theme.sage.description=Tons vert-gris atténués, sophistiqués et apaisants -theme.rose=Rose -theme.rose.description=Rose poudré doux, élégant et chaleureux -theme.indigo=Indigo -theme.indigo.description=Bleu violet profond, mystique et créatif settings.layout.density=Densité de mise en page settings.layout.density.description=Ajustez l’espacement et les marges intérieures dans l’application. layout.density.comfortable=Confortable @@ -514,6 +502,7 @@ action.close=Fermer action.show.more=Afficher plus action.show.less=Afficher moins action.back=Retour +action.next=Suivant action.retry=Réessayer action.done=Terminé action.refresh=Rafraîchir @@ -769,7 +758,8 @@ settings.model.search=Rechercher un modèle settings.model.search.placeholder=Filtrer les modèles... settings.model.filtered=Affichage de {0} sur {1} modèles settings.model.no.match=Aucun modèle correspondant -settings.model.no.results=Aucun modèle correspondant +settings.model.chat.filter.label=Modèles de chat · {0} affichés +settings.model.chat.filter.show.all=Afficher tout {0} settings.configure.title=Configurer {0} settings.test.connection.testing=Test en cours... settings.placeholder.baseurl=http\://localhost\:11434 @@ -859,18 +849,25 @@ outdated.branch.header={0} anciens messages de l’édition précédente (clique outdated.label=ancien # Provider Dialog -provider.change.title=Changer de fournisseur -provider.select.title=Sélectionner un fournisseur +provider.manage.title=Gérer les fournisseurs +provider.type.picker.title=Choisir le type de fournisseur +provider.type.picker.prompt=Sélectionnez le type de fournisseur à ajouter \: +provider.configure.new.title=Configure {0} +provider.edit.title=Edit "{0}" +provider.add.new=Ajouter un fournisseur +provider.no.instances.hint=Aucun fournisseur configuré pour l'instant. Cliquez sur "Ajouter un fournisseur" pour commencer. +provider.model.panel.select.hint=Sélectionnez un fournisseur à gauche pour parcourir ses modèles +provider.model.panel.model.count={0} modèles +provider.instance.name.label=Nom de l'instance +provider.instance.name.placeholder=par ex. "Work OpenAI", "ollama-macbook" +provider.instance.name.duplicate=Un fournisseur nommé "{0}" existe déjà provider.setup.required.title=Configuration du fournisseur IA requise provider.setup.required.message=Avant de commencer à discuter, sélectionnez et configurez un fournisseur IA. provider.setup.required.button=Configurer -provider.select.prompt=Sélectionner un fournisseur \: provider.configure.prompt=Configurer \: -provider.choose.placeholder=Choisissez un fournisseur... provider.setup.guide=Comment configurer {0} provider.apikey.stored=Clé API stockée en toute sécurité provider.apikey.enter=Entrer la clé API -provider.apikey.already.stored=Déjà stockée provider.apikey.security.message=🔒 Votre clé API est chiffrée et stockée en toute sécurité. Nous ne partageons jamais vos données. provider.apikey.security.link=En savoir plus sur notre protection des données provider.not.set=Non défini @@ -946,11 +943,6 @@ telemetry.tab.llm=LLM telemetry.rag.total.queries=Requêtes Totales telemetry.rag.triggered.label=Déclenché telemetry.rag.skipped.label=Ignoré -telemetry.llm.calls=Appels LLM -telemetry.llm.calls.count={0} appels -telemetry.llm.tokens={0} tok -telemetry.llm.errors={0} err -telemetry.total.tokens=Tokens Totaux \: {0} telemetry.llm.col.provider=Fournisseur telemetry.llm.col.model=Modèle telemetry.llm.col.calls=Appels From 851493e66c0e3caded6d80812b86732588a273e9 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 18 Jul 2026 06:05:30 +0000 Subject: [PATCH 052/251] New translations messages.properties (Spanish) [ci skip] --- .../resources/i18n/messages_es.properties | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index aedd114b0..50d36583b 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -335,18 +335,6 @@ theme.dark=Oscuro theme.dark.description=Usar siempre el tema oscuro theme.system=Sistema theme.system.description=Seguir el tema del sistema -theme.sepia=Sepia -theme.sepia.description=Tonos cálidos de pergamino, agradables para la vista -theme.ocean=Océano -theme.ocean.description=Tonos suaves de azul cielo, tranquilos y refrescantes -theme.nord=Nord -theme.nord.description=Paleta oscura ártica, fresca y enfocada -theme.sage=Salvia -theme.sage.description=Tonos verde grisáceo apagados, sofisticados y serenos -theme.rose=Rosa -theme.rose.description=Rosa rubor suave, elegante y cálido -theme.indigo=Índigo -theme.indigo.description=Azul violeta profundo, místico y creativo settings.layout.density=Densidad del diseño settings.layout.density.description=Ajusta el espaciado y el relleno en toda la aplicación. layout.density.comfortable=Cómodo @@ -514,6 +502,7 @@ action.close=Cerrar action.show.more=Mostrar más action.show.less=Mostrar menos action.back=Atrás +action.next=Siguiente action.retry=Reintentar action.done=Listo action.refresh=Actualizar @@ -769,7 +758,8 @@ settings.model.search=Buscar modelos settings.model.search.placeholder=Escribe para filtrar modelos... settings.model.filtered=Mostrando {0} de {1} modelos settings.model.no.match=No hay coincidencias -settings.model.no.results=No hay coincidencias +settings.model.chat.filter.label=Modelos de chat · {0} mostrados +settings.model.chat.filter.show.all=Mostrar todos {0} settings.configure.title=Configurar {0} settings.test.connection.testing=Probando... settings.placeholder.baseurl=http\://localhost\:11434 @@ -859,18 +849,25 @@ outdated.branch.header={0} mensajes antiguos de la edición previa (clic para ex outdated.label=antiguo # Provider Dialog -provider.change.title=Cambiar proveedor -provider.select.title=Seleccionar proveedor +provider.manage.title=Gestionar proveedores +provider.type.picker.title=Elegir tipo de proveedor +provider.type.picker.prompt=Seleccione el tipo de proveedor a añadir\: +provider.configure.new.title=Configure {0} +provider.edit.title=Edit "{0}" +provider.add.new=Añadir proveedor +provider.no.instances.hint=Aún no hay proveedores configurados. Haga clic en "Añadir proveedor" para comenzar. +provider.model.panel.select.hint=Selecciona un proveedor a la izquierda para explorar sus modelos +provider.model.panel.model.count={0} modelos +provider.instance.name.label=Nombre de la instancia +provider.instance.name.placeholder=p. ej., "Work OpenAI", "ollama-macbook" +provider.instance.name.duplicate=Ya existe un proveedor llamado "{0}" provider.setup.required.title=Configuración de proveedor IA necesaria provider.setup.required.message=Selecciona y configura un proveedor IA antes de comenzar a chatear. provider.setup.required.button=Configurar -provider.select.prompt=Seleccionar proveedor\: provider.configure.prompt=Configurar\: -provider.choose.placeholder=Escoge un proveedor... provider.setup.guide=Cómo configurar {0} provider.apikey.stored=Clave API almacenada de forma segura provider.apikey.enter=Ingresar clave API -provider.apikey.already.stored=Ya almacenada provider.apikey.security.message=🔒 Tu clave API está cifrada y se almacena de forma segura. Nunca compartimos tus datos. provider.apikey.security.link=Aprende cómo protegemos tus datos provider.not.set=No configurado @@ -946,11 +943,6 @@ telemetry.tab.llm=LLM telemetry.rag.total.queries=Consultas Totales telemetry.rag.triggered.label=Activado telemetry.rag.skipped.label=Omitido -telemetry.llm.calls=Llamadas LLM -telemetry.llm.calls.count={0} llamadas -telemetry.llm.tokens={0} tok -telemetry.llm.errors={0} err -telemetry.total.tokens=Tokens Totales\: {0} telemetry.llm.col.provider=Proveedor telemetry.llm.col.model=Modelo telemetry.llm.col.calls=Llamadas From ce338e25421a3138fd9bb9cbec3031c4cae4a34e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 18 Jul 2026 06:05:31 +0000 Subject: [PATCH 053/251] New translations messages.properties (German) [ci skip] --- .../resources/i18n/messages_de.properties | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index dbfe69865..aa2de1f99 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -335,18 +335,6 @@ theme.dark=Dunkel theme.dark.description=Immer dunkles Thema verwenden theme.system=System theme.system.description=Systemthema verwenden -theme.sepia=Sepia -theme.sepia.description=Warme Pergamenttöne, angenehm für die Augen -theme.ocean=Ozean -theme.ocean.description=Sanfte himmelblaue Töne, ruhig und erfrischend -theme.nord=Nord -theme.nord.description=Dunkle arktische Farbpalette, kühl und fokussiert -theme.sage=Salbei -theme.sage.description=Gedämpfte graugrüne Töne, anspruchsvoll und ruhig -theme.rose=Rose -theme.rose.description=Zartes Blush-Rosa, elegant und warm -theme.indigo=Indigo -theme.indigo.description=Tiefes Violettblau, mystisch und kreativ settings.layout.density=Layout-Dichte settings.layout.density.description=Abstände und Innenabstände in der gesamten App anpassen. layout.density.comfortable=Komfortabel @@ -514,6 +502,7 @@ action.close=Schließen action.show.more=Mehr anzeigen action.show.less=Weniger anzeigen action.back=Zurück +action.next=Weiter action.retry=Erneut versuchen action.done=Fertig action.refresh=Aktualisieren @@ -769,7 +758,8 @@ settings.model.search=Modelle durchsuchen settings.model.search.placeholder=Eingeben, um Modelle zu filtern... settings.model.filtered={0} von {1} Modellen angezeigt settings.model.no.match=Keine passenden Modelle -settings.model.no.results=Keine passenden Modelle +settings.model.chat.filter.label=Chat-Modelle · {0} angezeigt +settings.model.chat.filter.show.all=Alle {0} anzeigen settings.configure.title={0} konfigurieren settings.test.connection.testing=Teste... settings.placeholder.baseurl=http\://localhost\:11434 @@ -859,18 +849,25 @@ outdated.branch.header={0} alte Nachrichten aus vorheriger Bearbeitung (zum Öff outdated.label=alt # Provider Dialog -provider.change.title=Anbieter wechseln -provider.select.title=Anbieter auswählen +provider.manage.title=Anbieter verwalten +provider.type.picker.title=Anbietertyp auswählen +provider.type.picker.prompt=Wählen Sie den hinzuzufügenden Anbietertyp aus\: +provider.configure.new.title=Configure {0} +provider.edit.title=Edit "{0}" +provider.add.new=Anbieter hinzufügen +provider.no.instances.hint=Noch keine Anbieter konfiguriert. Klicken Sie auf "Anbieter hinzufügen", um loszulegen. +provider.model.panel.select.hint=Wählen Sie links einen Anbieter aus, um seine Modelle zu durchsuchen +provider.model.panel.model.count={0} Modelle +provider.instance.name.label=Instanzname +provider.instance.name.placeholder=z. B. "Work OpenAI", "ollama-macbook" +provider.instance.name.duplicate=Ein Anbieter mit dem Namen "{0}" existiert bereits provider.setup.required.title=KI-Anbieterkonfiguration erforderlich provider.setup.required.message=Bevor Sie chatten können, wählen und konfigurieren Sie einen KI-Anbieter. provider.setup.required.button=Konfigurieren -provider.select.prompt=Anbieter auswählen\: provider.configure.prompt=Konfigurieren\: -provider.choose.placeholder=Anbieter auswählen... provider.setup.guide=So richten Sie {0} ein provider.apikey.stored=API-Schlüssel wurde sicher gespeichert provider.apikey.enter=API-Schlüssel eingeben -provider.apikey.already.stored=Bereits gespeichert provider.apikey.security.message=🔒 Ihr API-Schlüssel wird sicher verschlüsselt gespeichert. Ihre Daten werden nie weitergegeben. provider.apikey.security.link=Hier erfahren Sie, wie wir Ihre Daten schützen provider.not.set=Nicht festgelegt @@ -946,11 +943,6 @@ telemetry.tab.llm=LLM telemetry.rag.total.queries=Gesamte Anfragen telemetry.rag.triggered.label=Ausgelöst telemetry.rag.skipped.label=Übersprungen -telemetry.llm.calls=LLM-Aufrufe -telemetry.llm.calls.count={0} Aufrufe -telemetry.llm.tokens={0} Tok -telemetry.llm.errors={0} Fehl -telemetry.total.tokens=Gesamte Tokens\: {0} telemetry.llm.col.provider=Anbieter telemetry.llm.col.model=Modell telemetry.llm.col.calls=Aufrufe From 0a225bc3f2d2601942d8f0fb141b6ca32d188a29 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 18 Jul 2026 06:05:33 +0000 Subject: [PATCH 054/251] New translations messages.properties (Japanese) [ci skip] --- .../resources/i18n/messages_ja_JP.properties | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index a68dd803c..51a68136f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -335,18 +335,6 @@ theme.dark=ダーク theme.dark.description=常にダークテーマを使用 theme.system=システム theme.system.description=システム設定に従う -theme.sepia=セピア -theme.sepia.description=温かみのあるパーチメント調、目に優しい -theme.ocean=オーシャン -theme.ocean.description=やわらかな空色のトーンで、穏やかで爽やか -theme.nord=ノルド -theme.nord.description=北極を思わせるダークパレットで、クールで集中しやすい -theme.sage=セージ -theme.sage.description=落ち着いたグレーがかったグリーンで、洗練され穏やか -theme.rose=ローズ -theme.rose.description=やさしいブラッシュピンクで、上品で温かみがある -theme.indigo=インディゴ -theme.indigo.description=深い青紫で、神秘的で創造的 settings.layout.density=レイアウト密度 settings.layout.density.description=アプリ全体の余白とパディングを調整します。 layout.density.comfortable=ゆったり @@ -514,6 +502,7 @@ action.close=閉じる action.show.more=もっと見る action.show.less=折りたたむ action.back=戻る +action.next=次へ action.retry=再試行 action.done=完了 action.refresh=更新 @@ -769,7 +758,8 @@ settings.model.search=モデル検索 settings.model.search.placeholder=モデルの絞り込み... settings.model.filtered={0}/{1} モデル表示中 settings.model.no.match=一致するモデルなし -settings.model.no.results=一致するモデルなし +settings.model.chat.filter.label=チャットモデル · {0}件表示 +settings.model.chat.filter.show.all=すべての{0}を表示 settings.configure.title={0} 設定構成 settings.test.connection.testing=テスト中... settings.placeholder.baseurl=http\://localhost\:11434 @@ -859,18 +849,25 @@ outdated.branch.header=前回編集からの古いメッセージ {0} 件(ク outdated.label=古い # Provider Dialog -provider.change.title=プロバイダー変更 -provider.select.title=プロバイダー選択 +provider.manage.title=プロバイダーの管理 +provider.type.picker.title=プロバイダーの種類の選択 +provider.type.picker.prompt=追加するプロバイダーの種類を選択してください\: +provider.configure.new.title=Configure {0} +provider.edit.title=Edit "{0}" +provider.add.new=プロバイダーを追加 +provider.no.instances.hint=プロバイダーがまだ設定されていません。"プロバイダーを追加" をクリックして開始してください。 +provider.model.panel.select.hint=左側のプロバイダーを選択してモデルを参照してください +provider.model.panel.model.count={0} モデル +provider.instance.name.label=インスタンス名 +provider.instance.name.placeholder=例\: "Work OpenAI", "ollama-macbook" +provider.instance.name.duplicate="{0}" という名前のプロバイダーはすでに存在します provider.setup.required.title=AI プロバイダー設定が必要です provider.setup.required.message=チャットを開始する前に、AI プロバイダーを選択して構成してください。 provider.setup.required.button=設定 -provider.select.prompt=プロバイダーを選択\: provider.configure.prompt=設定\: -provider.choose.placeholder=プロバイダーを選択... provider.setup.guide={0}の設定方法 provider.apikey.stored=API キーは安全に保存されています provider.apikey.enter=API キー入力 -provider.apikey.already.stored=すでに保存済み provider.apikey.security.message=🔒 API キーは暗号化され、安全に保存されます。データは共有されません。 provider.apikey.security.link=データ保護について詳しく見る provider.not.set=未設定 @@ -946,11 +943,6 @@ telemetry.tab.llm=LLM telemetry.rag.total.queries=総クエリ数 telemetry.rag.triggered.label=トリガー済み telemetry.rag.skipped.label=スキップ済み -telemetry.llm.calls=LLM 呼び出し -telemetry.llm.calls.count={0} 回 -telemetry.llm.tokens={0} トークン -telemetry.llm.errors={0} エラー -telemetry.total.tokens=総トークン数\: {0} telemetry.llm.col.provider=プロバイダー telemetry.llm.col.model=モデル telemetry.llm.col.calls=呼び出し From 66a389e7353b6764e45c46d52284cf260d1b21f3 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 18 Jul 2026 06:05:35 +0000 Subject: [PATCH 055/251] New translations messages.properties (Korean) [ci skip] --- .../resources/i18n/messages_ko_KR.properties | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 8547ac141..f888347c3 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -335,18 +335,6 @@ theme.dark=다크 theme.dark.description=항상 다크 테마 사용 theme.system=시스템 theme.system.description=시스템 테마 따르기 -theme.sepia=세피아 -theme.sepia.description=따뜻한 양피지 톤, 눈이 편안함 -theme.ocean=오션 -theme.ocean.description=부드러운 하늘빛 톤으로 차분하고 산뜻함 -theme.nord=노르드 -theme.nord.description=북극을 닮은 어두운 팔레트로 차갑고 집중감 있는 분위기 -theme.sage=세이지 -theme.sage.description=차분한 회녹색 톤으로 세련되고 안정감 있음 -theme.rose=로즈 -theme.rose.description=부드러운 블러시 핑크로 우아하고 따뜻함 -theme.indigo=인디고 -theme.indigo.description=짙은 보랏빛 푸른색으로 신비롭고 창의적임 settings.layout.density=레이아웃 밀도 settings.layout.density.description=앱 전체의 여백 및 패딩 밀도를 조정합니다. layout.density.comfortable=편안함 @@ -514,6 +502,7 @@ action.close=닫기 action.show.more=더 보기 action.show.less=접기 action.back=뒤로가기 +action.next=다음 action.retry=다시 시도 action.done=완료 action.refresh=새로고침 @@ -769,7 +758,8 @@ settings.model.search=모델 검색 settings.model.search.placeholder=모델 필터링 입력... settings.model.filtered={0}/{1} 모델 표시 중 settings.model.no.match=일치하는 모델 없음 -settings.model.no.results=일치하는 모델 없음 +settings.model.chat.filter.label=챗 모델 · {0}개 표시됨 +settings.model.chat.filter.show.all=모든 {0} 표시 settings.configure.title={0} 설정 구성 settings.test.connection.testing=테스트 중... settings.placeholder.baseurl=http\://localhost\:11434 @@ -859,18 +849,25 @@ outdated.branch.header=이전 편집의 오래된 메시지 {0}개 (클릭하여 outdated.label=오래됨 # Provider Dialog -provider.change.title=제공자 변경 -provider.select.title=제공자 선택 +provider.manage.title=제공업체 관리 +provider.type.picker.title=제공업체 유형 선택 +provider.type.picker.prompt=추가할 제공업체 유형을 선택하세요\: +provider.configure.new.title=Configure {0} +provider.edit.title=Edit "{0}" +provider.add.new=제공업체 추가 +provider.no.instances.hint=구성된 제공업체가 없습니다. 시작하려면 "제공업체 추가"를 클릭하세요. +provider.model.panel.select.hint=왼쪽에서 공급자를 선택하여 모델을 탐색하세요 +provider.model.panel.model.count={0}개 모델 +provider.instance.name.label=인스턴스 이름 +provider.instance.name.placeholder=예\: "Work OpenAI", "ollama-macbook" +provider.instance.name.duplicate="{0}" 이름의 프로바이더가 이미 존재합니다 provider.setup.required.title=AI 제공자 설정 필요 provider.setup.required.message=대화를 시작하기 전에 AI 제공자를 선택하고 구성해야 합니다. provider.setup.required.button=설정 -provider.select.prompt=제공자 선택\: provider.configure.prompt=구성\: -provider.choose.placeholder=제공자 선택... provider.setup.guide={0}를 설정하는 방법 provider.apikey.stored=API 키가 안전하게 저장되었습니다 provider.apikey.enter=API 키 입력 -provider.apikey.already.stored=이미 저장됨 provider.apikey.security.message=🔒 API 키는 암호화되어 안전하게 저장됩니다. 데이터는 절대 공유되지 않습니다. provider.apikey.security.link=데이터 보호 방식 알아보기 provider.not.set=설정되지 않음 @@ -946,11 +943,6 @@ telemetry.tab.llm=LLM telemetry.rag.total.queries=총 쿼리 telemetry.rag.triggered.label=트리거됨 telemetry.rag.skipped.label=건너뜀 -telemetry.llm.calls=LLM 호출 -telemetry.llm.calls.count={0} 호출 -telemetry.llm.tokens={0} 토큰 -telemetry.llm.errors={0} 오류 -telemetry.total.tokens=총 토큰\: {0} telemetry.llm.col.provider=제공자 telemetry.llm.col.model=모델 telemetry.llm.col.calls=호출 From 34ac778c11043e29635c9fd4826ff0b0782e6795 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 18 Jul 2026 06:05:37 +0000 Subject: [PATCH 056/251] New translations messages.properties (Portuguese) [ci skip] --- .../resources/i18n/messages_pt.properties | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index 4e0bb7980..defdf5917 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -335,18 +335,6 @@ theme.dark=Dark theme.dark.description=Always use dark theme theme.system=System theme.system.description=Follow system theme settings -theme.sepia=Sepia -theme.sepia.description=Warm parchment tones, easy on the eyes -theme.ocean=Ocean -theme.ocean.description=Soft sky-blue tones, calm and refreshing -theme.nord=Nord -theme.nord.description=Arctic dark palette, cool and focused -theme.sage=Sage -theme.sage.description=Muted grey-green tones, sophisticated and calm -theme.rose=Rose -theme.rose.description=Soft blush pink, elegant and warm -theme.indigo=Indigo -theme.indigo.description=Deep violet-blue, mystical and creative settings.layout.density=Layout Density settings.layout.density.description=Adjust spacing and padding density across the app. layout.density.comfortable=Comfortable @@ -514,6 +502,7 @@ action.close=Close action.show.more=Show more action.show.less=Show less action.back=Back +action.next=Next action.retry=Try Again action.done=Done action.refresh=Refresh @@ -769,7 +758,8 @@ settings.model.search=Search Models settings.model.search.placeholder=Type to filter models... settings.model.filtered=Showing {0} of {1} models settings.model.no.match=No models match your search -settings.model.no.results=No models match your search +settings.model.chat.filter.label=Chat models · {0} shown +settings.model.chat.filter.show.all=Show all {0} settings.configure.title=Configure {0} Settings settings.test.connection.testing=Testing... settings.placeholder.baseurl=http\://localhost\:11434 @@ -859,18 +849,25 @@ outdated.branch.header={0} outdated messages from previous edit (click to expand outdated.label=outdated # Provider Dialog -provider.change.title=Change Provider -provider.select.title=Select Provider +provider.manage.title=Manage Providers +provider.type.picker.title=Choose Provider Type +provider.type.picker.prompt=Select the type of provider to add\: +provider.configure.new.title=Configure {0} +provider.edit.title=Edit "{0}" +provider.add.new=Add Provider +provider.no.instances.hint=No providers configured yet. Click "Add Provider" to get started. +provider.model.panel.select.hint=Select a provider on the left to browse its models +provider.model.panel.model.count={0} models +provider.instance.name.label=Instance name +provider.instance.name.placeholder=e.g. "Work OpenAI", "ollama-macbook" +provider.instance.name.duplicate=A provider named "{0}" already exists provider.setup.required.title=Setup AI Provider provider.setup.required.message=Before you can start chatting, you need to set up an AI provider. Please select a provider from the list and configure it. provider.setup.required.button=Set Up Provider -provider.select.prompt=Select a provider\: provider.configure.prompt=Configure provider\: -provider.choose.placeholder=Choose a provider... provider.setup.guide=How to set up {0} provider.apikey.stored=API key stored securely provider.apikey.enter=Enter API key -provider.apikey.already.stored=Already stored provider.apikey.security.message=🔒 Your API key is encrypted and stored securely. We never share your data. provider.apikey.security.link=Learn how we protect your data provider.not.set=Not set @@ -946,11 +943,6 @@ telemetry.tab.llm=LLM telemetry.rag.total.queries=Total Queries telemetry.rag.triggered.label=Triggered telemetry.rag.skipped.label=Skipped -telemetry.llm.calls=LLM Calls -telemetry.llm.calls.count={0} calls -telemetry.llm.tokens={0} tok -telemetry.llm.errors={0} err -telemetry.total.tokens=Total Tokens\: {0} telemetry.llm.col.provider=Provider telemetry.llm.col.model=Model telemetry.llm.col.calls=Calls From 93f31b669f85cb152fe7dee1710fa736a2b8bd8d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 18 Jul 2026 06:05:39 +0000 Subject: [PATCH 057/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../resources/i18n/messages_zh_CN.properties | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 5975c0ffe..4e52f90be 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -335,18 +335,6 @@ theme.dark=深色 theme.dark.description=始终使用深色主题 theme.system=系统 theme.system.description=跟随系统主题 -theme.sepia=褐色 -theme.sepia.description=温暖的羊皮纸色调,护眼 -theme.ocean=海洋 -theme.ocean.description=柔和的天蓝色调,平静清新 -theme.nord=Nord -theme.nord.description=北极风深色调色板,冷静而专注 -theme.sage=鼠尾草 -theme.sage.description=低饱和灰绿色调,沉稳而雅致 -theme.rose=玫瑰 -theme.rose.description=柔和的腮红粉,优雅而温暖 -theme.indigo=靛蓝 -theme.indigo.description=深邃的紫蓝色,神秘而富有创意 settings.layout.density=布局密度 settings.layout.density.description=调整应用程序的间距和内边距密度。 layout.density.comfortable=舒适 @@ -514,6 +502,7 @@ action.close=关闭 action.show.more=显示更多 action.show.less=显示更少 action.back=返回 +action.next=下一步 action.retry=重试 action.done=完成 action.refresh=刷新 @@ -769,7 +758,8 @@ settings.model.search=搜索模型 settings.model.search.placeholder=输入以筛选模型... settings.model.filtered=显示 {0}/{1} 个模型 settings.model.no.match=无匹配模型 -settings.model.no.results=无匹配模型 +settings.model.chat.filter.label=聊天模型 · 已显示 {0} +settings.model.chat.filter.show.all=显示所有 {0} settings.configure.title=配置 {0} settings.test.connection.testing=正在测试... settings.placeholder.baseurl=http\://localhost\:11434 @@ -859,18 +849,25 @@ outdated.branch.header=来自上次编辑的 {0} 条过期消息(点击展开 outdated.label=过期 # Provider Dialog -provider.change.title=更换服务商 -provider.select.title=选择服务商 +provider.manage.title=管理服务商 +provider.type.picker.title=选择服务商类型 +provider.type.picker.prompt=选择要添加的服务商类型: +provider.configure.new.title=Configure {0} +provider.edit.title=Edit "{0}" +provider.add.new=添加服务商 +provider.no.instances.hint=尚未配置任何服务商。点击 "添加服务商" 以开始。 +provider.model.panel.select.hint=在左侧选择一个提供商以浏览其模型 +provider.model.panel.model.count={0} 个模型 +provider.instance.name.label=实例名称 +provider.instance.name.placeholder=例如 "Work OpenAI", "ollama-macbook" +provider.instance.name.duplicate=名为"{0}"的提供商已存在 provider.setup.required.title=需要设置 AI 服务商 provider.setup.required.message=开始聊天前需选择并配置 AI 服务商。 provider.setup.required.button=设置 -provider.select.prompt=选择服务商: provider.configure.prompt=配置: -provider.choose.placeholder=请选择服务商... provider.setup.guide=如何设置 {0} provider.apikey.stored=API Key 已安全保存 provider.apikey.enter=输入 API Key -provider.apikey.already.stored=已保存 provider.apikey.security.message=🔒 您的 API Key 已加密并安全存储。我们不会共享数据。 provider.apikey.security.link=了解我们如何保护您的数据 provider.not.set=未设置 @@ -946,11 +943,6 @@ telemetry.tab.llm=LLM telemetry.rag.total.queries=总查询数 telemetry.rag.triggered.label=已触发 telemetry.rag.skipped.label=已跳过 -telemetry.llm.calls=LLM 调用 -telemetry.llm.calls.count={0} 次调用 -telemetry.llm.tokens={0} tok -telemetry.llm.errors={0} 错误 -telemetry.total.tokens=总 Token 数\: {0} telemetry.llm.col.provider=提供商 telemetry.llm.col.model=模型 telemetry.llm.col.calls=调用 From 3d28c9c5c5b0f9f468e0a94ebda4d975745db8d0 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 18 Jul 2026 06:05:40 +0000 Subject: [PATCH 058/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../resources/i18n/messages_zh_TW.properties | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 386efc272..768994004 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -335,18 +335,6 @@ theme.dark=深色 theme.dark.description=永遠使用深色主題 theme.system=系統 theme.system.description=依照系統主題 -theme.sepia=褐色 -theme.sepia.description=溫暖的羊皮紙色調,護眼舒適 -theme.ocean=海洋 -theme.ocean.description=柔和的天藍色調,平靜清新 -theme.nord=Nord -theme.nord.description=北極風深色調色盤,冷靜而專注 -theme.sage=鼠尾草 -theme.sage.description=低飽和灰綠色調,沉穩而雅緻 -theme.rose=玫瑰 -theme.rose.description=柔和的腮紅粉,優雅而溫暖 -theme.indigo=靛藍 -theme.indigo.description=深邃的紫藍色,神秘且富有創意 settings.layout.density=版面密度 settings.layout.density.description=調整應用程式的間距與內距密度。 layout.density.comfortable=舒適 @@ -514,6 +502,7 @@ action.close=關閉 action.show.more=顯示更多 action.show.less=顯示更少 action.back=返回 +action.next=下一步 action.retry=重試 action.done=完成 action.refresh=重新整理 @@ -769,7 +758,8 @@ settings.model.search=搜尋模型 settings.model.search.placeholder=輸入以篩選模型... settings.model.filtered=顯示 {0} / {1} 個模型 settings.model.no.match=沒有符合的模型 -settings.model.no.results=沒有符合的模型 +settings.model.chat.filter.label=聊天模型 · 已顯示 {0} +settings.model.chat.filter.show.all=顯示所有 {0} settings.configure.title=設定 {0} settings.test.connection.testing=測試中... settings.placeholder.baseurl=http\://localhost\:11434 @@ -859,18 +849,25 @@ outdated.branch.header=先前編輯所遺留的 {0} 筆過期訊息(點擊展 outdated.label=過期 # Provider Dialog -provider.change.title=變更供應商 -provider.select.title=選擇供應商 +provider.manage.title=管理服務商 +provider.type.picker.title=選擇服務商類型 +provider.type.picker.prompt=選擇要新增的服務商類型: +provider.configure.new.title=Configure {0} +provider.edit.title=Edit "{0}" +provider.add.new=新增服務商 +provider.no.instances.hint=尚未設定任何服務商。點擊 "新增服務商" 以開始。 +provider.model.panel.select.hint=在左側選擇一個提供商以瀏覽其模型 +provider.model.panel.model.count={0} 個模型 +provider.instance.name.label=執行個體名稱 +provider.instance.name.placeholder=例如 "Work OpenAI", "ollama-macbook" +provider.instance.name.duplicate=名為「{0}」的提供商已存在 provider.setup.required.title=需要設定 AI 供應商 provider.setup.required.message=開始對話前,請先選擇並設定一個 AI 供應商。 provider.setup.required.button=設定 -provider.select.prompt=選擇供應商: provider.configure.prompt=設定供應商: -provider.choose.placeholder=選擇供應商... provider.setup.guide=如何設定 {0} provider.apikey.stored=API 金鑰已安全儲存 provider.apikey.enter=輸入 API 金鑰 -provider.apikey.already.stored=已儲存 provider.apikey.security.message=🔒 您的 API 金鑰已加密並安全儲存。我們絕不分享您的資料。 provider.apikey.security.link=了解我們如何保護您的資料 provider.not.set=尚未設定 @@ -946,11 +943,6 @@ telemetry.tab.llm=LLM telemetry.rag.total.queries=總查詢數 telemetry.rag.triggered.label=已觸發 telemetry.rag.skipped.label=已跳過 -telemetry.llm.calls=LLM 呼叫 -telemetry.llm.calls.count={0} 次呼叫 -telemetry.llm.tokens={0} tok -telemetry.llm.errors={0} 錯誤 -telemetry.total.tokens=總 Token 數\: {0} telemetry.llm.col.provider=提供者 telemetry.llm.col.model=模型 telemetry.llm.col.calls=呼叫 From 3239af16b3196eb85eff9cfc91391a1c9c4e3b54 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 18 Jul 2026 06:05:42 +0000 Subject: [PATCH 059/251] New translations messages.properties (Vietnamese) [ci skip] --- .../resources/i18n/messages_vi_VN.properties | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index c146749b3..60eaa9b07 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -335,18 +335,6 @@ theme.dark=Tối theme.dark.description=Luôn dùng chủ đề tối theme.system=Hệ thống theme.system.description=Theo chủ đề hệ thống -theme.sepia=Nâu Sepia -theme.sepia.description=Tông màu ấm áp, dễ chịu cho mắt -theme.ocean=Đại dương -theme.ocean.description=Tông xanh da trời dịu nhẹ, êm dịu và tươi mát -theme.nord=Nord -theme.nord.description=Bảng màu tối Bắc Cực, mát lạnh và tập trung -theme.sage=Xanh xô thơm -theme.sage.description=Tông xanh xám dịu, tinh tế và điềm tĩnh -theme.rose=Hồng -theme.rose.description=Màu hồng phấn nhẹ, thanh lịch và ấm áp -theme.indigo=Chàm -theme.indigo.description=Xanh tím đậm, huyền bí và sáng tạo settings.layout.density=Mật độ bố cục settings.layout.density.description=Điều chỉnh khoảng cách và phần đệm trong toàn bộ ứng dụng. layout.density.comfortable=Thoải mái @@ -514,6 +502,7 @@ action.close=Đóng action.show.more=Xem thêm action.show.less=Thu gọn action.back=Quay lại +action.next=Tiếp theo action.retry=Thử lại action.done=Hoàn thành action.refresh=Tải lại @@ -769,7 +758,8 @@ settings.model.search=Tìm mô hình settings.model.search.placeholder=Nhập để lọc mô hình... settings.model.filtered=Hiển thị {0}/{1} mô hình settings.model.no.match=Không có mô hình phù hợp -settings.model.no.results=Không có mô hình phù hợp +settings.model.chat.filter.label=Mô hình chat · đã hiển thị {0} +settings.model.chat.filter.show.all=Hiển thị tất cả {0} settings.configure.title=Cấu hình {0} settings.test.connection.testing=Đang kiểm tra... settings.placeholder.baseurl=http\://localhost\:11434 @@ -859,18 +849,25 @@ outdated.branch.header={0} tin nhắn cũ từ lần chỉnh sửa trước (nh outdated.label=cũ # Provider Dialog -provider.change.title=Đổi nhà cung cấp -provider.select.title=Chọn nhà cung cấp +provider.manage.title=Quản lý nhà cung cấp +provider.type.picker.title=Chọn loại nhà cung cấp +provider.type.picker.prompt=Chọn loại nhà cung cấp để thêm\: +provider.configure.new.title=Configure {0} +provider.edit.title=Edit "{0}" +provider.add.new=Thêm nhà cung cấp +provider.no.instances.hint=Chưa có nhà cung cấp nào được cấu hình. Nhấp vào "Thêm nhà cung cấp" để bắt đầu. +provider.model.panel.select.hint=Chọn nhà cung cấp ở bên trái để duyệt các mô hình +provider.model.panel.model.count={0} mô hình +provider.instance.name.label=Tên phiên bản +provider.instance.name.placeholder=Ví dụ\: "Work OpenAI", "ollama-macbook" +provider.instance.name.duplicate=Nhà cung cấp có tên "{0}" đã tồn tại provider.setup.required.title=Thiết lập nhà cung cấp AI provider.setup.required.message=Hãy chọn và cấu hình nhà cung cấp AI trước khi bắt đầu trò chuyện. provider.setup.required.button=Thiết lập -provider.select.prompt=Chọn nhà cung cấp\: provider.configure.prompt=Cấu hình\: -provider.choose.placeholder=Chọn nhà cung cấp... provider.setup.guide=Cách thiết lập {0} provider.apikey.stored=API key đã lưu an toàn provider.apikey.enter=Nhập API key -provider.apikey.already.stored=Đã lưu provider.apikey.security.message=🔒 API key của bạn được mã hóa và lưu trữ an toàn. Chúng tôi không chia sẻ dữ liệu. provider.apikey.security.link=Tìm hiểu cách chúng tôi bảo vệ dữ liệu của bạn provider.not.set=Chưa thiết lập @@ -946,11 +943,6 @@ telemetry.tab.llm=LLM telemetry.rag.total.queries=Tổng số truy vấn telemetry.rag.triggered.label=Đã kích hoạt telemetry.rag.skipped.label=Đã bỏ qua -telemetry.llm.calls=Cuộc gọi LLM -telemetry.llm.calls.count={0} cuộc gọi -telemetry.llm.tokens={0} tok -telemetry.llm.errors={0} lỗi -telemetry.total.tokens=Tổng số Token\: {0} telemetry.llm.col.provider=Nhà cung cấp telemetry.llm.col.model=Mô hình telemetry.llm.col.calls=Cuộc gọi From a6cdfc4ccc2ae591c1bfc86e954ce4da690bb22b Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 18 Jul 2026 07:28:24 +0000 Subject: [PATCH 060/251] Update source file messages.properties [ci skip] --- .../main/resources/i18n/messages.properties | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 33d5c0c87..58ed0e29f 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -332,18 +332,6 @@ theme.dark=Dark theme.dark.description=Always use dark theme theme.system=System theme.system.description=Follow system theme settings -theme.sepia=Sepia -theme.sepia.description=Warm parchment tones, easy on the eyes -theme.ocean=Ocean -theme.ocean.description=Soft sky-blue tones, calm and refreshing -theme.nord=Nord -theme.nord.description=Arctic dark palette, cool and focused -theme.sage=Sage -theme.sage.description=Muted grey-green tones, sophisticated and calm -theme.rose=Rose -theme.rose.description=Soft blush pink, elegant and warm -theme.indigo=Indigo -theme.indigo.description=Deep violet-blue, mystical and creative settings.layout.density=Layout Density settings.layout.density.description=Adjust spacing and padding density across the app. layout.density.comfortable=Comfortable @@ -511,6 +499,7 @@ action.close=Close action.show.more=Show more action.show.less=Show less action.back=Back +action.next=Next action.retry=Try Again action.done=Done action.refresh=Refresh @@ -766,7 +755,8 @@ settings.model.search=Search Models settings.model.search.placeholder=Type to filter models... settings.model.filtered=Showing {0} of {1} models settings.model.no.match=No models match your search -settings.model.no.results=No models match your search +settings.model.chat.filter.label=Chat models · {0} shown +settings.model.chat.filter.show.all=Show all {0} settings.configure.title=Configure {0} Settings settings.test.connection.testing=Testing... settings.placeholder.baseurl=http://localhost:11434 @@ -856,18 +846,25 @@ outdated.branch.header={0} outdated messages from previous edit (click to expand outdated.label=outdated # Provider Dialog -provider.change.title=Change Provider -provider.select.title=Select Provider +provider.manage.title=Manage Providers +provider.type.picker.title=Choose Provider Type +provider.type.picker.prompt=Select the type of provider to add: +provider.configure.new.title=Configure {0} +provider.edit.title=Edit "{0}" +provider.add.new=Add Provider +provider.no.instances.hint=No providers configured yet. Click "Add Provider" to get started. +provider.model.panel.select.hint=Select a provider on the left to browse its models +provider.model.panel.model.count={0} models +provider.instance.name.label=Instance name +provider.instance.name.placeholder=e.g. "Work OpenAI", "ollama-macbook" +provider.instance.name.duplicate=A provider named "{0}" already exists provider.setup.required.title=Setup AI Provider provider.setup.required.message=Before you can start chatting, you need to set up an AI provider. Please select a provider from the list and configure it. provider.setup.required.button=Set Up Provider -provider.select.prompt=Select a provider: provider.configure.prompt=Configure provider: -provider.choose.placeholder=Choose a provider... provider.setup.guide=How to set up {0} provider.apikey.stored=API key stored securely provider.apikey.enter=Enter API key -provider.apikey.already.stored=Already stored provider.apikey.security.message=🔒 Your API key is encrypted and stored securely. We never share your data. provider.apikey.security.link=Learn how we protect your data provider.not.set=Not set @@ -943,11 +940,6 @@ telemetry.tab.llm=LLM telemetry.rag.total.queries=Total Queries telemetry.rag.triggered.label=Triggered telemetry.rag.skipped.label=Skipped -telemetry.llm.calls=LLM Calls -telemetry.llm.calls.count={0} calls -telemetry.llm.tokens={0} tok -telemetry.llm.errors={0} err -telemetry.total.tokens=Total Tokens: {0} telemetry.llm.col.provider=Provider telemetry.llm.col.model=Model telemetry.llm.col.calls=Calls From a0f3e2e4838c2bb6148cf9abf198eaa4eee50e1e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:53:59 +0000 Subject: [PATCH 061/251] New translations messages.properties (French) [ci skip] --- .../src/main/resources/i18n/messages_fr.properties | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 78f5b4006..f6fe0095f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -247,7 +247,6 @@ session.error.removing=Échec du retrait de la session du projet. Veuillez rées # Settings settings.title=Paramètres -settings.general=Général settings.appearance=Apparence settings.appearance.accent=Couleur d’accent settings.appearance.accent.description=Personnalisez en toute sécurité une seule couleur d’accent. Askimo l’applique aux accents principaux de l’interface et dérive des couleurs associées pour préserver la lisibilité. @@ -324,7 +323,6 @@ settings.provider=Fournisseur settings.theme=Thème settings.save=Enregistrer settings.cancel=Annuler -settings.provider.change.button=Modifier settings.model.change.button=Modifier settings.change.button=Modifier @@ -538,6 +536,9 @@ settings.hardware.acceleration.title=Accélération matérielle settings.hardware.acceleration.description=Utilisez le rendu accéléré par GPU pour une interface plus fluide. Désactivez cette option si vous rencontrez des problèmes graphiques. settings.hardware.acceleration.description.windows=Utilisez le rendu accéléré par GPU (Direct3D/OpenGL) pour une interface plus fluide. Désactivez cette option si vous rencontrez des scintillements ou des fréquences de rafraîchissement erratiques avec les écrans G-Sync ou FreeSync. settings.hardware.acceleration.restart.notice=Redémarrez Askimo pour appliquer ce changement. +settings.ui.scale.title=Échelle d'affichage +settings.ui.scale.description=Ajustez l'échelle globale de l'interface utilisateur. Un redémarrage est nécessaire pour que les modifications prennent effet. +settings.ui.scale.restart.notice=Redémarrez Askimo pour appliquer le changement d'échelle. settings.hardware.acceleration.restart.title=Redémarrage requis settings.hardware.acceleration.restart.message=Veuillez redémarrer Askimo pour que le changement de rendu prenne effet. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync détecté @@ -734,11 +735,10 @@ settings.font.family.ui=Famille de police UI settings.font.family.code=Famille de police Code settings.font.size=Taille de police settings.font.line.spacing=Interligne -settings.font.custom.scale=Mise à l'échelle personnalisée (avancé) -settings.font.custom.scale.description=Remplace les préréglages. À utiliser avec précaution sur les écrans à très haute DPI. -settings.font.custom.scale.value=Échelle \: {0}% settings.shortcuts=Raccourcis clavier settings.shortcuts.description=Afficher tous les raccourcis clavier disponibles pour améliorer votre productivité +settings.shortcuts.search=Rechercher des raccourcis... +settings.shortcuts.no_results=Aucun raccourci ne correspond à votre recherche settings.app.language=Langue de l'application settings.app.language.translation.help=Vous voyez une erreur ? Aidez-nous à améliorer la traduction. settings.app.language.translation.contribute=Contribuer sur Crowdin @@ -911,6 +911,7 @@ provider.lmstudio.openai.compat.info=Askimo utilise les points de terminaison co # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=L'URL de base pour votre instance compatible OpenAI +provider.openai_compatible.apikey.description=Clé API pour le fournisseur (optionnel - laissez vide si le point de terminaison ne nécessite pas d'authentification) provider.openai_compatible.apikey.stored=La clé API est déjà stockée en toute sécurité. Laissez vide pour conserver la clé existante, ou saisissez-en une nouvelle pour la mettre à jour. # System Resources @@ -1104,7 +1105,6 @@ mermaid.setup.button.copy.diagram=Copier le diagramme mermaid.diagram.source.label=Source du diagramme \: mermaid.rendering.progress=Rendu du diagramme en cours... mermaid.error.rendering.title=Erreur lors du rendu du diagramme -mermaid.error.rendering.raw.label=Diagramme brut \: mermaid.error.unexpected.state=État inattendu. Veuillez réessayer. mermaid.error.failed.load.image=Échec du chargement de l’image du diagramme mermaid.button.copy.code=Copier le code @@ -1382,7 +1382,6 @@ skills.view.empty.search=Aucune compétence ne correspond à votre recherche skills.view.manage=Gérer les compétences skills.view.select.prompt=Sélectionnez une compétence à exécuter skills.view.select.hint=Choisissez une compétence dans le panneau des compétences à droite -skills.view.select.skill=Sélectionnez une compétence… skills.view.run=Exécuter la compétence skills.view.run.command=Envoyer la commande skills.view.running=Exécution… From 693bffac6c171ee4bfef8f25697e42731bb1addc Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:54:01 +0000 Subject: [PATCH 062/251] New translations messages.properties (Spanish) [ci skip] --- .../src/main/resources/i18n/messages_es.properties | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 50d36583b..aafad7167 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -247,7 +247,6 @@ session.error.removing=Error al eliminar la sesión del proyecto. Por favor, int # Settings settings.title=Configuración -settings.general=General settings.appearance=Apariencia settings.appearance.accent=Color de acento settings.appearance.accent.description=Personaliza con seguridad un solo color de acento. Askimo lo aplica a los acentos principales de la interfaz y deriva colores relacionados para mantener la legibilidad. @@ -324,7 +323,6 @@ settings.provider=Proveedor settings.theme=Tema settings.save=Guardar settings.cancel=Cancelar -settings.provider.change.button=Cambiar settings.model.change.button=Cambiar settings.change.button=Cambiar @@ -538,6 +536,9 @@ settings.hardware.acceleration.title=Aceleración por hardware settings.hardware.acceleration.description=Usa renderizado acelerado por GPU para un rendimiento de la interfaz más fluido. Desactiva esto si experimentas problemas gráficos. settings.hardware.acceleration.description.windows=Usa renderizado acelerado por GPU (Direct3D/OpenGL) para un rendimiento de la interfaz más fluido. Desactiva esto si experimentas parpadeo o tasas de refresco erráticas con pantallas G-Sync o FreeSync. settings.hardware.acceleration.restart.notice=Reinicia Askimo para que este cambio surta efecto. +settings.ui.scale.title=Escala de pantalla +settings.ui.scale.description=Ajuste la escala general de la interfaz de usuario. Es necesario reiniciar para que los cambios surtan efecto. +settings.ui.scale.restart.notice=Reinicia Askimo para que el cambio de escala surta efecto. settings.hardware.acceleration.restart.title=Reinicio requerido settings.hardware.acceleration.restart.message=Por favor, reinicia Askimo para que el cambio de renderizado surta efecto. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync detectado @@ -734,11 +735,10 @@ settings.font.family.ui=Familia de Tipografía UI settings.font.family.code=Familia de Tipografía Código settings.font.size=Tamaño de fuente settings.font.line.spacing=Espaciado de línea -settings.font.custom.scale=Escalado personalizado (avanzado) -settings.font.custom.scale.description=Anula los ajustes predefinidos. Úselo con cuidado en pantallas con DPI muy alto. -settings.font.custom.scale.value=Escala\: {0}% settings.shortcuts=Atajos settings.shortcuts.description=Ver todas las combinaciones de teclas disponibles para mejorar su productividad +settings.shortcuts.search=Buscar atajos... +settings.shortcuts.no_results=Ningún atajo coincide con tu búsqueda settings.app.language=Idioma de la aplicación settings.app.language.translation.help=¿Ves algo incorrecto? Ayúdanos a mejorar la traducción. settings.app.language.translation.contribute=Contribuir en Crowdin @@ -911,6 +911,7 @@ provider.lmstudio.openai.compat.info=Askimo utiliza los endpoints compatibles co # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=La URL base para su instancia compatible con OpenAI +provider.openai_compatible.apikey.description=Clave API del proveedor (opcional\: déjela en blanco si el punto de conexión no requiere autenticación) provider.openai_compatible.apikey.stored=La clave API ya está almacenada de forma segura. Déjelo en blanco para mantener la clave existente o introduzca una nueva para actualizarla. # System Resources @@ -1104,7 +1105,6 @@ mermaid.setup.button.copy.diagram=Copiar diagrama mermaid.diagram.source.label=Fuente del diagrama\: mermaid.rendering.progress=Renderizando diagrama... mermaid.error.rendering.title=Error al renderizar el diagrama -mermaid.error.rendering.raw.label=Diagrama sin procesar\: mermaid.error.unexpected.state=Estado inesperado. Por favor, inténtalo de nuevo. mermaid.error.failed.load.image=No se pudo cargar la imagen del diagrama mermaid.button.copy.code=Copiar código @@ -1382,7 +1382,6 @@ skills.view.empty.search=No hay habilidades que coincidan con su búsqueda skills.view.manage=Gestionar habilidades skills.view.select.prompt=Selecciona una habilidad para ejecutar skills.view.select.hint=Elige una habilidad del panel de habilidades a la derecha -skills.view.select.skill=Selecciona una habilidad… skills.view.run=Ejecutar habilidad skills.view.run.command=Enviar comando skills.view.running=Ejecutando… From e4ba033a01c1c321a548f75e6b5218e9256ac620 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:54:02 +0000 Subject: [PATCH 063/251] New translations messages.properties (German) [ci skip] --- .../src/main/resources/i18n/messages_de.properties | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index aa2de1f99..f8a8c0d94 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -247,7 +247,6 @@ session.error.removing=Sitzung konnte nicht aus dem Projekt entfernt werden. Bit # Settings settings.title=Einstellungen -settings.general=Allgemein settings.appearance=Erscheinungsbild settings.appearance.accent=Akzentfarbe settings.appearance.accent.description=Passen Sie eine einzelne Akzentfarbe sicher an. Askimo wendet sie auf primäre UI-Akzente an und leitet weitere Farben für gute Lesbarkeit ab. @@ -324,7 +323,6 @@ settings.provider=Anbieter settings.theme=Design settings.save=Speichern settings.cancel=Abbrechen -settings.provider.change.button=Ändern settings.model.change.button=Ändern settings.change.button=Ändern @@ -538,6 +536,9 @@ settings.hardware.acceleration.title=Hardwarebeschleunigung settings.hardware.acceleration.description=Verwenden Sie GPU-beschleunigtes Rendering für eine flüssigere UI-Performance. Deaktivieren Sie dies, falls grafische Probleme auftreten. settings.hardware.acceleration.description.windows=Verwenden Sie GPU-beschleunigtes Rendering (Direct3D/OpenGL) für eine flüssigere UI-Performance. Deaktivieren Sie dies, falls Flimmern oder unregelmäßige Bildwiederholraten bei G-Sync- oder FreeSync-Monitoren auftreten. settings.hardware.acceleration.restart.notice=Starten Sie Askimo neu, damit diese Änderung wirksam wird. +settings.ui.scale.title=Anzeigeskalierung +settings.ui.scale.description=Passen Sie die gesamte UI-Skalierung an. Ein Neustart ist erforderlich, damit die Änderungen wirksam werden. +settings.ui.scale.restart.notice=Starten Sie Askimo neu, damit die Skalierungsänderung wirksam wird. settings.hardware.acceleration.restart.title=Neustart erforderlich settings.hardware.acceleration.restart.message=Bitte starten Sie Askimo neu, damit die Rendering-Änderung wirksam wird. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync erkannt @@ -734,11 +735,10 @@ settings.font.family.ui=UI-Schriftfamilie settings.font.family.code=Code-Schriftfamilie settings.font.size=Schriftgröße settings.font.line.spacing=Zeilenabstand -settings.font.custom.scale=Benutzerdefinierte Skalierung (Erweitert) -settings.font.custom.scale.description=Überschreibt Voreinstellungen. Bei sehr hochauflösenden Displays mit Bedacht verwenden. -settings.font.custom.scale.value=Skalierung\: {0}% settings.shortcuts=Tastenkombinationen settings.shortcuts.description=Alle verfügbaren Tastenkombinationen anzeigen, um Ihre Produktivität zu steigern +settings.shortcuts.search=Tastenkombinationen suchen... +settings.shortcuts.no_results=Keine Tastenkombinationen entsprechen Ihrer Suche settings.app.language=App-Sprache settings.app.language.translation.help=Sehen Sie einen Fehler? Helfen Sie uns, die Übersetzung zu verbessern. settings.app.language.translation.contribute=Auf Crowdin beitragen @@ -911,6 +911,7 @@ provider.lmstudio.openai.compat.info=Askimo verwendet OpenAI-kompatible Endpunkt # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=Die Basis-URL für Ihre OpenAI-kompatible Instanz +provider.openai_compatible.apikey.description=API-Schlüssel für den Anbieter (optional – lassen Sie das Feld leer, wenn der Endpunkt keine Authentifizierung erfordert) provider.openai_compatible.apikey.stored=Der API-Schlüssel ist bereits sicher gespeichert. Lassen Sie das Feld leer, um den bestehenden Schlüssel zu behalten, oder geben Sie einen neuen ein, um ihn zu aktualisieren. # System Resources @@ -1104,7 +1105,6 @@ mermaid.setup.button.copy.diagram=Diagramm kopieren mermaid.diagram.source.label=Diagrammquelle\: mermaid.rendering.progress=Diagramm wird gerendert... mermaid.error.rendering.title=Fehler beim Rendern des Diagramms -mermaid.error.rendering.raw.label=Rohes Diagramm\: mermaid.error.unexpected.state=Unerwarteter Zustand. Bitte versuchen Sie es erneut. mermaid.error.failed.load.image=Diagrammbild konnte nicht geladen werden mermaid.button.copy.code=Code kopieren @@ -1382,7 +1382,6 @@ skills.view.empty.search=Keine Fertigkeiten entsprechen Ihrer Suche skills.view.manage=Skills verwalten skills.view.select.prompt=Wählen Sie eine Skill aus skills.view.select.hint=Wählen Sie eine Skill aus dem Skills-Panel auf der rechten Seite -skills.view.select.skill=Skill auswählen… skills.view.run=Fähigkeit ausführen skills.view.run.command=Befehl senden skills.view.running=Wird ausgeführt… From b6e266750f31faf83fe40139c94e41edde8e9d0e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:54:04 +0000 Subject: [PATCH 064/251] New translations messages.properties (Japanese) [ci skip] --- .../main/resources/i18n/messages_ja_JP.properties | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 51a68136f..8f7f3c8c2 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -247,7 +247,6 @@ session.error.removing=セッションをプロジェクトから削除できま # Settings settings.title=設定 -settings.general=一般 settings.appearance=外観 settings.appearance.accent=アクセントカラー settings.appearance.accent.description=単一のアクセントカラーを安全にカスタマイズします。Askimo は主要な UI アクセントに適用し、読みやすさのために関連色を自動生成します。 @@ -324,7 +323,6 @@ settings.provider=プロバイダー settings.theme=テーマ settings.save=保存 settings.cancel=キャンセル -settings.provider.change.button=変更 settings.model.change.button=変更 settings.change.button=変更 @@ -538,6 +536,9 @@ settings.hardware.acceleration.title=ハードウェアアクセラレーショ settings.hardware.acceleration.description=GPUアクセラレーションによるレンダリングを使用して、UIのパフォーマンスを向上させます。グラフィックに問題が発生した場合は、これを無効にしてください。 settings.hardware.acceleration.description.windows=GPUアクセラレーションによるレンダリング(Direct3D/OpenGL)を使用して、UIのパフォーマンスを向上させます。G-SyncやFreeSyncディスプレイでちらつきや不安定なリフレッシュレートが発生した場合は、これを無効にしてください。 settings.hardware.acceleration.restart.notice=この変更を有効にするには、Askimoを再起動してください。 +settings.ui.scale.title=表示スケール +settings.ui.scale.description=UI全体のスケールを調整します。変更を適用するには再起動が必要です。 +settings.ui.scale.restart.notice=スケールの変更を有効にするには、Askimoを再起動してください。 settings.hardware.acceleration.restart.title=再起動が必要です settings.hardware.acceleration.restart.message=レンダリング設定の変更を有効にするには、Askimoを再起動してください。 settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSyncが検出されました @@ -734,11 +735,10 @@ settings.font.family.ui=UI フォントファミリー settings.font.family.code=コード フォントファミリー settings.font.size=フォントサイズ settings.font.line.spacing=行間 -settings.font.custom.scale=カスタムスケーリング(上級者向け) -settings.font.custom.scale.description=プリセットを上書きします。超高DPIディスプレイでは注意して使用してください。 -settings.font.custom.scale.value=スケール\: {0}% settings.shortcuts=ショートカット settings.shortcuts.description=生産性を向上させるために、利用可能なすべてのキーボードショートカットを表示します +settings.shortcuts.search=ショートカットを検索... +settings.shortcuts.no_results=検索条件に一致するショートカットはありません settings.app.language=アプリ言語 settings.app.language.translation.help=何か間違いがありますか?翻訳の改善にご協力ください。 settings.app.language.translation.contribute=Crowdinで貢献する @@ -911,6 +911,7 @@ provider.lmstudio.openai.compat.info=Askimo はネイティブ LMStudio API(/a # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=OpenAI互換インスタンスのベースURL +provider.openai_compatible.apikey.description=プロバイダーのAPIキー(オプション - エンドポイントで認証が不要な場合は空欄にしてください) provider.openai_compatible.apikey.stored=APIキーはすでに安全に保存されています。既存のキーを保持する場合は空白のままにし、更新する場合は新しいキーを入力してください。 # System Resources @@ -1104,7 +1105,6 @@ mermaid.setup.button.copy.diagram=図をコピー mermaid.diagram.source.label=図のソース: mermaid.rendering.progress=図をレンダリング中... mermaid.error.rendering.title=図のレンダリングエラー -mermaid.error.rendering.raw.label=生の図: mermaid.error.unexpected.state=予期しない状態です。もう一度お試しください。 mermaid.error.failed.load.image=図の画像を読み込めませんでした mermaid.button.copy.code=コードをコピー @@ -1382,7 +1382,6 @@ skills.view.empty.search=検索条件に一致するスキルはありません skills.view.manage=スキルを管理 skills.view.select.prompt=実行するスキルを選択してください skills.view.select.hint=右のスキルパネルからスキルを選択してください -skills.view.select.skill=スキルを選択してください… skills.view.run=スキルを実行 skills.view.run.command=コマンドを送信 skills.view.running=実行中… From 96284fd59505a39d0c6667da9bb02deb72b3c5dc Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:54:05 +0000 Subject: [PATCH 065/251] New translations messages.properties (Korean) [ci skip] --- .../main/resources/i18n/messages_ko_KR.properties | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index f888347c3..16a0e6eb5 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -247,7 +247,6 @@ session.error.removing=세션을 프로젝트에서 제거하지 못했습니다 # Settings settings.title=설정 -settings.general=일반 settings.appearance=모양 settings.appearance.accent=강조 색상 settings.appearance.accent.description=단일 강조 색상을 안전하게 사용자 지정합니다. Askimo는 이를 주요 UI 강조에 적용하고, 읽기 쉬움을 위해 관련 색상을 파생합니다. @@ -324,7 +323,6 @@ settings.provider=제공자 settings.theme=테마 settings.save=저장 settings.cancel=취소 -settings.provider.change.button=변경 settings.model.change.button=변경 settings.change.button=변경 @@ -538,6 +536,9 @@ settings.hardware.acceleration.title=하드웨어 가속 settings.hardware.acceleration.description=GPU 가속 렌더링을 사용하여 UI 성능을 원활하게 합니다. 그래픽 문제가 발생하면 이 옵션을 비활성화하세요. settings.hardware.acceleration.description.windows=GPU 가속 렌더링(Direct3D/OpenGL)을 사용하여 UI 성능을 원활하게 합니다. G-Sync 또는 FreeSync 디스플레이에서 깜박임이나 불규칙한 재생 빈도 문제가 발생하면 이 옵션을 비활성화하세요. settings.hardware.acceleration.restart.notice=변경 사항을 적용하려면 Askimo를 다시 시작하세요. +settings.ui.scale.title=화면 배율 +settings.ui.scale.description=전체 UI 배율을 조정합니다. 변경 사항을 적용하려면 재시작이 필요합니다. +settings.ui.scale.restart.notice=배율 변경을 적용하려면 Askimo를 다시 시작하세요. settings.hardware.acceleration.restart.title=재시작 필요 settings.hardware.acceleration.restart.message=렌더링 변경 사항을 적용하려면 Askimo를 다시 시작하세요. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync 감지됨 @@ -734,11 +735,10 @@ settings.font.family.ui=UI 폰트 패밀리 settings.font.family.code=코드 폰트 패밀리 settings.font.size=글꼴 크기 settings.font.line.spacing=줄 간격 -settings.font.custom.scale=사용자 지정 스케일링(고급) -settings.font.custom.scale.description=프리셋을 덮어씁니다. 매우 높은 DPI 디스플레이에서는 주의해서 사용하세요. -settings.font.custom.scale.value=배율\: {0}% settings.shortcuts=단축키 settings.shortcuts.description=생산성을 높이기 위해 사용 가능한 모든 키보드 단축키를 확인하세요 +settings.shortcuts.search=바로가기 검색... +settings.shortcuts.no_results=검색 결과에 일치하는 바로가기가 없습니다 settings.app.language=애플리케이션 언어 settings.app.language.translation.help=잘못된 부분이 있나요? 번역 개선에 도움을 주세요. settings.app.language.translation.contribute=Crowdin에서 기여하기 @@ -911,6 +911,7 @@ provider.lmstudio.openai.compat.info=Askimo는 기본 LMStudio API(/api/v1/)가 # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=OpenAI 호환 인스턴스의 기본 URL +provider.openai_compatible.apikey.description=공급자용 API 키 (선택 사항 - 엔드포인트에 인증이 필요하지 않은 경우 비워 두세요) provider.openai_compatible.apikey.stored=API 키가 이미 안전하게 저장되었습니다. 기존 키를 유지하려면 비워두고, 업데이트하려면 새 키를 입력하세요. # System Resources @@ -1104,7 +1105,6 @@ mermaid.setup.button.copy.diagram=다이어그램 복사 mermaid.diagram.source.label=다이어그램 소스\: mermaid.rendering.progress=다이어그램 렌더링 중... mermaid.error.rendering.title=다이어그램 렌더링 오류 -mermaid.error.rendering.raw.label=원본 다이어그램\: mermaid.error.unexpected.state=예기치 않은 상태입니다. 다시 시도하세요. mermaid.error.failed.load.image=다이어그램 이미지를 불러오지 못했습니다 mermaid.button.copy.code=코드 복사 @@ -1382,7 +1382,6 @@ skills.view.empty.search=검색어와 일치하는 기술이 없습니다 skills.view.manage=스킬 관리 skills.view.select.prompt=실행할 스킬을 선택하세요 skills.view.select.hint=오른쪽 스킬 패널에서 스킬을 선택하세요 -skills.view.select.skill=스킬을 선택하세요… skills.view.run=스킬 실행 skills.view.run.command=명령 보내기 skills.view.running=실행 중… From 34950db1b86f29d360348fac2efa5c0095e3183f Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:54:06 +0000 Subject: [PATCH 066/251] New translations messages.properties (Portuguese) [ci skip] --- .../src/main/resources/i18n/messages_pt.properties | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index defdf5917..510495f1f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -247,7 +247,6 @@ session.error.removing=Failed to remove session from project. Please try again. # Settings settings.title=Settings -settings.general=General settings.appearance=Appearance settings.appearance.accent=Accent Color settings.appearance.accent.description=Customize a single accent color safely. Askimo applies it to primary UI accents and derives related colors for readability. @@ -324,7 +323,6 @@ settings.provider=Provider settings.theme=Theme settings.save=Save settings.cancel=Cancel -settings.provider.change.button=Change settings.model.change.button=Change settings.change.button=Change @@ -538,6 +536,9 @@ settings.hardware.acceleration.title=Hardware Acceleration settings.hardware.acceleration.description=Use GPU-accelerated rendering for smoother UI performance. Disable this if you experience graphical issues. settings.hardware.acceleration.description.windows=Use GPU-accelerated rendering (Direct3D/OpenGL) for smoother UI performance. Disable this if you experience flickering or erratic refresh rates with G-Sync or FreeSync displays. settings.hardware.acceleration.restart.notice=Restart Askimo for this change to take effect. +settings.ui.scale.title=Display Scale +settings.ui.scale.description=Adjust the overall UI scale. A restart is required for changes to take effect. +settings.ui.scale.restart.notice=Restart Askimo for the scale change to take effect. settings.hardware.acceleration.restart.title=Restart Required settings.hardware.acceleration.restart.message=Please restart Askimo for the rendering change to take effect. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync Detected @@ -734,11 +735,10 @@ settings.font.family.ui=UI Font Family settings.font.family.code=Code Font Family settings.font.size=Font Size settings.font.line.spacing=Line Spacing -settings.font.custom.scale=Custom scaling (advanced) -settings.font.custom.scale.description=Overrides presets. Use with care on very high DPI displays. -settings.font.custom.scale.value=Scale\: {0}% settings.shortcuts=Keyboard Shortcuts settings.shortcuts.description=View all available keyboard shortcuts to improve your productivity +settings.shortcuts.search=Search shortcuts... +settings.shortcuts.no_results=No shortcuts match your search settings.app.language=Application Language settings.app.language.translation.help=See something wrong? Help us improve the translation. settings.app.language.translation.contribute=Contribute on Crowdin @@ -911,6 +911,7 @@ provider.lmstudio.openai.compat.info=Askimo uses OpenAI-compatible endpoints (/v # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=The base URL for your OpenAI Compatible instance +provider.openai_compatible.apikey.description=API key for the provider (optional - leave blank if the endpoint does not require authentication) provider.openai_compatible.apikey.stored=API key already stored securely. Leave blank to keep existing key, or enter a new one to update. # System Resources @@ -1104,7 +1105,6 @@ mermaid.setup.button.copy.diagram=Copy Diagram mermaid.diagram.source.label=Diagram Source\: mermaid.rendering.progress=Rendering diagram... mermaid.error.rendering.title=Error rendering diagram -mermaid.error.rendering.raw.label=Raw diagram\: mermaid.error.unexpected.state=Unexpected state. Please try again. mermaid.error.failed.load.image=Failed to load diagram image mermaid.button.copy.code=Copy Code @@ -1382,7 +1382,6 @@ skills.view.empty.search=No skills match your search skills.view.manage=Manage Skills skills.view.select.prompt=Select a skill to run skills.view.select.hint=Select a skill from the list on the left to run it -skills.view.select.skill=Select skill… skills.view.run=Run Skill skills.view.run.command=Send Command skills.view.running=Running… From 5eea531b721479262763f4af348b8d2c700dc856 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:54:08 +0000 Subject: [PATCH 067/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../main/resources/i18n/messages_zh_CN.properties | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 4e52f90be..813c7dc7d 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -247,7 +247,6 @@ session.error.removing=无法从项目中移除会话。请重试。 # Settings settings.title=设置 -settings.general=常规 settings.appearance=外观 settings.appearance.accent=强调色 settings.appearance.accent.description=安全地自定义单一强调色。Askimo 会将其应用于主要界面强调,并派生相关颜色以保证可读性。 @@ -324,7 +323,6 @@ settings.provider=提供商 settings.theme=主题 settings.save=保存 settings.cancel=取消 -settings.provider.change.button=更改 settings.model.change.button=更改 settings.change.button=更改 @@ -538,6 +536,9 @@ settings.hardware.acceleration.title=Tăng tốc phần cứng settings.hardware.acceleration.description=Sử dụng kết xuất tăng tốc bởi GPU để có hiệu suất giao diện mượt mà hơn. Hãy tắt tùy chọn này nếu bạn gặp sự cố về đồ họa. settings.hardware.acceleration.description.windows=Sử dụng kết xuất tăng tốc bởi GPU (Direct3D/OpenGL) để có hiệu suất giao diện mượt mà hơn. Hãy tắt tùy chọn này nếu bạn gặp hiện tượng nhấp nháy hoặc tốc độ làm mới thất thường với màn hình G-Sync hoặc FreeSync. settings.hardware.acceleration.restart.notice=Khởi động lại Askimo để thay đổi này có hiệu lực. +settings.ui.scale.title=显示缩放 +settings.ui.scale.description=调整整体 UI 缩放比例。需要重启才能使更改生效。 +settings.ui.scale.restart.notice=重启 Askimo 以使缩放更改生效。 settings.hardware.acceleration.restart.title=Yêu cầu khởi động lại settings.hardware.acceleration.restart.message=Vui lòng khởi động lại Askimo để thay đổi kết xuất có hiệu lực. settings.hardware.acceleration.vrr.hint.title=Đã phát hiện G-Sync / FreeSync @@ -734,11 +735,10 @@ settings.font.family.ui=UI 字体系列 settings.font.family.code=代码字体系列 settings.font.size=字号 settings.font.line.spacing=行间距 -settings.font.custom.scale=自定义缩放(高级) -settings.font.custom.scale.description=覆盖预设值。在超高 DPI 显示器上请谨慎使用。 -settings.font.custom.scale.value=缩放:{0}% settings.shortcuts=快捷键 settings.shortcuts.description=查看所有可用的键盘快捷键,以提升您的工作效率 +settings.shortcuts.search=搜索快捷键... +settings.shortcuts.no_results=没有匹配搜索的快捷键 settings.app.language=应用语言 settings.app.language.translation.help=发现错误?帮助我们改进翻译。 settings.app.language.translation.contribute=在 Crowdin 上贡献 @@ -911,6 +911,7 @@ provider.lmstudio.openai.compat.info=Askimo 使用 OpenAI 兼容端点(/v1) # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=您的OpenAI兼容实例的基础URL +provider.openai_compatible.apikey.description=提供商的 API 密钥(可选 - 如果端点不需要身份验证,请留空) provider.openai_compatible.apikey.stored=API密钥已安全存储。留空以保留现有密钥,或输入新密钥进行更新。 # System Resources @@ -1104,7 +1105,6 @@ mermaid.setup.button.copy.diagram=复制图表 mermaid.diagram.source.label=图表来源: mermaid.rendering.progress=正在渲染图表... mermaid.error.rendering.title=渲染图表时出错 -mermaid.error.rendering.raw.label=原始图表: mermaid.error.unexpected.state=出现意外状态。请重试。 mermaid.error.failed.load.image=无法加载图表图像 mermaid.button.copy.code=复制代码 @@ -1382,7 +1382,6 @@ skills.view.empty.search=没有找到符合您搜索条件的技能 skills.view.manage=管理技能 skills.view.select.prompt=选择要运行的技能 skills.view.select.hint=从右侧技能面板中选择一个技能 -skills.view.select.skill=选择一个技能… skills.view.run=运行技能 skills.view.run.command=发送命令 skills.view.running=正在运行… From ea6f1f217a93cbf84ae74c39148d3b97dfc90863 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:54:09 +0000 Subject: [PATCH 068/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../main/resources/i18n/messages_zh_TW.properties | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 768994004..55929c99f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -247,7 +247,6 @@ session.error.removing=無法從專案中移除工作階段。請重試。 # Settings settings.title=設定 -settings.general=一般 settings.appearance=外觀 settings.appearance.accent=強調色 settings.appearance.accent.description=安全地自訂單一強調色。Askimo 會將其套用到主要介面強調,並衍生相關顏色以確保可讀性。 @@ -324,7 +323,6 @@ settings.provider=提供者 settings.theme=主題 settings.save=儲存 settings.cancel=取消 -settings.provider.change.button=變更 settings.model.change.button=變更 settings.change.button=變更 @@ -538,6 +536,9 @@ settings.hardware.acceleration.title=硬體加速 settings.hardware.acceleration.description=使用 GPU 加速渲染以獲得更流暢的 UI 效能。若遇到圖形問題,請停用此項目。 settings.hardware.acceleration.description.windows=使用 GPU 加速渲染 (Direct3D/OpenGL) 以獲得更流暢的 UI 效能。若在使用 G-Sync 或 FreeSync 顯示器時遇到閃爍或不穩定的重新整理率,請停用此項目。 settings.hardware.acceleration.restart.notice=重啟 Askimo 以使此變更生效。 +settings.ui.scale.title=顯示縮放 +settings.ui.scale.description=調整整體 UI 縮放比例。需要重新啟動才能使變更生效。 +settings.ui.scale.restart.notice=重啟 Askimo 以使縮放變更生效。 settings.hardware.acceleration.restart.title=需要重啟 settings.hardware.acceleration.restart.message=請重啟 Askimo 以使渲染變更生效。 settings.hardware.acceleration.vrr.hint.title=已偵測到 G-Sync / FreeSync @@ -734,11 +735,10 @@ settings.font.family.ui=UI 字體系列 settings.font.family.code=代碼字體系列 settings.font.size=字型大小 settings.font.line.spacing=行距 -settings.font.custom.scale=自訂縮放(進階) -settings.font.custom.scale.description=覆蓋預設值。在超高 DPI 顯示器上請謹慎使用。 -settings.font.custom.scale.value=縮放:{0}% settings.shortcuts=快捷鍵 settings.shortcuts.description=查看所有可用的鍵盤快捷鍵,以提升您的工作效率 +settings.shortcuts.search=搜尋捷徑... +settings.shortcuts.no_results=沒有相符的捷徑 settings.app.language=應用程式語言 settings.app.language.translation.help=發現錯誤?幫助我們改進翻譯。 settings.app.language.translation.contribute=在 Crowdin 上貢獻 @@ -911,6 +911,7 @@ provider.lmstudio.openai.compat.info=Askimo 使用 OpenAI 相容端點(/v1) # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=您的OpenAI相容執行個體的基礎URL +provider.openai_compatible.apikey.description=提供者的 API 金鑰(選填 - 若端點不需要驗證,請留空) provider.openai_compatible.apikey.stored=API金鑰已安全儲存。留空以保留現有金鑰,或輸入新金鑰進行更新。 # System Resources @@ -1104,7 +1105,6 @@ mermaid.setup.button.copy.diagram=複製圖表 mermaid.diagram.source.label=圖表來源: mermaid.rendering.progress=正在渲染圖表... mermaid.error.rendering.title=渲染圖表時發生錯誤 -mermaid.error.rendering.raw.label=原始圖表: mermaid.error.unexpected.state=發生未預期的狀態。請再試一次。 mermaid.error.failed.load.image=無法載入圖表影像 mermaid.button.copy.code=複製程式碼 @@ -1382,7 +1382,6 @@ skills.view.empty.search=沒有找到符合您搜尋條件的技能 skills.view.manage=管理技能 skills.view.select.prompt=選擇要執行的技能 skills.view.select.hint=從右側技能面板中選擇一個技能 -skills.view.select.skill=選擇一個技能… skills.view.run=執行技能 skills.view.run.command=傳送命令 skills.view.running=執行中… From 0e1fe0775a3e77593c7f7d8f555aef1cbb87a62d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:54:10 +0000 Subject: [PATCH 069/251] New translations messages.properties (Vietnamese) [ci skip] --- .../main/resources/i18n/messages_vi_VN.properties | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 60eaa9b07..ab20c2fdd 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -247,7 +247,6 @@ session.error.removing=Không thể xóa phiên khỏi dự án. Vui lòng thử # Settings settings.title=Cài đặt -settings.general=Chung settings.appearance=Giao diện settings.appearance.accent=Màu nhấn settings.appearance.accent.description=Tùy chỉnh an toàn một màu nhấn duy nhất. Askimo sẽ áp dụng nó cho các điểm nhấn giao diện chính và tạo các màu liên quan để đảm bảo dễ đọc. @@ -324,7 +323,6 @@ settings.provider=Nhà cung cấp settings.theme=Chủ đề settings.save=Lưu settings.cancel=Hủy -settings.provider.change.button=Đổi nhà cung cấp settings.model.change.button=Đổi mô hình settings.change.button=Đổi cài đặt @@ -538,6 +536,9 @@ settings.hardware.acceleration.title=Tăng tốc phần cứng settings.hardware.acceleration.description=Sử dụng kết xuất tăng tốc bởi GPU để có hiệu suất giao diện mượt mà hơn. Hãy tắt tùy chọn này nếu bạn gặp sự cố về đồ họa. settings.hardware.acceleration.description.windows=Sử dụng kết xuất tăng tốc bởi GPU (Direct3D/OpenGL) để có hiệu suất giao diện mượt mà hơn. Hãy tắt tùy chọn này nếu bạn gặp hiện tượng nhấp nháy hoặc tốc độ làm mới thất thường với màn hình G-Sync hoặc FreeSync. settings.hardware.acceleration.restart.notice=Khởi động lại Askimo để thay đổi này có hiệu lực. +settings.ui.scale.title=Tỷ lệ hiển thị +settings.ui.scale.description=Điều chỉnh tỷ lệ giao diện người dùng tổng thể. Cần khởi động lại để các thay đổi có hiệu lực. +settings.ui.scale.restart.notice=Khởi động lại Askimo để thay đổi tỷ lệ có hiệu lực. settings.hardware.acceleration.restart.title=Yêu cầu khởi động lại settings.hardware.acceleration.restart.message=Vui lòng khởi động lại Askimo để thay đổi kết xuất có hiệu lực. settings.hardware.acceleration.vrr.hint.title=Đã phát hiện G-Sync / FreeSync @@ -734,11 +735,10 @@ settings.font.family.ui=Family Font UI settings.font.family.code=Family Font Code settings.font.size=Cỡ chữ settings.font.line.spacing=Giãn dòng -settings.font.custom.scale=Tùy chỉnh tỷ lệ (nâng cao) -settings.font.custom.scale.description=Ghi đè các mức cài sẵn. Hãy dùng cẩn thận trên màn hình DPI rất cao. -settings.font.custom.scale.value=Tỷ lệ\: {0}% settings.shortcuts=Phím tắt settings.shortcuts.description=Xem tất cả các phím tắt có sẵn để nâng cao năng suất làm việc +settings.shortcuts.search=Tìm kiếm lối tắt... +settings.shortcuts.no_results=Không có lối tắt nào khớp với tìm kiếm của bạn settings.app.language=Ngôn ngữ ứng dụng settings.app.language.translation.help=Bạn thấy có gì đó sai? Hãy giúp chúng tôi cải thiện bản dịch. settings.app.language.translation.contribute=Đóng góp trên Crowdin @@ -911,6 +911,7 @@ provider.lmstudio.openai.compat.info=Askimo sử dụng các endpoint tương th # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=URL cơ sở cho phiên bản tương thích OpenAI của bạn +provider.openai_compatible.apikey.description=Khóa API cho nhà cung cấp (tùy chọn - để trống nếu endpoint không yêu cầu xác thực) provider.openai_compatible.apikey.stored=Khóa API đã được lưu trữ an toàn. Để trống để giữ khóa hiện có hoặc nhập khóa mới để cập nhật. # System Resources @@ -1104,7 +1105,6 @@ mermaid.setup.button.copy.diagram=Sao chép sơ đồ mermaid.diagram.source.label=Nguồn sơ đồ\: mermaid.rendering.progress=Đang hiển thị sơ đồ... mermaid.error.rendering.title=Lỗi hiển thị sơ đồ -mermaid.error.rendering.raw.label=Sơ đồ thô\: mermaid.error.unexpected.state=Trạng thái không mong đợi. Vui lòng thử lại. mermaid.error.failed.load.image=Không thể tải hình ảnh sơ đồ mermaid.button.copy.code=Sao chép mã @@ -1382,7 +1382,6 @@ skills.view.empty.search=Không có kỹ năng nào khớp với tìm kiếm c skills.view.manage=Quản lý kỹ năng skills.view.select.prompt=Chọn một kỹ năng để chạy skills.view.select.hint=Chọn một kỹ năng từ bảng Kỹ năng ở bên phải -skills.view.select.skill=Chọn một kỹ năng… skills.view.run=Chạy kỹ năng skills.view.run.command=Gửi lệnh skills.view.running=Đang chạy… From 88827e08dfbe256fa806cbcc74e1e5225b0a7833 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 20 Jul 2026 00:41:22 +0000 Subject: [PATCH 070/251] Update source file messages.properties [ci skip] --- .../src/main/resources/i18n/messages.properties | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 58ed0e29f..04a31800d 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -244,7 +244,6 @@ session.error.removing=Failed to remove session from project. Please try again. # Settings settings.title=Settings -settings.general=General settings.appearance=Appearance settings.appearance.accent=Accent Color settings.appearance.accent.description=Customize a single accent color safely. Askimo applies it to primary UI accents and derives related colors for readability. @@ -321,7 +320,6 @@ settings.provider=Provider settings.theme=Theme settings.save=Save settings.cancel=Cancel -settings.provider.change.button=Change settings.model.change.button=Change settings.change.button=Change @@ -535,6 +533,9 @@ settings.hardware.acceleration.title=Hardware Acceleration settings.hardware.acceleration.description=Use GPU-accelerated rendering for smoother UI performance. Disable this if you experience graphical issues. settings.hardware.acceleration.description.windows=Use GPU-accelerated rendering (Direct3D/OpenGL) for smoother UI performance. Disable this if you experience flickering or erratic refresh rates with G-Sync or FreeSync displays. settings.hardware.acceleration.restart.notice=Restart Askimo for this change to take effect. +settings.ui.scale.title=Display Scale +settings.ui.scale.description=Adjust the overall UI scale. A restart is required for changes to take effect. +settings.ui.scale.restart.notice=Restart Askimo for the scale change to take effect. settings.hardware.acceleration.restart.title=Restart Required settings.hardware.acceleration.restart.message=Please restart Askimo for the rendering change to take effect. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync Detected @@ -731,11 +732,10 @@ settings.font.family.ui=UI Font Family settings.font.family.code=Code Font Family settings.font.size=Font Size settings.font.line.spacing=Line Spacing -settings.font.custom.scale=Custom scaling (advanced) -settings.font.custom.scale.description=Overrides presets. Use with care on very high DPI displays. -settings.font.custom.scale.value=Scale: {0}% settings.shortcuts=Keyboard Shortcuts settings.shortcuts.description=View all available keyboard shortcuts to improve your productivity +settings.shortcuts.search=Search shortcuts... +settings.shortcuts.no_results=No shortcuts match your search settings.app.language=Application Language settings.app.language.translation.help=See something wrong? Help us improve the translation. settings.app.language.translation.contribute=Contribute on Crowdin @@ -908,6 +908,7 @@ provider.lmstudio.openai.compat.info=Askimo uses OpenAI-compatible endpoints (/v # Provider Configuration - Open AI Compatible provider.openai_compatible.baseurl.description=The base URL for your OpenAI Compatible instance +provider.openai_compatible.apikey.description=API key for the provider (optional - leave blank if the endpoint does not require authentication) provider.openai_compatible.apikey.stored=API key already stored securely. Leave blank to keep existing key, or enter a new one to update. # System Resources @@ -1101,7 +1102,6 @@ mermaid.setup.button.copy.diagram=Copy Diagram mermaid.diagram.source.label=Diagram Source: mermaid.rendering.progress=Rendering diagram... mermaid.error.rendering.title=Error rendering diagram -mermaid.error.rendering.raw.label=Raw diagram: mermaid.error.unexpected.state=Unexpected state. Please try again. mermaid.error.failed.load.image=Failed to load diagram image mermaid.button.copy.code=Copy Code @@ -1379,7 +1379,6 @@ skills.view.empty.search=No skills match your search skills.view.manage=Manage Skills skills.view.select.prompt=Select a skill to run skills.view.select.hint=Select a skill from the list on the left to run it -skills.view.select.skill=Select skill… skills.view.run=Run Skill skills.view.run.command=Send Command skills.view.running=Running… From a638bd83112ee8bfee92528b543da1eb09a79f1d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:08:15 +0000 Subject: [PATCH 071/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 04a31800d..5b7d4c72d 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -536,6 +536,7 @@ settings.hardware.acceleration.restart.notice=Restart Askimo for this change to settings.ui.scale.title=Display Scale settings.ui.scale.description=Adjust the overall UI scale. A restart is required for changes to take effect. settings.ui.scale.restart.notice=Restart Askimo for the scale change to take effect. +settings.ui.scale.learn.more=Learn more about HiDPI & UI Scale settings.hardware.acceleration.restart.title=Restart Required settings.hardware.acceleration.restart.message=Please restart Askimo for the rendering change to take effect. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync Detected From b109b9bd2b346c7c71f6c5d756ec0ce7a868db9e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:08:17 +0000 Subject: [PATCH 072/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index f6fe0095f..057d5a4cf 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -539,6 +539,7 @@ settings.hardware.acceleration.restart.notice=Redémarrez Askimo pour appliquer settings.ui.scale.title=Échelle d'affichage settings.ui.scale.description=Ajustez l'échelle globale de l'interface utilisateur. Un redémarrage est nécessaire pour que les modifications prennent effet. settings.ui.scale.restart.notice=Redémarrez Askimo pour appliquer le changement d'échelle. +settings.ui.scale.learn.more=En savoir plus sur HiDPI et la mise à l'échelle de l'interface settings.hardware.acceleration.restart.title=Redémarrage requis settings.hardware.acceleration.restart.message=Veuillez redémarrer Askimo pour que le changement de rendu prenne effet. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync détecté From 749c867b698329f2880ff7b351c1ae510fadbff3 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:08:18 +0000 Subject: [PATCH 073/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index aafad7167..8ac181b2f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -539,6 +539,7 @@ settings.hardware.acceleration.restart.notice=Reinicia Askimo para que este camb settings.ui.scale.title=Escala de pantalla settings.ui.scale.description=Ajuste la escala general de la interfaz de usuario. Es necesario reiniciar para que los cambios surtan efecto. settings.ui.scale.restart.notice=Reinicia Askimo para que el cambio de escala surta efecto. +settings.ui.scale.learn.more=Obtenga más información sobre HiDPI y la escala de la IU settings.hardware.acceleration.restart.title=Reinicio requerido settings.hardware.acceleration.restart.message=Por favor, reinicia Askimo para que el cambio de renderizado surta efecto. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync detectado From c40244592c4941e0f89e849af2128719ce331b11 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:08:20 +0000 Subject: [PATCH 074/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index f8a8c0d94..58cc26d85 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -539,6 +539,7 @@ settings.hardware.acceleration.restart.notice=Starten Sie Askimo neu, damit dies settings.ui.scale.title=Anzeigeskalierung settings.ui.scale.description=Passen Sie die gesamte UI-Skalierung an. Ein Neustart ist erforderlich, damit die Änderungen wirksam werden. settings.ui.scale.restart.notice=Starten Sie Askimo neu, damit die Skalierungsänderung wirksam wird. +settings.ui.scale.learn.more=Erfahren Sie mehr über HiDPI & UI-Skalierung settings.hardware.acceleration.restart.title=Neustart erforderlich settings.hardware.acceleration.restart.message=Bitte starten Sie Askimo neu, damit die Rendering-Änderung wirksam wird. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync erkannt From 4699ac54f2fe6c6776a80a838281ae2fcab96a67 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:08:21 +0000 Subject: [PATCH 075/251] New translations messages.properties (Japanese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_ja_JP.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 8f7f3c8c2..0f88a2b2e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -539,6 +539,7 @@ settings.hardware.acceleration.restart.notice=この変更を有効にするに settings.ui.scale.title=表示スケール settings.ui.scale.description=UI全体のスケールを調整します。変更を適用するには再起動が必要です。 settings.ui.scale.restart.notice=スケールの変更を有効にするには、Askimoを再起動してください。 +settings.ui.scale.learn.more=HiDPI と UI スケーリングの詳細はこちら settings.hardware.acceleration.restart.title=再起動が必要です settings.hardware.acceleration.restart.message=レンダリング設定の変更を有効にするには、Askimoを再起動してください。 settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSyncが検出されました From 7cd76d9aec96e50d90fe84d3d6740173bc4b6f96 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:08:22 +0000 Subject: [PATCH 076/251] New translations messages.properties (Korean) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_ko_KR.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 16a0e6eb5..b2addd29c 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -539,6 +539,7 @@ settings.hardware.acceleration.restart.notice=변경 사항을 적용하려면 A settings.ui.scale.title=화면 배율 settings.ui.scale.description=전체 UI 배율을 조정합니다. 변경 사항을 적용하려면 재시작이 필요합니다. settings.ui.scale.restart.notice=배율 변경을 적용하려면 Askimo를 다시 시작하세요. +settings.ui.scale.learn.more=HiDPI 및 UI 스케일링에 대해 자세히 알아보기 settings.hardware.acceleration.restart.title=재시작 필요 settings.hardware.acceleration.restart.message=렌더링 변경 사항을 적용하려면 Askimo를 다시 시작하세요. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync 감지됨 From 81172d3a75c951d3ad3aa69e748efda68196587b Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:08:24 +0000 Subject: [PATCH 077/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index 510495f1f..d8e976715 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -539,6 +539,7 @@ settings.hardware.acceleration.restart.notice=Restart Askimo for this change to settings.ui.scale.title=Display Scale settings.ui.scale.description=Adjust the overall UI scale. A restart is required for changes to take effect. settings.ui.scale.restart.notice=Restart Askimo for the scale change to take effect. +settings.ui.scale.learn.more=Learn more about HiDPI & UI Scale settings.hardware.acceleration.restart.title=Restart Required settings.hardware.acceleration.restart.message=Please restart Askimo for the rendering change to take effect. settings.hardware.acceleration.vrr.hint.title=G-Sync / FreeSync Detected From af5bbfa7f54851ba648ddffb0dbd1f94a3c45e4c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:08:25 +0000 Subject: [PATCH 078/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../main/resources/i18n/messages_zh_CN.properties | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 813c7dc7d..ab211e85d 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -539,12 +539,13 @@ settings.hardware.acceleration.restart.notice=Khởi động lại Askimo để settings.ui.scale.title=显示缩放 settings.ui.scale.description=调整整体 UI 缩放比例。需要重启才能使更改生效。 settings.ui.scale.restart.notice=重启 Askimo 以使缩放更改生效。 -settings.hardware.acceleration.restart.title=Yêu cầu khởi động lại -settings.hardware.acceleration.restart.message=Vui lòng khởi động lại Askimo để thay đổi kết xuất có hiệu lực. -settings.hardware.acceleration.vrr.hint.title=Đã phát hiện G-Sync / FreeSync -settings.hardware.acceleration.vrr.hint.message=Màn hình của bạn dường như đang sử dụng tốc độ làm mới cao, có thể được ghép nối với G-Sync hoặc FreeSync. Một số người dùng gặp hiện tượng nhấp nháy hoặc tốc độ khung hình thất thường khi sử dụng kết xuất tăng tốc phần cứng trong cấu hình này. Bạn có muốn chuyển sang kết xuất phần mềm không? (Yêu cầu khởi động lại) -settings.hardware.acceleration.vrr.hint.disable=Chuyển sang kết xuất phần mềm -settings.hardware.acceleration.vrr.hint.keep=Giữ tăng tốc phần cứng +settings.ui.scale.learn.more=了解有关 HiDPI 和 UI 缩放的更多信息 +settings.hardware.acceleration.restart.title=需要重启 +settings.hardware.acceleration.restart.message=请重启 Askimo 以使渲染更改生效。 +settings.hardware.acceleration.vrr.hint.title=检测到 G-Sync / FreeSync +settings.hardware.acceleration.vrr.hint.message=您的显示器似乎使用了高刷新率,且可能已启用 G-Sync 或 FreeSync。在此配置下,部分用户在使用硬件加速渲染时可能会遇到闪烁或帧率不稳定的情况。您想切换到软件渲染吗?(需要重启) +settings.hardware.acceleration.vrr.hint.disable=切换到软件渲染 +settings.hardware.acceleration.vrr.hint.keep=保持硬件加速 # File operations file.overwrite.title=文件已存在 From c1b5d673801de2644d5b19a79817197caf964582 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:08:27 +0000 Subject: [PATCH 079/251] New translations messages.properties (Chinese Traditional) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_zh_TW.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 55929c99f..fc5a86ec2 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -539,6 +539,7 @@ settings.hardware.acceleration.restart.notice=重啟 Askimo 以使此變更生 settings.ui.scale.title=顯示縮放 settings.ui.scale.description=調整整體 UI 縮放比例。需要重新啟動才能使變更生效。 settings.ui.scale.restart.notice=重啟 Askimo 以使縮放變更生效。 +settings.ui.scale.learn.more=了解更多關於 HiDPI 與 UI 縮放的資訊 settings.hardware.acceleration.restart.title=需要重啟 settings.hardware.acceleration.restart.message=請重啟 Askimo 以使渲染變更生效。 settings.hardware.acceleration.vrr.hint.title=已偵測到 G-Sync / FreeSync From 5bcfefd60e96ef08acfa8c9b21c4b8e09baaad5c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:08:28 +0000 Subject: [PATCH 080/251] New translations messages.properties (Vietnamese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_vi_VN.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index ab20c2fdd..08ec65c82 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -539,6 +539,7 @@ settings.hardware.acceleration.restart.notice=Khởi động lại Askimo để settings.ui.scale.title=Tỷ lệ hiển thị settings.ui.scale.description=Điều chỉnh tỷ lệ giao diện người dùng tổng thể. Cần khởi động lại để các thay đổi có hiệu lực. settings.ui.scale.restart.notice=Khởi động lại Askimo để thay đổi tỷ lệ có hiệu lực. +settings.ui.scale.learn.more=Tìm hiểu thêm về HiDPI & Tỷ lệ UI settings.hardware.acceleration.restart.title=Yêu cầu khởi động lại settings.hardware.acceleration.restart.message=Vui lòng khởi động lại Askimo để thay đổi kết xuất có hiệu lực. settings.hardware.acceleration.vrr.hint.title=Đã phát hiện G-Sync / FreeSync From 904a53f5b9341eb1de0cdba8fbea9cb633c1ca4b Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:36:07 +0000 Subject: [PATCH 081/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 5b7d4c72d..fb75d5368 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -535,6 +535,7 @@ settings.hardware.acceleration.description.windows=Use GPU-accelerated rendering settings.hardware.acceleration.restart.notice=Restart Askimo for this change to take effect. settings.ui.scale.title=Display Scale settings.ui.scale.description=Adjust the overall UI scale. A restart is required for changes to take effect. +settings.ui.scale.option.system.default=System default settings.ui.scale.restart.notice=Restart Askimo for the scale change to take effect. settings.ui.scale.learn.more=Learn more about HiDPI & UI Scale settings.hardware.acceleration.restart.title=Restart Required From 6bbfb31622d87a11a9f09960535e9ed0830ec802 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:36:09 +0000 Subject: [PATCH 082/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 057d5a4cf..b560a282c 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -538,6 +538,7 @@ settings.hardware.acceleration.description.windows=Utilisez le rendu accéléré settings.hardware.acceleration.restart.notice=Redémarrez Askimo pour appliquer ce changement. settings.ui.scale.title=Échelle d'affichage settings.ui.scale.description=Ajustez l'échelle globale de l'interface utilisateur. Un redémarrage est nécessaire pour que les modifications prennent effet. +settings.ui.scale.option.system.default=Par défaut du système settings.ui.scale.restart.notice=Redémarrez Askimo pour appliquer le changement d'échelle. settings.ui.scale.learn.more=En savoir plus sur HiDPI et la mise à l'échelle de l'interface settings.hardware.acceleration.restart.title=Redémarrage requis From ed59a87972cd3cbbe65f482e2ab48222f787c602 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:36:11 +0000 Subject: [PATCH 083/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 8ac181b2f..927321bfb 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -538,6 +538,7 @@ settings.hardware.acceleration.description.windows=Usa renderizado acelerado por settings.hardware.acceleration.restart.notice=Reinicia Askimo para que este cambio surta efecto. settings.ui.scale.title=Escala de pantalla settings.ui.scale.description=Ajuste la escala general de la interfaz de usuario. Es necesario reiniciar para que los cambios surtan efecto. +settings.ui.scale.option.system.default=Predeterminado del sistema settings.ui.scale.restart.notice=Reinicia Askimo para que el cambio de escala surta efecto. settings.ui.scale.learn.more=Obtenga más información sobre HiDPI y la escala de la IU settings.hardware.acceleration.restart.title=Reinicio requerido From a6e96a5058152267ac5ccd6a01da0e651028bf30 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:36:13 +0000 Subject: [PATCH 084/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 58cc26d85..58e560379 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -538,6 +538,7 @@ settings.hardware.acceleration.description.windows=Verwenden Sie GPU-beschleunig settings.hardware.acceleration.restart.notice=Starten Sie Askimo neu, damit diese Änderung wirksam wird. settings.ui.scale.title=Anzeigeskalierung settings.ui.scale.description=Passen Sie die gesamte UI-Skalierung an. Ein Neustart ist erforderlich, damit die Änderungen wirksam werden. +settings.ui.scale.option.system.default=Systemstandard settings.ui.scale.restart.notice=Starten Sie Askimo neu, damit die Skalierungsänderung wirksam wird. settings.ui.scale.learn.more=Erfahren Sie mehr über HiDPI & UI-Skalierung settings.hardware.acceleration.restart.title=Neustart erforderlich From 450dcf75fcabb4dc16436a8e682d6e1fd9d5e8cf Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:36:15 +0000 Subject: [PATCH 085/251] New translations messages.properties (Japanese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_ja_JP.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 0f88a2b2e..308711ae0 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -538,6 +538,7 @@ settings.hardware.acceleration.description.windows=GPUアクセラレーショ settings.hardware.acceleration.restart.notice=この変更を有効にするには、Askimoを再起動してください。 settings.ui.scale.title=表示スケール settings.ui.scale.description=UI全体のスケールを調整します。変更を適用するには再起動が必要です。 +settings.ui.scale.option.system.default=システム既定 settings.ui.scale.restart.notice=スケールの変更を有効にするには、Askimoを再起動してください。 settings.ui.scale.learn.more=HiDPI と UI スケーリングの詳細はこちら settings.hardware.acceleration.restart.title=再起動が必要です From a33ba633462997ed9cc8849dce5c1b33b45fbdd0 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:36:16 +0000 Subject: [PATCH 086/251] New translations messages.properties (Korean) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_ko_KR.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index b2addd29c..a53eef529 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -538,6 +538,7 @@ settings.hardware.acceleration.description.windows=GPU 가속 렌더링(Direct3D settings.hardware.acceleration.restart.notice=변경 사항을 적용하려면 Askimo를 다시 시작하세요. settings.ui.scale.title=화면 배율 settings.ui.scale.description=전체 UI 배율을 조정합니다. 변경 사항을 적용하려면 재시작이 필요합니다. +settings.ui.scale.option.system.default=시스템 기본값 settings.ui.scale.restart.notice=배율 변경을 적용하려면 Askimo를 다시 시작하세요. settings.ui.scale.learn.more=HiDPI 및 UI 스케일링에 대해 자세히 알아보기 settings.hardware.acceleration.restart.title=재시작 필요 From 319b0fd7e7772d8fd289e013406d6597c333966e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:36:18 +0000 Subject: [PATCH 087/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index d8e976715..58faeaba3 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -538,6 +538,7 @@ settings.hardware.acceleration.description.windows=Use GPU-accelerated rendering settings.hardware.acceleration.restart.notice=Restart Askimo for this change to take effect. settings.ui.scale.title=Display Scale settings.ui.scale.description=Adjust the overall UI scale. A restart is required for changes to take effect. +settings.ui.scale.option.system.default=System default settings.ui.scale.restart.notice=Restart Askimo for the scale change to take effect. settings.ui.scale.learn.more=Learn more about HiDPI & UI Scale settings.hardware.acceleration.restart.title=Restart Required From 15d76376844437c91c6bdee9fad72d4d53edfb68 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:36:19 +0000 Subject: [PATCH 088/251] New translations messages.properties (Chinese Simplified) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_zh_CN.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index ab211e85d..a3ab4fa32 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -538,6 +538,7 @@ settings.hardware.acceleration.description.windows=Sử dụng kết xuất tăn settings.hardware.acceleration.restart.notice=Khởi động lại Askimo để thay đổi này có hiệu lực. settings.ui.scale.title=显示缩放 settings.ui.scale.description=调整整体 UI 缩放比例。需要重启才能使更改生效。 +settings.ui.scale.option.system.default=系统默认 settings.ui.scale.restart.notice=重启 Askimo 以使缩放更改生效。 settings.ui.scale.learn.more=了解有关 HiDPI 和 UI 缩放的更多信息 settings.hardware.acceleration.restart.title=需要重启 From f7cc422eec7bf4b30231d0231da77a02b23832e9 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:36:21 +0000 Subject: [PATCH 089/251] New translations messages.properties (Chinese Traditional) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_zh_TW.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index fc5a86ec2..0df65363f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -538,6 +538,7 @@ settings.hardware.acceleration.description.windows=使用 GPU 加速渲染 (Dire settings.hardware.acceleration.restart.notice=重啟 Askimo 以使此變更生效。 settings.ui.scale.title=顯示縮放 settings.ui.scale.description=調整整體 UI 縮放比例。需要重新啟動才能使變更生效。 +settings.ui.scale.option.system.default=系統預設 settings.ui.scale.restart.notice=重啟 Askimo 以使縮放變更生效。 settings.ui.scale.learn.more=了解更多關於 HiDPI 與 UI 縮放的資訊 settings.hardware.acceleration.restart.title=需要重啟 From 96e2e2f9b2dc82cdab72d0a30af90555287befc3 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 21 Jul 2026 21:36:22 +0000 Subject: [PATCH 090/251] New translations messages.properties (Vietnamese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_vi_VN.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 08ec65c82..6e5e29eef 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -538,6 +538,7 @@ settings.hardware.acceleration.description.windows=Sử dụng kết xuất tăn settings.hardware.acceleration.restart.notice=Khởi động lại Askimo để thay đổi này có hiệu lực. settings.ui.scale.title=Tỷ lệ hiển thị settings.ui.scale.description=Điều chỉnh tỷ lệ giao diện người dùng tổng thể. Cần khởi động lại để các thay đổi có hiệu lực. +settings.ui.scale.option.system.default=Mặc định hệ thống settings.ui.scale.restart.notice=Khởi động lại Askimo để thay đổi tỷ lệ có hiệu lực. settings.ui.scale.learn.more=Tìm hiểu thêm về HiDPI & Tỷ lệ UI settings.hardware.acceleration.restart.title=Yêu cầu khởi động lại From fea6a4f8173a80aa702db92a973a521f9b65fe53 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 22 Jul 2026 00:02:48 +0000 Subject: [PATCH 091/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index b560a282c..5d7ceef31 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -645,6 +645,8 @@ chat.drop.files=Glissez-déposez des fichiers pour les joindre à la conversatio chat.create.image.menu=Créer une image chat.create.image.mode=Image chat.create.image.mode.cancel=Annuler le mode de création d’image +chat.image.model.missing.title=Modèle d'image non configuré +chat.image.model.missing.message=Aucun modèle d''image n''est défini pour {0}. Ouvrez Paramètres > Fournisseur d''IA > Modèles de génération d''images et définissez d''abord un nom de modèle. chat.tools.button=Outils disponibles chat.tools.popup.title=Outils disponibles chat.tools.popup.loading=Chargement des serveurs... From 3b9c73cd4c91aae94914d6a617075ee22e519716 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 22 Jul 2026 00:02:50 +0000 Subject: [PATCH 092/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 927321bfb..c63b0f4cb 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -645,6 +645,8 @@ chat.drop.files=Arrastra archivos para adjuntarlos a la conversación chat.create.image.menu=Crear imagen chat.create.image.mode=Imagen chat.create.image.mode.cancel=Cancelar modo de creación de imagen +chat.image.model.missing.title=Modelo de imagen no configurado +chat.image.model.missing.message=No hay ningún modelo de imagen configurado para {0}. Abre Configuración > Proveedor de IA > Modelos de generación de imágenes y establece primero un nombre de modelo. chat.tools.button=Herramientas disponibles chat.tools.popup.title=Herramientas disponibles chat.tools.popup.loading=Cargando servidores... From 7819085237b8dabea8d68abca37c4befc5ab3f6e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 22 Jul 2026 00:02:52 +0000 Subject: [PATCH 093/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 58e560379..7f708fc8b 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -645,6 +645,8 @@ chat.drop.files=Dateien zum Anhängen an die Unterhaltung hierher ziehen chat.create.image.menu=Bild erstellen chat.create.image.mode=Bild chat.create.image.mode.cancel=Bild-Erstellungsmodus beenden +chat.image.model.missing.title=Bildmodell nicht konfiguriert +chat.image.model.missing.message=Für {0} ist kein Bildmodell festgelegt. Öffnen Sie Einstellungen > KI-Anbieter > Modelle zur Bilderzeugung und legen Sie zuerst einen Modellnamen fest. chat.tools.button=Verfügbare Tools chat.tools.popup.title=Verfügbare Tools chat.tools.popup.loading=Server werden geladen... From adb6c238905c53f2598a6d3a7ac9a1cb7aa1a36c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 22 Jul 2026 00:02:54 +0000 Subject: [PATCH 094/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 308711ae0..5f66e784e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -645,6 +645,8 @@ chat.drop.files=ファイルをドラッグ&ドロップして会話に添付 chat.create.image.menu=画像を作成 chat.create.image.mode=画像 chat.create.image.mode.cancel=画像作成モードをキャンセル +chat.image.model.missing.title=画像モデルが設定されていません +chat.image.model.missing.message={0} に画像モデルが設定されていません。設定 > AI プロバイダー > 画像生成モデルを開き、まずモデル名を設定してください。 chat.tools.button=利用可能なツール chat.tools.popup.title=利用可能なツール chat.tools.popup.loading=サーバーを読み込み中... From a515c58ff67eb5a1a1502580c3ad62d12921804b Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 22 Jul 2026 00:02:57 +0000 Subject: [PATCH 095/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index a53eef529..aa7c1bb7a 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -645,6 +645,8 @@ chat.drop.files=파일을 드래그하여 대화에 첨부하세요 chat.create.image.menu=이미지 생성 chat.create.image.mode=이미지 chat.create.image.mode.cancel=이미지 생성 모드 취소 +chat.image.model.missing.title=이미지 모델이 구성되지 않았습니다 +chat.image.model.missing.message={0}에 설정된 이미지 모델이 없습니다. 설정 > AI 제공업체 > 이미지 생성 모델을 열고 먼저 모델 이름을 설정하세요. chat.tools.button=사용 가능한 도구 chat.tools.popup.title=사용 가능한 도구 chat.tools.popup.loading=서버 로딩 중... From 0391f78a70fb802a0a3a7c5a35da4fb1c4f013d4 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 22 Jul 2026 00:02:59 +0000 Subject: [PATCH 096/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index 58faeaba3..3cf0e9f0d 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -645,6 +645,8 @@ chat.drop.files=Drop files to attach to the conversation chat.create.image.menu=Create Image chat.create.image.mode=Image chat.create.image.mode.cancel=Cancel image creation mode +chat.image.model.missing.title=Image model not configured +chat.image.model.missing.message=No image model is set for {0}. Open Settings > AI Provider > Image Generation Models and set a model name first. chat.tools.button=Available Tools chat.tools.popup.title=Available Tools chat.tools.popup.loading=Loading servers... From 5acc28c24237c472278b640277802f7bd13bcb66 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 22 Jul 2026 00:03:01 +0000 Subject: [PATCH 097/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index a3ab4fa32..79a8a58a6 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -645,6 +645,8 @@ chat.drop.files=拖拽文件以将其附加到对话中 chat.create.image.menu=创建图像 chat.create.image.mode=图像 chat.create.image.mode.cancel=取消图像创建模式 +chat.image.model.missing.title=未配置图像模型 +chat.image.model.missing.message=未为 {0} 设置图像模型。打开 设置 > AI 提供商 > 图像生成模型,并先设置模型名称。 chat.tools.button=可用工具 chat.tools.popup.title=可用工具 chat.tools.popup.loading=正在加载服务器... From 6984a15302725e5a4e785b40253eed377133a75f Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 22 Jul 2026 00:03:02 +0000 Subject: [PATCH 098/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 0df65363f..a9f6469d0 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -645,6 +645,8 @@ chat.drop.files=拖曳檔案以將其附加到對話中 chat.create.image.menu=建立影像 chat.create.image.mode=影像 chat.create.image.mode.cancel=取消影像建立模式 +chat.image.model.missing.title=尚未設定圖片模型 +chat.image.model.missing.message=尚未為 {0} 設定圖片模型。開啟 設定 > AI 提供者 > 圖片生成模型,並先設定模型名稱。 chat.tools.button=可用工具 chat.tools.popup.title=可用工具 chat.tools.popup.loading=正在載入伺服器... From 6b4c25434d61ca2baf83dc5c71055b7a9a3823a0 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 22 Jul 2026 00:03:05 +0000 Subject: [PATCH 099/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 6e5e29eef..6f173dbd3 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -645,6 +645,8 @@ chat.drop.files=Kéo thả tệp để đính kèm vào cuộc trò chuyện chat.create.image.menu=Tạo hình ảnh chat.create.image.mode=Hình ảnh chat.create.image.mode.cancel=Hủy chế độ tạo hình ảnh +chat.image.model.missing.title=Chưa cấu hình mô hình hình ảnh +chat.image.model.missing.message=Chưa đặt mô hình hình ảnh cho {0}. Mở Cài đặt > Nhà cung cấp AI > Mô hình tạo hình ảnh và đặt tên mô hình trước. chat.tools.button=Công cụ khả dụng chat.tools.popup.title=Công cụ khả dụng chat.tools.popup.loading=Đang tải máy chủ... From ae47268fef8dae22433fbf7a0bd123e06a521966 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 22 Jul 2026 01:13:13 +0000 Subject: [PATCH 100/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index fb75d5368..31135135d 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -642,6 +642,8 @@ chat.drop.files=Drop files to attach to the conversation chat.create.image.menu=Create Image chat.create.image.mode=Image chat.create.image.mode.cancel=Cancel image creation mode +chat.image.model.missing.title=Image model not configured +chat.image.model.missing.message=No image model is set for {0}. Open Settings > AI Provider > Image Generation Models and set a model name first. chat.tools.button=Available Tools chat.tools.popup.title=Available Tools chat.tools.popup.loading=Loading servers... From 32afe904c905cceab8f9cb30b27804c0064a4f49 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 00:08:13 +0000 Subject: [PATCH 101/251] New translations messages.properties (French) [ci skip] --- .../main/resources/i18n/messages_fr.properties | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 5d7ceef31..1360bfe12 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -844,6 +844,15 @@ message.date.today=Aujourd'hui message.date.yesterday=Hier message.token.usage={0} tokens · {1} en entrée / {2} en sortie message.token.usage.tooltip=Tokens utilisés par cette réponse.\nEntrée\: votre prompt + contexte envoyé à l'IA.\nSortie\: la réponse générée par l'IA. + +# Tool call display +tool.call.header.running=Exécution de l'outil... +tool.call.header.done={0} outil(s) utilisé(s) +tool.call.status.done=Terminé +tool.call.status.failed=Échoué +tool.call.detail.arguments=Arguments +tool.call.detail.result=Résultat + attachment.download=Télécharger la pièce jointe attachment.download.description=Télécharger cette pièce jointe attachment.save.file=Enregistrer la pièce jointe @@ -1069,6 +1078,12 @@ settings.rag.indexing.binary.extensions.hint=Extensions de fichiers séparées p settings.rag.indexing.embedding.batch.size=Taille du lot d'embeddings settings.rag.indexing.embedding.batch.size.hint=Nombre de segments de texte envoyés au modèle d'embeddings par requête. Si l'indexation est lente et que vous utilisez un fournisseur distant (OpenAI, Gemini), essayez d'augmenter à 100–500. Avec un modèle local (Ollama, LM Studio), gardez cette valeur basse pour éviter les délais d'attente. +## Settings - Models +settings.models.title=Modèles +settings.models.description=Configurez le comportement global du modèle IA partagé entre tous les fournisseurs. +settings.models.max.tool.calling.round.trips=Nombre maximal d'allers-retours d'appel d'outils +settings.models.max.tool.calling.round.trips.hint=Nombre maximum d'appels d'outils que l'IA peut effectuer dans une seule réponse (défaut \: 10). Des valeurs plus élevées permettent des tâches d'agent plus complexes mais augmentent la latence et le coût. + ## Settings - Utility Models settings.utility.models.title=Modèles utilitaires settings.utility.models.uses.selected=(utilise le modèle sélectionné) From 09f9e0daa33fafc6296d7f4d85aeac47e4c98f8a Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 00:08:15 +0000 Subject: [PATCH 102/251] New translations messages.properties (Spanish) [ci skip] --- .../main/resources/i18n/messages_es.properties | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index c63b0f4cb..a076eb5a3 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -844,6 +844,15 @@ message.date.today=Hoy message.date.yesterday=Ayer message.token.usage={0} tokens · {1} de entrada / {2} de salida message.token.usage.tooltip=Tokens utilizados por esta respuesta.\nEntrada\: su prompt + contexto enviado a la IA.\nSalida\: la respuesta generada por la IA. + +# Tool call display +tool.call.header.running=Ejecutando herramienta... +tool.call.header.done={0} herramienta(s) utilizada(s) +tool.call.status.done=Hecho +tool.call.status.failed=Fallido +tool.call.detail.arguments=Argumentos +tool.call.detail.result=Resultado + attachment.download=Descargar adjunto attachment.download.description=Descargar este archivo adjunto attachment.save.file=Guardar adjunto @@ -1069,6 +1078,12 @@ settings.rag.indexing.binary.extensions.hint=Extensiones de archivo separadas po settings.rag.indexing.embedding.batch.size=Tamaño del lote de embeddings settings.rag.indexing.embedding.batch.size.hint=Número de segmentos de texto enviados al modelo de embeddings por solicitud. Si la indexación es lenta y usas un proveedor remoto (OpenAI, Gemini), intenta aumentarlo a 100–500. Si usas un modelo local (Ollama, LM Studio), mantenlo bajo para evitar tiempos de espera. +## Settings - Models +settings.models.title=Modelos +settings.models.description=Configura el comportamiento global de los modelos de IA compartido entre todos los proveedores. +settings.models.max.tool.calling.round.trips=Máximo de rondas de llamadas a herramientas +settings.models.max.tool.calling.round.trips.hint=Número máximo de llamadas a herramientas que la IA puede realizar en una sola respuesta (predeterminado\: 10). Valores más altos permiten tareas de agente más complejas pero aumentan la latencia y el costo. + ## Settings - Utility Models settings.utility.models.title=Modelos de utilidad settings.utility.models.uses.selected=(usa el modelo seleccionado) From d820a52ab8c3a477d562619259020eb11f6a7b58 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 00:08:16 +0000 Subject: [PATCH 103/251] New translations messages.properties (German) [ci skip] --- .../main/resources/i18n/messages_de.properties | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 7f708fc8b..500288555 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -844,6 +844,15 @@ message.date.today=Heute message.date.yesterday=Gestern message.token.usage={0} Tokens · {1} in / {2} out message.token.usage.tooltip=Von dieser Antwort verwendete Tokens.\nEingabe\: Ihr Prompt + Kontext, der an die KI gesendet wurde.\nAusgabe\: die KI-generierte Antwort. + +# Tool call display +tool.call.header.running=Tool wird ausgeführt... +tool.call.header.done={0} Tool(s) verwendet +tool.call.status.done=Fertig +tool.call.status.failed=Fehlgeschlagen +tool.call.detail.arguments=Argumente +tool.call.detail.result=Ergebnis + attachment.download=Anhang herunterladen attachment.download.description=Diese Dateianlage herunterladen attachment.save.file=Anhang speichern @@ -1069,6 +1078,12 @@ settings.rag.indexing.binary.extensions.hint=Kommagetrennte Dateierweiterungen, settings.rag.indexing.embedding.batch.size=Embedding-Batchgröße settings.rag.indexing.embedding.batch.size.hint=Anzahl der Textsegmente, die pro Anfrage an das Embedding-Modell gesendet werden. Wenn die Indizierung langsam ist und Sie einen Remote-Anbieter (OpenAI, Gemini) verwenden, versuchen Sie, den Wert auf 100–500 zu erhöhen. Bei einem lokalen Modell (Ollama, LM Studio) sollte der Wert niedrig bleiben, um Timeouts zu vermeiden. +## Settings - Models +settings.models.title=Modelle +settings.models.description=Konfigurieren Sie das globale KI-Modellverhalten, das über alle Anbieter hinweg geteilt wird. +settings.models.max.tool.calling.round.trips=Maximale Tool-Aufruf-Runden +settings.models.max.tool.calling.round.trips.hint=Maximale Anzahl an Tool-Aufrufen, die die KI in einer einzelnen Antwort durchführen kann (Standard\: 10). Höhere Werte ermöglichen komplexere Agenten-Aufgaben, erhöhen jedoch Latenz und Kosten. + ## Settings - Utility Models settings.utility.models.title=Hilfsmodelle settings.utility.models.uses.selected=(verwendet das ausgewählte Modell) From 06746411d0c8aae0f78de99b4fd3a8f583c4f079 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 00:08:17 +0000 Subject: [PATCH 104/251] New translations messages.properties (Japanese) [ci skip] --- .../main/resources/i18n/messages_ja_JP.properties | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 5f66e784e..02ecd769a 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -844,6 +844,15 @@ message.date.today=今日 message.date.yesterday=昨日 message.token.usage={0} トークン · {1} 入力 / {2} 出力 message.token.usage.tooltip=この応答で使用されたトークン。\n入力\: AIに送信されたプロンプトとコンテキスト。\n出力\: AIが生成した返信。 + +# Tool call display +tool.call.header.running=ツールを実行中... +tool.call.header.done={0} 個のツールを使用しました +tool.call.status.done=完了 +tool.call.status.failed=失敗 +tool.call.detail.arguments=引数 +tool.call.detail.result=結果 + attachment.download=添付ファイルをダウンロード attachment.download.description=この添付ファイルをダウンロード attachment.save.file=添付ファイルを保存 @@ -1069,6 +1078,12 @@ settings.rag.indexing.binary.extensions.hint=インデックス中にバイナ settings.rag.indexing.embedding.batch.size=埋め込みバッチサイズ settings.rag.indexing.embedding.batch.size.hint=1回のリクエストで埋め込みモデルに送信するテキストセグメント数です。リモートプロバイダー(OpenAI、Gemini)を使用していてインデックスが遅い場合は、100〜500に増やすことを検討してください。ローカルモデル(Ollama、LM Studio)の場合はタイムアウトを避けるために低く保ってください。 +## Settings - Models +settings.models.title=モデル +settings.models.description=すべてのプロバイダーで共有されるグローバル AI モデルの動作を設定します。 +settings.models.max.tool.calling.round.trips=最大ツール呼び出しラウンドトリップ数 +settings.models.max.tool.calling.round.trips.hint=AI が 1 回の応答で実行できるツール呼び出しの最大回数です(デフォルト\: 10)。値を大きくするほど複雑なエージェントタスクが可能になりますが、レイテンシとコストが増加します。 + ## Settings - Utility Models settings.utility.models.title=ユーティリティモデル settings.utility.models.uses.selected=(選択されたモデルを使用) From d8bd7a3881a4aac6eb32234c6771eaae3f02789b Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 00:08:19 +0000 Subject: [PATCH 105/251] New translations messages.properties (Korean) [ci skip] --- .../main/resources/i18n/messages_ko_KR.properties | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index aa7c1bb7a..beaa5051c 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -844,6 +844,15 @@ message.date.today=오늘 message.date.yesterday=어제 message.token.usage={0} 토큰 · {1} 입력 / {2} 출력 message.token.usage.tooltip=이 응답에 사용된 토큰입니다.\n입력\: AI로 전송된 프롬프트 및 컨텍스트.\n출력\: AI가 생성한 응답. + +# Tool call display +tool.call.header.running=도구 실행 중... +tool.call.header.done={0}개의 도구 사용됨 +tool.call.status.done=완료 +tool.call.status.failed=실패 +tool.call.detail.arguments=인수 +tool.call.detail.result=결과 + attachment.download=첨부파일 다운로드 attachment.download.description=이 첨부파일 다운로드 attachment.save.file=첨부파일 저장 @@ -1069,6 +1078,12 @@ settings.rag.indexing.binary.extensions.hint=인덱싱 중 바이너리로 처 settings.rag.indexing.embedding.batch.size=임베딩 배치 크기 settings.rag.indexing.embedding.batch.size.hint=요청당 임베딩 모델에 전송되는 텍스트 세그먼트 수입니다. 인덱싱이 느리고 원격 공급자(OpenAI, Gemini)를 사용하는 경우 100–500으로 늘려 보세요. 로컬 모델(Ollama, LM Studio)을 사용하는 경우 타임아웃을 방지하려면 낮게 유지하세요. +## Settings - Models +settings.models.title=모델 +settings.models.description=모든 공급자에서 공유되는 전역 AI 모델 동작을 구성합니다. +settings.models.max.tool.calling.round.trips=최대 도구 호출 라운드 트립 +settings.models.max.tool.calling.round.trips.hint=AI가 단일 응답에서 수행할 수 있는 최대 도구 호출 횟수입니다 (기본값\: 10). 값이 높을수록 복잡한 에이전트 작업이 가능하지만 지연 시간과 비용이 증가합니다. + ## Settings - Utility Models settings.utility.models.title=유틸리티 모델 settings.utility.models.uses.selected=(선택된 모델 사용) From 89b1010a29416e544bb8312f860b8853f79a6cad Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 00:08:20 +0000 Subject: [PATCH 106/251] New translations messages.properties (Portuguese) [ci skip] --- .../main/resources/i18n/messages_pt.properties | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index 3cf0e9f0d..1e9f3f9bd 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -844,6 +844,15 @@ message.date.today=Today message.date.yesterday=Yesterday message.token.usage={0} tokens · {1} in / {2} out message.token.usage.tooltip=Tokens used by this response.\nInput\: your prompt + context sent to the AI.\nOutput\: the AI-generated reply. + +# Tool call display +tool.call.header.running=Running tool... +tool.call.header.done=Used {0} tool(s) +tool.call.status.done=Done +tool.call.status.failed=Failed +tool.call.detail.arguments=Arguments +tool.call.detail.result=Result + attachment.download=Download attachment attachment.download.description=Download this file attachment attachment.save.file=Save Attachment @@ -1069,6 +1078,12 @@ settings.rag.indexing.binary.extensions.hint=Comma-separated file extensions tre settings.rag.indexing.embedding.batch.size=Embedding Batch Size settings.rag.indexing.embedding.batch.size.hint=Number of text segments sent to the embedding model per request. If indexing feels slow and you use a remote provider (OpenAI, Gemini), try increasing to 100–500. If you use a local model (Ollama, LM Studio), keep this low to avoid timeouts. +## Settings - Models +settings.models.title=Models +settings.models.description=Configure global AI model behavior shared across all providers. +settings.models.max.tool.calling.round.trips=Max Tool-Calling Round Trips +settings.models.max.tool.calling.round.trips.hint=Maximum number of tool calls the AI can make in a single response (default\: 10). Higher values allow more complex agent tasks but increase latency and cost. + ## Settings - Utility Models settings.utility.models.title=Utility Models settings.utility.models.uses.selected=(uses selected model) From 8e774f8290b93c5d341b2e38867e0e2db0df8a3f Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 00:08:22 +0000 Subject: [PATCH 107/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../main/resources/i18n/messages_zh_CN.properties | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 79a8a58a6..17427a3d3 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -844,6 +844,15 @@ message.date.today=今天 message.date.yesterday=昨天 message.token.usage={0} 个 token · {1} 进 / {2} 出 message.token.usage.tooltip=此回复使用的 token。\n输入\: 您的 prompt + 发送给 AI 的上下文。\n输出\: AI 生成的回复。 + +# Tool call display +tool.call.header.running=正在运行工具... +tool.call.header.done=已使用 {0} 个工具 +tool.call.status.done=已完成 +tool.call.status.failed=失败 +tool.call.detail.arguments=参数 +tool.call.detail.result=结果 + attachment.download=下载附件 attachment.download.description=下载此附件 attachment.save.file=保存附件 @@ -1069,6 +1078,12 @@ settings.rag.indexing.binary.extensions.hint=以逗号分隔的在索引时被 settings.rag.indexing.embedding.batch.size=嵌入批处理大小 settings.rag.indexing.embedding.batch.size.hint=每次请求发送到嵌入模型的文本片段数量。如果索引速度较慢且您使用远程提供商(OpenAI、Gemini),可尝试增大至 100–500。如果使用本地模型(Ollama、LM Studio),请保持较低值以避免超时。 +## Settings - Models +settings.models.title=模型 +settings.models.description=配置所有提供商共享的全局 AI 模型行为。 +settings.models.max.tool.calling.round.trips=最大工具调用轮次 +settings.models.max.tool.calling.round.trips.hint=AI 在单次响应中可以进行的最大工具调用次数(默认:10)。值越高允许执行越复杂的智能体任务,但会增加延迟和成本。 + ## Settings - Utility Models settings.utility.models.title=实用模型 settings.utility.models.uses.selected=(使用所选模型) From 2d896a217430a2aa249985d2a6a493241accdbfc Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 00:08:23 +0000 Subject: [PATCH 108/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../main/resources/i18n/messages_zh_TW.properties | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index a9f6469d0..2786168c8 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -844,6 +844,15 @@ message.date.today=今天 message.date.yesterday=昨天 message.token.usage={0} 個 token · {1} 進 / {2} 出 message.token.usage.tooltip=此回覆使用的 token。\n輸入\: 您的 prompt + 傳送給 AI 的上下文。\n輸出\: AI 產生的回覆。 + +# Tool call display +tool.call.header.running=正在執行工具... +tool.call.header.done=已使用 {0} 個工具 +tool.call.status.done=已完成 +tool.call.status.failed=失敗 +tool.call.detail.arguments=參數 +tool.call.detail.result=結果 + attachment.download=下載附件 attachment.download.description=下載此附件 attachment.save.file=儲存附件 @@ -1069,6 +1078,12 @@ settings.rag.indexing.binary.extensions.hint=以逗號分隔的在索引時被 settings.rag.indexing.embedding.batch.size=嵌入批次大小 settings.rag.indexing.embedding.batch.size.hint=每次請求傳送至嵌入模型的文字片段數量。若索引速度慢且使用遠端提供商(OpenAI、Gemini),可嘗試增大至 100–500。若使用本地模型(Ollama、LM Studio),請保持較低值以避免逾時。 +## Settings - Models +settings.models.title=模型 +settings.models.description=設定所有提供商共享的全域 AI 模型行為。 +settings.models.max.tool.calling.round.trips=最大工具呼叫來回次數 +settings.models.max.tool.calling.round.trips.hint=AI 在單次回應中可執行的最大工具呼叫次數(預設:10)。值越高可執行越複雜的智能體任務,但會增加延遲與成本。 + ## Settings - Utility Models settings.utility.models.title=工具模型 settings.utility.models.uses.selected=(使用所選模型) From 3dfc606d4bc247e566f0114ce3da917a9eff1550 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 00:08:25 +0000 Subject: [PATCH 109/251] New translations messages.properties (Vietnamese) [ci skip] --- .../main/resources/i18n/messages_vi_VN.properties | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 6f173dbd3..780fd625e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -844,6 +844,15 @@ message.date.today=Hôm nay message.date.yesterday=Hôm qua message.token.usage={0} token · {1} vào / {2} ra message.token.usage.tooltip=Số token được sử dụng bởi phản hồi này.\nĐầu vào\: prompt của bạn + ngữ cảnh được gửi đến AI.\nĐầu ra\: phản hồi do AI tạo ra. + +# Tool call display +tool.call.header.running=Đang chạy công cụ... +tool.call.header.done=Đã sử dụng {0} công cụ +tool.call.status.done=Hoàn tất +tool.call.status.failed=Thất bại +tool.call.detail.arguments=Đối số +tool.call.detail.result=Kết quả + attachment.download=Tải xuống tệp đính kèm attachment.download.description=Tải xuống tệp đính kèm này attachment.save.file=Lưu tệp đính kèm @@ -1069,6 +1078,12 @@ settings.rag.indexing.binary.extensions.hint=Phần mở rộng tệp cách nhau settings.rag.indexing.embedding.batch.size=Kích thước lô nhúng settings.rag.indexing.embedding.batch.size.hint=Số đoạn văn bản gửi đến mô hình nhúng mỗi yêu cầu. Nếu lập chỉ mục chậm và bạn dùng nhà cung cấp từ xa (OpenAI, Gemini), hãy thử tăng lên 100–500. Nếu dùng mô hình cục bộ (Ollama, LM Studio), hãy giữ thấp để tránh hết thời gian chờ. +## Settings - Models +settings.models.title=Mô hình +settings.models.description=Cấu hình hành vi mô hình AI toàn cục được chia sẻ trên tất cả các nhà cung cấp. +settings.models.max.tool.calling.round.trips=Số lượt gọi công cụ tối đa +settings.models.max.tool.calling.round.trips.hint=Số lần gọi công cụ tối đa mà AI có thể thực hiện trong một phản hồi (mặc định\: 10). Giá trị cao hơn cho phép các tác vụ agent phức tạp hơn nhưng tăng độ trễ và chi phí. + ## Settings - Utility Models settings.utility.models.title=Mô hình tiện ích settings.utility.models.uses.selected=(sử dụng mô hình đã chọn) From 9a68451d666a527a43b7cd9a4dd809d08c680b38 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 01:15:11 +0000 Subject: [PATCH 110/251] Update source file messages.properties [ci skip] --- .../src/main/resources/i18n/messages.properties | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 31135135d..dd0891c8c 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -841,6 +841,15 @@ message.date.today=Today message.date.yesterday=Yesterday message.token.usage={0} tokens · {1} in / {2} out message.token.usage.tooltip=Tokens used by this response.\nInput: your prompt + context sent to the AI.\nOutput: the AI-generated reply. + +# Tool call display +tool.call.header.running=Running tool... +tool.call.header.done=Used {0} tool(s) +tool.call.status.done=Done +tool.call.status.failed=Failed +tool.call.detail.arguments=Arguments +tool.call.detail.result=Result + attachment.download=Download attachment attachment.download.description=Download this file attachment attachment.save.file=Save Attachment @@ -1066,6 +1075,12 @@ settings.rag.indexing.binary.extensions.hint=Comma-separated file extensions tre settings.rag.indexing.embedding.batch.size=Embedding Batch Size settings.rag.indexing.embedding.batch.size.hint=Number of text segments sent to the embedding model per request. If indexing feels slow and you use a remote provider (OpenAI, Gemini), try increasing to 100–500. If you use a local model (Ollama, LM Studio), keep this low to avoid timeouts. +## Settings - Models +settings.models.title=Models +settings.models.description=Configure global AI model behavior shared across all providers. +settings.models.max.tool.calling.round.trips=Max Tool-Calling Round Trips +settings.models.max.tool.calling.round.trips.hint=Maximum number of tool calls the AI can make in a single response (default: 10). Higher values allow more complex agent tasks but increase latency and cost. + ## Settings - Utility Models settings.utility.models.title=Utility Models settings.utility.models.uses.selected=(uses selected model) From abad60f1b0ec1681ab61fba5b07066dd38905d27 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 03:41:28 +0000 Subject: [PATCH 111/251] New translations messages.properties (French) [ci skip] --- .../src/main/resources/i18n/messages_fr.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 1360bfe12..e5a815448 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -107,6 +107,12 @@ discover.stat.projects=Projets discover.stat.mcp=Serveurs MCP discover.stat.plans=Plans discover.stat.skills=Compétences +discover.customize=Personnaliser +discover.customize.show_token_usage=Afficher la carte d'utilisation des jetons +discover.tokens.title=Meilleurs modèles par utilisation de jetons +discover.tokens.total={0} au total +discover.tokens.view_details=Voir les détails +discover.tokens.empty=Aucune utilisation de jetons enregistrée pour le moment. Commencez à discuter pour voir les statistiques ici. discover.explore.title=Explorer les fonctionnalités discover.explore.mcp.title=Serveurs MCP discover.explore.mcp.desc=Étendez Askimo avec des outils externes et des sources de données via le Model Context Protocol. From 4a8fe3734ec128daf31351bc5ddb589f1c5b6da4 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 03:41:29 +0000 Subject: [PATCH 112/251] New translations messages.properties (Spanish) [ci skip] --- .../src/main/resources/i18n/messages_es.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index a076eb5a3..2fa1d088c 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -107,6 +107,12 @@ discover.stat.projects=Proyectos discover.stat.mcp=Servidores MCP discover.stat.plans=Planes discover.stat.skills=Habilidades +discover.customize=Personalizar +discover.customize.show_token_usage=Mostrar tarjeta de uso de tokens +discover.tokens.title=Modelos principales por uso de tokens +discover.tokens.total={0} en total +discover.tokens.view_details=Ver detalles +discover.tokens.empty=Aún no se ha registrado el uso de tokens. Empiece a chatear para ver las estadísticas aquí. discover.explore.title=Explorar funciones discover.explore.mcp.title=Servidores MCP discover.explore.mcp.desc=Amplía Askimo con herramientas externas y fuentes de datos mediante el Model Context Protocol. From 6e171ec83f5dd68945b3ba31159f08b1ba3724ea Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 03:41:30 +0000 Subject: [PATCH 113/251] New translations messages.properties (German) [ci skip] --- .../src/main/resources/i18n/messages_de.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 500288555..a714657d0 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -107,6 +107,12 @@ discover.stat.projects=Projekte discover.stat.mcp=MCP-Server discover.stat.plans=Pläne discover.stat.skills=Fähigkeiten +discover.customize=Anpassen +discover.customize.show_token_usage=Token-Nutzungskarte anzeigen +discover.tokens.title=Top-Modelle nach Token-Nutzung +discover.tokens.total={0} insgesamt +discover.tokens.view_details=Details anzeigen +discover.tokens.empty=Noch keine Token-Nutzung aufgezeichnet. Beginnen Sie zu chatten, um hier Statistiken zu sehen. discover.explore.title=Funktionen entdecken discover.explore.mcp.title=MCP-Server discover.explore.mcp.desc=Erweitern Sie Askimo mit externen Tools und Datenquellen über das Model Context Protocol. From 75cc601a5e0d345075f5dbe8b95e70bb75cb3be0 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 03:41:32 +0000 Subject: [PATCH 114/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 02ecd769a..4d40c9ddc 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -107,6 +107,12 @@ discover.stat.projects=プロジェクト discover.stat.mcp=MCPサーバー discover.stat.plans=プラン discover.stat.skills=スキル +discover.customize=カスタマイズ +discover.customize.show_token_usage=トークン使用量カードを表示 +discover.tokens.title=トークン使用量別のトップモデル +discover.tokens.total=合計 {0} +discover.tokens.view_details=詳細を表示 +discover.tokens.empty=トークンの使用記録がまだありません。チャットを開始して統計を表示してください。 discover.explore.title=機能を探索 discover.explore.mcp.title=MCPサーバー discover.explore.mcp.desc=Model Context Protocolを介して、外部ツールやデータソースでAskimoを拡張します。 From e0486f0d6435dcfba7516c4ec5b9b130980a2a05 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 03:41:33 +0000 Subject: [PATCH 115/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index beaa5051c..97c199e66 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -107,6 +107,12 @@ discover.stat.projects=프로젝트 discover.stat.mcp=MCP 서버 discover.stat.plans=플랜 discover.stat.skills=스킬 +discover.customize=사용자 지정 +discover.customize.show_token_usage=토큰 사용량 카드 표시 +discover.tokens.title=토큰 사용량 기준 상위 모델 +discover.tokens.total=총 {0} +discover.tokens.view_details=세부 정보 보기 +discover.tokens.empty=아직 기록된 토큰 사용량이 없습니다. 채팅을 시작하여 여기에서 통계를 확인하세요. discover.explore.title=기능 살펴보기 discover.explore.mcp.title=MCP 서버 discover.explore.mcp.desc=Model Context Protocol을 통해 외부 도구와 데이터 소스로 Askimo를 확장하세요. From bcdc2c8189c90c3363626f690a4c086343c577d8 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 03:41:34 +0000 Subject: [PATCH 116/251] New translations messages.properties (Portuguese) [ci skip] --- .../src/main/resources/i18n/messages_pt.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index 1e9f3f9bd..afd999645 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -107,6 +107,12 @@ discover.stat.projects=Projects discover.stat.mcp=MCP Servers discover.stat.plans=Plans discover.stat.skills=Skills +discover.customize=Customize +discover.customize.show_token_usage=Show token usage card +discover.tokens.title=Top Models by Token Usage +discover.tokens.total={0} total +discover.tokens.view_details=View details +discover.tokens.empty=No token usage recorded yet. Start chatting to see stats here. discover.explore.title=Explore Features discover.explore.mcp.title=MCP Servers discover.explore.mcp.desc=Extend Askimo with external tools and data sources via the Model Context Protocol. From 2a34160d3a68d5df859e2435244e5706dddbd087 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 03:41:36 +0000 Subject: [PATCH 117/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 17427a3d3..b0a4578df 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -107,6 +107,12 @@ discover.stat.projects=项目 discover.stat.mcp=MCP 服务器 discover.stat.plans=计划 discover.stat.skills=技能 +discover.customize=自定义 +discover.customize.show_token_usage=显示 Token 使用情况卡片 +discover.tokens.title=按 Token 使用量排名的模型 +discover.tokens.total=共 {0} +discover.tokens.view_details=查看详情 +discover.tokens.empty=暂无 Token 使用记录。开始聊天以在此处查看统计信息。 discover.explore.title=探索功能 discover.explore.mcp.title=MCP 服务器 discover.explore.mcp.desc=通过 Model Context Protocol,使用外部工具和数据源扩展 Askimo。 From d55eef56141e6e4bbc4dc9fd4a6f1709c0872eb9 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 03:41:37 +0000 Subject: [PATCH 118/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 2786168c8..c7d746b16 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -107,6 +107,12 @@ discover.stat.projects=專案 discover.stat.mcp=MCP 伺服器 discover.stat.plans=計劃 discover.stat.skills=技能 +discover.customize=自訂 +discover.customize.show_token_usage=顯示 Token 使用量卡片 +discover.tokens.title=按 Token 使用量排名的模型 +discover.tokens.total=共 {0} +discover.tokens.view_details=查看詳情 +discover.tokens.empty=暫無 Token 使用記錄。開始聊天以在此處查看統計資訊。 discover.explore.title=探索功能 discover.explore.mcp.title=MCP 伺服器 discover.explore.mcp.desc=透過 Model Context Protocol,使用外部工具和資料來源擴充 Askimo。 From 4af66438345ee76b4bf2918297b0dc7e64836644 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 03:41:39 +0000 Subject: [PATCH 119/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 780fd625e..1f2292bf0 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -107,6 +107,12 @@ discover.stat.projects=Dự án discover.stat.mcp=Máy chủ MCP discover.stat.plans=Kế hoạch discover.stat.skills=Kỹ năng +discover.customize=Tùy chỉnh +discover.customize.show_token_usage=Hiển thị thẻ sử dụng token +discover.tokens.title=Các model hàng đầu theo mức sử dụng token +discover.tokens.total=Tổng {0} +discover.tokens.view_details=Xem chi tiết +discover.tokens.empty=Chưa có dữ liệu sử dụng token. Hãy bắt đầu trò chuyện để xem thống kê tại đây. discover.explore.title=Khám phá tính năng discover.explore.mcp.title=Máy chủ MCP discover.explore.mcp.desc=Mở rộng Askimo bằng các công cụ bên ngoài và nguồn dữ liệu thông qua Model Context Protocol. From 8cb96a284a22f2ea31bbacfe3a66f9918c22cdfd Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 04:47:48 +0000 Subject: [PATCH 120/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index dd0891c8c..9584f37cb 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -107,6 +107,12 @@ discover.stat.projects=Projects discover.stat.mcp=MCP Servers discover.stat.plans=Plans discover.stat.skills=Skills +discover.customize=Customize +discover.customize.show_token_usage=Show token usage card +discover.tokens.title=Top Models by Token Usage +discover.tokens.total={0} total +discover.tokens.view_details=View details +discover.tokens.empty=No token usage recorded yet. Start chatting to see stats here. discover.explore.title=Explore Features discover.explore.mcp.title=MCP Servers discover.explore.mcp.desc=Extend Askimo with external tools and data sources via the Model Context Protocol. From 9208cad0062f6a66894e093a851ccaa200e8744a Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:07:01 +0000 Subject: [PATCH 121/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 9584f37cb..e1651ba96 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -651,6 +651,8 @@ chat.create.image.mode.cancel=Cancel image creation mode chat.image.model.missing.title=Image model not configured chat.image.model.missing.message=No image model is set for {0}. Open Settings > AI Provider > Image Generation Models and set a model name first. chat.tools.button=Available Tools +chat.tools.button.disabled=Available Tools ({0} disabled) +chat.tools.button.model.no.support=Tools are not supported by this model chat.tools.popup.title=Available Tools chat.tools.popup.loading=Loading servers... chat.tools.popup.no.servers.global=No global MCP servers configured. @@ -659,7 +661,6 @@ chat.tools.server.scope.global=Global chat.tools.server.scope.project=Project chat.tools.server.scope.builtin=Built-in chat.tools.tool.no.description=No description available -chat.tools.button.disabled=Available Tools ({0} disabled) chat.reasoning.effort.label=Thinking chat.reasoning.effort.tooltip=Reasoning effort — controls how deeply the model thinks before responding chat.reasoning.effort.off=Off @@ -1010,6 +1011,7 @@ error.provider_not_configured=⚠️ No AI provider configured.\n\nTo start chat error.rate_limit=⚠️ Rate limit exceeded\n{retryAfter}\n\nYou've reached your API usage limit. Please wait before sending more messages. error.insufficient_credits=⚠️ Insufficient API credits\n\nYour credit balance has been exhausted.\n\nPlease go to Plans & Billing to top up your credits.\n\nerror.timeout=⚠️ Request timed out after {timeout} seconds\n\nThis might be due to:\n• High server load - try again in a moment\n• Complex query - try simplifying\n• Network latency error.timeout=⚠️ Request timed out after {timeout} seconds\n\nPossible causes:\n• High server load – please try again later\n• Complex request – simplify your input\n• Network delays +error.context_length=⚠️ Context window exceeded\n\nThe total input (conversation history + your message + attachments) is too large for this model to process.\n\nTo fix this:\n• Start a new chat session to clear the conversation history\n• Shorten your message or remove large attachments\n• If using a local model (Ollama / LM Studio / Docker), increase the context size in its settings\n• Switch to a model with a larger context window error.invalid_request=⚠️ Invalid request: {details}\n\nPlease check your input and try again. error.system=⚠️ System Error\n\nAn unexpected error occurred: {errorCode}\n\nPlease contact Askimo support with:\n• What you were doing\n• The error code above\n• The timestamp From b035f01db81e676b545dde1fc0462488ad3c62f2 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:07:03 +0000 Subject: [PATCH 122/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index e5a815448..f044f1050 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -654,6 +654,8 @@ chat.create.image.mode.cancel=Annuler le mode de création d’image chat.image.model.missing.title=Modèle d'image non configuré chat.image.model.missing.message=Aucun modèle d''image n''est défini pour {0}. Ouvrez Paramètres > Fournisseur d''IA > Modèles de génération d''images et définissez d''abord un nom de modèle. chat.tools.button=Outils disponibles +chat.tools.button.disabled=Outils disponibles ({0} désactivés) +chat.tools.button.model.no.support=Les outils ne sont pas pris en charge par ce modèle chat.tools.popup.title=Outils disponibles chat.tools.popup.loading=Chargement des serveurs... chat.tools.popup.no.servers.global=Aucun serveur MCP global configuré. @@ -662,7 +664,6 @@ chat.tools.server.scope.global=Global chat.tools.server.scope.project=Projet chat.tools.server.scope.builtin=Intégré chat.tools.tool.no.description=Aucune description disponible -chat.tools.button.disabled=Outils disponibles ({0} désactivés) chat.reasoning.effort.label=Réflexion chat.reasoning.effort.tooltip=Effort de raisonnement — contrôle la profondeur de réflexion du modèle avant de répondre chat.reasoning.effort.off=Désactivé @@ -1013,6 +1014,7 @@ error.provider_not_configured=⚠️ Aucun fournisseur IA configuré.\n\nPour co error.rate_limit=⚠️ Limite d’utilisation atteinte\n{retryAfter}\n\nVous avez atteint votre limite d’utilisation de l’API. Veuillez patienter avant d’envoyer d’autres messages. error.insufficient_credits=⚠️ Crédits insuffisants\n\nVotre solde est trop faible pour utiliser ce fournisseur.\n\nVisitez la page de facturation pour ajouter des crédits. error.timeout=⚠️ La requête a expiré après {timeout} secondes\n\nCauses possibles \:\n• Charge serveur élevée – réessayez plus tard\n• Requête complexe – simplifiez-la\n• Latence réseau +error.context_length=⚠️ Fenêtre de contexte dépassée\n\nL'entrée totale (historique de la conversation + votre message + pièces jointes) est trop volumineuse pour être traitée par ce modèle.\n\nPour corriger cela \:\n• Démarrez une nouvelle session de chat pour effacer l'historique de la conversation\n• Raccourcissez votre message ou supprimez les pièces jointes volumineuses\n• Si vous utilisez un modèle local (Ollama / LM Studio / Docker), augmentez la taille du contexte dans ses paramètres\n• Passez à un modèle avec une fenêtre de contexte plus grande error.invalid_request=⚠️ Requête invalide \: {details}\n\nVeuillez vérifier votre saisie et réessayer. error.system=⚠️ Erreur système\n\nUne erreur inattendue est survenue \: {errorCode}\n\nVeuillez contacter le support Askimo avec \:\n• Ce que vous faisiez\n• Le code d’erreur ci-dessus\n• L’horodatage From 3739bc901688e647772484ba47a3bcfa93f6a237 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:07:05 +0000 Subject: [PATCH 123/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 2fa1d088c..59d2ac88f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -654,6 +654,8 @@ chat.create.image.mode.cancel=Cancelar modo de creación de imagen chat.image.model.missing.title=Modelo de imagen no configurado chat.image.model.missing.message=No hay ningún modelo de imagen configurado para {0}. Abre Configuración > Proveedor de IA > Modelos de generación de imágenes y establece primero un nombre de modelo. chat.tools.button=Herramientas disponibles +chat.tools.button.disabled=Herramientas disponibles ({0} deshabilitadas) +chat.tools.button.model.no.support=Las herramientas no son compatibles con este modelo chat.tools.popup.title=Herramientas disponibles chat.tools.popup.loading=Cargando servidores... chat.tools.popup.no.servers.global=No hay servidores MCP globales configurados. @@ -662,7 +664,6 @@ chat.tools.server.scope.global=Global chat.tools.server.scope.project=Proyecto chat.tools.server.scope.builtin=Integrado chat.tools.tool.no.description=No hay descripción disponible -chat.tools.button.disabled=Herramientas disponibles ({0} deshabilitadas) chat.reasoning.effort.label=Pensando chat.reasoning.effort.tooltip=Esfuerzo de razonamiento — controla qué tan profundo piensa el modelo antes de responder chat.reasoning.effort.off=Desactivado @@ -1013,6 +1014,7 @@ error.provider_not_configured=⚠️ No hay ningún proveedor de IA configurado. error.rate_limit=⚠️ Límite de uso excedido\n{retryAfter}\n\nHa alcanzado su límite de uso de la API. Espere antes de enviar más mensajes. error.insufficient_credits=⚠️ Créditos insuficientes\n\nSu saldo de créditos es demasiado bajo.\n\nVaya a la página de facturación para añadir créditos. error.timeout=⚠️ La solicitud expiró después de {timeout} segundos\n\nPosibles causas\:\n• Alta carga del servidor – intente nuevamente más tarde\n• Consulta compleja – intente simplificarla\n• Latencia de red +error.context_length=⚠️ Ventana de contexto excedida\n\nLa entrada total (historial de la conversación + su mensaje + archivos adjuntos) es demasiado grande para que este modelo la procese.\n\nPara solucionar esto\:\n• Inicie una nueva sesión de chat para borrar el historial de la conversación\n• Acorte su mensaje o elimine archivos adjuntos grandes\n• Si utiliza un modelo local (Ollama / LM Studio / Docker), aumente el tamaño del contexto en su configuración\n• Cambie a un modelo con una ventana de contexto más grande error.invalid_request=⚠️ Solicitud no válida\: {details}\n\nRevise su entrada e inténtelo de nuevo. error.system=⚠️ Error del sistema\n\nOcurrió un error inesperado\: {errorCode}\n\nContacte al soporte de Askimo con\:\n• Lo que estaba haciendo\n• El código de error anterior\n• La marca de tiempo From c1aa54a29dbbc77e0a5bfcad48c2f667376ac383 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:07:06 +0000 Subject: [PATCH 124/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index a714657d0..8b1a26bca 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -654,6 +654,8 @@ chat.create.image.mode.cancel=Bild-Erstellungsmodus beenden chat.image.model.missing.title=Bildmodell nicht konfiguriert chat.image.model.missing.message=Für {0} ist kein Bildmodell festgelegt. Öffnen Sie Einstellungen > KI-Anbieter > Modelle zur Bilderzeugung und legen Sie zuerst einen Modellnamen fest. chat.tools.button=Verfügbare Tools +chat.tools.button.disabled=Verfügbare Tools ({0} deaktiviert) +chat.tools.button.model.no.support=Tools werden von diesem Modell nicht unterstützt chat.tools.popup.title=Verfügbare Tools chat.tools.popup.loading=Server werden geladen... chat.tools.popup.no.servers.global=Keine globalen MCP-Server konfiguriert. @@ -662,7 +664,6 @@ chat.tools.server.scope.global=Global chat.tools.server.scope.project=Projekt chat.tools.server.scope.builtin=Integriert chat.tools.tool.no.description=Keine Beschreibung verfügbar -chat.tools.button.disabled=Verfügbare Tools ({0} deaktiviert) chat.reasoning.effort.label=Denken chat.reasoning.effort.tooltip=Denkaufwand — steuert, wie tief das Modell nachdenkt, bevor es antwortet chat.reasoning.effort.off=Aus @@ -1013,6 +1014,7 @@ error.provider_not_configured=⚠️ Kein KI-Anbieter konfiguriert.\n\nUm zu cha error.rate_limit=⚠️ Ratenlimit überschritten\n{retryAfter}\n\nSie haben Ihr API-Nutzungslimit erreicht. Bitte warten Sie, bevor Sie weitere Nachrichten senden. error.insufficient_credits=⚠️ Unzureichendes Guthaben\n\nIhr Guthaben ist zu niedrig, um diesen KI-Anbieter zu nutzen.\n\nBitte gehen Sie zur Abrechnungsseite Ihres Anbieters. error.timeout=⚠️ Anfrage nach {timeout} Sekunden abgelaufen\n\nMögliche Ursachen\:\n• Hohe Serverlast – versuchen Sie es später erneut\n• Komplexe Anfrage – vereinfachen Sie Ihre Eingabe\n• Netzwerkverzögerungen +error.context_length=⚠️ Kontextfenster überschritten\n\nDie gesamte Eingabe (Konversationsverlauf + Ihre Nachricht + Anhänge) ist zu groß, als dass dieses Modell sie verarbeiten könnte.\n\nSo beheben Sie das Problem\:\n• Starten Sie eine neue Chat-Sitzung, um den Konversationsverlauf zu löschen\n• Kürzen Sie Ihre Nachricht oder entfernen Sie große Anhänge\n• Wenn Sie ein lokales Modell verwenden (Ollama / LM Studio / Docker), erhöhen Sie die Kontextgröße in den Einstellungen\n• Wechseln Sie zu einem Modell mit einem größeren Kontextfenster error.invalid_request=⚠️ Ungültige Anfrage\: {details}\n\nBitte überprüfen Sie Ihre Eingabe und versuchen Sie es erneut. error.system=⚠️ Systemfehler\n\nEin unerwarteter Fehler ist aufgetreten\: {errorCode}\n\nBitte wenden Sie sich an den Askimo-Support mit\:\n• Ihrer letzten Aktion\n• Dem obigen Fehlercode\n• Dem Zeitstempel From 3ca85ea17740dbcd82848719dfbb73a053f6e416 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:07:08 +0000 Subject: [PATCH 125/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 4d40c9ddc..37b91c043 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -654,6 +654,8 @@ chat.create.image.mode.cancel=画像作成モードをキャンセル chat.image.model.missing.title=画像モデルが設定されていません chat.image.model.missing.message={0} に画像モデルが設定されていません。設定 > AI プロバイダー > 画像生成モデルを開き、まずモデル名を設定してください。 chat.tools.button=利用可能なツール +chat.tools.button.disabled=利用可能なツール({0} 無効) +chat.tools.button.model.no.support=ツールはこのモデルではサポートされていません chat.tools.popup.title=利用可能なツール chat.tools.popup.loading=サーバーを読み込み中... chat.tools.popup.no.servers.global=グローバル MCP サーバーが設定されていません。 @@ -662,7 +664,6 @@ chat.tools.server.scope.global=グローバル chat.tools.server.scope.project=プロジェクト chat.tools.server.scope.builtin=組み込み chat.tools.tool.no.description=説明はありません -chat.tools.button.disabled=利用可能なツール({0} 無効) chat.reasoning.effort.label=思考 chat.reasoning.effort.tooltip=推論の労力 — 応答する前にモデルがどの程度深く思考するかを制御します chat.reasoning.effort.off=オフ @@ -1013,6 +1014,7 @@ error.provider_not_configured=⚠️ AI プロバイダーが設定されてい error.rate_limit=⚠️ レート制限を超えました\n{retryAfter}\n\nAPI の利用上限に達しました。しばらく待ってから、もう一度送信してください。 error.insufficient_credits=⚠️ クレジット残高不足\n\nクレジット残高が不足しています。\n\n請求ページでクレジットを追加してください。 error.timeout=⚠️ {timeout} 秒後にリクエストがタイムアウトしました\n\n原因として考えられること:\n• サーバー負荷が高い—少し待って再試行してください\n• クエリが複雑—内容を簡略化してみてください\n• ネットワーク遅延 +error.context_length=⚠️ コンテキストウィンドウの制限を超えました\n\n入力の合計(会話履歴 + あなたのメッセージ + 添付ファイル)が大きすぎて、このモデルでは処理できません。\n\n解決するには:\n• 新しいチャットセッションを開始して会話履歴をクリアしてください\n• メッセージを短くするか、大きな添付ファイルを削除してください\n• ローカルモデル(Ollama / LM Studio / Docker)を使用している場合は、設定でコンテキストサイズを増やしてください\n• より大きなコンテキストウィンドウを持つモデルに切り替えてください error.invalid_request=⚠️ 無効なリクエスト:{details}\n\n入力内容を確認して、もう一度お試しください。 error.system=⚠️ システムエラー\n\n予期しないエラーが発生しました:{errorCode}\n\nAskimo サポートへ次を添えてご連絡ください:\n• 実行していた操作\n• 上記のエラーコード\n• タイムスタンプ From 13dc5f472b3c03a2af7f262235365cbefcabbc54 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:07:10 +0000 Subject: [PATCH 126/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 97c199e66..1057f93b7 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -654,6 +654,8 @@ chat.create.image.mode.cancel=이미지 생성 모드 취소 chat.image.model.missing.title=이미지 모델이 구성되지 않았습니다 chat.image.model.missing.message={0}에 설정된 이미지 모델이 없습니다. 설정 > AI 제공업체 > 이미지 생성 모델을 열고 먼저 모델 이름을 설정하세요. chat.tools.button=사용 가능한 도구 +chat.tools.button.disabled=사용 가능한 도구 ({0} 비활성화됨) +chat.tools.button.model.no.support=이 모델은 도구를 지원하지 않습니다 chat.tools.popup.title=사용 가능한 도구 chat.tools.popup.loading=서버 로딩 중... chat.tools.popup.no.servers.global=전역 MCP 서버가 설정되지 않았습니다. @@ -662,7 +664,6 @@ chat.tools.server.scope.global=전역 chat.tools.server.scope.project=프로젝트 chat.tools.server.scope.builtin=내장 chat.tools.tool.no.description=설명이 없습니다 -chat.tools.button.disabled=사용 가능한 도구 ({0} 비활성화됨) chat.reasoning.effort.label=생각 중 chat.reasoning.effort.tooltip=추론 노력 — 모델이 응답하기 전에 얼마나 깊이 생각할지 제어합니다 chat.reasoning.effort.off=끄기 @@ -1013,6 +1014,7 @@ error.provider_not_configured=⚠️ AI 제공자가 설정되지 않았습니 error.rate_limit=⚠️ 사용량 제한을 초과했습니다\n{retryAfter}\n\nAPI 사용 한도에 도달했습니다. 잠시 기다린 후 다시 메시지를 보내세요. error.insufficient_credits=⚠️ 크레딧 부족\n\n크레딧 잔액이 너무 낮습니다.\n\n결제 페이지를 방문하여 크레딧을 추가하세요. error.timeout=⚠️ {timeout}초 후 요청 시간이 초과되었습니다\n\n가능한 원인\:\n• 서버 부하가 높음 - 잠시 후 다시 시도\n• 쿼리가 복잡함 - 더 간단하게 작성\n• 네트워크 지연 +error.context_length=⚠️ 컨텍스트 창 초과\n\n전체 입력(대화 기록 + 메시지 + 첨부 파일)이 너무 커서 이 모델이 처리할 수 없습니다.\n\n해결 방법\:\n• 새로운 채팅 세션을 시작하여 대화 기록을 지우세요\n• 메시지를 줄이거나 큰 첨부 파일을 제거하세요\n• 로컬 모델(Ollama / LM Studio / Docker)을 사용하는 경우, 설정에서 컨텍스트 크기를 늘리세요\n• 더 큰 컨텍스트 창을 지원하는 모델로 전환하세요 error.invalid_request=⚠️ 잘못된 요청\: {details}\n\n입력 내용을 확인한 뒤 다시 시도하세요. error.system=⚠️ 시스템 오류\n\n예기치 않은 오류가 발생했습니다\: {errorCode}\n\nAskimo 지원팀에 다음 정보를 함께 전달해 주세요\:\n• 수행 중이던 작업\n• 위의 오류 코드\n• 타임스탬프 From 4821f2d1d6525a690fdd9d865db0ca047db52c7b Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:07:11 +0000 Subject: [PATCH 127/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index afd999645..c139ff895 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -654,6 +654,8 @@ chat.create.image.mode.cancel=Cancel image creation mode chat.image.model.missing.title=Image model not configured chat.image.model.missing.message=No image model is set for {0}. Open Settings > AI Provider > Image Generation Models and set a model name first. chat.tools.button=Available Tools +chat.tools.button.disabled=Available Tools ({0} disabled) +chat.tools.button.model.no.support=Tools are not supported by this model chat.tools.popup.title=Available Tools chat.tools.popup.loading=Loading servers... chat.tools.popup.no.servers.global=No global MCP servers configured. @@ -662,7 +664,6 @@ chat.tools.server.scope.global=Global chat.tools.server.scope.project=Project chat.tools.server.scope.builtin=Built-in chat.tools.tool.no.description=No description available -chat.tools.button.disabled=Available Tools ({0} disabled) chat.reasoning.effort.label=Thinking chat.reasoning.effort.tooltip=Reasoning effort — controls how deeply the model thinks before responding chat.reasoning.effort.off=Off @@ -1013,6 +1014,7 @@ error.provider_not_configured=⚠️ No AI provider configured.\n\nTo start chat error.rate_limit=⚠️ Rate limit exceeded\n{retryAfter}\n\nYou''ve reached your API usage limit. Please wait before sending more messages. error.insufficient_credits=⚠️ Insufficient API credits\n\nYour credit balance has been exhausted.\n\nPlease go to Plans & Billing to top up your credits.\n\nerror.timeout\=⚠️ Request timed out after {timeout} seconds\n\nThis might be due to\:\n• High server load - try again in a moment\n• Complex query - try simplifying\n• Network latency error.timeout=⚠️ Request timed out after {timeout} seconds\n\nPossible causes\:\n• High server load – please try again later\n• Complex request – simplify your input\n• Network delays +error.context_length=⚠️ Context window exceeded\n\nThe total input (conversation history + your message + attachments) is too large for this model to process.\n\nTo fix this\:\n• Start a new chat session to clear the conversation history\n• Shorten your message or remove large attachments\n• If using a local model (Ollama / LM Studio / Docker), increase the context size in its settings\n• Switch to a model with a larger context window error.invalid_request=⚠️ Invalid request\: {details}\n\nPlease check your input and try again. error.system=⚠️ System Error\n\nAn unexpected error occurred\: {errorCode}\n\nPlease contact Askimo support with\:\n• What you were doing\n• The error code above\n• The timestamp From fdc0d09bf7b1dc54a8be9c406e00c4d95cb47615 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:07:13 +0000 Subject: [PATCH 128/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index b0a4578df..a32f94f84 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -654,6 +654,8 @@ chat.create.image.mode.cancel=取消图像创建模式 chat.image.model.missing.title=未配置图像模型 chat.image.model.missing.message=未为 {0} 设置图像模型。打开 设置 > AI 提供商 > 图像生成模型,并先设置模型名称。 chat.tools.button=可用工具 +chat.tools.button.disabled=可用工具({0} 已禁用) +chat.tools.button.model.no.support=此模型不支持工具 chat.tools.popup.title=可用工具 chat.tools.popup.loading=正在加载服务器... chat.tools.popup.no.servers.global=未配置全局 MCP 服务器。 @@ -662,7 +664,6 @@ chat.tools.server.scope.global=全局 chat.tools.server.scope.project=项目 chat.tools.server.scope.builtin=内置 chat.tools.tool.no.description=暂无描述 -chat.tools.button.disabled=可用工具({0} 已禁用) chat.reasoning.effort.label=思考 chat.reasoning.effort.tooltip=推理力度 — 控制模型在响应前思考的深度 chat.reasoning.effort.off=关闭 @@ -1013,6 +1014,7 @@ error.provider_not_configured=⚠️ 尚未配置 AI 提供商。\n\n开始聊 error.rate_limit=⚠️ 已超过速率限制\n{retryAfter}\n\n您已达到 API 使用上限,请稍后再发送消息。 error.insufficient_credits=⚠️ 积分不足\n\n您的积分余额过低。\n\n请前往提供商的账单页面充值。 error.timeout=⚠️ 请求在 {timeout} 秒后超时\n\n可能原因:\n• 服务器负载过高,请稍后重试\n• 请求过于复杂,请尝试简化\n• 网络延迟 +error.context_length=⚠️ 上下文窗口已超出限制\n\n总输入内容(对话历史记录 + 您的消息 + 附件)太大,此模型无法处理。\n\n解决方法:\n• 开始新的聊天会话以清除对话历史记录\n• 缩短您的消息或删除较大的附件\n• 如果使用本地模型(Ollama / LM Studio / Docker),请在设置中增加上下文大小\n• 切换到具有更大上下文窗口的模型 error.invalid_request=⚠️ 无效请求:{details}\n\n请检查输入内容后重试。 error.system=⚠️ 系统错误\n\n发生了意外错误:{errorCode}\n\n请联系 Askimo 支持,并提供:\n• 您的操作步骤\n• 上述错误代码\n• 发生时间 From f66dd5ea9472e1c8b41d3794106c4abfe55d45a8 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:07:14 +0000 Subject: [PATCH 129/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index c7d746b16..59e23dad1 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -654,6 +654,8 @@ chat.create.image.mode.cancel=取消影像建立模式 chat.image.model.missing.title=尚未設定圖片模型 chat.image.model.missing.message=尚未為 {0} 設定圖片模型。開啟 設定 > AI 提供者 > 圖片生成模型,並先設定模型名稱。 chat.tools.button=可用工具 +chat.tools.button.disabled=可用工具({0} 已停用) +chat.tools.button.model.no.support=此模型不支援工具 chat.tools.popup.title=可用工具 chat.tools.popup.loading=正在載入伺服器... chat.tools.popup.no.servers.global=尚未設定全域 MCP 伺服器。 @@ -662,7 +664,6 @@ chat.tools.server.scope.global=全域 chat.tools.server.scope.project=專案 chat.tools.server.scope.builtin=內建 chat.tools.tool.no.description=暫無描述 -chat.tools.button.disabled=可用工具({0} 已停用) chat.reasoning.effort.label=思考 chat.reasoning.effort.tooltip=推理力度 — 控制模型在回應前思考的深度 chat.reasoning.effort.off=關閉 @@ -1013,6 +1014,7 @@ error.provider_not_configured=⚠️ 尚未設定 AI 提供商。\n\n開始聊 error.rate_limit=⚠️ 已超過使用速率限制\n{retryAfter}\n\n您已達到 API 使用上限,請稍後再嘗試傳送訊息。 error.insufficient_credits=⚠️ 積分不足\n\n您的積分餘額過低。\n\n請前往提供商的帳單頁面充值。 error.timeout=⚠️ 請求於 {timeout} 秒後逾時\n\n可能原因包括:\n• 伺服器負載過高,請稍後再試\n• 查詢內容過於複雜,請嘗試簡化\n• 網路延遲 +error.context_length=⚠️ 上下文視窗已超出限制\n\n總輸入內容(對話歷史記錄 + 您的訊息 + 附件)太大,此模型無法處理。\n\n解決方法:\n• 開始新的聊天對話以清除對話歷史記錄\n• 縮短您的訊息或刪除較大的附件\n• 如果使用本地模型(Ollama / LM Studio / Docker),請在設定中增加上下文大小\n• 切換到具有更大上下文視窗的模型 error.invalid_request=⚠️ 無效的請求:{details}\n\n請檢查輸入內容後再試一次。 error.system=⚠️ 系統錯誤\n\n發生未預期的錯誤:{errorCode}\n\n請聯絡 Askimo 支援,並提供:\n• 您當時的操作\n• 上方的錯誤代碼\n• 發生的時間 From 7b3014d2362ba65f82d18c2e4565a3aa3b4adb57 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:07:16 +0000 Subject: [PATCH 130/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 1f2292bf0..1bee010d7 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -654,6 +654,8 @@ chat.create.image.mode.cancel=Hủy chế độ tạo hình ảnh chat.image.model.missing.title=Chưa cấu hình mô hình hình ảnh chat.image.model.missing.message=Chưa đặt mô hình hình ảnh cho {0}. Mở Cài đặt > Nhà cung cấp AI > Mô hình tạo hình ảnh và đặt tên mô hình trước. chat.tools.button=Công cụ khả dụng +chat.tools.button.disabled=Công cụ khả dụng ({0} bị vô hiệu hóa) +chat.tools.button.model.no.support=Các công cụ không được hỗ trợ bởi mô hình này chat.tools.popup.title=Công cụ khả dụng chat.tools.popup.loading=Đang tải máy chủ... chat.tools.popup.no.servers.global=Chưa cấu hình máy chủ MCP toàn cục. @@ -662,7 +664,6 @@ chat.tools.server.scope.global=Toàn cục chat.tools.server.scope.project=Dự án chat.tools.server.scope.builtin=Tích hợp sẵn chat.tools.tool.no.description=Không có mô tả -chat.tools.button.disabled=Công cụ khả dụng ({0} bị vô hiệu hóa) chat.reasoning.effort.label=Đang suy nghĩ chat.reasoning.effort.tooltip=Mức độ suy luận — kiểm soát mức độ mô hình suy nghĩ sâu như thế nào trước khi phản hồi chat.reasoning.effort.off=Tắt @@ -1013,6 +1014,7 @@ error.provider_not_configured=⚠️ Chưa cấu hình nhà cung cấp AI.\n\nĐ error.rate_limit=⚠️ Đã vượt giới hạn tốc độ\n{retryAfter}\n\nBạn đã đạt giới hạn sử dụng API. Vui lòng chờ một chút trước khi gửi thêm tin nhắn. error.insufficient_credits=⚠️ Không đủ tín dụng\n\nSố dư tín dụng quá thấp.\n\nVui lòng truy cập trang thanh toán để thêm tín dụng. error.timeout=⚠️ Yêu cầu đã hết thời gian chờ sau {timeout} giây\n\nNguyên nhân có thể do\:\n• Máy chủ đang quá tải - hãy thử lại sau ít phút\n• Truy vấn quá phức tạp - hãy thử đơn giản hóa\n• Độ trễ mạng +error.context_length=⚠️ Đã vượt quá cửa sổ ngữ cảnh (context window)\n\nTổng dữ liệu đầu vào (lịch sử trò chuyện + tin nhắn của bạn + tệp đính kèm) quá lớn để mô hình này có thể xử lý.\n\nĐể khắc phục\:\n• Bắt đầu một phiên trò chuyện mới để xóa lịch sử trò chuyện\n• Rút ngắn tin nhắn hoặc xóa các tệp đính kèm lớn\n• Nếu bạn đang sử dụng mô hình cục bộ (Ollama / LM Studio / Docker), hãy tăng kích thước ngữ cảnh trong phần cài đặt của mô hình đó\n• Chuyển sang mô hình có cửa sổ ngữ cảnh lớn hơn error.invalid_request=⚠️ Yêu cầu không hợp lệ\: {details}\n\nVui lòng kiểm tra nội dung nhập và thử lại. error.system=⚠️ Lỗi hệ thống\n\nĐã xảy ra lỗi không mong muốn\: {errorCode}\n\nVui lòng liên hệ hỗ trợ Askimo và cung cấp\:\n• Bạn đang làm gì\n• Mã lỗi ở trên\n• Thời điểm xảy ra lỗi From 3975f9532cfa27c39dd726a92444833436e640b2 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:34:05 +0000 Subject: [PATCH 131/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index f044f1050..a8b0656e7 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -640,8 +640,7 @@ global.search.results.count={0} résultat trouvé global.search.results.count.plural={0} résultats trouvés # Rest of chat view strings -chat.directive=Directive \: -chat.directive.none=Aucune +chat.directive=Directive chat.directive.new=Nouvelle directive chat.directive.manage=Gérer les directives chat.directive.learn.more=Apprenez à utiliser les directives From 9be9868413d22663a30dee20c7526635ed18d5ab Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:34:06 +0000 Subject: [PATCH 132/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 59d2ac88f..d60b57393 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -641,7 +641,6 @@ global.search.results.count.plural={0} resultados encontrados # Rest of chat view strings chat.directive=Directiva\: -chat.directive.none=Ninguna chat.directive.new=Nueva directiva chat.directive.manage=Gestionar directivas chat.directive.learn.more=Aprenda a usar directivas From 97d590a08f7392924bb5d5db8b7e94778d94d57c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:34:08 +0000 Subject: [PATCH 133/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 8b1a26bca..463419143 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -640,8 +640,7 @@ global.search.results.count={0} Ergebnis gefunden global.search.results.count.plural={0} Ergebnisse gefunden # Rest of chat view strings -chat.directive=Direktive\: -chat.directive.none=Keine +chat.directive=Direktive chat.directive.new=Neue Direktive chat.directive.manage=Direktiven verwalten chat.directive.learn.more=Erfahren Sie, wie Sie Direktiven verwenden From a76084a870e028603877cae2b91bb449c0809370 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:34:09 +0000 Subject: [PATCH 134/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 37b91c043..958328f63 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -640,8 +640,7 @@ global.search.results.count={0}件の結果 global.search.results.count.plural={0}件の結果 # Rest of chat view strings -chat.directive=ディレクティブ\: -chat.directive.none=なし +chat.directive=ディレクティブ chat.directive.new=新しいディレクティブ chat.directive.manage=ディレクティブ管理 chat.directive.learn.more=ディレクティブの使い方を学ぶ From 789b7deeb58a5268a9bb084d03044ed0d67ea5de Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:34:11 +0000 Subject: [PATCH 135/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 1057f93b7..15dc451ab 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -640,8 +640,7 @@ global.search.results.count={0}개 결과 global.search.results.count.plural={0}개 결과 # Rest of chat view strings -chat.directive=지시문\: -chat.directive.none=없음 +chat.directive=지시문 chat.directive.new=새 지시문 chat.directive.manage=지시문 관리 chat.directive.learn.more=디렉티브 사용법을 배워보세요 From 32da76b3f7592acf79772dfbebf10fc8cbc6adb9 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:34:12 +0000 Subject: [PATCH 136/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index c139ff895..c39443afc 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -640,8 +640,7 @@ global.search.results.count={0} result found global.search.results.count.plural={0} results found # Rest of chat view strings -chat.directive=Directive\: -chat.directive.none=None +chat.directive=Directive chat.directive.new=New Directive chat.directive.manage=Manage Directives chat.directive.learn.more=Learn how to use directives From 2af38fdcdeec13d0d0716575210dcd27ec1728c7 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:34:14 +0000 Subject: [PATCH 137/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index a32f94f84..9f7c42784 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -640,8 +640,7 @@ global.search.results.count=找到{0}个结果 global.search.results.count.plural=找到{0}个结果 # Rest of chat view strings -chat.directive=指令: -chat.directive.none=无 +chat.directive=指令 chat.directive.new=新指令 chat.directive.manage=管理指令 chat.directive.learn.more=了解如何使用指令 From 721db623d53a2ceb6a1c9bb84380f12e6c0e9107 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:34:15 +0000 Subject: [PATCH 138/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 59e23dad1..7ed80f272 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -640,8 +640,7 @@ global.search.results.count=找到{0}個結果 global.search.results.count.plural=找到{0}個結果 # Rest of chat view strings -chat.directive=指令: -chat.directive.none=無 +chat.directive=指令 chat.directive.new=新增指令 chat.directive.manage=管理指令 chat.directive.learn.more=了解如何使用指令 From ff7e13307b7da88c1e9df9ace5ef1558d1b8a364 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:34:17 +0000 Subject: [PATCH 139/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 1bee010d7..2af26242e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -640,8 +640,7 @@ global.search.results.count={0} kết quả global.search.results.count.plural={0} kết quả # Rest of chat view strings -chat.directive=Chỉ thị\: -chat.directive.none=Không có +chat.directive=Chỉ thị chat.directive.new=Chỉ thị mới chat.directive.manage=Quản lý chỉ thị chat.directive.learn.more=Tìm hiểu cách sử dụng chỉ thị From 97cbc8f8827da73d3208b1e45daafdad6c399db9 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Fri, 24 Jul 2026 22:54:05 +0000 Subject: [PATCH 140/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index e1651ba96..c39dc37aa 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -637,8 +637,7 @@ global.search.results.count={0} result found global.search.results.count.plural={0} results found # Rest of chat view strings -chat.directive=Directive: -chat.directive.none=None +chat.directive=Directive chat.directive.new=New Directive chat.directive.manage=Manage Directives chat.directive.learn.more=Learn how to use directives From 571c4421d55e55a16bb8dd64a60f2441993952ce Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 04:05:34 +0000 Subject: [PATCH 141/251] New translations messages.properties (French) [ci skip] --- .../resources/i18n/messages_fr.properties | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index a8b0656e7..061df5f30 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -31,6 +31,7 @@ menu.view.appearance.system=Système menu.view.appearance.light=Clair menu.view.appearance.dark=Sombre menu.view.fullscreen=Entrer en plein écran +menu.view.bookmarks=Voir les signets menu.terminal=Terminal menu.terminal.new=Nouveau terminal menu.help=Aide @@ -324,8 +325,6 @@ settings.skills.add.folder=Ajouter un dossier settings.skills.add.folder.name=Nom du dossier settings.advanced=Avancé settings.about=À propos -settings.model=Modèle -settings.provider=Fournisseur settings.theme=Thème settings.save=Enregistrer settings.cancel=Annuler @@ -593,6 +592,7 @@ shortcut.stop.ai.response=Arrêter la réponse de l’IA shortcut.quit.application=Quitter l’application shortcut.navigate.to.sessions=Accéder aux sessions shortcut.navigate.to.projects=Accéder aux projets +shortcut.navigate.to.bookmarks=Accéder aux favoris shortcut.enter.fullscreen=Entrer en plein écran shortcut.close.search=Fermer la recherche shortcut.next.search.result=Résultat de recherche suivant @@ -845,12 +845,28 @@ message.ai.try.again.confirm.cancel=Annuler message.ai.try.again.confirm.confirm=Régénérer message.ai.export.pdf=Exporter en PDF message.ai.export.pdf.dialog.title=Enregistrer la reponse IA en PDF +message.bookmark=Mettre en signet +message.bookmark.remove=Supprimer le signet +message.bookmark.description=Mettre ce message en signet message.edited.indicator=(modifié) message.date.today=Aujourd'hui message.date.yesterday=Hier message.token.usage={0} tokens · {1} en entrée / {2} en sortie message.token.usage.tooltip=Tokens utilisés par cette réponse.\nEntrée\: votre prompt + contexte envoyé à l'IA.\nSortie\: la réponse générée par l'IA. +# Bookmarks +chat.bookmarks.button.tooltip=Signets +chat.bookmarks.popover.title=Messages épinglés +chat.bookmarks.popover.empty.title=Aucun signet pour l’instant +chat.bookmarks.popover.empty.hint=Épingle un message avec l’icône signet en dessous +bookmarks.title=Signets +bookmarks.empty.title=Aucun signet pour l’instant +bookmarks.empty.hint=Ajoute un signet via l’icône d’épingle sous chaque message +bookmarks.session.untitled=Conversation sans titre +bookmarks.message.count={0} épinglés +bookmarks.role.user=Vous +bookmarks.role.ai=IA + # Tool call display tool.call.header.running=Exécution de l'outil... tool.call.header.done={0} outil(s) utilisé(s) @@ -1465,11 +1481,6 @@ skills.agentic.skills.available={0} compétences disponibles comme contexte de l skills.agentic.no.skills.hint=Il n’y a encore aucune compétence — ajoutez des compétences dans Paramètres → Compétences pour donner à l’agent des capacités spécialisées skills.agentic.model.default=Modèle par défaut -# File / folder chooser -file.chooser.folder.select=Sélectionner -file.chooser.folder.hint=Double-cliquez sur un dossier pour l’ouvrir. Lorsque vous êtes dans le dossier que vous souhaitez indexer, cliquez sur « Sélectionner ». -file.chooser.file.select=Sélectionner - # Onboarding Wizard onboarding.title=Bienvenue sur Askimo onboarding.step.indicator=Étape {0} sur {1} From dc6cdf675b0b5fdfda814b9bf7f192a909490ef3 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 04:05:36 +0000 Subject: [PATCH 142/251] New translations messages.properties (Spanish) [ci skip] --- .../resources/i18n/messages_es.properties | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index d60b57393..f429573ba 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -31,6 +31,7 @@ menu.view.appearance.system=Sistema menu.view.appearance.light=Claro menu.view.appearance.dark=Oscuro menu.view.fullscreen=Entrar en pantalla completa +menu.view.bookmarks=Ver marcadores menu.terminal=Terminal menu.terminal.new=Nuevo terminal menu.help=Ayuda @@ -324,8 +325,6 @@ settings.skills.add.folder=Añadir carpeta settings.skills.add.folder.name=Nombre de carpeta settings.advanced=Avanzado settings.about=Acerca de -settings.model=Modelo -settings.provider=Proveedor settings.theme=Tema settings.save=Guardar settings.cancel=Cancelar @@ -593,6 +592,7 @@ shortcut.stop.ai.response=Detener respuesta de la IA shortcut.quit.application=Salir de la aplicación shortcut.navigate.to.sessions=Ir a sesiones shortcut.navigate.to.projects=Ir a Proyectos +shortcut.navigate.to.bookmarks=Navegar a marcadores shortcut.enter.fullscreen=Entrar en pantalla completa shortcut.close.search=Cerrar búsqueda shortcut.next.search.result=Siguiente resultado de búsqueda @@ -845,12 +845,28 @@ message.ai.try.again.confirm.cancel=Cancelar message.ai.try.again.confirm.confirm=Regenerar message.ai.export.pdf=Exportar como PDF message.ai.export.pdf.dialog.title=Guardar respuesta de IA como PDF +message.bookmark=Marcar mensaje +message.bookmark.remove=Quitar marcador +message.bookmark.description=Marcar este mensaje message.edited.indicator=(editado) message.date.today=Hoy message.date.yesterday=Ayer message.token.usage={0} tokens · {1} de entrada / {2} de salida message.token.usage.tooltip=Tokens utilizados por esta respuesta.\nEntrada\: su prompt + contexto enviado a la IA.\nSalida\: la respuesta generada por la IA. +# Bookmarks +chat.bookmarks.button.tooltip=Marcadores +chat.bookmarks.popover.title=Mensajes fijados +chat.bookmarks.popover.empty.title=Aún no hay marcadores +chat.bookmarks.popover.empty.hint=Fija cualquier mensaje con el icono de marcador debajo de él +bookmarks.title=Marcadores +bookmarks.empty.title=Aún no hay marcadores +bookmarks.empty.hint=Marca mensajes con el icono de anclaje debajo de ellos +bookmarks.session.untitled=Conversación sin título +bookmarks.message.count={0} fijados +bookmarks.role.user=Tú +bookmarks.role.ai=IA + # Tool call display tool.call.header.running=Ejecutando herramienta... tool.call.header.done={0} herramienta(s) utilizada(s) @@ -1465,11 +1481,6 @@ skills.agentic.skills.available={0} habilidades disponibles como contexto del ag skills.agentic.no.skills.hint=Todavía no hay habilidades — añade habilidades en Configuración → Habilidades para darle al agente capacidades especializadas skills.agentic.model.default=Modelo predeterminado -# File / folder chooser -file.chooser.folder.select=Seleccionar -file.chooser.folder.hint=Haz doble clic en una carpeta para entrar en ella. Cuando estés en la carpeta que quieres indexar, haz clic en “Seleccionar”. -file.chooser.file.select=Seleccionar - # Onboarding Wizard onboarding.title=Bienvenido a Askimo onboarding.step.indicator=Paso {0} de {1} From d34dbeb3ce6a1b45f100025f6558dafa5909908d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 04:05:37 +0000 Subject: [PATCH 143/251] New translations messages.properties (German) [ci skip] --- .../resources/i18n/messages_de.properties | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 463419143..9483abe7b 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -31,6 +31,7 @@ menu.view.appearance.system=System menu.view.appearance.light=Hell menu.view.appearance.dark=Dunkel menu.view.fullscreen=Vollbildmodus aktivieren +menu.view.bookmarks=Lesezeichen anzeigen menu.terminal=Terminal menu.terminal.new=Neues Terminal menu.help=Hilfe @@ -324,8 +325,6 @@ settings.skills.add.folder=Ordner hinzufügen settings.skills.add.folder.name=Ordnername settings.advanced=Erweitert settings.about=Über -settings.model=Modell -settings.provider=Anbieter settings.theme=Design settings.save=Speichern settings.cancel=Abbrechen @@ -593,6 +592,7 @@ shortcut.stop.ai.response=KI-Antwort stoppen shortcut.quit.application=Anwendung beenden shortcut.navigate.to.sessions=Zu Sitzungen navigieren shortcut.navigate.to.projects=Zu Projekten navigieren +shortcut.navigate.to.bookmarks=Zu Lesezeichen navigieren shortcut.enter.fullscreen=Vollbildmodus aktivieren shortcut.close.search=Suche schließen shortcut.next.search.result=Nächstes Suchergebnis @@ -845,12 +845,28 @@ message.ai.try.again.confirm.cancel=Abbrechen message.ai.try.again.confirm.confirm=Neu generieren message.ai.export.pdf=Als PDF exportieren message.ai.export.pdf.dialog.title=KI-Antwort als PDF speichern +message.bookmark=Nachricht als Lesezeichen speichern +message.bookmark.remove=Lesezeichen entfernen +message.bookmark.description=Diese Nachricht als Lesezeichen speichern message.edited.indicator=(bearbeitet) message.date.today=Heute message.date.yesterday=Gestern message.token.usage={0} Tokens · {1} in / {2} out message.token.usage.tooltip=Von dieser Antwort verwendete Tokens.\nEingabe\: Ihr Prompt + Kontext, der an die KI gesendet wurde.\nAusgabe\: die KI-generierte Antwort. +# Bookmarks +chat.bookmarks.button.tooltip=Lesezeichen +chat.bookmarks.popover.title=Angeheftete Nachrichten +chat.bookmarks.popover.empty.title=Noch keine Lesezeichen +chat.bookmarks.popover.empty.hint=Hefte eine Nachricht mit dem Lesezeichen-Symbol darunter an +bookmarks.title=Lesezeichen +bookmarks.empty.title=Noch keine Lesezeichen +bookmarks.empty.hint=Speichere Nachrichten als Lesezeichen über das Heft-Symbol darunter +bookmarks.session.untitled=Unbenanntes Gespräch +bookmarks.message.count={0} angeheftet +bookmarks.role.user=Du +bookmarks.role.ai=KI + # Tool call display tool.call.header.running=Tool wird ausgeführt... tool.call.header.done={0} Tool(s) verwendet @@ -1465,11 +1481,6 @@ skills.agentic.skills.available={0} Fähigkeiten als Agent-Kontext verfügbar skills.agentic.no.skills.hint=Noch keine Fähigkeiten — füge in Einstellungen → Fähigkeiten Fähigkeiten hinzu, um dem Agenten spezielle Funktionen zu geben skills.agentic.model.default=Standardmodell -# File / folder chooser -file.chooser.folder.select=Auswählen -file.chooser.folder.hint=Doppelklicken Sie auf einen Ordner, um ihn zu öffnen. Wenn Sie sich in dem Ordner befinden, den Sie indizieren möchten, klicken Sie auf „Auswählen“. -file.chooser.file.select=Auswählen - # Onboarding Wizard onboarding.title=Willkommen bei Askimo onboarding.step.indicator=Schritt {0} von {1} From 654d94e95b703a77dd4d4dd1dc74aeeeab05d68c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 04:05:39 +0000 Subject: [PATCH 144/251] New translations messages.properties (Japanese) [ci skip] --- .../resources/i18n/messages_ja_JP.properties | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 958328f63..8db629dfb 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -31,6 +31,7 @@ menu.view.appearance.system=システム menu.view.appearance.light=ライト menu.view.appearance.dark=ダーク menu.view.fullscreen=フルスクリーンにする +menu.view.bookmarks=ブックマークを表示 menu.terminal=ターミナル menu.terminal.new=新しいターミナル menu.help=ヘルプ @@ -324,8 +325,6 @@ settings.skills.add.folder=フォルダーを追加 settings.skills.add.folder.name=フォルダー名 settings.advanced=詳細設定 settings.about=情報 -settings.model=モデル -settings.provider=プロバイダー settings.theme=テーマ settings.save=保存 settings.cancel=キャンセル @@ -593,6 +592,7 @@ shortcut.stop.ai.response=AI の応答を停止 shortcut.quit.application=アプリケーションを終了 shortcut.navigate.to.sessions=セッションに移動 shortcut.navigate.to.projects=プロジェクトへ移動 +shortcut.navigate.to.bookmarks=ブックマークへ移動 shortcut.enter.fullscreen=フルスクリーンにする shortcut.close.search=検索を閉じる shortcut.next.search.result=次の検索結果 @@ -845,12 +845,28 @@ message.ai.try.again.confirm.cancel=キャンセル message.ai.try.again.confirm.confirm=再生成 message.ai.export.pdf=PDFとしてエクスポート message.ai.export.pdf.dialog.title=AIの回答をPDFとして保存 +message.bookmark=メッセージをブックマーク +message.bookmark.remove=ブックマークを解除 +message.bookmark.description=このメッセージをブックマークする message.edited.indicator=(編集済み) message.date.today=今日 message.date.yesterday=昨日 message.token.usage={0} トークン · {1} 入力 / {2} 出力 message.token.usage.tooltip=この応答で使用されたトークン。\n入力\: AIに送信されたプロンプトとコンテキスト。\n出力\: AIが生成した返信。 +# Bookmarks +chat.bookmarks.button.tooltip=ブックマーク +chat.bookmarks.popover.title=ピン留めしたメッセージ +chat.bookmarks.popover.empty.title=ブックマークはまだありません +chat.bookmarks.popover.empty.hint=メッセージ下のブックマークアイコンでピン留めできます +bookmarks.title=ブックマーク +bookmarks.empty.title=ブックマークはまだありません +bookmarks.empty.hint=メッセージ下のピンアイコンでブックマークできます +bookmarks.session.untitled=タイトルなしの会話 +bookmarks.message.count={0}件ピン留め +bookmarks.role.user=あなた +bookmarks.role.ai=AI + # Tool call display tool.call.header.running=ツールを実行中... tool.call.header.done={0} 個のツールを使用しました @@ -1465,11 +1481,6 @@ skills.agentic.skills.available={0} 件のスキルをエージェントのコ skills.agentic.no.skills.hint=まだスキルがありません — 設定 → スキル でスキルを追加すると、エージェントに特化した機能を与えられます skills.agentic.model.default=既定のモデル -# File / folder chooser -file.chooser.folder.select=選択 -file.chooser.folder.hint=フォルダーをダブルクリックすると、そのフォルダーに移動します。インデックスを作成したいフォルダーを開いたら、「選択」をクリックしてください。 -file.chooser.file.select=選択 - # Onboarding Wizard onboarding.title=Askimoへようこそ onboarding.step.indicator=ステップ {0} / {1} From 8239b6dc4a7f09193b22f13722e45363cd24fc79 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 04:05:41 +0000 Subject: [PATCH 145/251] New translations messages.properties (Korean) [ci skip] --- .../resources/i18n/messages_ko_KR.properties | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 15dc451ab..2a6a949e8 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -31,6 +31,7 @@ menu.view.appearance.system=시스템 menu.view.appearance.light=라이트 menu.view.appearance.dark=다크 menu.view.fullscreen=전체 화면으로 전환 +menu.view.bookmarks=북마크 보기 menu.terminal=터미널 menu.terminal.new=새 터미널 menu.help=도움말 @@ -324,8 +325,6 @@ settings.skills.add.folder=폴더 추가 settings.skills.add.folder.name=폴더 이름 settings.advanced=고급 settings.about=정보 -settings.model=모델 -settings.provider=제공자 settings.theme=테마 settings.save=저장 settings.cancel=취소 @@ -593,6 +592,7 @@ shortcut.stop.ai.response=AI 응답 중지 shortcut.quit.application=애플리케이션 종료 shortcut.navigate.to.sessions=세션으로 이동 shortcut.navigate.to.projects=프로젝트로 이동 +shortcut.navigate.to.bookmarks=책갈피로 이동 shortcut.enter.fullscreen=전체 화면으로 전환 shortcut.close.search=검색 닫기 shortcut.next.search.result=다음 검색 결과 @@ -845,12 +845,28 @@ message.ai.try.again.confirm.cancel=취소 message.ai.try.again.confirm.confirm=다시 생성 message.ai.export.pdf=PDF로 내보내기 message.ai.export.pdf.dialog.title=AI 응답을 PDF로 저장 +message.bookmark=메시지 북마크 +message.bookmark.remove=북마크 제거 +message.bookmark.description=이 메시지를 북마크합니다 message.edited.indicator=(편집됨) message.date.today=오늘 message.date.yesterday=어제 message.token.usage={0} 토큰 · {1} 입력 / {2} 출력 message.token.usage.tooltip=이 응답에 사용된 토큰입니다.\n입력\: AI로 전송된 프롬프트 및 컨텍스트.\n출력\: AI가 생성한 응답. +# Bookmarks +chat.bookmarks.button.tooltip=북마크 +chat.bookmarks.popover.title=고정된 메시지 +chat.bookmarks.popover.empty.title=아직 북마크가 없습니다 +chat.bookmarks.popover.empty.hint=메시지 아래의 북마크 아이콘으로 고정하세요 +bookmarks.title=북마크 +bookmarks.empty.title=아직 북마크가 없습니다 +bookmarks.empty.hint=메시지 아래의 핀 아이콘으로 북마크하세요 +bookmarks.session.untitled=제목 없는 대화 +bookmarks.message.count={0}개 고정됨 +bookmarks.role.user=나 +bookmarks.role.ai=AI + # Tool call display tool.call.header.running=도구 실행 중... tool.call.header.done={0}개의 도구 사용됨 @@ -1465,11 +1481,6 @@ skills.agentic.skills.available={0}개의 스킬을 에이전트 컨텍스트로 skills.agentic.no.skills.hint=아직 스킬이 없습니다 — 설정 → 스킬에서 스킬을 추가하여 에이전트에 특화된 기능을 제공하세요 skills.agentic.model.default=기본 모델 -# File / folder chooser -file.chooser.folder.select=선택 -file.chooser.folder.hint=폴더를 두 번 클릭하여 들어가세요. 인덱싱하려는 폴더로 이동한 다음 “선택”을 클릭하세요. -file.chooser.file.select=선택 - # Onboarding Wizard onboarding.title=Askimo에 오신 것을 환영합니다 onboarding.step.indicator={1}단계 중 {0}단계 From e9888e7fb8b5df5e3c52c5d81cb5454688cad5bc Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 04:05:42 +0000 Subject: [PATCH 146/251] New translations messages.properties (Portuguese) [ci skip] --- .../resources/i18n/messages_pt.properties | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index c39443afc..cd75ae47f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -31,6 +31,7 @@ menu.view.appearance.system=System menu.view.appearance.light=Light menu.view.appearance.dark=Dark menu.view.fullscreen=Enter Full Screen +menu.view.bookmarks=View Bookmarks menu.terminal=Terminal menu.terminal.new=New Terminal menu.help=Help @@ -324,8 +325,6 @@ settings.skills.add.folder=Add Folder settings.skills.add.folder.name=Folder name settings.advanced=Advanced settings.about=About -settings.model=Model -settings.provider=Provider settings.theme=Theme settings.save=Save settings.cancel=Cancel @@ -593,6 +592,7 @@ shortcut.stop.ai.response=Stop AI Response shortcut.quit.application=Quit Application shortcut.navigate.to.sessions=Navigate to Sessions shortcut.navigate.to.projects=Navigate to Projects +shortcut.navigate.to.bookmarks=Navigate to Bookmarks shortcut.enter.fullscreen=Enter Full Screen shortcut.close.search=Close Search shortcut.next.search.result=Next Search Result @@ -845,12 +845,28 @@ message.ai.try.again.confirm.cancel=Cancel message.ai.try.again.confirm.confirm=Regenerate message.ai.export.pdf=Export as PDF message.ai.export.pdf.dialog.title=Save AI Response as PDF +message.bookmark=Bookmark message +message.bookmark.remove=Remove bookmark +message.bookmark.description=Bookmark this message message.edited.indicator=(edited) message.date.today=Today message.date.yesterday=Yesterday message.token.usage={0} tokens · {1} in / {2} out message.token.usage.tooltip=Tokens used by this response.\nInput\: your prompt + context sent to the AI.\nOutput\: the AI-generated reply. +# Bookmarks +chat.bookmarks.button.tooltip=Bookmarks +chat.bookmarks.popover.title=Pinned messages +chat.bookmarks.popover.empty.title=No bookmarks yet +chat.bookmarks.popover.empty.hint=Pin any message using the bookmark icon below it +bookmarks.title=Bookmarks +bookmarks.empty.title=No bookmarks yet +bookmarks.empty.hint=Bookmark any message using the pin icon below it +bookmarks.session.untitled=Untitled conversation +bookmarks.message.count={0} pinned +bookmarks.role.user=You +bookmarks.role.ai=AI + # Tool call display tool.call.header.running=Running tool... tool.call.header.done=Used {0} tool(s) @@ -1465,11 +1481,6 @@ skills.agentic.skills.available={0} skills available as agent context skills.agentic.no.skills.hint=No skills yet — add skills in Settings → Skills to give the agent specialized capabilities skills.agentic.model.default=Default model -# File / folder chooser -file.chooser.folder.select=Select -file.chooser.folder.hint=Double-click a folder to enter it. When you’re in the folder you want to index, click “Select”. -file.chooser.file.select=Select - # Onboarding Wizard onboarding.title=Welcome to Askimo onboarding.step.indicator=Step {0} of {1} From 13c5455c365177c011823d849bdda46db75762a6 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 04:05:44 +0000 Subject: [PATCH 147/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../resources/i18n/messages_zh_CN.properties | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 9f7c42784..e9dce1589 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -31,6 +31,7 @@ menu.view.appearance.system=系统 menu.view.appearance.light=浅色 menu.view.appearance.dark=深色 menu.view.fullscreen=进入全屏 +menu.view.bookmarks=查看书签 menu.terminal=终端 menu.terminal.new=新建终端 menu.help=帮助 @@ -324,8 +325,6 @@ settings.skills.add.folder=添加文件夹 settings.skills.add.folder.name=文件夹名称 settings.advanced=高级 settings.about=关于 -settings.model=模型 -settings.provider=提供商 settings.theme=主题 settings.save=保存 settings.cancel=取消 @@ -593,6 +592,7 @@ shortcut.stop.ai.response=停止 AI 回复 shortcut.quit.application=退出应用 shortcut.navigate.to.sessions=前往会话 shortcut.navigate.to.projects=转到项目 +shortcut.navigate.to.bookmarks=导航到书签 shortcut.enter.fullscreen=进入全屏 shortcut.close.search=关闭搜索 shortcut.next.search.result=下一个搜索结果 @@ -845,12 +845,28 @@ message.ai.try.again.confirm.cancel=取消 message.ai.try.again.confirm.confirm=重新生成 message.ai.export.pdf=导出为 PDF message.ai.export.pdf.dialog.title=将 AI 回复保存为 PDF +message.bookmark=收藏消息 +message.bookmark.remove=取消收藏 +message.bookmark.description=收藏此消息 message.edited.indicator=(已编辑) message.date.today=今天 message.date.yesterday=昨天 message.token.usage={0} 个 token · {1} 进 / {2} 出 message.token.usage.tooltip=此回复使用的 token。\n输入\: 您的 prompt + 发送给 AI 的上下文。\n输出\: AI 生成的回复。 +# Bookmarks +chat.bookmarks.button.tooltip=书签 +chat.bookmarks.popover.title=已固定的消息 +chat.bookmarks.popover.empty.title=暂无书签 +chat.bookmarks.popover.empty.hint=点击消息下方的书签图标进行固定 +bookmarks.title=书签 +bookmarks.empty.title=暂无书签 +bookmarks.empty.hint=点击消息下方的固定图标添加书签 +bookmarks.session.untitled=未命名对话 +bookmarks.message.count=已固定 {0} 条 +bookmarks.role.user=你 +bookmarks.role.ai=AI + # Tool call display tool.call.header.running=正在运行工具... tool.call.header.done=已使用 {0} 个工具 @@ -1465,11 +1481,6 @@ skills.agentic.skills.available={0} 个技能可作为代理上下文使用 skills.agentic.no.skills.hint=还没有技能 — 前往 设置 → 技能 添加技能,让代理具备专门能力 skills.agentic.model.default=默认模型 -# File / folder chooser -file.chooser.folder.select=选择 -file.chooser.folder.hint=双击文件夹即可进入。当你进入想要建立索引的文件夹后,点击“选择”。 -file.chooser.file.select=选择 - # Onboarding Wizard onboarding.title=欢迎使用 Askimo onboarding.step.indicator=第 {0} 步,共 {1} 步 From e6df692c0ef38100ab78cf45bdc377a12e51960b Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 04:05:45 +0000 Subject: [PATCH 148/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../resources/i18n/messages_zh_TW.properties | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 7ed80f272..0dbeb2543 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -31,6 +31,7 @@ menu.view.appearance.system=系統 menu.view.appearance.light=淺色 menu.view.appearance.dark=深色 menu.view.fullscreen=進入全螢幕 +menu.view.bookmarks=查看書籤 menu.terminal=終端機 menu.terminal.new=新增終端機 menu.help=說明 @@ -324,8 +325,6 @@ settings.skills.add.folder=新增資料夾 settings.skills.add.folder.name=資料夾名稱 settings.advanced=進階 settings.about=關於 -settings.model=模型 -settings.provider=提供者 settings.theme=主題 settings.save=儲存 settings.cancel=取消 @@ -593,6 +592,7 @@ shortcut.stop.ai.response=停止 AI 回應 shortcut.quit.application=結束應用程式 shortcut.navigate.to.sessions=前往工作階段 shortcut.navigate.to.projects=前往專案 +shortcut.navigate.to.bookmarks=導航至書籤 shortcut.enter.fullscreen=進入全螢幕 shortcut.close.search=關閉搜尋 shortcut.next.search.result=下一個搜尋結果 @@ -845,12 +845,28 @@ message.ai.try.again.confirm.cancel=取消 message.ai.try.again.confirm.confirm=重新產生 message.ai.export.pdf=匯出為 PDF message.ai.export.pdf.dialog.title=將 AI 回覆儲存為 PDF +message.bookmark=收藏訊息 +message.bookmark.remove=取消收藏 +message.bookmark.description=收藏此訊息 message.edited.indicator=(已編輯) message.date.today=今天 message.date.yesterday=昨天 message.token.usage={0} 個 token · {1} 進 / {2} 出 message.token.usage.tooltip=此回覆使用的 token。\n輸入\: 您的 prompt + 傳送給 AI 的上下文。\n輸出\: AI 產生的回覆。 +# Bookmarks +chat.bookmarks.button.tooltip=書籤 +chat.bookmarks.popover.title=已固定的訊息 +chat.bookmarks.popover.empty.title=尚無書籤 +chat.bookmarks.popover.empty.hint=點擊訊息下方的書籤圖示進行固定 +bookmarks.title=書籤 +bookmarks.empty.title=尚無書籤 +bookmarks.empty.hint=點擊訊息下方的固定圖示新增書籤 +bookmarks.session.untitled=未命名對話 +bookmarks.message.count=已固定 {0} 則 +bookmarks.role.user=你 +bookmarks.role.ai=AI + # Tool call display tool.call.header.running=正在執行工具... tool.call.header.done=已使用 {0} 個工具 @@ -1465,11 +1481,6 @@ skills.agentic.skills.available={0} 個技能可作為代理程式上下文使 skills.agentic.no.skills.hint=還沒有技能 — 請在 設定 → 技能 新增技能,讓代理程式具備專門能力 skills.agentic.model.default=預設模型 -# File / folder chooser -file.chooser.folder.select=選取 -file.chooser.folder.hint=按兩下資料夾即可進入。當你進入想要建立索引的資料夾後,點擊「選取」。 -file.chooser.file.select=選取 - # Onboarding Wizard onboarding.title=歡迎使用 Askimo onboarding.step.indicator=第 {0} 步,共 {1} 步 From 863fd1841c4c5a4b110f6edd0b84fadc935a5cec Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 04:05:46 +0000 Subject: [PATCH 149/251] New translations messages.properties (Vietnamese) [ci skip] --- .../resources/i18n/messages_vi_VN.properties | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 2af26242e..e0bb77659 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -31,6 +31,7 @@ menu.view.appearance.system=Hệ thống menu.view.appearance.light=Sáng menu.view.appearance.dark=Tối menu.view.fullscreen=Chuyển sang toàn màn hình +menu.view.bookmarks=Xem dấu trang menu.terminal=Terminal menu.terminal.new=Terminal mới menu.help=Trợ giúp @@ -324,8 +325,6 @@ settings.skills.add.folder=Thêm thư mục settings.skills.add.folder.name=Tên thư mục settings.advanced=Nâng cao settings.about=Giới thiệu -settings.model=Mô hình -settings.provider=Nhà cung cấp settings.theme=Chủ đề settings.save=Lưu settings.cancel=Hủy @@ -593,6 +592,7 @@ shortcut.stop.ai.response=Dừng phản hồi AI shortcut.quit.application=Thoát ứng dụng shortcut.navigate.to.sessions=Đi tới phiên shortcut.navigate.to.projects=Đi tới Dự án +shortcut.navigate.to.bookmarks=Điều hướng đến dấu trang shortcut.enter.fullscreen=Chuyển sang toàn màn hình shortcut.close.search=Đóng tìm kiếm shortcut.next.search.result=Kết quả tìm kiếm tiếp theo @@ -845,12 +845,28 @@ message.ai.try.again.confirm.cancel=Hủy message.ai.try.again.confirm.confirm=Tạo lại message.ai.export.pdf=Xuất ra PDF message.ai.export.pdf.dialog.title=Lưu phản hồi AI dưới dạng PDF +message.bookmark=Đánh dấu tin nhắn +message.bookmark.remove=Xóa dấu trang +message.bookmark.description=Đánh dấu tin nhắn này message.edited.indicator=(đã chỉnh sửa) message.date.today=Hôm nay message.date.yesterday=Hôm qua message.token.usage={0} token · {1} vào / {2} ra message.token.usage.tooltip=Số token được sử dụng bởi phản hồi này.\nĐầu vào\: prompt của bạn + ngữ cảnh được gửi đến AI.\nĐầu ra\: phản hồi do AI tạo ra. +# Bookmarks +chat.bookmarks.button.tooltip=Dấu trang +chat.bookmarks.popover.title=Tin nhắn đã ghim +chat.bookmarks.popover.empty.title=Chưa có dấu trang +chat.bookmarks.popover.empty.hint=Ghim tin nhắn bằng biểu tượng dấu trang bên dưới +bookmarks.title=Dấu trang +bookmarks.empty.title=Chưa có dấu trang +bookmarks.empty.hint=Đánh dấu tin nhắn bằng biểu tượng ghim bên dưới +bookmarks.session.untitled=Cuộc trò chuyện chưa đặt tên +bookmarks.message.count={0} đã ghim +bookmarks.role.user=Bạn +bookmarks.role.ai=AI + # Tool call display tool.call.header.running=Đang chạy công cụ... tool.call.header.done=Đã sử dụng {0} công cụ @@ -1465,11 +1481,6 @@ skills.agentic.skills.available=Có {0} kỹ năng khả dụng làm ngữ cản skills.agentic.no.skills.hint=Chưa có kỹ năng nào — hãy thêm kỹ năng trong Cài đặt → Kỹ năng để cung cấp cho tác nhân các khả năng chuyên biệt skills.agentic.model.default=Mô hình mặc định -# File / folder chooser -file.chooser.folder.select=Chọn -file.chooser.folder.hint=Nhấp đúp vào một thư mục để mở. Khi bạn đang ở trong thư mục muốn lập chỉ mục, hãy nhấp vào “Chọn”. -file.chooser.file.select=Chọn - # Onboarding Wizard onboarding.title=Chào mừng đến với Askimo onboarding.step.indicator=Bước {0} trong {1} From 39cc05c8a5407dc393d92b9cd3c43b7342cf2def Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 05:14:58 +0000 Subject: [PATCH 150/251] Update source file messages.properties [ci skip] --- .../main/resources/i18n/messages.properties | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index c39dc37aa..66d8124f8 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -31,6 +31,7 @@ menu.view.appearance.system=System menu.view.appearance.light=Light menu.view.appearance.dark=Dark menu.view.fullscreen=Enter Full Screen +menu.view.bookmarks=View Bookmarks menu.terminal=Terminal menu.terminal.new=New Terminal menu.help=Help @@ -321,8 +322,6 @@ settings.skills.add.folder=Add Folder settings.skills.add.folder.name=Folder name settings.advanced=Advanced settings.about=About -settings.model=Model -settings.provider=Provider settings.theme=Theme settings.save=Save settings.cancel=Cancel @@ -590,6 +589,7 @@ shortcut.stop.ai.response=Stop AI Response shortcut.quit.application=Quit Application shortcut.navigate.to.sessions=Navigate to Sessions shortcut.navigate.to.projects=Navigate to Projects +shortcut.navigate.to.bookmarks=Navigate to Bookmarks shortcut.enter.fullscreen=Enter Full Screen shortcut.close.search=Close Search shortcut.next.search.result=Next Search Result @@ -842,12 +842,28 @@ message.ai.try.again.confirm.cancel=Cancel message.ai.try.again.confirm.confirm=Regenerate message.ai.export.pdf=Export as PDF message.ai.export.pdf.dialog.title=Save AI Response as PDF +message.bookmark=Bookmark message +message.bookmark.remove=Remove bookmark +message.bookmark.description=Bookmark this message message.edited.indicator=(edited) message.date.today=Today message.date.yesterday=Yesterday message.token.usage={0} tokens · {1} in / {2} out message.token.usage.tooltip=Tokens used by this response.\nInput: your prompt + context sent to the AI.\nOutput: the AI-generated reply. +# Bookmarks +chat.bookmarks.button.tooltip=Bookmarks +chat.bookmarks.popover.title=Pinned messages +chat.bookmarks.popover.empty.title=No bookmarks yet +chat.bookmarks.popover.empty.hint=Pin any message using the bookmark icon below it +bookmarks.title=Bookmarks +bookmarks.empty.title=No bookmarks yet +bookmarks.empty.hint=Bookmark any message using the pin icon below it +bookmarks.session.untitled=Untitled conversation +bookmarks.message.count={0} pinned +bookmarks.role.user=You +bookmarks.role.ai=AI + # Tool call display tool.call.header.running=Running tool... tool.call.header.done=Used {0} tool(s) @@ -1462,11 +1478,6 @@ skills.agentic.skills.available={0} skills available as agent context skills.agentic.no.skills.hint=No skills yet — add skills in Settings → Skills to give the agent specialized capabilities skills.agentic.model.default=Default model -# File / folder chooser -file.chooser.folder.select=Select -file.chooser.folder.hint=Double-click a folder to enter it. When you’re in the folder you want to index, click “Select”. -file.chooser.file.select=Select - # Onboarding Wizard onboarding.title=Welcome to Askimo onboarding.step.indicator=Step {0} of {1} From 7e166f3b2c94dbf968b8ebbfe9d4ff43f4bc517e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 05:15:32 +0000 Subject: [PATCH 151/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 061df5f30..d4c9fbf49 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -843,6 +843,8 @@ message.ai.try.again.confirm.title=Régénérer la réponse ? message.ai.try.again.confirm.message=Tous les messages après ce point seront supprimés. Voulez-vous continuer ? message.ai.try.again.confirm.cancel=Annuler message.ai.try.again.confirm.confirm=Régénérer +message.ai.fork=Hacer fork de la sesión desde aquí +message.ai.fork.description=Dividir esta conversación en una nueva sesión independiente message.ai.export.pdf=Exporter en PDF message.ai.export.pdf.dialog.title=Enregistrer la reponse IA en PDF message.bookmark=Mettre en signet From b9b10bfffb44d4c308e43298cb9b4f636f41f866 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 05:15:33 +0000 Subject: [PATCH 152/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index f429573ba..37d7994d6 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -843,6 +843,8 @@ message.ai.try.again.confirm.title=¿Regenerar respuesta? message.ai.try.again.confirm.message=Esto eliminará todos los mensajes posteriores a este punto. ¿Desea continuar? message.ai.try.again.confirm.cancel=Cancelar message.ai.try.again.confirm.confirm=Regenerar +message.ai.fork=Fork session from here +message.ai.fork.description=Fork this conversation into a new independent session message.ai.export.pdf=Exportar como PDF message.ai.export.pdf.dialog.title=Guardar respuesta de IA como PDF message.bookmark=Marcar mensaje From 9e774b2fa04b064eafb88fb66db502664ea8965d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 05:15:35 +0000 Subject: [PATCH 153/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 9483abe7b..5fdc49b91 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -843,6 +843,8 @@ message.ai.try.again.confirm.title=Antwort neu generieren? message.ai.try.again.confirm.message=Alle Nachrichten nach diesem Punkt werden gelöscht. Möchten Sie fortfahren? message.ai.try.again.confirm.cancel=Abbrechen message.ai.try.again.confirm.confirm=Neu generieren +message.ai.fork=Session von hier aus forken +message.ai.fork.description=Diese Unterhaltung in eine neue, unabhängige Session forken message.ai.export.pdf=Als PDF exportieren message.ai.export.pdf.dialog.title=KI-Antwort als PDF speichern message.bookmark=Nachricht als Lesezeichen speichern From 1ce10f7edfef1bc68a1935fb220e5e021833c01e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 05:15:36 +0000 Subject: [PATCH 154/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 8db629dfb..234dbf39f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -843,6 +843,8 @@ message.ai.try.again.confirm.title=回答を再生成しますか? message.ai.try.again.confirm.message=この時点以降のすべてのメッセージが削除されます。続行しますか? message.ai.try.again.confirm.cancel=キャンセル message.ai.try.again.confirm.confirm=再生成 +message.ai.fork=ここからセッションをフォーク +message.ai.fork.description=この会話を新しい独立したセッションにフォークする message.ai.export.pdf=PDFとしてエクスポート message.ai.export.pdf.dialog.title=AIの回答をPDFとして保存 message.bookmark=メッセージをブックマーク From bb85ee0af45aab6a678c14d7e85f34aa267790f2 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 05:15:38 +0000 Subject: [PATCH 155/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 2a6a949e8..7a52acac5 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -843,6 +843,8 @@ message.ai.try.again.confirm.title=응답을 다시 생성하시겠습니까? message.ai.try.again.confirm.message=이 시점 이후의 모든 메시지가 삭제됩니다. 계속하시겠습니까? message.ai.try.again.confirm.cancel=취소 message.ai.try.again.confirm.confirm=다시 생성 +message.ai.fork=여기서 세션 포크(Fork) +message.ai.fork.description=이 대화를 새로운 독립 세션으로 포크(Fork)합니다 message.ai.export.pdf=PDF로 내보내기 message.ai.export.pdf.dialog.title=AI 응답을 PDF로 저장 message.bookmark=메시지 북마크 From 38fc98fbc77ad78a020681d4aa82927418b5eaaf Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 05:15:40 +0000 Subject: [PATCH 156/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index cd75ae47f..f917faec6 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -843,6 +843,8 @@ message.ai.try.again.confirm.title=Regenerate response? message.ai.try.again.confirm.message=This will delete all messages after this point. Do you want to continue? message.ai.try.again.confirm.cancel=Cancel message.ai.try.again.confirm.confirm=Regenerate +message.ai.fork=Fork session from here +message.ai.fork.description=Fork this conversation into a new independent session message.ai.export.pdf=Export as PDF message.ai.export.pdf.dialog.title=Save AI Response as PDF message.bookmark=Bookmark message From dd4c3d78dbb3d86acd889ceaf49ccb2c194119e0 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 05:15:41 +0000 Subject: [PATCH 157/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index e9dce1589..20a22e0d4 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -843,6 +843,8 @@ message.ai.try.again.confirm.title=重新生成回复? message.ai.try.again.confirm.message=此操作将删除此位置之后的所有消息。是否继续? message.ai.try.again.confirm.cancel=取消 message.ai.try.again.confirm.confirm=重新生成 +message.ai.fork=从此处 Fork 会话 +message.ai.fork.description=将此对话 Fork 为一个新的独立会话 message.ai.export.pdf=导出为 PDF message.ai.export.pdf.dialog.title=将 AI 回复保存为 PDF message.bookmark=收藏消息 From 9d6acacef518f8ef2b9db12634ed710bf874f01c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 05:15:43 +0000 Subject: [PATCH 158/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 0dbeb2543..8b0ebd6d8 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -843,6 +843,8 @@ message.ai.try.again.confirm.title=重新產生回應? message.ai.try.again.confirm.message=此操作將刪除此位置之後的所有訊息。是否要繼續? message.ai.try.again.confirm.cancel=取消 message.ai.try.again.confirm.confirm=重新產生 +message.ai.fork=從此處 Fork 會話 +message.ai.fork.description=將此對話 Fork 為一個新的獨立會話 message.ai.export.pdf=匯出為 PDF message.ai.export.pdf.dialog.title=將 AI 回覆儲存為 PDF message.bookmark=收藏訊息 From 4e22c05905f2993cf26a45130c8bdd81490b58e6 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 05:15:45 +0000 Subject: [PATCH 159/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index e0bb77659..1b422ef49 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -843,6 +843,8 @@ message.ai.try.again.confirm.title=Tạo lại phản hồi? message.ai.try.again.confirm.message=Tất cả các tin nhắn sau thời điểm này sẽ bị xóa. Bạn có muốn tiếp tục không? message.ai.try.again.confirm.cancel=Hủy message.ai.try.again.confirm.confirm=Tạo lại +message.ai.fork=Fork phiên từ đây +message.ai.fork.description=Fork cuộc trò chuyện này thành một phiên mới độc lập message.ai.export.pdf=Xuất ra PDF message.ai.export.pdf.dialog.title=Lưu phản hồi AI dưới dạng PDF message.bookmark=Đánh dấu tin nhắn From c211cb74ba6a6b9c541208187bddf2339b2332f1 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 06:11:46 +0000 Subject: [PATCH 160/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 66d8124f8..451f628f0 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -840,6 +840,8 @@ message.ai.try.again.confirm.title=Regenerate response? message.ai.try.again.confirm.message=This will delete all messages after this point. Do you want to continue? message.ai.try.again.confirm.cancel=Cancel message.ai.try.again.confirm.confirm=Regenerate +message.ai.fork=Fork session from here +message.ai.fork.description=Fork this conversation into a new independent session message.ai.export.pdf=Export as PDF message.ai.export.pdf.dialog.title=Save AI Response as PDF message.bookmark=Bookmark message From 5384d96ad33b61b092424976fc5795658b96222b Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 10:17:02 +0000 Subject: [PATCH 161/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 451f628f0..8d11add05 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -814,6 +814,8 @@ log.level.trace.description=Show all log messages (most verbose) # Message Components message.loading.previous=Loading previous messages... message.thinking=Thinking... ({0}s) +message.thinking.section.streaming=💭 Thinking... +message.thinking.section.done=💭 Thought message.copy=Copy message message.copy.description=Copy message message.edit=Edit message From d3deffdfb9e8e43940b0789ee18fe3e0194006f8 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 10:17:05 +0000 Subject: [PATCH 162/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index d4c9fbf49..68aa3d28f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -817,6 +817,8 @@ log.level.trace.description=Afficher tous les logs (le plus détaillé) # Message Components message.loading.previous=Chargement des messages précédents... message.thinking=Réflexion… ({0}s) +message.thinking.section.streaming=💭 Réflexion... +message.thinking.section.done=💭 Pensée message.copy=Copier le message message.copy.description=Copier le message message.edit=Modifier le message From a32bca39c822c6f4f7ca63048cd2640518bd5d12 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 10:17:06 +0000 Subject: [PATCH 163/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 37d7994d6..720a90119 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -817,6 +817,8 @@ log.level.trace.description=Mostrar todos los registros (más detallado) # Message Components message.loading.previous=Cargando mensajes anteriores... message.thinking=Pensando… ({0}s) +message.thinking.section.streaming=💭 Pensando... +message.thinking.section.done=💭 Pensamiento message.copy=Copiar mensaje message.copy.description=Copiar mensaje message.edit=Editar mensaje From 7318bce85589be3660327bacb5c7b622d5ecb2c3 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 10:17:08 +0000 Subject: [PATCH 164/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 5fdc49b91..c9e88afd9 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -817,6 +817,8 @@ log.level.trace.description=Alle Log-Nachrichten anzeigen (sehr detailliert) # Message Components message.loading.previous=Vorherige Nachrichten werden geladen... message.thinking=Denke nach… ({0}s) +message.thinking.section.streaming=💭 Denkt... +message.thinking.section.done=💭 Gedanke message.copy=Nachricht kopieren message.copy.description=Nachricht kopieren message.edit=Nachricht bearbeiten From 3812d9122bb3f90cef6c065ac0ee56eb069b1af7 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 10:17:09 +0000 Subject: [PATCH 165/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 234dbf39f..c5a80dc30 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -817,6 +817,8 @@ log.level.trace.description=すべてのログを表示(最も詳細) # Message Components message.loading.previous=以前のメッセージを読み込み中... message.thinking=考え中… ({0}s) +message.thinking.section.streaming=💭 考え中... +message.thinking.section.done=💭 考え message.copy=メッセージをコピー message.copy.description=メッセージをコピー message.edit=メッセージ編集 From 9676507eaa31a4cf264d3fe4f14579af063f9717 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 10:17:11 +0000 Subject: [PATCH 166/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 7a52acac5..d07f0c6ac 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -817,6 +817,8 @@ log.level.trace.description=모든 로그 표시 (가장 상세) # Message Components message.loading.previous=이전 메시지 불러오는 중... message.thinking=생각 중… ({0}s) +message.thinking.section.streaming=💭 생각 중... +message.thinking.section.done=💭 생각 message.copy=메시지 복사 message.copy.description=메시지 복사 message.edit=메시지 편집 From 6b27df574d9e57cf2b43c2781ff8bdbc18dc7e00 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 10:17:12 +0000 Subject: [PATCH 167/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index f917faec6..e95ffa50e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -817,6 +817,8 @@ log.level.trace.description=Show all log messages (most verbose) # Message Components message.loading.previous=Loading previous messages... message.thinking=Thinking... ({0}s) +message.thinking.section.streaming=💭 Thinking... +message.thinking.section.done=💭 Thought message.copy=Copy message message.copy.description=Copy message message.edit=Edit message From 6aca2be202dfea16f7fde85d31ddb62670dec660 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 10:17:15 +0000 Subject: [PATCH 168/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 20a22e0d4..448f37998 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -817,6 +817,8 @@ log.level.trace.description=显示所有日志(最详细) # Message Components message.loading.previous=正在加载更早的消息... message.thinking=思考中… ({0}s) +message.thinking.section.streaming=💭 思考中... +message.thinking.section.done=💭 已思考 message.copy=复制消息 message.copy.description=复制消息 message.edit=编辑消息 From 72c4ef1cfe137bd24193ef56257e013acc76d804 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 10:17:16 +0000 Subject: [PATCH 169/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 8b0ebd6d8..fba472df9 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -817,6 +817,8 @@ log.level.trace.description=顯示所有日誌(最詳細) # Message Components message.loading.previous=正在載入先前訊息... message.thinking=思考中… ({0}s) +message.thinking.section.streaming=💭 思考中... +message.thinking.section.done=💭 已思考 message.copy=複製訊息 message.copy.description=複製訊息 message.edit=編輯訊息 From b9410223d82b12b9dac86230d1cf49dcfd8cc6cb Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 10:17:18 +0000 Subject: [PATCH 170/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 1b422ef49..0ef18d6bf 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -817,6 +817,8 @@ log.level.trace.description=Chi tiết nhất # Message Components message.loading.previous=Đang tải các tin nhắn trước... message.thinking=Đang suy nghĩ… ({0}s) +message.thinking.section.streaming=💭 Đang suy nghĩ... +message.thinking.section.done=💭 Suy nghĩ message.copy=Sao chép tin nhắn message.copy.description=Sao chép tin nhắn message.edit=Chỉnh sửa tin nhắn From afa07438451830a3f31ef5240e7a5cd2d1315db9 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 21:00:19 +0000 Subject: [PATCH 171/251] Update source file messages.properties [ci skip] --- .../main/resources/i18n/messages.properties | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 8d11add05..bc285251b 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -52,6 +52,7 @@ menu.dev.clear.account.preferences=[Dev] Clear Account Preferences menu.about=About Askimo menu.help.check.updates=Check for Updates... menu.help.diagnostics=System Diagnostics... +menu.help.support.askimo=Support Askimo ⭐ # Common Dialog Buttons dialog.cancel=Cancel @@ -513,10 +514,34 @@ happiness.gate.subtitle=Let us know how we're doing happiness.gate.happy=Yes, I'm loving it! 😍 happiness.gate.neutral=It's okay 🙂 happiness.gate.unhappy=Not really 😕 -happiness.gate.feedback.title=Help us improve -happiness.gate.feedback.message=Would you like to share your feedback? It helps us make Askimo better for you and everyone else. -happiness.gate.feedback.yes=Yes, share feedback -happiness.gate.feedback.no=No thanks + +# Inline Feedback Dialog (shown after neutral/unhappy sentiment) +feedback.dialog.title=What's not working for you? +feedback.dialog.subtitle=Select all that apply — your input goes straight to the team. +feedback.comment.label=Tell us more (optional) +feedback.comment.placeholder=Describe the issue or share your thoughts… +feedback.email.label=Your email (optional) +feedback.email.placeholder=you@example.com +feedback.email.hint=Only used to follow up on your feedback. We'll never spam you. +feedback.action.skip=Skip +feedback.action.send=Send Feedback +feedback.thanks.title=Thank you for your feedback! +feedback.thanks.message=Your input helps us make Askimo better. We really appreciate it. +feedback.thanks.close=Close + +feedback.remind.title=No worries! +feedback.remind.message=You can share feedback anytime from the Help menu → Share Feedback. +feedback.remind.got.it=Got it + +# Feedback reasons +feedback.reason.inaccurate=AI responses aren't accurate +feedback.reason.slow=It's too slow +feedback.reason.missing.feature=Missing a feature I need +feedback.reason.broken=Something is broken +feedback.reason.hard.to.use=It's hard to use +feedback.reason.integration=Integration issues +feedback.reason.privacy=Privacy concerns +feedback.reason.other=Something else # Star Prompt star.prompt.title=Enjoying Askimo? Help spread the word 💙 @@ -528,6 +553,12 @@ star.prompt.share.description=Tell your network about Askimo on X, LinkedIn, or star.prompt.maybe.later=Maybe later star.prompt.already.starred=Already starred ✓ star.prompt.social.proof=⭐ Join {0} people who already starred Askimo +star.prompt.thanks.title=Thank you so much! 🌟 +star.prompt.thanks.message=Your support means a lot and helps us keep building Askimo. +star.prompt.thanks.done=Done ✓ +star.prompt.remind.title=No worries! +star.prompt.remind.message=You can support us anytime from the Help menu → Support Askimo. +star.prompt.remind.got.it=Got it # Analytics Settings (Advanced section toggle) settings.analytics.title=Anonymous Analytics From f5a5502dd27897ca9827657d4b18a8a04e64cde9 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 21:00:21 +0000 Subject: [PATCH 172/251] New translations messages.properties (French) [ci skip] --- .../resources/i18n/messages_fr.properties | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 68aa3d28f..81c2d073e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -52,6 +52,7 @@ menu.dev.clear.account.preferences=[Dev] Effacer les préférences du compte menu.about=À propos d’Askimo menu.help.check.updates=Vérifier les mises à jour... menu.help.diagnostics=Diagnostics système... +menu.help.support.askimo=Soutenir Askimo ⭐ # Common Dialog Buttons dialog.cancel=Annuler @@ -516,10 +517,34 @@ happiness.gate.subtitle=Dites-nous comment nous nous en sortons happiness.gate.happy=Je l'adore \! 😍 happiness.gate.neutral=Ça va 🙂 happiness.gate.unhappy=Pas vraiment 😕 -happiness.gate.feedback.title=Aidez-nous à nous améliorer -happiness.gate.feedback.message=Souhaitez-vous partager vos commentaires ? Cela nous aide à rendre Askimo meilleur pour vous et pour tout le monde. -happiness.gate.feedback.yes=Oui, partager des commentaires -happiness.gate.feedback.no=Non merci + +# Inline Feedback Dialog (shown after neutral/unhappy sentiment) +feedback.dialog.title=Qu'est-ce qui ne vous convient pas ? +feedback.dialog.subtitle=Sélectionnez toutes les options correspondantes — votre retour sera envoyé directement à l'équipe. +feedback.comment.label=Dites-nous en plus (facultatif) +feedback.comment.placeholder=Décrivez le problème ou partagez vos réflexions… +feedback.email.label=Votre e-mail (facultatif) +feedback.email.placeholder=you@example.com +feedback.email.hint=Utilisé uniquement pour assurer le suivi de votre retour. Nous ne vous enverrons jamais de spam. +feedback.action.skip=Passer +feedback.action.send=Envoyer le feedback +feedback.thanks.title=Merci pour votre retour \! +feedback.thanks.message=Votre contribution nous aide à améliorer Askimo. Nous l'apprécions vraiment. +feedback.thanks.close=Fermer + +feedback.remind.title=Pas de souci \! +feedback.remind.message=Vous pouvez envoyer un feedback à tout moment depuis le menu Aide → Partager un feedback. +feedback.remind.got.it=C'est noté + +# Feedback reasons +feedback.reason.inaccurate=Les réponses de l'IA ne sont pas exactes +feedback.reason.slow=C'est trop lent +feedback.reason.missing.feature=Il manque une fonctionnalité dont j'ai besoin +feedback.reason.broken=Quelque chose est cassé +feedback.reason.hard.to.use=C'est difficile à utiliser +feedback.reason.integration=Problèmes d'intégration +feedback.reason.privacy=Problèmes de confidentialité +feedback.reason.other=Autre chose # Star Prompt star.prompt.title=Vous appréciez Askimo? Aidez à faire connaître 💙 @@ -531,6 +556,12 @@ star.prompt.share.description=Parlez d'Askimo à votre réseau sur X, LinkedIn o star.prompt.maybe.later=Pas maintenant star.prompt.already.starred=Déjà mis en favori ✓ star.prompt.social.proof=⭐ Rejoignez {0} personnes qui ont déjà ajouté une étoile à Askimo +star.prompt.thanks.title=Merci beaucoup \! 🌟 +star.prompt.thanks.message=Votre soutien compte beaucoup et nous aide à continuer à développer Askimo. +star.prompt.thanks.done=Terminé ✓ +star.prompt.remind.title=Pas de souci \! +star.prompt.remind.message=Vous pouvez nous soutenir à tout moment via le menu Aide → Soutenir Askimo. +star.prompt.remind.got.it=Compris # Analytics Settings (Advanced section toggle) settings.analytics.title=Analytique anonyme From bf42af0eff201796c2a4260e1c5c14ded16ba0af Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 21:00:23 +0000 Subject: [PATCH 173/251] New translations messages.properties (Spanish) [ci skip] --- .../resources/i18n/messages_es.properties | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 720a90119..568fb8298 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -52,6 +52,7 @@ menu.dev.clear.account.preferences=[Dev] Eliminar preferencias de cuenta menu.about=Acerca de Askimo menu.help.check.updates=Buscar actualizaciones... menu.help.diagnostics=Diagnóstico del sistema... +menu.help.support.askimo=Apoyar a Askimo ⭐ # Common Dialog Buttons dialog.cancel=Cancelar @@ -516,10 +517,34 @@ happiness.gate.subtitle=Cuéntanos cómo nos estamos desenvolviendo happiness.gate.happy=¡Me encanta\! 😍 happiness.gate.neutral=Está bien 🙂 happiness.gate.unhappy=No mucho 😕 -happiness.gate.feedback.title=Ayúdanos a mejorar -happiness.gate.feedback.message=¿Te gustaría compartir tus comentarios? Nos ayuda a hacer que Askimo sea mejor para ti y para todos los demás. -happiness.gate.feedback.yes=Sí, compartir comentarios -happiness.gate.feedback.no=No, gracias + +# Inline Feedback Dialog (shown after neutral/unhappy sentiment) +feedback.dialog.title=¿Qué no te está funcionando? +feedback.dialog.subtitle=Selecciona todo lo que aplique — tu opinión llegará directamente al equipo. +feedback.comment.label=Cuéntanos más (opcional) +feedback.comment.placeholder=Describe el problema o comparte tus pensamientos… +feedback.email.label=Tu correo electrónico (opcional) +feedback.email.placeholder=you@example.com +feedback.email.hint=Solo se usará para hacer seguimiento de tu feedback. Nunca te enviaremos spam. +feedback.action.skip=Omitir +feedback.action.send=Enviar feedback +feedback.thanks.title=¡Gracias por tu feedback\! +feedback.thanks.message=Tu aporte nos ayuda a mejorar Askimo. Lo apreciamos mucho. +feedback.thanks.close=Cerrar + +feedback.remind.title=¡No te preocupes\! +feedback.remind.message=Puedes compartir tus comentarios en cualquier momento desde el menú de Ayuda → Compartir Feedback. +feedback.remind.got.it=Entendido + +# Feedback reasons +feedback.reason.inaccurate=Las respuestas de la IA no son precisas +feedback.reason.slow=Es demasiado lento +feedback.reason.missing.feature=Falta una función que necesito +feedback.reason.broken=Algo está roto +feedback.reason.hard.to.use=Es difícil de usar +feedback.reason.integration=Problemas de integración +feedback.reason.privacy=Preocupaciones de privacidad +feedback.reason.other=Otra cosa # Star Prompt star.prompt.title=¿Disfrutando de Askimo? Ayuda a difundir la palabra 💙 @@ -531,6 +556,12 @@ star.prompt.share.description=Cuéntale a tu red sobre Askimo en X, LinkedIn o F star.prompt.maybe.later=Ahora no star.prompt.already.starred=Ya destacado ✓ star.prompt.social.proof=⭐ Únete a {0} personas que ya han destacado Askimo +star.prompt.thanks.title=¡Muchas gracias\! 🌟 +star.prompt.thanks.message=Tu apoyo significa mucho y nos ayuda a seguir construyendo Askimo. +star.prompt.thanks.done=Hecho ✓ +star.prompt.remind.title=No te preocupes. +star.prompt.remind.message=Puedes apoyarnos en cualquier momento desde el menú Ayuda → Apoyar a Askimo. +star.prompt.remind.got.it=Entendido # Analytics Settings (Advanced section toggle) settings.analytics.title=Analítica anónima From c3790516dd9c004cdee26dc005d861ff2ca79b0d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 21:00:24 +0000 Subject: [PATCH 174/251] New translations messages.properties (German) [ci skip] --- .../resources/i18n/messages_de.properties | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index c9e88afd9..d68e1f307 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -52,6 +52,7 @@ menu.dev.clear.account.preferences=[Dev] Kontoeinstellungen löschen menu.about=Über Askimo menu.help.check.updates=Nach Updates suchen... menu.help.diagnostics=Systemdiagnose... +menu.help.support.askimo=Askimo unterstützen ⭐ # Common Dialog Buttons dialog.cancel=Abbrechen @@ -516,10 +517,34 @@ happiness.gate.subtitle=Sagen Sie uns, wie wir uns machen happiness.gate.happy=Ich liebe es\! 😍 happiness.gate.neutral=Es geht 🙂 happiness.gate.unhappy=Nicht wirklich 😕 -happiness.gate.feedback.title=Helfen Sie uns, uns zu verbessern -happiness.gate.feedback.message=Möchten Sie uns Ihr Feedback mitteilen? Es hilft uns, Askimo für Sie und alle anderen besser zu machen. -happiness.gate.feedback.yes=Ja, Feedback teilen -happiness.gate.feedback.no=Nein, danke + +# Inline Feedback Dialog (shown after neutral/unhappy sentiment) +feedback.dialog.title=Was funktioniert für dich nicht? +feedback.dialog.subtitle=Wähle alle zutreffenden Punkte aus — dein Feedback geht direkt an das Team. +feedback.comment.label=Erzähl uns mehr (optional) +feedback.comment.placeholder=Beschreibe das Problem oder teile uns deine Gedanken mit… +feedback.email.label=Deine E-Mail (optional) +feedback.email.placeholder=you@example.com +feedback.email.hint=Wird nur verwendet, um bei deinem Feedback nachzufassen. Wir werden dich niemals zuspammen. +feedback.action.skip=Überspringen +feedback.action.send=Feedback senden +feedback.thanks.title=Vielen Dank für dein Feedback\! +feedback.thanks.message=Dein Input hilft uns, Askimo zu verbessern. Wir wissen das wirklich zu schätzen. +feedback.thanks.close=Schließen + +feedback.remind.title=Kein Problem\! +feedback.remind.message=Du kannst jederzeit über das Hilfe-Menü → Feedback senden Rückmeldung geben. +feedback.remind.got.it=Verstanden + +# Feedback reasons +feedback.reason.inaccurate=Die Antworten der KI sind nicht korrekt +feedback.reason.slow=Es ist zu langsam +feedback.reason.missing.feature=Ein benötigtes Feature fehlt +feedback.reason.broken=Etwas ist kaputt +feedback.reason.hard.to.use=Es ist schwer zu bedienen +feedback.reason.integration=Integrationsprobleme +feedback.reason.privacy=Datenschutzbedenken +feedback.reason.other=Etwas anderes # Star Prompt star.prompt.title=Genießt du Askimo? Verbreite die Nachricht 💙 @@ -531,6 +556,12 @@ star.prompt.share.description=Erzählen Sie Ihrem Netzwerk von Askimo auf X, Lin star.prompt.maybe.later=Jetzt nicht star.prompt.already.starred=Bereits mit Stern markiert ✓ star.prompt.social.proof=⭐ Schließen Sie sich {0} Personen an, die Askimo bereits mit einem Stern markiert haben +star.prompt.thanks.title=Vielen Dank\! 🌟 +star.prompt.thanks.message=Deine Unterstützung bedeutet uns viel und hilft uns, Askimo weiterzuentwickeln. +star.prompt.thanks.done=Fertig ✓ +star.prompt.remind.title=Kein Problem\! +star.prompt.remind.message=Du kannst uns jederzeit über das Hilfe-Menü → Askimo unterstützen. +star.prompt.remind.got.it=Verstanden # Analytics Settings (Advanced section toggle) settings.analytics.title=Anonyme Analysen From 90fcb36c54613f9826025d72331273af59d75b38 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 21:00:26 +0000 Subject: [PATCH 175/251] New translations messages.properties (Japanese) [ci skip] --- .../resources/i18n/messages_ja_JP.properties | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index c5a80dc30..74d824566 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -52,6 +52,7 @@ menu.dev.clear.account.preferences=[Dev] アカウント設定をクリア menu.about=Askimo について menu.help.check.updates=アップデートを確認... menu.help.diagnostics=システム診断... +menu.help.support.askimo=Askimo をサポート ⭐ # Common Dialog Buttons dialog.cancel=キャンセル @@ -516,10 +517,34 @@ happiness.gate.subtitle=ご意見をお聞かせください happiness.gate.happy=とても気に入っています!😍 happiness.gate.neutral=まあまあです 🙂 happiness.gate.unhappy=あまりよくないです 😕 -happiness.gate.feedback.title=改善にご協力ください -happiness.gate.feedback.message=フィードバックを共有していただけますか?Askimoを皆様にとってより良いものにするために役立ちます。 -happiness.gate.feedback.yes=はい、フィードバックを共有します -happiness.gate.feedback.no=いいえ、結構です + +# Inline Feedback Dialog (shown after neutral/unhappy sentiment) +feedback.dialog.title=何かお困りですか? +feedback.dialog.subtitle=当てはまるものをすべて選択してください。ご意見は直接チームに届きます。 +feedback.comment.label=詳細(任意) +feedback.comment.placeholder=問題の説明やご意見をお聞かせください… +feedback.email.label=メールアドレス(任意) +feedback.email.placeholder=you@example.com +feedback.email.hint=フィードバックのフォローアップのみに使用します。スパムメールを送ることはありません。 +feedback.action.skip=スキップ +feedback.action.send=フィードバックを送信 +feedback.thanks.title=ご意見ありがとうございます! +feedback.thanks.message=お客様からのご意見は、Askimoの改善に役立てられます。ご協力に感謝いたします。 +feedback.thanks.close=閉じる + +feedback.remind.title=問題ありません! +feedback.remind.message=フィードバックはいつでも「ヘルプ」メニュー → 「フィードバックを送信」から共有できます。 +feedback.remind.got.it=了解しました + +# Feedback reasons +feedback.reason.inaccurate=AIの回答が正確ではない +feedback.reason.slow=動作が遅い +feedback.reason.missing.feature=必要な機能が不足している +feedback.reason.broken=どこか壊れている +feedback.reason.hard.to.use=使いにくい +feedback.reason.integration=連携に関する問題 +feedback.reason.privacy=プライバシーに関する懸念 +feedback.reason.other=その他 # Star Prompt star.prompt.title=Askimoを楽しんでいますか?広めてください 💙 @@ -531,6 +556,12 @@ star.prompt.share.description=X、LinkedIn、またはFacebookでAskimoについ star.prompt.maybe.later=今はしない star.prompt.already.starred=すでにスター付き ✓ star.prompt.social.proof=⭐ すでにAskimoにスターを付けた{0}人に参加しましょう +star.prompt.thanks.title=ありがとうございます! 🌟 +star.prompt.thanks.message=皆様のご支援は大きな励みとなり、Askimoの開発を続ける力になります。 +star.prompt.thanks.done=完了 ✓ +star.prompt.remind.title=問題ありません! +star.prompt.remind.message=いつでも「ヘルプ」メニュー → 「Askimoを支援」からご協力いただけます。 +star.prompt.remind.got.it=了解 # Analytics Settings (Advanced section toggle) settings.analytics.title=匿名分析 From d51223873e0912052f04d402da560e67639a6162 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 21:00:27 +0000 Subject: [PATCH 176/251] New translations messages.properties (Korean) [ci skip] --- .../resources/i18n/messages_ko_KR.properties | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index d07f0c6ac..86cb26a73 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -52,6 +52,7 @@ menu.dev.clear.account.preferences=[Dev] 계정 환경 설정 지우기 menu.about=Askimo 정보 menu.help.check.updates=업데이트 확인... menu.help.diagnostics=시스템 진단... +menu.help.support.askimo=Askimo 지원하기 ⭐ # Common Dialog Buttons dialog.cancel=취소 @@ -516,10 +517,34 @@ happiness.gate.subtitle=어떻게 사용하고 계신지 알려주세요 happiness.gate.happy=정말 마음에 들어요\! 😍 happiness.gate.neutral=괜찮아요 🙂 happiness.gate.unhappy=별로예요 😕 -happiness.gate.feedback.title=개선에 도움을 주세요 -happiness.gate.feedback.message=피드백을 공유해 주시겠습니까? Askimo를 귀하와 모든 분들을 위해 더 나은 서비스로 만드는 데 도움이 됩니다. -happiness.gate.feedback.yes=네, 피드백을 공유합니다 -happiness.gate.feedback.no=아니요, 괜찮습니다 + +# Inline Feedback Dialog (shown after neutral/unhappy sentiment) +feedback.dialog.title=어떤 점이 불편하신가요? +feedback.dialog.subtitle=해당하는 모든 항목을 선택해주세요. 귀하의 의견은 팀에 직접 전달됩니다. +feedback.comment.label=상세 내용 (선택 사항) +feedback.comment.placeholder=문제에 대한 설명이나 의견을 공유해주세요… +feedback.email.label=이메일 (선택 사항) +feedback.email.placeholder=you@example.com +feedback.email.hint=피드백에 대한 후속 조치를 위해서만 사용됩니다. 스팸 메일은 절대 보내지 않습니다. +feedback.action.skip=건너뛰기 +feedback.action.send=피드백 보내기 +feedback.thanks.title=소중한 의견 감사합니다\! +feedback.thanks.message=보내주신 의견은 Askimo를 개선하는 데 큰 도움이 됩니다. 정말 감사합니다. +feedback.thanks.close=닫기 + +feedback.remind.title=괜찮습니다\! +feedback.remind.message=도움말 메뉴 → 피드백 보내기를 통해 언제든지 의견을 보내주실 수 있습니다. +feedback.remind.got.it=알겠습니다 + +# Feedback reasons +feedback.reason.inaccurate=AI 응답이 정확하지 않음 +feedback.reason.slow=너무 느림 +feedback.reason.missing.feature=필요한 기능이 없음 +feedback.reason.broken=무언가 작동하지 않음 +feedback.reason.hard.to.use=사용하기 어려움 +feedback.reason.integration=통합 관련 문제 +feedback.reason.privacy=개인정보 보호 문제 +feedback.reason.other=기타 # Star Prompt star.prompt.title=Askimo를 즐기고 있나요? 전파해 주세요 💙 @@ -531,6 +556,12 @@ star.prompt.share.description=X, LinkedIn 또는 Facebook에서 네트워크에 star.prompt.maybe.later=지금은 아니요 star.prompt.already.starred=이미 별표 표시됨 ✓ star.prompt.social.proof=⭐ 이미 Askimo에 별표를 표시한 {0}명과 함께하세요 +star.prompt.thanks.title=정말 감사합니다\! 🌟 +star.prompt.thanks.message=여러분의 성원은 저희가 Askimo를 계속 발전시키는 데 큰 힘이 됩니다. +star.prompt.thanks.done=완료 ✓ +star.prompt.remind.title=괜찮습니다\! +star.prompt.remind.message=언제든지 도움말 메뉴 → Askimo 지원하기를 통해 저희를 후원하실 수 있습니다. +star.prompt.remind.got.it=확인 # Analytics Settings (Advanced section toggle) settings.analytics.title=익명 분석 From bff1225b2ec2358e4860f3bbf5877c854d62cbf2 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 21:00:29 +0000 Subject: [PATCH 177/251] New translations messages.properties (Portuguese) [ci skip] --- .../resources/i18n/messages_pt.properties | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index e95ffa50e..39480c2a8 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -52,6 +52,7 @@ menu.dev.clear.account.preferences=[Dev] Clear Account Preferences menu.about=About Askimo menu.help.check.updates=Check for Updates... menu.help.diagnostics=System Diagnostics... +menu.help.support.askimo=Support Askimo ⭐ # Common Dialog Buttons dialog.cancel=Cancel @@ -516,10 +517,34 @@ happiness.gate.subtitle=Let us know how we're doing happiness.gate.happy=Yes, I'm loving it\! 😍 happiness.gate.neutral=It's okay 🙂 happiness.gate.unhappy=Not really 😕 -happiness.gate.feedback.title=Help us improve -happiness.gate.feedback.message=Would you like to share your feedback? It helps us make Askimo better for you and everyone else. -happiness.gate.feedback.yes=Yes, share feedback -happiness.gate.feedback.no=No thanks + +# Inline Feedback Dialog (shown after neutral/unhappy sentiment) +feedback.dialog.title=What's not working for you? +feedback.dialog.subtitle=Select all that apply — your input goes straight to the team. +feedback.comment.label=Tell us more (optional) +feedback.comment.placeholder=Describe the issue or share your thoughts… +feedback.email.label=Your email (optional) +feedback.email.placeholder=you@example.com +feedback.email.hint=Only used to follow up on your feedback. We'll never spam you. +feedback.action.skip=Skip +feedback.action.send=Send Feedback +feedback.thanks.title=Thank you for your feedback\! +feedback.thanks.message=Your input helps us make Askimo better. We really appreciate it. +feedback.thanks.close=Close + +feedback.remind.title=No worries\! +feedback.remind.message=You can share feedback anytime from the Help menu → Share Feedback. +feedback.remind.got.it=Got it + +# Feedback reasons +feedback.reason.inaccurate=AI responses aren't accurate +feedback.reason.slow=It's too slow +feedback.reason.missing.feature=Missing a feature I need +feedback.reason.broken=Something is broken +feedback.reason.hard.to.use=It's hard to use +feedback.reason.integration=Integration issues +feedback.reason.privacy=Privacy concerns +feedback.reason.other=Something else # Star Prompt star.prompt.title=Enjoying Askimo? Help spread the word 💙 @@ -531,6 +556,12 @@ star.prompt.share.description=Tell your network about Askimo on X, LinkedIn, or star.prompt.maybe.later=Maybe later star.prompt.already.starred=Already starred ✓ star.prompt.social.proof=⭐ Join {0} people who already starred Askimo +star.prompt.thanks.title=Thank you so much\! 🌟 +star.prompt.thanks.message=Your support means a lot and helps us keep building Askimo. +star.prompt.thanks.done=Done ✓ +star.prompt.remind.title=No worries\! +star.prompt.remind.message=You can support us anytime from the Help menu → Support Askimo. +star.prompt.remind.got.it=Got it # Analytics Settings (Advanced section toggle) settings.analytics.title=Anonymous Analytics From b7e886bd68267e2f546493a0ec1474da28ceef19 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 21:00:30 +0000 Subject: [PATCH 178/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../resources/i18n/messages_zh_CN.properties | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 448f37998..280e88a9b 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -52,6 +52,7 @@ menu.dev.clear.account.preferences=[Dev] 清除账号首选项 menu.about=关于 Askimo menu.help.check.updates=检查更新... menu.help.diagnostics=系统诊断... +menu.help.support.askimo=支持 Askimo ⭐ # Common Dialog Buttons dialog.cancel=取消 @@ -516,10 +517,34 @@ happiness.gate.subtitle=让我们知道您的使用体验 happiness.gate.happy=非常喜欢!😍 happiness.gate.neutral=还不错 🙂 happiness.gate.unhappy=不太好 😕 -happiness.gate.feedback.title=帮助我们改进 -happiness.gate.feedback.message=您愿意分享您的反馈吗?这有助于我们为您和其他所有人把 Askimo 做得更好。 -happiness.gate.feedback.yes=是的,分享反馈 -happiness.gate.feedback.no=不了,谢谢 + +# Inline Feedback Dialog (shown after neutral/unhappy sentiment) +feedback.dialog.title=什么地方没能满足您的需求? +feedback.dialog.subtitle=请勾选所有适用项 — 您的反馈将直接发送给团队。 +feedback.comment.label=详细说明(可选) +feedback.comment.placeholder=描述问题或分享您的想法… +feedback.email.label=您的电子邮箱(可选) +feedback.email.placeholder=you@example.com +feedback.email.hint=仅用于跟进您的反馈。我们绝不会发送垃圾邮件。 +feedback.action.skip=跳过 +feedback.action.send=发送反馈 +feedback.thanks.title=感谢您的反馈! +feedback.thanks.message=您的意见有助于我们完善 Askimo。非常感谢。 +feedback.thanks.close=关闭 + +feedback.remind.title=没关系! +feedback.remind.message=您可以随时通过“帮助”菜单 → “发送反馈”分享您的意见。 +feedback.remind.got.it=知道了 + +# Feedback reasons +feedback.reason.inaccurate=AI 回答不准确 +feedback.reason.slow=速度太慢 +feedback.reason.missing.feature=缺少我需要的功能 +feedback.reason.broken=出现错误 +feedback.reason.hard.to.use=很难使用 +feedback.reason.integration=集成问题 +feedback.reason.privacy=隐私顾虑 +feedback.reason.other=其他 # Star Prompt star.prompt.title=正在享受 Askimo 吗?帮忙传播消息 💙 @@ -531,6 +556,12 @@ star.prompt.share.description=在 X、LinkedIn 或 Facebook 上向您的网络 star.prompt.maybe.later=暂不 star.prompt.already.starred=已标星 ✓ star.prompt.social.proof=⭐ 加入 {0} 位已为 Askimo 标星的用户 +star.prompt.thanks.title=非常感谢! 🌟 +star.prompt.thanks.message=您的支持对我们意义重大,并能帮助我们继续打造 Askimo。 +star.prompt.thanks.done=完成 ✓ +star.prompt.remind.title=没关系! +star.prompt.remind.message=您可以随时通过“帮助”菜单 → “支持 Askimo”来给予我们支持。 +star.prompt.remind.got.it=知道了 # Analytics Settings (Advanced section toggle) settings.analytics.title=匿名分析 From 0d5c90e552ee64eeb96ad10527aa3f8f0d5b24a4 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 21:00:32 +0000 Subject: [PATCH 179/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../resources/i18n/messages_zh_TW.properties | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index fba472df9..c260bfe61 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -52,6 +52,7 @@ menu.dev.clear.account.preferences=[Dev] 清除帳戶首選項 menu.about=關於 Askimo menu.help.check.updates=檢查更新... menu.help.diagnostics=系統診斷... +menu.help.support.askimo=支援 Askimo ⭐ # Common Dialog Buttons dialog.cancel=取消 @@ -516,10 +517,34 @@ happiness.gate.subtitle=讓我們知道您的使用體驗 happiness.gate.happy=非常喜歡!😍 happiness.gate.neutral=還不錯 🙂 happiness.gate.unhappy=不太好 😕 -happiness.gate.feedback.title=幫助我們改進 -happiness.gate.feedback.message=您願意分享您的回饋嗎?這有助於我們為您和其他所有人將 Askimo 變得更好。 -happiness.gate.feedback.yes=是的,分享回饋 -happiness.gate.feedback.no=不了,謝謝 + +# Inline Feedback Dialog (shown after neutral/unhappy sentiment) +feedback.dialog.title=什麼地方沒能滿足您的需求? +feedback.dialog.subtitle=請勾選所有適用項 — 您的意見將直接發送給團隊。 +feedback.comment.label=詳細說明(選填) +feedback.comment.placeholder=描述問題或分享您的想法… +feedback.email.label=您的電子郵件(選填) +feedback.email.placeholder=you@example.com +feedback.email.hint=僅用於跟進您的意見。我們絕對不會發送垃圾郵件。 +feedback.action.skip=略過 +feedback.action.send=發送意見回饋 +feedback.thanks.title=感謝您的意見回饋! +feedback.thanks.message=您的意見有助於我們完善 Askimo。非常感謝。 +feedback.thanks.close=關閉 + +feedback.remind.title=沒關係! +feedback.remind.message=您可以隨時透過「說明」選單 → 「發送意見回饋」分享您的意見。 +feedback.remind.got.it=知道了 + +# Feedback reasons +feedback.reason.inaccurate=AI 回答不準確 +feedback.reason.slow=速度太慢 +feedback.reason.missing.feature=缺少我需要的功能 +feedback.reason.broken=出現錯誤 +feedback.reason.hard.to.use=很難使用 +feedback.reason.integration=整合問題 +feedback.reason.privacy=隱私顧慮 +feedback.reason.other=其他 # Star Prompt star.prompt.title=正在享受 Askimo 吗?帮忙传播消息 💙 @@ -531,6 +556,12 @@ star.prompt.share.description=在 X、LinkedIn 或 Facebook 上向您的網絡 star.prompt.maybe.later=暫時不要 star.prompt.already.starred=已標星 ✓ star.prompt.social.proof=⭐ 加入 {0} 位已為 Askimo 標星的用戶 +star.prompt.thanks.title=非常感謝! 🌟 +star.prompt.thanks.message=您的支持對我們意義重大,並能幫助我們繼續打造 Askimo。 +star.prompt.thanks.done=完成 ✓ +star.prompt.remind.title=沒關係! +star.prompt.remind.message=您可以隨時透過「說明」選單 → 「支持 Askimo」來給予我們支持。 +star.prompt.remind.got.it=知道了 # Analytics Settings (Advanced section toggle) settings.analytics.title=匿名分析 From e013a25d3168086d3800a797dcb29f90e25607bb Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sat, 25 Jul 2026 21:00:33 +0000 Subject: [PATCH 180/251] New translations messages.properties (Vietnamese) [ci skip] --- .../resources/i18n/messages_vi_VN.properties | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 0ef18d6bf..8ba9461b4 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -52,6 +52,7 @@ menu.dev.clear.account.preferences=[Dev] Xóa cài đặt tài khoản menu.about=Giới thiệu Askimo menu.help.check.updates=Kiểm tra cập nhật... menu.help.diagnostics=Chẩn đoán hệ thống... +menu.help.support.askimo=Hỗ trợ Askimo ⭐ # Common Dialog Buttons dialog.cancel=Hủy @@ -516,10 +517,34 @@ happiness.gate.subtitle=Cho chúng tôi biết trải nghiệm của bạn happiness.gate.happy=Tôi rất thích\! 😍 happiness.gate.neutral=Ổn 🙂 happiness.gate.unhappy=Chưa thực sự ưng 😕 -happiness.gate.feedback.title=Giúp chúng tôi cải thiện -happiness.gate.feedback.message=Bạn có muốn chia sẻ phản hồi của mình không? Điều này giúp chúng tôi làm cho Askimo trở nên tốt hơn cho bạn và mọi người khác. -happiness.gate.feedback.yes=Có, chia sẻ phản hồi -happiness.gate.feedback.no=Không, cảm ơn + +# Inline Feedback Dialog (shown after neutral/unhappy sentiment) +feedback.dialog.title=Điều gì đang làm bạn chưa hài lòng? +feedback.dialog.subtitle=Chọn tất cả những mục phù hợp — phản hồi của bạn sẽ được gửi trực tiếp đến nhóm của chúng tôi. +feedback.comment.label=Cho chúng tôi biết thêm (tùy chọn) +feedback.comment.placeholder=Mô tả vấn đề hoặc chia sẻ suy nghĩ của bạn… +feedback.email.label=Email của bạn (tùy chọn) +feedback.email.placeholder=you@example.com +feedback.email.hint=Chỉ được sử dụng để theo dõi phản hồi của bạn. Chúng tôi sẽ không bao giờ gửi thư rác. +feedback.action.skip=Bỏ qua +feedback.action.send=Gửi phản hồi +feedback.thanks.title=Cảm ơn bạn đã phản hồi\! +feedback.thanks.message=Đóng góp của bạn giúp chúng tôi cải thiện Askimo tốt hơn. Chúng tôi rất trân trọng điều đó. +feedback.thanks.close=Đóng + +feedback.remind.title=Không sao đâu\! +feedback.remind.message=Bạn có thể chia sẻ phản hồi bất cứ lúc nào từ menu Trợ giúp → Gửi phản hồi. +feedback.remind.got.it=Đã hiểu + +# Feedback reasons +feedback.reason.inaccurate=Câu trả lời của AI không chính xác +feedback.reason.slow=Quá chậm +feedback.reason.missing.feature=Thiếu tính năng tôi cần +feedback.reason.broken=Có lỗi xảy ra +feedback.reason.hard.to.use=Khó sử dụng +feedback.reason.integration=Vấn đề về tích hợp +feedback.reason.privacy=Lo ngại về quyền riêng tư +feedback.reason.other=Vấn đề khác # Star Prompt star.prompt.title=Bạn thích Askimo? Giúp lan tỏa 💙 @@ -531,6 +556,12 @@ star.prompt.share.description=Kể cho mạng lưới của bạn về Askimo tr star.prompt.maybe.later=Để sau star.prompt.already.starred=Đã gắn sao ✓ star.prompt.social.proof=⭐ Tham gia cùng {0} người đã gắn sao cho Askimo +star.prompt.thanks.title=Cảm ơn bạn rất nhiều\! 🌟 +star.prompt.thanks.message=Sự ủng hộ của bạn có ý nghĩa rất lớn và giúp chúng tôi tiếp tục phát triển Askimo. +star.prompt.thanks.done=Xong ✓ +star.prompt.remind.title=Không vấn đề gì\! +star.prompt.remind.message=Bạn có thể ủng hộ chúng tôi bất cứ lúc nào từ menu Trợ giúp → Ủng hộ Askimo. +star.prompt.remind.got.it=Đã hiểu # Analytics Settings (Advanced section toggle) settings.analytics.title=Phân tích ẩn danh From 13aeac2ba2ed7cf7daeff28ea06131c5a163e085 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 26 Jul 2026 20:33:11 +0000 Subject: [PATCH 181/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 81c2d073e..ba73f6fe0 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -794,6 +794,7 @@ settings.model.select.title=Sélection du modèle settings.model.current=Modèle actuel settings.model.selected=Modèle sélectionné settings.model.new=Nouveau modèle +settings.model.use.default=Utiliser par défaut settings.model.change.description=Choisissez un modèle dans la liste ci-dessous \: settings.model.search=Rechercher un modèle settings.model.search.placeholder=Filtrer les modèles... From 87daea71c46521efe8f03330f88281b31a54025d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 26 Jul 2026 20:33:12 +0000 Subject: [PATCH 182/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 568fb8298..70e61cfc4 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -794,6 +794,7 @@ settings.model.select.title=Seleccionar modelo settings.model.current=Modelo actual settings.model.selected=Modelo seleccionado settings.model.new=Nuevo modelo +settings.model.use.default=Usar predeterminado settings.model.change.description=Elige un modelo de la lista a continuación\: settings.model.search=Buscar modelos settings.model.search.placeholder=Escribe para filtrar modelos... From ebf63d961ded607f564f7d011e747756724f3675 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 26 Jul 2026 20:33:14 +0000 Subject: [PATCH 183/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index d68e1f307..41db4b38a 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -794,6 +794,7 @@ settings.model.select.title=Modell auswählen settings.model.current=Aktuelles Modell settings.model.selected=Ausgewähltes Modell settings.model.new=Neues Modell +settings.model.use.default=Standard verwenden settings.model.change.description=Wählen Sie ein Modell aus der folgenden Liste aus\: settings.model.search=Modelle durchsuchen settings.model.search.placeholder=Eingeben, um Modelle zu filtern... From 0468ac906fcbdbca7aa2aec537b2773890db8f55 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 26 Jul 2026 20:33:15 +0000 Subject: [PATCH 184/251] New translations messages.properties (Japanese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_ja_JP.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 74d824566..40e2eed98 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -794,6 +794,7 @@ settings.model.select.title=モデルを選択 settings.model.current=現在のモデル settings.model.selected=選択されたモデル settings.model.new=新しいモデル +settings.model.use.default=デフォルトを使用 settings.model.change.description=以下のリストからモデルを選択してください: settings.model.search=モデル検索 settings.model.search.placeholder=モデルの絞り込み... From e20ccded01fa15c3c98146edba390515e6254c90 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 26 Jul 2026 20:33:16 +0000 Subject: [PATCH 185/251] New translations messages.properties (Korean) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_ko_KR.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 86cb26a73..ab5346fbc 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -794,6 +794,7 @@ settings.model.select.title=모델 선택 settings.model.current=현재 모델 settings.model.selected=선택된 모델 settings.model.new=새 모델 +settings.model.use.default=기본값 사용 settings.model.change.description=아래 목록에서 모델을 선택하세요\: settings.model.search=모델 검색 settings.model.search.placeholder=모델 필터링 입력... From b6707b4d8cdc7481ba6bb9dbb1a69cbaaae8aa38 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 26 Jul 2026 20:33:18 +0000 Subject: [PATCH 186/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index 39480c2a8..c4fd33b52 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -794,6 +794,7 @@ settings.model.select.title=Select Model settings.model.current=Current Model settings.model.selected=Selected Model settings.model.new=New Model +settings.model.use.default=Use default settings.model.change.description=Choose a model from the list below\: settings.model.search=Search Models settings.model.search.placeholder=Type to filter models... From 173fea0186c1513cc2e09c118212e1471189416c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 26 Jul 2026 20:33:19 +0000 Subject: [PATCH 187/251] New translations messages.properties (Chinese Simplified) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_zh_CN.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 280e88a9b..896bcd07f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -794,6 +794,7 @@ settings.model.select.title=选择模型 settings.model.current=当前模型 settings.model.selected=已选模型 settings.model.new=新模型 +settings.model.use.default=使用默认值 settings.model.change.description=从下面的列表中选择一个模型: settings.model.search=搜索模型 settings.model.search.placeholder=输入以筛选模型... From de0efc34a33924c772dad43332aec874603c310b Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 26 Jul 2026 20:33:21 +0000 Subject: [PATCH 188/251] New translations messages.properties (Chinese Traditional) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_zh_TW.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index c260bfe61..faac3366b 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -794,6 +794,7 @@ settings.model.select.title=選擇模型 settings.model.current=目前模型 settings.model.selected=已選取模型 settings.model.new=新模型 +settings.model.use.default=使用預設值 settings.model.change.description=從下方列表中選擇一個模型: settings.model.search=搜尋模型 settings.model.search.placeholder=輸入以篩選模型... From 1341abd8594fa02e858b4012659da817b45d8d65 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 26 Jul 2026 20:33:22 +0000 Subject: [PATCH 189/251] New translations messages.properties (Vietnamese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_vi_VN.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 8ba9461b4..d33d3efc0 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -794,6 +794,7 @@ settings.model.select.title=Chọn mô hình settings.model.current=Mô hình hiện tại settings.model.selected=Mô hình đã chọn settings.model.new=Mô hình mới +settings.model.use.default=Sử dụng mặc định settings.model.change.description=Chọn một mô hình từ danh sách dưới đây\: settings.model.search=Tìm mô hình settings.model.search.placeholder=Nhập để lọc mô hình... From 97ea60ad030f8ac5101157c1f7ea6e1593c8de7e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 26 Jul 2026 21:28:57 +0000 Subject: [PATCH 190/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index bc285251b..748b66a28 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -791,6 +791,7 @@ settings.model.select.title=Select Model settings.model.current=Current Model settings.model.selected=Selected Model settings.model.new=New Model +settings.model.use.default=Use default settings.model.change.description=Choose a model from the list below: settings.model.search=Search Models settings.model.search.placeholder=Type to filter models... From 21e84f33488813ce2cd1fe91473c87e88b388b1c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:47:13 +0000 Subject: [PATCH 191/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 748b66a28..3f6bd4409 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -949,6 +949,12 @@ provider.openai.setup.help=💡To use OpenAI, you need to provide an API key.\n\ provider.anthropic.apikey.description=Your Anthropic API key from https://console.anthropic.com/ provider.anthropic.apikey.stored=API key already stored securely. Leave blank to keep existing key, or enter a new one to update. provider.anthropic.setup.help=💡To use Anthropic, you need to provide an API key.\n\n1. Get your API key from: https://console.anthropic.com/\n2. Then set it in the Settings or using: :change-settings +provider.anthropic.max_tokens.label=Max Tokens +provider.anthropic.max_tokens.description=Maximum tokens the model can generate per response (thinking + answer combined). +provider.anthropic.thinking_budget_tokens.label=Thinking Budget Tokens +provider.anthropic.thinking_budget_tokens.description=Max tokens Anthropic can spend on thinking. Set to 0 to let the model decide automatically (recommended). +provider.anthropic.thinking_max_tokens.label=Thinking Max Tokens +provider.anthropic.thinking_max_tokens.description=Total token cap when thinking is active (thinking + answer). Set to 0 to use Max Tokens instead. # Provider Configuration - Gemini provider.gemini.apikey.description=Your Google AI Studio API key from https://aistudio.google.com/app/apikey From 1e1e9d079a56bdfe659a90d140a2c0e580e7ac40 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:47:17 +0000 Subject: [PATCH 192/251] New translations messages.properties (French) [ci skip] --- .../src/main/resources/i18n/messages_fr.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index ba73f6fe0..69672f59a 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -952,6 +952,12 @@ provider.openai.setup.help=💡 Pour utiliser OpenAI, une clé API est nécessai provider.anthropic.apikey.description=Votre clé API Anthropic \: https\://console.anthropic.com/ provider.anthropic.apikey.stored=Clé API déjà stockée. provider.anthropic.setup.help=💡 Pour utiliser Anthropic, une clé API est nécessaire.\n\n1. Obtenez-la ici \: https\://console.anthropic.com/\n2. Configurez-la dans les paramètres ou via \:change-settings +provider.anthropic.max_tokens.label=Max Tokens +provider.anthropic.max_tokens.description=Nombre maximal de jetons que le modèle peut générer par réponse (réflexion + réponse combinées). +provider.anthropic.thinking_budget_tokens.label=Jetons de budget de réflexion +provider.anthropic.thinking_budget_tokens.description=Nombre maximal de jetons qu'Anthropic peut consacrer à la réflexion. Définissez sur 0 pour laisser le modèle décider automatiquement (recommandé). +provider.anthropic.thinking_max_tokens.label=Max de jetons de réflexion +provider.anthropic.thinking_max_tokens.description=Plafond total de jetons lorsque la réflexion est activée (réflexion + réponse). Définissez sur 0 pour utiliser Max Tokens à la place. # Provider Configuration - Gemini provider.gemini.apikey.description=Votre clé API Google AI Studio \: https\://aistudio.google.com/app/apikey From 0dbdd48a7fc127789a0b74e3b9e24db7670bfa66 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:47:18 +0000 Subject: [PATCH 193/251] New translations messages.properties (Spanish) [ci skip] --- .../src/main/resources/i18n/messages_es.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 70e61cfc4..29c244a5b 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -952,6 +952,12 @@ provider.openai.setup.help=💡 Para usar OpenAI necesitas una clave API.\n\n1. provider.anthropic.apikey.description=Tu clave API de Anthropic\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=Clave API ya almacenada. provider.anthropic.setup.help=💡 Para usar Anthropic, necesitas una clave API.\n\n1. Consíguela en\: https\://console.anthropic.com/\n2. Configúrala en los ajustes o con \:change-settings +provider.anthropic.max_tokens.label=Max Tokens +provider.anthropic.max_tokens.description=Máximo de tokens que el modelo puede generar por respuesta (pensamiento + respuesta combinados). +provider.anthropic.thinking_budget_tokens.label=Tokens de presupuesto de pensamiento +provider.anthropic.thinking_budget_tokens.description=Máximo de tokens que Anthropic puede dedicar al pensamiento. Configura en 0 para dejar que el modelo decida automáticamente (recomendado). +provider.anthropic.thinking_max_tokens.label=Máximo de tokens de pensamiento +provider.anthropic.thinking_max_tokens.description=Límite total de tokens cuando el pensamiento está activo (pensamiento + respuesta). Configura en 0 para usar Max Tokens en su lugar. # Provider Configuration - Gemini provider.gemini.apikey.description=Tu clave API de Google AI Studio\: https\://aistudio.google.com/app/apikey From 0e05986d9045607698c5dcac6e18d0a12e90d48f Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:47:20 +0000 Subject: [PATCH 194/251] New translations messages.properties (German) [ci skip] --- .../src/main/resources/i18n/messages_de.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 41db4b38a..2e81fa359 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -952,6 +952,12 @@ provider.openai.setup.help=💡 Für die Nutzung von OpenAI benötigen Sie einen provider.anthropic.apikey.description=Ihr Anthropic API-Schlüssel\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=API-Schlüssel ist bereits gespeichert. provider.anthropic.setup.help=💡 Für die Nutzung von Anthropic benötigen Sie einen API-Schlüssel.\n\n1. Hier erhalten\: https\://console.anthropic.com/\n2. In den Einstellungen eintragen oder \:change-settings verwenden +provider.anthropic.max_tokens.label=Max Tokens +provider.anthropic.max_tokens.description=Maximale Anzahl an Tokens, die das Modell pro Antwort generieren kann (Denken + Antwort kombiniert). +provider.anthropic.thinking_budget_tokens.label=Thinking Budget Tokens +provider.anthropic.thinking_budget_tokens.description=Maximale Anzahl an Tokens, die Anthropic für den Denkprozess verwenden kann. Auf 0 setzen, damit das Modell dies automatisch entscheidet (empfohlen). +provider.anthropic.thinking_max_tokens.label=Thinking Max Tokens +provider.anthropic.thinking_max_tokens.description=Gesamtes Token-Limit bei aktivem Denkprozess (Denken + Antwort). Auf 0 setzen, um stattdessen "Max Tokens" zu verwenden. # Provider Configuration - Gemini provider.gemini.apikey.description=Ihr Google AI Studio API-Schlüssel\: https\://aistudio.google.com/app/apikey From 1484298edc003d058d6f3b5decffbcc9d0d1d38a Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:47:22 +0000 Subject: [PATCH 195/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 40e2eed98..43ed8b421 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -952,6 +952,12 @@ provider.openai.setup.help=💡 OpenAI を使うには API キーが必要です provider.anthropic.apikey.description=Anthropic API キー\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=API キーは既に保存されています。 provider.anthropic.setup.help=💡 Anthropic を使うには API キーが必要です。\n\n1. https\://console.anthropic.com/ で取得\n2. 設定で構成するか \:change-settings を使用 +provider.anthropic.max_tokens.label=最大トークン数 +provider.anthropic.max_tokens.description=モデルが応答ごとに生成できる最大トークン数(思考 + 回答の合計)。 +provider.anthropic.thinking_budget_tokens.label=思考予算トークン数 +provider.anthropic.thinking_budget_tokens.description=Anthropicが思考に費やすことのできる最大トークン数。0に設定すると、モデルが自動的に決定します(推奨)。 +provider.anthropic.thinking_max_tokens.label=思考時最大トークン数 +provider.anthropic.thinking_max_tokens.description=思考がアクティブな時の合計トークン上限(思考 + 回答)。0に設定すると、代わりに「Max Tokens」が使用されます。 # Provider Configuration - Gemini provider.gemini.apikey.description=Google AI Studio API キー\: https\://aistudio.google.com/app/apikey From 7e23a4947230ba40082f0115ac5757ab8b9d7b25 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:47:23 +0000 Subject: [PATCH 196/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index ab5346fbc..4bb11e40e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -952,6 +952,12 @@ provider.openai.setup.help=💡 OpenAI 사용을 위해 API 키가 필요합니 provider.anthropic.apikey.description=Anthropic API 키\: https\://console.anthropic.com/ provider.anthropic.apikey.stored=API 키가 이미 저장됨. provider.anthropic.setup.help=💡 Anthropic 사용을 위해 API 키가 필요합니다.\n\n1. https\://console.anthropic.com/ 에서 키를 받으세요\n2. 설정 또는 \:change-settings 명령으로 구성하세요 +provider.anthropic.max_tokens.label=최대 토큰 수 +provider.anthropic.max_tokens.description=모델이 응답당 생성할 수 있는 최대 토큰 수 (생각 + 답변 합계). +provider.anthropic.thinking_budget_tokens.label=생각 예산 토큰 수 +provider.anthropic.thinking_budget_tokens.description=Anthropic이 생각하는 데 사용할 수 있는 최대 토큰 수입니다. 0으로 설정하면 모델이 자동으로 결정합니다 (권장). +provider.anthropic.thinking_max_tokens.label=생각 최대 토큰 수 +provider.anthropic.thinking_max_tokens.description=생각 기능이 활성화되었을 때의 총 토큰 제한 (생각 + 답변). 0으로 설정하면 대신 최대 토큰 수(Max Tokens)를 사용합니다. # Provider Configuration - Gemini provider.gemini.apikey.description=Google AI Studio API 키\: https\://aistudio.google.com/app/apikey From 0343416a74b70300bc6606f100a3d56b28a535d7 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:47:25 +0000 Subject: [PATCH 197/251] New translations messages.properties (Portuguese) [ci skip] --- .../src/main/resources/i18n/messages_pt.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index c4fd33b52..5c4c5d6a7 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -952,6 +952,12 @@ provider.openai.setup.help=💡To use OpenAI, you need to provide an API key.\n\ provider.anthropic.apikey.description=Your Anthropic API key from https\://console.anthropic.com/ provider.anthropic.apikey.stored=API key already stored securely. Leave blank to keep existing key, or enter a new one to update. provider.anthropic.setup.help=💡To use Anthropic, you need to provide an API key.\n\n1. Get your API key from\: https\://console.anthropic.com/\n2. Then set it in the Settings or using\: \:change-settings +provider.anthropic.max_tokens.label=Max Tokens +provider.anthropic.max_tokens.description=Maximum tokens the model can generate per response (thinking + answer combined). +provider.anthropic.thinking_budget_tokens.label=Thinking Budget Tokens +provider.anthropic.thinking_budget_tokens.description=Max tokens Anthropic can spend on thinking. Set to 0 to let the model decide automatically (recommended). +provider.anthropic.thinking_max_tokens.label=Thinking Max Tokens +provider.anthropic.thinking_max_tokens.description=Total token cap when thinking is active (thinking + answer). Set to 0 to use Max Tokens instead. # Provider Configuration - Gemini provider.gemini.apikey.description=Your Google AI Studio API key from https\://aistudio.google.com/app/apikey From 9a403d66fc834f550b4dbeb98ff64a888fc3d7d3 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:47:26 +0000 Subject: [PATCH 198/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 896bcd07f..e5cc11494 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -952,6 +952,12 @@ provider.openai.setup.help=使用 OpenAI 需要 API Key。\n\n1. 获取:https\ provider.anthropic.apikey.description=Anthropic API Key:https\://console.anthropic.com/ provider.anthropic.apikey.stored=API Key 已保存。 provider.anthropic.setup.help=使用 Anthropic 需要 API Key。\n\n1. 获取:https\://console.anthropic.com/\n2. 在设置中配置或使用 \:change-settings +provider.anthropic.max_tokens.label=最大 Token 数 +provider.anthropic.max_tokens.description=模型每次响应可生成的最大 Token 数(思考 + 回答的总和)。 +provider.anthropic.thinking_budget_tokens.label=思考预算 Token 数 +provider.anthropic.thinking_budget_tokens.description=Anthropic 用于思考的最大 Token 数。设置为 0 可让模型自动决定(推荐)。 +provider.anthropic.thinking_max_tokens.label=思考时最大 Token 数 +provider.anthropic.thinking_max_tokens.description=启用思考功能时的总 Token 上限(思考 + 回答)。设置为 0 以使用“最大 Token 数”代替。 # Provider Configuration - Gemini provider.gemini.apikey.description=Google AI Studio API Key:https\://aistudio.google.com/app/apikey From 59118500a9f6d6a1560e04c3c6416cee67967bf3 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:47:28 +0000 Subject: [PATCH 199/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index faac3366b..36dbf8cd6 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -952,6 +952,12 @@ provider.openai.setup.help=💡 若要使用 OpenAI,您必須提供 API 金鑰 provider.anthropic.apikey.description=您的 Anthropic API 金鑰(https\://console.anthropic.com/) provider.anthropic.apikey.stored=API 金鑰已儲存。留白代表保持現有設定。 provider.anthropic.setup.help=💡 若要使用 Anthropic,請提供 API 金鑰。\n\n1. 取得位置:https\://console.anthropic.com/\n2. 在設定中輸入或使用 \:change-settings +provider.anthropic.max_tokens.label=最大 Token 數 +provider.anthropic.max_tokens.description=模型每次回應可生成的最大 Token 數(思考 + 回答的總和)。 +provider.anthropic.thinking_budget_tokens.label=思考預算 Token 數 +provider.anthropic.thinking_budget_tokens.description=Anthropic 用於思考的最大 Token 數。設定為 0 可讓模型自動決定(推薦)。 +provider.anthropic.thinking_max_tokens.label=思考時最大 Token 數 +provider.anthropic.thinking_max_tokens.description=啟用思考功能時的總 Token 上限(思考 + 回答)。設定為 0 以使用「最大 Token 數」代替。 # Provider Configuration - Gemini provider.gemini.apikey.description=您的 Google AI Studio API 金鑰(https\://aistudio.google.com/app/apikey) From 1bb01b1771a2428e575f29a483dd33cbe62f1466 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 01:47:30 +0000 Subject: [PATCH 200/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index d33d3efc0..0decfe792 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -952,6 +952,12 @@ provider.openai.setup.help=💡 Để sử dụng OpenAI, bạn cần API key.\n provider.anthropic.apikey.description=API key Anthropic từ https\://console.anthropic.com/ provider.anthropic.apikey.stored=API key đã lưu. Để trống để giữ nguyên hoặc nhập mới để cập nhật. provider.anthropic.setup.help=💡 Để sử dụng Anthropic, bạn cần API key.\n\n1. Lấy từ https\://console.anthropic.com/\n2. Thiết lập trong Cài đặt hoặc dùng \:change-settings +provider.anthropic.max_tokens.label=Số Token Tối đa +provider.anthropic.max_tokens.description=Số lượng token tối đa mà mô hình có thể tạo cho mỗi phản hồi (suy nghĩ + câu trả lời được kết hợp). +provider.anthropic.thinking_budget_tokens.label=Token Ngân sách Suy nghĩ +provider.anthropic.thinking_budget_tokens.description=Số lượng token tối đa mà Anthropic có thể dành cho việc suy nghĩ. Đặt là 0 để để mô hình tự quyết định (khuyên dùng). +provider.anthropic.thinking_max_tokens.label=Token Tối đa cho Suy nghĩ +provider.anthropic.thinking_max_tokens.description=Giới hạn token tổng khi tính năng suy nghĩ đang hoạt động (suy nghĩ + câu trả lời). Đặt là 0 để sử dụng Số Token Tối đa thay thế. # Provider Configuration - Gemini provider.gemini.apikey.description=API key Google AI Studio từ https\://aistudio.google.com/app/apikey From 681a6bcedcd42c71de5a62a503e93e150a1833fb Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 02:57:50 +0000 Subject: [PATCH 201/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 3f6bd4409..55ad21690 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -926,6 +926,7 @@ provider.add.new=Add Provider provider.no.instances.hint=No providers configured yet. Click "Add Provider" to get started. provider.model.panel.select.hint=Select a provider on the left to browse its models provider.model.panel.model.count={0} models +provider.model.default.badge=Default provider.instance.name.label=Instance name provider.instance.name.placeholder=e.g. "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate=A provider named "{0}" already exists From bbe41746793e8004db16714e10fff52f0dfd09c3 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 02:57:52 +0000 Subject: [PATCH 202/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 69672f59a..01a0674f0 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -929,6 +929,7 @@ provider.add.new=Ajouter un fournisseur provider.no.instances.hint=Aucun fournisseur configuré pour l'instant. Cliquez sur "Ajouter un fournisseur" pour commencer. provider.model.panel.select.hint=Sélectionnez un fournisseur à gauche pour parcourir ses modèles provider.model.panel.model.count={0} modèles +provider.model.default.badge=Par défaut provider.instance.name.label=Nom de l'instance provider.instance.name.placeholder=par ex. "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate=Un fournisseur nommé "{0}" existe déjà From 021f1ba591adc55f7be184a1fe8d178b6f1ddc8e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 02:57:54 +0000 Subject: [PATCH 203/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 29c244a5b..4df397eaa 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -929,6 +929,7 @@ provider.add.new=Añadir proveedor provider.no.instances.hint=Aún no hay proveedores configurados. Haga clic en "Añadir proveedor" para comenzar. provider.model.panel.select.hint=Selecciona un proveedor a la izquierda para explorar sus modelos provider.model.panel.model.count={0} modelos +provider.model.default.badge=Predeterminado provider.instance.name.label=Nombre de la instancia provider.instance.name.placeholder=p. ej., "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate=Ya existe un proveedor llamado "{0}" From 9ec1be7f0e6119ad52cdd44677543f2b25614798 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 02:57:55 +0000 Subject: [PATCH 204/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 2e81fa359..65f35f1bd 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -929,6 +929,7 @@ provider.add.new=Anbieter hinzufügen provider.no.instances.hint=Noch keine Anbieter konfiguriert. Klicken Sie auf "Anbieter hinzufügen", um loszulegen. provider.model.panel.select.hint=Wählen Sie links einen Anbieter aus, um seine Modelle zu durchsuchen provider.model.panel.model.count={0} Modelle +provider.model.default.badge=Standard provider.instance.name.label=Instanzname provider.instance.name.placeholder=z. B. "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate=Ein Anbieter mit dem Namen "{0}" existiert bereits From ebcf5fdcfe4c42ab099c12bfb09f0809a700a7ff Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 02:57:57 +0000 Subject: [PATCH 205/251] New translations messages.properties (Japanese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_ja_JP.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 43ed8b421..e1b0e76f7 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -929,6 +929,7 @@ provider.add.new=プロバイダーを追加 provider.no.instances.hint=プロバイダーがまだ設定されていません。"プロバイダーを追加" をクリックして開始してください。 provider.model.panel.select.hint=左側のプロバイダーを選択してモデルを参照してください provider.model.panel.model.count={0} モデル +provider.model.default.badge=デフォルト provider.instance.name.label=インスタンス名 provider.instance.name.placeholder=例\: "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate="{0}" という名前のプロバイダーはすでに存在します From 46c3a182c0724ee0b4c62cd3be8e33904fe5b7b1 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 02:57:58 +0000 Subject: [PATCH 206/251] New translations messages.properties (Korean) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_ko_KR.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 4bb11e40e..9fed448d7 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -929,6 +929,7 @@ provider.add.new=제공업체 추가 provider.no.instances.hint=구성된 제공업체가 없습니다. 시작하려면 "제공업체 추가"를 클릭하세요. provider.model.panel.select.hint=왼쪽에서 공급자를 선택하여 모델을 탐색하세요 provider.model.panel.model.count={0}개 모델 +provider.model.default.badge=기본 provider.instance.name.label=인스턴스 이름 provider.instance.name.placeholder=예\: "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate="{0}" 이름의 프로바이더가 이미 존재합니다 From 0382b45220146b7c0bf44c4834833c6a8a42c31e Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 02:58:00 +0000 Subject: [PATCH 207/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index 5c4c5d6a7..2ae625bc2 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -929,6 +929,7 @@ provider.add.new=Add Provider provider.no.instances.hint=No providers configured yet. Click "Add Provider" to get started. provider.model.panel.select.hint=Select a provider on the left to browse its models provider.model.panel.model.count={0} models +provider.model.default.badge=Default provider.instance.name.label=Instance name provider.instance.name.placeholder=e.g. "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate=A provider named "{0}" already exists From e3e70cf36ff7cbd3833e7cb9d5647f149da64667 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 02:58:02 +0000 Subject: [PATCH 208/251] New translations messages.properties (Chinese Simplified) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_zh_CN.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index e5cc11494..6330c1a5f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -929,6 +929,7 @@ provider.add.new=添加服务商 provider.no.instances.hint=尚未配置任何服务商。点击 "添加服务商" 以开始。 provider.model.panel.select.hint=在左侧选择一个提供商以浏览其模型 provider.model.panel.model.count={0} 个模型 +provider.model.default.badge=默认 provider.instance.name.label=实例名称 provider.instance.name.placeholder=例如 "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate=名为"{0}"的提供商已存在 From 221c72da7eb7e1ff959e07c1c28cbd150e337129 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 02:58:04 +0000 Subject: [PATCH 209/251] New translations messages.properties (Chinese Traditional) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_zh_TW.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 36dbf8cd6..175cbb3f9 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -929,6 +929,7 @@ provider.add.new=新增服務商 provider.no.instances.hint=尚未設定任何服務商。點擊 "新增服務商" 以開始。 provider.model.panel.select.hint=在左側選擇一個提供商以瀏覽其模型 provider.model.panel.model.count={0} 個模型 +provider.model.default.badge=預設 provider.instance.name.label=執行個體名稱 provider.instance.name.placeholder=例如 "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate=名為「{0}」的提供商已存在 From 760a2d90f2fd8f7e04fcfa655a7031dd25ad65ef Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 02:58:05 +0000 Subject: [PATCH 210/251] New translations messages.properties (Vietnamese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_vi_VN.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 0decfe792..d2c15e84f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -929,6 +929,7 @@ provider.add.new=Thêm nhà cung cấp provider.no.instances.hint=Chưa có nhà cung cấp nào được cấu hình. Nhấp vào "Thêm nhà cung cấp" để bắt đầu. provider.model.panel.select.hint=Chọn nhà cung cấp ở bên trái để duyệt các mô hình provider.model.panel.model.count={0} mô hình +provider.model.default.badge=Mặc định provider.instance.name.label=Tên phiên bản provider.instance.name.placeholder=Ví dụ\: "Work OpenAI", "ollama-macbook" provider.instance.name.duplicate=Nhà cung cấp có tên "{0}" đã tồn tại From dea377d60d99e02c1a5178588258f0c5ad913779 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:43:08 +0000 Subject: [PATCH 211/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 55ad21690..add8e21b1 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -1071,6 +1071,7 @@ error.insufficient_credits=⚠️ Insufficient API credits\n\nYour credit balanc error.timeout=⚠️ Request timed out after {timeout} seconds\n\nPossible causes:\n• High server load – please try again later\n• Complex request – simplify your input\n• Network delays error.context_length=⚠️ Context window exceeded\n\nThe total input (conversation history + your message + attachments) is too large for this model to process.\n\nTo fix this:\n• Start a new chat session to clear the conversation history\n• Shorten your message or remove large attachments\n• If using a local model (Ollama / LM Studio / Docker), increase the context size in its settings\n• Switch to a model with a larger context window error.invalid_request=⚠️ Invalid request: {details}\n\nPlease check your input and try again. +error.local_server=⚠️ Local AI server error!\n\nThe AI server process crashed or failed to load the model. This is not caused by Askimo.\n\nPossible causes:\n• The model file is corrupted or incomplete — try re-downloading it\n• Not enough RAM/VRAM — try a smaller quantization (e.g. Q4 instead of Q8)\n• Unsupported model format for the current server version\n• The server process was killed by the OS (out-of-memory)\n\nWhat to do:\n1. Check your local AI server logs for the full error\n2. Restart the server and try again\n3. Re-pull or re-download the model\n4. Try a different model or quantization level\n\nTechnical details: {details} error.system=⚠️ System Error\n\nAn unexpected error occurred: {errorCode}\n\nPlease contact Askimo support with:\n• What you were doing\n• The error code above\n• The timestamp # Model Availability Errors From ec853436f183e0ac25c9a472303af9611140230d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:43:50 +0000 Subject: [PATCH 212/251] New translations messages.properties (French) [ci skip] --- .../resources/i18n/messages_fr.properties | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 01a0674f0..0b570e9bd 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -403,28 +403,28 @@ settings.proxy.system.info=ℹ️ Utilisation des paramètres proxy du système settings.proxy.socks5.no.auth.info=ℹ️ L’authentification SOCKS5 n’est actuellement pas prise en charge. Utilisez un proxy SOCKS5 sans authentification ou créez un ticket sur GitHub si vous avez besoin de cette fonctionnalité. # Web Search Settings -settings.web_search=Web Search -settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. -settings.web_search.title=Web Search Configuration -settings.web_search.enabled=Enabled -settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. -settings.web_search.backend=Search Backend +settings.web_search=Recherche web +settings.web_search.description=Activez la recherche web intégrée pour que l’IA puisse consulter des informations actuelles sans clé API. DuckDuckGo fonctionne sans configuration — passez à Brave ou Tavily pour des résultats de meilleure qualité. +settings.web_search.title=Configuration de la recherche web +settings.web_search.enabled=Activé +settings.web_search.zero_config_note=DuckDuckGo fonctionne sans configuration. Ne sélectionnez un autre backend ci-dessous que si vous souhaitez des résultats de meilleure qualité ou en plus grand volume et disposez d’une clé API pour ce service. +settings.web_search.backend=Backend de recherche settings.web_search.backend.duckduckgo=DuckDuckGo -settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.duckduckgo.description=Gratuit, aucune clé API requise. Valeur par défaut respectueuse de la vie privée. settings.web_search.backend.brave=Brave Search -settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.brave.description=Rapide, index indépendant. Nécessite une clé API Brave Search gratuite. settings.web_search.backend.tavily=Tavily -settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.tavily.description=Résultats optimisés par IA avec extraction de réponses facultative. Nécessite une clé API Tavily. settings.web_search.backend.searxng=SearxNG -settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. -settings.web_search.api_key=API Key -settings.web_search.api_key.placeholder=Paste your API key here -settings.web_search.get_api_key=Get a free API key ↗ -settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.backend.searxng.description=Métarecherche respectueuse de la vie privée via votre propre instance SearxNG. Aucune clé API requise. +settings.web_search.api_key=Clé API +settings.web_search.api_key.placeholder=Collez votre clé API ici +settings.web_search.get_api_key=Obtenir une clé API gratuite ↗ +settings.web_search.endpoint=URL de l’instance SearxNG settings.web_search.endpoint.placeholder=https\://search.example.com -settings.web_search.test=Test Search -settings.web_search.test.running=Testing... -settings.web_search.test.success=✅ Search is working +settings.web_search.test=Tester la recherche +settings.web_search.test.running=Test en cours... +settings.web_search.test.success=✅ La recherche fonctionne settings.web_search.test.fail=❌ {0} # User Profile @@ -705,8 +705,7 @@ chat.reasoning.effort.medium.description=Profondeur et vitesse équilibrées. Co chat.reasoning.effort.high=Élevé chat.reasoning.effort.high.description=Raisonnement approfondi, coût plus élevé. Idéal pour la résolution de problèmes complexes. chat.input.placeholder=Tapez votre message... (Entrée pour envoyer, Shift+Entrée pour une nouvelle ligne) -chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page -chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here +chat.input.placeholder.hint.attach=Joindre des fichiers avec {0}+A ou glisser-déposer ici chat.select.file=Sélectionner un ou plusieurs fichiers chat.attachment.remove=Supprimer la pièce jointe chat.attachment.preview.loading=Chargement de l'aperçu… @@ -1074,6 +1073,7 @@ error.insufficient_credits=⚠️ Crédits insuffisants\n\nVotre solde est trop error.timeout=⚠️ La requête a expiré après {timeout} secondes\n\nCauses possibles \:\n• Charge serveur élevée – réessayez plus tard\n• Requête complexe – simplifiez-la\n• Latence réseau error.context_length=⚠️ Fenêtre de contexte dépassée\n\nL'entrée totale (historique de la conversation + votre message + pièces jointes) est trop volumineuse pour être traitée par ce modèle.\n\nPour corriger cela \:\n• Démarrez une nouvelle session de chat pour effacer l'historique de la conversation\n• Raccourcissez votre message ou supprimez les pièces jointes volumineuses\n• Si vous utilisez un modèle local (Ollama / LM Studio / Docker), augmentez la taille du contexte dans ses paramètres\n• Passez à un modèle avec une fenêtre de contexte plus grande error.invalid_request=⚠️ Requête invalide \: {details}\n\nVeuillez vérifier votre saisie et réessayer. +error.local_server=⚠️ Erreur du serveur IA local \!\n\nLe processus du serveur IA a planté ou n''a pas pu charger le modèle. Ce n''est pas causé par Askimo.\n\nCauses possibles \:\n• Le fichier modèle est corrompu ou incomplet — essayez de le retélécharger\n• RAM/VRAM insuffisante — essayez une quantification plus petite (ex. Q4 au lieu de Q8)\n• Format de modèle non pris en charge par la version actuelle du serveur\n• Le processus serveur a été tué par le système d''exploitation (mémoire insuffisante)\n\nQue faire \:\n1. Consultez les journaux de votre serveur IA local\n2. Redémarrez le serveur et réessayez\n3. Re-téléchargez le modèle\n4. Essayez un autre modèle ou niveau de quantification\n\nDétails techniques \: {details} error.system=⚠️ Erreur système\n\nUne erreur inattendue est survenue \: {errorCode}\n\nVeuillez contacter le support Askimo avec \:\n• Ce que vous faisiez\n• Le code d’erreur ci-dessus\n• L’horodatage # Model Availability Errors From 510fb9b7ebcea69a1db7bcfee319bcf056414cf2 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:43:52 +0000 Subject: [PATCH 213/251] New translations messages.properties (Spanish) [ci skip] --- .../resources/i18n/messages_es.properties | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 4df397eaa..86335e398 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -403,28 +403,28 @@ settings.proxy.system.info=ℹ️ Se utilizan los ajustes de proxy del sistema o settings.proxy.socks5.no.auth.info=ℹ️ La autenticación SOCKS5 no es compatible actualmente. Use un proxy SOCKS5 sin autenticación o cree un issue en GitHub si necesita esta función. # Web Search Settings -settings.web_search=Web Search -settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. -settings.web_search.title=Web Search Configuration -settings.web_search.enabled=Enabled -settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. -settings.web_search.backend=Search Backend +settings.web_search=Búsqueda web +settings.web_search.description=Activa la búsqueda web integrada para que la IA pueda consultar información actual sin ninguna clave API. DuckDuckGo funciona de inmediato — actualiza a Brave o Tavily para obtener resultados de mayor calidad. +settings.web_search.title=Configuración de búsqueda web +settings.web_search.enabled=Habilitado +settings.web_search.zero_config_note=DuckDuckGo funciona sin configuración. Selecciona un backend diferente solo si deseas resultados de mayor calidad o volumen y tienes una clave API para ese servicio. +settings.web_search.backend=Backend de búsqueda settings.web_search.backend.duckduckgo=DuckDuckGo -settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.duckduckgo.description=Gratuito, sin clave API requerida. Opción predeterminada respetuosa con la privacidad. settings.web_search.backend.brave=Brave Search -settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.brave.description=Rápido, índice independiente. Requiere una clave API gratuita de Brave Search. settings.web_search.backend.tavily=Tavily -settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.tavily.description=Resultados optimizados para IA con extracción de respuestas opcional. Requiere una clave API de Tavily. settings.web_search.backend.searxng=SearxNG -settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. -settings.web_search.api_key=API Key -settings.web_search.api_key.placeholder=Paste your API key here -settings.web_search.get_api_key=Get a free API key ↗ -settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.backend.searxng.description=Metabúsqueda respetuosa con la privacidad a través de tu propia instancia de SearxNG. No se necesita clave API. +settings.web_search.api_key=Clave API +settings.web_search.api_key.placeholder=Pega tu clave API aquí +settings.web_search.get_api_key=Obtener una clave API gratuita ↗ +settings.web_search.endpoint=URL de instancia SearxNG settings.web_search.endpoint.placeholder=https\://search.example.com -settings.web_search.test=Test Search -settings.web_search.test.running=Testing... -settings.web_search.test.success=✅ Search is working +settings.web_search.test=Probar búsqueda +settings.web_search.test.running=Probando... +settings.web_search.test.success=✅ La búsqueda funciona settings.web_search.test.fail=❌ {0} # User Profile @@ -705,8 +705,7 @@ chat.reasoning.effort.medium.description=Profundidad y velocidad equilibradas. A chat.reasoning.effort.high=Alto chat.reasoning.effort.high.description=Razonamiento exhaustivo, mayor costo. Ideal para la resolución de problemas complejos. chat.input.placeholder=Escribe tu mensaje... (Enter para enviar, Shift+Enter para nueva línea) -chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page -chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here +chat.input.placeholder.hint.attach=Adjunta archivos con {0}+A o arrástralos y suéltalos aquí chat.select.file=Seleccionar archivo(s) chat.attachment.remove=Eliminar archivo adjunto chat.attachment.preview.loading=Cargando vista previa… @@ -1074,6 +1073,7 @@ error.insufficient_credits=⚠️ Créditos insuficientes\n\nSu saldo de crédit error.timeout=⚠️ La solicitud expiró después de {timeout} segundos\n\nPosibles causas\:\n• Alta carga del servidor – intente nuevamente más tarde\n• Consulta compleja – intente simplificarla\n• Latencia de red error.context_length=⚠️ Ventana de contexto excedida\n\nLa entrada total (historial de la conversación + su mensaje + archivos adjuntos) es demasiado grande para que este modelo la procese.\n\nPara solucionar esto\:\n• Inicie una nueva sesión de chat para borrar el historial de la conversación\n• Acorte su mensaje o elimine archivos adjuntos grandes\n• Si utiliza un modelo local (Ollama / LM Studio / Docker), aumente el tamaño del contexto en su configuración\n• Cambie a un modelo con una ventana de contexto más grande error.invalid_request=⚠️ Solicitud no válida\: {details}\n\nRevise su entrada e inténtelo de nuevo. +error.local_server=⚠️ ¡Error del servidor de IA local\!\n\nEl proceso del servidor de IA se bloqueó o no pudo cargar el modelo. Esto no es causado por Askimo.\n\nPosibles causas\:\n• El archivo del modelo está corrupto o incompleto — intente descargarlo nuevamente\n• RAM/VRAM insuficiente — pruebe una cuantización menor (p. ej. Q4 en lugar de Q8)\n• Formato de modelo no compatible con la versión actual del servidor\n• El proceso del servidor fue terminado por el sistema operativo (sin memoria)\n\nQué hacer\:\n1. Revise los registros de su servidor de IA local\n2. Reinicie el servidor e inténtelo de nuevo\n3. Vuelva a descargar el modelo\n4. Pruebe un modelo diferente o un nivel de cuantización distinto\n\nDetalles técnicos\: {details} error.system=⚠️ Error del sistema\n\nOcurrió un error inesperado\: {errorCode}\n\nContacte al soporte de Askimo con\:\n• Lo que estaba haciendo\n• El código de error anterior\n• La marca de tiempo # Model Availability Errors From 062ee20df59cbd2a22e9a1bdff4e5c8d50ccead3 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:43:54 +0000 Subject: [PATCH 214/251] New translations messages.properties (German) [ci skip] --- .../resources/i18n/messages_de.properties | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 65f35f1bd..78c787055 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -403,28 +403,28 @@ settings.proxy.system.info=ℹ️ System-Proxy-Einstellungen aus der Betriebssys settings.proxy.socks5.no.auth.info=ℹ️ SOCKS5-Authentifizierung wird derzeit nicht unterstützt. Verwenden Sie einen SOCKS5-Proxy ohne Authentifizierung oder erstellen Sie ein Issue auf GitHub, wenn Sie diese Funktion benötigen. # Web Search Settings -settings.web_search=Web Search -settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. -settings.web_search.title=Web Search Configuration -settings.web_search.enabled=Enabled -settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. -settings.web_search.backend=Search Backend +settings.web_search=Websuche +settings.web_search.description=Aktivieren Sie die integrierte Websuche, damit die KI aktuelle Informationen ohne API-Schlüssel abrufen kann. DuckDuckGo funktioniert sofort — aktualisieren Sie auf Brave oder Tavily für bessere Ergebnisse. +settings.web_search.title=Websuche-Konfiguration +settings.web_search.enabled=Aktiviert +settings.web_search.zero_config_note=DuckDuckGo funktioniert ohne Einrichtung. Wählen Sie unten nur dann ein anderes Backend, wenn Sie bessere oder mehr Ergebnisse wünschen und einen API-Schlüssel für diesen Dienst haben. +settings.web_search.backend=Suchbackend settings.web_search.backend.duckduckgo=DuckDuckGo -settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.duckduckgo.description=Kostenlos, kein API-Schlüssel erforderlich. Datenschutzfreundlicher Standard. settings.web_search.backend.brave=Brave Search -settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.brave.description=Schnell, unabhängiger Index. Erfordert einen kostenlosen Brave Search API-Schlüssel. settings.web_search.backend.tavily=Tavily -settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.tavily.description=KI-optimierte Ergebnisse mit optionaler Antwortextraktion. Erfordert einen Tavily API-Schlüssel. settings.web_search.backend.searxng=SearxNG -settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. -settings.web_search.api_key=API Key -settings.web_search.api_key.placeholder=Paste your API key here -settings.web_search.get_api_key=Get a free API key ↗ -settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.backend.searxng.description=Datenschutzfreundliche Metasuche über Ihre eigene SearxNG-Instanz. Kein API-Schlüssel erforderlich. +settings.web_search.api_key=API-Schlüssel +settings.web_search.api_key.placeholder=API-Schlüssel hier einfügen +settings.web_search.get_api_key=Kostenlosen API-Schlüssel erhalten ↗ +settings.web_search.endpoint=SearxNG-Instanz-URL settings.web_search.endpoint.placeholder=https\://search.example.com -settings.web_search.test=Test Search -settings.web_search.test.running=Testing... -settings.web_search.test.success=✅ Search is working +settings.web_search.test=Suche testen +settings.web_search.test.running=Wird getestet... +settings.web_search.test.success=✅ Suche funktioniert settings.web_search.test.fail=❌ {0} # User Profile @@ -705,8 +705,7 @@ chat.reasoning.effort.medium.description=Ausgewogene Tiefe und Geschwindigkeit. chat.reasoning.effort.high=Hoch chat.reasoning.effort.high.description=Gründliches Nachdenken, höhere Kosten. Am besten für komplexe Problemlösungen. chat.input.placeholder=Nachricht eingeben... (Enter zum Senden, Shift+Enter für neue Zeile) -chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page -chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here +chat.input.placeholder.hint.attach=Dateien mit {0}+A anhängen oder hier hineinziehen chat.select.file=Datei(en) auswählen chat.attachment.remove=Anhang entfernen chat.attachment.preview.loading=Vorschau wird geladen… @@ -1074,6 +1073,7 @@ error.insufficient_credits=⚠️ Unzureichendes Guthaben\n\nIhr Guthaben ist zu error.timeout=⚠️ Anfrage nach {timeout} Sekunden abgelaufen\n\nMögliche Ursachen\:\n• Hohe Serverlast – versuchen Sie es später erneut\n• Komplexe Anfrage – vereinfachen Sie Ihre Eingabe\n• Netzwerkverzögerungen error.context_length=⚠️ Kontextfenster überschritten\n\nDie gesamte Eingabe (Konversationsverlauf + Ihre Nachricht + Anhänge) ist zu groß, als dass dieses Modell sie verarbeiten könnte.\n\nSo beheben Sie das Problem\:\n• Starten Sie eine neue Chat-Sitzung, um den Konversationsverlauf zu löschen\n• Kürzen Sie Ihre Nachricht oder entfernen Sie große Anhänge\n• Wenn Sie ein lokales Modell verwenden (Ollama / LM Studio / Docker), erhöhen Sie die Kontextgröße in den Einstellungen\n• Wechseln Sie zu einem Modell mit einem größeren Kontextfenster error.invalid_request=⚠️ Ungültige Anfrage\: {details}\n\nBitte überprüfen Sie Ihre Eingabe und versuchen Sie es erneut. +error.local_server=⚠️ Fehler beim lokalen KI-Server\!\n\nDer KI-Serverprozess ist abgestürzt oder konnte das Modell nicht laden. Dies wird nicht durch Askimo verursacht.\n\nMögliche Ursachen\:\n• Die Modelldatei ist beschädigt oder unvollständig — versuchen Sie, sie erneut herunterzuladen\n• Nicht genug RAM/VRAM — versuchen Sie eine kleinere Quantisierung (z. B. Q4 statt Q8)\n• Nicht unterstütztes Modellformat für die aktuelle Serverversion\n• Der Serverprozess wurde vom Betriebssystem beendet (Out-of-Memory)\n\nWas zu tun ist\:\n1. Überprüfen Sie die Logs Ihres lokalen KI-Servers\n2. Starten Sie den Server neu und versuchen Sie es erneut\n3. Laden Sie das Modell erneut herunter\n4. Versuchen Sie ein anderes Modell oder eine andere Quantisierungsstufe\n\nTechnische Details\: {details} error.system=⚠️ Systemfehler\n\nEin unerwarteter Fehler ist aufgetreten\: {errorCode}\n\nBitte wenden Sie sich an den Askimo-Support mit\:\n• Ihrer letzten Aktion\n• Dem obigen Fehlercode\n• Dem Zeitstempel # Model Availability Errors From 5f9d6d933c2f81ec5b6976b621bd72250ce2b8e8 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:43:55 +0000 Subject: [PATCH 215/251] New translations messages.properties (Japanese) [ci skip] --- .../resources/i18n/messages_ja_JP.properties | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index e1b0e76f7..530ea474b 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -403,28 +403,28 @@ settings.proxy.system.info=ℹ️ オペレーティングシステムの設定 settings.proxy.socks5.no.auth.info=ℹ️ 現在、SOCKS5 認証はサポートされていません。認証なしの SOCKS5 プロキシを使用するか、この機能が必要な場合は GitHub で Issue を作成してください。 # Web Search Settings -settings.web_search=Web Search -settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. -settings.web_search.title=Web Search Configuration -settings.web_search.enabled=Enabled -settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. -settings.web_search.backend=Search Backend +settings.web_search=ウェブ検索 +settings.web_search.description=組み込みのウェブ検索を有効にして、AIがAPIキーなしで最新情報を検索できるようにします。DuckDuckGoはそのまま使用できます — より高品質な結果にはBraveまたはTavilyにアップグレードしてください。 +settings.web_search.title=ウェブ検索の設定 +settings.web_search.enabled=有効 +settings.web_search.zero_config_note=DuckDuckGoはセットアップなしで動作します。より高品質または大量の結果を希望し、そのサービスのAPIキーをお持ちの場合のみ、別のバックエンドを選択してください。 +settings.web_search.backend=検索バックエンド settings.web_search.backend.duckduckgo=DuckDuckGo -settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.duckduckgo.description=無料、APIキー不要。プライバシーに配慮したデフォルト。 settings.web_search.backend.brave=Brave Search -settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.brave.description=高速、独自インデックス。無料のBrave Search APIキーが必要です。 settings.web_search.backend.tavily=Tavily -settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.tavily.description=オプションの回答抽出機能付くAI最適化結果。Tavily APIキーが必要です。 settings.web_search.backend.searxng=SearxNG -settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. -settings.web_search.api_key=API Key -settings.web_search.api_key.placeholder=Paste your API key here -settings.web_search.get_api_key=Get a free API key ↗ -settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.backend.searxng.description=独自のSearxNGインスタンスを介したプライバシー配慮メタ検索。APIキー不要。 +settings.web_search.api_key=APIキー +settings.web_search.api_key.placeholder=APIキーをここに貼り付けてください +settings.web_search.get_api_key=無料のAPIキーを取得 ↗ +settings.web_search.endpoint=SearxNGインスタンスURL settings.web_search.endpoint.placeholder=https\://search.example.com -settings.web_search.test=Test Search -settings.web_search.test.running=Testing... -settings.web_search.test.success=✅ Search is working +settings.web_search.test=検索テスト +settings.web_search.test.running=テスト中... +settings.web_search.test.success=✅ 検索は正常に動作しています settings.web_search.test.fail=❌ {0} # User Profile @@ -705,8 +705,7 @@ chat.reasoning.effort.medium.description=深さと速度のバランスが取れ chat.reasoning.effort.high=高 chat.reasoning.effort.high.description=徹底的な推論を行い、コストが高くなります。複雑な問題解決に最適です。 chat.input.placeholder=メッセージを入力...(Enter 送信、Shift+Enter 改行) -chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page -chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here +chat.input.placeholder.hint.attach={0}+A でファイルを添付、またはここにドラッグ&ドロップ chat.select.file=ファイルを選択(複数可) chat.attachment.remove=添付ファイルを削除 chat.attachment.preview.loading=プレビューを読み込み中… @@ -1074,6 +1073,7 @@ error.insufficient_credits=⚠️ クレジット残高不足\n\nクレジット error.timeout=⚠️ {timeout} 秒後にリクエストがタイムアウトしました\n\n原因として考えられること:\n• サーバー負荷が高い—少し待って再試行してください\n• クエリが複雑—内容を簡略化してみてください\n• ネットワーク遅延 error.context_length=⚠️ コンテキストウィンドウの制限を超えました\n\n入力の合計(会話履歴 + あなたのメッセージ + 添付ファイル)が大きすぎて、このモデルでは処理できません。\n\n解決するには:\n• 新しいチャットセッションを開始して会話履歴をクリアしてください\n• メッセージを短くするか、大きな添付ファイルを削除してください\n• ローカルモデル(Ollama / LM Studio / Docker)を使用している場合は、設定でコンテキストサイズを増やしてください\n• より大きなコンテキストウィンドウを持つモデルに切り替えてください error.invalid_request=⚠️ 無効なリクエスト:{details}\n\n入力内容を確認して、もう一度お試しください。 +error.local_server=⚠️ ローカルAIサーバーエラー!\n\nAIサーバープロセスがクラッシュするか、モデルの読み込みに失敗しました。これはAskimoが原因ではありません。\n\n考えられる原因:\n• モデルファイルが破損または不完全 — 再ダウンロードをお試しください\n• RAM/VRAMが不足 — より小さい量子化(例:Q8ではなくQ4)をお試しください\n• 現在のサーバーバージョンでサポートされていないモデル形式\n• サーバープロセスがOSによって強制終了された(メモリ不足)\n\n対処方法:\n1. ローカルAIサーバーのログを確認してください\n2. サーバーを再起動して再試行してください\n3. モデルを再ダウンロードしてください\n4. 別のモデルまたは量子化レベルをお試しください\n\n技術的詳細:{details} error.system=⚠️ システムエラー\n\n予期しないエラーが発生しました:{errorCode}\n\nAskimo サポートへ次を添えてご連絡ください:\n• 実行していた操作\n• 上記のエラーコード\n• タイムスタンプ # Model Availability Errors From 5bbaf92aad166f5cef8a82c56933fa12bb91c5b8 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:43:57 +0000 Subject: [PATCH 216/251] New translations messages.properties (Korean) [ci skip] --- .../resources/i18n/messages_ko_KR.properties | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 9fed448d7..1f9f52d1e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -403,28 +403,28 @@ settings.proxy.system.info=ℹ️ 운영체제 설정의 시스템 프록시를 settings.proxy.socks5.no.auth.info=ℹ️ 현재 SOCKS5 인증은 지원되지 않습니다. 인증 없이 SOCKS5 프록시를 사용하거나 이 기능이 필요하다면 GitHub에 이슈를 등록해 주세요. # Web Search Settings -settings.web_search=Web Search -settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. -settings.web_search.title=Web Search Configuration -settings.web_search.enabled=Enabled -settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. -settings.web_search.backend=Search Backend +settings.web_search=웹 검색 +settings.web_search.description=API 키 없이도 AI가 최신 정보를 조회할 수 있도록 내장 웹 검색을 활성화하세요. DuckDuckGo는 기본으로 작동합니다 — 더 높은 품질의 결과를 원하면 Brave 또는 Tavily로 업그레이드하세요. +settings.web_search.title=웹 검색 설정 +settings.web_search.enabled=활성화됨 +settings.web_search.zero_config_note=DuckDuckGo는 설정 없이 작동합니다. 더 높은 품질이나 더 많은 양의 결과를 원하고 해당 서비스의 API 키가 있는 경우에만 다른 백엔드를 선택하세요. +settings.web_search.backend=검색 백엔드 settings.web_search.backend.duckduckgo=DuckDuckGo -settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.duckduckgo.description=무료, API 키 필요 없음. 개인정보를 보호하는 기본 옵션. settings.web_search.backend.brave=Brave Search -settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.brave.description=빠르고 독립적인 인덱스. 무료 Brave Search API 키가 필요합니다. settings.web_search.backend.tavily=Tavily -settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.tavily.description=선택적 답변 추출 기능이 있는 AI 최적화 결과. Tavily API 키가 필요합니다. settings.web_search.backend.searxng=SearxNG -settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. -settings.web_search.api_key=API Key -settings.web_search.api_key.placeholder=Paste your API key here -settings.web_search.get_api_key=Get a free API key ↗ -settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.backend.searxng.description=자체 SearxNG 인스턴스를 통한 개인정보 보호 메타 검색. API 키 불필요. +settings.web_search.api_key=API 키 +settings.web_search.api_key.placeholder=여기에 API 키를 붙여넣으세요 +settings.web_search.get_api_key=무료 API 키 받기 ↗ +settings.web_search.endpoint=SearxNG 인스턴스 URL settings.web_search.endpoint.placeholder=https\://search.example.com -settings.web_search.test=Test Search -settings.web_search.test.running=Testing... -settings.web_search.test.success=✅ Search is working +settings.web_search.test=검색 테스트 +settings.web_search.test.running=테스트 중... +settings.web_search.test.success=✅ 검색이 정상 작동 중 settings.web_search.test.fail=❌ {0} # User Profile @@ -705,8 +705,7 @@ chat.reasoning.effort.medium.description=깊이와 속도의 균형. 대부분 chat.reasoning.effort.high=높음 chat.reasoning.effort.high.description=철저한 추론, 높은 비용. 복잡한 문제 해결에 가장 적합합니다. chat.input.placeholder=메시지 입력... (Enter 전송, Shift+Enter 줄바꿈) -chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page -chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here +chat.input.placeholder.hint.attach={0}+A로 파일을 첨부하거나 여기에 드래그 앤 드롭하세요 chat.select.file=파일 선택 (여러 개 선택 가능) chat.attachment.remove=첨부 파일 삭제 chat.attachment.preview.loading=미리보기 불러오는 중… @@ -1074,6 +1073,7 @@ error.insufficient_credits=⚠️ 크레딧 부족\n\n크레딧 잔액이 너무 error.timeout=⚠️ {timeout}초 후 요청 시간이 초과되었습니다\n\n가능한 원인\:\n• 서버 부하가 높음 - 잠시 후 다시 시도\n• 쿼리가 복잡함 - 더 간단하게 작성\n• 네트워크 지연 error.context_length=⚠️ 컨텍스트 창 초과\n\n전체 입력(대화 기록 + 메시지 + 첨부 파일)이 너무 커서 이 모델이 처리할 수 없습니다.\n\n해결 방법\:\n• 새로운 채팅 세션을 시작하여 대화 기록을 지우세요\n• 메시지를 줄이거나 큰 첨부 파일을 제거하세요\n• 로컬 모델(Ollama / LM Studio / Docker)을 사용하는 경우, 설정에서 컨텍스트 크기를 늘리세요\n• 더 큰 컨텍스트 창을 지원하는 모델로 전환하세요 error.invalid_request=⚠️ 잘못된 요청\: {details}\n\n입력 내용을 확인한 뒤 다시 시도하세요. +error.local_server=⚠️ 로컬 AI 서버 오류\!\n\nAI 서버 프로세스가 충돌하거나 모델을 로드하지 못했습니다. 이는 Askimo로 인한 문제가 아닙니다.\n\n가능한 원인\:\n• 모델 파일이 손상되었거나 불완전합니다 — 다시 다운로드해 보세요\n• RAM/VRAM 부족 — 더 작은 양자화(예\: Q8 대신 Q4)를 시도해 보세요\n• 현재 서버 버전에서 지원하지 않는 모델 형식\n• 서버 프로세스가 OS에 의해 종료됨(메모리 부족)\n\n해결 방법\:\n1. 로컬 AI 서버 로그를 확인하세요\n2. 서버를 재시작하고 다시 시도하세요\n3. 모델을 다시 다운로드하세요\n4. 다른 모델 또는 양자화 수준을 시도해 보세요\n\n기술적 세부 정보\: {details} error.system=⚠️ 시스템 오류\n\n예기치 않은 오류가 발생했습니다\: {errorCode}\n\nAskimo 지원팀에 다음 정보를 함께 전달해 주세요\:\n• 수행 중이던 작업\n• 위의 오류 코드\n• 타임스탬프 # Model Availability Errors From abfcf0cfbdeb311c433e67fa9268f99921567561 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:43:58 +0000 Subject: [PATCH 217/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index 2ae625bc2..9c3176ba2 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -705,7 +705,6 @@ chat.reasoning.effort.medium.description=Balanced depth and speed. Suitable for chat.reasoning.effort.high=High chat.reasoning.effort.high.description=Thorough reasoning, higher cost. Best for complex problem-solving. chat.input.placeholder=Type your message... (Enter to send, Shift+Enter for new line) -chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=Select File(s) chat.attachment.remove=Remove attachment @@ -1074,6 +1073,7 @@ error.insufficient_credits=⚠️ Insufficient API credits\n\nYour credit balanc error.timeout=⚠️ Request timed out after {timeout} seconds\n\nPossible causes\:\n• High server load – please try again later\n• Complex request – simplify your input\n• Network delays error.context_length=⚠️ Context window exceeded\n\nThe total input (conversation history + your message + attachments) is too large for this model to process.\n\nTo fix this\:\n• Start a new chat session to clear the conversation history\n• Shorten your message or remove large attachments\n• If using a local model (Ollama / LM Studio / Docker), increase the context size in its settings\n• Switch to a model with a larger context window error.invalid_request=⚠️ Invalid request\: {details}\n\nPlease check your input and try again. +error.local_server=⚠️ Local AI server error\!\n\nThe AI server process crashed or failed to load the model. This is not caused by Askimo.\n\nPossible causes\:\n• The model file is corrupted or incomplete — try re-downloading it\n• Not enough RAM/VRAM — try a smaller quantization (e.g. Q4 instead of Q8)\n• Unsupported model format for the current server version\n• The server process was killed by the OS (out-of-memory)\n\nWhat to do\:\n1. Check your local AI server logs for the full error\n2. Restart the server and try again\n3. Re-pull or re-download the model\n4. Try a different model or quantization level\n\nTechnical details\: {details} error.system=⚠️ System Error\n\nAn unexpected error occurred\: {errorCode}\n\nPlease contact Askimo support with\:\n• What you were doing\n• The error code above\n• The timestamp # Model Availability Errors From 6dd9247dfef3d7896be31ab2e1880254d20f21a2 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:44:00 +0000 Subject: [PATCH 218/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../resources/i18n/messages_zh_CN.properties | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 6330c1a5f..b83072bd4 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -403,28 +403,28 @@ settings.proxy.system.info=ℹ️ 正在使用操作系统配置中的系统代 settings.proxy.socks5.no.auth.info=ℹ️ 当前尚不支持 SOCKS5 认证。请使用无需认证的 SOCKS5 代理,或如果您需要此功能,请在 GitHub 上创建 issue。 # Web Search Settings -settings.web_search=Web Search -settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. -settings.web_search.title=Web Search Configuration -settings.web_search.enabled=Enabled -settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. -settings.web_search.backend=Search Backend +settings.web_search=网络搜索 +settings.web_search.description=启用内置网络搜索,让 AI 无需 API 密鉅即可查找最新信息。DuckDuckGo 开筱即用 — 升级到 Brave 或 Tavily 可获得更高质量的结果。 +settings.web_search.title=网络搜索配置 +settings.web_search.enabled=已启用 +settings.web_search.zero_config_note=DuckDuckGo 无需设置即可使用。仅当您希望获得更高质量或更大量结果且拥有该服务的 API 密鉅时,才在下方选择其他后端。 +settings.web_search.backend=搜索后端 settings.web_search.backend.duckduckgo=DuckDuckGo -settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.duckduckgo.description=免费,无需 API 密鉅。注重隐私的默认选项。 settings.web_search.backend.brave=Brave Search -settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.brave.description=快速,独立索引。需要免费的 Brave Search API 密鉅。 settings.web_search.backend.tavily=Tavily -settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.tavily.description=AI 优化结果,支持可选的答案提取功能。需要 Tavily API 密鉅。 settings.web_search.backend.searxng=SearxNG -settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. -settings.web_search.api_key=API Key -settings.web_search.api_key.placeholder=Paste your API key here -settings.web_search.get_api_key=Get a free API key ↗ -settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.backend.searxng.description=通过您自己的 SearxNG 实例进行注重隐私的元搜索。无需 API 密鉅。 +settings.web_search.api_key=API 密鉅 +settings.web_search.api_key.placeholder=在此处粘贴您的 API 密鉅 +settings.web_search.get_api_key=获取免费 API 密鉅 ↗ +settings.web_search.endpoint=SearxNG 实例 URL settings.web_search.endpoint.placeholder=https\://search.example.com -settings.web_search.test=Test Search -settings.web_search.test.running=Testing... -settings.web_search.test.success=✅ Search is working +settings.web_search.test=测试搜索 +settings.web_search.test.running=测试中... +settings.web_search.test.success=✅ 搜索正常运行 settings.web_search.test.fail=❌ {0} # User Profile @@ -705,8 +705,7 @@ chat.reasoning.effort.medium.description=深度与速度平衡。适合大多数 chat.reasoning.effort.high=高 chat.reasoning.effort.high.description=彻底推理,成本较高。最适合解决复杂问题。 chat.input.placeholder=输入消息...(Enter 发送,Shift+Enter 换行) -chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page -chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here +chat.input.placeholder.hint.attach=使用 {0}+A 附加文件,或将其拖放到此处 chat.select.file=选择文件(可多选) chat.attachment.remove=移除附件 chat.attachment.preview.loading=正在加载预览… @@ -1074,6 +1073,7 @@ error.insufficient_credits=⚠️ 积分不足\n\n您的积分余额过低。\n\ error.timeout=⚠️ 请求在 {timeout} 秒后超时\n\n可能原因:\n• 服务器负载过高,请稍后重试\n• 请求过于复杂,请尝试简化\n• 网络延迟 error.context_length=⚠️ 上下文窗口已超出限制\n\n总输入内容(对话历史记录 + 您的消息 + 附件)太大,此模型无法处理。\n\n解决方法:\n• 开始新的聊天会话以清除对话历史记录\n• 缩短您的消息或删除较大的附件\n• 如果使用本地模型(Ollama / LM Studio / Docker),请在设置中增加上下文大小\n• 切换到具有更大上下文窗口的模型 error.invalid_request=⚠️ 无效请求:{details}\n\n请检查输入内容后重试。 +error.local_server=⚠️ 本地 AI 服务器错误!\n\nAI 服务器进程崩溃或无法加载模型。这不是由 Askimo 引起的。\n\n可能原因:\n• 模型文件损坏或不完整 — 请尝试重新下载\n• RAM/VRAM 不足 — 请尝试更小的量化版本(例如 Q4 而非 Q8)\n• 当前服务器版本不支持该模型格式\n• 服务器进程被操作系统终止(内存不足)\n\n处理方法:\n1. 查看本地 AI 服务器日志\n2. 重启服务器后重试\n3. 重新下载模型\n4. 尝试其他模型或量化级别\n\n技术详情:{details} error.system=⚠️ 系统错误\n\n发生了意外错误:{errorCode}\n\n请联系 Askimo 支持,并提供:\n• 您的操作步骤\n• 上述错误代码\n• 发生时间 # Model Availability Errors From 760b9316e377ce977578930480466c10880f7610 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:44:01 +0000 Subject: [PATCH 219/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../resources/i18n/messages_zh_TW.properties | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 175cbb3f9..57ccc66e3 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -403,28 +403,28 @@ settings.proxy.system.info=ℹ️ 正在使用作業系統設定中的系統代 settings.proxy.socks5.no.auth.info=ℹ️ 目前尚未支援 SOCKS5 驗證。請使用不需驗證的 SOCKS5 代理,或若您需要此功能,請在 GitHub 上建立 issue。 # Web Search Settings -settings.web_search=Web Search -settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. -settings.web_search.title=Web Search Configuration -settings.web_search.enabled=Enabled -settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. -settings.web_search.backend=Search Backend +settings.web_search=網路搜尋 +settings.web_search.description=啟用內建網路搜尋,讓 AI 無需 API 金鑰即可查詢最新資訊。DuckDuckGo 開筱即用 — 升級至 Brave 或 Tavily 可獲得更高品貪的結果。 +settings.web_search.title=網路搜尋設定 +settings.web_search.enabled=已啟用 +settings.web_search.zero_config_note=DuckDuckGo 無需設定即可使用。僅當您希望獲得更高品貪或更大量的結果且擁有該服務的 API 金鑰時,才選擇下方的其他後端。 +settings.web_search.backend=搜尋後端 settings.web_search.backend.duckduckgo=DuckDuckGo -settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.duckduckgo.description=免費,無需 API 金鑰。注重陰私的預設選項。 settings.web_search.backend.brave=Brave Search -settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.brave.description=快速,獨立索引。需要免費的 Brave Search API 金鑰。 settings.web_search.backend.tavily=Tavily -settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.tavily.description=AI 最佳化結果,支援選用的答案擷取功能。需要 Tavily API 金鑰。 settings.web_search.backend.searxng=SearxNG -settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. -settings.web_search.api_key=API Key -settings.web_search.api_key.placeholder=Paste your API key here -settings.web_search.get_api_key=Get a free API key ↗ -settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.backend.searxng.description=透過您自己的 SearxNG 執行個體進行注重陰私的元搜尋。無需 API 金鑰。 +settings.web_search.api_key=API 金鑰 +settings.web_search.api_key.placeholder=在此處貼上您的 API 金鑰 +settings.web_search.get_api_key=取得免費 API 金鑰 ↗ +settings.web_search.endpoint=SearxNG 執行個體 URL settings.web_search.endpoint.placeholder=https\://search.example.com -settings.web_search.test=Test Search -settings.web_search.test.running=Testing... -settings.web_search.test.success=✅ Search is working +settings.web_search.test=測試搜尋 +settings.web_search.test.running=測試中... +settings.web_search.test.success=✅ 搜尋正常運作 settings.web_search.test.fail=❌ {0} # User Profile @@ -705,8 +705,7 @@ chat.reasoning.effort.medium.description=深度與速度平衡。適合大多數 chat.reasoning.effort.high=高 chat.reasoning.effort.high.description=徹底推理,成本較高。最適合解決複雜問題。 chat.input.placeholder=輸入訊息...(Enter 送出,Shift+Enter 換行) -chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page -chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here +chat.input.placeholder.hint.attach=使用 {0}+A 附加檔案,或將其拖放到此處 chat.select.file=選擇檔案(可多選) chat.attachment.remove=移除附件 chat.attachment.preview.loading=正在載入預覽… @@ -1074,6 +1073,7 @@ error.insufficient_credits=⚠️ 積分不足\n\n您的積分餘額過低。\n\ error.timeout=⚠️ 請求於 {timeout} 秒後逾時\n\n可能原因包括:\n• 伺服器負載過高,請稍後再試\n• 查詢內容過於複雜,請嘗試簡化\n• 網路延遲 error.context_length=⚠️ 上下文視窗已超出限制\n\n總輸入內容(對話歷史記錄 + 您的訊息 + 附件)太大,此模型無法處理。\n\n解決方法:\n• 開始新的聊天對話以清除對話歷史記錄\n• 縮短您的訊息或刪除較大的附件\n• 如果使用本地模型(Ollama / LM Studio / Docker),請在設定中增加上下文大小\n• 切換到具有更大上下文視窗的模型 error.invalid_request=⚠️ 無效的請求:{details}\n\n請檢查輸入內容後再試一次。 +error.local_server=⚠️ 本地 AI 伺服器錯誤!\n\nAI 伺服器程序崩潰或無法載入模型。這不是由 Askimo 所引起的。\n\n可能原因:\n• 模型檔案損毀或不完整 — 請嘗試重新下載\n• RAM/VRAM 不足 — 請嘗試較小的量化版本(例如 Q4 而非 Q8)\n• 目前伺服器版本不支援此模型格式\n• 伺服器程序被作業系統終止(記憶體不足)\n\n處理方式:\n1. 查看本地 AI 伺服器日誌\n2. 重新啟動伺服器後重試\n3. 重新下載模型\n4. 嘗試其他模型或量化等級\n\n技術詳情:{details} error.system=⚠️ 系統錯誤\n\n發生未預期的錯誤:{errorCode}\n\n請聯絡 Askimo 支援,並提供:\n• 您當時的操作\n• 上方的錯誤代碼\n• 發生的時間 # Model Availability Errors From c0972eeaf2bc02e8d6f4b98b5980453f26505cb9 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 19:44:03 +0000 Subject: [PATCH 220/251] New translations messages.properties (Vietnamese) [ci skip] --- .../resources/i18n/messages_vi_VN.properties | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index d2c15e84f..977d0679f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -403,28 +403,28 @@ settings.proxy.system.info=ℹ️ Đang sử dụng cài đặt proxy của hệ settings.proxy.socks5.no.auth.info=ℹ️ Hiện tại chưa hỗ trợ xác thực SOCKS5. Vui lòng sử dụng proxy SOCKS5 không cần xác thực hoặc tạo issue trên GitHub nếu bạn cần tính năng này. # Web Search Settings -settings.web_search=Web Search -settings.web_search.description=Enable built-in web search so the AI can look up current information without any API key. DuckDuckGo works out of the box — upgrade to Brave or Tavily for higher quality results. -settings.web_search.title=Web Search Configuration -settings.web_search.enabled=Enabled -settings.web_search.zero_config_note=DuckDuckGo works with no setup. Select a different backend below only if you want higher-quality or higher-volume results and have an API key for that service. -settings.web_search.backend=Search Backend +settings.web_search=Tìm kiếm web +settings.web_search.description=Bật tìm kiếm web tích hợp để AI có thể tra cứu thông tin hiện tại mà không cần khóa API. DuckDuckGo hoạt động ngay lập tức — nâng cấp lên Brave hoặc Tavily để có kết quả chất lượng cao hơn. +settings.web_search.title=Cấu hình tìm kiếm web +settings.web_search.enabled=Đã bật +settings.web_search.zero_config_note=DuckDuckGo hoạt động mà không cần cài đặt. Chỉ chọn backend khác bên dưới nếu bạn muốn kết quả chất lượng cao hơn hoặc số lượng nhiều hơn và có khóa API cho dịch vụ đó. +settings.web_search.backend=Backend tìm kiếm settings.web_search.backend.duckduckgo=DuckDuckGo -settings.web_search.backend.duckduckgo.description=Free, no API key required. Privacy-respecting default. +settings.web_search.backend.duckduckgo.description=Miễn phí, không cần khóa API. Mặc định tôn trọng quyền riêng tư. settings.web_search.backend.brave=Brave Search -settings.web_search.backend.brave.description=Fast, independent index. Requires a free Brave Search API key. +settings.web_search.backend.brave.description=Nhanh, chỉ mục độc lập. Yêu cầu khóa API Brave Search miễn phí. settings.web_search.backend.tavily=Tavily -settings.web_search.backend.tavily.description=AI-optimised results with optional answer extraction. Requires a Tavily API key. +settings.web_search.backend.tavily.description=Kết quả được tối ưu hóa cho AI với tính năng trích xuất câu trả lời tùy chọn. Yêu cầu khóa API Tavily. settings.web_search.backend.searxng=SearxNG -settings.web_search.backend.searxng.description=Privacy-respecting meta-search via your own SearxNG instance. No API key needed. -settings.web_search.api_key=API Key -settings.web_search.api_key.placeholder=Paste your API key here -settings.web_search.get_api_key=Get a free API key ↗ -settings.web_search.endpoint=SearxNG Instance URL +settings.web_search.backend.searxng.description=Tìm kiếm meta tôn trọng quyền riêng tư qua phiên bản SearxNG của riêng bạn. Không cần khóa API. +settings.web_search.api_key=Khóa API +settings.web_search.api_key.placeholder=Dán khóa API của bạn vào đây +settings.web_search.get_api_key=Nhận khóa API miễn phí ↗ +settings.web_search.endpoint=URL phiên bản SearxNG settings.web_search.endpoint.placeholder=https\://search.example.com -settings.web_search.test=Test Search -settings.web_search.test.running=Testing... -settings.web_search.test.success=✅ Search is working +settings.web_search.test=Kiểm tra tìm kiếm +settings.web_search.test.running=Đang kiểm tra... +settings.web_search.test.success=✅ Tìm kiếm đang hoạt động settings.web_search.test.fail=❌ {0} # User Profile @@ -705,8 +705,7 @@ chat.reasoning.effort.medium.description=Cân bằng giữa độ sâu và tốc chat.reasoning.effort.high=Cao chat.reasoning.effort.high.description=Suy luận kỹ lưỡng, chi phí cao hơn. Tốt nhất cho việc giải quyết các vấn đề phức tạp. chat.input.placeholder=Nhập tin nhắn... (Enter để gửi, Shift+Enter để xuống dòng) -chat.input.placeholder.hint.search=Try\: "search the web for…" or paste a URL to read any page -chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here +chat.input.placeholder.hint.attach=Đính kèm tệp bằng {0}+A hoặc kéo và thả vào đây chat.select.file=Chọn tệp (nhiều tệp) chat.attachment.remove=Xóa tệp đính kèm chat.attachment.preview.loading=Đang tải bản xem trước… @@ -1074,6 +1073,7 @@ error.insufficient_credits=⚠️ Không đủ tín dụng\n\nSố dư tín dụ error.timeout=⚠️ Yêu cầu đã hết thời gian chờ sau {timeout} giây\n\nNguyên nhân có thể do\:\n• Máy chủ đang quá tải - hãy thử lại sau ít phút\n• Truy vấn quá phức tạp - hãy thử đơn giản hóa\n• Độ trễ mạng error.context_length=⚠️ Đã vượt quá cửa sổ ngữ cảnh (context window)\n\nTổng dữ liệu đầu vào (lịch sử trò chuyện + tin nhắn của bạn + tệp đính kèm) quá lớn để mô hình này có thể xử lý.\n\nĐể khắc phục\:\n• Bắt đầu một phiên trò chuyện mới để xóa lịch sử trò chuyện\n• Rút ngắn tin nhắn hoặc xóa các tệp đính kèm lớn\n• Nếu bạn đang sử dụng mô hình cục bộ (Ollama / LM Studio / Docker), hãy tăng kích thước ngữ cảnh trong phần cài đặt của mô hình đó\n• Chuyển sang mô hình có cửa sổ ngữ cảnh lớn hơn error.invalid_request=⚠️ Yêu cầu không hợp lệ\: {details}\n\nVui lòng kiểm tra nội dung nhập và thử lại. +error.local_server=⚠️ Lỗi máy chủ AI cục bộ\!\n\nTiến trình máy chủ AI đã bị sập hoặc không thể tải mô hình. Đây không phải lỗi do Askimo gây ra.\n\nNguyên nhân có thể\:\n• Tệp mô hình bị hỏng hoặc không đầy đủ — thử tải lại\n• Không đủ RAM/VRAM — thử lượng tử hóa nhỏ hơn (ví dụ\: Q4 thay vì Q8)\n• Định dạng mô hình không được hỗ trợ bởi phiên bản máy chủ hiện tại\n• Tiến trình máy chủ bị hệ điều hành kết thúc (hết bộ nhớ)\n\nCách xử lý\:\n1. Kiểm tra nhật ký máy chủ AI cục bộ của bạn\n2. Khởi động lại máy chủ và thử lại\n3. Tải lại mô hình\n4. Thử mô hình khác hoặc mức lượng tử hóa khác\n\nChi tiết kỹ thuật\: {details} error.system=⚠️ Lỗi hệ thống\n\nĐã xảy ra lỗi không mong muốn\: {errorCode}\n\nVui lòng liên hệ hỗ trợ Askimo và cung cấp\:\n• Bạn đang làm gì\n• Mã lỗi ở trên\n• Thời điểm xảy ra lỗi # Model Availability Errors From 9a8ba2a4990068bd660cf950e56e9f171a8b0802 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Mon, 27 Jul 2026 20:55:01 +0000 Subject: [PATCH 221/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index add8e21b1..003f1b88f 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -702,7 +702,6 @@ chat.reasoning.effort.medium.description=Balanced depth and speed. Suitable for chat.reasoning.effort.high=High chat.reasoning.effort.high.description=Thorough reasoning, higher cost. Best for complex problem-solving. chat.input.placeholder=Type your message... (Enter to send, Shift+Enter for new line) -chat.input.placeholder.hint.search=Try: "search the web for…" or paste a URL to read any page chat.input.placeholder.hint.attach=Attach files with {0}+A, or drag and drop them here chat.select.file=Select File(s) chat.attachment.remove=Remove attachment From b7dba75bcc143efe2feedf9e6b98f814df7fe6e1 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 28 Jul 2026 03:25:32 +0000 Subject: [PATCH 222/251] New translations messages.properties (French) [ci skip] --- .../src/main/resources/i18n/messages_fr.properties | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 0b570e9bd..6578a5a52 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -1150,6 +1150,20 @@ settings.models.description=Configurez le comportement global du modèle IA part settings.models.max.tool.calling.round.trips=Nombre maximal d'allers-retours d'appel d'outils settings.models.max.tool.calling.round.trips.hint=Nombre maximum d'appels d'outils que l'IA peut effectuer dans une seule réponse (défaut \: 10). Des valeurs plus élevées permettent des tâches d'agent plus complexes mais augmentent la latence et le coût. +# Memory Settings +settings.memory.title=Paramètres de mémoire +settings.memory.description=Contrôle la façon dont l'IA gère l'historique des conversations pour rester dans la fenêtre de contexte du modèle. +settings.memory.mode=Mode mémoire +settings.memory.mode.compact=Compact +settings.memory.mode.compact.hint=Coût en tokens réduit, moins de détails +settings.memory.mode.compact.description=Résumé agressif. Faible coût en tokens, résumé fréquent. Idéal pour les très longues sessions ou les modèles sensibles aux coûts. +settings.memory.mode.balanced=Équilibré +settings.memory.mode.balanced.hint=Bon équilibre qualité/coût +settings.memory.mode.balanced.description=Bon équilibre qualité/coût. Déclenche le résumé à 40 % du budget mémoire. Convient à la plupart des sessions. +settings.memory.mode.detail=Détaillé +settings.memory.mode.detail.hint=Haute fidélité, plus de tokens +settings.memory.mode.detail.description=Résumé minimal. Conserve plus de tours verbatim et des résumés plus riches. Idéal pour les sessions courtes ou lorsque le rappel précis est important. + ## Settings - Utility Models settings.utility.models.title=Modèles utilitaires settings.utility.models.uses.selected=(utilise le modèle sélectionné) From ae32603b66978c8228098767b757c842744ec0d4 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 28 Jul 2026 03:25:33 +0000 Subject: [PATCH 223/251] New translations messages.properties (Spanish) [ci skip] --- .../src/main/resources/i18n/messages_es.properties | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index 86335e398..f2e76e6a6 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -1150,6 +1150,20 @@ settings.models.description=Configura el comportamiento global de los modelos de settings.models.max.tool.calling.round.trips=Máximo de rondas de llamadas a herramientas settings.models.max.tool.calling.round.trips.hint=Número máximo de llamadas a herramientas que la IA puede realizar en una sola respuesta (predeterminado\: 10). Valores más altos permiten tareas de agente más complejas pero aumentan la latencia y el costo. +# Memory Settings +settings.memory.title=Configuración de memoria +settings.memory.description=Controla cómo la IA gestiona el historial de conversación para mantenerse dentro del contexto del modelo. +settings.memory.mode=Modo de memoria +settings.memory.mode.compact=Compacto +settings.memory.mode.compact.hint=Menor costo de tokens, menos detalle +settings.memory.mode.compact.description=Resumen agresivo. Menor costo de tokens, resume pronto y con frecuencia. Ideal para sesiones muy largas o modelos sensibles al costo. +settings.memory.mode.balanced=Equilibrado +settings.memory.mode.balanced.hint=Buen equilibrio calidad/costo +settings.memory.mode.balanced.description=Buen equilibrio calidad/costo. Activa el resumen al 40% del presupuesto de memoria. Adecuado para la mayoría de sesiones. +settings.memory.mode.detail=Detallado +settings.memory.mode.detail.hint=Alta fidelidad, más tokens +settings.memory.mode.detail.description=Resumen mínimo. Conserva más turnos literales y resúmenes más ricos. Ideal para sesiones cortas o cuando el recuerdo preciso es importante. + ## Settings - Utility Models settings.utility.models.title=Modelos de utilidad settings.utility.models.uses.selected=(usa el modelo seleccionado) From 327fd93d05b59b7ab8f4a5f9fdcae3d8bdcc4568 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 28 Jul 2026 03:25:35 +0000 Subject: [PATCH 224/251] New translations messages.properties (German) [ci skip] --- .../src/main/resources/i18n/messages_de.properties | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 78c787055..5ccaaacb4 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -1150,6 +1150,20 @@ settings.models.description=Konfigurieren Sie das globale KI-Modellverhalten, da settings.models.max.tool.calling.round.trips=Maximale Tool-Aufruf-Runden settings.models.max.tool.calling.round.trips.hint=Maximale Anzahl an Tool-Aufrufen, die die KI in einer einzelnen Antwort durchführen kann (Standard\: 10). Höhere Werte ermöglichen komplexere Agenten-Aufgaben, erhöhen jedoch Latenz und Kosten. +# Memory Settings +settings.memory.title=Speichereinstellungen +settings.memory.description=Steuert, wie die KI den Gesprächsverlauf verwaltet, um im Kontextfenster des Modells zu bleiben. +settings.memory.mode=Speichermodus +settings.memory.mode.compact=Kompakt +settings.memory.mode.compact.hint=Geringere Token-Kosten, weniger Details +settings.memory.mode.compact.description=Aggressives Zusammenfassen. Geringe Token-Kosten, häufiges Zusammenfassen. Ideal für sehr lange Sitzungen oder kostensensitive Modelle. +settings.memory.mode.balanced=Ausgewogen +settings.memory.mode.balanced.hint=Gutes Qualitäts-/Kostenverhältnis +settings.memory.mode.balanced.description=Gutes Qualitäts-/Kostenverhältnis. Löst die Zusammenfassung bei 40 % des Speicherbudgets aus. Geeignet für die meisten Sitzungen. +settings.memory.mode.detail=Detailliert +settings.memory.mode.detail.hint=Hohe Wiedergabetreue, mehr Tokens +settings.memory.mode.detail.description=Minimales Zusammenfassen. Behält mehr wörtliche Gesprächsrunden und reichhaltigere Zusammenfassungen bei. Ideal für kurze Sitzungen oder wenn präziser Abruf wichtig ist. + ## Settings - Utility Models settings.utility.models.title=Hilfsmodelle settings.utility.models.uses.selected=(verwendet das ausgewählte Modell) From 4395f665e16f75add15365fa4a07cf256f542472 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 28 Jul 2026 03:25:37 +0000 Subject: [PATCH 225/251] New translations messages.properties (Japanese) [ci skip] --- .../main/resources/i18n/messages_ja_JP.properties | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 530ea474b..adff23f60 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -1150,6 +1150,20 @@ settings.models.description=すべてのプロバイダーで共有されるグ settings.models.max.tool.calling.round.trips=最大ツール呼び出しラウンドトリップ数 settings.models.max.tool.calling.round.trips.hint=AI が 1 回の応答で実行できるツール呼び出しの最大回数です(デフォルト\: 10)。値を大きくするほど複雑なエージェントタスクが可能になりますが、レイテンシとコストが増加します。 +# Memory Settings +settings.memory.title=メモリ設定 +settings.memory.description=AIがモデルのコンテキストウィンドウ内に収まるよう会話履歴を管理する方法を制御します。 +settings.memory.mode=メモリモード +settings.memory.mode.compact=コンパクト +settings.memory.mode.compact.hint=トークンコストが低く、詳細が少ない +settings.memory.mode.compact.description=積極的な要約。トークンコストが低く、早期かつ頻繁に要約します。非常に長いセッションやコストに敏感なモデルに最適です。 +settings.memory.mode.balanced=バランス +settings.memory.mode.balanced.hint=品質とコストの良好なバランス +settings.memory.mode.balanced.description=品質とコストの良好なバランス。メモリ予算の40%で要約が実行されます。ほとんどのセッションに適しています。 +settings.memory.mode.detail=詳細 +settings.memory.mode.detail.hint=高精度、より多くのトークン +settings.memory.mode.detail.description=最小限の要約。より多くの原文の会話と豊富な要約を保持します。短いセッションや正確な記憶が重要な場合に最適です。 + ## Settings - Utility Models settings.utility.models.title=ユーティリティモデル settings.utility.models.uses.selected=(選択されたモデルを使用) From 18aba731d75609a00fc594ff31b31cec14f112d2 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 28 Jul 2026 03:25:39 +0000 Subject: [PATCH 226/251] New translations messages.properties (Korean) [ci skip] --- .../main/resources/i18n/messages_ko_KR.properties | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 1f9f52d1e..4bcb0015e 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -1150,6 +1150,20 @@ settings.models.description=모든 공급자에서 공유되는 전역 AI 모델 settings.models.max.tool.calling.round.trips=최대 도구 호출 라운드 트립 settings.models.max.tool.calling.round.trips.hint=AI가 단일 응답에서 수행할 수 있는 최대 도구 호출 횟수입니다 (기본값\: 10). 값이 높을수록 복잡한 에이전트 작업이 가능하지만 지연 시간과 비용이 증가합니다. +# Memory Settings +settings.memory.title=메모리 설정 +settings.memory.description=AI가 모델의 컨텍스트 창 안에서 대화 기록을 관리하는 방식을 제어합니다. +settings.memory.mode=메모리 모드 +settings.memory.mode.compact=간결 +settings.memory.mode.compact.hint=낮은 토큰 비용, 적은 상세 정보 +settings.memory.mode.compact.description=적극적 요약. 토큰 비용이 낮고 자주 요약합니다. 매우 긴 세션이나 비용에 민감한 모델에 적합합니다. +settings.memory.mode.balanced=균형 +settings.memory.mode.balanced.hint=품질과 비용의 적절한 균형 +settings.memory.mode.balanced.description=품질과 비용의 적절한 균형. 메모리 예산의 40%에서 요약이 시작됩니다. 대부분의 세션에 적합합니다. +settings.memory.mode.detail=상세 +settings.memory.mode.detail.hint=높은 정확도, 더 많은 토큰 +settings.memory.mode.detail.description=최소 요약. 더 많은 원문 대화와 풍부한 요약을 유지합니다. 짧은 세션이나 정확한 기억이 중요할 때 적합합니다. + ## Settings - Utility Models settings.utility.models.title=유틸리티 모델 settings.utility.models.uses.selected=(선택된 모델 사용) From 40302f009ea5b35f83e0d01399cfd9b3c5f4efff Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 28 Jul 2026 03:25:41 +0000 Subject: [PATCH 227/251] New translations messages.properties (Portuguese) [ci skip] --- .../src/main/resources/i18n/messages_pt.properties | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index 9c3176ba2..bd7ce23d3 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -1150,6 +1150,20 @@ settings.models.description=Configure global AI model behavior shared across all settings.models.max.tool.calling.round.trips=Max Tool-Calling Round Trips settings.models.max.tool.calling.round.trips.hint=Maximum number of tool calls the AI can make in a single response (default\: 10). Higher values allow more complex agent tasks but increase latency and cost. +# Memory Settings +settings.memory.title=Memory Settings +settings.memory.description=Controls how the AI manages conversation history to stay within the model's context window. +settings.memory.mode=Memory Mode +settings.memory.mode.compact=Compact +settings.memory.mode.compact.hint=Lower token cost, less detail +settings.memory.mode.compact.description=Aggressive summarization. Lower token cost, summarizes early and often. Best for very long sessions or cost-sensitive models. +settings.memory.mode.balanced=Balanced +settings.memory.mode.balanced.hint=Good quality/cost trade-off +settings.memory.mode.balanced.description=Good quality/cost trade-off. Fires summarization at 40% of the memory budget. Suitable for most sessions. +settings.memory.mode.detail=Detail +settings.memory.mode.detail.hint=High fidelity, more tokens +settings.memory.mode.detail.description=Minimal summarization. Keeps more verbatim turns and richer summaries. Best for short sessions or when precise recall matters. + ## Settings - Utility Models settings.utility.models.title=Utility Models settings.utility.models.uses.selected=(uses selected model) From 9d50a736bd3f66bf6aef29505d21cda88a7b5b11 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 28 Jul 2026 03:25:43 +0000 Subject: [PATCH 228/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../main/resources/i18n/messages_zh_CN.properties | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index b83072bd4..3e8da9551 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -1150,6 +1150,20 @@ settings.models.description=配置所有提供商共享的全局 AI 模型行为 settings.models.max.tool.calling.round.trips=最大工具调用轮次 settings.models.max.tool.calling.round.trips.hint=AI 在单次响应中可以进行的最大工具调用次数(默认:10)。值越高允许执行越复杂的智能体任务,但会增加延迟和成本。 +# Memory Settings +settings.memory.title=记忆设置 +settings.memory.description=控制 AI 如何管理对话历史以保持在模型上下文窗口范围内。 +settings.memory.mode=记忆模式 +settings.memory.mode.compact=紧凑 +settings.memory.mode.compact.hint=较低 token 消耗,细节较少 +settings.memory.mode.compact.description=积极摘要。token 消耗低,频繁摘要。适合超长会话或对成本敏感的模型。 +settings.memory.mode.balanced=均衡 +settings.memory.mode.balanced.hint=质量与成本的良好平衡 +settings.memory.mode.balanced.description=质量与成本的良好平衡。在记忆预算的 40% 时触发摘要。适合大多数会话。 +settings.memory.mode.detail=详细 +settings.memory.mode.detail.hint=高保真,更多 token +settings.memory.mode.detail.description=最少摘要。保留更多原文对话和更丰富的摘要。适合短会话或需要精确记忆的场景。 + ## Settings - Utility Models settings.utility.models.title=实用模型 settings.utility.models.uses.selected=(使用所选模型) From 15644b9591a76fddf413b63a36ee9b02fe156a07 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 28 Jul 2026 03:25:44 +0000 Subject: [PATCH 229/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../main/resources/i18n/messages_zh_TW.properties | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 57ccc66e3..0f15d5bbf 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -1150,6 +1150,20 @@ settings.models.description=設定所有提供商共享的全域 AI 模型行為 settings.models.max.tool.calling.round.trips=最大工具呼叫來回次數 settings.models.max.tool.calling.round.trips.hint=AI 在單次回應中可執行的最大工具呼叫次數(預設:10)。值越高可執行越複雜的智能體任務,但會增加延遲與成本。 +# Memory Settings +settings.memory.title=記憶設定 +settings.memory.description=控制 AI 如何管理對話歷史以保持在模型上下文視窗範圍內。 +settings.memory.mode=記憶模式 +settings.memory.mode.compact=精簡 +settings.memory.mode.compact.hint=較低 token 消耗,細節較少 +settings.memory.mode.compact.description=積極摘要。token 消耗低,頻繁摘要。適合超長會話或對成本敏感的模型。 +settings.memory.mode.balanced=均衡 +settings.memory.mode.balanced.hint=品質與成本的良好平衡 +settings.memory.mode.balanced.description=品質與成本的良好平衡。在記憶預算的 40% 時觸發摘要。適合大多數會話。 +settings.memory.mode.detail=詳細 +settings.memory.mode.detail.hint=高保真,更多 token +settings.memory.mode.detail.description=最少摘要。保留更多原文對話和更豐富的摘要。適合短會話或需要精確記憶的場景。 + ## Settings - Utility Models settings.utility.models.title=工具模型 settings.utility.models.uses.selected=(使用所選模型) From 09aa77fa332e9e9208548f6d50c429cbb1be3bf7 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 28 Jul 2026 03:25:46 +0000 Subject: [PATCH 230/251] New translations messages.properties (Vietnamese) [ci skip] --- .../main/resources/i18n/messages_vi_VN.properties | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 977d0679f..ccebab348 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -1150,6 +1150,20 @@ settings.models.description=Cấu hình hành vi mô hình AI toàn cục đư settings.models.max.tool.calling.round.trips=Số lượt gọi công cụ tối đa settings.models.max.tool.calling.round.trips.hint=Số lần gọi công cụ tối đa mà AI có thể thực hiện trong một phản hồi (mặc định\: 10). Giá trị cao hơn cho phép các tác vụ agent phức tạp hơn nhưng tăng độ trễ và chi phí. +# Memory Settings +settings.memory.title=Cài đặt bộ nhớ +settings.memory.description=Kiểm soát cách AI quản lý lịch sử hội thoại để duy trì trong cửa sổ ngữ cảnh của mô hình. +settings.memory.mode=Chế độ bộ nhớ +settings.memory.mode.compact=Gọn nhẹ +settings.memory.mode.compact.hint=Chi phí token thấp, ít chi tiết hơn +settings.memory.mode.compact.description=Tóm tắt tích cực. Chi phí token thấp, tóm tắt sớm và thường xuyên. Phù hợp cho các phiên rất dài hoặc mô hình nhạy cảm với chi phí. +settings.memory.mode.balanced=Cân bằng +settings.memory.mode.balanced.hint=Cân bằng tốt giữa chất lượng và chi phí +settings.memory.mode.balanced.description=Cân bằng tốt giữa chất lượng và chi phí. Kích hoạt tóm tắt ở 40% ngân sách bộ nhớ. Phù hợp với hầu hết các phiên. +settings.memory.mode.detail=Chi tiết +settings.memory.mode.detail.hint=Độ trung thực cao, nhiều token hơn +settings.memory.mode.detail.description=Tóm tắt tối thiểu. Giữ lại nhiều lượt hội thoại nguyên văn và tóm tắt phong phú hơn. Phù hợp cho các phiên ngắn hoặc khi cần nhớ chính xác. + ## Settings - Utility Models settings.utility.models.title=Mô hình tiện ích settings.utility.models.uses.selected=(sử dụng mô hình đã chọn) From b3a823e6bbd7f79dcaae2d0e1e521fad434591ca Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Tue, 28 Jul 2026 04:28:48 +0000 Subject: [PATCH 231/251] Update source file messages.properties [ci skip] --- .../src/main/resources/i18n/messages.properties | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 003f1b88f..54376c131 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -1147,6 +1147,20 @@ settings.models.description=Configure global AI model behavior shared across all settings.models.max.tool.calling.round.trips=Max Tool-Calling Round Trips settings.models.max.tool.calling.round.trips.hint=Maximum number of tool calls the AI can make in a single response (default: 10). Higher values allow more complex agent tasks but increase latency and cost. +# Memory Settings +settings.memory.title=Memory Settings +settings.memory.description=Controls how the AI manages conversation history to stay within the model's context window. +settings.memory.mode=Memory Mode +settings.memory.mode.compact=Compact +settings.memory.mode.compact.hint=Lower token cost, less detail +settings.memory.mode.compact.description=Aggressive summarization. Lower token cost, summarizes early and often. Best for very long sessions or cost-sensitive models. +settings.memory.mode.balanced=Balanced +settings.memory.mode.balanced.hint=Good quality/cost trade-off +settings.memory.mode.balanced.description=Good quality/cost trade-off. Fires summarization at 40% of the memory budget. Suitable for most sessions. +settings.memory.mode.detail=Detail +settings.memory.mode.detail.hint=High fidelity, more tokens +settings.memory.mode.detail.description=Minimal summarization. Keeps more verbatim turns and richer summaries. Best for short sessions or when precise recall matters. + ## Settings - Utility Models settings.utility.models.title=Utility Models settings.utility.models.uses.selected=(uses selected model) From ad2d3936470b2a0bec4a919f755f1cb77e10bcec Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:57:15 +0000 Subject: [PATCH 232/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index 54376c131..c2792ea26 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -1091,6 +1091,8 @@ error.send_message.title=Failed to Send Message # Indexing Errors error.indexing.model_not_found.title=Embedding Model Not Found error.indexing.model_not_found.message=The embedding model ''{0}'' was not found. Please pull or enable this embedding model from {1} before indexing. +error.indexing.input_too_large.title=Embedding Input Too Large +error.indexing.input_too_large.message=The embedding model rejected one or more segments from [{0}] because the token count exceeds the model''s maximum context size. Reduce the chunk size in Settings → Indexing → Max chars per chunk, then re-index. error.indexing.io_error.title=IO Error error.indexing.io_error.message=An IO error occurred during indexing error.indexing.unknown.title=Indexing Error From 25188e3ea062fb4e6cd6fdf1a14147c16a1f3c6f Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:57:18 +0000 Subject: [PATCH 233/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 6578a5a52..70d0075af 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -1094,6 +1094,8 @@ error.send_message.title=Échec de l’envoi du message # Indexing Errors error.indexing.model_not_found.title=Modèle d’embedding introuvable error.indexing.model_not_found.message=Le modèle d’embedding ''{0}'' est introuvable. Veuillez télécharger ou activer ce modèle depuis {1} avant l’indexation. +error.indexing.input_too_large.title=Entrée d'embedding trop grande +error.indexing.input_too_large.message=Le modèle d''embedding a rejeté un ou plusieurs segments de [{0}] car le nombre de jetons dépasse la taille maximale de contexte du modèle. Réduisez la taille des segments dans Paramètres → Indexation → Max. caractères par segment, puis relancez l''indexation. error.indexing.io_error.title=Erreur d’E/S error.indexing.io_error.message=Une erreur d’E/S s’est produite lors de l’indexation error.indexing.unknown.title=Erreur d’indexation From bc0a9c0cc13929a8008606998e38fb1a960b5adc Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:57:19 +0000 Subject: [PATCH 234/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index f2e76e6a6..e03959f40 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -1094,6 +1094,8 @@ error.send_message.title=No se pudo enviar el mensaje # Indexing Errors error.indexing.model_not_found.title=Modelo de incrustación no encontrado error.indexing.model_not_found.message=No se encontró el modelo de incrustación ''{0}''. Descarga o habilita este modelo desde {1} antes de iniciar la indexación. +error.indexing.input_too_large.title=Entrada de embedding demasiado grande +error.indexing.input_too_large.message=El modelo de embedding rechazó uno o más segmentos de [{0}] porque el recuento de tokens supera el tamaño máximo de contexto del modelo. Reduzca el tamaño del fragmento (chunk) en Ajustes → Indexación → Máx. caracteres por fragmento, luego vuelva a indexar. error.indexing.io_error.title=Error de E/S error.indexing.io_error.message=Se produjo un error de E/S durante la indexación error.indexing.unknown.title=Error de indexación From caddf73522902c27a1507ae8965751db8dc6695c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:57:21 +0000 Subject: [PATCH 235/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index 5ccaaacb4..d3aa9b987 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -1094,6 +1094,8 @@ error.send_message.title=Nachricht konnte nicht gesendet werden # Indexing Errors error.indexing.model_not_found.title=Einbettungsmodell nicht gefunden error.indexing.model_not_found.message=Das Einbettungsmodell ''{0}'' wurde nicht gefunden. Bitte laden oder aktivieren Sie dieses Einbettungsmodell von {1}, bevor Sie mit der Indexierung beginnen. +error.indexing.input_too_large.title=Embedding-Eingabe zu groß +error.indexing.input_too_large.message=Das Embedding-Modell hat ein oder mehrere Segmente aus [{0}] abgelehnt, da die Token-Anzahl die maximale Kontextgröße des Modells überschreitet. Reduzieren Sie die Chunk-Größe unter Einstellungen → Indexierung → Max. Zeichen pro Chunk und führen Sie die Indizierung erneut aus. error.indexing.io_error.title=E/A-Fehler error.indexing.io_error.message=Während der Indexierung ist ein E/A-Fehler aufgetreten error.indexing.unknown.title=Indexierungsfehler From 90017c9fc3f1bc357f075585b8d71e418be61f7d Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:57:22 +0000 Subject: [PATCH 236/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index adff23f60..824de1ba7 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -1094,6 +1094,8 @@ error.send_message.title=メッセージの送信に失敗しました # Indexing Errors error.indexing.model_not_found.title=埋め込みモデルが見つかりません error.indexing.model_not_found.message=埋め込みモデル ''{0}'' が見つかりません。インデックス作成の前に、{1} からこのモデルを取得または有効化してください。 +error.indexing.input_too_large.title=埋め込み入力が大きすぎます +error.indexing.input_too_large.message=トークン数がモデルの最大コンテキストサイズを超えているため、埋め込みモデルが [{0}] からの1つ以上のセグメントを拒否しました。設定 → インデックス作成 → チャンクあたりの最大文字数でチャンクサイズを減らしてから、再インデックスしてください。 error.indexing.io_error.title=IO エラー error.indexing.io_error.message=インデックス作成中に IO エラーが発生しました error.indexing.unknown.title=インデックスエラー From 21fbbfcb9755d6169c4af8636af37de79917f2ad Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:57:24 +0000 Subject: [PATCH 237/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index 4bcb0015e..b83398851 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -1094,6 +1094,8 @@ error.send_message.title=메시지 전송 실패 # Indexing Errors error.indexing.model_not_found.title=임베딩 모델을 찾을 수 없음 error.indexing.model_not_found.message=임베딩 모델 ''{0}''을(를) 찾을 수 없습니다. 인덱싱 전에 {1}에서 해당 모델을 다운로드하거나 활성화하세요. +error.indexing.input_too_large.title=임베딩 입력이 너무 큼 +error.indexing.input_too_large.message=토큰 수가 모델의 최대 컨텍스트 크기를 초과하여 임베딩 모델이 [{0}]의 하나 이상의 세그먼트를 거부했습니다. 설정 → 인덱싱 → 청크당 최대 문자 수에서 청크 크기를 줄인 후 다시 인덱싱하십시오. error.indexing.io_error.title=IO 오류 error.indexing.io_error.message=인덱싱 중 IO 오류가 발생했습니다 error.indexing.unknown.title=인덱싱 오류 From 08a730b1d4c722c34e940e5d2eeb079bf80d6b20 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:57:25 +0000 Subject: [PATCH 238/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index bd7ce23d3..bffe716aa 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -1094,6 +1094,8 @@ error.send_message.title=Failed to Send Message # Indexing Errors error.indexing.model_not_found.title=Embedding Model Not Found error.indexing.model_not_found.message=The embedding model ''{0}'' was not found. Please pull or enable this embedding model from {1} before indexing. +error.indexing.input_too_large.title=Embedding Input Too Large +error.indexing.input_too_large.message=The embedding model rejected one or more segments from [{0}] because the token count exceeds the model''s maximum context size. Reduce the chunk size in Settings → Indexing → Max chars per chunk, then re-index. error.indexing.io_error.title=IO Error error.indexing.io_error.message=An IO error occurred during indexing error.indexing.unknown.title=Indexing Error From 33dbda88bf1e989762d39dfe9ef7d7c361efbdcc Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:57:27 +0000 Subject: [PATCH 239/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index 3e8da9551..da4a92d62 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -1094,6 +1094,8 @@ error.send_message.title=发送消息失败 # Indexing Errors error.indexing.model_not_found.title=未找到嵌入模型 error.indexing.model_not_found.message=未找到嵌入模型 ''{0}''。请在索引前从 {1} 下载或启用该模型。 +error.indexing.input_too_large.title=嵌入输入过大 +error.indexing.input_too_large.message=由于 token 计数超过了模型的最大上下文大小,嵌入模型拒绝了来自 [{0}] 的一个或多个片段。请在 设置 → 索引 → 每个分块的最大字符数 中减小分块大小,然后重新索引。 error.indexing.io_error.title=IO 错误 error.indexing.io_error.message=索引过程中发生 IO 错误 error.indexing.unknown.title=索引错误 From fe6d4d0ea115b2121c1c60aeb57aa3e890caae2f Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:57:28 +0000 Subject: [PATCH 240/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 0f15d5bbf..6e16fc9f5 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -1094,6 +1094,8 @@ error.send_message.title=傳送訊息失敗 # Indexing Errors error.indexing.model_not_found.title=找不到嵌入模型 error.indexing.model_not_found.message=找不到嵌入模型 ''{0}''。請在索引前從 {1} 下載或啟用此模型。 +error.indexing.input_too_large.title=嵌入輸入過大 +error.indexing.input_too_large.message=由於 token 計數超過了模型的最大上下文大小,嵌入模型拒絕了來自 [{0}] 的一個或多個片段。請在 設定 → 索引 → 每個分塊的最大字元數 中減小分塊大小,然後重新索引。 error.indexing.io_error.title=IO 錯誤 error.indexing.io_error.message=索引過程中發生 IO 錯誤 error.indexing.unknown.title=索引錯誤 From dffb4757655812b4f4f6c63d90d54ce3c6e37e12 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 00:57:30 +0000 Subject: [PATCH 241/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index ccebab348..333af30a0 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -1094,6 +1094,8 @@ error.send_message.title=Gửi tin nhắn thất bại # Indexing Errors error.indexing.model_not_found.title=Không tìm thấy mô hình embedding error.indexing.model_not_found.message=Không tìm thấy mô hình embedding ''{0}''. Vui lòng tải hoặc bật mô hình này từ {1} trước khi lập chỉ mục. +error.indexing.input_too_large.title=Dữ liệu đầu vào embedding quá lớn +error.indexing.input_too_large.message=Mô hình embedding đã từ chối một hoặc nhiều phân đoạn từ [{0}] vì số lượng token vượt quá kích thước ngữ cảnh tối đa của mô hình. Hãy giảm kích thước đoạn (chunk) trong Cài đặt → Đánh chỉ mục → Số ký tự tối đa mỗi đoạn, sau đó thực hiện đánh chỉ mục lại. error.indexing.io_error.title=Lỗi IO error.indexing.io_error.message=Đã xảy ra lỗi IO trong quá trình lập chỉ mục error.indexing.unknown.title=Lỗi lập chỉ mục From a60abba47557d5ae08f599887823bb7e7d590805 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 06:26:19 +0000 Subject: [PATCH 242/251] New translations messages.properties (French) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_fr.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_fr.properties b/desktop-shared/src/main/resources/i18n/messages_fr.properties index 70d0075af..0210845bc 100644 --- a/desktop-shared/src/main/resources/i18n/messages_fr.properties +++ b/desktop-shared/src/main/resources/i18n/messages_fr.properties @@ -1066,7 +1066,7 @@ export.format.html.benefit.4=Facile à partager # Error Messages error.network=⚠️ Impossible de se connecter au service IA{endpoint}\n\nVeuillez vérifier \:\n• Votre connexion Internet\n• L’URL du service IA (vérifiez les paramètres)\n• Les paramètres du pare-feu\n• La disponibilité du service error.authentication=⚠️ La clé API est manquante ou invalide{provider}\n\nCorrigez cela en configurant votre clé API dans les paramètres. -error.model_configuration=⚠️ Erreur de configuration du modèle \: {issue}\n\nPour corriger \:\n1. Ouvrez les paramètres\n2. Sélectionnez un fournisseur IA\n3. Choisissez un modèle dans la liste +error.model_not_found=⚠️ Modèle introuvable \: {model}\n\nCe modèle a peut-être été déprécié ou supprimé par le fournisseur. Veuillez sélectionner un autre modèle. error.provider_not_configured=⚠️ Aucun fournisseur IA configuré.\n\nPour commencer à discuter \:\n1. Ouvrez les paramètres\n2. Sélectionnez un fournisseur IA (OpenAI, Ollama, Anthropic, etc.)\n3. Entrez votre clé API ou configurez la connexion error.rate_limit=⚠️ Limite d’utilisation atteinte\n{retryAfter}\n\nVous avez atteint votre limite d’utilisation de l’API. Veuillez patienter avant d’envoyer d’autres messages. error.insufficient_credits=⚠️ Crédits insuffisants\n\nVotre solde est trop faible pour utiliser ce fournisseur.\n\nVisitez la page de facturation pour ajouter des crédits. From 4c0a330ede291eb822885f5bb2e239ce4d8df8c8 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 06:26:21 +0000 Subject: [PATCH 243/251] New translations messages.properties (Spanish) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_es.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_es.properties b/desktop-shared/src/main/resources/i18n/messages_es.properties index e03959f40..cf002082f 100644 --- a/desktop-shared/src/main/resources/i18n/messages_es.properties +++ b/desktop-shared/src/main/resources/i18n/messages_es.properties @@ -1066,7 +1066,7 @@ export.format.html.benefit.4=Fácil de compartir # Error Messages error.network=⚠️ No se puede conectar al servicio de IA{endpoint}\n\nPor favor, compruebe\:\n• Su conexión a Internet\n• La URL del servicio de IA (revise la configuración)\n• La configuración del firewall\n• La disponibilidad del servicio error.authentication=⚠️ La clave API no es válida o falta{provider}\n\nSolucione esto configurando su clave API en Ajustes. -error.model_configuration=⚠️ Error de configuración del modelo\: {issue}\n\nSolución\:\n1. Abrir Ajustes\n2. Seleccionar un proveedor de IA\n3. Elegir un modelo de la lista +error.model_not_found=⚠️ Modelo no encontrado\: {model}\n\nEste modelo puede haber sido desactivado o eliminado por el proveedor. Por favor, seleccione un modelo diferente. error.provider_not_configured=⚠️ No hay ningún proveedor de IA configurado.\n\nPara comenzar a chatear\:\n1. Abre los Ajustes\n2. Selecciona un proveedor de IA (OpenAI, Ollama, Anthropic, etc.)\n3. Introduce tu API key o configura la conexión error.rate_limit=⚠️ Límite de uso excedido\n{retryAfter}\n\nHa alcanzado su límite de uso de la API. Espere antes de enviar más mensajes. error.insufficient_credits=⚠️ Créditos insuficientes\n\nSu saldo de créditos es demasiado bajo.\n\nVaya a la página de facturación para añadir créditos. From caf47cc2cb8173247e0faff872b6cdb689844388 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 06:26:23 +0000 Subject: [PATCH 244/251] New translations messages.properties (German) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_de.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_de.properties b/desktop-shared/src/main/resources/i18n/messages_de.properties index d3aa9b987..6f21217e4 100644 --- a/desktop-shared/src/main/resources/i18n/messages_de.properties +++ b/desktop-shared/src/main/resources/i18n/messages_de.properties @@ -1066,7 +1066,7 @@ export.format.html.benefit.4=Einfach zu teilen # Error Messages error.network=⚠️ Verbindung zum KI-Dienst{endpoint} konnte nicht hergestellt werden\n\nBitte überprüfen Sie\:\n• Ihre Internetverbindung\n• Die URL des KI-Dienstes (Einstellungen prüfen)\n• Firewall-Einstellungen\n• Die Verfügbarkeit des Dienstes error.authentication=⚠️ API-Schlüssel ist ungültig oder fehlt{provider}\n\nBeheben Sie dies, indem Sie Ihren API-Schlüssel in den Einstellungen festlegen. -error.model_configuration=⚠️ Fehler in der Modellkonfiguration\: {issue}\n\nBeheben Sie dies durch\:\n1. Öffnen der Einstellungen\n2. Auswahl eines KI-Anbieters\n3. Auswahl eines Modells aus der Liste +error.model_not_found=⚠️ Modell nicht gefunden\: {model}\n\nDieses Modell wurde möglicherweise vom Anbieter veraltet oder entfernt. Bitte wählen Sie ein anderes Modell aus. error.provider_not_configured=⚠️ Kein KI-Anbieter konfiguriert.\n\nUm zu chatten\:\n1. Öffnen Sie die Einstellungen\n2. Wählen Sie einen KI-Anbieter (OpenAI, Ollama, Anthropic usw.)\n3. Geben Sie Ihren API-Schlüssel ein oder konfigurieren Sie die Verbindung error.rate_limit=⚠️ Ratenlimit überschritten\n{retryAfter}\n\nSie haben Ihr API-Nutzungslimit erreicht. Bitte warten Sie, bevor Sie weitere Nachrichten senden. error.insufficient_credits=⚠️ Unzureichendes Guthaben\n\nIhr Guthaben ist zu niedrig, um diesen KI-Anbieter zu nutzen.\n\nBitte gehen Sie zur Abrechnungsseite Ihres Anbieters. From 11760bbafb83344bab8d44d3616d6d9156d8426c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 06:26:24 +0000 Subject: [PATCH 245/251] New translations messages.properties (Japanese) [ci skip] --- .../src/main/resources/i18n/messages_ja_JP.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties index 824de1ba7..fef5b178a 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ja_JP.properties @@ -1066,7 +1066,7 @@ export.format.html.benefit.4=共有が簡単 # Error Messages error.network=⚠️ AI サービス{endpoint}に接続できません\n\n次をご確認ください:\n• インターネット接続\n• AI サービスの URL(設定を確認)\n• ファイアウォール設定\n• サービスの稼働状況 error.authentication=⚠️ API キーが無効、または設定されていません{provider}\n\n設定画面で API キーを入力すると解決できます。 -error.model_configuration=⚠️ モデル設定エラー:{issue}\n\n次の手順で修正してください:\n1. 設定を開く\n2. AI プロバイダーを選択\n3. 一覧からモデルを選ぶ +error.model_not_found=⚠️ モデルが見つかりません:{model}\n\nこのモデルはプロバイダーによって廃止または削除された可能性があります。別のモデルを選択してください。 error.provider_not_configured=⚠️ AI プロバイダーが設定されていません。\n\nチャットを開始するには:\n1. 設定を開く\n2. AI プロバイダーを選択(OpenAI、Ollama、Anthropic など)\n3. API キーを入力するか接続を設定する error.rate_limit=⚠️ レート制限を超えました\n{retryAfter}\n\nAPI の利用上限に達しました。しばらく待ってから、もう一度送信してください。 error.insufficient_credits=⚠️ クレジット残高不足\n\nクレジット残高が不足しています。\n\n請求ページでクレジットを追加してください。 From 7973bdde4210673e2ea86e1694f9fe14a3f0eed6 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 06:26:26 +0000 Subject: [PATCH 246/251] New translations messages.properties (Korean) [ci skip] --- .../src/main/resources/i18n/messages_ko_KR.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties index b83398851..b21220203 100644 --- a/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties +++ b/desktop-shared/src/main/resources/i18n/messages_ko_KR.properties @@ -1066,7 +1066,7 @@ export.format.html.benefit.4=공유하기 쉬움 # Error Messages error.network=⚠️ AI 서비스{endpoint}에 연결할 수 없습니다\n\n다음을 확인하세요\:\n• 인터넷 연결 상태\n• AI 서비스 URL (설정 확인)\n• 방화벽 설정\n• 서비스 사용 가능 여부 error.authentication=⚠️ API 키가 없거나 유효하지 않습니다{provider}\n\n설정에서 API 키를 입력하면 해결할 수 있습니다. -error.model_configuration=⚠️ 모델 구성 오류\: {issue}\n\n다음 방법으로 해결하세요\:\n1. 설정 열기\n2. AI 제공자 선택\n3. 목록에서 모델 선택 +error.model_not_found=⚠️ 모델을 찾을 수 없습니다\: {model}\n\n이 모델은 제공업체에 의해 더 이상 사용되지 않거나 제거되었을 수 있습니다. 다른 모델을 선택해 주세요. error.provider_not_configured=⚠️ AI 제공자가 설정되지 않았습니다.\n\n채팅을 시작하려면\:\n1. 설정 열기\n2. AI 제공자 선택 (OpenAI, Ollama, Anthropic 등)\n3. API 키 입력 또는 연결 설정 error.rate_limit=⚠️ 사용량 제한을 초과했습니다\n{retryAfter}\n\nAPI 사용 한도에 도달했습니다. 잠시 기다린 후 다시 메시지를 보내세요. error.insufficient_credits=⚠️ 크레딧 부족\n\n크레딧 잔액이 너무 낮습니다.\n\n결제 페이지를 방문하여 크레딧을 추가하세요. From 118b0eb496caee0602bcabf20cdeb58ebe289895 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 06:26:27 +0000 Subject: [PATCH 247/251] New translations messages.properties (Portuguese) [ci skip] --- desktop-shared/src/main/resources/i18n/messages_pt.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_pt.properties b/desktop-shared/src/main/resources/i18n/messages_pt.properties index bffe716aa..99f7a162c 100644 --- a/desktop-shared/src/main/resources/i18n/messages_pt.properties +++ b/desktop-shared/src/main/resources/i18n/messages_pt.properties @@ -1066,7 +1066,7 @@ export.format.html.benefit.4=Easy to share # Error Messages error.network=⚠️ Cannot connect to AI service{endpoint}\n\nPlease check\:\n• Your internet connection\n• AI service URL (check settings)\n• Firewall settings\n• Service availability error.authentication=⚠️ API key is invalid or missing{provider}\n\nFix this by setting your API key in Settings. -error.model_configuration=⚠️ Model configuration error\: {issue}\n\nFix this by\:\n1. Opening Settings\n2. Selecting an AI provider\n3. Choosing a model from the list +error.model_not_found=⚠️ Model not found\: {model}\n\nThis model may have been deprecated or removed by the provider. Please select a different model. error.provider_not_configured=⚠️ No AI provider configured.\n\nTo start chatting\:\n1. Open Settings\n2. Select an AI provider (OpenAI, Ollama, Anthropic, etc.)\n3. Enter your API key or configure the connection error.rate_limit=⚠️ Rate limit exceeded\n{retryAfter}\n\nYou''ve reached your API usage limit. Please wait before sending more messages. error.insufficient_credits=⚠️ Insufficient API credits\n\nYour credit balance has been exhausted.\n\nPlease go to Plans & Billing to top up your credits.\n\nerror.timeout\=⚠️ Request timed out after {timeout} seconds\n\nThis might be due to\:\n• High server load - try again in a moment\n• Complex query - try simplifying\n• Network latency From 8455f225454f015137101c786d63996afe1c3882 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 06:26:29 +0000 Subject: [PATCH 248/251] New translations messages.properties (Chinese Simplified) [ci skip] --- .../src/main/resources/i18n/messages_zh_CN.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties index da4a92d62..428a01e62 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_CN.properties @@ -1066,7 +1066,7 @@ export.format.html.benefit.4=易于分享 # Error Messages error.network=⚠️ 无法连接到 AI 服务{endpoint}\n\n请检查:\n• 网络连接\n• AI 服务地址(检查设置)\n• 防火墙设置\n• 服务是否可用 error.authentication=⚠️ API 密钥无效或缺失{provider}\n\n请在设置中配置您的 API 密钥以解决此问题。 -error.model_configuration=⚠️ 模型配置错误:{issue}\n\n解决方法:\n1. 打开设置\n2. 选择 AI 提供商\n3. 从列表中选择模型 +error.model_not_found=⚠️ 未找到模型:{model}\n\n该模型可能已被提供商弃用或删除。请选择其他模型。 error.provider_not_configured=⚠️ 尚未配置 AI 提供商。\n\n开始聊天需要:\n1. 打开设置\n2. 选择 AI 提供商(OpenAI、Ollama、Anthropic 等)\n3. 输入 API Key 或配置连接 error.rate_limit=⚠️ 已超过速率限制\n{retryAfter}\n\n您已达到 API 使用上限,请稍后再发送消息。 error.insufficient_credits=⚠️ 积分不足\n\n您的积分余额过低。\n\n请前往提供商的账单页面充值。 From 9312623347faf15849155584d7d752a321fc7ead Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 06:26:31 +0000 Subject: [PATCH 249/251] New translations messages.properties (Chinese Traditional) [ci skip] --- .../src/main/resources/i18n/messages_zh_TW.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties index 6e16fc9f5..acb152136 100644 --- a/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties +++ b/desktop-shared/src/main/resources/i18n/messages_zh_TW.properties @@ -1066,7 +1066,7 @@ export.format.html.benefit.4=容易分享 # Error Messages error.network=⚠️ 無法連線至 AI 服務{endpoint}\n\n請檢查:\n• 網路連線\n• AI 服務位址(請確認設定)\n• 防火牆設定\n• 服務是否可用 error.authentication=⚠️ API 金鑰無效或缺失{provider}\n\n請至設定中設定您的 API 金鑰以解決此問題。 -error.model_configuration=⚠️ 模型設定錯誤:{issue}\n\n請依以下步驟修正:\n1. 開啟設定\n2. 選擇 AI 提供商\n3. 從清單中選擇模型 +error.model_not_found=⚠️ 找不到模型:{model}\n\n此模型可能已被提供商棄用或刪除。請選擇其他模型。 error.provider_not_configured=⚠️ 尚未設定 AI 提供商。\n\n開始聊天需要:\n1. 開啟設定\n2. 選擇 AI 提供商(OpenAI、Ollama、Anthropic 等)\n3. 輸入 API 金鑰或設定連線 error.rate_limit=⚠️ 已超過使用速率限制\n{retryAfter}\n\n您已達到 API 使用上限,請稍後再嘗試傳送訊息。 error.insufficient_credits=⚠️ 積分不足\n\n您的積分餘額過低。\n\n請前往提供商的帳單頁面充值。 From ba64dd62f6fe4a21cb95ec078cc8bea7323cf81c Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 06:26:32 +0000 Subject: [PATCH 250/251] New translations messages.properties (Vietnamese) [ci skip] --- .../src/main/resources/i18n/messages_vi_VN.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties index 333af30a0..bd1fd7065 100644 --- a/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties +++ b/desktop-shared/src/main/resources/i18n/messages_vi_VN.properties @@ -1066,7 +1066,7 @@ export.format.html.benefit.4=Dễ chia sẻ # Error Messages error.network=⚠️ Không thể kết nối tới dịch vụ AI{endpoint}\n\nVui lòng kiểm tra\:\n• Kết nối internet của bạn\n• URL dịch vụ AI (kiểm tra cài đặt)\n• Cấu hình tường lửa\n• Trạng thái hoạt động của dịch vụ error.authentication=⚠️ API key bị thiếu hoặc không hợp lệ{provider}\n\nHãy vào Cài đặt để thiết lập API key của bạn. -error.model_configuration=⚠️ Lỗi cấu hình mô hình\: {issue}\n\nCách khắc phục\:\n1. Mở Cài đặt\n2. Chọn nhà cung cấp AI\n3. Chọn một mô hình từ danh sách +error.model_not_found=⚠️ Không tìm thấy mô hình\: {model}\n\nMô hình này có thể đã bị ngừng sử dụng hoặc xóa bởi nhà cung cấp. Vui lòng chọn mô hình khác. error.provider_not_configured=⚠️ Chưa cấu hình nhà cung cấp AI.\n\nĐể bắt đầu trò chuyện\:\n1. Mở Cài đặt\n2. Chọn nhà cung cấp AI (OpenAI, Ollama, Anthropic, v.v.)\n3. Nhập API key hoặc cấu hình kết nối error.rate_limit=⚠️ Đã vượt giới hạn tốc độ\n{retryAfter}\n\nBạn đã đạt giới hạn sử dụng API. Vui lòng chờ một chút trước khi gửi thêm tin nhắn. error.insufficient_credits=⚠️ Không đủ tín dụng\n\nSố dư tín dụng quá thấp.\n\nVui lòng truy cập trang thanh toán để thêm tín dụng. From 080e456448d0b9777f9149a76de8ab2ef5f4a852 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Wed, 29 Jul 2026 08:34:44 +0000 Subject: [PATCH 251/251] Update source file messages.properties [ci skip] --- desktop-shared/src/main/resources/i18n/messages.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop-shared/src/main/resources/i18n/messages.properties b/desktop-shared/src/main/resources/i18n/messages.properties index c2792ea26..08a3dca08 100644 --- a/desktop-shared/src/main/resources/i18n/messages.properties +++ b/desktop-shared/src/main/resources/i18n/messages.properties @@ -1063,7 +1063,7 @@ export.format.html.benefit.4=Easy to share # Error Messages error.network=⚠️ Cannot connect to AI service{endpoint}\n\nPlease check:\n• Your internet connection\n• AI service URL (check settings)\n• Firewall settings\n• Service availability error.authentication=⚠️ API key is invalid or missing{provider}\n\nFix this by setting your API key in Settings. -error.model_configuration=⚠️ Model configuration error: {issue}\n\nFix this by:\n1. Opening Settings\n2. Selecting an AI provider\n3. Choosing a model from the list +error.model_not_found=⚠️ Model not found: {model}\n\nThis model may have been deprecated or removed by the provider. Please select a different model. error.provider_not_configured=⚠️ No AI provider configured.\n\nTo start chatting:\n1. Open Settings\n2. Select an AI provider (OpenAI, Ollama, Anthropic, etc.)\n3. Enter your API key or configure the connection error.rate_limit=⚠️ Rate limit exceeded\n{retryAfter}\n\nYou've reached your API usage limit. Please wait before sending more messages. error.insufficient_credits=⚠️ Insufficient API credits\n\nYour credit balance has been exhausted.\n\nPlease go to Plans & Billing to top up your credits.\n\nerror.timeout=⚠️ Request timed out after {timeout} seconds\n\nThis might be due to:\n• High server load - try again in a moment\n• Complex query - try simplifying\n• Network latency