#!/usr/bin/env python3 """Generate French (fr) translations for ObsidianDragon wallet.""" import json, os translations = { "24h_change": "Variation 24h", "24h_volume": "Volume 24h", "about": "À propos", "about_block_explorer": "Explorateur de blocs", "about_block_height": "Hauteur de bloc :", "about_build_date": "Date de compilation :", "about_build_type": "Type de build :", "about_chain": "Chaîne :", "about_connections": "Connexions :", "about_credits": "Crédits", "about_daemon": "Daemon :", "about_debug": "Débogage", "about_dragonx": "À propos d'ObsidianDragon", "about_edition": "Édition ImGui", "about_github": "GitHub", "about_imgui": "ImGui :", "about_license": "Licence", "about_license_text": "Ce logiciel est publié sous la licence publique générale GNU v3 (GPLv3). Vous êtes libre d'utiliser, de modifier et de distribuer ce logiciel selon les termes de la licence.", "about_peers_count": "%zu pairs", "about_release": "Version", "about_title": "À propos d'ObsidianDragon", "about_version": "Version :", "about_website": "Site web", "acrylic": "Acrylique", "add": "Ajouter", "address": "Adresse", "address_book_add": "Ajouter une adresse", "address_book_add_new": "Ajouter", "address_book_added": "Adresse ajoutée au carnet", "address_book_count": "%zu adresses enregistrées", "address_book_deleted": "Entrée supprimée", "address_book_edit": "Modifier l'adresse", "address_book_empty": "Aucune adresse enregistrée. Cliquez sur 'Ajouter' pour en créer une.", "address_book_exists": "L'adresse existe déjà dans le carnet", "address_book_title": "Carnet d'adresses", "address_book_update_failed": "Échec de la mise à jour - l'adresse est peut-être en double", "address_book_updated": "Adresse mise à jour", "address_copied": "Adresse copiée dans le presse-papiers", "address_details": "Détails de l'adresse", "address_label": "Adresse :", "address_upper": "ADRESSE", "address_url": "URL de l'adresse", "addresses_appear_here": "Vos adresses de réception apparaîtront ici une fois connecté.", "advanced": "AVANCÉ", "all_filter": "Tout", "allow_custom_fees": "Autoriser les frais personnalisés", "amount": "Montant", "amount_details": "DÉTAILS DU MONTANT", "amount_exceeds_balance": "Le montant dépasse le solde", "amount_label": "Montant :", "appearance": "APPARENCE", "auto_shield": "Auto-blindage du minage", "available": "Disponible", "backup_backing_up": "Sauvegarde en cours...", "backup_create": "Créer une sauvegarde", "backup_created": "Sauvegarde du portefeuille créée", "backup_data": "SAUVEGARDE & DONNÉES", "backup_description": "Créez une sauvegarde de votre fichier wallet.dat. Ce fichier contient toutes vos clés privées et l'historique des transactions. Conservez la sauvegarde dans un endroit sûr.", "backup_destination": "Destination de sauvegarde :", "backup_tip_external": "Stockez les sauvegardes sur des disques externes ou un stockage cloud", "backup_tip_multiple": "Créez plusieurs sauvegardes à différents endroits", "backup_tip_test": "Testez périodiquement la restauration à partir de la sauvegarde", "backup_tips": "Conseils :", "backup_title": "Sauvegarder le portefeuille", "backup_wallet": "Sauvegarder le portefeuille...", "backup_wallet_not_found": "Attention : wallet.dat introuvable à l'emplacement prévu", "balance": "Solde", "balance_layout": "Disposition du solde", "ban": "Bannir", "banned_peers": "Pairs bannis", "block": "Bloc", "block_bits": "Bits :", "block_click_next": "Cliquez pour voir le bloc suivant", "block_click_prev": "Cliquez pour voir le bloc précédent", "block_explorer": "Explorateur de blocs", "block_get_info": "Obtenir les infos du bloc", "block_hash": "Hash du bloc :", "block_height": "Hauteur du bloc :", "block_info_title": "Informations sur le bloc", "block_merkle_root": "Racine de Merkle :", "block_nav_next": "Suivant >>", "block_nav_prev": "<< Précédent", "block_next": "Bloc suivant :", "block_previous": "Bloc précédent :", "block_size": "Taille :", "block_timestamp": "Horodatage :", "block_transactions": "Transactions :", "blockchain_syncing": "Synchronisation de la blockchain (%.1f%%)... Les soldes peuvent être inexacts.", "cancel": "Annuler", "characters": "caractères", "clear": "Effacer", "clear_all_bans": "Lever tous les bannissements", "clear_form_confirm": "Effacer tous les champs du formulaire ?", "clear_request": "Effacer la demande", "click_copy_address": "Cliquez pour copier l'adresse", "click_copy_uri": "Cliquez pour copier l'URI", "close": "Fermer", "conf_count": "%d conf.", "confirm_and_send": "Confirmer & Envoyer", "confirm_send": "Confirmer l'envoi", "confirm_transaction": "Confirmer la transaction", "confirmations": "Confirmations", "confirmations_display": "%d confirmations | %s", "confirmed": "Confirmé", "connected": "Connecté", "connected_peers": "Pairs connectés", "connecting": "Connexion...", "console": "Console", "console_auto_scroll": "Défilement auto", "console_available_commands": "Commandes disponibles :", "console_capturing_output": "Capture de la sortie du daemon...", "console_clear": "Effacer", "console_clear_console": "Effacer la console", "console_cleared": "Console effacée", "console_click_commands": "Cliquez sur les commandes ci-dessus pour les insérer", "console_click_insert": "Cliquez pour insérer", "console_click_insert_params": "Cliquez pour insérer avec paramètres", "console_close": "Fermer", "console_commands": "Commandes", "console_common_rpc": "Commandes RPC courantes :", "console_completions": "Complétions :", "console_connected": "Connecté au daemon", "console_copy_all": "Tout copier", "console_copy_selected": "Copier", "console_daemon": "Daemon", "console_daemon_error": "Erreur du daemon !", "console_daemon_started": "Daemon démarré", "console_daemon_stopped": "Daemon arrêté", "console_disconnected": "Déconnecté du daemon", "console_errors": "Erreurs", "console_filter_hint": "Filtrer la sortie...", "console_help_clear": " clear - Effacer la console", "console_help_getbalance": " getbalance - Afficher le solde transparent", "console_help_getblockcount": " getblockcount - Afficher la hauteur de bloc actuelle", "console_help_getinfo": " getinfo - Afficher les infos du nœud", "console_help_getmininginfo": " getmininginfo - Afficher le statut du minage", "console_help_getpeerinfo": " getpeerinfo - Afficher les pairs connectés", "console_help_gettotalbalance": " gettotalbalance - Afficher le solde total", "console_help_help": " help - Afficher ce message d'aide", "console_help_setgenerate": " setgenerate - Contrôler le minage", "console_help_stop": " stop - Arrêter le daemon", "console_line_count": "%zu lignes", "console_new_lines": "%d nouvelles lignes", "console_no_daemon": "Pas de daemon", "console_not_connected": "Erreur : Non connecté au daemon", "console_rpc_reference": "Référence des commandes RPC", "console_scanline": "Scanline de la console", "console_search_commands": "Rechercher des commandes...", "console_select_all": "Tout sélectionner", "console_show_daemon_output": "Afficher la sortie du daemon", "console_show_errors_only": "Afficher uniquement les erreurs", "console_show_rpc_ref": "Afficher la référence des commandes RPC", "console_showing_lines": "Affichage de %zu sur %zu lignes", "console_starting_node": "Démarrage du nœud...", "console_status_error": "Erreur", "console_status_running": "En cours", "console_status_starting": "Démarrage", "console_status_stopped": "Arrêté", "console_status_stopping": "Arrêt", "console_status_unknown": "Inconnu", "console_tab_completion": "Tab pour compléter", "console_type_help": "Tapez 'help' pour les commandes disponibles", "console_welcome": "Bienvenue dans la console ObsidianDragon", "console_zoom_in": "Agrandir", "console_zoom_out": "Réduire", "copy": "Copier", "copy_address": "Copier l'adresse complète", "copy_error": "Copier l'erreur", "copy_to_clipboard": "Copier dans le presse-papiers", "copy_txid": "Copier le TxID", "copy_uri": "Copier l'URI", "current_price": "Prix actuel", "custom_fees": "Frais personnalisés", "dark": "Sombre", "date": "Date", "date_label": "Date :", "delete": "Supprimer", "difficulty": "Difficulté", "disconnected": "Déconnecté", "dismiss": "Ignorer", "display": "Affichage", "dragonx_green": "DragonX (Vert)", "edit": "Modifier", "error": "Erreur", "est_time_to_block": "Temps est. par bloc", "exit": "Quitter", "explorer": "EXPLORATEUR", "export": "Exporter", "export_csv": "Exporter en CSV", "export_keys_btn": "Exporter les clés", "export_keys_danger": "DANGER : Ceci exportera TOUTES les clés privées de votre portefeuille ! Toute personne ayant accès à ce fichier peut voler vos fonds. Conservez-le en sécurité et supprimez-le après utilisation.", "export_keys_include_t": "Inclure les adresses T (transparentes)", "export_keys_include_z": "Inclure les adresses Z (blindées)", "export_keys_options": "Options d'exportation :", "export_keys_success": "Clés exportées avec succès", "export_keys_title": "Exporter toutes les clés privées", "export_private_key": "Exporter la clé privée", "export_tx_count": "Exporter %zu transactions en fichier CSV.", "export_tx_file_fail": "Impossible de créer le fichier CSV", "export_tx_none": "Aucune transaction à exporter", "export_tx_success": "Transactions exportées avec succès", "export_tx_title": "Exporter les transactions en CSV", "export_viewing_key": "Exporter la clé de visualisation", "failed_create_shielded": "Échec de la création de l'adresse blindée", "failed_create_transparent": "Échec de la création de l'adresse transparente", "fee": "Frais", "fee_high": "Élevés", "fee_label": "Frais :", "fee_low": "Faibles", "fee_normal": "Normal", "fetch_prices": "Récupérer les prix", "file": "Fichier", "file_save_location": "Le fichier sera enregistré dans : ~/.config/ObsidianDragon/", "font_scale": "Taille de police", "from": "De", "from_upper": "DE", "full_details": "Tous les détails", "general": "Général", "go_to_receive": "Aller à Recevoir", "height": "Hauteur", "help": "Aide", "hide": "Masquer", "history": "Historique", "immature_type": "Immature", "import": "Importer", "import_key_btn": "Importer clé(s)", "import_key_formats": "Formats de clés pris en charge :", "import_key_full_rescan": "(0 = rescan complet)", "import_key_label": "Clé(s) privée(s) :", "import_key_no_valid": "Aucune clé valide trouvée dans l'entrée", "import_key_rescan": "Re-scanner la blockchain après l'importation", "import_key_start_height": "Hauteur de départ :", "import_key_success": "Clés importées avec succès", "import_key_t_format": "Clés privées WIF d'adresses T", "import_key_title": "Importer une clé privée", "import_key_tooltip": "Entrez une ou plusieurs clés privées, une par ligne.\nPrend en charge les clés z-adresse et t-adresse.\nLes lignes commençant par # sont traitées comme des commentaires.", "import_key_warning": "Attention : Ne partagez jamais vos clés privées ! L'importation de clés provenant de sources non fiables peut compromettre votre portefeuille.", "import_key_z_format": "Clés de dépenses z-adresse (secret-extended-key-...)", "import_private_key": "Importer une clé privée...", "invalid_address": "Format d'adresse invalide", "ip_address": "Adresse IP", "keep": "Conserver", "keep_daemon": "Garder le daemon en marche", "key_export_fetching": "Récupération de la clé depuis le portefeuille...", "key_export_private_key": "Clé privée :", "key_export_private_warning": "Gardez cette clé SECRÈTE ! Toute personne possédant cette clé peut dépenser vos fonds. Ne la partagez jamais en ligne ou avec des tiers non fiables.", "key_export_reveal": "Révéler la clé", "key_export_viewing_key": "Clé de visualisation :", "key_export_viewing_warning": "Cette clé de visualisation permet à d'autres de voir vos transactions entrantes et votre solde, mais PAS de dépenser vos fonds. Ne la partagez qu'avec des personnes de confiance.", "label": "Libellé :", "language": "Langue", "light": "Clair", "loading": "Chargement...", "loading_addresses": "Chargement des adresses...", "local_hashrate": "Hashrate local", "low_spec_mode": "Mode économie", "market": "Marché", "market_12h": "12h", "market_18h": "18h", "market_24h": "24h", "market_24h_volume": "VOLUME 24H", "market_6h": "6h", "market_attribution": "Données de prix de NonKYC", "market_btc_price": "PRIX BTC", "market_cap": "Capitalisation", "market_no_history": "Aucun historique de prix disponible", "market_no_price": "Pas de données de prix", "market_now": "Maintenant", "market_pct_shielded": "%.0f%% Blindé", "market_portfolio": "PORTEFEUILLE", "market_price_unavailable": "Données de prix indisponibles", "market_refresh_price": "Actualiser les données de prix", "market_trade_on": "Échanger sur %s", "mature": "Mature", "max": "Max", "memo": "Mémo (optionnel, chiffré)", "memo_label": "Mémo :", "memo_optional": "MÉMO (OPTIONNEL)", "memo_upper": "MÉMO", "memo_z_only": "Note : Les mémos ne sont disponibles que lors de l'envoi vers des adresses blindées (z)", "merge_description": "Fusionnez plusieurs UTXOs en une seule adresse blindée. Cela peut réduire la taille du portefeuille et améliorer la confidentialité.", "merge_funds": "Fusionner les fonds", "merge_started": "Opération de fusion démarrée", "merge_title": "Fusionner vers une adresse", "mine_when_idle": "Miner au repos", "mined": "miné", "mined_filter": "Miné", "mined_type": "Miné", "mined_upper": "MINÉ", "miner_fee": "Frais de mineur", "mining": "Minage", "mining_active": "Actif", "mining_address_copied": "Adresse de minage copiée", "mining_all_time": "Tout le temps", "mining_already_saved": "URL du pool déjà enregistrée", "mining_block_copied": "Hash du bloc copié", "mining_chart_1m_ago": "il y a 1m", "mining_chart_5m_ago": "il y a 5m", "mining_chart_now": "Maintenant", "mining_chart_start": "Début", "mining_click": "Cliquer", "mining_click_copy_address": "Cliquez pour copier l'adresse", "mining_click_copy_block": "Cliquez pour copier le hash du bloc", "mining_click_copy_difficulty": "Cliquez pour copier la difficulté", "mining_connected": "Connecté", "mining_connecting": "Connexion...", "mining_control": "Contrôle du minage", "mining_difficulty_copied": "Difficulté copiée", "mining_est_block": "Bloc est.", "mining_est_daily": "Est. quotidien", "mining_filter_all": "Tout", "mining_filter_tip_all": "Afficher tous les gains", "mining_filter_tip_pool": "Afficher uniquement les gains du pool", "mining_filter_tip_solo": "Afficher uniquement les gains solo", "mining_idle_off_tooltip": "Activer le minage au repos", "mining_idle_on_tooltip": "Désactiver le minage au repos", "mining_local_hashrate": "Hashrate local", "mining_mine": "Miner", "mining_mining_addr": "Adr. minage", "mining_network": "Réseau", "mining_no_blocks_yet": "Aucun bloc trouvé pour l'instant", "mining_no_payouts_yet": "Aucun paiement de pool pour l'instant", "mining_no_saved_addresses": "Aucune adresse enregistrée", "mining_no_saved_pools": "Aucun pool enregistré", "mining_off": "Le minage est DÉSACTIVÉ", "mining_on": "Le minage est ACTIVÉ", "mining_open_in_explorer": "Ouvrir dans l'explorateur", "mining_payout_address": "Adresse de paiement", "mining_payout_tooltip": "Adresse pour recevoir les récompenses de minage", "mining_pool": "Pool", "mining_pool_hashrate": "Hashrate du pool", "mining_pool_url": "URL du pool", "mining_recent_blocks": "BLOCS RÉCENTS", "mining_recent_payouts": "PAIEMENTS DE POOL RÉCENTS", "mining_remove": "Supprimer", "mining_reset_defaults": "Réinitialiser les paramètres", "mining_save_payout_address": "Enregistrer l'adresse de paiement", "mining_save_pool_url": "Enregistrer l'URL du pool", "mining_saved_addresses": "Adresses enregistrées :", "mining_saved_pools": "Pools enregistrés :", "mining_shares": "Parts", "mining_show_chart": "Graphique", "mining_show_log": "Journal", "mining_solo": "Solo", "mining_starting": "Démarrage...", "mining_starting_tooltip": "Le mineur démarre...", "mining_statistics": "Statistiques de minage", "mining_stop": "Arrêter", "mining_stop_solo_for_pool": "Arrêtez le minage solo avant de démarrer le minage en pool", "mining_stop_solo_for_pool_settings": "Arrêtez le minage solo pour modifier les paramètres du pool", "mining_stopping": "Arrêt...", "mining_stopping_tooltip": "Le mineur s'arrête...", "mining_syncing_tooltip": "La blockchain se synchronise...", "mining_threads": "Threads de minage", "mining_to_save": "pour enregistrer", "mining_today": "Aujourd'hui", "mining_uptime": "Temps de fonctionnement", "mining_yesterday": "Hier", "network": "Réseau", "network_fee": "FRAIS RÉSEAU", "network_hashrate": "Hashrate du réseau", "new": "+ Nouveau", "new_shielded_created": "Nouvelle adresse blindée créée", "new_t_address": "Nouvelle adresse T", "new_t_transparent": "Nouvelle adresse t (Transparente)", "new_transparent_created": "Nouvelle adresse transparente créée", "new_z_address": "Nouvelle adresse Z", "new_z_shielded": "Nouvelle adresse z (Blindée)", "no_addresses": "Aucune adresse trouvée. Créez-en une avec les boutons ci-dessus.", "no_addresses_available": "Aucune adresse disponible", "no_addresses_match": "Aucune adresse ne correspond au filtre", "no_addresses_with_balance": "Aucune adresse avec solde", "no_matching": "Aucune transaction correspondante", "no_recent_receives": "Aucune réception récente", "no_recent_sends": "Aucun envoi récent", "no_transactions": "Aucune transaction trouvée", "node": "NŒUD", "node_security": "NŒUD & SÉCURITÉ", "noise": "Bruit", "not_connected": "Non connecté au daemon...", "not_connected_to_daemon": "Non connecté au daemon", "notes": "Notes", "notes_optional": "Notes (optionnel) :", "output_filename": "Nom du fichier de sortie :", "overview": "Aperçu", "paste": "Coller", "paste_from_clipboard": "Coller depuis le presse-papiers", "pay_from": "Payer depuis", "payment_request": "DEMANDE DE PAIEMENT", "payment_request_copied": "Demande de paiement copiée", "payment_uri_copied": "URI de paiement copiée", "peers": "Pairs", "peers_avg_ping": "Ping moyen", "peers_ban_24h": "Bannir le pair 24h", "peers_ban_score": "Score de ban : %d", "peers_banned": "Bannis", "peers_banned_count": "Bannis : %d", "peers_best_block": "Meilleur bloc", "peers_blockchain": "BLOCKCHAIN", "peers_blocks": "Blocs", "peers_blocks_left": "%d blocs restants", "peers_clear_all_bans": "Lever tous les bannissements", "peers_click_copy": "Cliquez pour copier", "peers_connected": "Connectés", "peers_connected_count": "Connectés : %d", "peers_copy_ip": "Copier l'IP", "peers_dir_in": "Ent.", "peers_dir_out": "Sort.", "peers_hash_copied": "Hash copié", "peers_hashrate": "Hashrate", "peers_in_out": "Ent./Sort.", "peers_longest": "Plus longue", "peers_longest_chain": "Plus longue chaîne", "peers_memory": "Mémoire", "peers_no_banned": "Aucun pair banni", "peers_no_connected": "Aucun pair connecté", "peers_no_tls": "Pas de TLS", "peers_notarized": "Notarisé", "peers_p2p_port": "Port P2P", "peers_protocol": "Protocole", "peers_received": "Reçu", "peers_refresh": "Actualiser", "peers_refresh_tooltip": "Actualiser la liste des pairs", "peers_refreshing": "Actualisation...", "peers_sent": "Envoyé", "peers_tt_id": "ID : %d", "peers_tt_received": "Reçu : %s", "peers_tt_sent": "Envoyé : %s", "peers_tt_services": "Services : %s", "peers_tt_start_height": "Hauteur de départ : %d", "peers_tt_synced": "Synchronisé H/B : %d/%d", "peers_tt_tls_cipher": "TLS : %s", "peers_unban": "Débannir", "peers_upper": "PAIRS", "peers_version": "Version", "pending": "En attente", "ping": "Ping", "price_chart": "Graphique des prix", "qr_code": "Code QR", "qr_failed": "Échec de la génération du code QR", "qr_title": "Code QR", "qr_unavailable": "QR indisponible", "receive": "Recevoir", "received": "reçu", "received_filter": "Reçu", "received_label": "Reçu", "received_upper": "REÇU", "receiving_addresses": "Vos adresses de réception", "recent_received": "REÇUS RÉCENTS", "recent_sends": "ENVOIS RÉCENTS", "recipient": "DESTINATAIRE", "recv_type": "Reçu", "refresh": "Actualiser", "refresh_now": "Actualiser maintenant", "report_bug": "Signaler un bug", "request_amount": "Montant (optionnel) :", "request_copy_uri": "Copier l'URI", "request_description": "Générez une demande de paiement que d'autres peuvent scanner ou copier. Le code QR contient votre adresse et un montant/mémo optionnel.", "request_label": "Libellé (optionnel) :", "request_memo": "Mémo (optionnel) :", "request_payment": "Demander un paiement", "request_payment_uri": "URI de paiement :", "request_receive_address": "Adresse de réception :", "request_select_address": "Sélectionner une adresse...", "request_shielded_addrs": "-- Adresses blindées --", "request_title": "Demander un paiement", "request_transparent_addrs": "-- Adresses transparentes --", "request_uri_copied": "URI de paiement copiée dans le presse-papiers", "rescan": "Re-scanner", "reset_to_defaults": "Réinitialiser les paramètres", "review_send": "Vérifier l'envoi", "rpc_host": "Hôte RPC", "rpc_pass": "Mot de passe", "rpc_port": "Port", "rpc_user": "Nom d'utilisateur", "save": "Enregistrer", "save_settings": "Enregistrer les paramètres", "save_z_transactions": "Enregistrer les Z-tx dans la liste", "search_placeholder": "Rechercher...", "security": "SÉCURITÉ", "select_address": "Sélectionner une adresse...", "select_receiving_address": "Sélectionner une adresse de réception...", "select_source_address": "Sélectionner une adresse source...", "send": "Envoyer", "send_amount": "Montant", "send_amount_details": "DÉTAILS DU MONTANT", "send_amount_upper": "MONTANT", "send_clear_fields": "Effacer tous les champs du formulaire ?", "send_copy_error": "Copier l'erreur", "send_dismiss": "Ignorer", "send_error_copied": "Erreur copiée dans le presse-papiers", "send_error_prefix": "Erreur : %s", "send_exceeds_available": "Dépasse le disponible (%.8f)", "send_fee": "Frais", "send_fee_high": "Élevés", "send_fee_low": "Faibles", "send_fee_normal": "Normal", "send_form_restored": "Formulaire restauré", "send_from_this_address": "Envoyer depuis cette adresse", "send_go_to_receive": "Aller à Recevoir", "send_keep": "Conserver", "send_network_fee": "FRAIS RÉSEAU", "send_no_balance": "Pas de solde", "send_no_recent": "Aucun envoi récent", "send_recent_sends": "ENVOIS RÉCENTS", "send_recipient": "DESTINATAIRE", "send_select_source": "Sélectionner une adresse source...", "send_sending_from": "ENVOI DEPUIS", "send_submitting": "Soumission de la transaction...", "send_switch_to_receive": "Passez à Recevoir pour obtenir votre adresse et commencer à recevoir des fonds.", "send_to": "Envoyer à", "send_tooltip_enter_amount": "Entrez un montant à envoyer", "send_tooltip_exceeds_balance": "Le montant dépasse le solde disponible", "send_tooltip_in_progress": "Transaction déjà en cours", "send_tooltip_invalid_address": "Entrez une adresse de destinataire valide", "send_tooltip_not_connected": "Non connecté au daemon", "send_tooltip_select_source": "Sélectionnez d'abord une adresse source", "send_tooltip_syncing": "Attendez la synchronisation de la blockchain", "send_total": "Total", "send_transaction": "Envoyer la transaction", "send_tx_failed": "Transaction échouée", "send_tx_sent": "Transaction envoyée !", "send_tx_success": "Transaction envoyée avec succès !", "send_txid_copied": "TxID copié dans le presse-papiers", "send_txid_label": "TxID : %s", "send_valid_shielded": "Adresse blindée valide", "send_valid_transparent": "Adresse transparente valide", "send_wallet_empty": "Votre portefeuille est vide", "send_yes_clear": "Oui, effacer", "sending": "Envoi de la transaction", "sending_from": "ENVOI DEPUIS", "sent": "envoyé", "sent_filter": "Envoyé", "sent_type": "Envoyé", "sent_upper": "ENVOYÉ", "settings": "Paramètres", "setup_wizard": "Assistant de configuration", "share": "Partager", "shield_check_status": "Vérifier le statut", "shield_completed": "Opération terminée avec succès !", "shield_description": "Blindez vos récompenses de minage en envoyant les sorties coinbase des adresses transparentes vers une adresse blindée. Cela améliore la confidentialité en masquant vos revenus de minage.", "shield_from_address": "Depuis l'adresse :", "shield_funds": "Blinder les fonds", "shield_in_progress": "Opération en cours...", "shield_max_utxos": "UTXOs max par opération", "shield_merge_done": "Blindage/fusion terminé !", "shield_select_z": "Sélectionner une z-adresse...", "shield_started": "Opération de blindage démarrée", "shield_title": "Blinder les récompenses coinbase", "shield_to_address": "Vers l'adresse (blindée) :", "shield_utxo_limit": "Limite UTXO :", "shield_wildcard_hint": "Utilisez '*' pour blinder depuis toutes les adresses transparentes", "shielded": "Blindé", "shielded_to": "BLINDÉ VERS", "shielded_type": "Blindé", "show": "Afficher", "show_qr_code": "Afficher le code QR", "showing_transactions": "Affichage %d\xe2\x80\x93%d sur %d transactions (total : %zu)", "simple_background": "Arrière-plan simple", "start_mining": "Démarrer le minage", "status": "Statut", "stop_external": "Arrêter le daemon externe", "stop_mining": "Arrêter le minage", "submitting_transaction": "Soumission de la transaction...", "success": "Succès", "summary": "Résumé", "syncing": "Synchronisation...", "t_addresses": "Adresses T", "test_connection": "Tester", "theme": "Thème", "theme_effects": "Effets de thème", "time_days_ago": "il y a %d jours", "time_hours_ago": "il y a %d heures", "time_minutes_ago": "il y a %d minutes", "time_seconds_ago": "il y a %d secondes", "to": "À", "to_upper": "À", "tools": "OUTILS", "total": "Total", "transaction_id": "ID DE TRANSACTION", "transaction_sent": "Transaction envoyée avec succès", "transaction_sent_msg": "Transaction envoyée !", "transaction_url": "URL de transaction", "transactions": "Transactions", "transactions_upper": "TRANSACTIONS", "transparent": "Transparent", "tx_confirmations": "%d confirmations", "tx_details_title": "Détails de la transaction", "tx_from_address": "Adresse d'origine :", "tx_id_label": "ID de transaction :", "tx_immature": "IMMATURE", "tx_mined": "MINÉ", "tx_received": "REÇU", "tx_sent": "ENVOYÉ", "tx_to_address": "Adresse de destination :", "tx_view_explorer": "Voir dans l'explorateur", "txs_count": "%d txs", "type": "Type", "ui_opacity": "Opacité de l'interface", "unban": "Débannir", "unconfirmed": "Non confirmé", "undo_clear": "Annuler l'effacement", "unknown": "Inconnu", "use_embedded_daemon": "Utiliser le dragonxd intégré", "use_tor": "Utiliser Tor", "validate_btn": "Valider", "validate_description": "Entrez une adresse DragonX pour vérifier si elle est valide et si elle appartient à ce portefeuille.", "validate_invalid": "INVALIDE", "validate_is_mine": "Ce portefeuille possède cette adresse", "validate_not_mine": "N'appartient pas à ce portefeuille", "validate_ownership": "Propriété :", "validate_results": "Résultats :", "validate_shielded_type": "Blindée (z-adresse)", "validate_status": "Statut :", "validate_title": "Valider l'adresse", "validate_transparent_type": "Transparente (t-adresse)", "validate_type": "Type :", "validate_valid": "VALIDE", "validating": "Validation...", "verbose_logging": "Journalisation détaillée", "version": "Version", "view": "Afficher", "view_details": "Voir les détails", "view_on_explorer": "Voir dans l'explorateur", "waiting_for_daemon": "En attente de la connexion au daemon...", "wallet": "PORTEFEUILLE", "wallet_empty": "Votre portefeuille est vide", "wallet_empty_hint": "Passez à Recevoir pour obtenir votre adresse et commencer à recevoir des fonds.", "warning": "Attention", "warning_upper": "ATTENTION !", "website": "Site web", "window_opacity": "Opacité de la fenêtre", "yes_clear": "Oui, effacer", "your_addresses": "Vos adresses", "z_addresses": "Adresses Z", } out = os.path.join(os.path.dirname(__file__), "..", "res", "lang", "fr.json") with open(out, "w", encoding="utf-8") as f: json.dump(translations, f, indent=4, ensure_ascii=False, sort_keys=True) print(f"Wrote {len(translations)} French translations to {os.path.abspath(out)}")