import demoFr from "./demo-fr"
import { Translations } from "./en"

const fr: Translations = {
  common: {
    ok: "OK !",
    cancel: "Annuler",
    save: "Enregistrer",
    back: "Retour",
    logOut: "Déconnexion",
    copied: "Copié",
  },
  welcomeScreen: {
    postscript:
      "psst  — Ce n'est probablement pas à quoi ressemble votre application. (À moins que votre designer ne vous ait donné ces écrans, dans ce cas, mettez la en prod !)",
    readyForLaunch: "Votre application, presque prête pour le lancement !",
    exciting: "(ohh, c'est excitant !)",
    letsGo: "Allons-y !",
  },
  errorScreen: {
    title: "Quelque chose s'est mal passé !",
    friendlySubtitle:
      "C'est l'écran que vos utilisateurs verront en production lorsqu'une erreur sera lancée. Vous voudrez personnaliser ce message (situé dans `app/i18n/fr.ts`) et probablement aussi la mise en page (`app/screens/ErrorScreen`). Si vous voulez le supprimer complètement, vérifiez `app/app.tsx` pour le composant <ErrorBoundary>.",
    reset: "RÉINITIALISER L'APPLICATION",
    traceTitle: "Erreur depuis %{name}",
  },
  emptyStateComponent: {
    generic: {
      heading: "Si vide... si triste",
      content:
        "Aucune donnée trouvée pour le moment. Essayez de cliquer sur le bouton pour rafraîchir ou recharger l'application.",
      button: "Essayons à nouveau",
    },
  },

  errors: {
    invalidEmail: "Adresse e-mail invalide.",
  },
  authErrors: {
    timeout: "Délai d'attente dépassé. Veuillez réessayer.",
    cannotConnect: "Impossible de se connecter au serveur. Veuillez vérifier votre réseau.",
    serverError: "Erreur serveur. Veuillez réessayer plus tard.",
    badData: "Réponse invalide du serveur.",
    unknownError: "Une erreur inconnue s'est produite.",
    E001: "Ce nom d'utilisateur existe déjà.",
    E002: "Cet e-mail est déjà enregistré.",
    E003: "Code de parrainage invalide.",
    E004: "Aucune demande d'inscription en attente.",
    E005: "Code de vérification invalide.",
    E006: "Code de parrainage déjà lié.",
    E007: "Vous ne pouvez pas utiliser votre propre code de parrainage.",
    E011: "E-mail ou mot de passe invalide.",
    E012: "Compte temporairement verrouillé. Veuillez réessayer plus tard.",
    E013: "Aucune demande de connexion en attente.",
    E014: "L'utilisateur n'existe pas ou a été désactivé.",
    E015: "Code de vérification invalide.",
    E016: "Authentification Telegram invalide.",
    E017: "Format de données Telegram invalide.",
    E018: "Échec de l'authentification Google.",
    E019: "Veuillez fournir le token Google.",
    E021: "Le mot de passe actuel est incorrect.",
    E022: "Le nouveau mot de passe ne peut pas être identique à l'actuel.",
    E023: "L'e-mail n'est pas enregistré.",
    E024: "Le compte a été désactivé.",
    E025: "Aucune demande de réinitialisation de mot de passe en attente.",
    E026: "Le code de réinitialisation du mot de passe a expiré.",
    E027: "Code de réinitialisation du mot de passe invalide.",
    E028: "L'utilisateur n'existe pas.",
    E029: "Aucun champ fourni pour la mise à jour.",
    E041: "Envoi du code de vérification trop fréquent. Veuillez patienter.",
    E042: "Le code de vérification de l'e-mail a expiré.",
    E043: "Code de vérification de l'e-mail invalide.",
    E044: "L'e-mail est déjà vérifié.",
    E045: "L'e-mail est déjà utilisé par un autre utilisateur.",
    E046: "Aucune adresse e-mail vérifiée.",
    E047: "Veuillez d'abord envoyer le code de vérification à l'e-mail actuel.",
    E048: "Veuillez d'abord vérifier l'e-mail actuel.",
    E049: "Veuillez d'abord envoyer le code de vérification au nouvel e-mail.",
    E050: "Paramètre d'action invalide.",
  },
  loginScreen: {
    logIn: "Se connecter",
    enterDetails:
      "Entrez vos informations ci-dessous pour débloquer des informations top secrètes. Vous ne devinerez jamais ce que nous avons en attente. Ou peut-être que vous le ferez ; ce n'est pas de la science spatiale ici.",
    emailFieldLabel: "E-mail",
    passwordFieldLabel: "Mot de passe",
    emailFieldPlaceholder: "Entrez votre adresse e-mail",
    passwordFieldPlaceholder: "Mot de passe super secret ici",
    tapToLogIn: "Appuyez pour vous connecter!",
    hint: "Astuce : vous pouvez utiliser n'importe quelle adresse e-mail et votre mot de passe préféré :)",
  },
  navigator: {
    componentsTab: "Composants",
    debugTab: "Débogage",
    communityTab: "Communauté",
    podcastListTab: "Podcasts",
    profileTab: "Profil",
  },
  profileScreen: {
    title: "Profil",
    guest: "Invité",
    uid: "UID",
    username: "Nom d'utilisateur",
    referralCode: "Code de parrainage",
    settings: "Paramètres",
    darkMode: "Mode sombre",
    notifications: "Notifications",
    security: "Sécurité",
    account: "Compte",
    accountStatus: "Statut du compte",
    active: "Actif",
    inactive: "Inactif",
    regular: "Standard",
    emailVerified: "Email vérifié",
    verified: "Vérifié",
    unverified: "Non vérifié",
    loginMethods: "Méthodes de connexion",
    version: "Version",
    changePassword: "Changer le mot de passe",
    changeEmail: "Changer l'email",
    editNickname: "Modifier le pseudo",
    editProfile: "Modifier le profil",
    nicknamePlaceholder: "Entrez votre pseudo",
    nickname: "Pseudo",
    tapToChangeAvatar: "Appuyez pour changer l'avatar",
    about: "À propos",
  },
  changePasswordScreen: {
    title: "Changer le mot de passe",
    description: "Entrez votre mot de passe actuel et choisissez un nouveau.",
    oldPassword: "Mot de passe actuel",
    newPassword: "Nouveau mot de passe",
    confirmPassword: "Confirmer le nouveau mot de passe",
    logoutOtherDevices: "Déconnecter les autres appareils",
    submit: "Changer le mot de passe",
    success: "Succès",
    successMessage: "Votre mot de passe a été changé avec succès.",
    oldPasswordRequired: "Le mot de passe actuel est requis.",
    newPasswordRequired: "Le nouveau mot de passe est requis.",
    passwordTooShort: "Le mot de passe doit contenir au moins 6 caractères.",
    passwordMismatch: "Les mots de passe ne correspondent pas.",
    samePassword: "Le nouveau mot de passe ne peut pas être identique à l'actuel.",
  },
  changeEmailScreen: {
    title: "Changer l'email",
    step1Label: "Vérifier",
    step2Label: "Lier",
    step1Title: "Étape 1 : Vérifier l'email actuel",
    step1Description: "Nous enverrons un code de vérification à votre email actuel.",
    step2Title: "Étape 2 : Lier le nouvel email",
    step2Description: "Entrez votre nouvelle adresse email et vérifiez-la.",
    currentEmail: "Email actuel",
    newEmail: "Nouvelle adresse email",
    verificationCode: "Code de vérification",
    sendCode: "Envoyer le code de vérification",
    sendCodeToNewEmail: "Envoyer le code au nouvel email",
    verify: "Vérifier",
    confirmNewEmail: "Confirmer le nouvel email",
    resendCode: "Renvoyer le code",
    success: "Succès",
    successMessage: "Votre email a été changé avec succès.",
    codeRequired: "Le code de vérification est requis.",
    codeInvalid: "Le code de vérification doit contenir 6 chiffres.",
    newEmailRequired: "La nouvelle adresse email est requise.",
    emailInvalid: "Veuillez entrer une adresse email valide.",
    sameEmail: "Le nouvel email ne peut pas être identique à l'actuel.",
  },
  settingsScreen: {
    title: "Paramètres",
    appearance: "Apparence",
    theme: "Thème",
    darkMode: "Mode Sombre",
    language: "Langue",
    currentLanguage: "Langue",
  },
  languageScreen: {
    title: "Langue",
    selectHint: "Sélectionnez votre langue préférée",
  },
  themeScreen: {
    title: "Thème",
    selectHint: "Sélectionnez votre thème préféré",
    system: "Système",
    light: "Clair",
    dark: "Sombre",
  },
  securityScreen: {
    title: "Sécurité",
    description: "Gérez les paramètres de sécurité de votre compte.",
    changePassword: "Changer le Mot de Passe",
    changeEmail: "Changer l'Email",
    // Session management
    activeSessions: "Active Sessions",
    activeSessionsDescription: "Devices currently logged into your account",
    currentDevice: "Current Device",
    lastActive: "Last active",
    loginMethod: "Login via",
    logoutDevice: "Logout",
    logoutAllOther: "Logout All Other Devices",
    logoutAllOtherDescription: "This will log out all devices except the current one.",
    noOtherSessions: "No other active sessions",
    sessionRevoked: "Device has been logged out",
    sessionsRevoked: "{{count}} devices have been logged out",
    confirmLogout: "Confirm Logout",
    confirmLogoutMessage: "Are you sure you want to log out this device?",
    confirmLogoutAllMessage: "Are you sure you want to log out all other devices?",
    deviceTypes: {
      desktop: "Desktop",
      mobile: "Mobile",
      tablet: "Tablet",
      unknown: "Unknown Device",
    },
  },
  aboutScreen: {
    title: "À propos",
    appInfo: "Informations de l'Application",
    appName: "Nom de l'Application",
    version: "Version",
    buildVersion: "Version de Compilation",
    appId: "ID de l'Application",
    appVersion: "Version de l'Application",
    legal: "Mentions Légales",
    privacyPolicy: "Politique de Confidentialité",
    termsOfService: "Conditions d'Utilisation",
  },
  communityScreen: {
    title: "Connectez-vous avec la communauté",
    tagLine:
      "Rejoignez la communauté d'ingénieurs React Native d'Infinite Red et améliorez votre développement d'applications avec nous !",
    joinUsOnSlackTitle: "Rejoignez-nous sur Slack",
    joinUsOnSlack:
      "Vous souhaitez vous connecter avec des ingénieurs React Native du monde entier ? Rejoignez la conversation dans la communauté Slack d'Infinite Red ! Notre communauté en pleine croissance est un espace sûr pour poser des questions, apprendre des autres et développer votre réseau.",
    joinSlackLink: "Rejoindre la communauté Slack",
    makeIgniteEvenBetterTitle: "Rendre Ignite encore meilleur",
    makeIgniteEvenBetter:
      "Vous avez une idée pour rendre Ignite encore meilleur ? Nous sommes heureux de l'entendre ! Nous cherchons toujours des personnes qui veulent nous aider à construire les meilleurs outils React Native. Rejoignez-nous sur GitHub pour nous aider à construire l'avenir d'Ignite.",
    contributeToIgniteLink: "Contribuer à Ignite",
    theLatestInReactNativeTitle: "Les dernières nouvelles de React Native",
    theLatestInReactNative:
      "Nous sommes là pour vous tenir au courant de tout ce que React Native a à offrir.",
    reactNativeRadioLink: "React Native Radio",
    reactNativeNewsletterLink: "React Native Newsletter",
    reactNativeLiveLink: "React Native Live",
    chainReactConferenceLink: "Conférence Chain React",
    hireUsTitle: "Engagez Infinite Red pour votre prochain projet",
    hireUs:
      "Que ce soit pour gérer un projet complet ou pour former des équipes à notre formation pratique, Infinite Red peut vous aider pour presque tous les projets React Native.",
    hireUsLink: "Envoyez-nous un message",
  },
  showroomScreen: {
    jumpStart: "Composants pour démarrer votre projet !",
    lorem2Sentences:
      "Nulla cupidatat deserunt amet quis aliquip nostrud do adipisicing. Adipisicing excepteur elit laborum Lorem adipisicing do duis.",
    demoHeaderTxExample: "Yay",
    demoViaTxProp: "Via la propriété `tx`",
    demoViaSpecifiedTxProp: "Via la propriété `{{prop}}Tx` spécifiée",
  },
  demoDebugScreen: {
    howTo: "COMMENT FAIRE",
    title: "Débugage",
    tagLine:
      "Félicitations, vous avez un modèle d'application React Native très avancé ici. Profitez de cette base de code !",
    reactotron: "Envoyer à Reactotron",
    reportBugs: "Signaler des bugs",
    demoList: "Liste de démonstration",
    demoPodcastList: "Liste de podcasts de démonstration",
    androidReactotronHint:
      "Si cela ne fonctionne pas, assurez-vous que l'application de bureau Reactotron est en cours d'exécution, exécutez adb reverse tcp:9090 tcp:9090 à partir de votre terminal, puis rechargez l'application.",
    iosReactotronHint:
      "Si cela ne fonctionne pas, assurez-vous que l'application de bureau Reactotron est en cours d'exécution, puis rechargez l'application.",
    macosReactotronHint:
      "Si cela ne fonctionne pas, assurez-vous que l'application de bureau Reactotron est en cours d'exécution, puis rechargez l'application.",
    webReactotronHint:
      "Si cela ne fonctionne pas, assurez-vous que l'application de bureau Reactotron est en cours d'exécution, puis rechargez l'application.",
    windowsReactotronHint:
      "Si cela ne fonctionne pas, assurez-vous que l'application de bureau Reactotron est en cours d'exécution, puis rechargez l'application.",
  },
  demoPodcastListScreen: {
    title: "Épisodes de Radio React Native",
    onlyFavorites: "Afficher uniquement les favoris",
    favoriteButton: "Favori",
    unfavoriteButton: "Non favori",
    accessibility: {
      cardHint:
        "Double-cliquez pour écouter l'épisode. Double-cliquez et maintenez pour {{action}} cet épisode.",
      switch: "Activez pour afficher uniquement les favoris",
      favoriteAction: "Basculer en favori",
      favoriteIcon: "Épisode non favori",
      unfavoriteIcon: "Épisode favori",
      publishLabel: "Publié le {{date}}",
      durationLabel: "Durée : {{hours}} heures {{minutes}} minutes {{seconds}} secondes",
    },
    noFavoritesEmptyState: {
      heading: "C'est un peu vide ici",
      content:
        "Aucun favori n'a été ajouté pour le moment. Appuyez sur le cœur d'un épisode pour l'ajouter à vos favoris !",
    },
  },

  ...demoFr,
}

export default fr
