mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-28 06:05:24 +00:00
* fix(sso): send the PKCE verifier for GitHub login (#1534) * fix(remote-desktop): clip cursor overflow without disabling zoom (#1535) * test(remote-desktop): preserve sessions beyond one hour (#1536) * fix(hosts): expose controls for overflowing editor tabs (#1537) * fix(hosts): expose controls for overflowing editor tabs * test(hosts): mock resize observation in admin panel tests * fix(status): skip TCP probes while host sessions are active (#1538) * fix(database): batch session activity persistence (#1539) * docs(api): describe cookie and API key authentication (#1540) * fix(snippets): repair missing note column on SQLite upgrades (#1541) * fix(docker): retain stored SSH credential association (#1543) * fix(file-manager): render transfer toasts without plugin hooks (#1546) * feat(hosts): keep compact row actions inline (#1547) * fix(auth): allow retrying unavailable second-factor interfaces (#1549) * fix(auth): reject unresolved legacy identity provisioning (#1550) * fix(desktop): ship the plugin SDK inside Mac App Store builds (#1551) * fix(tmux): pass full session info to the terminal's session picker (#1552) The tmux.sessions service reduced detected sessions to bare names, but the picker reads session.name, so every entry rendered blank and selecting one sent an empty name, which created a new session instead of attaching. * fix(ssh): read force keyboard-interactive as a boolean when resolving hosts (#1553) The column holds the text "true"/"false", and the resolver passed it through as-is. The string "false" is truthy, so the password provider treated every saved host as forced keyboard-interactive and left the password out. Jump hops are built straight from the resolved host, so a password hop whose server doesn't offer keyboard-interactive failed with "All configured authentication methods failed". * fix(database): batch database saves for bulk host writes (#1554) * fix(database): yield to the event loop between database saves Each SQLite save serializes and encrypts the whole database into new buffers, which V8 only releases once the event loop turns. Boot migrations and bulk host import write plugin settings per host and per key in an awaited loop, so hundreds of full copies piled up and the container ran out of memory. * fix(database): save once per bulk host write instead of once per row On SQLite every repository write force-saves the whole database. Boot plugin data migrations, host defaults materialization and the bulk host routes write one row per host per setting, so they serialized and encrypted the full database hundreds of times in a row. DatabaseSaveTrigger.batched wraps a function so force saves made while it runs collapse into a single save when it finishes. Nested scopes fold into the outer one, and work that outlives its scope saves normally. * feat(hosts): add instance-wide predefined tag suggestions (#1548) * feat(hosts): add shared predefined tag suggestions * style(hosts): format tag catalog routes * test(database): advance fake timers past the save yield (#1555) * fix(i18n): complete Simplified Chinese core and plugin translations (#1542) * fix(i18n): complete Chinese onboarding and navigation labels * fix(i18n): translate remaining Chinese core and plugin interfaces * fix(i18n): translate host editor tab overflow controls * fix(i18n): use consistent Chinese fleet terminology * fix(i18n): localize hardcoded controls and plugin views * fix(i18n): translate built-in homepage widget catalog * test(homepage): follow translated timezone placeholder * fix(i18n): translate plugin-provided homepage widgets * fix(i18n): localize feature settings section titles * fix: 2.8 oidc accounts unable to sign in after upgrading (#1381) * fix: plugins losing the saved ssh login when copying a host (#1391) * fix: fleets, proxmox and automations not getting the host sudo password * fix: host imports running a defaults pass and metrics restart per host (#1384) * fix: high cpu from status probes and full database saves on every sample (#1300) * fix: user data export freezing the server (#1393) * fix: op:// secret references rejected as ssh keys on credentials (#1394) * fix: slow file deletes from the trash lookups on every delete (#1390) * fix: add openapi docs and error handling to host tag routes * test: compare download stream buffers directly so it stops timing out * chore: drop em dash from host row comment * chore: update release notes for 2.9.1 * fix: restore space to add host tags and redesign predefined tags editor * fix: host key silently accepted when the host is missing from the database (#1397) * fix: clearer host login failed status label and fix its translations (#1396) * chore: add host key and status label fixes to release notes * fix: sso and ldap provider dialogs overflowing the screen and using mismatched toggles * chore: increment ver * fix(audit): store plugin entries with no acting user as a null user_id (#1556) Plugin audit entries written outside a request used the literal "system" as user_id. That column references users.id, so the insert was refused (Postgres logs it as an FK violation) and the entry was silently dropped. Write null instead and keep "system" / plugin:<id> in username. * chore: add sso/ldap dialog and audit log fixes to release notes * fix: tunnels and host settings missing from shared hosts on desktop * fix: remote desktop logins missing from shared hosts on desktop * fix: simplify host status to online/offline and keep it live without a refresh * chore: sync Crowdin translations for 2.9.1 --------- Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>
709 lines
33 KiB
JSON
709 lines
33 KiB
JSON
{
|
||
"mobileKeyboard": {
|
||
"addQuickKey": "Ajouter",
|
||
"arrowDown": "Flèche bas",
|
||
"arrowLeft": "Flèche gauche",
|
||
"arrowRight": "Flèche droite",
|
||
"arrowUp": "Flèche haut",
|
||
"backTab": "⇥",
|
||
"ctrl": "Ctrl",
|
||
"delete": "Suppr",
|
||
"done": "Terminé",
|
||
"editQuickKeys": "Modifier les touches rapides",
|
||
"end": "Fin",
|
||
"esc": "Échap",
|
||
"home": "Début",
|
||
"pageDown": "PgDn",
|
||
"pageUp": "PgUp",
|
||
"paste": "Coller",
|
||
"quickKeyPlaceholder": "ex. sudo ",
|
||
"quickKeysDesc": "Appuyez sur × pour supprimer. Prend en charge jusqu’à 8 caractères.",
|
||
"quickKeysTitle": "Touches rapides",
|
||
"removeQuickKey": "Supprimer",
|
||
"resetDefaults": "Rétablir les paramètres par défaut",
|
||
"shift": "Maj",
|
||
"tab": "Tab"
|
||
},
|
||
"terminal": {
|
||
"autoTmuxEnableFailed": "Échec de l'activation d'Auto-Tmux",
|
||
"autoTmuxEnabled": "Auto-Tmux activé pour {{host}}. Cela s'appliquera à partir de la prochaine connexion.",
|
||
"clipboardHttpWarning": "Impossible de lire le contenu du presse-papiers. Certains navigateurs restreignent l'accès au presse-papiers en dehors du protocole HTTPS ; essayez plutôt Ctrl+V ou utilisez Termix via HTTPS.",
|
||
"closeTab": "Fermer",
|
||
"connecting": "Connexion en cours...",
|
||
"connectionLost": "Connexion perdue",
|
||
"connectionRejected": "Connexion rejetée par le serveur. Veuillez vérifier votre authentification et votre configuration réseau.",
|
||
"connectionTimeout": "Délai de connexion dépassé",
|
||
"enableAutoTmuxAction": "Activer Auto-Tmux",
|
||
"hostKeyRejected": "Vérification de la clé de l'hôte SSH rejetée. Connexion annulée.",
|
||
"linkDialogCopy": "Copier",
|
||
"linkDialogOpen": "Ouvrir",
|
||
"linkDialogTitle": "Ouvrir le lien",
|
||
"maxReconnectAttemptsReached": "Nombre maximal de tentatives de reconnexion atteint",
|
||
"noHostSelected": "Aucun hôte sélectionné",
|
||
"passwordPromptFillTitle": "Remplir ce champ avec le mot de passe enregistré ?",
|
||
"reconnect": "Reconnecter",
|
||
"reconnected": "Reconnexion réussie",
|
||
"reconnecting": "Reconnexion... ({{attempt}}/{{max}})",
|
||
"autoReconnecting": "Connexion perdue, reconnexion en cours...",
|
||
"searchCaseSensitive": "Boîte d'allumettes",
|
||
"searchClose": "Fermer (Échap)",
|
||
"searchNext": "Prochain match (Entrée)",
|
||
"searchNoResults": "Aucun résultat",
|
||
"searchPlaceholder": "Trouver",
|
||
"searchPrevious": "Match précédent (Maj+Entrée)",
|
||
"searchRegex": "Utilisez une expression régulière",
|
||
"searchResultCount": "{{index}} de {{count}}",
|
||
"searchWholeWord": "Associer le mot entier",
|
||
"sessionExpiredNotice": "Votre session précédente sur {{host}} a expiré après {{minutes}} minutes de déconnexion ; le shell et tous les processus en cours d'exécution ont été supprimés. Activez Auto-Tmux sur cet hôte pour maintenir les sessions actives.",
|
||
"sessionExpiredNoticeNoMinutes": "Votre session précédente sur {{host}} a expiré pendant la déconnexion ; le shell et tous les processus en cours d'exécution ont été supprimés. Activez Auto-Tmux sur cet hôte pour maintenir les sessions actives.",
|
||
"sessionTakenOver": "La session a été ouverte dans un autre onglet. Reconnexion en cours...",
|
||
"tmuxAttached": "Clients attachés",
|
||
"tmuxAttachedCount": "{{count}} attaché(s)",
|
||
"tmuxCopyHint": "Ajustez la sélection et appuyez sur Entrée pour copier dans le presse-papiers",
|
||
"tmuxCreateNew": "Créer une nouvelle session",
|
||
"tmuxDetached": "Détaché de la session tmux",
|
||
"tmuxLastActivity": "Dernière activité",
|
||
"tmuxSessionAttached": "Session tmux attachée : {{name}}",
|
||
"tmuxSessionCreated": "Session tmux créée : {{name}}",
|
||
"tmuxSessionPickerDesc": "Des sessions tmux existantes ont été trouvées sur cet hôte. Sélectionnez-en une pour vous y rattacher ou créez une nouvelle session.",
|
||
"tmuxSessionPickerTitle": "Sessions tmux",
|
||
"tmuxTimeDays": "il y a {{count}} j",
|
||
"tmuxTimeHours": "il y a {{count}} h",
|
||
"tmuxTimeJustNow": "à l'instant",
|
||
"tmuxTimeMinutes": "il y a {{count}} min",
|
||
"tmuxUnavailable": "tmux n'est pas installé sur l'hôte distant, retour au shell standard",
|
||
"tmuxWindowCount": "{{count}} fenêtre(s)",
|
||
"tmuxWindows": "Fenêtres",
|
||
"unknownError": "Une erreur inconnue s'est produite",
|
||
"websocketAbnormalClose": "Connexion fermée de manière inattendue. Cela peut être dû à un problème de proxy inverse ou de configuration SSL. Veuillez vérifier les journaux du serveur.",
|
||
"websocketError": "Erreur de connexion WebSocket",
|
||
"clipboardReadFailed": "Échec de la lecture du presse-papiers. Assurez-vous que les autorisations du presse-papiers sont accordées.",
|
||
"clipboardWriteFailed": "Échec de la copie dans le presse-papiers. Assurez-vous que la page est servie en HTTPS ou localhost.",
|
||
"connected": "Connecté",
|
||
"totpCodeLabel": "Code de vérification",
|
||
"duplicateTab": "Onglet dupliqué",
|
||
"imageChooseFile": "Choisissez un fichier image",
|
||
"imageUploaded": "Image téléchargée : {{path}}",
|
||
"imageClipboardUnavailable": "Ce navigateur ne peut pas lire les images du presse-papiers.",
|
||
"imageClipboardEmpty": "Aucune image trouvée dans le presse-papiers",
|
||
"localShell": "Terminal local",
|
||
"autocompleteHintComplete": "Tab ou Entrée pour terminer",
|
||
"autocompleteHintNavigate": "↑↓ pour naviguer",
|
||
"autocompleteHintClose": "Échap pour fermer"
|
||
},
|
||
"terminalToolbar": {
|
||
"detachTmux": "Détacher tmux",
|
||
"detachTmuxDescription": "Détacher la session tmux",
|
||
"dismissError": "Erreur d'image",
|
||
"hideToolbar": "Masquer la barre d'outils",
|
||
"image": "Actions sur les images (images uniquement)",
|
||
"imageActionFailed": "L'action sur l'image a échoué",
|
||
"layout": "mode d'affichage de la barre d'outils",
|
||
"layoutExpanded": "Développé avec des indicateurs",
|
||
"layoutIcon": "Icône uniquement",
|
||
"layoutLabeled": "Icônes et étiquettes",
|
||
"moveToolbar": "Déplacer la barre d'outils",
|
||
"moveToolbarHint": "Faites glisser pour repositionner la barre d'outils",
|
||
"paste": "Coller l'image",
|
||
"pasteImage": "Coller une image depuis le presse-papiers (images uniquement)",
|
||
"retry": "Réessayer",
|
||
"showToolbar": "Développer la barre d'outils",
|
||
"upload": "Télécharger une image",
|
||
"uploadImage": "Téléversez une image sur l'hôte",
|
||
"uploadingImage": "Téléversement..."
|
||
},
|
||
"history": {
|
||
"noTerminalSelected": "Aucun terminal sélectionné",
|
||
"noTerminalSelectedHint": "Ouvrez un onglet de terminal SSH pour voir son historique de commandes",
|
||
"searchPlaceholder": "Rechercher dans l'historique...",
|
||
"clearAll": "Tout effacer",
|
||
"noHistoryEntries": "Aucune entrée d'historique",
|
||
"trackingDisabled": "Le suivi de l'historique est désactivé",
|
||
"trackingDisabledHint": "Activez l'historique des commandes dans l'onglet Terminal SSH de cet hôte.",
|
||
"commandCount_one": "{{count}} commande",
|
||
"commandCount_other": "{{count}} commandes"
|
||
},
|
||
"touchInput": {
|
||
"enabled": "Activer l'entrée tactile",
|
||
"enabledDesc": "Autoriser le défilement tactile à un doigt dans les terminaux",
|
||
"momentumEnabled": "Activer l'élan",
|
||
"momentumEnabledDesc": "Continuez à faire défiler brièvement après un glissement.",
|
||
"advanced": "Avancé",
|
||
"resetDefaults": "Rétablir les paramètres par défaut",
|
||
"dragThreshold": "Seuil de glissement",
|
||
"maxWheelDelta": "Delta de roue maximal",
|
||
"momentumSampleWindow": "fenêtre d'échantillonnage de l'impulsion",
|
||
"releaseGracePeriod": "période de grâce pour la libération",
|
||
"minimumVelocity": "Vitesse minimale",
|
||
"maximumVelocity": "Vitesse maximale",
|
||
"maximumDuration": "Durée maximale",
|
||
"maximumTravel": "Voyage maximal",
|
||
"decayTime": "Temps de dégradation",
|
||
"pixelsPerTick": "Pixels par tick",
|
||
"maximumFrameInterval": "Intervalle d'images maximal",
|
||
"maximumTicksPerFrame": "Nombre maximal de ticks par image"
|
||
},
|
||
"imageStorage": {
|
||
"instanceId": "ID d'instance de session du terminal",
|
||
"instanceIdDesc": "ID d'instance de l'un de vos onglets de terminal connectés, utilisé pour tester la visibilité.",
|
||
"selectedModeUnavailable": "Indisponible",
|
||
"test": "Tester",
|
||
"testing": "Essai...",
|
||
"testFailed": "Échec du test du stockage d'images",
|
||
"testConnected": "La session terminal est connectée.",
|
||
"testNotConnected": "Aucune session de terminal connectée avec cet ID d'instance.",
|
||
"testSelectedMode": "Un téléchargement utiliserait : {{mode}}",
|
||
"testLocalVisible": "Le répertoire local est visible depuis l'hôte connecté.",
|
||
"testLocalNotVisible": "Le répertoire local n'est PAS visible depuis l'hôte connecté."
|
||
},
|
||
"settings": {
|
||
"admin": {
|
||
"group": {
|
||
"touch": "Entrée tactile",
|
||
"images": "Stockage d'images",
|
||
"sessions": "Sessions",
|
||
"newHosts": "Nouveaux hôtes"
|
||
},
|
||
"sessionTimeoutMinutes": {
|
||
"label": "Persistance de session terminale",
|
||
"description": "Durée pendant laquelle un terminal déconnecté reste actif sur le serveur avant d'être fermé. Minimum : 1 minute, maximum : 1 440 minutes. Pour les sessions qui doivent durer plus longtemps, activez Auto-Tmux sur l'hôte."
|
||
},
|
||
"commandHistoryEnabled": {
|
||
"label": "Historique des commandes",
|
||
"description": "Autoriser l'enregistrement de l'historique des commandes. Lorsque désactivé, l'historique n'est pas sauvegardé, indépendamment des paramètres par hôte."
|
||
},
|
||
"commandHistoryForNewHosts": {
|
||
"label": "Historique des commandes pour les nouveaux hôtes",
|
||
"description": "Indique si les nouveaux hôtes doivent démarrer avec l'historique des commandes activé."
|
||
},
|
||
"imageStorageMode": {
|
||
"label": "Mode de stockage",
|
||
"description": "Emplacement où sont écrites les images du terminal collées et téléchargées. La sélection automatique par connexion (locale et distante [SFTP]) est fixe.",
|
||
"auto": "Auto",
|
||
"local": "Locale",
|
||
"remoteSftp": "Accès distant (SFTP)"
|
||
},
|
||
"imageLocalDir": {
|
||
"label": "Répertoire local",
|
||
"description": "Chemin absolu sur le serveur Termix où le mode local enregistre les images. Jamais affiché après l'enregistrement. Un répertoire vide utilise TERMIX_IMAGE_DIR."
|
||
},
|
||
"imageHostPath": {
|
||
"label": "Chemin hôte",
|
||
"description": "Vue côté hôte du répertoire local reçu par les agents terminaux."
|
||
},
|
||
"imageTtlMs": {
|
||
"label": "TTL (ms)",
|
||
"description": "Durée de conservation d'une image téléchargée, en millisecondes. La valeur par défaut est TERMIX_IMAGE_TTL_MS, soit une heure."
|
||
},
|
||
"imageMaxCount": {
|
||
"label": "Nombre maximal d'images",
|
||
"description": "La plupart des images sont conservées simultanément. Un champ vide utilise TERMIX_MAX_IMAGE_COUNT ou 100."
|
||
},
|
||
"imageMaxBytes": {
|
||
"label": "Capacité de stockage maximale",
|
||
"description": "La plupart des octets d'images sont stockés simultanément. Un espace vide utilise TERMIX_MAX_IMAGE_STORAGE_BYTES ou 5 Gio."
|
||
},
|
||
"sessionPersistence": {
|
||
"label": "Conserver les sessions après la déconnexion",
|
||
"description": "Maintenez un terminal déconnecté actif sur le serveur pendant la durée indiquée ci-dessus, afin que la réouverture de son onglet reprenne là où elle s'était arrêtée."
|
||
},
|
||
"newHostAutoTmux": {
|
||
"label": "Auto-Tmux",
|
||
"description": "Exécutez les terminaux des nouveaux hôtes à l'intérieur de tmux afin que les sessions persistent après les déconnexions (nécessite tmux sur l'hôte)."
|
||
},
|
||
"newHostTheme": {
|
||
"label": "Thème pour les nouveaux hôtes",
|
||
"description": "Le thème du terminal avec lequel un nouvel hôte démarre."
|
||
},
|
||
"newHostFontFamily": {
|
||
"label": "Police de caractères pour les nouveaux hôtes",
|
||
"description": "La police de caractères du terminal avec laquelle un nouvel hôte démarre."
|
||
},
|
||
"newHostFontSize": {
|
||
"label": "Taille de police pour les nouveaux hôtes",
|
||
"description": "La taille de la police du terminal par défaut d'un nouvel hôte, en pixels."
|
||
},
|
||
"newHostCursorStyle": {
|
||
"label": "Style de curseur pour les nouveaux hôtes"
|
||
},
|
||
"newHostCursorBlink": {
|
||
"label": "Curseur clignotant pour les nouveaux hôtes"
|
||
}
|
||
},
|
||
"host": {
|
||
"enableTerminalToolbar": {
|
||
"label": "Activer la barre d'outils du terminal",
|
||
"description": "Afficher une barre d'outils d'accès rapide ancrée au terminal actif pour les outils et les statistiques en direct de cet hôte."
|
||
},
|
||
"terminalToolbarPosition": {
|
||
"label": "Position de la barre d'outils",
|
||
"description": "L'emplacement de la barre d'outils dans le terminal. Vous pouvez toujours la déplacer à partir de là.",
|
||
"bottom": "centre inférieur",
|
||
"bottomLeft": "En bas à gauche",
|
||
"bottomRight": "En bas à droite",
|
||
"top": "Centre supérieur",
|
||
"topLeft": "En haut à gauche",
|
||
"topRight": "En haut à droite"
|
||
},
|
||
"terminalToolbarStartState": {
|
||
"label": "État initial de la barre d'outils",
|
||
"description": "Que la barre d'outils s'ouvre en version développée ou réduite lors de la connexion au terminal",
|
||
"expanded": "Étendu",
|
||
"collapsed": "Minimisé"
|
||
},
|
||
"terminalToolbarDisplay": {
|
||
"label": "Mode d'affichage de la barre d'outils",
|
||
"description": "Affichage des boutons de la barre d'outils. L'option « Dernier outil utilisé » conserve l'élément sélectionné dans la barre d'outils.",
|
||
"remember": "Dernière utilisation",
|
||
"icon": "Icône uniquement",
|
||
"labeled": "Icônes et étiquettes",
|
||
"expanded": "Statistiques ajoutées"
|
||
},
|
||
"terminalToolbarShowStatus": {
|
||
"label": "Afficher les statistiques en direct",
|
||
"description": "Afficher les statistiques de l'hôte en direct au-dessus des boutons de la barre d'outils en mode étendu"
|
||
},
|
||
"terminalToolbarFade": {
|
||
"label": "S'estomper lorsqu'on est inactif",
|
||
"description": "Faites disparaître la barre d'outils jusqu'à ce que vous la survoliez."
|
||
},
|
||
"enableCommandHistory": {
|
||
"label": "Historique des commandes",
|
||
"description": "Enregistrer les commandes exécutées dans ce terminal pour l'historique et l'autocomplétion"
|
||
},
|
||
"enableTerminal": {
|
||
"label": "Activer le terminal",
|
||
"description": "Fournir un terminal SSH pour cet hôte."
|
||
},
|
||
"inheritAppearance": {
|
||
"label": "Utiliser les paramètres par défaut de l'utilisateur"
|
||
},
|
||
"theme": {
|
||
"label": "Thème"
|
||
},
|
||
"cursorBlink": {
|
||
"label": "Curseur clignotant"
|
||
},
|
||
"cursorStyle": {
|
||
"label": "Style de curseur"
|
||
},
|
||
"fontSize": {
|
||
"label": "Taille de la police"
|
||
},
|
||
"fontFamily": {
|
||
"label": "Fonte"
|
||
},
|
||
"scrollback": {
|
||
"label": "Retour en arrière"
|
||
},
|
||
"letterSpacing": {
|
||
"label": "Espacement des lettres"
|
||
},
|
||
"lineHeight": {
|
||
"label": "Hauteur de ligne"
|
||
},
|
||
"bellStyle": {
|
||
"label": "Cloche"
|
||
},
|
||
"minimumContrastRatio": {
|
||
"label": "Rapport de contraste minimal"
|
||
},
|
||
"backgroundImage": {
|
||
"label": "Image de fond"
|
||
},
|
||
"backgroundImageOpacity": {
|
||
"label": "opacité de l'image de fond"
|
||
},
|
||
"customThemeColors": {
|
||
"label": "Couleurs de thème personnalisées"
|
||
},
|
||
"rightClickSelectsWord": {
|
||
"label": "Un clic droit sélectionne le mot"
|
||
},
|
||
"macOptionIsMeta": {
|
||
"label": "L'option est Meta"
|
||
},
|
||
"fastScrollModifier": {
|
||
"label": "Touche de défilement rapide"
|
||
},
|
||
"fastScrollSensitivity": {
|
||
"label": "Vitesse de défilement rapide"
|
||
},
|
||
"backspaceMode": {
|
||
"label": "Retour arrière"
|
||
},
|
||
"autoMosh": {
|
||
"label": "Auto mosh"
|
||
},
|
||
"moshCommand": {
|
||
"label": "Commandement Mosh"
|
||
},
|
||
"autoTmux": {
|
||
"label": "Auto tmux"
|
||
},
|
||
"useSSHTitle": {
|
||
"label": "Utilisez le titre SSH"
|
||
},
|
||
"syntaxHighlighting": {
|
||
"label": "coloration syntaxique"
|
||
},
|
||
"syntaxHighlightingOptions": {
|
||
"label": "catégories de coloration syntaxique"
|
||
},
|
||
"linkClickBehavior": {
|
||
"label": "Lien à cliquer"
|
||
},
|
||
"localEcho": {
|
||
"label": "Écho local"
|
||
},
|
||
"passwordPromptAutoFill": {
|
||
"label": "Proposer de remplir les invites de mot de passe"
|
||
},
|
||
"sudoPasswordAutoFill": {
|
||
"label": "Remplir les invites sudo"
|
||
},
|
||
"autoReconnect": {
|
||
"label": "Reconnexion automatique"
|
||
}
|
||
},
|
||
"user": {
|
||
"commandAutocomplete": {
|
||
"label": "Autocomplétion des commandes",
|
||
"description": "Afficher la saisie semi-automatique pendant la saisie si vous appuyez sur Tab"
|
||
},
|
||
"localEcho": {
|
||
"label": "Écho local",
|
||
"description": "Réduisez la latence perçue grâce à une prédiction locale et sécurisée des frappes au clavier"
|
||
},
|
||
"linkClickBehavior": {
|
||
"label": "Clic lien terminal",
|
||
"description": "Comportement par défaut lors du clic sur un lien dans le terminal"
|
||
},
|
||
"customThemes": {
|
||
"label": "Thèmes enregistrés"
|
||
}
|
||
}
|
||
},
|
||
"palette": {
|
||
"localTerminal": "Terminal local"
|
||
},
|
||
"permissions": {
|
||
"sessions": {
|
||
"title": "Utilisez des sessions de terminal en direct",
|
||
"description": "Permet à d'autres fonctionnalités, telles que le partage et l'enregistrement de session, d'accéder à vos sessions de terminal en direct."
|
||
},
|
||
"history": {
|
||
"title": "Lire l'historique des commandes",
|
||
"description": "Permet à d'autres fonctionnalités, telles que l'assistant IA, de lire votre historique de commandes."
|
||
}
|
||
},
|
||
"hosts": {
|
||
"tabTerminal": "Terminal",
|
||
"addHost": "Ajouter un hôte",
|
||
"applyGlobalThemeTooltip": "Appliquer ce thème",
|
||
"backgroundImageDesc": "URL facultative pour une image d’arrière-plan du terminal",
|
||
"backgroundImageLabel": "URL de l’image d’arrière-plan",
|
||
"backgroundImageOpacityLabel": "Opacité de l’image d’arrière-plan",
|
||
"backspaceMode": "Mode Retour arrière",
|
||
"backspaceModeControlH": "Contrôle-H (BS)",
|
||
"backspaceModeLabel": "Mode de retour arrière",
|
||
"backspaceModeNormal": "Normal (DEL)",
|
||
"behaviorAndAdvanced": "Comportement et options avancées",
|
||
"bellStyle": "Style de sonnerie",
|
||
"bellStyleBoth": "Les deux",
|
||
"bellStyleLabel": "Style du bip",
|
||
"bellStyleNone": "Aucune",
|
||
"bellStyleSound": "Son",
|
||
"bellStyleVisual": "Visuel",
|
||
"colorTheme": "Thème de couleurs",
|
||
"cursorBlink": "Clignotement du curseur",
|
||
"cursorBlinking": "Clignotement du curseur",
|
||
"cursorBlinkingDesc": "Activer l’animation de clignotement pour le curseur du terminal",
|
||
"cursorStyle": "Style de curseur",
|
||
"cursorStyleBar": "Bar",
|
||
"cursorStyleBlock": "Bloc",
|
||
"cursorStyleLabel": "Style du curseur",
|
||
"cursorStyleUnderline": "Souligner",
|
||
"customThemeAnsiColors": "Couleurs ANSI",
|
||
"customThemeBackground": "Arrière-plan",
|
||
"customThemeBlack": "Noir",
|
||
"customThemeBlue": "Bleu",
|
||
"customThemeBrightBlack": "Noir brillant",
|
||
"customThemeBrightBlue": "Bleu brillant",
|
||
"customThemeBrightCyan": "Cyan brillant",
|
||
"customThemeBrightGreen": "Vert brillant",
|
||
"customThemeBrightMagenta": "Magenta brillant",
|
||
"customThemeBrightRed": "Rouge brillant",
|
||
"customThemeBrightWhite": "Blanc brillant",
|
||
"customThemeBrightYellow": "Jaune brillant",
|
||
"customThemeColors": "Couleurs personnalisées",
|
||
"customThemeCursor": "Curseur",
|
||
"customThemeCursorAccent": "Accent du curseur",
|
||
"customThemeCyan": "Cyan",
|
||
"customThemeForeground": "Premier plan",
|
||
"customThemeGreen": "Vert",
|
||
"customThemeMagenta": "Magenta",
|
||
"customThemeRed": "Rouge",
|
||
"customThemeResetTooltip": "Réinitialiser aux valeurs par défaut",
|
||
"customThemeSelection": "Sélection",
|
||
"customThemeWhite": "Blanc",
|
||
"customThemeYellow": "Jaune",
|
||
"deleteGlobalThemeTooltip": "Supprimer ce thème",
|
||
"docsLink": "Voir la documentation",
|
||
"enableAutoMosh": "Activer Auto-Mosh",
|
||
"enableAutoMoshDesc": "Préférer Mosh à SSH si disponible",
|
||
"enableAutoTmux": "Activer Auto-Tmux",
|
||
"enableAutoTmuxDesc": "Pour que votre shell et tout ce qui y est exécuté restent actifs malgré les déconnexions et les redémarrages du navigateur, exécutez la commande dans tmux (tmux doit être installé sur l'hôte).",
|
||
"fastScrollModifier": "Modificateur de défilement rapide",
|
||
"fastScrollModifierAlt": "Alt",
|
||
"fastScrollModifierCtrl": "Ctrl",
|
||
"fastScrollModifierLabel": "Modificateur de défilement rapide",
|
||
"fastScrollModifierShift": "Maj",
|
||
"fastScrollSensitivity": "Sensibilité du défilement rapide",
|
||
"fastScrollSensitivityLabel": "Sensibilité du défilement rapide",
|
||
"fontFamily": "Famille de polices",
|
||
"fontFamilyCustomHint": "Choisissez une police fournie ou sélectionnez « Personnalisée » et saisissez le nom exact d'une police déjà installée sur votre système (par exemple, MesloLGS NF, Noto Sans Mono). Termix ne peut pas installer de polices ; vous devez d'abord les installer sur votre système d'exploitation.",
|
||
"fontFamilyCustomOption": "Coutume...",
|
||
"fontFamilyCustomPlaceholder": "Nom exact de la police, par exemple MesloLGS NF",
|
||
"fontFamilyLabel": "Police de caractères",
|
||
"fontSize": "Taille de la police",
|
||
"fontSizeLabel": "Taille de police",
|
||
"hostNotFound": "Hôte introuvable",
|
||
"letterSpacing": "Espacement des lettres",
|
||
"letterSpacingPx": "Espacement des lettres (px)",
|
||
"lineHeight": "Hauteur de ligne",
|
||
"lineHeightLabel": "Hauteur de ligne",
|
||
"linkClickBehaviorConfirm": "Afficher une fenêtre contextuelle pour ouvrir ou copier",
|
||
"linkClickBehaviorDesc": "Contrôle ce qui se passe lorsque vous cliquez sur un lien dans le terminal. Utilisez « Par défaut » pour suivre le paramètre de l'application.",
|
||
"linkClickBehaviorDirect": "Ouvrir directement",
|
||
"linkClickBehaviorLabel": "Comportement au clic sur un lien",
|
||
"loadingHost": "Chargement de l'hôte...",
|
||
"localEchoAuto": "Automatique",
|
||
"localEchoDesc": "Prédiction locale des frappes au clavier imprimables en toute sécurité, même sur les connexions lentes. Les invites de mot de passe et les entrées de contrôle ne sont jamais affichées.",
|
||
"localEchoLabel": "Écho local",
|
||
"localEchoOff": "Désactivée",
|
||
"localEchoOn": "Toujours allumé",
|
||
"macOptionIsMetaLabel": "La touche Option envoie des métadonnées",
|
||
"macOptionIsMetaShortDesc": "Désactiver la saisie de caractères spéciaux (comme @ ou |) avec la touche Option/Alt sur macOS au lieu d'envoyer des métadonnées",
|
||
"moshCommand": "Commande MOSH",
|
||
"moshCommandLabel": "Commande Mosh",
|
||
"noSavedThemes": "Aucun thème enregistré pour le moment",
|
||
"none": "Aucun",
|
||
"passwordPromptAutoFillDesc": "Proposez de renseigner le mot de passe enregistré lorsque le terminal le demande. Désactivez cette option pour ne jamais renseigner automatiquement les mots de passe sur cet hôte.",
|
||
"passwordPromptAutoFillLabel": "Proposer le remplissage automatique du mot de passe",
|
||
"autoReconnectLabel": "Reconnexion automatique",
|
||
"autoReconnectDesc": "La connexion se rétablit automatiquement en cas de déconnexion SSH, par exemple après une brève interruption réseau ou une mise en veille. L'historique de défilement est conservé.",
|
||
"rightClickSelectsWord": "Sélection de mot par clic droit",
|
||
"rightClickSelectsWordLabel": "Clic droit sélectionne le mot",
|
||
"rightClickSelectsWordShortDesc": "Sélectionne le mot sous le curseur au clic droit",
|
||
"saveAsGlobalTheme": "Enregistrer comme thème global",
|
||
"saveGlobalThemeError": "Impossible d'enregistrer le thème",
|
||
"saveGlobalThemeNamePrompt": "Saisissez un nom pour ce thème",
|
||
"saveGlobalThemeSuccess": "Thème enregistré",
|
||
"savedThemesLabel": "Thèmes enregistrés",
|
||
"scrollbackBufferLabel": "Mémoire de défilement",
|
||
"scrollbackMaxLines": "Nombre maximal de lignes conservées dans l'historique",
|
||
"sudoPasswordAutoFill": "Remplissage automatique du mot de passe sudo",
|
||
"sudoPasswordAutoFillDesc": "Enregistrer un mot de passe sudo pour que les métriques de l'hôte, les invites du terminal et autres puissent exécuter automatiquement des commandes privilégiées.",
|
||
"sudoPasswordAutoFillLabel": "Remplissage automatique du mot de passe sudo",
|
||
"syntaxCategoryIpAddresses": "Adresses IP",
|
||
"syntaxCategoryIpAddressesDesc": "192.168.1.1, 10.0.0.1:8080",
|
||
"syntaxCategoryLogLevels": "Niveaux de log",
|
||
"syntaxCategoryLogLevelsDesc": "error, warn, info, debug, fatal",
|
||
"syntaxCategoryNumbers": "Nombres étiquetés",
|
||
"syntaxCategoryNumbersDesc": "port 8080, exit 1, status 404",
|
||
"syntaxCategoryPaths": "Chemins de fichiers",
|
||
"syntaxCategoryPathsDesc": "/usr/share/doc, ~/file.txt",
|
||
"syntaxCategoryTimestamps": "Horodatages",
|
||
"syntaxCategoryTimestampsDesc": "[12:34:56], 2024-01-15",
|
||
"syntaxCategoryUrls": "URLs",
|
||
"syntaxCategoryUrlsDesc": "https://example.com",
|
||
"syntaxHighlightingDesc": "Coloriser la sortie du terminal (erreurs, chemins, adresses IP, horodatages)",
|
||
"syntaxHighlightingLabel": "Coloration syntaxique",
|
||
"terminalAppearance": "Apparence du terminal",
|
||
"theme": "Thème",
|
||
"themePreview": "Aperçu du thème",
|
||
"useSSHTitleDesc": "Mettre à jour le titre de l'onglet à partir du titre de la fenêtre du shell au lieu du nom d'hôte",
|
||
"useSSHTitleLabel": "Utiliser le titre de la fenêtre SSH",
|
||
"enableTunnel": "Activer le tunnel",
|
||
"enableFileManager": "Activer le gestionnaire de fichiers",
|
||
"enableDocker": "Activer Docker",
|
||
"startupSnippet": "Extrait de démarrage",
|
||
"quickActions": "Actions rapides",
|
||
"proxmoxLastSyncStatus": {
|
||
"success": "Succès"
|
||
},
|
||
"proxmoxResultSkippedNoIp": "{{count}} ignoré (aucune adresse IP trouvée)",
|
||
"proxmoxStatsUrlCopied": "URL des statistiques Proxmox copiée dans le presse-papiers",
|
||
"rdpUrlCopied": "URL RDP copiée",
|
||
"vncUrlCopied": "URL VNC copiée",
|
||
"filterAuthStepca": "Étape CA",
|
||
"guac": {
|
||
"noCredential": "Aucun identifiant (saisie directe ci-dessous)",
|
||
"authTypeDirect": "Direct",
|
||
"authTypeCredential": "Identifiant",
|
||
"authTypeNone": "Aucune",
|
||
"recordingPath": "Chemin d'enregistrement",
|
||
"recordingName": "Nom de l'enregistrement",
|
||
"saveHostFirst": "Enregistrez d'abord l'hôte.",
|
||
"sharingOptionsAfterSave": "Les options de partage sont disponibles après l'enregistrement de l'hôte.",
|
||
"permissionLevel": "Niveau de permission",
|
||
"typeHeader": "Type",
|
||
"targetHeader": "Cible",
|
||
"permissionHeader": "Permission",
|
||
"cancelBtn": "Annuler",
|
||
"savingBtn": "Enregistrement...",
|
||
"updateHostBtn": "Mettre à jour l'hôte",
|
||
"addHostBtn": "Ajouter un hôte"
|
||
},
|
||
"filterAuthVault": "Sauter"
|
||
},
|
||
"nav": {
|
||
"history": "Historique",
|
||
"localTerminal": "Terminal local",
|
||
"sshTools": "Outils SSH",
|
||
"terminal": "Terminal",
|
||
"macros": "Macros"
|
||
},
|
||
"sshTools": {
|
||
"broadcastInputPlaceholder": "Tapez ici pour diffuser les frappes...",
|
||
"copyOnSelect": "Copie automatique du texte sélectionné",
|
||
"enableRightClickCopyPaste": "Activer le copier/coller par clic droit",
|
||
"fillPassword": "Remplir le mot de passe",
|
||
"fillPasswordMissing": "Aucun mot de passe enregistré pour {{count}} terminal(s) sélectionné(s)",
|
||
"fillPasswordSuccess": "Mot de passe rempli dans {{count}} terminal(s)",
|
||
"keyRecordingTitle": "Enregistrement des touches",
|
||
"noTerminalTabsOpen": "Aucun onglet de terminal ouvert",
|
||
"recordToTerminals": "Enregistrer vers les terminaux",
|
||
"selectAll": "Tout",
|
||
"selectNone": "Aucune",
|
||
"selectTerminalsAbove": "Sélectionner les terminaux ci-dessus",
|
||
"settingsTitle": "Paramètres",
|
||
"startRecording": "Démarrer l'enregistrement",
|
||
"stopRecording": "Arrêter l'enregistrement"
|
||
},
|
||
"keybindings": {
|
||
"copy": "Copier la sélection",
|
||
"paste": "Coller",
|
||
"sendControlCode": "Envoyer le signal Ctrl+lettre",
|
||
"sendText": "Envoyer un SMS",
|
||
"controlCodeLabel": "Lettre",
|
||
"textLabel": "Texte à envoyer",
|
||
"appendEnterLabel": "Appuyez sur Entrée après l'envoi",
|
||
"clipboardPermissionNote": "Il se peut que certains navigateurs demandent l'autorisation d'accéder au presse-papiers lors de la première utilisation.",
|
||
"textRequired": "Saisissez le texte à envoyer",
|
||
"controlCodeRequired": "Saisissez une seule lettre pour le code de contrôle",
|
||
"builtIn": {
|
||
"copyCtrlC": "Copier la sélection (Ctrl+C, uniquement lorsque du texte est sélectionné)",
|
||
"copyCtrlShiftC": "Copier la sélection (Ctrl+Maj+C)",
|
||
"copyCmdC": "Copier la sélection (Cmd+C)",
|
||
"pasteCtrlShiftV": "Coller depuis le presse-papiers (Ctrl+Maj+V)",
|
||
"ctrlW": "Envoyer Ctrl+W à l'invite de commandes (empêche la fermeture de l'onglet du navigateur)",
|
||
"ctrlT": "Envoyer Ctrl+T à l'invite de commandes (empêche l'ouverture d'un onglet du navigateur)",
|
||
"ctrlN": "Envoyer Ctrl+N à l'invite de commandes (empêchement de l'ouverture d'une fenêtre de navigateur)",
|
||
"ctrlQ": "Envoyer Ctrl+Q à l'invite de commandes (empêchement de la fermeture du navigateur)"
|
||
}
|
||
},
|
||
"macros": {
|
||
"title": "Macros",
|
||
"description": "Exécutez une série de commandes enregistrées dans un terminal et réagissez à la réponse du serveur.",
|
||
"target": "Cible",
|
||
"noTerminal": "Aucun terminal ouvert",
|
||
"empty": "Pas encore de macros",
|
||
"emptyHint": "Créez une macro pour automatiser un flux de terminal, comme la connexion, le redémarrage d'un service ou la réponse à des invites.",
|
||
"create": "Nouvelle macro",
|
||
"back": "Retour aux macros",
|
||
"name": "Nom",
|
||
"namePlaceholder": "Redémarrer le serveur web",
|
||
"nameRequired": "Donnez un nom à la macro avant de l'enregistrer.",
|
||
"descriptionLabel": "Description",
|
||
"descriptionPlaceholder": "Fonctionnement de cette macro (facultatif)",
|
||
"unsaved": "Modifications non enregistrées",
|
||
"save": "Enregistrer",
|
||
"saved": "Macro enregistrée",
|
||
"saveFailed": "Impossible d'enregistrer la macro",
|
||
"delete": "Supprimer",
|
||
"deleteTitle": "Supprimer cette macro ?",
|
||
"deleteBody": "\"{{name}}\" sera définitivement supprimé. Cette action est irréversible.",
|
||
"deleted": "Macro supprimée",
|
||
"cancel": "Annuler",
|
||
"run": "Exécuter",
|
||
"stop": "Stop",
|
||
"running": "En cours d'exécution...",
|
||
"completed": "Macro terminé",
|
||
"failed": "Échec de la macro",
|
||
"loadFailed": "Impossible de charger les macros",
|
||
"needTerminal": "Ouvrez et connectez d'abord un terminal.",
|
||
"noSteps": "Cette macro ne comporte pas encore d'étapes. Ajoutez-en une ci-dessous.",
|
||
"addStep": "Ajouter une étape",
|
||
"stepNumber": "Étape {{number}}",
|
||
"removeStep": "Supprimer l'étape",
|
||
"confirmRunTitle": "Exécuter cette macro ?",
|
||
"confirmRunBody": "\"{{name}}\" enverra des commandes à {{host}}.",
|
||
"confirmRunAction": "Exécuter une macro",
|
||
"stepTypes": {
|
||
"send": {
|
||
"label": "Envoyer la commande",
|
||
"help": "Saisit du texte dans le terminal, comme si vous l'aviez saisi manuellement."
|
||
},
|
||
"wait": {
|
||
"label": "Attendez la sortie",
|
||
"help": "Il y a une pause jusqu'à ce que le serveur affiche le texte que vous avez indiqué, comme une invite de mot de passe."
|
||
},
|
||
"delay": {
|
||
"label": "Pause",
|
||
"help": "Attendre un laps de temps fixe avant de passer à l'étape suivante."
|
||
},
|
||
"if": {
|
||
"label": "Si la sortie contient",
|
||
"help": "Vérifie tout ce que le serveur a imprimé jusqu'à présent, puis exécute l'une des deux branches."
|
||
},
|
||
"repeat": {
|
||
"label": "Répéter",
|
||
"help": "Exécute les étapes qu'il contient un nombre de fois défini."
|
||
}
|
||
},
|
||
"send": {
|
||
"text": "Commande ou texte",
|
||
"textPlaceholder": "systemctl redémarrer nginx",
|
||
"pressEnter": "Appuyez sur Entrée après l'envoi",
|
||
"pressEnterHelp": "Désactivez cette option pour saisir du texte sans le soumettre."
|
||
},
|
||
"wait": {
|
||
"pattern": "Attendez que la sortie contienne",
|
||
"patternPlaceholder": "mot de passe:",
|
||
"timeout": "Abandonner après",
|
||
"onTimeout": "S'il n'apparaît jamais",
|
||
"stop": "Arrêtez la macro",
|
||
"continue": "Continuez quand même"
|
||
},
|
||
"delay": {
|
||
"duration": "Attendre"
|
||
},
|
||
"ifStep": {
|
||
"pattern": "Si la sortie contient",
|
||
"patternPlaceholder": "Actif : actif (en cours d'exécution)",
|
||
"then": "Ensuite, faites ceci",
|
||
"else": "Sinon, faites ceci.",
|
||
"emptyBranch": "Pas d'étapes"
|
||
},
|
||
"repeat": {
|
||
"count": "Nombre de fois",
|
||
"times": "fois"
|
||
},
|
||
"match": {
|
||
"useRegex": "Correspondance avec une expression régulière",
|
||
"useRegexHelp": "Laissez cette section de côté pour que le texte corresponde exactement à ce qui est écrit.",
|
||
"invalidRegex": "Il ne s'agit pas d'une expression régulière valide ; elle sera interprétée comme du texte brut."
|
||
},
|
||
"seconds": "secondes",
|
||
"secondsShort": "{{count}}s"
|
||
},
|
||
"errors": {
|
||
"remoteServerRequired": "Serveur distant requis. Connectez un serveur distant dans les paramètres pour utiliser ce type de connexion."
|
||
},
|
||
"plugin": {
|
||
"name": "SSH Terminal"
|
||
}
|
||
}
|