//! Git-panel + Git-dialog strings for this locale.
//!
//! Split out of `fr.rs` to keep that table under the
//! repo's 800-line file cap. The main table falls through
//! here for any `git.*` key.

pub fn lookup(key: &str) -> Option<&'static str> {
    Some(match key {
        "git.openPanel" => "Ouvrir le panneau Git",
        "git.closePanel" => "Fermer le panneau Git",
        "git.title" => "Git · {{fileName}}",
        "git.titleNoFile" => "Git · (Aucun fichier)",
        "git.close" => "Fermer",
        "git.initializing" => "Initialisation du dépôt…",
        "git.conflict.title" => "Conflit de fusion",
        "git.conflict.description" => "Résolvez chaque conflit via les cartes ci-dessous, puis appliquez la fusion.",
        "git.conflict.abort" => "Annuler la fusion",
        "git.conflict.nonOp.title" => "Fusion en pause sur des fichiers non .op",
        "git.conflict.nonOp.description" => "La fusion des fichiers .op est terminée, mais d'autres fichiers du dépôt ne sont pas résolus. Résolvez-les en dehors d'OpenPencil, puis continuez.",
        "git.conflict.nonOp.unresolvedHeading_one" => "1 fichier nécessite une action",
        "git.conflict.nonOp.unresolvedHeading_other" => "{{count}} fichiers nécessitent une action",
        "git.conflict.nonOp.continue" => "Continuer la fusion",
        "git.conflict.nonOp.abort" => "Annuler la fusion",
        "git.conflict.banner.progress" => "Résolu {{resolved}} / {{total}}",
        "git.conflict.banner.apply" => "Appliquer la fusion",
        "git.conflict.banner.continue" => "Continuer",
        "git.conflict.banner.finalizeError" => "Impossible d'appliquer : {{message}}",
        "git.conflict.banner.pollError" => "Sondage d'état suspendu en raison d'une erreur : {{message}}",
        "git.conflict.banner.reopenMessage" => "Panneau rouvert en cours de fusion — veuillez abandonner et re-tirer.",
        "git.conflict.list.heading" => "Tous les conflits",
        "git.conflict.list.progress" => "{{resolved}} / {{total}} résolus",
        "git.conflict.list.allResolved" => "Tout résolu",
        "git.conflict.list.allOurs" => "Tout prendre le mien",
        "git.conflict.list.allTheirs" => "Tout prendre le leur",
        "git.conflict.item.nodeConflict" => "Conflit de nœud",
        "git.conflict.item.fieldConflict" => "Conflit de champ",
        "git.conflict.item.resolved" => "Résolu",
        "git.conflict.card.ours" => "Le mien",
        "git.conflict.card.theirs" => "Le leur",
        "git.conflict.card.base" => "Base",
        "git.conflict.card.keepMine" => "Garder le mien",
        "git.conflict.card.keepTheirs" => "Garder le leur",
        "git.conflict.card.oursThumbnailAlt" => "Ma version",
        "git.conflict.card.theirsThumbnailAlt" => "Leur version",
        "git.conflict.editor.editManually" => "Modifier manuellement",
        "git.conflict.editor.cancel" => "Annuler",
        "git.conflict.editor.apply" => "Appliquer",
        "git.conflict.editor.invalidJson" => "JSON invalide",
        "git.conflict.editor.textareaLabel" => "Modifier la valeur JSON",
        "git.error.dismiss" => "Ignorer",
        "git.error.retry" => "Réessayer",
        "git.error.title" => "Une erreur est survenue",
        "git.empty.heading" => "Pas encore d'historique de version",
        "git.empty.optional" => "Git est facultatif — vous pouvez ignorer",
        "git.empty.requireSavedFile" => "Enregistrez d'abord le fichier .op pour activer l'historique",
        "git.empty.newCard" => "Nouveau",
        "git.empty.newCardDescription" => "Créer un historique local",
        "git.empty.openCard" => "Ouvrir",
        "git.empty.openCardDescription" => "Dépôt existant",
        "git.empty.cloneCard" => "Cloner",
        "git.empty.cloneCardDescription" => "Depuis un dépôt distant",
        "git.author.heading" => "Auteur du commit",
        "git.author.subheading" => "Le premier commit nécessite un nom et un email",
        "git.author.nameLabel" => "Nom",
        "git.author.namePlaceholder" => "Votre nom",
        "git.author.emailLabel" => "Email",
        "git.author.emailPlaceholder" => "vous@exemple.com",
        "git.author.submit" => "Enregistrer",
        "git.author.cancel" => "Annuler",
        "git.author.validationName" => "Le nom est obligatoire",
        "git.author.validationEmail" => "Un email valide est requis",
        "git.picker.heading" => "{{count}} fichiers .op dans ce dépôt :",
        "git.picker.milestoneCount" => "{{count}} jalons",
        "git.picker.noHistory" => "Aucun historique",
        "git.picker.lastCommit" => "{{message}} · {{time}}",
        "git.picker.bindButton" => "Suivre ce fichier",
        "git.picker.bindAndOpenButton" => "Suivre et ouvrir",
        "git.picker.back" => "Retour",
        "git.picker.backClose" => "Annuler",
        "git.picker.empty.heading" => "Aucun fichier .op dans ce dépôt",
        "git.picker.empty.body" => "Le panneau Git a besoin d'au moins un fichier .op pour fonctionner.",
        "git.picker.empty.close" => "Fermer le panneau",
        "git.autoBind.confirmHeading" => "{{fileName}} trouvé — l'ouvrir ?",
        "git.autoBind.openButton" => "Ouvrir",
        "git.autoBind.dismissButton" => "Ignorer",
        "git.relativeTime.justNow" => "à l'instant",
        "git.relativeTime.minutesAgo" => "il y a {{count}}m",
        "git.relativeTime.hoursAgo" => "il y a {{count}}h",
        "git.relativeTime.daysAgo" => "il y a {{count}}j",
        "git.commit.placeholder" => "Décrire ce changement…",
        "git.commit.submitButton" => "Enregistrer le jalon",
        "git.commit.saveRequiredTitle" => "Enregistrez d'abord le document",
        "git.commit.saveRequiredBody" => "Vous avez des modifications non enregistrées. Enregistrez le document pour continuer : {{label}}",
        "git.commit.saveRequiredSave" => "Enregistrer",
        "git.commit.saveRequiredCancel" => "Annuler",
        "git.header.autosaveError" => "Erreur d'auto-sauvegarde",
        "git.header.autosaveErrorTitle" => "La dernière auto-sauvegarde a échoué",
        "git.header.authorMissingWarning" => "Définissez l'auteur du commit pour l'attribution",
        "git.header.overflowSwitchTracked" => "Changer de fichier suivi…",
        "git.header.overflowClearAuthor" => "Effacer l'auteur du commit",
        "git.header.overflowCloseRepo" => "Fermer le dépôt",
        "git.header.overflowRemoteSettings" => "Paramètres du remote…",
        "git.header.overflowSshKeys" => "Clés SSH…",
        "git.header.overflowMoreActions" => "Plus d'actions",
        "git.history.empty" => "Aucun historique",
        "git.history.autosaveGroup_one" => "1 auto-sauvegarde",
        "git.history.autosaveGroup_other" => "{{count}} auto-sauvegardes",
        "git.history.autosaveLabel" => "auto {{time}}",
        "git.history.milestoneDetailTitle" => "Détails du jalon",
        "git.history.restoreButton" => "Restaurer",
        "git.history.copyHashButton" => "Copier le hash",
        "git.history.copiedToast" => "Copié",
        "git.history.diff.loading" => "Chargement du diff…",
        "git.history.diff.initialCommit" => "Commit initial — pas de parent à comparer",
        "git.history.diff.noChanges" => "Aucun changement détecté",
        "git.history.diff.error" => "Diff indisponible : {{message}}",
        "git.history.diff.framesChanged_one" => "1 cadre modifié",
        "git.history.diff.framesChanged_other" => "{{count}} cadres modifiés",
        "git.history.diff.nodesAdded_one" => "1 nœud ajouté",
        "git.history.diff.nodesAdded_other" => "{{count}} nœuds ajoutés",
        "git.history.diff.nodesRemoved_one" => "1 nœud supprimé",
        "git.history.diff.nodesRemoved_other" => "{{count}} nœuds supprimés",
        "git.history.diff.nodesModified_one" => "1 nœud modifié",
        "git.history.diff.nodesModified_other" => "{{count}} nœuds modifiés",
        "git.history.promoteButton" => "Promouvoir en jalon",
        "git.history.promoteSuccessToast" => "Promu en jalon",
        "git.history.loadMore" => "Charger plus",
        "git.autosave.messagePrefix" => "auto",
        "git.autosave.messageDiffSuffix" => "",
        "git.branch.listHeading" => "Branches",
        "git.branch.createAction" => "Nouvelle branche",
        "git.branch.createPlaceholder" => "feature/login-redesign",
        "git.branch.createSubmit" => "Créer la branche",
        "git.branch.createEmpty" => "Saisissez un nom de branche",
        "git.branch.createExists" => "La branche {{name}} existe déjà",
        "git.branch.mergeAction" => "Fusionner une branche…",
        "git.branch.mergeHeading" => "Fusionner dans {{name}}",
        "git.branch.deletePrompt" => "Supprimer la branche {{name}} ?",
        "git.branch.deleteLabel" => "Supprimer la branche {{name}}",
        "git.branch.deleteWarning" => "La branche {{name}} a des commits non fusionnés",
        "git.branch.deleteConfirm" => "Supprimer",
        "git.branch.deleteForce" => "Forcer la suppression",
        "git.branch.cancel" => "Annuler",
        "git.branch.conflictDisabled" => "Terminez la fusion avant de changer de branche",
        "git.branch.noCommits" => "Aucun commit pour le moment",
        "git.wizard.clone.heading" => "Cloner un dépôt distant",
        "git.wizard.clone.subheading" => "Choisissez une URL distante et un dossier de destination.",
        "git.wizard.clone.urlLabel" => "URL distante",
        "git.wizard.clone.urlPlaceholder" => "https://github.com/owner/repo.git",
        "git.wizard.clone.destLabel" => "Dossier de destination",
        "git.wizard.clone.destPlaceholder" => "/chemin/du/clone",
        "git.wizard.clone.destPickButton" => "Parcourir…",
        "git.wizard.clone.usernameLabel" => "Nom d'utilisateur (optionnel)",
        "git.wizard.clone.tokenLabel" => "Jeton d'accès (optionnel)",
        "git.wizard.clone.tokenPlaceholder" => "ghp_… laisser vide pour les dépôts publics",
        "git.wizard.clone.anonymousHint" => "Laissez vide pour cloner anonymement (dépôts publics uniquement).",
        "git.wizard.clone.sshHint" => "Cette URL nécessite une authentification par clé SSH.",
        "git.wizard.clone.hostDetected" => "Détecté : {{host}} · {{mode}}",
        "git.wizard.clone.authMode.token-or-anon" => "jeton ou anonyme",
        "git.wizard.clone.authMode.ssh" => "clé SSH",
        "git.wizard.clone.cancel" => "Annuler",
        "git.wizard.clone.submit" => "Cloner",
        "git.wizard.clone.validationUrl" => "L'URL distante est requise",
        "git.wizard.clone.validationDest" => "Le dossier de destination est requis",
        "git.wizard.clone.validationTokenUsername" => "Un nom d'utilisateur est requis lorsqu'un jeton est fourni",
        "git.wizard.clone.error.clone-network" => "Erreur réseau lors du clonage. Vérifiez votre connexion et réessayez.",
        "git.wizard.clone.error.network" => "Erreur réseau. Vérifiez votre connexion et réessayez.",
        "git.wizard.clone.error.timeout" => "Le clonage a expiré. Réessayez ou utilisez un dépôt plus petit.",
        "git.wizard.clone.error.auth-required" => "Ce dépôt nécessite une authentification.",
        "git.wizard.clone.error.auth-failed" => "Échec de l'authentification. Vérifiez votre nom d'utilisateur et votre jeton.",
        "git.wizard.clone.error.auth-token-invalid" => "Le jeton d'accès a été refusé. Générez-en un nouveau et réessayez.",
        "git.wizard.clone.error.clone-failed" => "Échec du clonage. Vérifiez que l'URL pointe vers un dépôt réel.",
        "git.wizard.clone.error.clone-target-exists" => "Le dossier de destination existe déjà ou n'est pas vide.",
        "git.pull.label" => "Pull",
        "git.pull.tooltip" => "Pull depuis origin",
        "git.pull.noRemote" => "Aucun remote configuré — ajoutez-en un dans les paramètres Git",
        "git.pull.retry" => "Réessayer le pull",
        "git.push.label" => "Push",
        "git.push.tooltip_one" => "Pousser 1 commit vers origin",
        "git.push.tooltip_other" => "Pousser {{count}} commits vers origin",
        "git.push.noRemote" => "Aucun remote configuré — ajoutez-en un dans les paramètres Git",
        "git.push.upToDate" => "Rien à pousser — vous êtes à jour",
        "git.push.retry" => "Réessayer le push",
        "git.push.rejectedBody" => "Le remote a des commits que vous n'avez pas encore. Faites un pull d'abord, puis un push.",
        "git.push.rejectedDismiss" => "Fermer",
        "git.push.rejectedPull" => "Pull maintenant",
        "git.remote.dismissError" => "Fermer",
        "git.remote.settingsLabel" => "Paramètres du remote",
        "git.remote.settingsHeading" => "Remote",
        "git.remote.back" => "Retour",
        "git.remote.cancel" => "Annuler",
        "git.remote.emptyNoOrigin" => "Aucun remote configuré pour l'instant. En ajouter un :",
        "git.remote.urlLabel" => "URL origin",
        "git.remote.urlPlaceholder" => "https://github.com/owner/repo.git",
        "git.remote.saveButton" => "Enregistrer",
        "git.remote.clearButton" => "Effacer",
        "git.remote.clearConfirmHeading" => "Effacer origin ?",
        "git.remote.clearConfirmBody" => "Cela supprimera le remote origin de ce dépôt.",
        "git.remote.clearConfirmAction" => "Confirmer",
        "git.remote.aheadBehind" => "{{ahead}} en avance · {{behind}} en retard",
        "git.remote.fetchButton" => "Fetch",
        "git.remote.sshIsoUnsupported" => "Le transport SSH n'est pas pris en charge par le moteur intégré. Installez git système ou passez à une URL HTTPS.",
        "git.remote.storedAuthLabel" => "Identifiants enregistrés",
        "git.remote.storedAuth.token" => "Jeton",
        "git.remote.storedAuth.ssh" => "Clé SSH",
        "git.remote.storedAuth.none" => "Aucun",
        "git.remote.storedAuth.loading" => "Chargement…",
        "git.remote.storedAuth.noHost" => "Aucun hôte détecté",
        "git.remote.clearAuthButton" => "Effacer les identifiants enregistrés",
        "git.ssh.label" => "Clés SSH",
        "git.ssh.heading" => "Clés SSH",
        "git.ssh.back" => "Retour",
        "git.ssh.cancel" => "Annuler",
        "git.ssh.isoUnsupported" => "Le remote actuel utilise SSH, mais le moteur intégré ne peut pas effectuer de transport SSH. Installez git système ou passez l'URL du remote en HTTPS.",
        "git.ssh.emptyList" => "Aucune clé SSH pour le moment.",
        "git.ssh.generateAction" => "Générer une nouvelle",
        "git.ssh.importAction" => "Importer une existante",
        "git.ssh.copyPublicKey" => "Copier la clé publique",
        "git.ssh.copiedHint" => "Copiée",
        "git.ssh.copyUnsupported" => "Presse-papiers indisponible — copiez cette clé manuellement.",
        "git.ssh.deleteKey" => "Supprimer {{name}}",
        "git.ssh.deletePrompt" => "Supprimer la clé SSH {{name}} ?",
        "git.ssh.deleteConfirm" => "Supprimer",
        "git.ssh.currentHostBadge" => "hôte actuel",
        "git.ssh.hostLabel" => "Hôte",
        "git.ssh.hostPlaceholder" => "github.com",
        "git.ssh.commentLabel" => "Commentaire",
        "git.ssh.commentPlaceholder" => "laptop@home",
        "git.ssh.generateSubmit" => "Générer",
        "git.ssh.importPathLabel" => "Chemin de la clé privée",
        "git.ssh.importPathPlaceholder" => "/path/to/id_ed25519",
        "git.ssh.importBrowse" => "Parcourir…",
        "git.ssh.importSubmit" => "Importer",
        "git.ssh.validationHost" => "L'hôte est obligatoire",
        "git.ssh.validationComment" => "Le commentaire est obligatoire",
        "git.ssh.validationImportPath" => "Choisissez un fichier de clé privée à importer",
        "git.ssh.providerLink" => "Ouvrir les paramètres de clés SSH {{host}}",
        "git.ssh.genericGuidance" => "Copiez la clé publique et ajoutez-la aux paramètres de clés SSH de votre fournisseur Git.",
        "git.auth.formLabel" => "Identifiants Git",
        "git.auth.heading" => "S'authentifier auprès de {{host}}",
        "git.auth.headingUnknown" => "S'authentifier auprès de ce remote",
        "git.auth.modeToggleLabel" => "Type d'identifiant",
        "git.auth.modeToken" => "Jeton",
        "git.auth.modeSsh" => "SSH",
        "git.auth.usernameLabel" => "Nom d'utilisateur (optionnel)",
        "git.auth.tokenLabel" => "Jeton d'accès",
        "git.auth.tokenPlaceholder" => "ghp_… ou PAT",
        "git.auth.sshKeyLabel" => "Clé SSH",
        "git.auth.sshNoKeys" => "Aucune clé SSH disponible. Importez-en ou générez-en une d'abord dans les paramètres Git.",
        "git.auth.rememberLabel" => "Mémoriser ces identifiants pour cet hôte",
        "git.auth.rememberHint" => "Mémoriser ces identifiants pour cet hôte",
        "git.auth.cancel" => "Annuler",
        "git.auth.validationToken" => "Le jeton d'accès est requis",
        "git.auth.validationSshKey" => "Sélectionnez une clé SSH",
        "git.auth.error.auth-required" => "Ce remote nécessite une authentification.",
        "git.auth.error.auth-failed" => "Échec de l'authentification. Vérifiez vos identifiants et réessayez.",
        "git.auth.error.auth-token-invalid" => "Le jeton d'accès a été rejeté. Générez-en un nouveau et réessayez.",
        "git.error.pushTitle" => "Échec du push",
        "git.error.pushBody" => "git push n'a pas pu aboutir.",
        "git.error.pullTitle" => "Échec du pull",
        "git.error.pullBody" => "git pull n'a pas pu aboutir.",
        "git.error.commitTitle" => "Échec du commit",
        "git.error.commitBody" => "git commit n'a pas pu aboutir.",
        "git.merge.conflictTitle" => "La fusion a des conflits",
        "git.merge.conflictBody" => "La fusion de {{branch}} entre en conflit sur {{count}} fichier(s) ; la fusion n'a pas été appliquée et votre copie de travail est inchangée. Résolvez d'abord les conflits :",
        "git.ssh.readyTitle" => "Clé SSH prête",
        "git.ssh.readyBody" => "Une clé SSH pour {{host}} a été générée et associée ; pull et push l'utilisent désormais. Ajoutez cette clé publique aux réglages SSH de l'hôte :",
        "git.panel.title" => "Git",
        "git.panel.loading" => "Chargement du dépôt…",
        "git.panel.notARepo" => "Pas un dépôt git.",
        "git.panel.detachedHead" => "HEAD détachée",
        "git.panel.branch" => "⎇ {{name}}",
        "git.panel.abortMerge" => "Abandonner la fusion",
        "git.panel.refresh" => "Actualiser",
        "git.panel.complete" => "Terminer",
        "git.panel.commit" => "Valider",
        "git.panel.pull" => "Tirer",
        "git.panel.push" => "Pousser",
        "git.panel.mergeInProgress" => "Fusion en cours — résolvez les conflits",
        "git.panel.conflicts" => "Conflits",
        "git.panel.noConflicts" => "Aucun conflit.",
        "git.panel.changes" => "Modifications — {{staged}}/{{total}} indexées",
        "git.panel.recentCommits" => "Validations récentes",
        "git.panel.noCommits" => "Aucune validation.",
        "git.panel.branches" => "Branches",
        "git.panel.commitPlaceholder" => "Message de validation…",
        "git.panel.footer" => "Cliquez la ligne d'état ou une ligne pour voir son diff",
        "git.panel.pulling" => "Tirage…",
        "git.panel.pushing" => "Poussée…",
        "git.panel.changedConflicted" => "{{changed}} modifiés · {{conflicted}} en conflit",
        "git.panel.changed" => "{{count}} modifiés",
        "git.panel.clean" => "Arbre de travail propre",
        "git.panel.diffTitle" => "Diff · {{title}}",
        "git.panel.diffNoChanges" => "Aucune modification.",
        "git.panel.diffComputing" => "Calcul du diff…",
        "git.panel.diffLoading" => "chargement…",
        "git.panel.diffWorkingTree" => "Arbre de travail",
        "git.panel.diffCommit" => "validation {{rev}}",
        "git.panel.stage" => "Indexer",
        "git.panel.diffFooter" => "Lignes {{start}}–{{end}} sur {{total}}{{col}}",
        "git.panel.diffCol" => " · col {{n}}",
        "git.panel.remotes" => "Dépôts distants",
        "git.panel.remotesMore" => "{{name}} +{{count}} autres",
        "git.panel.noRemote" => "Aucun dépôt distant — ajoutez origin ci-dessous.",
        "git.panel.remotePlaceholder" => "https://github.com/you/repo.git",
        "git.panel.httpsPlaceholder" => "utilisateur:jeton",
        "git.panel.set" => "Définir",
        "git.panel.login" => "Connexion",
        "git.panel.resolveTitle" => "Résoudre la fusion — {{branch}}",
        "git.panel.resolveSubtitle" => "{{count}} conflit(s) de nœud — choisissez un côté pour chacun",
        "git.panel.ours" => "Le nôtre",
        "git.panel.theirs" => "Le leur",
        "git.panel.applyMerge" => "Appliquer la fusion",
        "git.panel.resolveFooter" => "Appliquer relance la fusion avec vos choix",
        "git.panel.resolveFooterMore" => "+{{count}} autres gardés des nôtres · Annuler abandonne la fusion",
        "git.conflict.bothModified" => "modifié des deux côtés",
        "git.conflict.structuralChange" => "ordre des enfants modifié",
        "git.conflict.deleteModify" => "suppression / modification",
        "git.conflict.bothAdded" => "ajouté des deux côtés",
        "git.conflict.addedOnRemote" => "ajouté à distance",
        "git.merge.autoMergeable" => "{{path}} — fusionnable automatiquement (structure)",
        "git.merge.andMore" => "    … et {{count}} de plus",
        "git.panel.diffError" => "(échec du diff : {{message}})",
        "git.reload.confirmTitle" => "Modifications non enregistrées",
        "git.reload.confirmBody" => "Cette action Git recharge le document depuis le disque et abandonne vos modifications non enregistrées.\n\nOui = Enregistrer d'abord · Non = Abandonner · Annuler = rester.",
        "git.gitError.notFound" => "Git n'est pas installé — installez Git pour utiliser le contrôle de version.",
        "git.gitError.notARepo" => "Pas un dépôt git : {{detail}}",
        "git.gitError.commandFailed" => "La commande git a échoué :\n{{detail}}",
        "git.gitError.mergeInProgress" => "Une fusion est déjà en cours — résolvez-la ou abandonnez-la d'abord.",
        "git.gitError.workingTreeDirty" => "L'arbre de travail a des modifications non validées — validez-les ou remisez-les avant de fusionner.",
        "git.gitError.io" => "Erreur de processus git : {{detail}}",
        _ => return None,
    })
}
