From 8cf4cf9a928133fe4c3fcd69217289a9454224e7 Mon Sep 17 00:00:00 2001 From: Julien Marcon Date: Mon, 6 Jul 2026 16:57:12 +0200 Subject: [PATCH] Add French (fr_fr) translation --- .../main/resources/assets/sfm/lang/fr_fr.json | 279 ++++++++++++++++++ 1 file changed, 279 insertions(+) create mode 100644 platform/minecraft/src/main/resources/assets/sfm/lang/fr_fr.json diff --git a/platform/minecraft/src/main/resources/assets/sfm/lang/fr_fr.json b/platform/minecraft/src/main/resources/assets/sfm/lang/fr_fr.json new file mode 100644 index 000000000..cc0cf291f --- /dev/null +++ b/platform/minecraft/src/main/resources/assets/sfm/lang/fr_fr.json @@ -0,0 +1,279 @@ +{ + "block.sfm.buffer": "Tampon de ressources", + "block.sfm.cable": "Câble d'inventaire", + "block.sfm.cable_facade": "Façade de câble d'inventaire", + "block.sfm.fancy_cable": "Câble d'inventaire orné", + "block.sfm.fancy_cable_facade": "Façade de câble d'inventaire orné", + "block.sfm.manager": "Gestionnaire d'usine", + "block.sfm.printing_press": "Presse à imprimer", + "block.sfm.printing_press.tooltip": "Placez avec un espace vide sous un piston orienté vers le bas. Étendez le piston pour l'utiliser.", + "block.sfm.test_barrel": "Tonneau de test", + "block.sfm.test_barrel_tank": "Réservoir du tonneau de test", + "block.sfm.tough_cable": "Câble d'inventaire renforcé", + "block.sfm.tough_cable.tooltip": "Résiste aux explosions. Peut être façadé avec des blocs plus résistants.", + "block.sfm.tough_cable_facade": "Façade de câble d'inventaire renforcé", + "block.sfm.tough_fancy_cable": "Câble d'inventaire orné renforcé", + "block.sfm.tough_fancy_cable_facade": "Façade de câble d'inventaire orné renforcé", + "block.sfm.tunnelled_cable": "Câble d'inventaire à tunnel", + "block.sfm.tunnelled_cable.tooltip": "Transmet les capacités vers le côté opposé.", + "block.sfm.tunnelled_cable_facade": "Façade de câble d'inventaire à tunnel", + "block.sfm.tunnelled_fancy_cable": "Câble d'inventaire orné à tunnel", + "block.sfm.tunnelled_fancy_cable_facade": "Façade de câble d'inventaire orné à tunnel", + "block.sfm.tunnelled_manager": "Gestionnaire d'usine à tunnel", + "block.sfm.tunnelled_manager.tooltip": "Transmet les capacités vers le côté opposé.", + "block.sfm.water_tank": "Réservoir d'eau", + "block.sfm.water_tank.tooltip.1": "Nécessite deux sources d'eau adjacentes.", + "block.sfm.water_tank.tooltip.2": "Plus efficace lorsqu'il est également adjacent à d'autres réservoirs d'eau actifs.", + "chat.sfm.config_update_and_sync_result.failed_to_find": "Impossible de trouver le fichier toml de configuration SFM.", + "chat.sfm.config_update_and_sync_result.internal_failure": "Une erreur s'est produite lors de la mise à jour de la configuration SFM, impossible de savoir si des modifications ont été appliquées. Vérifiez les journaux du serveur.", + "chat.sfm.config_update_and_sync_result.invalid_config": "La configuration SFM fournie était invalide, aucune modification n'a été appliquée.", + "chat.sfm.config_update_and_sync_result.success": "Configuration SFM mise à jour avec succès.", + "chat.sfm.manager.cable_network_rebuild.failed_fallback": "Échec de la reconstruction du réseau de câbles au gestionnaire %s ; tous les réseaux de câbles ont été purgés à la place", + "chat.sfm.manager.cable_network_rebuild.success": "Réseau de câbles reconstruit au gestionnaire %s", + "container.sfm.manager": "Gestionnaire d'usine", + "container.sfm.test_barrel_tank": "Réservoir du tonneau de test", + "gui.jei.category.sfm.falling_anvil": "Enclume qui tombe", + "gui.jei.category.sfm.falling_anvil.consumed": "Est consommée", + "gui.jei.category.sfm.falling_anvil.not_consumed": "Non consommée", + "gui.jei.category.sfm.printing_press": "Presse à imprimer", + "gui.sfm.advanced.tooltip.hint": "Maintenez %s pour en savoir plus.", + "gui.sfm.confirm.funny.no.1": "Non, j'ai changé d'avis", + "gui.sfm.confirm.funny.no.2": "Sainte guacamole, non", + "gui.sfm.confirm.funny.no.3": "non non non non non", + "gui.sfm.confirm.funny.no.4": "Nan, pas aujourd'hui", + "gui.sfm.confirm.funny.no.5": "ANNULER ANNULER ANNULER", + "gui.sfm.confirm.funny.no.6": "Laisse tomber", + "gui.sfm.confirm.funny.yes.1": "Ouais, bien sûr, pourquoi pas.", + "gui.sfm.confirm.funny.yes.2": "Bien sûr, qu'est-ce qui pourrait mal tourner.", + "gui.sfm.confirm.funny.yes.3": "Ouaip, vas-y.", + "gui.sfm.confirm.funny.yes.4": "Fonce.", + "gui.sfm.confirm.funny.yes.5": "lol vas-y", + "gui.sfm.confirm.funny.yes.6": "Appliquer la modification.", + "gui.sfm.container_inspector.container_slot_count": "Emplacements du conteneur : %d", + "gui.sfm.container_inspector.inventory_slot_count": "Emplacements de l'inventaire : %d", + "gui.sfm.container_inspector.mekanism_null_direction_warning": "LES BLOCS MEKANISM SONT EN LECTURE SEULE DEPUIS LA DIRECTION NULLE !!!!!!", + "gui.sfm.container_inspector.notice.1": "Les emplacements de l'interface ne correspondent pas toujours aux emplacements d'automatisation !!!", + "gui.sfm.container_inspector.notice.2": "Appuyez sur %s pour activer/désactiver cette superposition.", + "gui.sfm.container_inspector.show_exports_button": "Inspecteur d'exportation", + "gui.sfm.disk.tooltip.edit_in_hand": "Vous pouvez faire un clic droit sur un disque en main pour l'éditer en dehors d'un gestionnaire.", + "gui.sfm.exit_without_saving_confirm.message": "Êtes-vous sûr de vouloir abandonner votre travail ?", + "gui.sfm.exit_without_saving_confirm.no_button": "Continuer l'édition", + "gui.sfm.exit_without_saving_confirm.title": "Quitter sans enregistrer ?", + "gui.sfm.exit_without_saving_confirm.yes_button": "Quitter sans enregistrer", + "gui.sfm.facade_confirm_apply.message": "%d états de façade différents sur %d blocs seront écrasés.", + "gui.sfm.facade_confirm_apply.title": "Êtes-vous sûr de vouloir mettre à jour l'apparence de la façade ?", + "gui.sfm.facade_confirm_change_world_block.message": "%d blocs changeront de forme, leurs façades seront conservées.", + "gui.sfm.facade_confirm_change_world_block.title": "Êtes-vous sûr de vouloir changer le bloc du monde utilisé pour la façade ?", + "gui.sfm.facade_confirm_clear.message": "%d états de façade différents sur %d blocs seront effacés du monde.", + "gui.sfm.facade_confirm_clear.title": "Êtes-vous sûr de vouloir effacer ces façades ?", + "gui.sfm.item_inspector.copied_to_clipboard": "{} caractères copiés dans le presse-papiers !", + "gui.sfm.label_gun.button.toggle_label_view": "Changer la vue des étiquettes", + "gui.sfm.label_gun.clear_button": "Effacer", + "gui.sfm.label_gun.label_button": "%s (%d)", + "gui.sfm.label_gun.label_edit_placeholder": "Rechercher ou saisir une nouvelle étiquette", + "gui.sfm.label_gun.placeholder": "Étiquette", + "gui.sfm.label_gun.prune_button": "Nettoyer", + "gui.sfm.logs.button.clear_logs": "Effacer les journaux", + "gui.sfm.logs.button.clear_logs.packet_received": "Journaux effacés", + "gui.sfm.logs.button.copy_logs": "Copier les journaux", + "gui.sfm.logs.button.copy_logs.tooltip": "Maj-clic pour le format brut", + "gui.sfm.logs.empty_capability": "Résultat de capacité vide reçu pour %s %s direction=%s", + "gui.sfm.logs.missing_adjacent_cable": "Aucun câble adjacent trouvé pour %s", + "gui.sfm.logs.no_content": "Ohé, le monde !\nChangez le niveau de journalisation à l'aide des boutons en haut de cet écran.\nLes niveaux de journalisation trace, debug et info seront désactivés après une seule exécution du programme.\nLa journalisation peut ralentir l'exécution des instructions.\nUtilisez le bouton de copie pour faciliter la visualisation dans un autre éditeur.", + "gui.sfm.logs.title": "Journaux", + "gui.sfm.manager.button.copy_to_clipboard": "Copier dans le presse-papiers", + "gui.sfm.manager.button.discord": "Discord", + "gui.sfm.manager.button.paste_clipboard": "Coller depuis le presse-papiers", + "gui.sfm.manager.button.rebuild": "Reconstruire le réseau de câbles", + "gui.sfm.manager.button.reset": "Réinitialiser", + "gui.sfm.manager.button.server_config": "Voir la config du serveur", + "gui.sfm.manager.button.view_examples": "Voir les exemples", + "gui.sfm.manager.button.view_examples.tooltip": "Appuyez sur Ctrl+Maj+E pour voir les exemples.", + "gui.sfm.manager.button.view_logs": "Voir les journaux", + "gui.sfm.manager.button.warning.tooltip": "Cliquez pour copier le code avec les avertissements et les erreurs.\nMaj-clic pour tenter de corriger les avertissements.", + "gui.sfm.manager.button.warning.tooltip.read_only": "Cliquez pour copier le code avec les avertissements et les erreurs.", + "gui.sfm.manager.edit_button": "Éditer", + "gui.sfm.manager.edit_button.tooltip": "Appuyez sur %s pour éditer.", + "gui.sfm.manager.hovered_tick_time": "Temps de tick survolé : %s ms", + "gui.sfm.manager.paste_confirm_screen.message": "Êtes-vous sûr de vouloir écraser ce disque ?", + "gui.sfm.manager.paste_confirm_screen.no_button": "Laisser tomber, ne rien changer", + "gui.sfm.manager.paste_confirm_screen.title": "Coller depuis le presse-papiers ?", + "gui.sfm.manager.paste_confirm_screen.yes_button": "Coller le presse-papiers", + "gui.sfm.manager.peak_tick_time": "Temps de tick maximal : %s ms", + "gui.sfm.manager.reset_confirm_screen.message": "Êtes-vous sûr de vouloir réinitialiser ce disque ?", + "gui.sfm.manager.reset_confirm_screen.no_button": "Laisser tomber, ne rien changer", + "gui.sfm.manager.reset_confirm_screen.title": "Réinitialiser le disque ?", + "gui.sfm.manager.reset_confirm_screen.yes_button": "Effacer le programme et les étiquettes", + "gui.sfm.manager.state": "État : %s", + "gui.sfm.manager.state.invalid_program": "programme invalide", + "gui.sfm.manager.state.no_disk": "disque manquant", + "gui.sfm.manager.state.no_program": "aucun programme", + "gui.sfm.manager.state.running": "en cours d'exécution", + "gui.sfm.manager.status.fix": "Correction des problèmes !", + "gui.sfm.manager.status.loaded_clipboard": "Chargé depuis le presse-papiers !", + "gui.sfm.manager.status.rebuild": "Reconstruction du cache !", + "gui.sfm.manager.status.reset": "Programme et étiquettes réinitialisés !", + "gui.sfm.manager.status.saved_clipboard": "Enregistré dans le presse-papiers !", + "gui.sfm.manager.tooltip.paste": "Appuyez sur Ctrl+V pour coller.", + "gui.sfm.manager.tooltip.reset": "Efface TOUTES les données du disque.", + "gui.sfm.program_editor_config.intellisense": "IntelliSense", + "gui.sfm.program_editor_config.intellisense.advanced": "Avancé", + "gui.sfm.program_editor_config.intellisense.basic": "Basique", + "gui.sfm.program_editor_config.intellisense.off": "Désactivé", + "gui.sfm.program_editor_config.line_numbers": "Numéros de ligne", + "gui.sfm.program_editor_config.preferred_editor": "Éditeur préféré", + "gui.sfm.program_editor_config.preferred_editor.v1": "V1 (par défaut)", + "gui.sfm.program_editor_config.preferred_editor.v2": "V2", + "gui.sfm.program_editor_config.title": "Configuration de l'éditeur de programme", + "gui.sfm.program_template_picker.warning1": "Cliquer sur « Terminé » sur l'écran suivant écrasera votre programme existant !", + "gui.sfm.program_template_picker.warning2": "Appuyez sur pour annuler à la place.", + "gui.sfm.remove_active_label_confirm.message": "Êtes-vous sûr de vouloir retirer l'étiquette « %s » de %d blocs ?", + "gui.sfm.remove_active_label_confirm.title": "Retirer l'étiquette : %s", + "gui.sfm.remove_all_labels_confirm.message": "Êtes-vous sûr de vouloir retirer %d étiquettes de %d blocs ?", + "gui.sfm.remove_all_labels_confirm.title": "Retirer TOUTES les étiquettes", + "gui.sfm.save_changes_confirm.message": "Voulez-vous enregistrer avant de quitter ?", + "gui.sfm.save_changes_confirm.no_button": "Continuer l'édition", + "gui.sfm.save_changes_confirm.title": "Enregistrer les modifications", + "gui.sfm.save_changes_confirm.yes_button": "Écraser le disque", + "gui.sfm.text_editor.config_button.tooltip": "Ouvrir la configuration de l'éditeur", + "gui.sfm.text_editor.done_button.tooltip": "Maj+Entrée pour valider", + "gui.sfm.text_editor.v1.title": "Éditeur de texte", + "gui.sfm.text_editor.v2.title": "Éditeur de texte", + "gui.sfm.title.intellisense_pick_list": "Liste de sélection IntelliSense", + "gui.sfm.title.labelgun": "Pistolet à étiquettes", + "gui.sfm.title.program_template_picker": "Sélecteur de modèle de programme", + "item.sfm.disk": "Disque de programme du gestionnaire d'usine", + "item.sfm.disk.tooltip.label_section.entry": " - %s : %d blocs", + "item.sfm.disk.tooltip.label_section.header": "Étiquettes", + "item.sfm.form": "Forme d'impression", + "item.sfm.labelgun": "Pistolet à étiquettes", + "item.sfm.labelgun.chat.pulled": "Étiquettes récupérées depuis le gestionnaire. Relâchez la touche modificatrice de récupération du pistolet à étiquettes (%s) pour envoyer à la place.", + "item.sfm.labelgun.chat.pushed": "Étiquettes envoyées au gestionnaire. Maintenez la touche modificatrice de récupération du pistolet à étiquettes (%s) pour récupérer à la place.", + "item.sfm.labelgun.chat.skipped_blocks": "%d blocs ignorés car non reliés à des câbles", + "item.sfm.labelgun.tooltip.clear_reminder": "%s + %s un bloc pour en retirer les étiquettes.", + "item.sfm.labelgun.tooltip.contiguous_reminder": "Maintenez %s pour appliquer les modifications aux blocs contigus reliés à des câbles.", + "item.sfm.labelgun.tooltip.cycle_view_reminder": "Appuyez sur %s pour changer la vue des étiquettes.", + "item.sfm.labelgun.tooltip.gui_reminder": "%s dans le vide pour ouvrir l'interface.", + "item.sfm.labelgun.tooltip.next_reminder": "Appuyez sur %s pour sélectionner l'étiquette suivante.", + "item.sfm.labelgun.tooltip.pick_reminder": "%s + %s un bloc pour en récupérer l'étiquette active.", + "item.sfm.labelgun.tooltip.previous_reminder": "Appuyez sur %s pour sélectionner l'étiquette précédente.", + "item.sfm.labelgun.tooltip.pull_reminder": "%s + %s un gestionnaire d'usine pour en récupérer les étiquettes.", + "item.sfm.labelgun.tooltip.push_reminder": "%s un gestionnaire d'usine pour lui envoyer les étiquettes.", + "item.sfm.labelgun.tooltip.scroll_reminder": "%s + molette de la souris pour sélectionner l'étiquette suivante/précédente.", + "item.sfm.labelgun.tooltip.target_manager_reminder": "%s + %s pour étiqueter le gestionnaire d'usine lui-même.", + "item.sfm.labelgun.tooltip.toggle_label_reminder": "%s un bloc pour activer/désactiver l'étiquette active dessus.", + "item.sfm.labelgun.with_label": "Pistolet à étiquettes : « %s »", + "item.sfm.network_tool": "Outil de réseau", + "item.sfm.network_tool.tooltip.1": "Affiche les câbles à travers les murs lorsqu'il est en main.", + "item.sfm.network_tool.tooltip.2": "Clic droit sur une face de bloc pour voir les informations de diagnostic.", + "item.sfm.network_tool.tooltip.3": "Vous n'en avez peut-être pas besoin, n'oubliez pas que vous pouvez appuyer sur %s dans un inventaire pour activer/désactiver l'inspecteur.", + "item.sfm.network_tool.tooltip.4": "Placez-le dans la main secondaire avec un bloc en main principale, puis faites un clic droit sur un câble pour définir la façade.", + "item.sfm.network_tool.tooltip.5": "Ctrl-clic pour façader de manière contiguë.", + "item.sfm.network_tool.tooltip.6": "Alt-clic pour façader les blocs correspondants dans tout le réseau.", + "item.sfm.network_tool.tooltip.7": "Ctrl-alt-clic pour façader tout le réseau.", + "item.sfm.network_tool.tooltip.8": "Maintenez %s et faites un clic droit sur un bloc pour accorder l'outil à cette position.", + "item.sfm.xp_goop": "Gelée d'expérience", + "item.sfm.xp_shard": "Éclat d'expérience", + "item_group.sfm": "Super Factory Manager", + "key.categories.sfm": "Super Factory Manager", + "key.sfm.container_inspector.activation_key": "Activer/désactiver l'inspecteur de conteneur", + "key.sfm.item_inspector.activation_key": "(WIP) Copier l'objet survolé dans le presse-papiers", + "key.sfm.label_gun.clear_modifier": "Pistolet à étiquettes : modificateur d'effacement", + "key.sfm.label_gun.contiguous_modifier": "Pistolet à étiquettes : modificateur de contiguïté", + "key.sfm.label_gun.next_label": "Pistolet à étiquettes : étiquette suivante", + "key.sfm.label_gun.open_gui": "Ouvrir l'interface du pistolet à étiquettes", + "key.sfm.label_gun.pick_block_modifier": "Pistolet à étiquettes : modificateur de sélection de bloc", + "key.sfm.label_gun.previous_label": "Pistolet à étiquettes : étiquette précédente", + "key.sfm.label_gun.pull_modifier": "Pistolet à étiquettes : modificateur de récupération", + "key.sfm.label_gun.scroll_modifier": "Pistolet à étiquettes : modificateur de défilement", + "key.sfm.label_gun.target_manager_modifier": "Pistolet à étiquettes : modificateur de ciblage du gestionnaire", + "key.sfm.manager.text_editor": "Écran du gestionnaire - Ouvrir l'éditeur de texte", + "key.sfm.more_info": "Maintenir pour plus d'informations", + "key.sfm.text_editor.accept_intellisense": "Éditeur de texte - Accepter la suggestion IntelliSense", + "key.sfm.title_screen.text_editor": "Écran titre - Ouvrir l'éditeur de texte", + "key.sfm.toggle_label_view_key": "Changer la vue du pistolet à étiquettes", + "key.sfm.toggle_network_tool_overlay": "Activer/désactiver la superposition de l'outil de réseau", + "log.sfm.cable_network.body": "%s", + "log.sfm.cable_network.footer": "=============================", + "log.sfm.cable_network.header.1": "======= Réseau de câbles =======", + "log.sfm.cable_network.header.2": "Positions des câbles :", + "log.sfm.cable_network.header.3": "Positions des capacités :", + "log.sfm.capability_cache.hit": "Cache de capacité : SUCCÈS pour %s %s direction=%s", + "log.sfm.capability_cache.hit_invalid": "Cache de capacité : SUCCÈS mais NON PRÉSENT pour %s %s direction=%s", + "log.sfm.capability_cache.miss": "Cache de capacité : ÉCHEC pour %s %s direction=%s", + "log.sfm.label_position_holder.body": "%s", + "log.sfm.label_position_holder.footer": "=============================", + "log.sfm.label_position_holder.header": "=== Support de position d'étiquette ===", + "log.sfm.level_updated": "Niveau de journalisation mis à jour vers %s", + "log.sfm.manager.cable_network_rebuild": "L'utilisateur a effectué une reconstruction du réseau de câbles", + "log.sfm.program.context": "Contexte initial du programme : %s", + "log.sfm.program.tick": "DÉBUT DU TICK DU PROGRAMME", + "log.sfm.program.tick.redstone_count": "Tick du programme avec %d impulsions de redstone non traitées.", + "log.sfm.program.voided_resources": "%s", + "log.sfm.resource_type.get_capabilities.begin": "Collecte des capacités de type %s (%s) selon les étiquettes %s", + "log.sfm.resource_type.get_capabilities.not_present": "Capacité %s %s direction=%s non présente", + "log.sfm.resource_type.get_capabilities.present": "Capacité %s %s direction=%s présente", + "log.sfm.statement.tick.forget": "OUBLIER %s", + "log.sfm.statement.tick.if.false": "FAUX : %s", + "log.sfm.statement.tick.if.true": "VRAI : %s", + "log.sfm.statement.tick.input": "%s", + "log.sfm.statement.tick.io.gather_slots": "Collecte des emplacements pour l'instruction E/S \n```\n%s\n```\n", + "log.sfm.statement.tick.io.gather_slots.cache_hit": "Succès de cache - cette instruction a déjà collecté ses emplacements", + "log.sfm.statement.tick.io.gather_slots.cache_miss": "Échec de cache d'instruction - c'est la première fois que cette instruction est collectée", + "log.sfm.statement.tick.io.gather_slots.created": "Emplacement %d - suivi - %s - %s", + "log.sfm.statement.tick.io.gather_slots.each": "Mot-clé EACH utilisé - les suivis seront propres à chaque bloc", + "log.sfm.statement.tick.io.gather_slots.not_each": "Mot-clé EACH non utilisé - les suivis seront partagés entre les blocs", + "log.sfm.statement.tick.io.gather_slots.not_in_range": "Emplacement %d - hors de portée", + "log.sfm.statement.tick.io.gather_slots.range": "Collecte des emplacements dans l'ensemble de portée : %s", + "log.sfm.statement.tick.io.gather_slots.resource_types": "Collecte pour : %s (%s)", + "log.sfm.statement.tick.io.gather_slots.should_not_create": "Emplacement %d - ignoré - %s", + "log.sfm.statement.tick.io.move_to.begin": "Début du déplacement de %s vers %s", + "log.sfm.statement.tick.io.move_to.destination_tracker_reject": "Le suivi de destination a rejeté le transfert, ignoré", + "log.sfm.statement.tick.io.move_to.end": "%d %s déplacés - source=%s, destination=%s", + "log.sfm.statement.tick.io.move_to.extracted": "%d extrait(s) de l'emplacement %d", + "log.sfm.statement.tick.io.move_to.extracted_nothing": "rien n'a été extrait, cet emplacement d'entrée est marqué comme terminé", + "log.sfm.statement.tick.io.move_to.retention_obligation": "Engagement de laisser %d dans l'emplacement source, il reste %d à laisser", + "log.sfm.statement.tick.io.move_to.retention_obligation_no_move": "Rien à déplacer après les obligations de rétention, l'emplacement source est marqué comme terminé et ignoré", + "log.sfm.statement.tick.io.move_to.stack_limit_no_move": "Maximum transférable dest=%d, source=%d, limite de pile=%d ; nouveau toMove=%d", + "log.sfm.statement.tick.io.move_to.type_mismatch": "Incompatibilité de type, ignoré", + "log.sfm.statement.tick.io.move_to.zero_simulated_movement": "Reste de %d obtenu après simulation d'insertion de %d potentiels (0 à déplacer), ignoré", + "log.sfm.statement.tick.io.move_to.zero_to_move": "toMove=0, ignoré", + "log.sfm.statement.tick.output": "%s", + "log.sfm.statement.tick.output.discovered_input_slot_count": "%d emplacements d'entrée découverts", + "log.sfm.statement.tick.output.discovered_output_slot_count": "%d emplacements de sortie découverts", + "log.sfm.statement.tick.output.short_circuit_no_input_slots": "Aucun emplacement d'entrée, ignoré", + "log.sfm.statement.tick.output.short_circuit_no_output_slots": "Aucun emplacement de sortie, ignoré", + "log.sfm.statement.tick.trigger": "DÉCLENCHÉ DEPUIS %s", + "mod.name": "Super Factory Manager", + "program.sfm.compile_begin": "Compilation du programme depuis le disque.", + "program.sfm.error.compile_failed": "Échec de la compilation.", + "program.sfm.error.compile_failed_with_errors": "Échec de la compilation avec %d erreurs.", + "program.sfm.error.compile_success_with_warnings": "« %s » compilé avec succès avec %d avertissements.", + "program.sfm.error.disallowed_resource_type": "Le programme référence un type de ressource non autorisé « %s »", + "program.sfm.error.literal": "%s", + "program.sfm.error.malformed_resource_type": "Le programme a un type de ressource malformé « %s ».\nRappel : les types de ressources doivent être des littéraux, pas des jokers.", + "program.sfm.error.unknown_resource_type": "Le programme référence un type de ressource inconnu « %s »", + "program.sfm.reminders.push_labels": "Avez-vous pensé à envoyer vos étiquettes avec le pistolet à étiquettes ?", + "program.sfm.tick.time": "Le tick du programme a pris %.2f ms", + "program.sfm.tick.time_taken.statement": "Le tick de l'instruction du programme a pris %.2f ms :\n```\n%s\n```\n", + "program.sfm.tick.time_taken.trigger": "Le tick du déclencheur du programme a pris %.2f ms :\n```\n%s\n```\n", + "program.sfm.warnings.adjacent_but_disconnected_label": "L'étiquette « %s » est assignée dans le monde à %s et est reliée par des câbles, mais n'est pas détectée comme un inventaire valide.", + "program.sfm.warnings.disconnected_label": "L'étiquette « %s » est assignée dans le monde à %s mais n'est pas reliée par des câbles.", + "program.sfm.warnings.each_without_pattern": "EACH utilisé sans motif, instruction %s", + "program.sfm.warnings.no_slots": "L'instruction ne correspond à aucun emplacement : instruction « %s » à %s", + "program.sfm.warnings.no_viable_input_slots": "Aucun emplacement ne permet l'extraction : instruction « %s » à %s", + "program.sfm.warnings.no_viable_output_slots": "Aucun emplacement ne permet l'insertion : instruction « %s » à %s", + "program.sfm.warnings.output_label_not_found_in_inputs": "L'instruction « %s » à %s utilise le type de ressource « %s » qui n'a aucune instruction d'entrée correspondante.", + "program.sfm.warnings.round_robin_smelly_count": "Le tourniquet par étiquette devrait être utilisé avec plusieurs étiquettes, instruction %s", + "program.sfm.warnings.round_robin_smelly_each": "Le tourniquet par bloc ne devrait pas être utilisé avec EACH, instruction %s", + "program.sfm.warnings.too_many_conditions": "Trop de conditions pour la simulation, certains avertissements du linter peuvent être manqués.", + "program.sfm.warnings.undefined_label": "L'étiquette « %s » est assignée dans le monde mais n'est pas définie dans le code.", + "program.sfm.warnings.unknown_resource_id": "La ressource « %s » n'a pas été trouvée.", + "program.sfm.warnings.unused_input_label": "L'instruction « %s » à %s reçoit « %s » depuis « %s » mais aucune instruction de sortie future ne consomme « %s ».", + "program.sfm.warnings.unused_label": "L'étiquette « %s » est utilisée dans le code mais n'est pas assignée dans le monde.", + "sfm.command.bust_cable_network_cache.success": "Cache du réseau de câbles vidé avec succès.", + "sfm.command.bust_water_network_cache.success": "Cache du réseau d'eau vidé avec succès.", + "sfm.label_gun.view_mode.show_only_active_and_targeted": "Affichage des blocs avec étiquette active. Changer de mode dans l'interface ou avec %s", + "sfm.label_gun.view_mode.show_only_targeted": "Affichage uniquement des étiquettes du bloc ciblé. Changer de mode dans l'interface ou avec %s", + "sfm.network_tool.reminder_overlay": "Activer/désactiver la superposition de l'outil de réseau avec %s" +}