import { futuresPageByLocale } from './futuresPage.i18n'
import { financePageByLocale } from './financePage.i18n'

export default {
  nav: {
    home: 'Accueil',
    market: 'Marché',
    spot: 'Spot',
    futures: 'Futures',
    copyTrade: 'Copy Trading',
    finance: 'Finance',
    idoPresale: 'Pré-vente IDO',
    claimAirdrop: 'Réclamer Airdrop',
    announcements: 'Annonces',
    download: 'Télécharger',
  },
  lang: {
    title: 'Langue',
    zhCN: '简体中文',
    zhTW: '繁體中文',
    en: 'English',
    ko: '한국어',
    ja: '日本語',
    hi: 'हिन्दी',
    id: 'Bahasa Indonesia',
    es: 'Español',
    ru: 'Русский',
    pt: 'Português',
    de: 'Deutsch',
    fr: 'Français',
    tr: 'Türkçe',
    vi: 'Tiếng Việt'
  },
  header: {
    login: 'Connexion',
    register: 'Inscription',
    account: 'Mon Compte',
    assets: 'Mes Actifs',
    security: 'Sécurité',
    broker: 'Broker',
    logout: 'Déconnexion',
    logoutShort: 'Déconnexion',
    downloadTitle: 'Télécharger l’app',
    brokerApplyTitle: 'Devenir Broker',
    brokerApplyDesc: 'Vous n’êtes pas broker. Votre demande sera soumise automatiquement.',
    cancel: 'Annuler',
    applyNow: 'Postuler maintenant',
    viewApplyList: 'Voir la demande',
    submitting: 'Envoi en cours…',
    menu: 'Menu',
  },
  common: {
    loading: 'Chargement…',
    retry: 'Réessayer',
    cancel: 'Annuler',
    confirm: 'Confirmer',
    submit: 'Envoyer',
    save: 'Enregistrer',
    send: 'Envoyer',
    back: 'Retour',
    next: 'Suivant',
    done: 'Terminé',
    noData: 'Aucune donnée',
    noRecord: 'Aucun enregistrement',
    search: 'Rechercher',
    all: 'Tout',
    max: 'Max',
    copied: 'Copié',
    networkError: 'Erreur réseau, veuillez réessayer',
    loadFailed: 'Échec du chargement',
    operationFailed: 'Échec de l’opération',
    saveSuccess: 'Enregistré avec succès',
    more: 'Plus',
    perpetual: 'Perpétuel',
    set: 'Défini',
    notSet: 'Non défini',
    change: 'Modifier',
    bind: 'Lier',
    unbind: 'Délier',
    on: 'Activé',
    off: 'Désactivé',
    status: 'Statut',
    time: 'Heure',
    amount: 'Montant',
    type: 'Type',
    coin: 'Coin',
    from: 'De',
    to: 'À',
    close: 'Fermer',
    contactService: 'Contacter le support',
  },
  home: {
    heroTitle: 'Plateforme sécurisée, efficace et globale d’actifs numériques',
    heroDesc: 'iBit offre des services de trading stables, transparents et professionnels.',
    register: 'S’inscrire',
    viewMarket: 'Voir le marché',
    downloadApp: 'Télécharger l’app',
    coreAdvantages: 'Avantages',
    assetSafetyTitle: 'Sécurité des actifs',
    assetSafetyDesc: 'Portefeuilles froids/chauds, signature multiple, surveillance 24h/24.',
    highPerfTitle: 'Haute performance',
    highPerfDesc: 'Moteur de matching interne, exécution milliseconde.',
    globalComplianceTitle: 'Conformité mondiale',
    globalComplianceDesc: 'Respect des réglementations internationales.',
    transparentFeeTitle: 'Frais transparents',
    transparentFeeDesc: 'Structure de frais claire sans coûts cachés.',
    aboutUs: 'À propos',
    aboutDesc: 'iBit est une plateforme mondiale d’échange d’actifs numériques.',
    foundedYear: 'Fondée en 2023',
    headquarters: 'Basée à Dubaï, licences aux USA, Canada, Australie.',
    ourVision: 'Notre vision',
    visionSubtitle: 'Construire une infrastructure de confiance',
    ecoTitle: 'Écosystème',
    ecoDesc: 'Créer un écosystème crypto innovant',
    missionTitle: 'Mission',
    missionDesc: 'Faciliter la circulation des valeurs numériques',
    purposeTitle: 'Objectif',
    purposeDesc: 'Aider les utilisateurs à gérer leurs actifs',
    heroImageAlt: 'Plateforme iBit',
    aboutImageAlt: 'À propos de nous',
  },
  market: {
    title: 'Marché en temps réel',
    desc: 'Prix, volumes et variations en temps réel.',
    hot: 'Populaire',
    topVolume: 'Volumes',
    gainers: 'Hausses',
    losers: 'Baisses',
    perpetual: 'Perpétuel',
    name: 'Nom',
    latestPrice: 'Dernier prix',
    change24h: 'Variation 24h',
    turnover: 'Volume',
    searchPair: 'Rechercher une paire',
    searchMarket: 'Rechercher coin, paire, future',
    price: 'Prix',
    change24hShort: 'Var 24h',
    high24h: 'Haut 24h',
    low24h: 'Bas 24h',
    volume24hLabel: 'Volume 24h',
  },
  auth: {
    loginTitle: 'Connexion',
    emailLogin: 'Connexion email',
    emailPlaceholder: 'Saisissez votre email',
    password: 'Mot de passe',
    passwordPlaceholder: 'Saisissez votre mot de passe',
    forgotPassword: 'Mot de passe oublié ?',
    loginBtn: 'Se connecter',
    noAccount: 'Pas de compte ?',
    registerNow: 'S’inscrire',
    verifyTitle: 'Code de vérification',
    codeSentDesc: 'Code envoyé à {email}',
    codeSendDesc: 'Cliquez pour envoyer le code à {email}',
    countdownResend: 'Renvoyer dans {n}s',
    resendCode: 'Renvoyer le code',
    confirmBtn: 'Confirmer',
    sendCode: 'Envoyer le code',
    forgotVerify: 'Méthode oubliée ?',
    loginSuccess: 'Connecté avec succès',
    codeSentAgain: 'Code renvoyé',
    registerTitle: 'Inscription',
    emailRegister: 'Inscription email',
    inviteCodeLabel: 'Code d’invitation (facultatif)',
    inviteCodePlaceholder: 'Saisissez le code',
    hasAccount: 'Déjà un compte ?',
    loginNow: 'Se connecter',
    verifyPageTitle: 'Vérification de sécurité',
    emailVerifyLabel: 'Vérification email',
    codePlaceholder: 'Saisissez le code',
    sendBtn: 'Envoyer',
    passwordTitle: 'Créer un mot de passe',
    backBtn: '‹ Retour',
    inputPasswordLabel: 'Mot de passe',
    confirmPasswordLabel: 'Confirmer',
    confirmPasswordPlaceholder: 'Répétez le mot de passe',
    doneBtn: 'Terminé',
    resetSuccess: 'Mot de passe réinitialisé',
    registerSuccess: 'Inscription réussie',
    welcomeJoin: 'Bienvenue sur iBit',
    loginNowBtn: 'Se connecter',
    forgotPasswordTitle: 'Réinitialiser le mot de passe',
    emailLabel: 'Email',
    emailRegisteredPlaceholder: 'Email enregistré',
    codeSentToast: 'Code envoyé',
  },
  error: {
    emailRequired: 'Email requis',
    emailInvalid: 'Email invalide',
    passwordRequired: 'Mot de passe requis',
    code6Required: 'Code 6 chiffres requis',
    codeRequired: 'Code requis',
    loginFailed: 'Email ou mot de passe incorrect',
    networkError: 'Erreur réseau',
    emailAlreadyRegistered: 'Email déjà utilisé',
    confirmPasswordRequired: 'Confirmez le mot de passe',
    passwordMismatch: 'Mots de passe différents',
    loadFailed: 'Échec chargement',
    refreshFailed: 'Échec actualisation',
    statusUpdated: 'Statut mis à jour',
    currentPasswordRequired: 'Mot de passe actuel requis',
    sixDigitCode: 'Code email 6 chiffres',
    sixDigitGoogleCode: 'Code Google 6 chiffres',
    sendFailed: 'Échec envoi',
    operationFailed: 'Échec opération',
  },
  security: {
    title: 'Sécurité',
    back: '‹ Retour',
    warningBanner: 'Vérifiez email, Google Auth et mot de passe de fonds.',
    accountSecurity: 'Sécurité du compte',
    loginPassword: 'Mot de passe connexion',
    loginPasswordDesc: 'Changez-le régulièrement',
    emailVerify: 'Vérification email',
    emailVerifyDesc: 'Lier pour récupérer le compte',
    googleAuth: 'Google Authenticator',
    googleAuthDesc: 'Sécurité renforcée',
    fundPassword: 'Mot de passe des fonds',
    fundPasswordDesc: 'Pour retraits et transferts',
    set: 'Défini',
    notSet: 'Non défini',
    change: 'Modifier',
    bind: 'Lier',
    set2: 'Définir',
    statusUpdated: 'À jour',
    loadFailed: 'Échec chargement',
    refreshFailed: 'Échec actualisation',
    bound: 'Lié',
    notBound: 'Non lié',
    refresh: 'Actualiser',
    googleHelpTitle: 'Aide Google Auth',
    googleHelpDesc: 'Contactez le support en cas de problème',
    changeLoginPassword: 'Changer mot de passe',
    changePasswordHint: 'Utilisez le nouveau mot de passe',
    currentPassword: 'Actuel',
    newPassword: 'Nouveau',
    confirmNewPassword: 'Confirmer',
    emailCode: 'Code email',
    sendCode: 'Envoyer',
    codeSent: 'Code envoyé',
    changeSuccess: 'Mot de passe changé',
    confirmChange: 'Confirmer',
    submitting: 'Envoi…',
    setFundPassword: 'Définir mot de passe fonds',
    resetFundPassword: 'Réinitialiser',
    fundPasswordHint: 'Garder-le secret',
    fundPasswordResetHint: 'Code envoyé par email',
    newFundPassword: 'Nouveau mot de passe',
    confirmFundPassword: 'Confirmer',
    fundPasswordUpdated: 'Mot de passe fonds mis à jour',
    fundPasswordSet: 'Mot de passe défini',
    bindGoogle: 'Lier Google Auth',
    boundEmail: 'Email lié :',
    googleQrStep: '1. Scanner QR ou saisir clé',
    googleCodeStep: '2. Code Google 6 chiffres',
    emailCodeStep: '3. Code email',
    copyKey: 'Copier clé',
    keyCopied: 'Clé copiée',
    copyFailed: 'Échec copie',
    clipboardDeniedMac: 'Autorisez le presse-papiers',
    clipboardDenied: 'Presse-papiers refusé',
    invalidSecret: 'Clé invalide',
    googleCodeRequired: 'Code Google requis',
    emailCodeSent: 'Code envoyé',
    bindSuccess: 'Lié avec succès',
    confirmBind: 'Confirmer la liaison',
    googleAuthLead: 'Téléchargez Google Authenticator',
    googleAuthTip1: 'Code requis pour connexion et fonds',
    googleAuthTip2: 'Gardez votre appareil en sécurité',
    googleAuthStart: 'J’ai installé, lier maintenant',
  },
  assets: {
    title: 'Mes Actifs',
    totalAssets: 'Total des actifs',
    todayPnl: 'P&L du jour',
    deposit: 'Dépôt',
    withdraw: 'Retrait',
    transfer: 'Transfert',
    history: 'Historique',
    spot: 'Spot',
    futures: 'Futures',
    copyTrade: 'Copy Trading',
    fund: 'Disponible',
    walletBalance: 'Solde portefeuille',
    unrealizedPnl: 'P&L non réalisé',
    positions: 'Positions',
    noPositions: 'Aucune position',
    assetBalance: 'Solde',
    unavailable: 'Indisponible',
    depositCoin: 'Dépôt',
    withdrawCoin: 'Retrait',
    depositRecord: 'Historique dépôts',
    withdrawRecord: 'Historique retraits',
    transferRecord: 'Historique transferts',
    assetRecord: 'Mouvements',
    overview: 'Aperçu',
    spotAccount: 'Compte Spot',
    swapAccount: 'Compte Futures',
    followAccount: 'Compte Copy',
    fundAccount: 'Compte disponible',
    spotTradingAccount: 'Compte trading spot',
    ibitAccount: 'Compte iBit',
    lockedStakingAccount: 'Staking verrouillé',
    stakingTab: 'Staking',
    ibitUnit: 'iBit',
    releaseTotal: 'Total libéré',
    totalLockedBalance: 'Total verrouillé (iBit)',
    myStakingOrders: 'Mes commandes staking',
    stakingOrderNo: 'N° commande',
    purchaseQty: 'Quantité achetée',
    stakingTotal: 'Total staké',
    released: 'Libéré',
    pendingRelease: 'En attente',
    startTime: 'Date de début',
    subscribing: 'En souscription',
    releasing: 'En libération',
    completed: 'Terminé',
    pullToRefresh: 'Tirer pour actualiser',
    releaseToRefresh: 'Relâcher pour actualiser',
    refreshing: 'Actualisation…',
    totalAccount: 'Total du compte',
    showBalance: 'Afficher solde',
    hideBalance: 'Masquer solde',
    followBalance: 'Solde copy',
    accountTransfer: 'Transfert compte',
    transferFrom: 'Depuis',
    transferTo: 'Vers',
    available: 'Disponible',
    freeTransfer: 'Transfert gratuit et instantané',
    followPositions: 'Positions copy',
    noFollowPositions: 'Aucune position',
    followLoading: 'Chargement…',
    long: 'Long',
    short: 'Short',
    trader: 'Trader',
    openPrice: 'Prix d’entrée',
    currentPrice: 'Prix actuel',
    amountLever: 'Montant · Levier',
    closing: 'Clôture…',
    closePosition: 'Fermer position',
    noLossPosition: 'Non fermable manuellement',
    invalidPosition: 'Position invalide',
    confirmClose: 'Confirmer la fermeture ?',
    closeSuccess: 'Fermée',
    closeFailed: 'Échec fermeture',
    sameAccountError: 'Même compte',
    amountError: 'Montant invalide',
    insufficientBalance: 'Solde insuffisant',
    transferSuccess: 'Transfert réussi',
    transferFailed: 'Échec transfert',
    goCopyTrade: 'Copy Trading',
    goSpotTrade: 'Trader',
    hideZeroBalance: 'Masquer solde nul',
    depositRecord2: 'Historique dépôts',
    amountUsdt: 'Montant (USDT)',
    amountCoin: 'Montant ({coin})',
    availableCoin: 'Disponible : {available} {coin}',
    transferring: 'Transfert…',
    confirmTransferBtn: 'Confirmer',
    statementPageTitle: 'Relevé',
    statementStartDate: 'Début',
    statementEndDate: 'Fin',
    statementReset: 'Réinitialiser',
    statementSearch: 'Rechercher',
    statementSearching: 'Recherche…',
    statementEmpty: 'Aucun mouvement',
    statementDirectionOpen: 'Ouvert',
    statementDirectionClose: 'Fermé',
    statementTypes: {
      '43': 'Gain Spot',
      '44': 'Perte Spot',
      '45': 'Frais Spot',
      '46': 'Remboursement Spot',
      '48': 'Trade Spot',
      '49': 'Staking',
      '50': 'Libération staking',
      '51': 'Récompense Airdrop',
      '52': 'Vers staking',
      '53': 'Depuis staking',
    },
  },
  finance: { ...financePageByLocale.fr },
  copyTrade: {
    comprehensive: 'Général',
    winRate14d: 'Taux de réussite 14j',
    profit14d: 'Rendement 14j',
    normal: 'Copy normal',
    lossless: 'Copy sans perte',
    favorite: 'Favoris',
    topTraders: 'Top Traders',
    twoWeekReturn: 'Rendement 2 semaines',
    followers: 'Abonnés',
    days: 'Jours',
    applyTrader: 'Devenir trader',
    myFollowing: 'Mes abonnements',
    myTrading: 'Mes trades',
    traderIdentity: 'Trader',
    myFollowingAccount: 'Compte copy',
    leadManage: 'Gestion trader',
    applyLead: 'Postuler',
    pageTitle: 'Copy Trading',
    heroDesc: 'Suivez les meilleurs traders en un clic',
    traderOverview: 'Aperçu trader',
    copyFollowersCount: 'Nombre abonnés',
    cumulativeTradingDays: 'Jours de trading',
    cumulativeLeadProfit: 'Gain total copy',
    goLeadManage: 'Gestion →',
    copyWalletTitle: 'Solde compte copy',
    cumulativePnlUsdt: 'P&L total (USDT)',
    availableUsdt: 'Disponible (USDT)',
    unrealizedPnlUsdtShort: 'P&L non réalisé (USDT)',
    followingTradersSummary: 'Vous suivez {n} traders',
    newBadge: 'NOUVEAU',
    losslessShieldTitle: 'Protection sans perte',
    losslessShieldDesc: ' : Compensé en cas de perte dans les limites',
    learnHowItWorks: 'En savoir plus →',
    myStarredTraders: 'Traders favoris',
    traderTotalCount: '{count} traders',
    filterLoadingShort: 'Chargement…',
    loadTraderListFailed: 'Échec chargement liste',
    loadFavoritesFailed: 'Échec chargement favoris',
    favoritedToast: 'Ajouté aux favoris',
    defaultTraderName: 'Trader',
    levelJunior: 'Débutant',
    badgeLossless: 'Sans perte',
    metaDaysTrades: '{days}j · {trades} trades',
    followAction: 'Suivre',
    profitUsdtBracket: 'Gain (USDT)',
    profitShareRate: 'Partage gains %',
    trend14Days: 'Tendance 14 jours',
    emptyFavoriteHint: 'Aucun favori',
    emptyTraderListDefault: 'Aucun trader',
    emptyTraderListLossless: 'Aucun trader sans perte',
    browseTraders: 'Parcourir traders',
    losslessInfoHeading: 'Fonctionnement copy sans perte',
    llInfoCard1Title: 'Protection conditionnelle',
    llInfoCard1Body: 'Sous réserve des règles de risque',
    llInfoCard2Title: 'Responsabilité limitée',
    llInfoCard2Body: 'Compensation dans la limite définie',
    llInfoCard3Title: 'Contrôle risque',
    llInfoCard3Body: 'Protection automatique en cas de perte',
    llInfoCard4Title: 'Avertissement risque',
    llInfoCard4Body: 'Le trading comporte des risques',
    unitYi: 'Milliard',
    unitWan: 'Millier',
    followingPlaza: 'Place copy',
    followingWalletFail: 'Échec chargement solde',
    followingTabPositions: 'Positions',
    followingTabTraders: 'Traders',
    followingTabHistory: 'Historique',
    followingHistEmpty: 'Aucun historique',
    followingNoTradersYet: 'Aucun abonnement',
    followingGoPlaza: 'Aller à la place',
    confirmStopFollow: 'Arrêter de suivre {name} ?',
    noLossManualCloseTooltip: 'Non fermable manuellement',
    followingThContract: 'Contrat',
    followingThDirection: 'Sens',
    followingThOpenPrice: 'Prix entrée',
    followingThCurPrice: 'Prix actuel',
    followingThQty: 'Quantité',
    followingThLever: 'Levier',
    followingThUnrealized: 'P&L non réalisé',
    followingThOpenTime: 'Date',
    followingThAction: 'Action',
    followingOpenLong: 'Long',
    followingOpenShort: 'Short',
    closeQtyWithBase: 'Qté fermée ({base})',
    followingRealizedPnlUsdt: 'P&L réalisé (USDT)',
    followingYieldRate: 'Rendement',
    followingAvgOpenUsdt: 'Prix moy. entrée (USDT)',
    followingAvgCloseUsdt: 'Prix moy. fermeture (USDT)',
    marginCrossMode: 'Cross',
    marginIsolatedMode: 'Isolé',
    stopFollowing: 'Arrêter de suivre',
    lead: {
      pageTitle: 'Mon trading',
      navMyFollowing: 'Mes abonnements →',
      becomeTitle: 'Devenir trader',
      becomeDesc: 'Remplissez les conditions',
      condMinBalance: 'Compte futures ≥ {min} USDT',
      goTransfer: 'Transférer',
      condNotFollowing: 'Ne pas suivre de trader',
      agreePrefix: 'J’accepte',
      agreeLink: 'l’accord trader',
      submitting: 'Envoi…',
      submitApply: 'Envoyer la demande',
      applyFailed: 'Échec demande',
      reviewingTitle: 'En cours d’examen',
      reviewingDesc: 'Votre demande est en traitement',
      agreementTitle: 'Accord trader',
      agreementEmpty: 'Impossible de charger l’accord',
      leadingBadge: 'En activité',
      noBio: 'Aucune bio',
      cancelLeadProcessing: 'Traitement…',
      cancelLeadApply: 'Arrêter trader',
      confirmCancelLead: 'Confirmer l’arrêt ?',
      operationFailed: 'Échec opération',
      statFollowers: 'Abonnés actuels',
      statRegisterDays: 'Jours inscrit',
      statCapital: 'Capital',
      statCumulativeProfit: 'Gain total (USDT)',
      statTotalFollowers: 'Total abonnés',
      statTradingDays: 'Jours de trading',
      tabFollowers: 'Abonnés ({n})',
      tabCurrent: 'Positions',
      tabHistory: 'Historique',
      tabSettings: 'Paramètres',
      emptyFollowers: 'Aucun abonné',
      removeFollower: 'Supprimer',
      followerEquity: 'Solde (USDT)',
      followerTotalShare: 'Partage total (USDT)',
      followerLastShare: 'Dernier partage',
      followerSince: 'Suivi depuis : {time}',
      emptyCurrent: 'Aucune position',
      emptyHistory: 'Aucun historique',
      settingsBasic: 'Infos basiques',
      avatar: 'Avatar',
      nickname: 'Pseudo',
      nicknamePlaceholder: '10 caractères max',
      bio: 'Bio',
      bioPlaceholder: '25 caractères max',
      saveSuccess: 'Enregistré',
      saveBasicProcessing: 'Enregistrement…',
      saveBasic: 'Enregistrer',
      leadSymbols: 'Contrats trader',
      saveProcessing: 'Enregistrement…',
      save: 'Enregistrer',
      tagsTitle: 'Tags (max 4)',
      confirmRemoveFollower: 'Supprimer {name} ?',
      saveFailed: 'Échec enregistrement',
      uploadFailed: 'Échec upload',
      defaultFollower: 'Abonné',
      defaultUser: 'Utilisateur',
    },
  },
  footer: {
    aboutSection: 'À propos',
    companyIntro: 'Présentation',
    brand: 'Marque',
    community: 'Communauté',
    riskWarning: 'Avertissement risque',
    terms: 'Conditions',
    privacy: 'Confidentialité',
    futuresTrade: 'Futures',
    spotTrade: 'Spot',
    losslessCopy: 'Copy sans perte',
    beginnerGuide: 'Guide débutant',
    helpCenter: 'Aide',
    glossary: 'Glossaire',
    compliance: 'Conformité',
    products: 'Produits',
    resources: 'Ressources',
  },
  announcements: {
    title: 'Annonces',
    noAnnouncements: 'Aucune annonce',
    back: 'Retour',
    backToList: 'Retour liste',
    loadMore: 'Charger plus',
  },
  download: {
    title: 'Télécharger iBit',
    heroTitle: 'Marché en temps réel\nProtégé',
    desc: 'Trader partout, facilement',
    appDesc: 'Toutes les fonctions dans l’app',
    latestVersion: 'Dernière version',
    updateNotes: 'Notes de mise à jour',
    ios: 'Télécharger iOS',
    iosNotReleased: 'iOS pas encore disponible',
    android: 'Télécharger Android',
    androidNotReleased: 'Android pas encore disponible',
    scanToDownload: 'Scanner pour télécharger',
  },
  account: {
    title: 'Mon Compte',
    uid: 'UID',
    email: 'Email',
    profile: 'Profil',
    security: 'Sécurité',
    securityDesc: 'Mots de passe, auth',
    assets: 'Actifs',
    assetsDesc: 'Dépôt, retrait, transfert',
    inviteCode: 'Code d’invitation',
    inviteFriends: 'Inviter amis',
    inviteDesc: 'Gagnez des commissions',
    helpSupport: 'Aide',
    helpDesc: 'FAQ et support',
    broker: 'Broker',
    brokerDesc: 'Commissions, équipe',
    logout: 'Déconnexion',
    securityScore: 'Score sécurité',
    twofa: 'Google Auth',
    supportTitle: 'Support',
    supportHours: '24h/24',
    onlineSupport: 'Chat en ligne',
    instantChat: 'Chat instantané',
    telegramSupport: 'Telegram',
    emailSupport: 'Email',
    applySubmitted: 'Demande envoyée',
    scoreHigh: 'Excellent',
    scoreMedium: 'Moyen',
    scoreLow: 'Améliorer',
  },
  transfer: {
    title: 'Transfert',
    amount: 'Montant',
    amountPlaceholder: 'Saisissez le montant',
    maxTransferable: 'Max transférable',
    success: 'Transfert réussi',
    selectCoin: 'Choisir coin',
    enterAmount: 'Saisissez le montant',
    histEmpty: 'Aucun historique',
    balanceLabel: 'Solde',
  },
  withdraw: {
    title: 'Retrait',
    network: 'Réseau',
    networkTip: 'Vérifiez le réseau pour ne pas perdre vos fonds',
    address: 'Adresse de retrait',
    addressPlaceholder: 'Saisissez l’adresse',
    amount: 'Montant',
    received: 'Reçu',
    fee: 'Frais',
    submitted: 'Demande envoyée',
    fundPassword: 'Mot de passe fonds',
    emailCode: 'Code email',
    googleCode: 'Code Google',
    securityVerification: 'Vérification',
    recordTitle: 'Historique retraits',
    recordEmpty: 'Aucun retrait',
    confirmCancelApply: 'Annuler la demande ?',
    withdrawCancelledToast: 'Annulé',
    withdrawCancelFailedToast: 'Échec annulation',
    statusPending: 'En attente',
    statusReleasing: 'En cours',
    statusWithdrawFailed: 'Échoué',
    statusWithdrawSuccess: 'Réussi',
    statusWithdrawCancelled: 'Annulé',
    typeInternalTransfer: 'Transfert interne',
    typeOnChainWithdraw: 'Retrait on-chain',
    cancelApplyBtn: 'Annuler',
    initFailed: 'Échec initialisation',
    submitOnChainFailed: 'Échec retrait',
    transferSubmitFailed: 'Échec transfert',
    availWithdrawBalance: 'Disponible :',
    availTransferBalance: 'Transférable :',
    coinLabel: 'Coin',
    subCoin: 'Sous-coin',
    mainCoinLabel: 'Coin principal',
    transferMainCoinHint: 'Transfert interne : coin principal seulement',
    withdrawNetworkLabel: 'Réseau',
    withdrawAmountUsdt: 'Montant (USDT)',
    withdrawAmountCoin: 'Montant ({coin})',
    transferAmountUsdt: 'Montant (USDT)',
    transferAmountCoin: 'Montant ({coin})',
    addressForCoin: 'Adresse {coin}',
    expectedArrival: 'Arrivée prévue',
    minWithdrawRowLabel: 'Retrait minimum',
    internalTransferFeeLabel: 'Frais transfert interne',
    free: 'Gratuit',
    minTransferRowLabel: 'Transfert minimum',
    recipientUidLabel: 'UID destinataire',
    recipientUidPlaceholder: 'Saisissez UID',
    addressForNetwork: 'Adresse USDT-{network}',
    codePlaceholder6Digits: '6 chiffres',
    googlePlaceholder6: 'Code Google 6 chiffres',
    sendVerificationCode: 'Envoyer code',
    confirmWithdrawSubmit: 'Confirmer retrait',
    confirmTransferSubmit: 'Confirmer transfert',
    codeSentToEmailToast: 'Code envoyé',
    onchainSubmittedPendingToast: 'Demande envoyée',
    transferSubmittedToast: 'Transfert envoyé',
    submitFailed: 'Échec envoi',
    detailTitleOnChain: 'Détails retrait',
    detailTitleTransfer: 'Détails transfert',
    amountHeroWithdraw: 'Montant retrait',
    amountHeroTransfer: 'Montant transfert',
    stepApplied: 'Demandé',
    stepDone: 'Terminé',
    recipientLabel: 'Destinataire',
    appliedAt: 'Date demande',
    finishedAt: 'Date fin',
    cancelApplyFull: 'Annuler demande',
    copyBtn: 'Copier',
    bindGoogleFirst: 'Liez Google Auth d’abord',
    errFillAddressBeforeCode: 'Saisissez l’adresse',
    errFillAmountBeforeCode: 'Saisissez le montant',
    errFillUidBeforeCode: 'Saisissez UID',
    errFillTransferAmtBeforeCode: 'Saisissez montant',
    errEnterWithdrawAddress: 'Adresse requise',
    errEnterWithdrawAmount: 'Montant requis',
    errMinWithdrawWithAmt: 'Min {min} {coin}',
    errMinWithdrawWithAmtUsdt: 'Min {min} USDT',
    errExceedWithdrawBalance: 'Solde insuffisant',
    errEnterFundPassword: 'Mot de passe fonds requis',
    errEnterEmailCode: 'Code email requis',
    errEnterGoogleCode: 'Code Google requis',
    errEnterRecipientUid: 'UID requis',
    errEnterTransferAmount: 'Montant requis',
    errMinTransferWithAmt: 'Min {min} {coin}',
    errMinTransferWithAmtUsdt: 'Min {min} USDT',
    errExceedTransferBalance: 'Solde insuffisant',
  },
  deposit: {
    title: 'Dépôt',
    address: 'Adresse de dépôt',
    network: 'Réseau',
    saveQrCode: 'Enregistrer QR',
    addressCopied: 'Adresse copiée',
    minDeposit: 'Dépôt minimum',
    arrivals: 'Confirmations',
    coin: 'Coin',
    protocol: 'Protocole',
    subCoin: 'Sous-coin',
    contract: 'Contrat',
    depositAmount: 'Montant',
    amountPlaceholder: 'Saisissez le montant',
    generateOrder: 'Créer commande',
    generating: 'Création…',
    notice: 'Important',
    notice1: 'Créez la commande avant d’envoyer',
    notice2: 'Mauvais réseau = perte de fonds',
    notice3: 'Envoyez le TxHash après transfert',
    intro: 'Règles',
    introText: 'Choisissez coin + réseau → créez commande → envoyez',
    newDeposit: '← Nouveau dépôt',
    orderInfo: 'Infos commande',
    orderNo: 'N° commande',
    status: 'Statut',
    coinLabel: 'Coin',
    networkLabel: 'Réseau',
    amount: 'Montant',
    payAddress: 'Adresse de réception',
    payAddressHint: 'Envoyez à cette adresse',
    qrTitle: 'QR code',
    qrHint: 'Scanner avec portefeuille',
    contractAddress: 'Adresse contrat',
    copy: '⎘ Copier',
    copyAddress: 'Copier adresse',
    submitHash: 'Envoyer TxHash',
    submittingHash: 'Envoi…',
    hashPlaceholder: 'Coller TxHash',
    orSubmitHash: 'Ou soumettre le hash',
    hashRequired: 'Hash requis',
    statusNotSubmittable: 'Non soumissible',
    orderCreated: 'Commande créée',
    orderFailed: 'Échec création',
    addressCopy: 'Adresse copiée',
    orderNoCopy: 'N° copié',
    hashSubmitted: 'Hash envoyé',
    hashFailed: 'Échec envoi',
    broadcastSuccess: 'Transaction envoyée',
    tronBroadcastSuccess: 'Tx Tron envoyée',
    noNetwork: 'Aucun réseau',
    noSubCoin: 'Aucun sous-coin',
    amountRequired: 'Montant requis',
    amountPositive: 'Montant > 0',
    submittedHash: 'Hash :',
    manualDepositTab: 'Dépôt manuel',
    walletDepositTab: 'Dépôt portefeuille',
    walletPayEvm: 'Payer avec EVM',
    walletPayingEvm: 'Paiement…',
    walletPayTron: 'Payer avec Tron',
    walletPayingTron: 'Paiement…',
    histLink: 'Historique dépôts',
    retryBtn: 'Réessayer',
    backWithArrow: '‹ Retour',
    rechargeStatus0: 'En attente paiement',
    rechargeStatus1: 'En attente confirmation',
    rechargeStatus2: 'Terminé',
    rechargeStatus3: 'Annulé',
    rechargeStatus4: 'Échoué',
    statusUnknown: 'Statut {status}',
    qrAlt: 'QR dépôt',
    loadNetworksFailed: 'Échec chargement réseaux',
    wcHintEvmConfigured: 'Utiliser WalletConnect EVM',
    wcHintEvmUnconfigured: 'WalletConnect non configuré',
    wcHintTronConfigured: 'WalletConnect Tron',
    wcHintTronUnconfigured: 'Utiliser dépôt manuel',
    wcHintTronManualOnly: 'Dépôt manuel seulement',
    walletPayFallback: 'Échec paiement EVM',
    tronWalletPayFallback: 'Échec paiement Tron',
    currentPrefix: 'Actuel :',
    histEmpty: 'Aucun dépôt',
    histOrderNo: 'N° commande',
    histTx: 'TX :',
    histLoadMore: 'Charger plus',
    histLoadedAll: 'Tout chargé',
  },
  broker: {
    title: 'Espace Broker',
    applyTitle: 'Devenir Broker',
    myBrokerCode: 'Mon code broker',
    referralCount: 'Utilisateurs parrainés',
    totalCommission: 'Commissions totales',
    applyStatus: 'Statut demande',
    pending: 'En attente',
    approved: 'Approuvé',
    rejected: 'Rejeté',
    defaultName: 'Broker',
    greeting: 'Bonjour {name}',
    uidLabel: 'UID : {uid}',
    introBanner: 'Gagnez des commissions sur les trades',
    statNewToday: 'Nouveaux aujourd’hui',
    statTradeToday: 'Actifs aujourd’hui',
    statRebateToday: 'Commissions aujourd’hui (USDT)',
    inviteList: 'Liste parrainages',
    emptyInviteList: 'Aucun parrainage',
    thAccount: 'Compte',
    thLevel: 'Niveau',
    thPerpCopy: 'Perpétuel / Copy',
    levelBroker: 'Broker',
    levelNormal: 'Normal',
    editRateTooltip: 'Modifier taux',
    todayRebate: 'Commissions du jour',
    emptyTodayRebate: 'Aucune commission',
    thId: 'ID',
    rebateUsdt: 'Commission (USDT)',
    teamDetails: 'Équipe',
    filterAll: 'Tout',
    filterWeek: '7 derniers jours',
    filterToday: 'Aujourd’hui',
    filterMonth: 'Ce mois',
    teamTotalAssets: 'Actifs équipe',
    rebateHistory: 'Historique commissions',
    emptyRebateHistory: 'Aucune commission',
    amountUsdt: 'Montant (USDT)',
    loadMore: 'Charger plus',
    loadingMore: 'Chargement…',
    loadedAll: 'Tout chargé',
    editModalTitle: 'Modifier taux',
    perpRebateRate: 'Taux perpétuel %',
    copyRebateRate: 'Taux copy %',
    editTip: 'Modification instantanée',
    perpRateError: '0–100 seulement',
    copyRateError: '0–100 seulement',
    setSuccess: 'Mis à jour',
  },
  help: {
    title: 'Aide',
    supportTitle: 'Support',
    search: 'Rechercher',
    searchPlaceholder: 'Rechercher un sujet',
    telegramSupport: 'Telegram',
    quickResponse: 'Réponse rapide',
    emailSupport: 'Email',
    docs: 'Docs',
    viewFullGuide: 'Voir guide complet',
    detailTitle: 'Détails',
    backToHelp: 'Retour aide',
  },
  invite: {
    title: 'Inviter des amis',
    myCode: 'Mon code',
    copy: 'Copier code',
    copied: 'Code copié',
    share: 'Partager lien',
    shareLink: 'Copier lien',
    linkCopied: 'Lien copié',
    desc: 'Invitez des amis et gagnez des commissions',
    totalInvited: 'Total invités',
    totalReward: 'Récompenses totales',
    noRecord: 'Aucune invitation',
    heroLine1: 'Invitez des amis',
    heroLine2: 'Gagnez des récompenses',
    heroDesc: 'Gagnez une partie des frais de leurs trades',
    myInviteInfo: 'Mes infos',
    inviteCodeLabel: 'Code',
    inviteLinkShort: 'Lien',
    qrCodeLabel: 'QR code',
    copyShort: 'Copier',
    copiedDone: 'Copié ✓',
    qrInviteAlt: 'QR invitation',
    scanToRegister: 'Scanner pour s’inscrire',
    rebateRulesTitle: 'Règles commissions',
    step1Title: 'Partagez votre code',
    step1Desc: 'Envoyez à vos amis',
    step2Title: 'Inscription',
    step2Desc: 'Vos amis s’inscrivent',
    step3Title: 'Gagnez des commissions',
    step3Desc: 'Sur leurs frais de trading',
  },
  futuresPage: futuresPageByLocale.fr,
  spot: {
    tag: 'Spot',
    side: { buy: 'Achat', sell: 'Vente' },
    orderType: { limit: 'Limit', market: 'Marché' },
    orderStatus: {
      pending: 'En attente',
      partial: 'Partiellement exécuté',
      filled: 'Exécuté',
      cancelled: 'Annulé',
      pending_cancel: 'Annulation en cours',
      expired: 'Expiré',
      init: 'Initialisation',
    },
    recordType: {
      transferIn: 'Versement',
      transferOut: 'Retrait',
      orderFreeze: 'Blocage',
      cancelUnfreeze: 'Déblocage',
      trade: 'Trade',
      fee: 'Frais',
      unfreeze: 'Déblocage',
      unknown: 'Type {type}',
    },
    tabs: {
      currentOrders: 'Ordres en cours',
      historyOrders: 'Historique ordres',
      trades: 'Trades',
      funding: 'Mouvements',
    },
    table: {
      pair: 'Paire',
      side: 'Sens',
      type: 'Type',
      price: 'Prix',
      orderPrice: 'Prix limit',
      amount: 'Montant',
      orderAmount: 'Montant ordre',
      filled: 'Exécuté',
      status: 'Statut',
      time: 'Heure',
      action: 'Action',
      dealPrice: 'Prix exécuté',
      dealVolume: 'Volume',
      turnover: 'Chiffre affaires',
      recordType: 'Type',
      quantity: 'Quantité',
      coin: 'Coin',
    },
    trade: {
      buy: 'Acheter',
      sell: 'Vendre',
      limit: 'Limit',
      market: 'Marché',
      processing: 'Traitement…',
      buySymbol: 'Acheter {symbol}',
      sellSymbol: 'Vendre {symbol}',
      priceUsdt: 'Prix (USDT)',
      limitPlaceholder: 'Prix limit',
      marketHint: 'Meilleur prix du marché',
      amountUsdt: 'Montant (USDT)',
      amountBase: 'Montant ({base})',
      available: 'Disponible',
      transfer: 'Transfert',
      loginForBalance: 'Connectez-vous pour voir le solde',
      spotAssets: 'Actifs spot',
    },
    order: {
      cancel: 'Annuler',
      cancelAll: 'Tout annuler',
    },
    empty: {
      loginLink: 'Connexion',
      loginOrdersPrompt: '{link} pour voir les ordres',
      loginViewPrompt: '{link} pour voir',
      noOrders: 'Aucun ordre',
      noHistoryOrders: 'Aucun historique',
      noTrades: 'Aucun trade',
      noFunding: 'Aucun mouvement',
    },
    errors: {
      symbolNotReady: 'Paire non disponible',
      invalidAmount: 'Montant invalide',
      invalidPrice: 'Prix invalide',
      minLimitVolume: 'Min {min}',
      minMarketBuy: 'Min {min} USDT',
      minMarketSell: 'Min {min}',
      orderSubmitted: 'Ordre envoyé',
      orderFailed: 'Échec ordre',
      cancelSuccess: 'Annulé',
      cancelFailed: 'Échec annulation',
      cancelAllSuccess: 'Tout annulé',
      cancelAllPartialFailed: 'Échec partiel',
    },
    loadedAll: 'Tout chargé',
    ticker: {
      change24h: 'Var 24h',
      high24h: 'Haut 24h',
      low24h: 'Bas 24h',
      turnover24h: 'Volume 24h',
    },
    chartSub: { chart: 'Graphique', coinInfo: 'Infos coin' },
    tf: { 
		m1: '1m', 
		m5: '5m', 
		m15: '15m', 
		m30: '30m', 
		h1: '1h', 
		h4: '4h', 
		d1: '1d',
		w1: '1w',
		mo1: '1mon',
		mo3: '3mon'
    },
    ohlcv: {
      spotLabel: 'Spot',
      open: 'Ouverture',
      high: 'Haut',
      low: 'Bas',
      close: 'Fermeture',
      volume: 'Volume',
      changePct: 'Variation %',
    },
    draw: {
      cursor: 'Curseur',
      trend: 'Ligne tendance',
      hline: 'Ligne horizontale',
      ray: 'Rayon',
      channel: 'Canal',
      fib: 'Fibonacci',
      text: 'Texte',
      clearAll: 'Tout effacer',
      zoomOut: 'Dézoomer',
    },
    mobileTab: { chart: 'Marché', trade: 'Trader' },
    pair: {
      search: 'Rechercher',
      loading: 'Chargement…',
      noMatch: 'Aucun résultat',
      retryLater: ', réessayez plus tard',
    },
    book: {
      waiting: 'En attente…',
      orderbook: 'Carnet ordres',
      trades: 'Derniers trades',
      priceUsdt: 'Prix (USDT)',
      amountBase: 'Montant ({base})',
      total: 'Total',
      buyRatio: 'Achat {n}%',
      sellRatio: '{n}% Vente',
      price: 'Prix',
      amount: 'Montant',
      time: 'Heure',
      pricePrecision: 'Précision prix',
    },
    coinInfo: {
      marketCap: 'Capitalisation',
      circulating: 'Circulation',
      issuePrice: 'Prix émission',
      ath: 'ATH',
      athDate: 'Date ATH',
      whitepaper: 'Whitepaper',
      empty: 'Aucune info',
      reload: 'Recharger',
    },
    transferModal: {
      title: 'Transfert',
      selectCoin: 'Choisir coin',
      amount: 'Montant',
      amountPlaceholder: 'Saisissez le montant',
      availableUsdt: 'Disponible :',
      availableCoin: 'Disponible {coin} :',
      transferring: 'Transfert…',
      invalidAmount: 'Montant invalide',
      insufficientBalance: 'Solde insuffisant',
      transferFailed: 'Échec transfert',
    },
  }
}