Align i18n locale coverage (#878)

This commit is contained in:
ekko
2026-05-20 17:13:32 +08:00
committed by GitHub
parent 6578873d9e
commit cd77e5ba2e
8 changed files with 1843 additions and 537 deletions
+299 -87
View File
@@ -63,6 +63,9 @@ export default {
confirm: 'Confirmer',
expand: 'Developper',
collapse: 'Reduire',
stop: 'Arrêter',
start: 'Démarrer',
expired: 'Expiré',
},
// Sidebar
@@ -85,7 +88,7 @@ export default {
files: 'Fichiers',
groupChat: 'Chat de groupe',
groupConversation: 'Conversation',
groupConversationShort: 'Conv',
groupConversationShort: 'Conv.',
groupAgent: 'Agent',
groupAgentShort: 'Agent',
groupSystem: 'Systeme',
@@ -105,6 +108,12 @@ export default {
nodeVersionWarning: 'Node.js v{version} detecte. Veuillez passer a la version 23 ou ulterieure.',
changelog: 'Journal des modifications',
noChangelog: 'Aucun journal disponible',
kanban: 'Kanban',
groupTools: 'Outils',
groupPlatform: 'Plateforme',
gateways: 'Passerelles',
expand: 'Déplier le menu',
collapse: 'Replier le menu',
},
// Drawer
@@ -183,7 +192,7 @@ export default {
pin: 'Épingler',
unpin: 'Désépingler',
pinned: 'Épinglés',
chatMode: 'Chat',
chatMode: 'Mode chat',
liveMode: 'Direct',
liveSessions: 'Sessions en direct',
recentBadge: 'Récent',
@@ -210,7 +219,7 @@ export default {
arguments: 'Arguments',
result: 'Resultat',
truncated: '... (tronque)',
executionDuration: 'Execution time', thinkingLabel: 'Raisonnement',
executionDuration: 'Temps dexécution', thinkingLabel: 'Raisonnement',
thinkingInProgress: 'En réflexion…',
thinkingShow: 'Afficher le raisonnement',
thinkingHide: 'Masquer le raisonnement',
@@ -224,6 +233,32 @@ export default {
resumeSpeech: 'Reprendre',
stopSpeech: 'Arrêter',
speechNotSupported: 'Reproduction vocale non prise en charge dans ce navigateur',
searchEnterHint: 'Entrée pour ouvrir · Échap pour fermer',
searchHint: 'Cmd/Ctrl+K',
searchScope: 'Portée de recherche : base locale des sessions Web UI uniquement ; les sessions dhistorique Hermes en lecture seule ne sont pas incluses.',
searchFailed: 'Échec de la recherche de sessions',
searchNoSnippet: 'Aucun extrait disponible',
searchNoResults: 'Aucune session correspondante',
searchRecent: 'Session récente',
searchEmpty: 'Sessions récentes',
searchPlaceholder: 'Rechercher des sessions...',
searchSubtitle: 'Rechercher par titre ou contenu des messages',
searchTitle: 'Rechercher des sessions',
stopGateway: 'Arrêter le gateway',
start: 'Démarrer',
workspaceSetFailed: 'Échec de la définition du workspace',
workspaceSet: 'Workspace défini',
workspacePlaceholder: 'Saisissez le chemin du projet, ex. /home/user/project',
workspace: 'Espace de travail',
setWorkspaceTitle: 'Définir le workspace de session',
setWorkspace: 'Définir le workspace',
modelSetFailed: 'Échec de la définition du modèle',
modelSet: 'Modèle défini',
setModelTitle: 'Définir le modèle de session',
setModel: 'Définir le modèle',
newCliChat: 'Nouveau CLI',
cliEmptyState: 'Démarrer un chat CLI',
autoPlaySpeech: 'Lire la voix automatiquement',
},
// Jobs
@@ -377,9 +412,9 @@ jobTriggered: 'Job declenche',
env: '{count} env',
},
metadata: {
agentRoot: 'Agent root',
agentRoot: 'Racine de lagent',
python: 'Python',
scanCwd: 'Scan cwd',
scanCwd: 'Analyser cwd',
projectPlugins: 'Plugins du projet',
},
},
@@ -405,7 +440,7 @@ jobTriggered: 'Job declenche',
title: 'Modeles',
addProvider: 'Ajouter un fournisseur',
providerType: 'Type de fournisseur',
preset: 'Preset',
preset: 'Préréglage',
custom: 'Personnalise',
selectProvider: 'Selectionner un fournisseur',
chooseProvider: 'Choisir un fournisseur...',
@@ -477,6 +512,35 @@ jobTriggered: 'Job declenche',
unexpectedFormat: 'Format de reponse inattendu',
foundModels: '{count} modeles trouves',
fetchFailed: 'Echec de la recuperation des modeles',
xaiWaiting: 'Terminez lautorisation sur la page xAI ouverte. La fenêtre se fermera automatiquement après approbation.',
xaiOpenLink: 'Ouvrir la page dautorisation xAI',
xaiLoginTitle: 'Connexion OAuth xAI Grok',
xaiExpired: 'Le lien dautorisation a expiré. Veuillez réessayer.',
xaiCopyLink: 'Copier le lien dautorisation',
xaiApproved: 'Connexion réussie !',
visibilitySelectOne: 'Conserver au moins un modèle visible',
visibilitySaved: 'Modèles visibles enregistrés',
visibilitySaveFailed: 'Échec de lenregistrement des modèles visibles',
visibilityHint: 'Affecte uniquement le sélecteur de modèles et la page Modèles de la Web UI. La configuration provider/model de Hermes CLI nest pas modifiée ; les appels utilisent toujours lID de modèle dorigine.',
showAllModels: 'Afficher tous les modèles',
searchPlaceholder: 'Rechercher des modèles...',
removeCustomModel: 'Retirer ce modèle non listé',
more: 'de plus',
models: 'Liste des modèles',
manageVisibleModelsFor: 'Gérer les modèles visibles de {name}',
manageVisibleModels: 'Gérer les modèles visibles',
getApiKey: 'Obtenir une API Key',
count: 'modèles',
aliasUseOriginal: 'Restaurer lID dorigine',
aliasTitleFor: 'Nom affiché pour {model}',
aliasTitle: 'Nom affiché du modèle',
aliasSaveFailed: 'Échec de lenregistrement du nom affiché',
aliasPlaceholder: 'Laisser vide pour utiliser lID de modèle dorigine',
aliasManageFor: 'Noms affichés pour {provider}',
aliasManage: 'Noms affichés',
aliasHint: 'Modifie uniquement le nom affiché dans la Web UI. Hermes reçoit toujours lID de modèle dorigine.',
aliasEdit: 'Renommer',
aliasCanonical: 'ID dorigine : {model}',
},
// Profiles
@@ -529,18 +593,35 @@ jobTriggered: 'Job declenche',
hasSoulMd: 'A un soul.md',
noProfiles: 'Aucun profil trouve. Creez-en un pour commencer.',
avatar: {
title: 'Custom Avatar',
customize: 'Avatar',
upload: 'Upload Image',
random: 'Randomize',
reset: 'Use Default',
hint: 'PNG, JPEG, or WebP. Max 1MB.',
invalidType: 'Please choose a PNG, JPEG, or WebP image',
tooLarge: 'Avatar image must be 1MB or smaller',
saveSuccess: 'Avatar saved',
saveFailed: 'Failed to save avatar',
resetSuccess: 'Default avatar restored',
resetFailed: 'Failed to restore default avatar',
title: 'Avatar personnalisé',
customize: 'Personnaliser lavatar',
upload: 'Importer une image',
random: 'Générer au hasard',
reset: 'Restaurer par défaut',
hint: 'PNG, JPEG ou WebP, 1 Mo maximum',
invalidType: 'Veuillez choisir une image PNG, JPEG ou WebP',
tooLarge: 'Limage davatar ne doit pas dépasser 1 Mo',
saveSuccess: 'Avatar enregistré',
saveFailed: 'Échec de lenregistrement de lavatar',
resetSuccess: 'Avatar par défaut restauré',
resetFailed: 'Échec de la restauration de lavatar par défaut',
},
runtime: {
activeProfile: 'Actuel : {name}',
bridgeWorker: 'État du Bridge',
gateway: 'Passerelle',
active: 'Actif',
activeTag: 'Actuel',
idle: 'Inactif',
running: 'En cours',
stopped: 'Arrêté',
restartGateway: 'Redémarrer le gateway',
restartProfile: 'Redémarrer le profil',
switchProfile: 'Changer de profil',
gatewayRestarted: 'Gateway redémarré : {name}',
gatewayRestartFailed: 'Échec du redémarrage du gateway',
profileRestarted: 'Profil redémarré : {name}',
profileRestartFailed: 'Échec du redémarrage du profil',
},
},
@@ -585,7 +666,7 @@ jobTriggered: 'Job declenche',
bellOnCompleteHint: 'Jouer un son lorsque l\'IA a termine',
busyInputMode: 'Mode saisie active',
busyInputModeHint: 'Permettre la saisie pendant le traitement de l\'IA',
theme: 'Theme',
theme: 'Thème',
themeHint: 'Choisir clair, sombre ou suivre les preferences du systeme',
themeLight: 'Clair',
themeDark: 'Sombre',
@@ -749,6 +830,14 @@ jobTriggered: 'Job declenche',
unlocked: 'IP debloquee',
allUnlocked: '{count} IPs debloquees',
},
models: {
apiKey: 'API Key',
apiKeyPlaceholder: 'Saisir lAPI Key',
noProviders: 'Aucun fournisseur configuré',
save: 'Enregistrer',
saveFailed: 'Échec de lenregistrement',
saved: 'Enregistré',
},
},
// Platform channel settings
@@ -757,7 +846,7 @@ jobTriggered: 'Job declenche',
requireMentionGroup: "Exiger une mention {'@'} dans les groupes pour repondre",
requireMentionChannel: "Exiger une mention {'@'} dans les canaux pour repondre",
requireMentionRoom: "Exiger une mention {'@'} dans les salles pour repondre",
reactions: 'Reactions',
reactions: 'Réactions',
reactionsHint: 'Reagir aux messages avec des emoji',
freeResponseChats: 'Discussions en reponse libre',
freeResponseChatsHint: "ID de discussions repondant sans mention {'@'} (separes par des virgules)",
@@ -809,6 +898,19 @@ jobTriggered: 'Job declenche',
qrFetching: 'Recuperation du code QR...',
qrScanHint: 'Scannez avec WeChat pour vous connecter',
qrScanedHint: 'Scanne, veuillez confirmer sur le telephone...',
qqSandboxHint: 'Activer lenvironnement sandbox (pour les tests)',
qqSandbox: 'Mode sandbox',
qqQrScanHint: 'Scannez le QR code avec QQ ou ouvrez le lien sur téléphone pour terminer lassociation',
qqMarkdownHint: 'Activer les messages au format Markdown (certains clients peuvent ne pas le prendre en charge)',
qqMarkdown: 'Support Markdown',
qqAppSecretHint: 'App Secret du bot QQ Open Platform',
qqAppSecret: 'App Secret',
qqAppIdHint: 'App ID du bot QQ Open Platform',
qqAppId: 'App ID',
allowedUsersHint: 'Liste blanche dID utilisateur ou OpenID, séparés par des virgules',
allowedUsers: 'Utilisateurs autorisés',
allowAllUsersHint: 'Autoriser les messages de tout utilisateur ; désactivez pour utiliser la liste blanche',
allowAllUsers: 'Autoriser tous les utilisateurs',
},
// Language
@@ -826,6 +928,10 @@ jobTriggered: 'Job declenche',
closeSession: 'Fermer cette session ?',
sessionExited: 'Terminee',
processExited: 'Processus termine avec le code {code}',
noSessions: 'Aucune session terminal',
connectionFailed: 'Connexion au terminal impossible',
connectionError: 'Erreur de connexion',
connectionClosed: 'Connexion fermée',
},
// Usage
@@ -844,8 +950,8 @@ jobTriggered: 'Job declenche',
date: 'Date',
tokens: 'Jetons',
cache: 'Cache',
cacheRead: 'Cache Read',
cacheWrite: 'Cache Write',
cacheRead: 'Lecture cache',
cacheWrite: 'Écriture cache',
sessions: 'Sessions',
cost: 'Cout',
noData: 'Aucune donnee d\'utilisation',
@@ -902,64 +1008,64 @@ jobTriggered: 'Job declenche',
new_0_5_17_24: 'La page d\'historique affiche désormais les enregistrements de sessions Cron',
new_0_5_17_25: 'Corriger les icônes de changement de langue et de thème écrasées dans la barre latérale réduite',
new_0_5_18_1: 'Add Skills Usage monitoring page with daily trend chart and top skills statistics',
new_0_5_18_2: 'Add CLI chat session bridge with Python agent bridge for WebSocket-based sessions',
new_0_5_18_3: 'Add Ollama Cloud provider preset with dynamic model catalog',
new_0_5_18_4: 'Support model display name renaming (aliases)',
new_0_5_18_5: 'Support model visibility management in Web UI',
new_0_5_18_6: 'Enhance usage analytics dashboard',
new_0_5_18_7: 'Docker single-container deployment with docker-compose and gateway startup fixes',
new_0_5_18_8: 'Fix plugins page HERMES_HOME fallback warning for non-default profiles',
new_0_5_18_9: 'Fix gateway stability across dev restarts and improve Windows compatibility',
new_0_5_22_1: 'Fix Hermes session list API reading the Web UI local session store instead of the Hermes profile database',
new_0_5_23_1: 'Add bridge-only chat slash commands with localized command suggestions',
new_0_5_23_2: 'Persist command history for session replay without polluting model context, usage, or compression',
new_0_5_23_3: 'Isolate gateway profile environment variables to prevent credentials leaking across profiles',
new_0_5_23_4: 'Reserve the Web UI port during gateway allocation to avoid startup conflicts',
new_0_5_23_5: 'Fix self-update restart handling so successful helper exits are not reported as failures',
new_0_5_24_1: 'Align Bridge chat with API Server handling for multimodal input, system prompt, and workspace context',
new_0_5_25_1: 'Add group chat room reset and clone actions',
new_0_5_25_2: 'Make the Web UI state directory configurable for custom deployment layouts',
new_0_5_25_3: 'Add MiMo as a TTS provider in voice settings',
new_0_5_25_4: 'Fetch custom provider model lists through the backend to avoid browser CORS failures',
new_0_5_25_5: 'Fix tool approval flow for bridge sessions',
new_0_5_25_6: 'Remove the forced CLI platform hint from bridge prompts so custom media/file instructions are preserved',
new_0_5_25_7: 'Show base64 image content correctly in user message history',
new_0_5_25_8: 'Add Playwright browser tests, chat streaming contract coverage, provider model coverage, and coverage baseline',
new_0_5_26_1: 'Support Windows and local Markdown media paths in chat history and rendered messages',
new_0_5_26_2: 'Filter empty assistant history and clear stale compression status when a new run starts',
new_0_5_26_3: 'Add locked file writes for config and profile updates to reduce concurrent write corruption',
new_0_5_26_4: 'Add QQBot and DingTalk channel settings',
new_0_5_26_5: 'Make CLI port detection portable and improve mobile terminal drawer sizing',
new_0_5_26_6: 'Isolate Bridge profile environments and fix Hermes plugin discovery across Python environments',
new_0_5_26_7: 'Explain stopped gateway states with Web UI diagnostics and keep log loading state stable',
new_0_5_26_8: 'Fix session reset mode options, custom provider base URL handling, and dynamic deliver targets',
new_0_5_26_9: 'Add a local tool-call trace visibility toggle in the chat input bar',
new_0_5_26_10: 'Support Hermes Agent package installs when no source checkout is available',
new_0_5_26_11: 'Add xAI Grok OAuth login for SuperGrok subscription users and update Grok model presets',
new_0_5_26_12: 'Expand browser, chat streaming, provider, gateway, config, plugin, and Bridge test coverage',
new_0_5_27_1: 'Add session-level model settings for Bridge chats, with independent provider and model saved per session',
new_0_5_27_2: 'Right-click a Bridge session and choose Set Model to switch the model for that session',
new_0_5_27_3: 'Runs now validate the session model and fall back to the current default model when the saved model is unavailable',
new_0_5_27_4: 'Context compression now follows the current Profile default selected model by default',
new_0_5_30_1: 'Bridge chat now preserves structured history, fixing intermittent no-response and skipped tool execution caused by text-flattened tool history',
new_0_5_30_2: 'Group chat mention routing is more reliable for multiple agents, removes each agents own mention before delivery, and keeps user display names bound after refresh',
new_0_5_30_3: 'Model pages, chat model dropdowns, and session model selection now scope providers and models to the active Profile with accurate default markers',
new_0_5_30_4: 'Gateway management is simplified: the standalone Gateway page is removed, each Profile is checked for platform configuration before starting the needed gateway, and a lightweight gateway runner handles starts and restarts',
new_0_5_30_5: 'Improve Gateway startup across Docker, Termux, and Windows with runtime-lock handling, port-conflict cleanup, background execution, and restart support',
new_0_5_30_6: 'Harden Windows compatibility for path detection, file downloads, and job/update subprocesses so they no longer flash terminal windows',
new_0_5_30_7: 'Fix config writes and provider presets: validate .env keys, route FUN-Codex through the Responses API, and refresh Z.AI/GLM model lists',
new_0_5_30_8: 'Polish frontend details including collapsed sidebar layout, short group labels, sidebar divider, and conversation outline styling',
new_0_5_30_9: 'Context compression now follows Profile compression settings and hardens stale snapshots by reusing previous summaries with a safe tail instead of recompressing full history',
new_0_5_31_1: "Harden Bridge broker restarts, fix final group-chat stream rendering, and add {'@'}all routing for group chat",
new_0_5_31_2: 'File manager can copy absolute paths, and the mobile session drawer overlay no longer falls behind chat content',
new_0_5_31_3: 'Profile selector now shows avatars, custom avatar uploads, runtime status modal, and gateway/profile restart actions',
new_0_5_31_4: 'Profile avatars now appear in single chat, group chat, and collapsed sidebar, with Web UI profile metadata storage and Windows-safe paths',
new_0_5_31_5: 'Improve Docker, Termux, and Windows gateway detection and restart checks by using gateway_state/gateway.pid for managed gateway liveness',
new_0_5_31_6: 'Add APIKEY.FUN image-generation media endpoint and bundled apikey-image-gen skill for text-to-image, image-to-image, and image editing via the active Profile fun-codex provider',
new_0_4_8_2: 'Fix nested markdown fence rendering truncation',
new_0_4_8_3: 'Fix compressed session lineage projection and search',
new_0_4_8_4: 'Optimize session list N+1 queries and fix search 500 on non-CJK input',
new_0_5_18_1: 'Page de suivi de lutilisation des skills avec graphique de tendance quotidien et statistiques des skills principaux',
new_0_5_18_2: 'Bridge de session de chat CLI avec agent bridge Python pour les sessions WebSocket',
new_0_5_18_3: 'Preset fournisseur Ollama Cloud avec catalogue de modèles dynamique',
new_0_5_18_4: 'Prise en charge du renommage des noms affichés des modèles (alias)',
new_0_5_18_5: 'Gestion de la visibilité des modèles dans la Web UI',
new_0_5_18_6: 'Tableau de bord danalytique dutilisation amélioré',
new_0_5_18_7: 'Déploiement Docker en conteneur unique avec docker-compose et corrections du démarrage gateway',
new_0_5_18_8: 'Correction de lavertissement HERMES_HOME de la page plugins pour les profils non par défaut',
new_0_5_18_9: 'Stabilité gateway corrigée lors des redémarrages dev et compatibilité Windows améliorée',
new_0_5_22_1: 'LAPI de liste des sessions Hermes lit la base du profil au lieu du store local Web UI',
new_0_5_23_1: 'Commandes slash de chat réservées au Bridge avec suggestions localisées',
new_0_5_23_2: 'Historique de commandes persistant pour rejouer les sessions sans polluer le contexte, lusage ou la compression',
new_0_5_23_3: 'Variables denvironnement du profil gateway isolées pour éviter les fuites didentifiants entre profils',
new_0_5_23_4: 'Port Web UI réservé pendant lallocation gateway pour éviter les conflits de démarrage',
new_0_5_23_5: 'Redémarrage dauto-mise à jour corrigé pour ne pas signaler comme échec les sorties réussies du helper',
new_0_5_24_1: 'Chat Bridge aligné sur API Server pour lentrée multimodale, le prompt système et le contexte workspace',
new_0_5_25_1: 'Actions de réinitialisation et clonage des salons de chat de groupe',
new_0_5_25_2: 'Répertoire d’état Web UI configurable pour les déploiements personnalisés',
new_0_5_25_3: 'MiMo ajouté comme fournisseur TTS dans les paramètres vocaux',
new_0_5_25_4: 'Listes de modèles des fournisseurs personnalisés chargées via le backend pour éviter les erreurs CORS navigateur',
new_0_5_25_5: 'Flux dapprobation des outils corrigé pour les sessions Bridge',
new_0_5_25_6: 'Indice de plateforme CLI forcé retiré des prompts Bridge afin de préserver les instructions personnalisées de média/fichier',
new_0_5_25_7: 'Contenu image base64 affiché correctement dans lhistorique des messages utilisateur',
new_0_5_25_8: 'Tests navigateur Playwright, couverture du contrat de streaming chat, couverture des modèles fournisseur et baseline de couverture ajoutés',
new_0_5_26_1: 'Chemins média Markdown Windows et locaux pris en charge dans lhistorique et les messages rendus',
new_0_5_26_2: 'Historique assistant vide filtré et état de compression obsolète nettoyé au démarrage dun nouveau run',
new_0_5_26_3: 'Écritures verrouillées pour config et profils afin de réduire la corruption par écritures concurrentes',
new_0_5_26_4: 'Paramètres de canaux QQBot et DingTalk ajoutés',
new_0_5_26_5: 'Détection de port CLI rendue portable et tiroir terminal mobile amélioré',
new_0_5_26_6: 'Environnements de profil Bridge isolés et découverte des plugins Hermes corrigée entre environnements Python',
new_0_5_26_7: 'États gateway arrêtés expliqués avec diagnostics Web UI et état de chargement des logs stabilisé',
new_0_5_26_8: 'Options de réinitialisation de session, base URL fournisseur personnalisé et cibles de livraison dynamiques corrigées',
new_0_5_26_9: 'Bascule locale daffichage des traces tool-call ajoutée dans la barre de saisie du chat',
new_0_5_26_10: 'Installations du paquet Hermes Agent prises en charge quand aucun checkout source nest disponible',
new_0_5_26_11: 'Connexion OAuth xAI Grok pour les abonnés SuperGrok et presets de modèles Grok mis à jour',
new_0_5_26_12: 'Couverture étendue pour navigateur, streaming chat, fournisseur, gateway, config, plugin et Bridge',
new_0_5_27_1: 'Paramètres de modèle par session pour les chats Bridge, avec fournisseur et modèle indépendants enregistrés par session',
new_0_5_27_2: 'Clic droit sur une session Bridge puis Définir le modèle pour changer le modèle de cette session',
new_0_5_27_3: 'Les runs valident le modèle de session et reviennent au modèle par défaut actuel si le modèle enregistré est indisponible',
new_0_5_27_4: 'La compression de contexte suit par défaut le modèle sélectionné par défaut du profil courant',
new_0_5_30_1: 'Bridge chat conserve lhistorique structuré, corrigeant les absences de réponse et outils ignorés causés par lhistorique doutils aplati',
new_0_5_30_2: 'Le routage des mentions en chat de groupe est plus fiable avec plusieurs agents, retire la mention de chaque agent avant livraison et garde les noms utilisateur après actualisation',
new_0_5_30_3: 'Pages modèles, menus de modèle chat et sélection de modèle de session sont limités au profil actif avec marqueurs par défaut précis',
new_0_5_30_4: 'Gestion gateway simplifiée : page Gateway autonome retirée, chaque profil vérifie sa configuration plateforme avant démarrage et un runner léger gère démarrages/redémarrages',
new_0_5_30_5: 'Démarrage gateway amélioré sur Docker, Termux et Windows avec gestion runtime-lock, nettoyage des conflits de port, exécution en arrière-plan et support du redémarrage',
new_0_5_30_6: 'Compatibilité Windows renforcée pour détection de chemins, téléchargements et sous-processus job/update sans fenêtres terminal furtives',
new_0_5_30_7: 'Écritures config et presets fournisseur corrigés : validation des clés .env, routage FUN-Codex via Responses API et listes modèles Z.AI/GLM actualisées',
new_0_5_30_8: 'Détails frontend polis : barre latérale repliée, libellés courts de groupe, séparateur latéral et style de plan de conversation',
new_0_5_30_9: 'La compression de contexte suit les paramètres de profil et durcit les snapshots obsolètes en réutilisant les résumés précédents avec une queue sûre',
new_0_5_31_1: 'Redémarrages Bridge broker renforcés, rendu final du flux de chat de groupe corrigé et routage {\'@\'}all ajouté',
new_0_5_31_2: 'Le gestionnaire de fichiers peut copier les chemins absolus et le tiroir mobile des sessions ne passe plus derrière le chat',
new_0_5_31_3: 'Sélecteur de profils avec avatars, upload davatar personnalisé, modal d’état runtime et actions de redémarrage gateway/profil',
new_0_5_31_4: 'Avatars de profil dans chat individuel, chat de groupe et barre latérale repliée, avec métadonnées Web UI et chemins compatibles Windows',
new_0_5_31_5: 'Détection et redémarrage gateway améliorés sur Docker, Termux et Windows via gateway_state/gateway.pid pour la vivacité du gateway géré',
new_0_5_31_6: 'Endpoint média APIKEY.FUN de génération dimages et skill apikey-image-gen intégré pour texte-image, image-image et édition via le fournisseur fun-codex du profil actif',
new_0_4_8_2: 'Corrige la troncature du rendu des blocs Markdown imbriqués',
new_0_4_8_3: 'Corrige la projection et la recherche de filiation des sessions compressées',
new_0_4_8_4: 'Optimise les requêtes N+1 de la liste des sessions et corrige lerreur 500 sur les recherches non CJK',
new_0_4_8_5: 'Fix forced scroll to bottom when switching back from other tabs',
new_0_4_8_6: 'Smooth session switch with loading transition overlay',
new_0_4_8_7: 'Fix login token validation using Hermes session endpoint',
@@ -978,18 +1084,23 @@ jobTriggered: 'Job declenche',
new_0_4_7_10: 'Supprimer base_url_env du .env lors de la suppression du fournisseur integre',
new_0_4_7_11: 'Aligner le fond de la barre laterale du chat de groupe avec la liste des sessions',
new_0_4_5_1: 'Add group chat with multi-agent rooms, mention routing, and typing status recovery',
new_0_4_5_2: 'Rewrite model-context config to use YAML with context_length setting',
new_0_4_5_3: 'Add gpt-5.5 to OpenAI Codex model list',
new_0_4_5_4: 'Replace jobs proxy with local controller and optimize model loading',
new_0_4_5_5: 'Add i18n support for custom model feature in ModelSelector',
new_0_4_5_6: 'Fix sidebar i18n missing key warnings',
new_0_4_5_7: 'Clear all localStorage on logout',
new_0_4_5_8: 'Add periodic log rotation to prevent unbounded log growth',
new_0_4_5_2: 'Réécrit la configuration de contexte du modèle en YAML avec le paramètre context_length',
new_0_4_5_3: 'Ajoute gpt-5.5 à la liste des modèles OpenAI Codex',
new_0_4_5_4: 'Remplace le proxy des tâches par un contrôleur local et optimise le chargement des modèles',
new_0_4_5_5: 'Ajoute la prise en charge i18n des modèles personnalisés dans ModelSelector',
new_0_4_5_6: 'Corrige les avertissements de clés i18n manquantes dans la barre latérale',
new_0_4_5_7: 'Efface tout localStorage à la déconnexion',
new_0_4_5_8: 'Ajoute une rotation périodique des journaux pour éviter une croissance illimitée',
new_0_4_2_1: 'Ajouter le suivi de l\'utilisation des tokens et la longueur de contexte dynamique',
new_0_4_2_2: 'Ajouter la modal de recherche de sessions',
new_0_4_2_3: 'Restaurer le systeme de chat de groupe avec Socket.IO et SQLite',
new_0_4_2_4: 'Ajouter les sessions epinglees et le moniteur en direct',
new_0_4_2_5: 'Corriger la detection des fournisseurs integres et l\'appariement des modeles',
new_0_4_4_5: 'Erreur 500 causée par les recherches avec caractères spéciaux corrigée',
new_0_4_4_4: 'Prise en charge des fournisseurs StepFun et Nous Portal ajoutée',
new_0_4_4_3: 'Badge d’état en direct ajouté aux sessions de chat actives',
new_0_4_4_2: 'Téléchargement de fichiers depuis les pièces jointes des messages de chat ajouté',
new_0_4_4_1: 'Navigateur de fichiers ajouté avec prise en charge multi-backend (local/Docker/SSH/Singularity)',
},
// Fichiers
@@ -1040,6 +1151,7 @@ jobTriggered: 'Job declenche',
closeEditor: 'Fermer l\'editeur',
closePreview: 'Fermer',
saveFile: 'Enregistrer',
fileTree: 'Arborescence des fichiers',
},
// Chat de groupe
@@ -1109,4 +1221,104 @@ jobTriggered: 'Job declenche',
download: 'Telecharger',
downloadFile: 'Telecharger le fichier',
},
gateways: {
title: 'Passerelles',
running: 'En cours',
stopped: 'Arrêté',
started: 'Démarré',
startFailed: 'Échec du démarrage du gateway',
stopFailed: 'Échec de larrêt du gateway',
},
kanban: {
title: 'Tableau Kanban',
createTask: 'Nouvelle tâche',
noTasks: 'Aucune tâche',
allStatuses: 'Tous les statuts',
allAssignees: 'Tous les responsables',
columns: {
triage: 'Triage',
todo: 'À faire',
ready: 'Prêt',
running: 'En cours',
blocked: 'Bloqué',
done: 'Terminé',
archived: 'Archivé',
},
card: {
assigneeTooltip: 'Responsable',
priority: {
low: 'Basse',
medium: 'Moyenne',
high: 'Haute',
},
timeAgo: {
justNow: 'à linstant',
minutes: 'il y a {count} min',
hours: 'il y a {count} h',
days: 'il y a {count} j',
},
},
board: {
create: 'Nouveau tableau',
archive: 'Archiver le tableau',
archiveConfirm: 'Archiver le tableau actuel ?',
archived: 'Tableau archivé',
created: 'Tableau créé',
slugPlaceholder: 'Identifiant du tableau, ex. project-a',
namePlaceholder: 'Nom affiché (facultatif)',
slugRequired: 'Lidentifiant du tableau est requis',
},
form: {
title: 'Titre',
titlePlaceholder: 'Titre de la tâche',
titleRequired: 'Le titre est requis',
body: 'Description',
bodyPlaceholder: 'Description de la tâche (facultatif)',
assignee: 'Responsable',
selectAssignee: 'Choisir un responsable...',
priority: 'Priorité',
selectPriority: 'Choisir une priorité...',
},
detail: {
status: 'Statut',
priority: 'Priorité',
assignee: 'Responsable',
tenant: 'Locataire',
createdAt: 'Créé',
startedAt: 'Démarré',
completedAt: 'Terminé',
comments: 'Commentaires',
events: 'Événements',
runs: 'Exécutions',
artifacts: 'Fichiers produits',
result: 'Résultat',
highlights: 'Informations clés',
sources: 'Sources de données',
sessions: 'Sessions liées',
sessionMessages: 'Messages de session',
noSessions: 'Aucune session liée trouvée.',
},
action: {
title: 'Actions',
assign: 'Assigner',
assignTo: 'Assigner à...',
block: 'Bloquer',
blockReason: 'Raison du blocage',
unblock: 'Débloquer',
complete: 'Terminer',
completeSummary: 'Résumé de fin (facultatif)',
},
message: {
loadFailed: 'Échec du chargement de la tâche',
taskCreated: 'Tâche créée',
taskAssigned: 'Tâche assignée',
taskBlocked: 'Tâche bloquée',
taskUnblocked: 'Tâche débloquée',
taskCompleted: 'Tâche terminée',
},
stats: {
total: 'Total',
tasks: 'Tâches',
},
},
}