feat(i18n): add English source + 8-language translations for 193 UI strings
Adds the i18n source for 193 previously-hardcoded UI strings (the
security / PIN / lock flow, first-run seed-backup wizard, witness-rebuild
shutdown dialog, and balance / mining / explorer labels) so they can be
localized. The TR() call-site wrapping rides in the accompanying UI commit.
- 193 keys added to loadBuiltinEnglish() (the English source of truth),
including one pre-existing missing key (copied_to_clipboard).
- Additive res/lang/{de,es,fr,ja,ko,pt,ru,zh}.json (+193 each); every
translation's printf format-signature was validated against English
(0 mismatches) so the runtime validator accepts them.
- Rebuilt res/fonts/NotoSansCJK-Subset.ttf to cover ~30 new Han/Hangul
glyphs introduced by the zh/ja/ko translations (tofu-free).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
193
res/lang/fr.json
193
res/lang/fr.json
@@ -60,6 +60,80 @@
|
||||
"amount_label": "Montant :",
|
||||
"animate_avatars": "Animer les avatars",
|
||||
"appearance": "APPARENCE",
|
||||
"appx_back": "Retour",
|
||||
"appx_back_up_seed_phrase_title": "Sauvegardez votre phrase de récupération",
|
||||
"appx_birthday_block_height": "Naissance (hauteur de bloc) : %llu — sauvegardez-la également.",
|
||||
"appx_blockchain_data_deleted": "Données de la blockchain supprimées (%d éléments). Le démon redémarre pour se resynchroniser depuis le réseau.",
|
||||
"appx_blockchain_maintenance_in_progress": "Une opération de maintenance de la blockchain est déjà en cours.",
|
||||
"appx_blockchain_rescan_complete": "Nouvelle analyse de la blockchain terminée",
|
||||
"appx_bootstrap_complete_reconciling": "Amorçage terminé — réconciliation de votre portefeuille avec les nouvelles données de la chaîne.",
|
||||
"appx_cancel": "Annuler",
|
||||
"appx_cleaning_up": "Nettoyage...",
|
||||
"appx_confirm_your_backup": "Confirmez votre sauvegarde",
|
||||
"appx_copied_clipboard_autoclears": "Copié — le presse-papiers s'efface automatiquement dans 45 s",
|
||||
"appx_copy": "Copier",
|
||||
"appx_could_not_start_restore": "Impossible de démarrer la restauration",
|
||||
"appx_create_failed_prefix": "Échec de la création : ",
|
||||
"appx_creating_your_wallet": "Création de votre portefeuille…",
|
||||
"appx_daemon_error": "Erreur du démon",
|
||||
"appx_daemon_reinstall_in_progress": "La réinstallation du démon est déjà en cours.",
|
||||
"appx_disconnecting": "Déconnexion...",
|
||||
"appx_done": "Terminé",
|
||||
"appx_dragonxd_output": "Sortie de dragonxd",
|
||||
"appx_encrypting_wallet": "Chiffrement du portefeuille...",
|
||||
"appx_fullnode_lifecycle_unavailable_lite": "Les actions de cycle de vie du nœud complet ne sont pas disponibles dans la version allégée",
|
||||
"appx_installing_bundled_daemon": "Installation du démon intégré — le nœud va s'arrêter, se mettre à jour, puis redémarrer...",
|
||||
"appx_invalid_payment_uri_prefix": "URI de paiement invalide : ",
|
||||
"appx_ive_written_it_down": "Je les ai notés",
|
||||
"appx_keep_node_running_and_quit": "Laisser le nœud actif et quitter",
|
||||
"appx_last_block_n": "Dernier bloc : %d",
|
||||
"appx_last_used_wallet_not_found_prefix": "Votre dernier fichier de portefeuille utilisé (",
|
||||
"appx_last_used_wallet_not_found_suffix": ") est introuvable — le portefeuille par défaut a été ouvert à la place. Si vous l'avez déplacé, restaurez-le et revenez à celui-ci depuis la liste des portefeuilles.",
|
||||
"appx_low_spec_mode_disabled": "Mode faibles ressources désactivé",
|
||||
"appx_low_spec_mode_enabled": "Mode faibles ressources activé",
|
||||
"appx_miner_stopped_prefix": "Mineur arrêté : ",
|
||||
"appx_miner_stopped_unexpectedly": "Le mineur s'est arrêté de manière inattendue.",
|
||||
"appx_n_min_n_sec": "%d min %d s",
|
||||
"appx_n_seconds": "%d secondes",
|
||||
"appx_no_bundled_daemon_to_install": "Cette version ne contient aucun démon intégré à installer",
|
||||
"appx_no_embedded_daemon_to_install": "Cette version ne contient aucun démon embarqué à installer",
|
||||
"appx_node_busy_restarting": "Le nœud est occupé à redémarrer — réessayez dans un instant.",
|
||||
"appx_node_rebuilding_witness_cache": "Le nœud reconstruit son cache de témoins",
|
||||
"appx_not_next_word": " — ce n'est pas le mot suivant",
|
||||
"appx_payment_request_loaded": "Demande de paiement chargée",
|
||||
"appx_pool_miner_connected_and_hashing": "Mineur de pool connecté et en cours de hachage.",
|
||||
"appx_progress_n_of_n": "Progression : %d / %d",
|
||||
"appx_rebuilding_sapling_note_witnesses": "Reconstruction des témoins de notes Sapling…",
|
||||
"appx_rebuilding_witness_cache_blocks_left": "Reconstruction du cache de témoins %.0f%% — %d blocs restants",
|
||||
"appx_rebuilding_witness_cache_pct": "Reconstruction du cache de témoins %.0f%%",
|
||||
"appx_recovery_phrase_word_count": "La phrase de récupération doit comporter 24 mots — vous en avez %d.",
|
||||
"appx_restarting_daemon_rescan_flag": "Redémarrage du démon avec l'option -rescan...",
|
||||
"appx_restarting_daemon_zapwallettxes": "Redémarrage du démon avec -zapwallettxes=2 (réparation du portefeuille)...",
|
||||
"appx_restoring_your_wallet": "Restauration de votre portefeuille…",
|
||||
"appx_seed_backup_warning": "Ces 24 mots sont le SEUL moyen de restaurer votre portefeuille. Notez-les dans l'ordre, conservez-les hors ligne et ne les partagez jamais. Si vous les perdez, vos fonds seront perdus à jamais.",
|
||||
"appx_seed_not_backed_up_warning": "Vous n'avez pas sauvegardé votre phrase de récupération — des fonds pourraient être perdus. Ignorer quand même ?",
|
||||
"appx_sending_stop_command_to_daemon": "Envoi de la commande d'arrêt au démon...",
|
||||
"appx_setting_initial_sapling_witnesses": "Définition des témoins Sapling initiaux %.0f%%",
|
||||
"appx_shutdown_complete": "Arrêt terminé",
|
||||
"appx_simple_background_disabled": "Arrière-plan simple désactivé",
|
||||
"appx_simple_background_enabled": "Arrière-plan simple activé",
|
||||
"appx_skip": "Ignorer",
|
||||
"appx_skip_anyway": "Ignorer quand même",
|
||||
"appx_still_status_prefix": "Toujours « ",
|
||||
"appx_still_status_suffix": " » — forcer la fermeture maintenant peut corrompre les données de la chaîne.",
|
||||
"appx_stop_anyway_and_quit": "Arrêter quand même et quitter",
|
||||
"appx_stopping_daemon_deleting_blockchain": "Arrêt du démon et suppression des données de la blockchain...",
|
||||
"appx_stopping_node_discards_rebuild": "Arrêter le nœud maintenant abandonne la reconstruction en cours et la relance (plusieurs minutes) à la prochaine ouverture du portefeuille. Vous pouvez plutôt laisser le nœud en marche.",
|
||||
"appx_stopping_pool_miner": "Arrêt du mineur de pool...",
|
||||
"appx_syncing_pct_block_n_of_n": "Synchronisation %.1f%% — Bloc %d / %d",
|
||||
"appx_tap_words_in_order": "Touchez les mots dans le bon ordre pour confirmer que vous les avez enregistrés.",
|
||||
"appx_theme_effects_disabled": "Effets de thème désactivés",
|
||||
"appx_theme_effects_enabled": "Effets de thème activés",
|
||||
"appx_theme_prefix": "Thème : ",
|
||||
"appx_use_settings_restart_daemon_hint": "Utilisez Paramètres > Redémarrer le démon pour réessayer",
|
||||
"appx_waiting_for_daemon_to_encrypt_wallet": "En attente du chiffrement du portefeuille par le démon...",
|
||||
"appx_wallet_created_and_backed_up": "Portefeuille créé et sauvegardé.",
|
||||
"appx_wallet_open_failed_prefix": "Échec de l'ouverture du portefeuille : ",
|
||||
"auto_shield": "Auto-blindage du minage",
|
||||
"av_intro": "Les logiciels de minage sont souvent signalés comme potentiellement indésirables. Suivez ces étapes pour activer le minage en pool :",
|
||||
"av_open_security": "Ouvrir Sécurité Windows",
|
||||
@@ -100,6 +174,17 @@
|
||||
"balance_shielded_fmt": "Blindé : %.8f",
|
||||
"balance_syncing_pct": "Synchronisation %.1f%%",
|
||||
"balance_transparent_fmt": "Transparent : %.8f",
|
||||
"baltab_market": "Marché",
|
||||
"baltab_market_price_4dp": "Marché : %.4f $",
|
||||
"baltab_market_price_8dp": "Marché : %.8f $",
|
||||
"baltab_pct_change_24h": "%s%.1f%% 24h",
|
||||
"baltab_pct_of_total_zaddr": "%.0f%% du total · %d Z-addr",
|
||||
"baltab_shielded": "Protégé",
|
||||
"baltab_shielded_amount": "Protégé %.8f",
|
||||
"baltab_t_addresses_count": "%d T-addresses",
|
||||
"baltab_total_balance": "Solde total",
|
||||
"baltab_transparent": "Transparent",
|
||||
"baltab_transparent_amount": "Transparent %.8f",
|
||||
"ban": "Bannir",
|
||||
"banned_peers": "Pairs bannis",
|
||||
"block": "Bloc",
|
||||
@@ -414,6 +499,7 @@
|
||||
"contacts_shape_square": "Carré",
|
||||
"contacts_shape_tab": "Onglet",
|
||||
"copied": "Copié !",
|
||||
"copied_to_clipboard": "Copié dans le presse-papiers",
|
||||
"copy": "Copier",
|
||||
"copy_address": "Copier l'adresse complète",
|
||||
"copy_error": "Copier l'erreur",
|
||||
@@ -593,6 +679,63 @@
|
||||
"general": "Général",
|
||||
"generating": "Génération",
|
||||
"go_to_receive": "Aller à Recevoir",
|
||||
"grpa_current_block_paren": "(Actuel : %d)",
|
||||
"grpa_days_ago": "il y a %lld jours",
|
||||
"grpa_dbg_addrman": "Suivi et gestion des adresses des pairs",
|
||||
"grpa_dbg_alert": "Messages du système d'alerte",
|
||||
"grpa_dbg_bench": "Chronométrage des performances des opérations",
|
||||
"grpa_dbg_coindb": "Opérations de lecture/écriture de la base de données des pièces",
|
||||
"grpa_dbg_db": "Opérations Berkeley DB",
|
||||
"grpa_dbg_estimatefee": "Algorithme d'estimation des frais",
|
||||
"grpa_dbg_http": "Activité du serveur RPC HTTP",
|
||||
"grpa_dbg_libevent": "Bibliothèque réseau Libevent",
|
||||
"grpa_dbg_lock": "Débogage de la contention des verrous",
|
||||
"grpa_dbg_mempool": "Activité du pool mémoire des transactions",
|
||||
"grpa_dbg_net": "Connexions et messages réseau",
|
||||
"grpa_dbg_paymentdisclosure": "Protocole de divulgation de paiement",
|
||||
"grpa_dbg_pow": "Activité de minage par preuve de travail",
|
||||
"grpa_dbg_proxy": "Connexions proxy SOCKS5",
|
||||
"grpa_dbg_prune": "Opérations d'élagage des blocs",
|
||||
"grpa_dbg_rand": "Génération de nombres aléatoires",
|
||||
"grpa_dbg_reindex": "Progression de la réindexation de la blockchain",
|
||||
"grpa_dbg_rpc": "Traitement des commandes RPC",
|
||||
"grpa_dbg_selectcoins": "Sélection des pièces pour les transactions",
|
||||
"grpa_dbg_tor": "Intégration de Tor et informations de circuit",
|
||||
"grpa_dbg_zmq": "Système de notification ZeroMQ",
|
||||
"grpa_dbg_zrpc": "Opérations RPC protégées (z-addr)",
|
||||
"grpa_enter_private_key_to_import": "Saisissez une clé privée à importer.",
|
||||
"grpa_error_prefix": "Erreur : ",
|
||||
"grpa_hr_ago": "il y a %lld h",
|
||||
"grpa_invalid_response_from_daemon": "Réponse invalide du démon",
|
||||
"grpa_invalid_suffix": " (invalide)",
|
||||
"grpa_min_ago": "il y a %lld min",
|
||||
"grpa_sec_ago": "il y a %lld s",
|
||||
"grpa_seed_demo_chat": "Chat de démonstration seed",
|
||||
"grpa_showing_first_100_of": "... affichage des 100 premiers sur %d",
|
||||
"grpa_tab_about": "À propos",
|
||||
"grpa_tab_appearance": "Apparence",
|
||||
"grpa_tab_backup_data": "Sauvegarde et données",
|
||||
"grpa_tab_chat": "Chat",
|
||||
"grpa_tab_explorer": "Explorateur",
|
||||
"grpa_tab_node_security": "Nœud et sécurité",
|
||||
"grpa_tab_wallet": "Portefeuille",
|
||||
"grpa_unexpected_getblockhash_result": "résultat getblockhash inattendu",
|
||||
"grpb_copy": "Copier",
|
||||
"grpb_max": "Max",
|
||||
"grpb_new_badge_suffix": " [NOUVEAU]",
|
||||
"grpb_preview_msg_payment_through": "Le paiement est-il passé ? 🙂",
|
||||
"grpb_preview_msg_sending_rest": "J'envoie le reste maintenant 👍",
|
||||
"grpb_preview_msg_yep_confirmed": "Oui — je viens de confirmer ✅",
|
||||
"grpb_selected_suffix": "\n(sélectionné)",
|
||||
"grpb_tooltip_address_balance": "%s\nSolde : %.8f %s%s",
|
||||
"grpb_undo_clear": "Annuler l'effacement",
|
||||
"grpc_benchmark_inconclusive": "Benchmark non concluant : aucun échantillon de taux de hachage n'a été enregistré. Vérifiez la connexion au pool et réessayez.",
|
||||
"grpc_benchmark_takes_secs": "Le benchmark prend environ %d s et interrompt le minage. Cliquez de nouveau pour démarrer.",
|
||||
"grpc_bootstrap_failed": "Échec de l'amorçage",
|
||||
"grpc_bootstrap_not_initialized": "Amorçage non initialisé",
|
||||
"grpc_hashrate_fee": "%s %s%% de frais",
|
||||
"grpc_key_not_available": "Clé non disponible pour cette adresse",
|
||||
"grpc_na": "N/D",
|
||||
"height": "Hauteur",
|
||||
"help": "Aide",
|
||||
"hidden_tag": " (masqué)",
|
||||
@@ -1240,6 +1383,45 @@
|
||||
"screenshot_sweep_full": "Balayage complet de l'interface",
|
||||
"search_icons": "Rechercher des icônes...",
|
||||
"search_placeholder": "Rechercher...",
|
||||
"sec_changing_passphrase": "Modification de la phrase secrète...",
|
||||
"sec_changing_pin": "Modification du PIN...",
|
||||
"sec_couldnt_lock_wallet": "Impossible de verrouiller le portefeuille — il reste déverrouillé. Vérifiez la connexion au démon.",
|
||||
"sec_encrypted_backup_suffix": "\nSauvegarde chiffrée : wallet.dat.encrypted.bak",
|
||||
"sec_encrypting_wallet": "Chiffrement du portefeuille...",
|
||||
"sec_encryption_did_not_complete": "Le chiffrement du portefeuille ne s'est pas terminé — votre portefeuille N'est PAS chiffré. Ouvrez les Paramètres pour terminer le chiffrement.",
|
||||
"sec_encryption_failed_prefix": "Échec du chiffrement : ",
|
||||
"sec_failed_prefix": "Échec : ",
|
||||
"sec_failed_to_create_vault": "Échec de la création du coffre",
|
||||
"sec_importing_keys_rescanning": "Importation des clés et nouvelle analyse de la blockchain — le portefeuille reste utilisable pendant l'opération",
|
||||
"sec_incorrect_current_pin": "PIN actuel incorrect",
|
||||
"sec_incorrect_passphrase_decrypt": "Phrase secrète incorrecte",
|
||||
"sec_incorrect_passphrase_pin_setup": "Phrase secrète incorrecte",
|
||||
"sec_incorrect_pin_remove": "PIN incorrect",
|
||||
"sec_internal_error_change_pin": "Erreur interne",
|
||||
"sec_internal_error_remove_pin": "Erreur interne",
|
||||
"sec_mode_passphrase": " Phrase secrète",
|
||||
"sec_not_connected_to_daemon": "Non connecté au démon",
|
||||
"sec_not_connected_to_daemon_pin": "Non connecté au démon",
|
||||
"sec_passphrase_changed_successfully": "Phrase secrète modifiée avec succès",
|
||||
"sec_pin_changed_successfully": "PIN modifié avec succès",
|
||||
"sec_pin_removed": "PIN supprimé",
|
||||
"sec_pin_set_successfully": "PIN défini avec succès",
|
||||
"sec_restart_daemon_for_encryption": "Veuillez redémarrer votre démon pour que le chiffrement prenne effet.",
|
||||
"sec_too_many_attempts_wait": "Trop de tentatives. Patientez %.0f secondes...",
|
||||
"sec_total_elapsed_fmt": "Temps total écoulé : %dm %02ds",
|
||||
"sec_unlock_button": "Déverrouiller",
|
||||
"sec_unlock_failed_prefix": "Échec du déverrouillage : ",
|
||||
"sec_unlocking_fmt": "Déverrouillage%s",
|
||||
"sec_use_passphrase_instead": "Utiliser une phrase secrète",
|
||||
"sec_use_pin_instead": "Utiliser un PIN",
|
||||
"sec_verifying_passphrase": "Vérification de la phrase secrète...",
|
||||
"sec_verifying_pin": "Vérification du PIN...",
|
||||
"sec_wallet_decrypted_all_keys_imported": "Portefeuille déchiffré avec succès ! Toutes les clés ont été importées.",
|
||||
"sec_wallet_encrypted_and_pin_set": "Portefeuille chiffré et PIN défini",
|
||||
"sec_wallet_encrypted_but_pin_vault_failed": "Portefeuille chiffré mais échec du coffre PIN",
|
||||
"sec_wallet_encrypted_restarting_daemon": "Portefeuille chiffré. Redémarrage du démon...",
|
||||
"sec_wallet_encrypted_successfully": "Portefeuille chiffré avec succès",
|
||||
"sec_wallet_locked_title": "Portefeuille verrouillé",
|
||||
"security": "SÉCURITÉ",
|
||||
"seed_backup_button": "Phrase de récupération",
|
||||
"seed_backup_close": "Fermer",
|
||||
@@ -1461,6 +1643,17 @@
|
||||
"sweep_to": "Balayé vers :",
|
||||
"sweep_toggle": "Balayer vers mon portefeuille (ne pas conserver la clé)",
|
||||
"sweep_tx": "Transaction :",
|
||||
"swin_connection_failed": "Échec de la connexion : ",
|
||||
"swin_connection_successful": "Connexion réussie !\nVersion de dragonxd : ",
|
||||
"swin_invalid_suffix": " (invalide)",
|
||||
"swin_no_history_file_found": "Aucun fichier d'historique trouvé",
|
||||
"swin_rescan_failed": "Échec de la nouvelle analyse : ",
|
||||
"swin_rescan_started_from_block": "Nouvelle analyse démarrée à partir du bloc ",
|
||||
"swin_rescan_to": " à ",
|
||||
"swin_rpc_client_not_initialized": "Client RPC non initialisé",
|
||||
"swin_settings_saved": "Paramètres enregistrés",
|
||||
"swin_theme_list_refreshed": "Liste des thèmes actualisée",
|
||||
"swin_ztx_history_cleared": "Historique des transactions Z effacé",
|
||||
"switch_corrupt_body": "Ce portefeuille semble corrompu — le nœud n'a pas pu l'ouvrir. Restaurez-le depuis une sauvegarde, recréez-le ou tentez de le réparer.",
|
||||
"switch_corrupt_repair": "Tenter une réparation (salvage)",
|
||||
"switch_progress_background": "Continuer en arrière-plan",
|
||||
|
||||
Reference in New Issue
Block a user