TidGi-Desktop/localization/locales/fr/agent.json
lin onetwo a712b2ff51
Fix/misc bug (#679)
* Create ErrorDuringRelease.md

* Enforce test timeouts and add root tiddler scenario

Set global and step timeouts to 5s (local) and 10s (CI) across cucumber config and step definitions to standardize test execution times. Add a new scenario to verify root tiddler configuration and content loading after restart. Enhance start-e2e-app script to accept or auto-detect test scenario names and pass them to the app.

* Improve error handling for window and view initialization

Enhanced error reporting and handling when browser windows are not ready or fail to register in windowService. Updated focus logic to dynamically retrieve the current browser window, improving reliability during workspace hibernation and wake-up scenarios.

* Remove AfterAll hook and add --exit to e2e tests

Eliminates the AfterAll hook that forced process exit in cleanup.ts to prevent hanging after tests. Adds the --exit flag to the cucumber-js command in the e2e test script to ensure proper test process termination.

* Add step to restart workspace in wiki tests

Introduces a new step definition 'I restart workspace {string}' to programmatically restart a wiki workspace during tests. Updates the root tiddler scenario to use this step for verifying lazy-load behavior after workspace restart, improving test reliability and clarity.

* Centralize and standardize E2E test timeouts

Extracted timeout values into features/supports/timeouts.ts and replaced hardcoded timeouts in step definitions with named constants. This ensures consistent timeout handling across local and CI environments, reduces duplication, and clarifies intent. Also improved workspace update logic to check watch-fs state before restart and cleaned up related log marker handling.

* Improve i18n coverage and add Windows installer log access

Expanded and unified i18n keys for error messages and UI labels across multiple languages. Refactored code to remove hardcoded default values from translation calls. Added a Developer Tools option to open the Windows installer log folder (SquirrelTemp) when running on Windows. Introduced a placeholder file to preserve dynamic i18n keys for error messages.

* Initialize Tidgi mini window before workspace views

Moved the initialization of the Tidgi mini window to occur before initializing all workspace views in main.ts to ensure correct view creation. Added a clarifying comment in DeveloperTools.tsx regarding the SquirrelSetup.log path.

* Refactor Tidgi mini window initialization logic

Tidgi mini window creation now only creates the window; view creation is deferred to initializeAllWorkspaceView. Updated related comments and logging for clarity. Also fixed formatting in French translations and improved documentation for error handling during release.

* Add model feature chips to model selection UI

Introduces a ModelFeatureChip component to visually display model features in the model selector and new model dialog. Updates defaultProviders to include new models with features, and enhances the UI to show feature chips for each model, improving clarity for users selecting models.

* Add image attachment support to chat messages

This update enables users to attach image files to chat messages, including UI changes for file selection and preview, backend persistence of attachments, and prompt concatenation logic to include images in AI requests. It also adds error handling and i18n for model vision support, updates message rendering to display images, and improves logging and API validation for vision-capable models.

* Improve streaming status handling for agent messages

Adds a failsafe to clear streaming status when an agent reaches a terminal state and refines logic to prevent marking completed messages as streaming. Also updates message stream completion in AgentInstanceService to ensure proper cleanup and delivery of IPC messages. Includes new feature tests for message streaming status and image upload scenarios.

* Add cross-window sync feature and test steps

Introduces a new feature file for cross-window synchronization scenarios. Adds step definitions to open workspaces in new windows and execute TiddlyWiki code programmatically. Removes obsolete wiki.ts.backup file and updates agentActions for related actions.

* feat(sync): fix cross-window synchronization via SSE

- Remove overly aggressive echo prevention in backend that blocked all SSE updates
- Backend now forwards all wiki change events to subscribers
- Add comprehensive cross-window sync tests verifying bidirectional updates
- Test main->new window sync and new->main window sync scenarios
- Version bump to 0.13.0-prerelease19

* Improve file attachment handling in chat and tests

Refactors file input handling in chat tests to use Playwright's setInputFiles, updates message sending types to support optional file attachments, and enhances file metadata persistence and logging. Adjusts test expectations and UI logic to better handle and display image attachments, and clarifies combobox value assertions in ExternalAPI tests.

* Add file input validation and improve i18n messages

Added image type and size validation (10MB limit) to file input in InputContainer. Improved image preview logic. Updated French, Japanese, and Russian translations with new error messages for missing/default model and vision support. Enhanced type safety in promptConcatWithImage tests and messagePersistence logging. Fixed race condition in ExternalAPIService lazy initialization. Updated CommitDetailsPanel to use common cancel translation key.

* review

* Update browserView.ts

* Update timeouts.ts

* Update cucumber.config.js

* Update cucumber.config.js

* Move global timeout config to separate module

Extracted global timeout setup from cucumber.config.js to features/supports/timeout-config.ts using setDefaultTimeout. This ensures the timeout is set via code rather than config, improving clarity and maintainability.

* Update newAgent.feature
2026-01-26 02:43:27 +08:00

710 lines
37 KiB
JSON

{
"APILogs": {
"CurrentAgent": "Afficher les journaux de l'agent intelligent : {{agentId}}",
"Description": "Journal de débogage des appels API externes pour cet agent. Activez le 'Débogage des API externes' dans les préférences pour commencer l'enregistrement.",
"ErrorDetails": "Détails de l'erreur",
"NoLogs": "Journal des API de cet agent intelligent introuvable",
"NoResponse": "pas de réponse",
"RequestDetails": "Détails de la demande",
"ResponseContent": "contenu de réponse",
"ResponseMetadata": "réponse aux métadonnées",
"StatusCancel": "annulé",
"StatusDone": "terminé",
"StatusError": "erreur",
"StatusStart": "commencé",
"StatusUpdate": "En cours de traitement",
"Title": "Journal de débogage API"
},
"Agent": {
"EditTitle": "Modifier le nom de l'agent intelligent",
"InvalidTabType": "Type d'onglet non valide. Un onglet de chat est requis.",
"LoadingChat": "Chargement de la conversation en cours...",
"StartConversation": "commencer la conversation",
"ThinkingProcess": "Réfléchir",
"Untitled": "Sans titre"
},
"Browser": {
"Back": "reculer",
"Bookmark": "collection",
"CurrentUrl": "URL actuelle",
"EnterUrlPlaceholder": "entrer l'URL",
"Forward": "avancer",
"Home": "Page d'accueil",
"Refresh": "rafraîchir",
"RenderPlaceholder": "Voici la zone de rendu de la page web."
},
"Chat": {
"Cancel": "Annuler",
"ConfigError": {
"AuthenticationError": "L'authentification {{provider}} a échoué. Veuillez vérifier votre clé API dans les paramètres.",
"AuthenticationFailed": "L'authentification {{provider}} a échoué. Veuillez vérifier votre clé API dans les paramètres.",
"GoToSettings": "Aller aux paramètres",
"MissingAPIKeyError": "Clé API pour {{provider}} introuvable. Veuillez l'ajouter dans les paramètres.",
"MissingBaseURLError": "Le fournisseur {{provider}} nécessite une URL de base. Veuillez la configurer dans les paramètres.",
"MissingConfigError": "Aucun fournisseur AI ou modèle configuré. Veuillez configurer dans les paramètres.",
"MissingProviderError": "Le fournisseur {{provider}} n'est pas disponible. Veuillez le configurer dans les paramètres.",
"ProviderNotFound": "Fournisseur {{provider}} introuvable. Veuillez le configurer dans les paramètres.",
"NoDefaultModel": "Aucun modèle par défaut configuré. Veuillez sélectionner un modèle dans les paramètres.",
"ModelNoVisionSupport": "Le modèle sélectionné ne prend pas en charge la vision. Veuillez choisir un modèle compatible avec la vision dans les paramètres.",
"Title": "Problème de configuration"
},
"FileValidation": {
"NotAnImage": "Le fichier sélectionné n'est pas une image ({{fileType}}). Veuillez sélectionner un fichier image.",
"TooLarge": "La taille du fichier {{size}}MB dépasse la limite ({{maxSize}}MB). Veuillez sélectionner un fichier plus petit."
},
"InputPlaceholder": "Tapez un message, Ctrl+Entrée pour envoyer",
"Send": "Envoyer"
},
"Common": {
"None": "non sélectionné"
},
"ContextMenu": {
"AddToCurrentSplitView": "ajouter à la division d'écran actuelle",
"Close": "fermer",
"CloseAbove": "Fermer l'onglet ci-dessus",
"CloseBelow": "Fermer l'onglet ci-dessous",
"CloseOther": "Fermer les autres onglets",
"CloseTabs": "Fermer plusieurs onglets",
"ConvertToSplitView": "passer en vue partagée",
"CreateSplitViewWithActive": "créer un écran partagé avec l'onglet actuel",
"Duplicate": "copier",
"NewTabBelow": "ouvrir un nouvel onglet ci-dessous",
"Pin": "Onglet fixe",
"Refresh": "rafraîchir",
"RestoreClosed": "récupérer l'onglet fermé",
"Unpin": "désépingler"
},
"CreateAgent": {
"AgentName": "Nom de l'agent intelligent",
"AgentNameHelper": "Donnez un nom descriptif à votre agent intelligent",
"AgentNamePlaceholder": "Entrez le nom de l'agent intelligent...",
"Back": "étape précédente",
"CreatingPreview": "Création de l'agent d'aperçu intelligent en cours...",
"EditPrompt": "Modifier l'invite",
"EditPromptDescription": "Personnalisez les invites système et le comportement de votre agent intelligent",
"ImmediateUse": "tester et utiliser",
"ImmediateUseDescription": "Testez votre agent et commencez à l'utiliser immédiatement",
"Next": "prochaine étape",
"NoTemplateSelected": "Veuillez d'abord sélectionner un modèle.",
"Preview": "(prévisualisation)",
"SaveAndUse": "Enregistrer et utiliser l'agent",
"SearchTemplates": "Modèle d'agent de recherche intelligent...",
"SelectTemplate": "choisir un modèle",
"SelectTemplateDescription": "Choisir un agent intelligent existant comme modèle de départ",
"SelectedTemplate": "Modèle sélectionné",
"SetupAgent": "configurer l'agent intelligent",
"SetupAgentDescription": "Nommez votre agent et choisissez un modèle comme point de départ",
"Title": "Créer un nouvel agent intelligent"
},
"EditAgent": {
"AgentDescription": "Description de l'agent intelligent",
"AgentDescriptionHelper": "Décrivez les fonctionnalités et l'utilité de votre agent intelligent",
"AgentDescriptionPlaceholder": "Entrez la description de l'agent intelligent...",
"AgentName": "nom de l'agent intelligent",
"AgentNameHelper": "Donnez un nom descriptif à votre agent intelligent",
"AgentNamePlaceholder": "Entrez le nom de l'agent intelligent...",
"AgentNotFound": "Agent non trouvé",
"EditBasic": "Modifier les informations de base",
"EditBasicDescription": "Modifier les informations de base de votre agent intelligent",
"EditPrompt": "Modifier les invites",
"EditPromptDescription": "Personnalisez les invites système et le comportement de votre agent intelligent",
"ImmediateUse": "tester et utiliser",
"ImmediateUseDescription": "Testez votre agent et commencez à l'utiliser immédiatement",
"Loading": "Chargement en cours...",
"LoadingPromptConfig": "Chargement de la configuration des invites en cours...",
"PreviewChat": "Aperçu du chat",
"Save": "sauvegarder",
"Saving": "Enregistrement en cours...",
"Title": "Définition de l'agent éditeur"
},
"ModelFeature": {
"Embedding": "intégration",
"Free": "gratuit",
"ImageGeneration": "génération d'images",
"Language": "langue",
"Reasoning": "raisonnement",
"Speech": "synthèse vocale",
"ToolCalling": "appel d'outil",
"Transcriptions": "reconnaissance vocale",
"Vision": "visuel"
},
"ModelSelector": {
"Model": "modèle",
"NoModelSelected": "Aucun modèle sélectionné",
"SelectModel": "choisir un modèle",
"Title": "sélection de modèle"
},
"NewTab": {
"CreateDefaultAgent": "Créer un agent intelligent par défaut",
"CreateInstance": "créer une instance",
"CreateNewAgent": "Créer un nouvel agent intelligent",
"EditDefinition": "éditer la définition",
"NewTab": "Nouvel onglet",
"QuickAccess": "accès rapide",
"SearchPlaceholder": "Rechercher un onglet ou un agent intelligent..."
},
"Preference": {
"AIAgent": "agent intelligent",
"AIAgentDescription": "Gérer la base de données des enregistrements de conversation des agents IA",
"AIAgentDescriptionDetail": "Ici, vous pouvez consulter et supprimer les informations sur la taille et l'emplacement de la base de données des historiques de conversation avec l'Agent IA.",
"APIKey": "Clé API",
"AddNewModel": "Ajouter un nouveau modèle",
"AddNewProvider": "Ajouter un nouveau fournisseur",
"AddProvider": "Ajouter un fournisseur",
"AgentDatabaseDescription": "Tous les historiques de conversation des agents IA sont enregistrés dans cette base de données, concernant uniquement les échanges avec l'IA, sans affecter le contenu du Wiki, et occupant un espace de {{size}}.",
"BaseURL": "URL de base de l'API",
"BaseURLRequired": "L'URL de base de l'API est requise",
"Browse": "naviguer",
"CancelAddProvider": "Annuler l'ajout",
"ConfigureModelParameters": "paramètres de configuration",
"ConfigureProvider": "Configurer {{provider}}",
"ConfirmDelete": "Confirmer la suppression",
"ConfirmDeleteAgentDatabase": "Êtes-vous sûr de vouloir supprimer la base de données contenant tous les historiques de conversation avec l'IA ? Cette action est irréversible.",
"ConfirmDeleteProvider": "Confirmer la suppression du fournisseur",
"CustomProvider": "Fournisseur personnalisé",
"DefaultAIModelSelection": "Sélection par défaut du modèle AI",
"DefaultAIModelSelectionDescription": "Choisissez le fournisseur AI et le modèle par défaut à utiliser lorsqu'aucun n'est spécifiquement défini",
"DefaultEmbeddingModelSelection": "Choix du modèle d'intégration par défaut",
"DefaultEmbeddingModelSelectionDescription": "Sélectionnez le modèle d'incorporation par défaut pour la recherche sémantique et les opérations vectorielles",
"DefaultImageGenerationModelSelection": "Modèle de génération d'image par défaut sélectionné",
"DefaultImageGenerationModelSelectionDescription": "sélectionner le modèle de génération d'images par défaut pour les opérations de génération d'images à partir de texte",
"DefaultSpeechModelSelection": "Modèle de génération vocale par défaut sélectionné",
"DefaultSpeechModelSelectionDescription": "Sélectionnez le modèle de génération vocale par défaut pour les opérations de synthèse vocale",
"DefaultTranscriptionsModelSelection": "Sélection du modèle de reconnaissance vocale par défaut",
"DefaultTranscriptionsModelSelectionDescription": "Sélectionnez le modèle de reconnaissance vocale par défaut pour l'opération de conversion de la parole en texte",
"DeleteAgentDatabase": "Supprimer la base de données des conversations IA",
"DeleteExternalApiDatabase": "Supprimer la base de données API externe",
"DeleteProvider": "supprimer le fournisseur",
"DisabledProviderInfo": "Ce fournisseur est désactivé et ses modèles n'apparaîtront pas dans la liste de sélection des modèles",
"EnableProvider": "Activer ce fournisseur",
"ExternalAPI": "API externe",
"ExternalAPIDebug": "Activer le journal de débogage de l'API",
"ExternalAPIDebugDescription": "Une fois activé, toutes les requêtes et réponses API seront enregistrées dans la base de données à des fins de débogage.",
"ExternalApiDatabaseDescription": "Base de données contenant des informations de débogage d'API externes, occupant un espace de {{size}}",
"FailedToAddModel": "Échec de l'ajout du modèle",
"FailedToAddProvider": "Échec de l'ajout du fournisseur",
"FailedToDeleteProvider": "Échec de la suppression du fournisseur {{providerName}}",
"FailedToRemoveModel": "Échec de la suppression du modèle",
"FailedToSaveSettings": "Échec de l'enregistrement des paramètres",
"FailedToUpdateModel": "Impossible de mettre à jour le modèle",
"FailedToUpdateProviderStatus": "Échec de la mise à jour du statut du fournisseur",
"MaxTokens": "longueur maximale de génération",
"MaxTokensDescription": "Le nombre maximum de caractères (calculé en tokens) qu'un modèle peut générer en une seule requête.",
"ModelAddedSuccessfully": "Modèle ajouté avec succès",
"ModelAlreadyExists": "Le modèle existe déjà",
"ModelCaption": "Nom d'affichage du modèle",
"ModelCaptionHelp": "Un nom convivial à afficher dans l'interface ; si laissé vide, le nom du modèle sera utilisé",
"ModelDetails": "Détails du modèle",
"ModelFeatures": "Fonctionnalités du modèle",
"ModelName": "Nom du modèle",
"ModelNameRequired": "Le nom du modèle est requis",
"ModelParameters": "paramètres du modèle",
"ModelParametersDescription": "Configurer les paramètres de comportement des modèles d'IA générative, tels que la température et les limites de tokens.",
"ModelRemovedSuccessfully": "Modèle supprimé avec succès",
"ModelUpdatedSuccessfully": "Modèle mis à jour avec succès",
"Models": "Modèles disponibles",
"NoPresetSelected": "Aucun modèle prédéfini sélectionné",
"NoProvidersAvailable": "Aucun fournisseur disponible",
"OpenDatabaseFolder": "Ouvrir le dossier de la base de données",
"PresetModels": "Modèles prédéfinis",
"PresetProvider": "Fournisseur prédéfini",
"ProviderAddedSuccessfully": "Fournisseur ajouté avec succès",
"ProviderAlreadyExists": "Le nom du fournisseur existe déjà",
"ProviderClass": "Type d'interface du fournisseur",
"ProviderConfiguration": "Configuration du fournisseur",
"ProviderConfigurationDescription": "Configurer la clé API et d'autres paramètres pour les fournisseurs AI",
"ProviderDeleted": "Le fournisseur {{providerName}} a été supprimé",
"ProviderDisabled": "Fournisseur désactivé",
"ProviderEnabled": "Fournisseur activé",
"ProviderName": "Nom du fournisseur",
"ProviderNameRequired": "Le nom du fournisseur est requis",
"Search": "recherche et intégration",
"SearchEmbeddingDelete": "supprimer",
"SearchEmbeddingDeleteConfirm": "Êtes-vous sûr de vouloir supprimer tous les vecteurs d'incorporation de l'espace de travail \"{{workspaceName}}\" ? Cette action est irréversible.",
"SearchEmbeddingDeleteError": "Suppression intégrée échouée : {{error}}",
"SearchEmbeddingGenerate": "générer des embeddings",
"SearchEmbeddingGenerating": "Génération en cours...",
"SearchEmbeddingLastUpdated": "Dernière mise à jour : {{time}}",
"SearchEmbeddingNoAIConfigError": "Veuillez d'abord configurer les paramètres de l'API IA dans la section API externe.",
"SearchEmbeddingNoEmbeddingModelError": "Veuillez d'abord configurer les paramètres du modèle d'intégration par défaut dans la section API externe.",
"SearchEmbeddingStatusCompleted": "{{totalEmbeddings}} embeddings de {{totalNotes}} notes",
"SearchEmbeddingStatusError": "Erreur : {{error}}",
"SearchEmbeddingStatusGenerating": "Génération en cours... ({{completed}}/{{total}})",
"SearchEmbeddingStatusIdle": "embedding non généré",
"SearchEmbeddingUpdate": "mise à jour de l'intégration",
"SearchNoWorkspaces": "Espace de travail introuvable",
"SelectDefaultProvider": "choisir le fournisseur par défaut",
"SelectFromPresets": "Sélectionner parmi les modèles prédéfinis",
"SelectModel": "Sélectionner un modèle",
"SettingsSaved": "Paramètres enregistrés",
"SystemPrompt": "Invite système",
"SystemPromptDescription": "Définissez les instructions système envoyées à l'AI pour définir son comportement et ses capacités",
"SystemPromptPlaceholder": "placeholder d'invite système",
"Temperature": "Température",
"TemperatureDescription": "Une valeur plus faible produit une réponse plus déterministe et concentrée, tandis qu'une valeur plus élevée génère une réponse plus diversifiée et créative.",
"TopP": "Top P",
"TopPDescription": "Contrôler l'aléatoire des réponses. Une valeur plus faible rend la réponse plus déterminée, tandis qu'une valeur plus élevée permet davantage de possibilités.",
"WorkflowFile": "fichier de flux de travail",
"WorkflowFileHelp": "Chemin du fichier JSON du flux de travail ComfyUI",
"WorkflowFilePath": "chemin du fichier de flux de travail"
},
"Prompt": {
"AutoRefresh": "L'aperçu se rafraîchit automatiquement en fonction des modifications du texte saisi.",
"CodeEditor": "Éditeur de code",
"Edit": "Édition des mots-clés",
"Enabled": "activer",
"EnterEditSideBySide": "Édition en affichage partagé",
"EnterFullScreen": "entrer en plein écran",
"EnterPreviewSideBySide": "Aperçu en mode écran partagé",
"ExitFullScreen": "quitter le mode plein écran",
"ExitSideBySide": "quitter le mode d'écran partagé",
"Flat": "vue en mosaïque",
"FormEditor": "Éditeur de formulaire",
"LastUpdated": "Dernière mise à jour",
"Loading": "Chargement de l'aperçu en cours...",
"NoMessages": "Aucun message à prévisualiser pour le moment.",
"Preview": "Aperçu des mots-clés",
"SchemaNotProvided": "Format non fourni",
"SchemaNotProvidedDescription": "Aucun schéma JSON n'a été fourni ou il n'a pas pu être obtenu correctement. Le formulaire d'édition ne peut pas être affiché.",
"Tree": "vue arborescente",
"ValidationErrors": "détecter une erreur"
},
"PromptConfig": {
"AddItem": "ajouter un projet",
"Collapse": "plier",
"EmptyArray": "Aucun élément n'a encore été ajouté. Cliquez sur le bouton ci-dessous pour ajouter votre premier élément.",
"Expand": "déployer",
"ItemCount": "{{count}} éléments",
"ItemIndex": "Article {{index}}",
"Tabs": {
"Plugins": "plugin",
"Prompts": "mot-clé",
"Response": "réponse"
},
"Tags": {
"HelperText": "Appuyez sur Entrée après la saisie pour ajouter une étiquette, ou choisissez parmi les étiquettes prédéfinies.",
"NoOptions": "aucune étiquette disponible",
"Placeholder": "Entrer une étiquette..."
}
},
"Schema": {
"AIConfig": {
"Default": "modèle de dialogue utilisé par défaut",
"DefaultTitle": "modèle par défaut",
"Description": "Configuration des paramètres de conversation IA",
"Embedding": "modèle d'incorporation pour la recherche vectorielle",
"EmbeddingTitle": "modèle d'intégration",
"Free": "modèle à faible coût utilisé pour les tâches sensibles aux coûts",
"FreeTitle": "modèles gratuits/à faible coût",
"ImageGeneration": "Modèle pour la génération d'images",
"ImageGenerationTitle": "modèle de génération d'images",
"Speech": "Modèle pour la synthèse vocale (TTS)",
"SpeechTitle": "modèle de synthèse vocale",
"Title": "Configuration de l'IA",
"Transcriptions": "Modèle pour la conversion de parole en texte (STT)",
"TranscriptionsTitle": "modèle de reconnaissance vocale"
},
"AgentConfig": {
"Description": "Configuration de l'agent intelligent",
"Id": "Identifiant unique de l'agent intelligent",
"IdTitle": "ID de l'agent intelligent",
"PromptConfig": {
"Description": "configuration des mots-clés",
"Plugins": "Liste de configuration des plugins",
"Prompts": "Liste de configuration des mots-clés",
"Response": "Liste de configuration des réponses",
"Title": "configuration des mots-clés"
},
"Title": "Configuration de l'agent intelligent"
},
"BaseAPIConfig": {
"ModelParameters": "Configuration des paramètres du modèle",
"ModelParametersTitle": "paramètres du modèle"
},
"Common": {
"ToolListPosition": {
"Description": "Configuration de la position d'insertion de la liste des outils dans les invites",
"Position": "Position d'insertion par rapport à la cible",
"PositionTitle": "position",
"TargetId": "ID de l'élément cible",
"TargetIdTitle": "ID cible"
},
"ToolListPositionTitle": "position de la liste des outils"
},
"DefaultAgents": {
"Description": "Liste de configuration des agents intelligents par défaut",
"Title": "agent intelligent par défaut"
},
"FullReplacement": {
"Description": "remplacement complet de la configuration des paramètres",
"SourceType": "type source",
"SourceTypeTitle": "type source",
"TargetId": "ID de l'élément cible",
"TargetIdTitle": "ID cible",
"Title": "paramètre de remplacement complet"
},
"Git": {
"Description": "Rechercher les journaux de validation Git et lire le contenu de fichiers spécifiques",
"Title": "Outils Git",
"Tool": {
"Parameters": {
"commitHash": {
"Description": "soumettre le hachage",
"Title": "hash de soumission"
},
"filePath": {
"Description": "Chemin du fichier (pour le mode de recherche de fichiers)",
"Title": "chemin du fichier"
},
"maxLines": {
"Description": "Nombre maximum de lignes (500 par défaut)",
"Title": "nombre maximum de lignes"
},
"page": {
"Description": "Numéro de page du résultat (commençant à 1)",
"Title": "numéro de page"
},
"pageSize": {
"Description": "Nombre de résultats par page",
"Title": "Nombre par page"
},
"searchMode": {
"Description": "Mode de recherche : par informations soumises, chemin du fichier, plage de dates ou ne pas rechercher",
"Title": "mode de recherche"
},
"searchQuery": {
"Description": "chaîne de requête de recherche (mode de recherche de messages)",
"Title": "requête de recherche"
},
"since": {
"Description": "Date de début (format ISO 8601)",
"Title": "date de début"
},
"until": {
"Description": "Date de fin (format ISO 8601)",
"Title": "date de fin"
},
"workspaceName": {
"Description": "Nom ou ID de l'espace de travail à rechercher",
"Title": "Nom de l'espace de travail"
}
},
"ReadFile": {
"Parameters": {
"commitHash": {
},
"filePath": {
},
"maxLines": {
},
"workspaceName": {
}
}
}
}
},
"MCP": {
"Description": "Configuration des paramètres du protocole de contexte du modèle",
"Id": "ID du serveur MCP",
"IdTitle": "ID du serveur",
"TimeoutMessage": "message en retard",
"TimeoutMessageTitle": "message en retard",
"TimeoutSecond": "Délai d'expiration (secondes)",
"TimeoutSecondTitle": "Délai d'expiration",
"Title": "Paramètres du protocole de contexte du modèle"
},
"ModelParameters": {
"Description": "Configuration des paramètres du modèle",
"MaxTokens": "nombre maximum de jetons générés",
"MaxTokensTitle": "nombre maximum de jetons",
"SystemPrompt": "Mot-clé d'invite du système de modèle",
"SystemPromptTitle": "Invite système",
"Temperature": "Température de génération des réponses (plus élevée = plus créatif)",
"TemperatureTitle": "température",
"Title": "paramètres du modèle",
"TopP": "Paramètre d'échantillonnage Top P",
"TopPTitle": "Top P"
},
"ModelSelection": {
"Description": "Choisir le fournisseur de modèles et le nom spécifique du modèle",
"Model": "Nom du modèle (par exemple gpt-4o, Qwen2.5-7B-Instruct)",
"ModelTitle": "modèle",
"Provider": "Fournisseurs de modèles (comme OpenAI, SiliconFlow, Google, etc.)",
"ProviderTitle": "fournisseur",
"Title": "sélection de modèle"
},
"Plugin": {
},
"Position": {
"Description": "configuration des paramètres de position",
"TargetId": "ID de l'élément cible",
"TargetIdTitle": "ID cible",
"Title": "paramètre positionnel",
"Type": "type d'emplacement",
"TypeTitle": "type d'emplacement"
},
"Prompt": {
"Caption": "brève description",
"CaptionTitle": "décrire",
"Children": "Liste des sous-indices, qui seront concaténés de haut en bas et de l'extérieur vers l'intérieur pour former le texte final d'indice.",
"ChildrenTitle": "sous-prompt",
"Description": "Configuration complète des invites, incluant le type et le contenu.",
"Enabled": "Activer cette invite, seules celles activées seront intégrées dans l'invite finale.",
"EnabledTitle": "activer",
"Id": "L'identifiant unique de configuration des mots d'invite, permettant de référencer par targetId dans PromptDynamicModification.",
"IdTitle": "ID",
"Role": "Rôle des invites d'interface compatible OpenAI",
"RoleTitle": "rôle",
"RoleType": {
"Assistant": "Assistant - Réponses et contenus de l'IA",
"System": "Système - Définir les règles de comportement et le contexte de l'IA",
"User": "Utilisateur - Simuler les entrées et requêtes de l'utilisateur"
},
"Source": "La source ou la référence de cette invite (par exemple, chemin du fichier, URL, etc.)",
"SourceTitle": "source",
"Tags": "Liste des étiquettes",
"TagsTitle": "étiquette",
"Text": "Le contenu des mots d'invite peut inclure la syntaxe prise en charge par le texte wiki, comme <<nom de variable>>.",
"TextTitle": "texte",
"Title": "mot-clé"
},
"ProviderModel": {
},
"Response": {
"Caption": "En-tête de réponse, utilisé pour identifier cette entrée de réponse",
"CaptionTitle": "titre",
"Description": "La réponse de l'API externe, souvent utilisée comme cible pour des modifications dynamiques en réponse, a la même structure que les mots d'invite. Elle peut être préremplie avec du contenu prédéfini ou servir d'espace réservé (placeholder) ou de conteneur, où ResponseDynamicModification insère le contenu spécifique de la réponse de l'API externe.",
"Id": "Identifiant unique de configuration de réponse pour faciliter la référence",
"IdTitle": "ID",
"Title": "réponse"
},
"TiddlyWikiPlugin": {
"ActionsTag": {
"Description": "Balise Action Tiddler, l'IA peut trouver des actions exécutables grâce à cette étiquette.",
"Title": "Balises Actions"
},
"DataSourceTag": {
"Description": "Étiquette des entrées de source de données, grâce à laquelle l'IA peut comprendre les méthodes d'acquisition et de filtrage des données.",
"Title": "Balise DataSource"
},
"DescribeTag": {
"Description": "Balises pour les descriptions courtes qui sont automatiquement chargées dans les invites afin d'aider l'IA à comprendre les fonctionnalités disponibles.",
"Title": "Décrire l'étiquette"
},
"Description": "Chargement des sources de données et des instructions d'action pour les plugins spécifiques. Le système chargera automatiquement les entrées avec l'étiquette Describe comme informations contextuelles.",
"EnableCache": {
"Description": "Activer le cache pour éviter de réinterroger le wiki à chaque génération d'invites. Lorsque le cache est désactivé, les descriptions sont effacées et rechargées.",
"Title": "Activer le cache"
},
"Title": "Plugin TiddlyWiki",
"Tool": {
"Parameters": {
"pluginTitle": {
"Description": "Titre du plugin à charger pour les détails. Le système recherchera les entrées DataSource et Actions contenant ce titre.",
"Title": "Titre du plugin"
}
}
},
"WorkspaceNameOrID": {
"Description": "Nom ou ID de l'espace de travail pour charger les informations du plugin (par défaut 'wiki')",
"Title": "Nom ou ID de l'espace de travail"
}
},
"Tool": {
"Caption": "Brève description (pour l'affichage dans l'interface utilisateur)",
"CaptionTitle": "titre",
"Content": "Contenu ou description du plugin",
"ContentTitle": "contenu",
"Enabled": "déterminer si ce texte est intégré dans l'invite finale",
"EnabledTitle": "activer",
"ForbidOverrides": "Est-il interdit de remplacer les paramètres de ce plugin pendant l'exécution ?",
"ForbidOverridesTitle": "Interdiction de couvrir",
"Id": "ID d'instance du plugin (unique dans le même gestionnaire)",
"IdTitle": "ID d'instance du plugin",
"ToolId": "Choisissez le type d'outil à utiliser",
"ToolIdTitle": "type d'outil"
},
"WikiOperation": {
"Description": "Effectuer des opérations sur les Tiddlers (ajout, suppression ou définition de texte) dans l'espace de travail Wiki",
"Title": "Opérations Wiki",
"Tool": {
"Parameters": {
"extraMeta": {
"Description": "Chaîne JSON de métadonnées supplémentaires, telles que des étiquettes et des champs, par défaut \"{}\"",
"Title": "métadonnées supplémentaires"
},
"operation": {
"Description": "Type d'opération à effectuer",
"Title": "Type d'opération"
},
"options": {
"Description": "Chaîne JSON des options d'opération, par défaut \"{}\"",
"Title": "options d'opération"
},
"text": {
"Description": "Le contenu textuel de Tiddler",
"Title": "Contenu de Tiddler"
},
"title": {
"Description": "Le titre de Tiddler",
"Title": "Titre du Tiddler"
},
"variables": {
"Description": "Variables transmises à l'action tiddler, chaîne de caractères au format JSON, par défaut \"{}\"",
"Title": "variable"
},
"workspaceName": {
"Description": "Nom ou ID de l'espace de travail à manipuler",
"Title": "Nom de l'espace de travail"
}
}
},
"ToolResultDuration": "Le nombre de tours pendant lesquels les résultats de l'exécution des outils restent visibles dans la conversation, après quoi ils seront affichés en gris.",
"ToolResultDurationTitle": "nombre de tours consécutifs des résultats de l'outil"
},
"WikiSearch": {
"Description": "Rechercher le contenu de l'espace de travail TiddlyWiki à l'aide d'expressions de filtre",
"SourceType": "type de source de données",
"SourceTypeTitle": "type source",
"Title": "Recherche Wiki",
"Tool": {
"Description": "Rechercher le contenu des Tiddlers dans l'espace de travail Wiki (prend en charge la recherche par filtre traditionnelle et la recherche sémantique vectorielle)",
"Parameters": {
"filter": {
"Description": "Expression de filtre TiddlyWiki",
"Title": "filtre"
},
"limit": {
"Description": "nombre maximal de résultats retournés",
"Title": "limiter"
},
"query": {
"Description": "Texte de requête utilisé pour la recherche vectorielle (langage naturel)",
"Title": "requête"
},
"searchType": {
"Description": "Choisissez un mode de recherche basé sur des règles ou sur la similarité.",
"Title": "type de recherche"
},
"threshold": {
"Description": "Seuil de similarité (0-1), les résultats vectoriels en dessous de ce seuil seront filtrés.",
"Title": "seuil"
},
"workspaceName": {
"Description": "Nom ou ID de l'espace de travail à rechercher",
"Title": "Nom de l'espace de travail"
}
},
"UpdateEmbeddings": {
"Description": "Générer ou mettre à jour l'index d'embedding vectoriel pour l'espace de travail Wiki, destiné à la recherche sémantique.",
"forceUpdate": {
"Description": "Forcer la régénération de l'index d'incorporation, écrasant les données incorporées existantes (si défini sur true, ignore les mises à jour incrémentielles).",
"Title": "mise à jour forcée"
},
"workspaceName": {
"Description": "Le nom ou l'ID de l'espace de travail pour lequel générer ou mettre à jour l'index d'incorporation vectorielle.",
"Title": "Nom de l'espace de travail"
}
}
},
"ToolResultDuration": "Le nombre de tours pendant lesquels les résultats de l'exécution des outils restent visibles dans la conversation, après quoi ils seront affichés en gris.",
"ToolResultDurationTitle": "nombre de tours consécutifs avec résultat d'outil"
},
"WorkspacesList": {
"Description": "Injecter la liste des espaces de travail Wiki disponibles dans l'invite",
"Position": "Position d'insertion : before pour avant, after pour après",
"PositionTitle": "position d'insertion",
"TargetId": "ID du mot-clé cible, la liste sera insérée par rapport à ce mot-clé",
"TargetIdTitle": "ID cible",
"Title": "Liste des espaces de travail"
}
},
"Search": {
"AvailableAgents": "agents intelligents disponibles",
"FailedToCreateChatWithAgent": "Impossible de créer une conversation avec l'agent intelligent.",
"FailedToFetchAgents": "Échec de l'obtention de la liste des agents intelligents",
"NoAgentsFound": "Agent non trouvé",
"NoClosedTabsFound": "Aucun onglet récemment fermé",
"NoTabsFound": "Aucun onglet trouvé",
"OpenTabs": "onglets ouverts",
"RecentlyClosedTabs": "Onglets récemment fermés"
},
"SplitView": {
"NoTabs": "Aucun onglet dans la vue fractionnée."
},
"Tab": {
"Title": {
"CreateNewAgent": "Créer un nouvel agent intelligent",
"EditAgentDefinition": "Agent éditorial intelligent",
"NewTab": "Nouvel onglet",
"NewWeb": "nouvelle page web",
"SplitView": "Affichage divisé",
"WikiEmbed": "Wiki"
}
},
"Tool": {
"Git": {
"Error": {
"WorkspaceNotFound": "Le nom ou l'ID de l'espace de travail \"{{workspaceName}}\" n'existe pas."
}
},
"Schema": {
"Description": "décrire",
"Examples": "Exemple d'utilisation",
"Optional": "optionnel",
"Parameters": "paramètre",
"Required": "nécessaire"
},
"TiddlyWikiPlugin": {
"Error": {
"PluginTitleRequired": "Le titre du plugin ne peut pas être vide.",
"WorkspaceNotFound": "Le nom ou l'ID de l'espace de travail \"{{workspaceNameOrID}}\" n'existe pas"
}
},
"WikiOperation": {
"Error": {
"WorkspaceNotExist": "L'espace de travail {{workspaceID}} n'existe pas.",
"WorkspaceNotFound": "Le nom ou l'ID de l'espace de travail \"{{workspaceName}}\" n'existe pas. Espaces de travail disponibles : {{availableWorkspaces}}"
},
"Success": {
"ActionInvoked": "L'action \"{{actionTitle}}\" a été exécutée avec succès dans l'espace de travail Wiki \"{{workspaceName}}\".",
"Added": "Le Tiddler \"{{title}}\" a été ajouté avec succès à l'espace de travail Wiki \"{{workspaceName}}\".",
"Deleted": "Le Tiddler \"{{title}}\" a été supprimé avec succès de l'espace de travail Wiki \"{{workspaceName}}\".",
"Updated": "Le texte du Tiddler \"{{title}}\" a été défini avec succès dans l'espace de travail Wiki \"{{workspaceName}}\"."
}
},
"WikiSearch": {
"Error": {
"ExecutionFailed": "Exécution de l'outil échouée : {{error}}",
"FilterSearchRequiresFilter": "Pour effectuer une recherche filtrée, il est nécessaire de fournir un paramètre de filtre (filter).",
"VectorSearchFailed": "Recherche vectorielle échouée : {{error}}",
"VectorSearchRequiresConfig": "La recherche vectorielle nécessite une configuration IA (veuillez configurer le fournisseur et le modèle d'incorporation dans les paramètres).",
"VectorSearchRequiresQuery": "La recherche vectorielle nécessite de fournir un paramètre de requête (query).",
"WorkspaceNotExist": "L'espace de travail {{workspaceID}} n'existe pas",
"WorkspaceNotFound": "Le nom ou l'ID de l'espace de travail \"{{workspaceName}}\" n'existe pas. Espaces de travail disponibles : {{availableWorkspaces}}"
},
"Success": {
"Completed": "Recherche Wiki terminée. {{totalResults}} résultats trouvés au total, affichage de {{shownResults}} :",
"NoResults": "Aucun résultat trouvé pour le filtre \"{{filter}}\" dans l'espace de travail Wiki \"{{workspaceName}}\".",
"NoVectorResults": "Aucun résultat de recherche vectorielle conforme n'a été trouvé dans l'espace de travail Wiki \"{{workspaceName}}\" (seuil de similarité : {{threshold}}).",
"VectorCompleted": "Selon la recherche vectorielle, les contenus suivants ont été trouvés dans l'espace de travail {{workspaceName}} :"
},
"UpdateEmbeddings": {
"Error": {
"ExecutionFailed": "Génération d'embedding échouée : {{error}}",
"NoAIConfig": "Veuillez d'abord configurer le fournisseur d'IA et le modèle d'intégration (dans les paramètres).",
"WorkspaceNotExist": "L'espace de travail {{workspaceID}} n'existe pas",
"WorkspaceNotFound": "Le nom ou l'ID de l'espace de travail \"{{workspaceName}}\" n'existe pas. Espaces de travail disponibles : {{availableWorkspaces}}"
},
"Success": {
"Generated": "L'index d'embedding vectoriel pour l'espace de travail {{workspaceName}} a été généré avec succès. Total de {{totalNotes}} notes et {{totalEmbeddings}} embeddings."
}
}
}
},
"Unknown": "inconnu",
"WikiEmbed": {
"Error": "Échec de l'intégration dans le Wiki",
"Loading": "Chargement du Wiki en cours..."
}
}