mirror of
https://github.com/nexu-io/open-design.git
synced 2026-06-01 03:14:35 +07:00
* Add Cursor Agent auth diagnostics * Handle Cursor not logged in auth status * Address Cursor auth review feedback * Classify Cursor stdout auth failures
1404 lines
80 KiB
TypeScript
1404 lines
80 KiB
TypeScript
import { en } from './en';
|
||
import type { Dict } from '../types';
|
||
|
||
export const fr: Dict = {
|
||
...en,
|
||
'common.cancel': 'Annuler',
|
||
'common.save': 'Enregistrer',
|
||
'common.close': 'Fermer',
|
||
'common.delete': 'Supprimer',
|
||
'common.rename': 'Renommer',
|
||
'common.preview': 'Aperçu',
|
||
'common.share': 'Partager',
|
||
'common.search': 'Rechercher',
|
||
'common.searchEllipsis': 'RechercherâŠ',
|
||
'common.loading': 'ChargementâŠ',
|
||
'common.all': 'Tout',
|
||
'common.none': 'Aucun',
|
||
'common.default': 'Par défaut',
|
||
'common.installed': 'installé',
|
||
'common.notInstalled': 'non installé',
|
||
'common.active': 'actif',
|
||
'common.offline': 'hors ligne',
|
||
'common.selected': 'sélectionné',
|
||
'common.create': 'Créer',
|
||
'common.openPreview': 'Ouvrir l\'aperçu',
|
||
'common.exitFullscreen': 'Quitter le plein écran',
|
||
'common.fullscreen': 'Plein écran',
|
||
'common.openInNewTab': 'Ouvrir dans un nouvel onglet',
|
||
'common.exportPdf': 'Exporter en PDF',
|
||
'common.exportZip': 'Télécharger en .zip',
|
||
'common.exportHtml': 'Exporter en HTML autonome',
|
||
'common.justNow': 'Ă l\'instant',
|
||
'common.minutesAgo': 'il y a {n} min',
|
||
'common.hoursAgo': 'il y a {n} h',
|
||
'common.daysAgo': 'il y a {n} j',
|
||
'common.now': 'maintenant',
|
||
'common.minutesShort': '{n} min',
|
||
'common.hoursShort': '{n} h',
|
||
'common.daysShort': '{n} j',
|
||
'common.untitled': 'Sans titre',
|
||
|
||
'app.brand': 'Open Design',
|
||
'app.brandPill': 'Aperçu de recherche',
|
||
'app.brandSubtitle': 'par Nexu Labs',
|
||
'app.welcomeLoading': 'Chargement de l\'espace de travailâŠ',
|
||
|
||
'settings.welcomeKicker': 'Bienvenue',
|
||
'settings.welcomeTitle': 'Configurer Open Design',
|
||
'settings.welcomeSubtitle':
|
||
'Choisissez comment vous souhaitez exécuter les générations. Vous pouvez changer cela à tout moment depuis le bouton ParamÚtres dans la barre supérieure.',
|
||
'settings.kicker': 'ParamĂštres',
|
||
'settings.title': 'Exécution et modÚle',
|
||
'settings.subtitle': 'Choisissez entre CLI local et BYOK. Votre clé API est stockée uniquement dans ce navigateur.',
|
||
'settings.modeAria': 'Mode d\'exécution',
|
||
'settings.protocolAria': 'Protocole d\'API',
|
||
'settings.modeDaemon': 'CLI local',
|
||
'settings.modeDaemonHelp': 'Exécuter via un agent CLI sur votre machine',
|
||
'settings.modeDaemonOffline': 'Le daemon n\'est pas en cours d\'exécution',
|
||
'settings.modeDaemonOfflineMeta': 'daemon hors ligne',
|
||
'settings.modeDaemonInstalledMeta': '{count} installé(s)',
|
||
'settings.modeApi': 'Fournisseur API',
|
||
'settings.modeApiMeta': 'BYOK',
|
||
'settings.codeAgent': 'Agent de code',
|
||
'settings.codeAgentHint':
|
||
'Détecté en analysant votre PATH. Choisissez le CLI à travers lequel les générations seront exécutées.',
|
||
'settings.rescan': '⻠Réanalyser',
|
||
'settings.rescanTitle': 'Réanalyser le PATH',
|
||
'settings.rescanRunning': 'Analyse...',
|
||
'settings.rescanSuccess': 'Analyse terminée. {count} disponible(s).',
|
||
'settings.rescanFailed': 'Lâanalyse a Ă©chouĂ©. VĂ©rifiez le daemon et rĂ©essayez.',
|
||
'settings.test': 'Tester',
|
||
'settings.testTitle': 'Envoie un tout petit message de test pour vérifier la connexion',
|
||
'settings.testRunning': 'Test de la connexionâŠ',
|
||
'settings.testCancel': 'Annuler',
|
||
'settings.testSuccessApi': 'ConnectĂ©. RĂ©pondu en {ms} ms â \'{sample}\'',
|
||
'settings.testSuccessCli': '{agentName} a rĂ©pondu en {ms} ms â \'{sample}\'',
|
||
'settings.testAuthFailed': 'Ăchec de lâauthentification. VĂ©rifiez votre clĂ© API.',
|
||
'settings.testForbidden': 'AccĂšs interdit. VĂ©rifiez le compte, la rĂ©gion ou lâorganisation.',
|
||
'settings.testNotFoundModel': 'ModĂšle \'{model}\' introuvable sur ce point dâaccĂšs.',
|
||
'settings.testInvalidModelId': 'Lâid de modĂšle \'{model}\' est invalide. Les ids personnalisĂ©s doivent commencer par une lettre ou un chiffre et ne contenir aucun espace.',
|
||
'settings.testInvalidBaseUrl': 'LâURL de base est invalide ou inaccessible.',
|
||
'settings.testRateLimited': 'Le fournisseur a limité le test. La configuration semble valide.',
|
||
'settings.testUpstream': 'Le fournisseur a renvoyé {status}. Réessayez dans un instant.',
|
||
'settings.testTimeout': 'Le test a expiré aprÚs {ms} ms.',
|
||
'settings.testAgentMissing': '{agentName} nâest pas installĂ© ou pas dans le PATH.',
|
||
'settings.testAgentSpawn': 'Impossible de démarrer {agentName} : {detail}.',
|
||
'settings.testUnknown': 'Ăchec du test : {detail}',
|
||
'settings.agentInstall.install': 'Installer',
|
||
'settings.agentInstall.docs': 'Docs',
|
||
'settings.agentInstall.pathHint':
|
||
'Si vous avez installé une CLI avec npm ou Homebrew et qu\'elle apparaßt toujours comme non installée, vérifiez que le dossier bin de l\'outil est dans le PATH hérité par le daemon Open Design (Terminal et apps GUI peuvent différer sur macOS). Voir QUICKSTART.md (section "Local agent CLI and PATH").',
|
||
'settings.agentInstall.stepOpenLinks': 'Ouvrez Installer ou Docs pour l\'agent souhaité.',
|
||
'settings.agentInstall.stepAuth':
|
||
'Authentifiez-vous avec la CLI du fournisseur (connexion ou ajout des identifiants API) avant de revenir dans Open Design.',
|
||
'settings.agentInstall.stepRescan': 'Cliquez sur Réanalyser dans cette section.',
|
||
'settings.agentInstall.stepSelect': 'Sélectionnez la carte de l\'agent une fois qu\'elle apparaßt comme installée.',
|
||
'settings.noAgentsDetected':
|
||
'Aucun agent détecté pour l\'instant. Installez Claude Code, Codex, Devin for Terminal, Gemini CLI, OpenCode, Cursor Agent, Qwen ou GitHub Copilot CLI, puis cliquez sur Réanalyser.',
|
||
'settings.agentAuthRequired': 'Authentification requise',
|
||
'settings.agentAuthUnknown': 'Statut dâauthentification inconnu',
|
||
'settings.apiSection': 'API Anthropic',
|
||
'settings.quickFillProvider': 'Remplissage rapide du fournisseur',
|
||
'settings.customProvider': 'Fournisseur personnalisé',
|
||
'settings.apiKey': 'Clé API',
|
||
'settings.showKey': 'Afficher la clé',
|
||
'settings.hideKey': 'Masquer la clé',
|
||
'settings.show': 'Afficher',
|
||
'settings.hide': 'Masquer',
|
||
'settings.model': 'ModĂšle',
|
||
'settings.suggestedModelsHint':
|
||
'Ce sont des modÚles suggérés pour ce protocole. Votre fournisseur peut prendre en charge d\'autres modÚles.',
|
||
'settings.baseUrl': 'URL de base',
|
||
'settings.baseUrlInvalid': 'Saisissez une URL publique http:// ou https:// valide. Localhost est autorisé ; les IP de réseau privé sont bloquées.',
|
||
'settings.azureDeploymentModel': 'Nom du déploiement',
|
||
'settings.azureDeploymentModelHint':
|
||
'Pour Azure OpenAI, ce champ est utilisé comme nom du déploiement dans /openai/deployments/<model>. Saisissez le nom du déploiement créé dans Azure.',
|
||
'settings.apiVersion': 'Version API',
|
||
'settings.maxTokens': 'Tokens max (optionnel)',
|
||
'settings.maxTokensHint':
|
||
'Limite de la longueur de réponse. Chaque modÚle a une valeur par défaut (affichée en placeholder) ; laissez vide pour l\'utiliser, ou entrez un nombre pour la remplacer.',
|
||
'settings.apiHint': 'Les appels passent par le proxy du daemon local vers la Base URL dĂ©finie. La clĂ© est stockĂ©e uniquement dans ce navigateur et envoyĂ©e avec les requĂȘtes au fournisseur.',
|
||
'settings.skipForNow': 'Passer pour l\'instant',
|
||
'settings.getStarted': 'Commencer',
|
||
'settings.envConfigure': 'Configurer le mode d\'exécution',
|
||
'settings.localCli': 'CLI local',
|
||
'settings.anthropicApi': 'API Anthropic',
|
||
'settings.noAgentSelected': 'aucun agent sélectionné',
|
||
'settings.language': 'Langue',
|
||
'settings.languageHint': 'Changer la langue de l\'interface. Enregistré dans ce navigateur.',
|
||
'settings.appearance': 'Apparence',
|
||
'settings.appearanceHint': 'Choisissez clair, sombre, ou suivez le paramĂštre systĂšme.',
|
||
'settings.themeSystem': 'SystĂšme',
|
||
'settings.themeLight': 'Clair',
|
||
'settings.themeDark': 'Sombre',
|
||
'settings.modelPicker': 'ModĂšle',
|
||
'settings.reasoningPicker': 'Effort de raisonnement',
|
||
'settings.modelPickerHint':
|
||
'RĂ©cupĂ©rĂ© depuis le CLI lorsqu\'il expose une commande `models`. « Par dĂ©faut » laisse le choix Ă la configuration du CLI ; « PersonnalisĂ©âŠÂ » vous permet de saisir n\'importe quel identifiant de modĂšle acceptĂ© par le CLI.',
|
||
'settings.cliEnvTitle': 'CLI config locations',
|
||
'settings.cliEnvHint':
|
||
'Set non-secret config directories for packaged app runs and agent detection.',
|
||
'settings.cliEnvClaudeConfigDir': 'Claude Code config directory',
|
||
'settings.cliEnvClaudeBaseUrl': 'Claude proxy base URL',
|
||
'settings.cliEnvClaudeApiKey': 'Claude proxy API key',
|
||
'settings.cliEnvCodexHome': 'Codex home',
|
||
'settings.cliEnvCodexBin': 'Codex executable path',
|
||
'settings.cliEnvCodexBaseUrl': 'Codex/OpenAI proxy base URL',
|
||
'settings.cliEnvCodexApiKey': 'Codex/OpenAI proxy API key',
|
||
'settings.modelCustom': 'PersonnalisĂ© (saisir ci-dessous)âŠ',
|
||
'settings.modelCustomLabel': 'Identifiant du modÚle personnalisé',
|
||
'settings.modelCustomPlaceholder': 'ex. anthropic/claude-sonnet-4-6',
|
||
'settings.mediaProviders': 'Fournisseurs de médias',
|
||
'settings.mediaProvidersHint':
|
||
'Clés API pour la génération d\'images, de vidéos et d\'audio. Stockées localement et synchronisées avec le daemon local.',
|
||
'settings.mcpServerTitle': 'Serveur MCP',
|
||
'settings.mcpServerHint': 'Exposez Open Design comme serveur MCP pour votre agent de code.',
|
||
'settings.externalMcpTitle': 'MCP externe',
|
||
'settings.externalMcpHint': 'Ajoutez des outils MCP depuis des services externes (Higgsfield, GitHub, âŠ).',
|
||
'settings.mediaProviderApiKey': 'Clé API',
|
||
'settings.mediaProviderBaseUrl': 'URL de base',
|
||
'settings.mediaProviderConfigured': 'Configuré',
|
||
'settings.mediaProviderUnset': 'Non défini',
|
||
'settings.mediaProviderClear': 'Effacer',
|
||
'settings.mediaProviderClearConfirm': 'Effacer les paramÚtres enregistrés pour {name} ? Vous devrez les saisir à nouveau pour utiliser {name}.',
|
||
'settings.mediaProviderPlaceholder': 'Coller la clé API',
|
||
'settings.mediaProviderBaseUrlPlaceholder': 'Remplacer l\'URL de base par défaut',
|
||
'settings.mediaProviderReload': 'Recharger depuis le daemon',
|
||
'settings.mediaProviderReloadError': 'Impossible de recharger les paramÚtres des fournisseurs de médias depuis le daemon local.',
|
||
'settings.mediaProviderReloadSuccess': 'ParamÚtres des fournisseurs de médias rechargés depuis le daemon local.',
|
||
'settings.mediaProviderLoadError': 'Impossible de charger les paramÚtres des fournisseurs de médias depuis le daemon local. Utilisation temporaire des paramÚtres enregistrés dans le navigateur.',
|
||
'settings.privacy': 'Privacy',
|
||
'settings.privacyHint': 'What data is shared with the Open Design team',
|
||
'settings.privacyConsentKicker': 'Help us improve Open Design',
|
||
'settings.privacyConsentLead': 'Open Design can share usage data with our team to help us improve. This includes:',
|
||
'settings.privacyConsentFooter': 'You can change either of these any time in Settings â Privacy. We never upload the contents of your generated artifact files.',
|
||
'settings.privacyConsentShare': 'Help improve',
|
||
'settings.privacyConsentDecline': 'Not now',
|
||
'settings.privacyMetrics': 'Anonymous metrics',
|
||
'settings.privacyMetricsHint': 'Run counts, token usage, error rate, duration. No prompts, no project data.',
|
||
'settings.privacyContent': 'Conversation content',
|
||
'settings.privacyContentHint': "Your prompts and the assistant's responses (truncated 8 KB / 16 KB). API keys, tokens, JWTs, emails, IPs, and credit-card numbers are stripped automatically before send.",
|
||
'settings.privacyArtifacts': 'Project artifacts manifest',
|
||
'settings.privacyArtifactsHint': 'Filenames, types, sizes of generated files. File contents are never sent.',
|
||
'settings.privacyInstallationId': 'Anonymous ID',
|
||
'settings.privacyOptedOut': 'opted out',
|
||
'settings.privacyDataDeletion': 'Delete my data',
|
||
'settings.privacyDataDeletionHint': 'Rotates your anonymous ID and stops sending. Existing traces age out under our retention policy.',
|
||
'settings.about': 'Ă propos',
|
||
'settings.aboutHint': 'Version et informations d\'exécution',
|
||
'settings.appVersion': 'Version',
|
||
'settings.appChannel': 'Canal',
|
||
'settings.appRuntime': 'Environnement',
|
||
'settings.appPlatform': 'Plateforme',
|
||
'settings.appArchitecture': 'Architecture',
|
||
'settings.runtimePackaged': 'Application empaquetée',
|
||
'settings.runtimeDevelopment': 'Développement',
|
||
'settings.versionUnavailable': 'Les informations de version sont indisponibles lorsque le daemon est hors ligne.',
|
||
|
||
'entry.tabDesigns': 'Designs',
|
||
'entry.tabTemplates': 'ModĂšles',
|
||
'entry.tabDesignSystems': 'Design systems',
|
||
'entry.tabConnectors': 'Connecteurs',
|
||
'entry.openSettingsTitle': 'ParamĂštres',
|
||
'entry.openSettingsAria': 'Ouvrir les paramĂštres',
|
||
'entry.resizeAria': 'Redimensionner la barre latérale',
|
||
'entry.loadingWorkspace': 'Chargement de l\'espace de travailâŠ',
|
||
'entry.tabImageTemplates': 'ModĂšles d\'image',
|
||
'entry.tabVideoTemplates': 'ModÚles de vidéo',
|
||
'promptTemplates.searchPlaceholder': 'Rechercher des modĂšlesâŠ',
|
||
'promptTemplates.countLabel': '{n} résultats',
|
||
'promptTemplates.emptyImage': 'Aucun modÚle de prompt d\'image installé pour l\'instant.',
|
||
'promptTemplates.emptyVideo': 'Aucun modÚle de prompt vidéo installé pour l\'instant.',
|
||
'promptTemplates.emptyNoMatch': 'Aucun modĂšle ne correspond Ă votre recherche.',
|
||
'promptTemplates.allSources': 'Toutes les sources',
|
||
'promptTemplates.sourceFilterAria': 'Filtrer par source',
|
||
'promptTemplates.attributionFooter': 'Adapté de bibliothÚques de prompts publiques. Chaque carte renvoie vers l\'auteur original.',
|
||
'promptTemplates.openPreviewTitle': 'Ouvrir le prompt et l\'aperçu',
|
||
'promptTemplates.sourcePrefix': 'Source :',
|
||
'promptTemplates.fetchError': 'Impossible de charger le contenu de ce modĂšle.',
|
||
'promptTemplates.promptLabel': 'Corps du prompt',
|
||
'promptTemplates.copyPrompt': 'Copier le prompt',
|
||
'promptTemplates.copyDone': 'Copié !',
|
||
'promptTemplates.modelHint': 'ModÚle suggéré : {model}',
|
||
'promptTemplates.openSource': 'Voir l\'original',
|
||
'promptTemplates.openFullscreen': 'Ouvrir l\'aperçu en plein écran',
|
||
'promptTemplates.closeFullscreen': 'Fermer l\'aperçu plein écran',
|
||
'promptTemplates.retry': 'Réessayer',
|
||
|
||
'connectors.title': 'Connecteurs',
|
||
'connectors.subtitle': 'Sources de données locales et futures pouvant alimenter les artefacts live.',
|
||
'connectors.account': 'Compte',
|
||
'connectors.noAccount': 'Non connecté',
|
||
'connectors.tools': 'Outils',
|
||
'connectors.connect': 'Connecter',
|
||
'connectors.disconnect': 'Déconnecter',
|
||
'connectors.authorizationPending': 'En attente dâautorisation...',
|
||
'connectors.authorizationPendingHint': 'Terminez lâautorisation dans la fenĂȘtre ouverte.',
|
||
'connectors.cancelAuthorization': 'Annuler',
|
||
'connectors.configure': 'Configurer',
|
||
'connectors.unavailable': 'Indisponible',
|
||
'connectors.phaseStubTitle': 'Les API de connecteurs arrivent en phase 3 ; ceci est un aperçu.',
|
||
'connectors.statusAvailable': 'Disponible',
|
||
'connectors.statusConnected': 'Connecté',
|
||
'connectors.statusError': 'Erreur',
|
||
'connectors.statusDisabled': 'Désactivé',
|
||
'connectors.gateTitle': 'Ajoutez votre clé API Composio pour continuer',
|
||
'connectors.gateBody': 'Collez votre clé ci-dessus, puis cliquez sur Enregistrer la clé pour charger les intégrations disponibles.',
|
||
'connectors.aboutLabel': 'Ă propos',
|
||
'connectors.detailsLabel': 'Détails',
|
||
'connectors.statusLabel': 'Statut',
|
||
'connectors.category.aiAgents': 'Agents IA',
|
||
'connectors.category.aiInfrastructure': 'Infrastructure IA',
|
||
'connectors.category.accounting': 'Comptabilité',
|
||
'connectors.category.admin': 'Administration',
|
||
'connectors.category.advertising': 'Publicité',
|
||
'connectors.category.analytics': 'Analytique',
|
||
'connectors.category.automation': 'Automatisation',
|
||
'connectors.category.cms': 'CMS',
|
||
'connectors.category.crm': 'CRM',
|
||
'connectors.category.calendar': 'Calendrier',
|
||
'connectors.category.commerce': 'Commerce',
|
||
'connectors.category.communication': 'Communication',
|
||
'connectors.category.contacts': 'Contacts',
|
||
'connectors.category.dataPlatform': 'Plateforme de données',
|
||
'connectors.category.database': 'Base de données',
|
||
'connectors.category.design': 'Design',
|
||
'connectors.category.developer': 'Outils développeur',
|
||
'connectors.category.documentation': 'Documentation',
|
||
'connectors.category.erp': 'ERP',
|
||
'connectors.category.education': 'Ăducation',
|
||
'connectors.category.email': 'E-mail',
|
||
'connectors.category.events': 'ĂvĂ©nements',
|
||
'connectors.category.fieldService': 'Service terrain',
|
||
'connectors.category.finance': 'Finance',
|
||
'connectors.category.fitness': 'Fitness',
|
||
'connectors.category.forms': 'Formulaires',
|
||
'connectors.category.gaming': 'Jeux',
|
||
'connectors.category.hr': 'RH',
|
||
'connectors.category.hospitality': 'HĂŽtellerie',
|
||
'connectors.category.itsm': 'ITSM',
|
||
'connectors.category.integration': 'Intégration',
|
||
'connectors.category.localization': 'Localisation',
|
||
'connectors.category.logistics': 'Logistique',
|
||
'connectors.category.maps': 'Cartes',
|
||
'connectors.category.marketing': 'Marketing',
|
||
'connectors.category.media': 'Médias',
|
||
'connectors.category.meetings': 'Réunions',
|
||
'connectors.category.nonprofit': 'Association',
|
||
'connectors.category.observability': 'Observabilité',
|
||
'connectors.category.payments': 'Paiements',
|
||
'connectors.category.personal': 'Personnel',
|
||
'connectors.category.presentations': 'Présentations',
|
||
'connectors.category.procurement': 'Achats',
|
||
'connectors.category.product': 'Produit',
|
||
'connectors.category.productivity': 'Productivité',
|
||
'connectors.category.projectManagement': 'Gestion de projet',
|
||
'connectors.category.recruiting': 'Recrutement',
|
||
'connectors.category.research': 'Recherche',
|
||
'connectors.category.salesIntelligence': 'Intelligence commerciale',
|
||
'connectors.category.scheduling': 'Planification',
|
||
'connectors.category.search': 'Recherche',
|
||
'connectors.category.security': 'Sécurité',
|
||
'connectors.category.signing': 'Signature',
|
||
'connectors.category.social': 'Social',
|
||
'connectors.category.spreadsheets': 'Feuilles de calcul',
|
||
'connectors.category.storage': 'Stockage',
|
||
'connectors.category.support': 'Support',
|
||
'connectors.category.surveys': 'Sondages',
|
||
'connectors.category.tasks': 'TĂąches',
|
||
'connectors.category.timeTracking': 'Suivi du temps',
|
||
'connectors.category.video': 'Vidéo',
|
||
'connectors.category.whiteboard': 'Tableau blanc',
|
||
'connectors.categoryLabel': 'Catégorie',
|
||
'connectors.providerLabel': 'Fournisseur',
|
||
'connectors.toolsSection': 'Outils',
|
||
'connectors.toolsLoading': 'Chargement des outilsâŠ',
|
||
'connectors.noToolsAvailable': 'Aucun outil disponible pour le moment. Connectez-vous pour découvrir les capacités de cette intégration.',
|
||
'connectors.toolDetailsUnavailable': 'Tool details are unavailable, but this connector reports {n} tools.',
|
||
'connectors.loadMoreTools': 'Load more tools',
|
||
'connectors.openDetailsAria': 'Ouvrir les détails de {name}',
|
||
'connectors.toolsBadgeNone': 'Aucun outil',
|
||
'connectors.toolsBadgeOne': '{n} outil',
|
||
'connectors.toolsBadgeMany': '{n} outils',
|
||
'connectors.searchPlaceholder': 'Rechercher des connecteursâŠ',
|
||
'connectors.searchAriaLabel': 'Rechercher des connecteurs par nom, fournisseur ou outil',
|
||
'connectors.searchClear': 'Effacer la recherche',
|
||
'connectors.emptyNoMatchTitle': 'Aucun connecteur ne correspond à « {query} »',
|
||
'connectors.emptyNoMatchBody': 'Essayez un autre mot-clé ou effacez la recherche pour voir le catalogue complet.',
|
||
'connectors.emptyNoMatchAction': 'Effacer la recherche',
|
||
|
||
'newproj.tabPrototype': 'Prototype',
|
||
'newproj.tabDeck': 'Diaporama',
|
||
'newproj.tabTemplate': 'Depuis un modĂšle',
|
||
'newproj.tabMedia': 'Média',
|
||
'newproj.tabOther': 'Autre',
|
||
'newproj.titlePrototype': 'Nouveau prototype',
|
||
'newproj.titleDeck': 'Nouveau diaporama',
|
||
'newproj.titleTemplate': 'Partir d\'un modĂšle',
|
||
'newproj.titleImage': 'Nouvelle image',
|
||
'newproj.titleVideo': 'Nouvelle vidéo',
|
||
'newproj.titleAudio': 'Nouvel audio',
|
||
'newproj.titleMedia': 'Nouveau média',
|
||
'newproj.titleOther': 'Nouveau projet',
|
||
'newproj.namePlaceholder': 'Nom du projet',
|
||
'newproj.fidelityLabel': 'Fidélité',
|
||
'newproj.fidelityWireframe': 'Wireframe',
|
||
'newproj.fidelityHigh': 'Haute fidélité',
|
||
'newproj.toggleSpeakerNotes': 'Utiliser des notes d\'orateur',
|
||
'newproj.toggleSpeakerNotesHint': 'Moins de texte sur les diapositives â gardez les points de discussion dans les notes.',
|
||
'newproj.toggleAnimations': 'Inclure des animations',
|
||
'newproj.toggleAnimationsHint':
|
||
'Ajouter du mouvement (entrée, survol, transitions) en plus du modÚle.',
|
||
'newproj.templateLabel': 'ModĂšle',
|
||
'newproj.noTemplatesTitle': 'Aucun modĂšle pour l\'instant',
|
||
'newproj.noTemplatesBody':
|
||
'Ouvrez un projet, puis utilisez le menu Partager dans la visionneuse de fichiers pour le convertir en modĂšle. Les modĂšles apparaissent ici.',
|
||
'newproj.savedTemplate': 'ModÚle enregistré',
|
||
'newproj.fileSingular': 'fichier',
|
||
'newproj.filePlural': 'fichiers',
|
||
'newproj.create': 'Créer',
|
||
'newproj.createFromTemplate': 'Créer depuis le modÚle',
|
||
'newproj.createDisabledTitle':
|
||
'Enregistrez d\'abord un projet comme modĂšle (menu Partager dans un projet).',
|
||
'newproj.importClaudeZip': 'Importer un ZIP Claude Design',
|
||
'newproj.importClaudeZipTitle': 'Importer une exportation .zip Claude Design',
|
||
'newproj.importingClaudeZip': 'ImportationâŠ',
|
||
'newproj.privacyFooter': 'Seul vous pouvez voir votre projet par défaut.',
|
||
'newproj.designSystem': 'Design system',
|
||
'newproj.dsNoneFreeform': 'Aucun â libre',
|
||
'newproj.dsNoneSubtitleEmpty': 'Pas de jetons systĂšme, choisissez votre propre palette',
|
||
'newproj.dsNoneSubtitleSelected': 'Ignorer les jetons systĂšme. L\'agent choisit sa propre palette.',
|
||
'newproj.dsCategoryFallback': 'Design system',
|
||
'newproj.dsSearch': 'Rechercher des design systemsâŠ',
|
||
'newproj.dsModeAria': 'Mode de sélection',
|
||
'newproj.dsModeSingle': 'Unique',
|
||
'newproj.dsModeMulti': 'Multiple',
|
||
'newproj.dsNoneTitle': 'Aucun â libre',
|
||
'newproj.dsNoneSub': 'Ignorer les jetons systĂšme. L\'agent choisit sa propre palette.',
|
||
'newproj.dsEmpty': 'Aucun design system ne correspond à « {query} ».',
|
||
'newproj.dsFootSingular': 'est uniquement Ă titre d\'inspiration.',
|
||
'newproj.dsFootPlural': 'sont uniquement Ă titre d\'inspiration.',
|
||
'newproj.dsFootClear': 'Effacer',
|
||
'newproj.dsBadgeDefault': 'DĂFAUT',
|
||
'newproj.dsPrimaryFallback': 'Primaire',
|
||
'newproj.surfaceImage': 'Image',
|
||
'newproj.surfaceVideo': 'Vidéo',
|
||
'newproj.surfaceAudio': 'Audio',
|
||
'newproj.modelLabel': 'ModĂšle',
|
||
'newproj.modelSearch': 'Rechercher des modĂšlesâŠ',
|
||
'newproj.modelEmpty': 'Aucun modĂšle ne correspond.',
|
||
'newproj.modelRecommended': 'Recommandé',
|
||
'newproj.modelMissingTitle': 'Choisir un modĂšle',
|
||
'newproj.modelMissingSub': 'Choisis le modĂšle pour cette surface.',
|
||
'newproj.aspectLabel': 'Format',
|
||
'newproj.videoLengthLabel': 'Durée',
|
||
'newproj.videoLengthSeconds': '{n}s',
|
||
'newproj.audioKindLabel': 'Type d\'audio',
|
||
'newproj.audioKindMusic': 'Musique',
|
||
'newproj.audioKindSpeech': 'Voix / TTS',
|
||
'newproj.audioKindSfx': 'Effets sonores',
|
||
'newproj.audioDurationLabel': 'Durée',
|
||
'newproj.audioDurationSeconds': '{n}s',
|
||
'newproj.voiceLabel': 'Voix',
|
||
'newproj.voicePlaceholder': 'Identifiant de voix du fournisseur, optionnel',
|
||
'newproj.connectorsLabel': 'Connecteurs',
|
||
'newproj.connectorsHint': 'Sources de données que cet artefact peut interroger.',
|
||
'newproj.connectorsEmptyTitle': 'Aucun connecteur configuré',
|
||
'newproj.connectorsEmptyBody': 'Connectez une source de données pour que l\'artefact live utilise de vraies données au lieu d\'espaces réservés.',
|
||
'newproj.connectorsEmptyCta': 'Configurer les connecteurs â',
|
||
'newproj.connectorsLoading': 'Chargement des connecteursâŠ',
|
||
'newproj.connectorsCountOne': '{n} connecté',
|
||
'newproj.connectorsCountMany': '{n} connectés',
|
||
'newproj.connectorsManage': 'Gérer',
|
||
'newproj.promptTemplateLabel': 'ModÚle de référence',
|
||
'newproj.promptTemplateNoneTitle': 'Aucun â rĂ©digez le vĂŽtre',
|
||
'newproj.promptTemplateNoneSub': 'Ignorer la galerie, décrivez votre propre brief',
|
||
'newproj.promptTemplateRefSub': 'ModÚle de référence',
|
||
'newproj.promptTemplateSearch': 'Rechercher des modĂšlesâŠ',
|
||
'newproj.promptTemplateEmpty': 'Aucun modÚle installé pour cette surface pour l\'instant.',
|
||
'newproj.promptTemplateBodyLabel': 'Prompt (vous pouvez l\'ajuster)',
|
||
'newproj.promptTemplateOptimizeHint':
|
||
'Modifiez ce que vous voulez â vos modifications sont transmises au brief de l\'agent.',
|
||
'newproj.promptTemplateBodyEmpty':
|
||
'Corps vide â l\'agent ne recevra aucune rĂ©fĂ©rence de modĂšle.',
|
||
|
||
'designs.subRecent': 'Récents',
|
||
'designs.subYours': 'Vos designs',
|
||
'designs.filterAria': 'Filtrer les projets',
|
||
'designs.searchPlaceholder': 'RechercherâŠ',
|
||
'designs.emptyNoProjects': 'Aucun projet pour l\'instant. Créez-en un à gauche.',
|
||
'designs.emptyNoMatch': 'Aucun projet ne correspond Ă votre recherche.',
|
||
'designs.deleteTitle': 'Supprimer le projet',
|
||
'designs.deleteConfirm': 'Supprimer « {name} » ?',
|
||
'designs.cardFreeform': 'libre',
|
||
'designs.status.notStarted': 'Non commencé',
|
||
'designs.status.queued': 'En file d\'attente',
|
||
'designs.status.running': 'En cours',
|
||
'designs.status.awaitingInput': 'Entrée requise',
|
||
'designs.status.succeeded': 'Terminé',
|
||
'designs.status.failed': 'ĂchouĂ©',
|
||
'designs.status.canceled': 'Annulé',
|
||
'designs.viewToggleAria': 'Mode d\'affichage',
|
||
'designs.viewGrid': 'Vue grille',
|
||
'designs.viewKanban': 'Vue tableau',
|
||
'designs.kanbanEmptyColumn': 'Aucun design',
|
||
'designs.deleteAria': 'Supprimer le projet {name}',
|
||
'designs.menuMore': 'More actions',
|
||
'designs.menuRename': 'Rename',
|
||
'designs.menuDelete': 'Delete',
|
||
'designs.renamePrompt': 'New name for "{name}"',
|
||
'designs.selectMode': 'Select',
|
||
'designs.cancelSelect': 'Cancel',
|
||
'designs.deleteSelected': 'Delete selected',
|
||
'designs.selectedCount': '{n} selected',
|
||
'designs.deleteSelectedConfirm': 'Delete {n} project(s)?',
|
||
'designs.tagPrototype': 'Prototype',
|
||
'designs.tagLiveArtifact': 'Live Artifact',
|
||
'designs.tagSlide': 'Slide',
|
||
'designs.tagMedia': 'Media',
|
||
'designs.renameTitle': 'Rename project',
|
||
'designs.renameSave': 'OK',
|
||
'designs.renameCancel': 'Cancel',
|
||
|
||
'examples.typeLabel': 'Type',
|
||
'examples.surfaceLabel': 'Surface',
|
||
'examples.surfaceWeb': 'Web',
|
||
'examples.surfaceImage': 'Image',
|
||
'examples.surfaceVideo': 'Vidéo',
|
||
'examples.surfaceAudio': 'Audio',
|
||
'examples.scenarioLabel': 'Scénario',
|
||
'examples.modeAll': 'Tout',
|
||
'examples.modePrototypeDesktop': 'Prototypes · Bureau',
|
||
'examples.modePrototypeMobile': 'Prototypes · Mobile',
|
||
'examples.modeDeck': 'Diaporamas',
|
||
'examples.modeDocument': 'Docs et modĂšles',
|
||
'examples.modeOrbit': 'Orbit',
|
||
'examples.modeLive': 'Live',
|
||
'examples.scenarioGeneral': 'Général',
|
||
'examples.scenarioEngineering': 'Ingénierie',
|
||
'examples.scenarioProduct': 'Produit',
|
||
'examples.scenarioDesign': 'Design',
|
||
'examples.scenarioMarketing': 'Marketing',
|
||
'examples.scenarioSales': 'Ventes',
|
||
'examples.scenarioFinance': 'Finance',
|
||
'examples.scenarioHr': 'RH',
|
||
'examples.scenarioOperations': 'Opérations',
|
||
'examples.scenarioSupport': 'Support',
|
||
'examples.scenarioLegal': 'Juridique',
|
||
'examples.scenarioEducation': 'Ăducation',
|
||
'examples.scenarioPersonal': 'Personnel',
|
||
'examples.searchPlaceholder': 'Rechercher des exemplesâŠ',
|
||
'examples.searchAria': 'Rechercher des exemples par nom',
|
||
'examples.emptyNoSkills': 'Aucune compétence disponible. Le daemon est-il en cours d\'exécution ?',
|
||
'examples.emptyNoMatch': 'Aucun exemple ne correspond Ă ces filtres.',
|
||
'examples.openPreview': '‹ Ouvrir l\'aperçu',
|
||
'examples.loadingPreview': 'Chargement de l\'aperçuâŠ',
|
||
'examples.hoverPreview': 'Survoler pour prévisualiser',
|
||
'examples.usePrompt': 'Utiliser ce prompt',
|
||
'examples.previewModalTitle': 'Ouvrir l\'aperçu complet (modale)',
|
||
'examples.shareTitle': 'Partager cet exemple',
|
||
'examples.shareLoadFirst': 'Survolez pour charger l\'aperçu d\'abord',
|
||
'examples.unavailablePlaceholder': 'Pas d\'aperçu {kind} fourni â ouvrez pour en savoir plus',
|
||
'examples.shareUnavailable': 'Pas d\'aperçu {kind} fourni à partager',
|
||
'examples.shareMenu': 'Partager âŸ',
|
||
'examples.exportPdfAllSlides': 'Exporter en PDF (toutes les diapos)',
|
||
'examples.exportPptxLocked': 'Exporter en PPTX⊠(ouvrez d\'abord le modÚle)',
|
||
'examples.tagSlideDeck': 'Diaporama',
|
||
'examples.tagTemplate': 'ModĂšle',
|
||
'examples.tagDesignSystem': 'Design system',
|
||
'examples.tagMobilePrototype': 'Prototype mobile',
|
||
'examples.tagDesktopPrototype': 'Prototype bureau',
|
||
'examples.tagImage': 'Image',
|
||
'examples.tagVideo': 'Vidéo',
|
||
'examples.tagAudio': 'Audio',
|
||
'examples.previewLabel': 'Aperçu',
|
||
|
||
'ds.surfaceLabel': 'Surface',
|
||
'ds.surfaceWeb': 'Web',
|
||
'ds.surfaceImage': 'Image',
|
||
'ds.surfaceVideo': 'Vidéo',
|
||
'ds.surfaceAudio': 'Audio',
|
||
'ds.searchPlaceholder': 'Rechercher des design systemsâŠ',
|
||
'ds.emptyNoMatch': 'Aucun design system ne correspond Ă votre recherche.',
|
||
'ds.badgeDefault': 'DĂFAUT',
|
||
'ds.preview': 'Aperçu',
|
||
'ds.previewTitle': 'Aperçu du design system',
|
||
'ds.categoryAll': 'Tout',
|
||
'ds.categoryUncategorized': 'Non catégorisé',
|
||
'ds.showcase': 'Vitrine',
|
||
'ds.tokens': 'Jetons',
|
||
'ds.specToggle': 'DESIGN.md',
|
||
'ds.specLoading': 'Chargement du DESIGN.mdâŠ',
|
||
|
||
'avatar.title': 'Compte et paramĂštres',
|
||
'avatar.localCli': 'CLI local',
|
||
'avatar.anthropicApi': 'API Anthropic',
|
||
'avatar.useLocal': 'Utiliser le CLI local',
|
||
'avatar.useApi': 'Utiliser API · BYOK',
|
||
'avatar.codeAgent': 'Agent de code',
|
||
'avatar.rescan': 'Réanalyser le PATH',
|
||
'avatar.settings': 'ParamĂštres',
|
||
'avatar.backToProjects': 'Retour aux projets',
|
||
'avatar.metaActive': 'actif',
|
||
'avatar.metaOffline': 'hors ligne',
|
||
'avatar.metaSelected': 'sélectionné',
|
||
'avatar.noAgentSelected': 'aucun agent sélectionné',
|
||
'avatar.modelSection': 'ModĂšle',
|
||
'avatar.modelLabel': 'ModĂšle',
|
||
'avatar.reasoningLabel': 'Raisonnement',
|
||
'avatar.customSuffix': '(personnalisé)',
|
||
|
||
'project.backToProjects': 'Retour aux projets',
|
||
'project.metaFreeform': 'libre',
|
||
'project.resizeChatPanel': 'Redimensionner le panneau de chat',
|
||
'chat.tabChat': 'Chat',
|
||
'chat.tabComments': 'Commentaires',
|
||
'chat.commentsSoon': 'Commentaires â bientĂŽt disponible',
|
||
'chat.comments.attached': 'Attaché au chat',
|
||
'chat.comments.emptyAttached': 'Aucun commentaire attaché.',
|
||
'chat.comments.saved': 'Commentaires enregistrés',
|
||
'chat.comments.emptySaved': 'Aucun commentaire enregistré.',
|
||
'chat.comments.add': 'Ajouter',
|
||
'chat.comments.addAll': 'Tout ajouter',
|
||
'chat.comments.remove': 'Retirer',
|
||
'chat.comments.placeholder': 'Commenter cet Ă©lĂ©mentâŠ',
|
||
'chat.comments.addSend': 'Ajouter et envoyer',
|
||
'chat.comments.updateSend': 'Mettre Ă jour et envoyer',
|
||
'chat.comments.removeAttachment': 'Retirer le commentaire attaché',
|
||
'chat.comments.removeAttachmentAria': 'Retirer le commentaire attaché pour {name}',
|
||
'chat.conversationsTitle': 'Conversations',
|
||
'chat.conversationsAria': 'Historique des conversations',
|
||
'chat.newConversation': 'Nouvelle conversation',
|
||
'chat.newConversationsTitle': 'Nouvelle conversation',
|
||
'chat.conversationsHeading': 'Conversations',
|
||
'chat.new': 'Nouvelle',
|
||
'chat.emptyConversations': 'Aucune conversation pour l\'instant.',
|
||
'chat.deleteConversation': 'Supprimer la conversation',
|
||
'chat.deleteConversationConfirm':
|
||
'Supprimer « {title} » ? Cela supprime ses messages.',
|
||
'chat.untitledConversation': 'Conversation sans titre',
|
||
'chat.startTitle': 'Démarrer une conversation',
|
||
'chat.startHint':
|
||
'Déposez ou collez des images comme référence visuelle, ou tapez @ pour attacher un fichier du projet. Ou essayez l\'une de ces suggestions :',
|
||
'chat.fillInputTitle': 'Cliquez pour remplir le champ',
|
||
'chat.jumpToLatest': 'Aller au plus récent',
|
||
'chat.scrollToLatest': 'Défiler jusqu\'au plus récent',
|
||
'chat.you': 'Vous',
|
||
'chat.openFile': 'Ouvrir {name}',
|
||
'chat.composerPlaceholder':
|
||
'DĂ©crivez le design souhaitĂ© â collez ou dĂ©posez des images, ou @ un fichier ou un skillâŠ',
|
||
'chat.composerHint':
|
||
'â/Ctrl + EntrĂ©e pour envoyer · coller des images · @ pour fichiers ou skills · / pour les commandes',
|
||
'chat.cliSettingsTitle': 'ParamĂštres CLI et modĂšle',
|
||
'chat.cliSettingsAria': 'Ouvrir les paramĂštres CLI et modĂšle',
|
||
'chat.attachTitle': 'Attacher des fichiers (ou coller / déposer)',
|
||
'chat.attachAria': 'Attacher des fichiers',
|
||
'chat.importTitle': 'Importer des sources (bientĂŽt disponible)',
|
||
'chat.importLabel': 'Importer',
|
||
'chat.importComingSoon': 'BientĂŽt disponible',
|
||
'chat.importSoon': 'BientĂŽt',
|
||
'chat.importFig': 'Téléverser un fichier .fig',
|
||
'chat.importGitHub': 'Connecter GitHub',
|
||
'chat.importWeb': 'Capturer un élément web',
|
||
'chat.importFolder': 'Lier un dossier de code',
|
||
'chat.importSkills': 'Compétences et design systems',
|
||
'chat.importProject': 'Référencer un autre projet',
|
||
'chat.linkedFolderRemoveAria': 'Supprimer le dossier lié {path}',
|
||
'chat.linkedFolderNotFound': 'Le dossier n\'existe pas',
|
||
'chat.linkedFolderAlready': 'Ce dossier est déjà lié',
|
||
'chat.linkedFolderPickError': 'Impossible d\'ouvrir le sélecteur de dossier',
|
||
'chat.send': 'Envoyer',
|
||
'chat.stop': 'ArrĂȘter',
|
||
'chat.removeAria': 'Retirer {name}',
|
||
'chat.example1Title': 'Pitch deck éditorial',
|
||
'chat.example1Tag': 'Magazine',
|
||
'chat.example1Prompt':
|
||
'Un pitch deck Ă©ditorial de 10 diapositives pour un studio de design levant des fonds â mise en page grille suisse, titres avec empattement surdimensionnĂ©s et lettrines, numĂ©ros de section en monospace, gĂ©nĂ©reux espaces nĂ©gatifs, et diapositives photo pleine page entrecoupĂ©es de diapos riches en texte. Couverture, vision, marchĂ©, produit, traction, Ă©quipe, levĂ©e de fonds, contact.',
|
||
'chat.example2Title': 'Tableau de bord SaaS analytics',
|
||
'chat.example2Tag': 'Données',
|
||
'chat.example2Prompt':
|
||
'Un tableau de bord analytics dense pour un SaaS d\'outils dĂ©veloppeurs â bandeau KPI avec deltas semaine sur semaine, deux graphiques en lignes empilĂ©es (MRR et espaces de travail actifs), une carte de chaleur mondiale d\'utilisation, une grille de rĂ©tention de cohortes, un classement des meilleurs clients et un fil d\'actualitĂ© en temps rĂ©el. ThĂšme sombre, chiffres tabulaires en monospace, accents sparkline.',
|
||
'chat.example3Title': 'Rapport annuel long défilement',
|
||
'chat.example3Tag': 'Ăditorial',
|
||
'chat.example3Prompt':
|
||
'Un rapport annuel interactif pour une ONG climatique â mise en page Ă©ditoriale Ă long dĂ©filement mĂȘlant de grands blocs de citation, des visualisations de donnĂ©es (barres empilĂ©es, compteurs animĂ©s, une carte choroplĂšthe des sites de projet), des sĂ©parateurs photo, un mur de donateurs et un appel Ă l\'action final. Texte en serif moderne, Ă©tiquettes de graphiques en sans-serif, palette papier aux tons terreux.',
|
||
|
||
'preview.shareMenu': 'Partager âŸ',
|
||
'preview.openInNewTab': 'Ouvrir dans un nouvel onglet',
|
||
'preview.exit': '†Quitter',
|
||
'preview.fullscreen': '‹ Plein écran',
|
||
'preview.closeTitle': 'Fermer (Ăchap)',
|
||
'preview.loading': 'Chargement de {label}âŠ',
|
||
'preview.errorTitle': 'Impossible de charger cet exemple.',
|
||
'preview.errorBody': 'Le chargement du HTML de l\'exemple a échoué. Vérifiez qu\'Open Design est en cours d\'exécution et réessayez.',
|
||
'preview.retry': 'Réessayer',
|
||
'preview.unavailableTitle': 'Aucun aperçu fourni pour cette compétence.',
|
||
'preview.unavailableBody': 'Cette compĂ©tence produit un rĂ©sultat {kind} â exĂ©cutez le prompt dans le chat pour en gĂ©nĂ©rer un.',
|
||
'preview.showSidebar': 'Afficher {label}',
|
||
'preview.hideSidebar': 'Masquer {label}',
|
||
|
||
'misc.savedTemplate': 'ModÚle enregistré',
|
||
'misc.primary': 'Primaire',
|
||
'misc.designSystem': 'Design system',
|
||
|
||
'workspace.designFiles': 'Fichiers de design',
|
||
'workspace.focusMode': 'Focus workspace',
|
||
'workspace.showChat': 'Show chat',
|
||
'workspace.closeTab': 'Fermer l\'onglet',
|
||
'workspace.deleteFileConfirm': 'Supprimer « {name} » du dossier du projet ?',
|
||
'workspace.deleteSelectedFilesConfirm': 'Supprimer les {n} fichier(s) sélectionné(s) du dossier du projet ?',
|
||
'workspace.deleteSelectedFilesPartial': 'Ăchec de la suppression de {n} fichier(s).',
|
||
'workspace.openFromDesignFiles': 'Ouvrir un fichier depuis',
|
||
'workspace.designFilesLink': 'Fichiers de design',
|
||
'workspace.loadingSketch': 'Chargement du croquisâŠ',
|
||
'designFiles.title': 'Fichiers de design',
|
||
'designFiles.upload': 'Téléverser des fichiers',
|
||
'designFiles.pasteText': 'Coller comme fichier texte',
|
||
'designFiles.newSketch': 'Nouveau croquis',
|
||
'designFiles.empty': 'Les créations apparaßtront ici',
|
||
'designFiles.refresh': 'Actualiser',
|
||
'designFiles.delete': 'Supprimer',
|
||
'designFiles.searchPlaceholder': 'Rechercher des fichiersâŠ',
|
||
'designFiles.up': 'Haut',
|
||
'designFiles.back': 'Retour',
|
||
'designFiles.crumbs': 'projet',
|
||
'designFiles.rowMenu': 'Menu de ligne',
|
||
'designFiles.openInTab': 'Ouvrir dans un onglet',
|
||
'designFiles.download': 'Télécharger',
|
||
'designFiles.downloadSelected': 'Télécharger {n} sélectionnés en ZIP',
|
||
'designFiles.clearSelection': 'Effacer la sélection',
|
||
'designFiles.selectPage': 'Tout sélectionner sur la page',
|
||
'designFiles.selectAll': 'Tout sélectionner',
|
||
'designFiles.deleteSelected': 'Supprimer {n}',
|
||
'designFiles.dropTitle': '†Déposez les fichiers ici',
|
||
'designFiles.dropDesc':
|
||
'Images, documents, rĂ©fĂ©rences ou dossiers â l\'agent les utilisera comme contexte.',
|
||
'designFiles.upload.title': 'Téléverser des fichiers',
|
||
'designFiles.paste.title': 'Coller du texte comme fichier',
|
||
'designFiles.upload.label': 'Téléverser',
|
||
'designFiles.paste.label': 'Coller',
|
||
'designFiles.previewOpen': 'Ouvrir',
|
||
'designFiles.previewClose': 'Fermer l\'aperçu',
|
||
'designFiles.modified': 'Modifié {time} · {size}',
|
||
'designFiles.weeksAgo': 'il y a {n} sem',
|
||
'designFiles.groupBy': 'Grouper par',
|
||
'designFiles.groupByKind': 'Type',
|
||
'designFiles.groupByModified': 'Modification',
|
||
'designFiles.expandGroup': 'Développer',
|
||
'designFiles.collapseGroup': 'Réduire',
|
||
'designFiles.sectionPages': 'Pages',
|
||
'designFiles.sectionScripts': 'Scripts',
|
||
'designFiles.sectionImages': 'Images',
|
||
'designFiles.sectionSketches': 'Croquis',
|
||
'designFiles.sectionOther': 'Autre',
|
||
'designFiles.modifiedToday': 'Aujourdâhui',
|
||
'designFiles.modifiedYesterday': 'Hier',
|
||
'designFiles.modifiedPrevious7Days': '7 derniers jours',
|
||
'designFiles.modifiedPrevious30Days': '30 derniers jours',
|
||
'designFiles.modifiedOlder': 'Plus ancien',
|
||
'designFiles.showMore': 'Afficher +{n} de plus',
|
||
'designFiles.kindHtml': 'Page HTML',
|
||
'designFiles.kindImage': 'Image',
|
||
'designFiles.kindSketch': 'Croquis',
|
||
'designFiles.kindText': 'Texte',
|
||
'designFiles.kindCode': 'Script',
|
||
'designFiles.kindPdf': 'PDF',
|
||
'designFiles.kindDocument': 'Document',
|
||
'designFiles.kindPresentation': 'Présentation',
|
||
'designFiles.kindSpreadsheet': 'Tableur',
|
||
'designFiles.kindBinary': 'Binaire',
|
||
'designFiles.colName': 'Nom',
|
||
'designFiles.colKind': 'Type',
|
||
'designFiles.colModified': 'Modifié le',
|
||
'designFiles.perPage': 'Afficher',
|
||
'designFiles.all': 'Tout',
|
||
'designFiles.prev': 'Précédent',
|
||
'designFiles.next': 'Suivant',
|
||
'designFiles.jumpToPage': 'Aller Ă la page',
|
||
'designFiles.pageInfo': '{start}â{end} sur {total}',
|
||
'quickSwitcher.placeholder': 'Ouvrir un fichierâŠ',
|
||
'quickSwitcher.empty': 'Aucun fichier dans ce projet',
|
||
'quickSwitcher.noMatches': 'Aucun résultat',
|
||
'quickSwitcher.navigate': 'naviguer',
|
||
'quickSwitcher.open': 'ouvrir',
|
||
'quickSwitcher.close': 'fermer',
|
||
'pasteDialog.title': 'Coller du texte',
|
||
'pasteDialog.hint': 'Enregistré dans le dossier du projet. Choisissez un nom.',
|
||
'pasteDialog.fileNameLabel': 'Nom du fichier',
|
||
'pasteDialog.namePlaceholder': 'notes.txt',
|
||
'pasteDialog.contentLabel': 'Contenu',
|
||
'pasteDialog.contentPlaceholder': 'Collez n\'importe quoiâŠ',
|
||
'pasteDialog.save': 'Enregistrer',
|
||
'pasteDialog.cancel': 'Annuler',
|
||
'sketch.save': 'Enregistrer le croquis',
|
||
'sketch.cancel': 'Annuler',
|
||
'sketch.saving': 'EnregistrementâŠ',
|
||
'sketch.tooltipDirty': 'Modifications non enregistrées',
|
||
'sketch.tooltipClean': 'Enregistré',
|
||
'fileViewer.empty': 'Sélectionnez un fichier à afficher.',
|
||
'fileViewer.loading': 'ChargementâŠ',
|
||
'fileViewer.exportPptx': 'Exporter en PPTX',
|
||
'fileViewer.openInNewTab': 'Ouvrir dans un nouvel onglet',
|
||
'fileViewer.copyPath': 'Copier le chemin',
|
||
'fileViewer.copied': 'Copié !',
|
||
'fileViewer.share': 'Partager',
|
||
'fileViewer.binaryMeta': 'Binaire · {size}',
|
||
'fileViewer.binaryNote':
|
||
'Fichier binaire ({size} octets). Téléchargez ou ouvrez depuis le disque pour inspecter.',
|
||
'fileViewer.pdfMeta': 'PDF · {size}',
|
||
'fileViewer.documentMeta': 'Document',
|
||
'fileViewer.presentationMeta': 'Présentation',
|
||
'fileViewer.spreadsheetMeta': 'Tableur',
|
||
'fileViewer.previewUnavailable': 'Aperçu indisponible. Téléchargez ou ouvrez le fichier pour inspecter.',
|
||
'fileViewer.download': 'Télécharger',
|
||
'fileViewer.open': 'Ouvrir',
|
||
'fileViewer.imageMeta': 'Image · {size}',
|
||
'fileViewer.reactMeta': 'Composant React · {size}',
|
||
'fileViewer.sketchMeta': 'Croquis · {size}',
|
||
'fileViewer.markdownStreamingMeta': 'Aperçu en streamingâŠ',
|
||
'fileViewer.markdownErrorMeta': 'L\'aperçu peut ĂȘtre incomplet (erreur de gĂ©nĂ©ration).',
|
||
'fileViewer.markdownStreamingStatus': 'Streaming⊠affichage du markdown partiel.',
|
||
'fileViewer.markdownErrorStatus': 'Erreur de génération. Affichage du dernier contenu disponible.',
|
||
'fileViewer.videoMeta': 'Vidéo · {size}',
|
||
'fileViewer.audioMeta': 'Audio · {size}',
|
||
'fileViewer.reload': 'Recharger',
|
||
'fileViewer.reloadDisk': 'Recharger depuis le disque',
|
||
'fileViewer.copy': 'Copier',
|
||
'fileViewer.copyTitle': 'Copier le contenu du fichier',
|
||
'fileViewer.saveDisabled': 'Enregistrer (visionneuse en lecture seule)',
|
||
'fileViewer.save': 'Enregistrer',
|
||
'fileViewer.preview': 'Aperçu',
|
||
'fileViewer.source': 'Source',
|
||
'fileViewer.tweaks': 'Ajustements',
|
||
'fileViewer.comment': 'Commenter',
|
||
'fileViewer.edit': 'Modifier',
|
||
'fileViewer.draw': 'Dessiner',
|
||
'manualEdit.layers': "Layers",
|
||
'manualEdit.editableCount': "{count} editable",
|
||
'manualEdit.title': "Manual editor",
|
||
'manualEdit.selectLayer': "Select a layer",
|
||
'manualEdit.empty': "Click an element in the preview or choose a layer.",
|
||
'manualEdit.noClass': "no class",
|
||
'manualEdit.tabsAria': "Manual edit tabs",
|
||
'manualEdit.tabContent': "Content",
|
||
'manualEdit.tabStyle': "Style",
|
||
'manualEdit.tabAttributes': "Attributes",
|
||
'manualEdit.tabHtml': "Html",
|
||
'manualEdit.tabSource': "Source",
|
||
'manualEdit.attributesJson': "Attributes JSON",
|
||
'manualEdit.selectedHtml': "Selected element HTML",
|
||
'manualEdit.fullSource': "Full artifact source",
|
||
'manualEdit.applyContent': "Apply Content",
|
||
'manualEdit.applyStyle': "Apply Style",
|
||
'manualEdit.applyAttributes': "Apply Attributes",
|
||
'manualEdit.applyHtml': "Apply HTML",
|
||
'manualEdit.applySource': "Apply Source",
|
||
'manualEdit.invalidAttributes': "Invalid attributes JSON.",
|
||
'manualEdit.changes': "Changes",
|
||
'manualEdit.undo': "Undo",
|
||
'manualEdit.redo': "Redo",
|
||
'manualEdit.noChanges': "No manual edits yet.",
|
||
'manualEdit.imageUrl': "Image URL",
|
||
'manualEdit.altText': "Alt text",
|
||
'manualEdit.label': "Label",
|
||
'manualEdit.text': "Text",
|
||
'manualEdit.href': "Href",
|
||
'manualEdit.textColor': "Text color",
|
||
'manualEdit.background': "Background",
|
||
'manualEdit.fontSize': "Font size",
|
||
'manualEdit.weight': "Weight",
|
||
'manualEdit.align': "Align",
|
||
'manualEdit.padding': "Padding",
|
||
'manualEdit.margin': "Margin",
|
||
'manualEdit.radius': "Radius",
|
||
'manualEdit.border': "Border",
|
||
'manualEdit.width': "Width",
|
||
'manualEdit.minHeight': "Min height",
|
||
'fileViewer.zoomOut': 'Zoom arriĂšre',
|
||
'fileViewer.zoomIn': 'Zoom avant',
|
||
'fileViewer.resetZoom': 'Réinitialiser le zoom',
|
||
'fileViewer.viewportAria': 'Preview viewport',
|
||
'fileViewer.viewportDesktop': 'Desktop',
|
||
'fileViewer.viewportDesktopTitle': 'Full-width desktop preview',
|
||
'fileViewer.viewportTablet': 'Tablet',
|
||
'fileViewer.viewportTabletTitle': 'Tablet preview at 820 Ă 1180 (modern portrait baseline)',
|
||
'fileViewer.viewportMobile': 'Mobile',
|
||
'fileViewer.viewportMobileTitle': 'Mobile preview at 390 Ă 844',
|
||
'fileViewer.reloadAria': 'Recharger',
|
||
'fileViewer.previousSlide': 'Diapositive précédente',
|
||
'fileViewer.nextSlide': 'Diapositive suivante',
|
||
'fileViewer.slideNavAria': 'Navigation des diapositives',
|
||
'fileViewer.present': 'Présenter',
|
||
'fileViewer.presentInTab': 'Dans cet onglet',
|
||
'fileViewer.presentFullscreen': 'Plein écran',
|
||
'fileViewer.presentNewTab': 'Nouvel onglet',
|
||
'fileViewer.exitPresentation': 'Quitter la présentation',
|
||
'fileViewer.shareLabel': 'Partager',
|
||
'fileViewer.exportPdf': 'Exporter en PDF',
|
||
'fileViewer.exportPdfAllSlides': 'Exporter en PDF (toutes les diapos)',
|
||
'fileViewer.exportPptxBusy': 'Attendez la fin du tour en cours.',
|
||
'fileViewer.exportPptxHint':
|
||
'Envoyez une requĂȘte Ă l\'agent pour convertir ce design en PPTX.',
|
||
'fileViewer.exportPptxNa': 'L\'export PPTX n\'est pas disponible ici.',
|
||
'fileViewer.exportZip': 'Télécharger en .zip',
|
||
'fileViewer.exportHtml': 'Exporter en HTML autonome',
|
||
'fileViewer.exportMd': 'Exporter en Markdown',
|
||
'fileViewer.exportJsx': 'Exporter en JSX',
|
||
'fileViewer.exportReactHtml': 'Exporter l\'aperçu en HTML',
|
||
'fileViewer.saveAsTemplate': 'Enregistrer comme modĂšleâŠ',
|
||
'fileViewer.savingTemplate': 'Enregistrement du modĂšleâŠ',
|
||
'fileViewer.savedTemplate': 'Enregistré comme « {name} »',
|
||
'fileViewer.savedTemplateFail': 'Impossible d\'enregistrer le modĂšle â rĂ©essayez.',
|
||
'fileViewer.templateNamePrompt': 'Nom du modĂšle',
|
||
'fileViewer.templateNameDefault': 'ModĂšle sans titre',
|
||
'fileViewer.templateDescPrompt':
|
||
'Courte description (optionnelle â qu\'est-ce qui rend ce modĂšle utile ?)',
|
||
'fileViewer.deployToVercel': 'Déployer sur Vercel',
|
||
'fileViewer.redeployToVercel': 'Redéployer',
|
||
'fileViewer.deployingToVercel': 'DĂ©ploiement sur VercelâŠ',
|
||
'fileViewer.deployProviderLabel': 'Fournisseur',
|
||
'fileViewer.vercelProvider': 'Vercel',
|
||
'fileViewer.cloudflarePagesProvider': 'Cloudflare Pages',
|
||
'fileViewer.deployToProvider': 'Déployer sur {provider}',
|
||
'fileViewer.redeployToProvider': 'Redéployer sur {provider}',
|
||
'fileViewer.deployingToProvider': 'DĂ©ploiement sur {provider}âŠ',
|
||
'fileViewer.preparingPublicLink': 'PrĂ©paration du lien publicâŠ',
|
||
'fileViewer.copyDeployLink': 'Copier le lien',
|
||
'fileViewer.deployModalTitle': 'Déployer',
|
||
'fileViewer.deployModalSubtitle': 'Utilisez le compte du fournisseur sélectionné pour déployer cet aperçu HTML.',
|
||
'fileViewer.vercelToken': 'Jeton Vercel',
|
||
'fileViewer.vercelTokenGetLink': 'Obtenir un jeton Vercel',
|
||
'fileViewer.vercelTokenPlaceholder': 'Collez votre jeton Vercel',
|
||
'fileViewer.vercelTokenReuseHint': 'Le jeton enregistré sera utilisé. Saisissez un nouveau jeton pour le remplacer.',
|
||
'fileViewer.vercelTokenRequired': 'Saisissez et enregistrez dâabord un jeton Vercel.',
|
||
'fileViewer.cloudflareApiToken': 'Jeton API Cloudflare',
|
||
'fileViewer.cloudflareApiTokenGetLink': 'Obtenir un jeton API Cloudflare',
|
||
'fileViewer.cloudflareApiTokenPlaceholder': 'Collez votre jeton API Cloudflare',
|
||
'fileViewer.cloudflareApiTokenReuseHint': 'Le jeton API Cloudflare enregistré sera utilisé. Saisissez un nouveau jeton pour le remplacer.',
|
||
'fileViewer.cloudflareApiTokenRequired': 'Saisissez et enregistrez dâabord un jeton API Cloudflare.',
|
||
'fileViewer.cloudflareApiTokenScopeHint': 'Pages Edit is required for deploys. Zone Read is required to list domains. DNS Edit is only needed when binding a custom domain.',
|
||
'fileViewer.vercelTeamId': 'ID dâĂ©quipe',
|
||
'fileViewer.vercelTeamSlug': 'Slug dâĂ©quipe',
|
||
'fileViewer.cloudflareAccountId': 'ID de compte',
|
||
'fileViewer.cloudflareAccountIdHint': 'Obligatoire. Trouvez lâID du compte dans le tableau de bord Cloudflare.',
|
||
'fileViewer.cloudflareAccountIdRequired': 'Saisissez et enregistrez dâabord un Cloudflare Account ID.',
|
||
'fileViewer.cloudflareZoneLabel': 'Domain',
|
||
'fileViewer.cloudflareZonePlaceholder': 'Save Cloudflare settings to load domains',
|
||
'fileViewer.cloudflareZoneRequired': 'Select a Cloudflare domain first.',
|
||
'fileViewer.cloudflareZonesLoading': 'Loading Cloudflare domainsâŠ',
|
||
'fileViewer.cloudflareZonesRefresh': 'Refresh domains',
|
||
'fileViewer.cloudflareZonesLoadFailed': 'Could not load Cloudflare domains.',
|
||
'fileViewer.cloudflareZonesEmpty': 'No active full Cloudflare domains were found for this account.',
|
||
'fileViewer.cloudflareDomainPrefixLabel': 'Subdomain prefix',
|
||
'fileViewer.cloudflareDomainPrefixPlaceholder': 'demo',
|
||
'fileViewer.cloudflareDomainPrefixInvalid': 'Use one DNS label only: lowercase letters, numbers, and hyphens.',
|
||
'fileViewer.cloudflareHostnamePreview': 'Custom domain preview: {hostname}',
|
||
'fileViewer.cloudflareCustomDomainHint': 'Optional: choose a Cloudflare domain and prefix to bind a custom subdomain. pages.dev will still be available.',
|
||
'fileViewer.cloudflarePagesDevLinkLabel': 'pages.dev URL',
|
||
'fileViewer.cloudflareCustomDomainLinkLabel': 'Custom domain',
|
||
'fileViewer.optional': 'Facultatif',
|
||
'fileViewer.vercelPreviewOnly': 'Les déploiements sont en mode Preview pour le moment.',
|
||
'fileViewer.cloudflarePagesPreviewHint': 'Les déploiements Cloudflare Pages utilisent Direct Upload.',
|
||
'fileViewer.savingConfig': 'EnregistrementâŠ',
|
||
'fileViewer.deployConfigSaveFailed': 'Impossible dâenregistrer les rĂ©glages Vercel.',
|
||
'fileViewer.deployFailed': 'Ăchec du dĂ©ploiement. VĂ©rifiez les rĂ©glages Vercel et rĂ©essayez.',
|
||
'fileViewer.deployProviderConfigSaveFailed': 'Impossible dâenregistrer les rĂ©glages {provider}.',
|
||
'fileViewer.deployProviderFailed': 'Ăchec du dĂ©ploiement {provider}. VĂ©rifiez les rĂ©glages et rĂ©essayez.',
|
||
'fileViewer.deployResultLabel': 'URL déployée',
|
||
'fileViewer.deployLinkReady': 'PrĂȘt',
|
||
'fileViewer.deployLinkPreparingLabel': 'Lien public en attente',
|
||
'fileViewer.deployLinkDelayed': 'Le site est déployé. Le fournisseur prépare encore le lien public.',
|
||
'fileViewer.deployLinkFailed': 'Le domaine personnalisé a échoué',
|
||
'fileViewer.deployLinkProtectedLabel': 'Protection du déploiement activée',
|
||
'fileViewer.deployLinkProtected': 'Le site est déployé, mais ce lien de prévisualisation exige une authentification. Désactivez Deployment Protection ou utilisez un domaine personnalisé.',
|
||
'fileViewer.retryLink': 'Réessayer maintenant',
|
||
|
||
'questionForm.submit': 'Envoyer',
|
||
'questionForm.skip': 'Passer',
|
||
'questionForm.locked': 'Répondu',
|
||
|
||
'conv.switch': 'Changer de conversation',
|
||
'conv.label': 'Conversation',
|
||
'conv.heading': 'Conversations',
|
||
'conv.new': '+ Nouvelle',
|
||
'conv.empty': 'Aucune conversation pour l\'instant.',
|
||
'conv.untitled': 'Conversation sans titre',
|
||
'conv.renameTooltip': 'Double-cliquez pour renommer',
|
||
'conv.delete': 'Supprimer la conversation',
|
||
'conv.deleteConfirm': 'Supprimer « {title} » ? Cela supprime ses messages.',
|
||
|
||
'agentPicker.label': 'Agent',
|
||
'agentPicker.modeChoose': 'Choisir le mode d\'exécution',
|
||
'agentPicker.localCli': 'CLI local',
|
||
'agentPicker.daemonOff': 'daemon arrĂȘtĂ©',
|
||
'agentPicker.byok': 'API · BYOK',
|
||
'agentPicker.selectAgent': 'Sélectionner un agent CLI détecté',
|
||
'agentPicker.noAgents': 'aucun agent dans le PATH',
|
||
'agentPicker.notInstalled': 'non installé',
|
||
'agentPicker.rescan': 'Réanalyser le PATH local pour les agents',
|
||
|
||
'tool.openInTab': 'Ouvrir {name} dans un onglet',
|
||
'tool.open': 'ouvrir',
|
||
'tool.todos': 'TĂąches',
|
||
'tool.write': 'Ăcrire',
|
||
'tool.edit': 'Modifier',
|
||
'tool.read': 'Lire',
|
||
'tool.bash': 'Bash',
|
||
'tool.glob': 'Glob',
|
||
'tool.grep': 'Grep',
|
||
'tool.fetch': 'Fetch',
|
||
'tool.search': 'Rechercher',
|
||
'tool.lines': '{n} lignes',
|
||
'tool.changeSingular': 'modification',
|
||
'tool.changePlural': 'modifications',
|
||
'tool.in': 'dans {path}',
|
||
'tool.hide': 'masquer',
|
||
'tool.output': 'sortie',
|
||
'tool.running': 'en coursâŠ',
|
||
'tool.error': 'erreur',
|
||
'tool.done': 'terminé',
|
||
|
||
'assistant.role': 'Assistant',
|
||
'assistant.workingLabel': 'En cours',
|
||
'assistant.doneLabel': 'Terminé',
|
||
'assistant.feedbackPrompt': 'Avis',
|
||
'assistant.feedbackPositive': 'Utile',
|
||
'assistant.feedbackNegative': 'Pas utile',
|
||
'assistant.feedbackReasonTitle': 'Tell us why',
|
||
'assistant.feedbackReasonPositiveMatched': 'Understood my request',
|
||
'assistant.feedbackReasonPositiveVisual': 'Looks good',
|
||
'assistant.feedbackReasonPositiveUseful': 'Useful structure',
|
||
'assistant.feedbackReasonPositiveEasy': 'Easy to keep editing',
|
||
'assistant.feedbackReasonNegativeMissed': 'Missed my request',
|
||
'assistant.feedbackReasonNegativeVisual': 'Visual quality needs work',
|
||
'assistant.feedbackReasonNegativeIncomplete': 'Incomplete output',
|
||
'assistant.feedbackReasonNegativeHard': 'Hard to use',
|
||
'assistant.feedbackReasonOther': 'Other',
|
||
'assistant.feedbackReasonPlaceholder': 'Add a short note...',
|
||
'assistant.feedbackReasonSubmit': 'Submit',
|
||
'assistant.emptyResponseLabel': 'No output',
|
||
'assistant.emptyResponseMessage': 'The provider ended the request without returning text or an artifact. Try another model or provider, check quota, or retry.',
|
||
'assistant.unfinishedLabel': 'ArrĂȘtĂ© avec du travail non terminĂ©',
|
||
'assistant.unfinishedSummary': '{n} tĂąche(s) restante(s)',
|
||
'assistant.unfinishedMore': '+{n} de plus',
|
||
'assistant.continueRemaining': 'Continuer les tĂąches restantes',
|
||
'assistant.outTokens': '{n} sortie',
|
||
'assistant.producedFiles': 'Fichiers de ce tour',
|
||
'assistant.openFile': 'Ouvrir',
|
||
'assistant.downloadFile': 'Télécharger',
|
||
'assistant.thinking': 'Réflexion',
|
||
'assistant.systemReminder': 'Rappel systĂšme',
|
||
'assistant.waitingFirstOutput': 'En attente de la premiĂšre sortie',
|
||
'assistant.statusBootingAgent': 'Démarrage de l\'agent',
|
||
'assistant.statusStarting': 'Démarrage',
|
||
'assistant.statusRequesting': 'Envoi de la requĂȘte',
|
||
'assistant.statusThinking': 'Réflexion',
|
||
'assistant.statusStreaming': 'Streaming',
|
||
'assistant.slowHint':
|
||
'Plus long que d\'habitude. Le formulaire s\'affiche gĂ©nĂ©ralement en 5â10s â vous pouvez ArrĂȘter et reformuler.',
|
||
'assistant.verbEditing': 'Modification',
|
||
'assistant.verbWriting': 'Ăcriture',
|
||
'assistant.verbReading': 'Lecture',
|
||
'assistant.verbSearching': 'Recherche',
|
||
'assistant.verbRunning': 'Exécution',
|
||
'assistant.verbTodos': 'TĂąches',
|
||
'assistant.verbFetching': 'Récupération',
|
||
'assistant.verbCalling': 'Appel',
|
||
|
||
'qf.answered': 'répondu',
|
||
'qf.choose': 'ChoisirâŠ',
|
||
'qf.required': 'requis',
|
||
'qf.lockedSubmitted':
|
||
'RĂ©ponses envoyĂ©es â l\'agent les utilise pour le reste de la session.',
|
||
'qf.lockedPrev': 'Ce formulaire provient d\'un tour précédent.',
|
||
'qf.hint':
|
||
'Choisissez ce qui convient. Ignorez les champs optionnels qui ne vous intĂ©ressent pas â l\'agent utilisera des valeurs par dĂ©faut raisonnables.',
|
||
'qf.submitDefault': 'Envoyer les réponses',
|
||
'qf.submitDisabledTitle': 'Remplissez d\'abord les champs requis',
|
||
'qf.submitTitle': 'Envoyer les réponses',
|
||
'qf.cardSelected': 'sélectionné',
|
||
'qf.cardRefs': 'Réfs :',
|
||
'qf.cardSampleText': 'Portez ce vieux whisky au juge blond qui fume · 0123',
|
||
|
||
'sketch.toolSelect': 'Sélection (sans effet)',
|
||
'sketch.toolPen': 'Stylo',
|
||
'sketch.toolText': 'Texte',
|
||
'sketch.toolRect': 'Rectangle',
|
||
'sketch.toolArrow': 'FlĂšche',
|
||
'sketch.toolEraser': 'Gomme',
|
||
'sketch.color': 'Couleur',
|
||
'sketch.strokeSize': 'Taille du trait',
|
||
'sketch.undo': 'Annuler',
|
||
'sketch.clear': 'Effacer',
|
||
'sketch.close': 'Fermer',
|
||
'sketch.closeConfirm': 'Fermer le croquis et abandonner vos modifications non enregistrées ?',
|
||
'sketch.textPrompt': 'Texte :',
|
||
'sketch.textModalTitle': 'Ajouter du texte',
|
||
|
||
'pet.title': 'Compagnons',
|
||
'pet.subtitle': 'Adoptez un petit compagnon qui flotte au-dessus de votre espace de travail.',
|
||
'pet.navTitle': 'Compagnons',
|
||
'pet.navHint': 'Adopter ou personnaliser',
|
||
'pet.tabBuiltIn': 'Intégrés',
|
||
'pet.tabBuiltInHint': 'Compagnons fournis avec Open Design â choisissez-en un et adoptez-le.',
|
||
'pet.builtInEmpty': 'Les compagnons intégrés sont indisponibles pour l\'instant. Essayez d\'actualiser l\'onglet Communauté une fois le daemon en ligne.',
|
||
'pet.tabCustom': 'Personnalisé',
|
||
'pet.tabCustomHint': 'Créez le vÎtre avec un nom, un glyphe, une couleur ou un sprite.',
|
||
'pet.tabCommunity': 'Communauté',
|
||
'pet.tabCommunityHint': 'Compagnons Ă©clos de Codex â adoptez-en un ou gĂ©nĂ©rez-en un nouveau.',
|
||
'pet.tabsAria': 'Source du compagnon',
|
||
'pet.adopt': 'Adopter',
|
||
'pet.adoptedBadge': 'Adopté',
|
||
'pet.adoptCallout': 'Adopter un compagnon',
|
||
'pet.changePet': 'Changer de compagnon',
|
||
'pet.wake': 'Réveiller',
|
||
'pet.tuck': 'Cacher',
|
||
'pet.wakeTitle': 'RĂ©veiller le compagnon â afficher l\'overlay flottant.',
|
||
'pet.tuckTitle': 'Cacher le compagnon â masquer l\'overlay flottant.',
|
||
'pet.settingsTitle': 'Ouvrir les paramĂštres du compagnon',
|
||
'pet.useCustom': 'Utiliser mon compagnon',
|
||
'pet.customTitle': 'Créez le vÎtre',
|
||
'pet.customHint': 'Choisissez un nom, un glyphe et une couleur d\'accent â l\'overlay se met Ă jour en direct.',
|
||
'pet.customGreetingPlaceholder': 'Faites dire bonjour Ă votre compagnonâŠ',
|
||
'pet.fieldName': 'Nom',
|
||
'pet.fieldGlyph': 'Glyphe',
|
||
'pet.fieldGlyphHint': 'Un seul emoji fonctionne le mieux (ex. đ, đŠ, đą).',
|
||
'pet.fieldGreeting': 'Salutation',
|
||
'pet.fieldAccent': 'Couleur d\'accent',
|
||
'pet.fieldAccentCustom': 'Couleur personnalisée',
|
||
'pet.overlayAria': 'Compagnon',
|
||
'pet.spriteAria': '{name} â glisser pour dĂ©placer, cliquer pour chatter',
|
||
'pet.spriteTitle': 'Salut de {name}Â ! Cliquez pour chatter.',
|
||
'pet.railAria': 'Sélecteur de compagnon',
|
||
'pet.railTitle': 'Compagnons',
|
||
'pet.railHint': 'Choisissez un compagnon Ă faire flotter au-dessus de votre espace de travail.',
|
||
'pet.railExpand': 'Afficher le sélecteur de compagnon',
|
||
'pet.railCollapse': 'Réduire le sélecteur de compagnon',
|
||
'pet.railHide': 'Masquer le sélecteur de compagnon',
|
||
'pet.railShow': 'Afficher le sélecteur de compagnon',
|
||
'pet.railCustomFlavor': 'Le vĂŽtre â nom, glyphe, couleur.',
|
||
'pet.railCustomize': 'PersonnaliserâŠ',
|
||
'pet.composerTitle': 'Compagnons â rĂ©veiller, cacher ou choisir',
|
||
'pet.composerMenuTitle': 'Compagnons',
|
||
'pet.composerMenuHint': 'astuce : tapez /pet pour basculer',
|
||
'pet.composerOpenSettings': 'Personnaliser dans les paramĂštres',
|
||
'pet.welcomeTeaserTitle': 'Adoptez un compagnon',
|
||
'pet.welcomeTeaserBody': 'Un petit compagnon flottant qui traĂźne avec vous.',
|
||
'pet.welcomeTeaserCta': 'En choisir un',
|
||
'pet.imageUpload': 'Téléverser un sprite',
|
||
'pet.imageReplace': 'Remplacer le sprite',
|
||
'pet.imageRemove': 'Utiliser un emoji',
|
||
'pet.imageHintIdle': 'PNG, JPG, WebP, GIF ou SVG. Téléversement de planche ? Déposez une bande horizontale et définissez le nombre de frames.',
|
||
'pet.imageHintActive': 'Affichage de votre sprite. Définissez frames > 1 pour faire défiler une planche de sprites horizontale.',
|
||
'pet.fieldFrames': 'Frames',
|
||
'pet.fieldFramesHint': '1 = statique. > 1 = planche de sprites horizontale.',
|
||
'pet.fieldFps': 'Vitesse (fps)',
|
||
'pet.fieldFpsHint': 'à quelle vitesse les frames défilent.',
|
||
'pet.atlasImport': 'Importer un sprite Codex',
|
||
'pet.atlasImportTitle': 'Importer un atlas de pet 8Ă9 / 192Ă208 (PNG ou WebP).',
|
||
'pet.atlasPickerTitle': 'Choisir une rangée d\'animation',
|
||
'pet.atlasPickerHint': 'Les pets Codex sont livrés avec 9 rangées d\'animation. Par défaut, nous gardons l\'atlas complet pour que le pet change de rangée au survol, au glisser et à l\'inactivité. Vous pouvez aussi le figer sur une seule boucle.',
|
||
'pet.atlasCancel': 'Abandonner l\'atlas',
|
||
'pet.atlasAdopt': 'Figer sur cette rangée',
|
||
'pet.atlasAdoptFull': 'Utiliser l\'atlas complet (animé)',
|
||
'pet.atlasAdoptFullTitle': 'Garder chaque rangée pour que le pet réagisse au survol, à la direction du glisser et aux longues inactivités.',
|
||
'pet.atlasAdoptRowTitle': 'Découper uniquement la rangée sélectionnée en une seule bande en boucle.',
|
||
'pet.atlasActiveHint': 'Atlas animĂ© actif â le pet choisit une rangĂ©e selon votre interaction (survol, glisser, inactivitĂ©).',
|
||
'pet.atlasRow.idle': 'Inactif',
|
||
'pet.atlasRow.running-right': 'Court Ă droite',
|
||
'pet.atlasRow.running-left': 'Court Ă gauche',
|
||
'pet.atlasRow.waving': 'Salut',
|
||
'pet.atlasRow.jumping': 'Saut',
|
||
'pet.atlasRow.failed': 'Ăchec',
|
||
'pet.atlasRow.waiting': 'Attente',
|
||
'pet.atlasRow.running': 'Course',
|
||
'pet.atlasRow.review': 'Révision',
|
||
'pet.hatchTitle': 'Faire éclore un nouveau compagnon avec l\'IA',
|
||
'pet.hatchHint': 'Utilisez la compétence hatch-pet intégrée dans le chat pour générer une planche de sprites style Codex, puis importez-la ici.',
|
||
'pet.hatchConcept': 'Concept du compagnon (optionnel)',
|
||
'pet.hatchConceptPlaceholder': 'ex. un petit shiba pixel art dans un pull douillet',
|
||
'pet.hatchCopy': 'Copier le prompt',
|
||
'pet.hatchCopied': 'Copié !',
|
||
'pet.hatchFoot': 'Une fois que la compétence a enregistré votre compagnon, revenez et choisissez « Importer un sprite Codex ».',
|
||
'pet.slashPopoverAria': 'Commandes slash',
|
||
'pet.slashPopoverTitle': 'Commandes',
|
||
'pet.slashPopoverHint': 'ââ naviguer · entrĂ©e pour choisir · Ă©chap pour fermer',
|
||
'pet.slashPet': 'Basculer, adopter ou aller aux paramĂštres du compagnon.',
|
||
'pet.slashPetWake': 'Réveiller l\'overlay flottant du compagnon.',
|
||
'pet.slashPetTuck': 'Cacher le compagnon pour l\'instant.',
|
||
'pet.slashHatch': 'Générer un pet Codex via la compétence hatch-pet.',
|
||
'pet.slashHatchArg': '<concept>',
|
||
'pet.slashSearch': 'Rechercher sur le web via la commande OD research.',
|
||
'pet.slashSearchArg': '<requĂȘte>',
|
||
'pet.codexTitle': 'Ăclos rĂ©cemment',
|
||
'pet.codexSubtitle': 'Les pets empaquetés par la compétence hatch-pet apparaissent ici pour une adoption en un clic.',
|
||
'pet.codexSubtitleWithDir': 'Analyse de {dir} pour les pets empaquetés par la compétence hatch-pet.',
|
||
'pet.codexEmpty': 'Aucun pet éclos pour l\'instant. Tapez /hatch dans le chat pour en générer un.',
|
||
'pet.codexLoading': 'Recherche de pets Ă©closâŠ',
|
||
'pet.codexRefresh': 'Actualiser',
|
||
'pet.codexAdopt': 'Adopter',
|
||
'pet.codexAdopting': 'AdoptionâŠ',
|
||
'pet.communitySync': 'Télécharger les pets de la communauté',
|
||
'pet.communitySyncing': 'TĂ©lĂ©chargementâŠ',
|
||
'pet.communitySyncTitle': 'Synchroniser les derniers pets de Codex Pet Share + j20 Hatchery dans ~/.codex/pets/.',
|
||
'pet.communitySyncDone': '{wrote} nouveaux pets synchronisés ({total} au total).',
|
||
'pet.communitySyncFailed': 'Ăchec de la synchronisation : {error}',
|
||
'pet.codexBundled': 'Fourni',
|
||
'pet.codexBundledTitle': 'LivrĂ© avec Open Design â aucun tĂ©lĂ©chargement nĂ©cessaire.',
|
||
|
||
'settings.notifications': 'Notifications',
|
||
'settings.notificationsHint': 'Son et notification bureau Ă la fin d\'une tĂąche',
|
||
'settings.notifyCompletionSound': 'Son de fin',
|
||
'settings.notifyCompletionSoundHint': 'Joué quand un tour se termine. Désactivé par défaut.',
|
||
'settings.notifySuccessSound': 'Son de succĂšs',
|
||
'settings.notifyFailureSound': 'Son d\'échec',
|
||
'settings.notifyDesktop': 'Notification bureau',
|
||
'settings.notifyDesktopHint': 'EnvoyĂ©e lorsque la fenĂȘtre n\'est pas active.',
|
||
'settings.notifyDesktopBlocked': 'Notifications bloquées par le navigateur. Autorisez-les dans les paramÚtres du site.',
|
||
'settings.notifyDesktopUnsupported': 'Notifications bureau indisponibles dans cet environnement.',
|
||
'settings.notifyTest': 'Envoyer un test',
|
||
'settings.notifyTestSent': 'Notification de test envoyée. Si aucune banniÚre n\'apparaßt, vérifiez les paramÚtres de notification du navigateur et du systÚme.',
|
||
'settings.notifyTestFailed': 'L\'appel de notification a échoué. Vérifiez les paramÚtres de notification du navigateur et du systÚme.',
|
||
'settings.notifySoundDing': 'Ding',
|
||
'settings.notifySoundChime': 'Carillon',
|
||
'settings.notifySoundTwoToneUp': 'Bitonale montante',
|
||
'settings.notifySoundPluck': 'Pizzicato',
|
||
'settings.notifySoundBuzz': 'Buzz',
|
||
'settings.notifySoundTwoToneDown': 'Bitonale descendante',
|
||
'settings.notifySoundThud': 'Sourd',
|
||
'settings.skills': 'Compétences',
|
||
'settings.skillsHint': 'CompĂ©tences que lâagent peut invoquer en cours de tĂąche',
|
||
'settings.skillsNew': 'Nouvelle compétence',
|
||
'settings.skillsEmpty': 'Sélectionnez une compétence à gauche, ou créez-en une.',
|
||
'settings.skillsEdit': 'Modifier',
|
||
'settings.skillsDelete': 'Supprimer',
|
||
'settings.skillsDeleteConfirm': 'Confirmer la suppression',
|
||
'settings.skillsName': 'Nom',
|
||
'settings.skillsTriggers': 'Déclencheurs (séparés par virgules ou retours à la ligne)',
|
||
'settings.skillsDescription': 'Description',
|
||
'settings.skillsBody': 'Corps SKILL.md',
|
||
'settings.skillsCreate': 'Créer',
|
||
'settings.skillsSave': 'Enregistrer',
|
||
'settings.skillsSaving': 'EnregistrementâŠ',
|
||
'settings.skillsFiles': 'Fichiers',
|
||
'settings.skillsNoFiles': 'Aucun fichier dans ce dossier de compétence.',
|
||
'settings.designSystems': 'Design systems',
|
||
'settings.designSystemsHint': 'Parcourez et activez les design systems disponibles',
|
||
'settings.librarySkills': 'Compétences',
|
||
'settings.libraryDesignSystems': 'SystĂšmes de design',
|
||
'settings.librarySearch': 'Rechercher...',
|
||
'settings.libraryAll': 'Tout',
|
||
'settings.libraryPreview': 'Aperçu',
|
||
'settings.libraryPreviewClose': 'Fermer',
|
||
'settings.libraryLoading': 'Chargement...',
|
||
'settings.libraryNoResults': 'Aucun élément ne correspond à votre recherche.',
|
||
'settings.libraryEnabled': 'Activé',
|
||
'settings.libraryDisabled': 'Désactivé',
|
||
'settings.connectorsNavHint': 'Connexions aux systĂšmes externes',
|
||
'settings.connectorsHint': 'GĂ©rez les paramĂštres des connecteurs et fournisseurs dâoutils pour cet appareil.',
|
||
'settings.connectorsComposioApiKey': 'Clé API Composio',
|
||
'settings.connectorsSavedTitle': 'Enregistrée dans le daemon local',
|
||
'settings.connectorsSavedWithTail': 'EnregistrĂ©e · âąâąâąâą{tail}',
|
||
'settings.connectorsSaved': 'Enregistrée',
|
||
'settings.connectorsGetApiKey': 'Obtenir une clé API',
|
||
'settings.connectorsReplaceKeyPlaceholder': 'Collez une nouvelle clé pour remplacer celle enregistrée',
|
||
'settings.connectorsApiKeyPlaceholder': 'Collez la clé API Composio',
|
||
'settings.connectorsClear': 'Effacer',
|
||
'settings.connectorsClearConfirmTitle': 'Effacer la clé API Composio enregistrée ?',
|
||
'settings.connectorsClearConfirmBody': 'Supprimer la clé déconnecte tous les connecteurs Composio liés à cet espace. Les comptes connectés, les autorisations OAuth et les accÚs aux outils seront tous supprimés.',
|
||
'settings.connectorsClearConfirmContinue': 'Continuer',
|
||
'settings.connectorsClearFinalTitle': 'Cette action déconnectera tous les connecteurs',
|
||
'settings.connectorsClearFinalBody': 'Action irréversible. Vous devrez reconnecter chaque intégration depuis le début aprÚs avoir collé une nouvelle clé.',
|
||
'settings.connectorsClearFinalConfirm': 'Supprimer la clé et déconnecter',
|
||
'settings.connectorsClearArming': 'Un instant\u2026',
|
||
'settings.connectorsClearCancel': 'Annuler',
|
||
'settings.connectorsSaveKey': "Enregistrer la clé",
|
||
'settings.connectorsSaveKeyTitle': "Envoyer cette clé au daemon local",
|
||
'settings.connectorsKeySaving': "EnregistrementâŠ",
|
||
'settings.connectorsKeySaved': "EnregistrĂ© â",
|
||
'settings.connectorsKeyError': "Impossible dâenregistrer la clĂ©. VĂ©rifie que le daemon local est lancĂ© puis rĂ©essaie.",
|
||
'settings.connectorsHelpSaved': 'Votre clé déverrouille le catalogue ci-dessous et reste dans le daemon local. Collez une nouvelle clé pour la remplacer ou effacez-la.',
|
||
'settings.connectorsHelpUnsaved': "Modifications non enregistrĂ©es â clique sur Enregistrer la clĂ© pour stocker cette information dans le daemon local et dĂ©bloquer le catalogue ci-dessous.",
|
||
'settings.connectorsHelpEmpty': 'Ajoutez une clĂ© pour dĂ©verrouiller le catalogue ci-dessous. Les clĂ©s sont stockĂ©es localement dans le daemon et ne sont jamais envoyĂ©es via des variables dâenvironnement.',
|
||
'settings.connectorsLoadingSavedKey': 'Recherche dâune clĂ© enregistrĂ©e dans le daemon localâŠ',
|
||
'settings.autosaveSaving': "EnregistrementâŠ",
|
||
'settings.autosaveSaved': "Toutes les modifications enregistrées",
|
||
'settings.autosaveError': "Impossible dâenregistrer les modifications. Le daemon local est peut-ĂȘtre hors ligne.",
|
||
'settings.libraryToggleLabel': 'Basculer',
|
||
// Memory (auto-extracted personalization saved as on-disk markdown)
|
||
'settings.memory': 'Mémoire',
|
||
'settings.memoryHint': 'Faits personnels extraits automatiquement des conversations',
|
||
'settings.memoryDescription': 'Faits sur vos préférences extraits automatiquement, sauvegardés en Markdown et réinjectés dans chaque chat.',
|
||
'settings.memoryEnabled': 'Activée',
|
||
'settings.memoryDisabled': 'Désactivée',
|
||
'settings.memoryEnableLabel': 'Activer l\'injection de mémoire',
|
||
'settings.memoryDisabledBanner': 'La mémoire est actuellement désactivée. Les faits existants restent sur le disque mais ne seront pas injectés dans les nouveaux chats.',
|
||
'settings.memoryNew': 'Nouvelle mémoire',
|
||
'settings.memoryEdit': 'Modifier',
|
||
'settings.memoryDelete': 'Supprimer',
|
||
'settings.memoryPreview': 'Aperçu',
|
||
'settings.memoryEmpty': 'Aucune mémoire pour l\'instant.',
|
||
'settings.memoryEmptyHintZh': 'èź°äœ: çšæ·ćć„œæ·±èČäž»éą',
|
||
'settings.memoryEmptyHintEn': 'I prefer dark mode',
|
||
'settings.memoryName': 'Nom',
|
||
'settings.memoryDesc': 'Description en une ligne',
|
||
'settings.memoryBody': 'Corps (Markdown pris en charge)',
|
||
'settings.memoryBodyHint': 'Ănoncez la rĂšgle, puis ajoutez Why et How to apply.',
|
||
'settings.memoryStartersLabel': 'Need a starting point? Click to fill the form:',
|
||
'settings.memoryStarterUserName': 'My role',
|
||
'settings.memoryStarterUserDesc': 'I am a frontend engineer working on a SaaS design tool',
|
||
'settings.memoryStarterUserBody': '- Role: senior frontend engineer\n- Stack: React, TypeScript, Vite\n- Domain: design / collaboration tools\n- Timezone: GMT+8 (Asia/Shanghai)\n\nWhen to apply: any chat â frame examples around web frontend.',
|
||
'settings.memoryStarterFeedbackName': 'UI preferences',
|
||
'settings.memoryStarterFeedbackDesc': 'Dark mode, large body text, low information density',
|
||
'settings.memoryStarterFeedbackBody': '- Theme: dark by default\n- Body text: â„ 18px\n- Information density: prefer whitespace, fewer items per screen\n\nWhy: less eye strain during long sessions.\nWhen to apply: whenever you generate UI, web pages, or slides.',
|
||
'settings.memoryStarterProjectName': 'Current project',
|
||
'settings.memoryStarterProjectDesc': 'Open Design v0.5 â chat-driven design editor',
|
||
'settings.memoryStarterProjectBody': '- Goal: ship the chat-driven editor this quarter\n- Priorities: streaming render, local multimodal, offline-first\n- Stack: Next.js 16, Express daemon, SQLite\n\nWhen to apply: in any conversation about this project.',
|
||
'settings.memorySaveHint': 'Not auto-saved â click Create / Save to apply.',
|
||
'settings.memoryIndexSaveHint': 'Edits to the index are not auto-saved â click Save index to apply.',
|
||
'settings.memoryIndexUnsaved': 'Unsaved changes',
|
||
'settings.memoryFlashCreated': 'â Memory created',
|
||
'settings.memoryFlashSaved': 'â Memory saved',
|
||
'settings.memoryFlashDeleted': 'â Memory deleted',
|
||
'settings.memoryFlashIndexSaved': 'â Index saved',
|
||
'settings.memoryNameLabel': 'Title',
|
||
'settings.memoryTypeLabel': 'Type',
|
||
'settings.memoryDescLabel': 'Description',
|
||
'settings.memoryBodyLabel': 'Content',
|
||
'settings.memoryTypeUser': 'Utilisateur',
|
||
'settings.memoryTypeFeedback': 'Retour',
|
||
'settings.memoryTypeProject': 'Projet',
|
||
'settings.memoryTypeReference': 'Référence',
|
||
'settings.memoryIndex': 'MEMORY.md (index)',
|
||
'settings.memoryIndexSave': 'Enregistrer l\'index',
|
||
'settings.memoryIndexReset': 'Réinitialiser',
|
||
'settings.memoryToastChanged': 'Mémoire mise à jour',
|
||
'settings.memoryToastClickHint': 'Afficher',
|
||
'settings.memoryAll': 'Tout',
|
||
'settings.memoryExtractions': 'Extraction history',
|
||
'settings.memoryExtractionsHint': 'Recent LLM-backed extraction attempts. Heuristic regex extraction always runs first; LLM extraction runs in the background after each turn.',
|
||
'settings.memoryExtractionsEmpty': 'No extractions yet. The next chat turn will populate this list.',
|
||
'settings.memoryExtractionsRefresh': 'Refresh',
|
||
'settings.memoryExtractionsRefreshing': 'RefreshingâŠ',
|
||
'settings.memoryExtractionPhaseRunning': 'RunningâŠ',
|
||
'settings.memoryExtractionPhaseSuccess': 'Success',
|
||
'settings.memoryExtractionPhaseSkipped': 'Skipped',
|
||
'settings.memoryExtractionPhaseFailed': 'Failed',
|
||
'settings.memoryExtractionSkipNoProvider': 'No API key configured for LLM memory extraction.',
|
||
'settings.memoryExtractionSkipDisabled': 'Memory is disabled.',
|
||
'settings.memoryExtractionSkipEmpty': 'Empty user message â nothing to extract.',
|
||
'settings.memoryExtractionSkipNoMatch': 'No regex pattern matched this turn.',
|
||
'settings.memoryExtractionKindHeuristic': 'regex',
|
||
'settings.memoryExtractionKindLlm': 'LLM',
|
||
'settings.memoryExtractionProviderEnv': 'env',
|
||
'settings.memoryExtractionProviderMediaConfig': 'media settings',
|
||
'settings.memoryExtractionProposed': 'proposed',
|
||
'settings.memoryExtractionWritten': 'written',
|
||
'settings.memoryExtractionDuration': 'in',
|
||
'settings.memoryNoProviderBannerTitle': 'LLM memory extraction is not running',
|
||
'settings.memoryNoProviderBannerBody': 'No API key found for the memory extractor. Add an OpenAI key under Media providers, or set ANTHROPIC_API_KEY / OPENAI_API_KEY in the environment, to enable LLM-driven extraction. Heuristic regex extraction is still active.',
|
||
'settings.memoryExtractionProviderOverride': 'memory settings',
|
||
'settings.memoryExtractionDelete': 'Delete',
|
||
'settings.memoryExtractionsClear': 'Clear',
|
||
'settings.memoryExtractionsClearTitle': 'Clear all extraction history',
|
||
'settings.libraryInstall': 'Installer',
|
||
'settings.libraryInstallGithub': 'GitHub',
|
||
'settings.libraryInstallLocal': 'Chemin local',
|
||
'settings.libraryInstallUrl': 'https://github.com/owner/repo',
|
||
'settings.libraryInstallPath': '/path/to/skill-folder',
|
||
'settings.libraryInstallButton': 'Installer',
|
||
'settings.libraryUninstall': 'Désinstaller',
|
||
'settings.libraryBuiltIn': 'Intégré',
|
||
'settings.libraryInstalled': 'Installé',
|
||
'notify.successTitle': 'Tùche terminée',
|
||
'notify.failureTitle': 'Tùche échouée',
|
||
'notify.successBody': 'Un tour est terminé.',
|
||
'notify.failureBody': 'La tùche s\'est terminée avec une erreur.',
|
||
'settings.memoryModelInlineLabel': 'Memory model',
|
||
'settings.memoryModelInlineSameAsChat': 'Same as chat',
|
||
'settings.memoryModelInlineSameAsChatWithModel': 'Same as chat ({model})',
|
||
'settings.memoryModelInlineSameAsChatWithProvider': 'Same as chat ({provider})',
|
||
'settings.memoryModelInlineHintCli': 'Optional. The memory extractor uses an env-var or media-providers API key on this provider; pinning a model here just overrides the auto-pick.',
|
||
'settings.memoryModelInlineHintCliConstrained': 'Optional. Memory will call {provider}; needs an env-var or media-providers API key for that provider, or pick a model below to override.',
|
||
'settings.memoryModelInlineHintByok': 'Optional. Reuses your chat API key on the same provider â picking a different (usually cheaper) model only changes the request body.',
|
||
'settings.memoryModelInlineFlashSaved': 'Saved',
|
||
'settings.memoryModelInlineFlashCleared': 'Cleared',
|
||
'settings.orbit.eyebrow': 'Automatisation',
|
||
'settings.orbit.title': 'Orbit',
|
||
'settings.orbit.navHint': 'Résumé quotidien des connecteurs',
|
||
'settings.orbit.lede': 'Collecte lâactivitĂ© des connecteurs selon un calendrier et publie le rĂ©sultat sous forme de live artifact actualisable.',
|
||
'settings.orbit.statusOnTitle': 'Les exécutions quotidiennes planifiées sont activées',
|
||
'settings.orbit.statusOffTitle': 'Les exécutions quotidiennes planifiées sont désactivées',
|
||
'settings.orbit.statusActive': 'Actif',
|
||
'settings.orbit.statusOff': 'Désactivé',
|
||
'settings.orbit.runTitle': 'Démarrer une exécution Orbit et ouvrir la conversation en direct',
|
||
'settings.orbit.running': 'ExĂ©cutionâŠ',
|
||
'settings.orbit.runOpen': 'Exécuter maintenant',
|
||
'settings.orbit.dailySummaryTitle': 'Résumé quotidien',
|
||
'settings.orbit.dailySummarySub': 'SâexĂ©cute une fois par jour Ă lâheure locale planifiĂ©e.',
|
||
'settings.orbit.on': 'Activé',
|
||
'settings.orbit.off': 'Désactivé',
|
||
'settings.orbit.runTimeTitle': 'Heure dâexĂ©cution',
|
||
'settings.orbit.runTimeSub': 'Par défaut 08:00. Enregistrez pour appliquer au planning du daemon.',
|
||
'settings.orbit.runTimeAria': 'Heure dâexĂ©cution quotidienne de Orbit',
|
||
'settings.orbit.nextRun': 'Prochaine exécution',
|
||
'settings.orbit.nextRunScheduledAfterSave': 'Planifiée aprÚs enregistrement',
|
||
'settings.orbit.schedule': 'Planning',
|
||
'settings.orbit.pausedManualOnly': 'En pause â exĂ©cutions manuelles uniquement',
|
||
'settings.orbit.templateTitle': 'ModĂšle de prompt',
|
||
'settings.orbit.templateMissing': 'Le modĂšle {id} nâest pas installĂ©.',
|
||
'settings.orbit.templateMissingOption': '{id} (manquant)',
|
||
'settings.orbit.templateMissingInstall': 'Installez une skill Orbit pour guider le prompt.',
|
||
'settings.orbit.templateMissingPickAnother': 'Choisissez un autre modĂšle dans la liste.',
|
||
'settings.orbit.templateResetTitle': 'Réinitialiser sur {id}',
|
||
'settings.orbit.templateReset': 'Réinitialiser',
|
||
'settings.orbit.templateHelp': 'Guidez Orbit avec une skill â le prompt dâexemple du modĂšle sĂ©lectionnĂ© est injectĂ© dans chaque exĂ©cution Orbit afin que les rĂ©sumĂ©s suivent cette forme.',
|
||
'settings.orbit.templateAria': 'ModĂšle de prompt Orbit',
|
||
'settings.orbit.templatesLoading': 'Chargement des modĂšlesâŠ',
|
||
'settings.orbit.templatesOptgroup': 'ModĂšles de skills Orbit',
|
||
'settings.orbit.lastRun': 'DerniÚre exécution',
|
||
'settings.orbit.triggerManual': 'Manuelle',
|
||
'settings.orbit.triggerScheduled': 'Planifiée',
|
||
'settings.orbit.meterAria': '{succeeded} réussis, {skipped} ignorés, {failed} échoués sur {checked} vérifiés',
|
||
'settings.orbit.countChecked': 'Vérifiés',
|
||
'settings.orbit.countSucceeded': 'Réussis',
|
||
'settings.orbit.countSkipped': 'Ignorés',
|
||
'settings.orbit.countFailed': 'ĂchouĂ©s',
|
||
'settings.orbit.runError': 'Impossible dâexĂ©cuter Orbit. VĂ©rifiez que le daemon local fonctionne et que les connecteurs sont configurĂ©s.',
|
||
'settings.orbit.gateAriaLabel': "Des connecteurs sont requis pour utiliser Orbit",
|
||
'settings.orbit.gateEyebrow': "Configuration requise",
|
||
'settings.orbit.gateTitle': "Connectez un outil pour alimenter Orbit",
|
||
'settings.orbit.gateBody': "Orbit rĂ©sume lâactivitĂ© de vos connecteurs. Vous nâavez encore rien connectĂ© â ajoutez au moins une intĂ©gration pour quâOrbit ait de quoi rapporter.",
|
||
'settings.orbit.gateBodyNoKey': "Orbit rĂ©sume lâactivitĂ© de vos connecteurs, et les connecteurs passent par Composio. Ajoutez une clĂ© dâAPI Composio dans Connecteurs pour dĂ©bloquer le catalogue et choisir votre premiĂšre intĂ©gration.",
|
||
'settings.orbit.gateAction': "Ouvrir Connecteurs",
|
||
'settings.orbit.gateActionNoKey': "Configurer Composio",
|
||
'settings.orbit.gateLoading': "VĂ©rification de vos connecteursâŠ",
|
||
'settings.orbit.controlsLockedBadge': "Verrouillé",
|
||
'settings.orbit.controlsLockedHint': "Connectez un outil pour déverrouiller la planification et le modÚle d'Orbit.",
|
||
'settings.orbit.artifactKickerLive': 'live artifact',
|
||
'settings.orbit.artifactKickerLegacy': 'Résumé hérité',
|
||
'settings.orbit.artifactTitle': 'RĂ©sumĂ© quotidien de lâactivitĂ© Orbit',
|
||
'settings.orbit.artifactMetaLive': 'Artefact HTML actualisable gĂ©nĂ©rĂ© Ă partir de lâactivitĂ© des connecteurs.',
|
||
'settings.orbit.artifactMetaLegacy': 'GĂ©nĂ©rĂ© avant lâactivation de la prise en charge de live artifact â relancez Orbit pour en publier un.',
|
||
'settings.orbit.copyMarkdownTitle': 'Copier le résumé Markdown dans le presse-papiers',
|
||
'settings.orbit.copied': 'Copié',
|
||
'settings.orbit.copy': 'Copier',
|
||
'settings.orbit.openArtifact': 'Ouvrir lâartefact',
|
||
'settings.orbit.sourceMarkdown': 'Markdown source',
|
||
'liveArtifact.viewer.tabPreview': 'Aperçu',
|
||
'liveArtifact.viewer.tabCode': 'Code',
|
||
'liveArtifact.viewer.tabData': 'Données',
|
||
'liveArtifact.viewer.tabRefreshHistory': 'Historique dâactualisation',
|
||
'liveArtifact.viewer.dataEmpty': 'Aucun cache data.json disponible.',
|
||
'liveArtifact.viewer.code.templateHeading': 'HTML du modĂšle',
|
||
'liveArtifact.viewer.code.renderedHeading': 'HTML rendu',
|
||
'liveArtifact.viewer.code.templateHelp': 'Le modĂšle modifiable utilisĂ© avec data.json pour gĂ©nĂ©rer lâaperçu.',
|
||
'liveArtifact.viewer.code.renderedHelp': 'Le index.html gĂ©nĂ©rĂ© actuellement chargĂ© par lâaperçu.',
|
||
'liveArtifact.viewer.code.variantAria': 'Variante du code',
|
||
'liveArtifact.viewer.code.variantTemplate': 'ModĂšle',
|
||
'liveArtifact.viewer.code.variantRendered': 'Rendu',
|
||
'liveArtifact.viewer.code.loading': 'Chargement du codeâŠ',
|
||
'liveArtifact.viewer.code.unavailable': 'Le code nâest pas encore disponible.',
|
||
'liveArtifact.viewer.code.empty': 'Ce fichier de code est vide.',
|
||
};
|