- Replace all hardcoded English strings with TR() translation keys across every tab, dialog, and component (~20 UI files) - Expand all 8 language files (de, es, fr, ja, ko, pt, ru, zh) with complete translations (~37k lines added) - Improve i18n loader with exe-relative path fallback and English base fallback for missing keys - Add pool-side hashrate polling via pool stats API in xmrig_manager - Introduce Layout::beginFrame() per-frame caching and refresh balance layout config only on schema generation change - Offload daemon output parsing to worker thread - Add CJK subset fallback font for Chinese/Japanese/Korean glyphs
647 lines
30 KiB
Python
647 lines
30 KiB
Python
#!/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)}")
|