diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index bd6e3efff5..0fb728067c 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -20064,3 +20064,246 @@ msgstr "" #: resources/data/hints.ini: [hint:Avoid warping] msgid "Avoid warping\nDid you know that when printing materials that are prone to warping such as ABS, appropriately increasing the heatbed temperature can reduce the probability of warping?" msgstr "" + +msgid "Entering Paint-on supports" +msgstr "" + +msgid "Leaving Paint-on supports" +msgstr "" + +msgid "Paint-on supports editing" +msgstr "" + +msgid "Entering Brim Ears" +msgstr "" + +msgid "Leaving Brim Ears" +msgstr "" + +msgid "Entering color painting" +msgstr "" + +msgid "Leaving color painting" +msgstr "" + +msgid "Color painting editing" +msgstr "" + +msgid "Entering Paint-on fuzzy skin" +msgstr "" + +msgid "Leaving Paint-on fuzzy skin" +msgstr "" + +msgid "Paint-on fuzzy skin editing" +msgstr "" + +msgid "Entering Cut gizmo" +msgstr "" + +msgid "Leaving Cut gizmo" +msgstr "" + +msgid "Cut gizmo editing" +msgstr "" + +msgid "Entering Measure gizmo" +msgstr "" + +msgid "Leaving Measure gizmo" +msgstr "" + +msgid "Entering Assembly gizmo" +msgstr "" + +msgid "Leaving Assembly gizmo" +msgstr "" + +msgid "Simple settings" +msgstr "" + +msgid "Expert settings" +msgstr "" + +msgid "Type to filter..." +msgstr "" + +msgid "No selected items..." +msgstr "" + +msgid "All items selected..." +msgstr "" + +msgid "No matching items..." +msgstr "" + +msgid "Select visible" +msgstr "" + +msgid "Deselect visible" +msgstr "" + +msgid "Filter selected" +msgstr "" + +msgid "Filter nonSelected" +msgstr "" + +msgid "An unexpected error occurred" +msgstr "" + +msgid "The download has failed" +msgstr "" + +msgid "Can't create file at %1%" +msgstr "" + +msgid "Archive preview" +msgstr "" + +msgid "Open File" +msgstr "" + +msgid "Desktop Integration" +msgstr "" + +msgid "Performing desktop integration failed - Could not find executable." +msgstr "" + +msgid "Beta" +msgstr "" + +msgid "Sending failed, please try again!" +msgstr "" + +msgid "Failed to create the temporary folder." +msgstr "" + +msgid "PresetBundle" +msgstr "" + +msgid "ExportPresetBundle" +msgstr "" + +msgid "Save preset bundle" +msgstr "" + +msgid "Bundle folder does not exist." +msgstr "" + +msgid "Failed to open folder." +msgstr "" + +msgid "Delete selected bundle from folder and all presets loaded from it?" +msgstr "" + +msgid "Delete Bundle" +msgstr "" + +msgid "Failed to remove bundle." +msgstr "" + +msgid "Remove Bundle" +msgstr "" + +msgid "Unsubscribe bundle?" +msgstr "" + +msgid "UnsubscribeBundle" +msgstr "" + +msgid "Failed to unsubscribe bundle." +msgstr "" + +msgid "Unsubscribe Bundle" +msgstr "" + +msgid "The Hostname/IP/URL could not be parsed, please check it and try again." +msgstr "" + +msgid "Could not parse server response." +msgstr "" + +msgid "Connected to CrealityPrint successfully!" +msgstr "" + +msgid "Could not connect to CrealityPrint" +msgstr "" + +msgid "Connection to ElegooLink is working correctly." +msgstr "" + +msgid "Could not connect to ElegooLink" +msgstr "" + +msgid "ElegooLink not detected" +msgstr "" + +msgid "Invalid access code" +msgstr "" + +msgid "CC2 device not detected" +msgstr "" + +msgid "CC2 upload failed" +msgstr "" + +msgid "Upload failed" +msgstr "" + +msgid "Printer returned an error" +msgstr "" + +msgid "Missing system_info in response" +msgstr "" + +msgid "Missing printer serial number in response" +msgstr "" + +msgid "Error parsing response" +msgstr "" + +msgid "Error code: %1%" +msgstr "" + +msgid "Error code not found" +msgstr "" + +msgid "Failed to open file for upload." +msgstr "" + +msgid "Failed to read file chunk for upload." +msgstr "" + +msgid "The file is empty or could not be read." +msgstr "" + +msgid "Failed to calculate file checksum." +msgstr "" + +msgid "The file is lost, please check and try again." +msgstr "" + +msgid "The file is corrupted, please check and try again." +msgstr "" + +msgid "Transmission abnormality, please check and try again." +msgstr "" + +msgid "The file does not match the printer, please check and try again." +msgstr "" + +msgid "Start print timeout" +msgstr "" + +msgid "Start print failed" +msgstr "" + +msgid "Error. Can't get api token for authorization" +msgstr "" + +msgid "Error saving session to file" +msgstr "" + +msgid "Error during file upload" +msgstr "" diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index 2a75ed6efe..80e0be6884 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -108,7 +108,7 @@ msgid "Model:" msgstr "Modèle :" msgid "Serial:" -msgstr "N° de série:" +msgstr "Numéro de série :" msgid "Version:" msgstr "Version :" @@ -135,7 +135,7 @@ msgid "Tool type" msgstr "Type d'outil" msgid "Gap fill" -msgstr "Remplir les espaces" +msgstr "Remplissage des espaces" msgid "Reset direction" msgstr "Réinitialiser la direction" @@ -653,7 +653,7 @@ msgid "Perform cut" msgstr "Effectuer la coupe" msgid "Warning" -msgstr "Alerte" +msgstr "Avertissement" msgid "Invalid connectors detected" msgstr "Connecteurs invalides détectés" @@ -661,14 +661,14 @@ msgstr "Connecteurs invalides détectés" #, c-format, boost-format msgid "%1$d connector is out of cut contour" msgid_plural "%1$d connectors are out of cut contour" -msgstr[0] "Le connecteur %1$d est hors du contour de la coupe" -msgstr[1] "Les connecteurs %1$d sont hors du contour de la coupe" +msgstr[0] "%1$d connecteur est hors du contour de coupe" +msgstr[1] "%1$d connecteurs sont hors du contour de coupe" #, c-format, boost-format msgid "%1$d connector is out of object" msgid_plural "%1$d connectors are out of object" -msgstr[0] "Le connecteur %1$d est en-dehors de l’objet" -msgstr[1] "Les connecteurs %1$d sont en-dehors de l’objet" +msgstr[0] "%1$d connecteur est en dehors de l’objet" +msgstr[1] "%1$d connecteurs sont en dehors de l’objet" msgid "Some connectors are overlapped" msgstr "Certains connecteurs se chevauchent" @@ -805,7 +805,9 @@ msgstr "Angle" msgid "" "Embedded\n" "depth" -msgstr "Profondeur intégrée" +msgstr "" +"Profondeur\n" +"intégrée" msgid "Input text" msgstr "Texte entré" @@ -1668,7 +1670,7 @@ msgstr "Machine" msgid "Configuration package was loaded, but some values were not recognized." msgstr "" -"Le package de configuration a été chargé, mais certaines valeurs n'ont pas " +"Le paquet de configuration a été chargé, mais certaines valeurs n’ont pas " "été reconnues." #, boost-format @@ -1801,7 +1803,7 @@ msgstr "" "Voulez-vous continuer ?" msgid "Remember my choice" -msgstr "Se souvenir de mon choix" +msgstr "Mémoriser mon choix" #, c-format, boost-format msgid "Click to download new version in default browser: %s" @@ -1887,12 +1889,14 @@ msgid "" "You are currently in Stealth Mode. To log into the Cloud, you need to " "disable Stealth Mode first." msgstr "" +"Vous êtes actuellement en mode furtif. Pour vous connecter au cloud, vous " +"devez d’abord désactiver le mode furtif." msgid "Stealth Mode" -msgstr "" +msgstr "Mode furtif" msgid "Quit Stealth Mode" -msgstr "" +msgstr "Quitter le mode furtif" msgid "new or open project file is not allowed during the slicing process!" msgstr "" @@ -1914,20 +1918,31 @@ msgid "" "Pull downloads the cloud copy. Force push overwrites it with your local " "preset." msgstr "" +"Conflit de synchronisation cloud : ce préréglage a une version plus récente " +"dans OrcaCloud.\n" +"Récupérer télécharge la copie du cloud. Forcer l’envoi l’écrase avec votre " +"préréglage local." msgid "" "Cloud sync conflict: a preset with this name already exists in OrcaCloud.\n" "Pull downloads the cloud copy. Force push overwrites it with your local " "preset." msgstr "" +"Conflit de synchronisation cloud : un préréglage de ce nom existe déjà dans " +"OrcaCloud.\n" +"Récupérer télécharge la copie du cloud. Forcer l’envoi l’écrase avec votre " +"préréglage local." msgid "" "Force push will overwrite the cloud copy with your local preset changes.\n" "Do you want to continue?" msgstr "" +"Forcer l’envoi écrasera la copie du cloud avec vos modifications locales du " +"préréglage.\n" +"Voulez-vous continuer ?" msgid "Resolve cloud sync conflict" -msgstr "" +msgstr "Résoudre le conflit de synchronisation cloud" msgid "Retrieving printer information, please try again later." msgstr "" @@ -2022,8 +2037,8 @@ msgid "" "newly created user presets can only be used locally." msgstr "" "Le nombre de préréglages utilisateur mis en cache dans le nuage a dépassé la " -"limite supérieure. Les préréglages utilisateur \n" -"nouvellement créés ne peuvent être utilisés que localement." +"limite supérieure. Les préréglages utilisateur nouvellement créés ne peuvent " +"être utilisés que localement." msgid "Sync user presets" msgstr "Synchroniser les réglages prédéfinis de l’utilisateur" @@ -2247,7 +2262,7 @@ msgid "Orca Cube" msgstr "Cube Orca" msgid "OrcaSliced Combo" -msgstr "" +msgstr "OrcaSliced Combo" msgid "Orca Tolerance Test" msgstr "Test de tolérance Orca" @@ -2642,8 +2657,8 @@ msgstr[1] "%1$d erreur réparée" #, c-format, boost-format msgid "Error: %1$d non-manifold edge." msgid_plural "Error: %1$d non-manifold edges." -msgstr[0] "Erreur : %1$d arête non multiple." -msgstr[1] "Erreur : %1$d arête non multiple." +msgstr[0] "Erreur : %1$d arête non-manifold." +msgstr[1] "Erreur : %1$d arêtes non-manifold." msgid "Remaining errors" msgstr "Erreurs restantes" @@ -2651,8 +2666,8 @@ msgstr "Erreurs restantes" #, c-format, boost-format msgid "%1$d non-manifold edge" msgid_plural "%1$d non-manifold edges" -msgstr[0] "%1$d arête non multiple" -msgstr[1] "%1$d arête non multiple" +msgstr[0] "%1$d arête non-manifold" +msgstr[1] "%1$d arêtes non-manifold" msgid "Click the icon to repair model object" msgstr "Cliquer sur l'icône pour réparer l'objet modèle" @@ -3146,15 +3161,15 @@ msgid "" "Cooling mode is suitable for printing PLA/PETG/TPU materials and filters the " "chamber air." msgstr "" -"Le mode refroidissement est adapté à l'impression de matériaux PLA/PETG/TPU " -"et filtre l'air de la chambre." +"Le mode refroidissement est adapté à l’impression de matériaux PLA/PETG/TPU " +"et filtre l’air du caisson." msgid "" "Heating mode is suitable for printing ABS/ASA/PC/PA materials and circulates " "filters the chamber air." msgstr "" -"Le mode chauffage est adapté à l'impression de matériaux ABS/ASA/PC/PA et " -"filtre l'air en circulation dans la chambre." +"Le mode chauffage est adapté à l’impression de matériaux ABS/ASA/PC/PA et " +"filtre l’air en circulation dans le caisson." msgid "" "Strong cooling mode is suitable for printing PLA/TPU materials. In this " @@ -3237,8 +3252,8 @@ msgid "" "All the selected objects are on a locked plate.\n" "Cannot auto-arrange these objects." msgstr "" -"Tous les objets sélectionnés sont sur la plaque verrouillée,\n" -"nous ne pouvons pas faire d'auto-arrangement sur ces objets." +"Tous les objets sélectionnés sont sur une plaque verrouillée.\n" +"Impossible d’agencer automatiquement ces objets." msgid "No arrangeable objects are selected." msgstr "Aucun objet réorganisable n'est sélectionné." @@ -3247,11 +3262,11 @@ msgid "" "This plate is locked.\n" "Cannot auto-arrange on this plate." msgstr "" -"Cette plaque est verrouillée,\n" -"nous ne pouvons pas faire d'auto-arrangement sur cette plaque." +"Cette plaque est verrouillée.\n" +"Impossible d’agencer automatiquement sur cette plaque." msgid "Arranging..." -msgstr "Organiser…" +msgstr "Agencement…" msgid "Arranging" msgstr "Agencement" @@ -3295,8 +3310,8 @@ msgid "" "This plate is locked.\n" "Cannot auto-orient on this plate." msgstr "" -"Cette plaque est verrouillée, on ne peut pas faire d'auto-orientation sur " -"cette plaque." +"Cette plaque est verrouillée.\n" +"Impossible d’orienter automatiquement sur cette plaque." msgid "Orienting..." msgstr "Orienter…" @@ -3335,8 +3350,7 @@ msgid "Please check the printer network connection." msgstr "Vérifiez la connexion réseau de l'imprimante." msgid "Abnormal print file data. Please slice again." -msgstr "" -"Données de fichier d'impression anormales, veuillez redécouvre le fichier." +msgstr "Données du fichier d’impression anormales. Veuillez le redécouper." msgid "Task canceled." msgstr "Tâche annulée." @@ -3671,7 +3685,9 @@ msgstr "Fermer" msgid "" "Nozzle\n" "Temperature" -msgstr "Température de la buse" +msgstr "" +"Température\n" +"de la buse" msgid "max" msgstr "max" @@ -3779,7 +3795,7 @@ msgid "mm³" msgstr "mm³" msgid "Start calibration" -msgstr "Démarrer" +msgstr "Démarrer la calibration" msgid "Next" msgstr "Suivant" @@ -3969,8 +3985,8 @@ msgid "" "When the current material run out, the printer will continue to print in the " "following order." msgstr "" -"Lorsque le filament actuel est épuisé, l'imprimante\n" -"continue d'imprimer dans l'ordre suivant." +"Lorsque le filament actuel est épuisé, l’imprimante continue d’imprimer dans " +"l’ordre suivant." msgid "Identical filament: same brand, type and color." msgstr "Filament identique : même marque, type et couleur." @@ -4276,8 +4292,9 @@ msgid "" "Error message: %1%.\n" "Source file %2%." msgstr "" -"Échec de l'enregistrement du fichier gcode. Message d'erreur : %1%. Fichier " -"source %2%." +"Échec de l’enregistrement du fichier G-code.\n" +"Message d’erreur : %1%.\n" +"Fichier source %2%." msgid "Copying of the temporary G-code to the output G-code failed" msgstr "La copie du G-code temporaire vers le G-code de sortie a échoué" @@ -4384,7 +4401,8 @@ msgid "" msgstr "" "La buse peut être bloquée lorsque la température est hors de la plage " "recommandée.\n" -"Veuillez vous assurer d'utiliser la température pour imprimer.\n" +"Veuillez confirmer l’utilisation de cette température pour imprimer.\n" +"\n" #, c-format, boost-format msgid "" @@ -4414,12 +4432,16 @@ msgstr "" msgid "" "Too small layer height.\n" "Reset to 0.2." -msgstr "Hauteur de couche trop petite. Réinitialiser à 0,2" +msgstr "" +"Hauteur de couche trop petite.\n" +"Réinitialisée à 0,2." msgid "" "Too small ironing spacing.\n" "Reset to 0.1." -msgstr "Espacement de lissage trop petit. Réinitialiser à 0.1" +msgstr "" +"Espacement de lissage trop petit.\n" +"Réinitialisé à 0,1." msgid "" "Zero initial layer height is invalid.\n" @@ -4438,10 +4460,13 @@ msgid "" "\n" "The value will be reset to 0." msgstr "" -"Ce paramètre n'est utilisé que pour le réglage de la taille du modèle avec " -"une petite valeur dans certains cas. Par exemple, lorsque la taille du " -"modèle présente une petite erreur et est difficile à assembler. Pour un " -"réglage de grande taille, veuillez utiliser la fonction d'échelle de modèle. " +"Ce paramètre n’est utilisé que pour le réglage de la taille du modèle avec " +"une petite valeur dans certains cas.\n" +"Par exemple, lorsque la taille du modèle présente une petite erreur et est " +"difficile à assembler.\n" +"Pour un réglage de grande taille, veuillez utiliser la fonction de mise à " +"l’échelle du modèle.\n" +"\n" "La valeur sera remise à 0." msgid "" @@ -4451,10 +4476,12 @@ msgid "" "\n" "The value will be reset to 0." msgstr "" -"Une trop grande compensation de la patte d'éléphant est déraisonnable. Si " -"vous avez vraiment un effet de patte d'éléphant important, veuillez vérifier " -"d'autres paramètres. Par exemple, si la température du plateau est trop " -"élevée. La valeur sera remise à 0." +"Une compensation de patte d’éléphant trop importante est déraisonnable.\n" +"Si l’effet de patte d’éléphant est vraiment marqué, veuillez vérifier " +"d’autres paramètres.\n" +"Par exemple, si la température du plateau est trop élevée.\n" +"\n" +"La valeur sera remise à 0." msgid "" "Alternate extra wall does't work well when ensure vertical shell thickness " @@ -4575,7 +4602,7 @@ msgid "Printing" msgstr "Impression" msgid "Auto bed leveling" -msgstr "Niveau de plateau automatique" +msgstr "Nivellement automatique du plateau" msgid "Heatbed preheating" msgstr "Préchauffage du plateau chauffant" @@ -4656,7 +4683,7 @@ msgid "Pause (low speed of the heatbreak fan)" msgstr "Pause (vitesse basse du ventilateur du heatbreak)" msgid "Pause (chamber temperature control problem)" -msgstr "Pause (problème de contrôle de la température de la chambre)" +msgstr "Pause (problème de contrôle de la température du caisson)" msgid "Cooling chamber" msgstr "Refroidissement du caisson" @@ -4689,7 +4716,7 @@ msgid "Measure motion accuracy" msgstr "Mesurer la précision de mouvement" msgid "Nozzle offset calibration" -msgstr "Calibration du décalage de buse" +msgstr "Calibration du décalage de la buse" msgid "High temperature auto bed leveling" msgstr "Nivellement automatique du plateau à haute température" @@ -4719,7 +4746,7 @@ msgid "Auto bed leveling -phase 2" msgstr "Nivellement automatique du plateau - phase 2" msgid "Heating chamber" -msgstr "Chauffage de la chambre" +msgstr "Chauffage du caisson" msgid "Cooling heatbed" msgstr "Refroidissement du plateau chauffant" @@ -4761,7 +4788,7 @@ msgid "Verification failed." msgstr "Échec de la vérification." msgid "Update failed." -msgstr "Mise à jour a échoué." +msgstr "La mise à jour a échoué." msgid "Timelapse is not supported on this printer." msgstr "Le timelapse n'est pas pris en charge sur cette imprimante." @@ -4792,10 +4819,9 @@ msgid "" "Please wait until the chamber temperature drops below %d℃. You may open the " "front door or enable fans to cool down." msgstr "" -"La température de la chambre est trop élevée, ce qui peut ramollir le " -"filament. Veuillez attendre que la température de la chambre descende en " -"dessous de %d℃. Vous pouvez ouvrir la porte avant ou activer les " -"ventilateurs pour refroidir." +"La température du caisson est trop élevée, ce qui peut ramollir le filament. " +"Veuillez attendre que la température du caisson descende en dessous de %d℃. " +"Vous pouvez ouvrir la porte avant ou activer les ventilateurs pour refroidir." #, c-format, boost-format msgid "" @@ -4810,9 +4836,9 @@ msgid "" "45℃. In order to avoid extruder clogging, low temperature filament(PLA/PETG/" "TPU) is not allowed to be loaded." msgstr "" -"La température actuelle ou cible de la chambre dépasse 45℃. Afin d'éviter le " -"bouchage de l'extrudeur, le chargement de filament basse température (PLA/" -"PETG/TPU) n'est pas autorisé." +"La température actuelle ou cible du caisson dépasse 45℃. Afin d’éviter le " +"bouchage de l’extrudeur, le chargement de filament basse température " +"(PLA/PETG/TPU) n’est pas autorisé." msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder. In order " @@ -4820,7 +4846,7 @@ msgid "" msgstr "" "Un filament basse température (PLA/PETG/TPU) est chargé dans l'extrudeur. " "Afin d'éviter le bouchage de l'extrudeur, il n'est pas permis de régler la " -"température de la chambre." +"température du caisson." msgid "" "When you set the chamber temperature below 40℃, the chamber temperature " @@ -5021,7 +5047,10 @@ msgid "" "Is it %s%% or %s %s?\n" "YES for %s%%, \n" "NO for %s %s." -msgstr "Est-ce %s%% ou %s %s ? OUI pour %s%%, NON pour %s %s." +msgstr "" +"Est-ce %s%% ou %s %s ?\n" +"OUI pour %s%%, \n" +"NON pour %s %s." #, boost-format msgid "" @@ -5052,7 +5081,7 @@ msgid "Invalid format. Expected vector format: \"%1%\"" msgstr "Format invalide. Format vectoriel attendu : \"%1%\"" msgid "N/A" -msgstr "N / A" +msgstr "N/A" msgid "Pick" msgstr "Sélectionner" @@ -5061,7 +5090,7 @@ msgid "Summary" msgstr "Résumé" msgid "Layer Height" -msgstr "Hauteur de la couche" +msgstr "Hauteur de couche" msgid "Line Width" msgstr "Largeur de ligne" @@ -5386,7 +5415,7 @@ msgid "Filament Changes" msgstr "Changements de filaments" msgid "Options" -msgstr "Choix" +msgstr "Options" msgid "Extruder" msgstr "Extrudeur" @@ -5669,7 +5698,7 @@ msgid "Outline" msgstr "Contour" msgid "Realistic View" -msgstr "" +msgstr "Vue réaliste" msgid "Perspective" msgstr "Perspective" @@ -5708,7 +5737,7 @@ msgid "Assembly Info" msgstr "Informations sur l'assemblage" msgid "Volume:" -msgstr "Le volume:" +msgstr "Volume :" msgid "Size:" msgstr "Taille:" @@ -5978,7 +6007,7 @@ msgid "Show Configuration Folder" msgstr "Afficher le dossier de configuration" msgid "Troubleshoot Center" -msgstr "" +msgstr "Centre de dépannage" msgid "Open Network Test" msgstr "Ouvrir le Test de Réseau" @@ -6674,7 +6703,7 @@ msgid "Play" msgstr "Lecture" msgid "Open Folder" -msgstr "Ouvrir le Dossier" +msgstr "Ouvrir le dossier" msgid "Download finished" msgstr "Téléchargement terminé" @@ -6993,14 +7022,14 @@ msgstr "" msgid "Chamber temperature cannot be changed in cooling mode while printing." msgstr "" -"La température de la chambre ne peut pas être modifiée en mode " -"refroidissement pendant l'impression." +"La température du caisson ne peut pas être modifiée en mode refroidissement " +"pendant l’impression." msgid "" "If the chamber temperature exceeds 40℃, the system will automatically switch " "to heating mode. Please confirm whether to switch." msgstr "" -"Si la température de la chambre dépasse 40℃, le système passera " +"Si la température du caisson dépasse 40℃, le système passera " "automatiquement en mode chauffage. Veuillez confirmer si vous souhaitez " "commuter." @@ -7309,7 +7338,7 @@ msgid "Goto download page." msgstr "Allez sur la page de téléchargement." msgid "Open Folder." -msgstr "Ouvrir un répertoire." +msgstr "Ouvrir le dossier." msgid "Safely remove hardware." msgstr "Retirez le matériel en toute sécurité." @@ -7323,8 +7352,8 @@ msgstr[1] " %1$d objets ont des supports personnalisés." #, c-format, boost-format msgid "%1$d Object has color painting." msgid_plural "%1$d Objects have color painting." -msgstr[0] "%1$d L'objet est mis en couleur." -msgstr[1] "%1$d L'objets sont mis en couleur." +msgstr[0] "%1$d objet est mis en couleur." +msgstr[1] "%1$d objets sont mis en couleur." #, c-format, boost-format msgid "%1$d object was loaded as a part of cut object." @@ -7358,7 +7387,7 @@ msgid "Error:" msgstr "Erreur:" msgid "Warning:" -msgstr "Avertissement:" +msgstr "Avertissement :" msgid "Exported successfully" msgstr "Exportation réussie." @@ -7367,10 +7396,10 @@ msgid "Model file downloaded." msgstr "Modèle téléchargé." msgid "Pull" -msgstr "" +msgstr "Récupérer" msgid "Force push" -msgstr "" +msgstr "Forcer l’envoi" msgid "Shared profiles may be available for this printer." msgstr "Des profils partagés peuvent être disponibles pour cette imprimante." @@ -7426,7 +7455,9 @@ msgstr "Version d'OpenGL non prise en charge" msgid "" "Unable to load shaders:\n" "%s" -msgstr "Impossible de charger les shaders : %s" +msgstr "" +"Impossible de charger les shaders :\n" +"%s" msgid "Error loading shaders" msgstr "Erreur lors du chargement des shaders" @@ -8028,8 +8059,9 @@ msgid "" "The object from file %s is too small, and maybe in meters or inches.\n" " Do you want to scale to millimeters?" msgstr "" -"L'objet du fichier %s est trop petit, et peut-être en mètres ou en pouces. " -"Voulez-vous mettre à l'échelle en millimètres ?" +"L’objet du fichier %s est trop petit, et est peut-être en mètres ou en " +"pouces.\n" +" Voulez-vous le mettre à l’échelle en millimètres ?" msgid "Object too small" msgstr "Objet trop petit" @@ -8269,7 +8301,7 @@ msgstr "" "dans d'autres programmes." msgid "Save project" -msgstr "Sauvegarder le projet" +msgstr "Enregistrer le projet" msgid "Importing Model" msgstr "Importation du modèle" @@ -8444,10 +8476,10 @@ msgstr "" "Seules les parties positives seront exportées." msgid "Flashforge host is not available." -msgstr "" +msgstr "L’hôte Flashforge n’est pas disponible." msgid "Unable to log in to the Flashforge printer." -msgstr "" +msgstr "Impossible de se connecter à l’imprimante Flashforge." msgid "Is the printer ready? Is the print sheet in place, empty and clean?" msgstr "" @@ -8458,17 +8490,15 @@ msgid "Upload and Print" msgstr "Envoyer & Imprimer" msgid "Abnormal print file data. Please slice again" -msgstr "" -"Données de fichier d'impression anormales. Veuillez découper le fichier à " -"nouveau" +msgstr "Données du fichier d’impression anormales. Veuillez le redécouper" msgid "" "Print By Object: \n" "Suggest to use auto-arrange to avoid collisions when printing." msgstr "" "Imprimer par objet :\n" -"Nous vous suggérons d'utiliser la disposition automatique pour éviter les " -"collisions lors de l'impression." +"Nous vous suggérons d’utiliser l’agencement automatique pour éviter les " +"collisions lors de l’impression." msgid "Send G-code" msgstr "Envoyer le G-code" @@ -8577,10 +8607,9 @@ msgid "" "still want to do this print job, please set this filament's bed temperature " "to non-zero." msgstr "" -"La plaque% d : %s n'est pas suggéré pour l'utilisation du filament " -"d'impression %s(%s). Si vous souhaitez toujours effectuer ce travail " -"d'impression, veuillez régler la température du plateau de ce filament sur " -"un nombre différent de zéro." +"Plaque %d : il n’est pas recommandé d’utiliser %s pour imprimer le filament " +"%s (%s). Si vous souhaitez tout de même lancer cette impression, veuillez " +"définir une température de plateau différente de zéro pour ce filament." msgid "" "Currently, the object configuration form cannot be used with a multiple-" @@ -8621,8 +8650,8 @@ msgstr "Sélection de la langue" msgid "Switching application language while some presets are modified." msgstr "" -"Changement de langue d’application alors que certaines présélections sont " -"modifiées." +"Changement de langue de l’application alors que certains préréglages sont " +"modifiés." msgid "Asia-Pacific" msgstr "Asie-Pacifique" @@ -9042,22 +9071,22 @@ msgid "Graphics" msgstr "Graphismes" msgid "Phong shading" -msgstr "" +msgstr "Ombrage de Phong" msgid "Uses Phong shading inside realistic view." -msgstr "" +msgstr "Utilise l’ombrage de Phong dans la vue réaliste." msgid "SSAO ambient occlusion" -msgstr "" +msgstr "Occlusion ambiante SSAO" msgid "Applies SSAO in realistic view." -msgstr "" +msgstr "Applique le SSAO dans la vue réaliste." msgid "Shadows" -msgstr "" +msgstr "Ombres" msgid "Renders cast shadows on the plate in realistic view." -msgstr "" +msgstr "Affiche les ombres portées sur la plaque dans la vue réaliste." msgid "Anti-aliasing" msgstr "Anticrénelage" @@ -9139,12 +9168,17 @@ msgid "" "Note: When Stealth Mode is enabled, your user profiles will not be backed up " "to Orca Cloud." msgstr "" +"Ceci désactive toutes les fonctionnalités cloud, y compris la " +"synchronisation des profils Orca Cloud. Les utilisateurs qui préfèrent " +"travailler entièrement hors ligne peuvent activer cette option.\n" +"Remarque : lorsque le mode furtif est activé, vos profils utilisateur ne " +"sont pas sauvegardés dans Orca Cloud." msgid "Hide login side panel" -msgstr "" +msgstr "Masquer le panneau latéral de connexion" msgid "Hide the login side panel on the home page." -msgstr "" +msgstr "Masque le panneau latéral de connexion sur la page d’accueil." msgid "Network test" msgstr "Test du réseau" @@ -9313,12 +9347,15 @@ msgstr "" "Hautement expérimental ! Lent et susceptible de créer des artefacts." msgid "Show unsupported presets" -msgstr "" +msgstr "Afficher les préréglages non pris en charge" msgid "" "Show incompatible/unsupported presets in the printer and filament dropdown " "lists. These presets cannot be selected." msgstr "" +"Affiche les préréglages incompatibles ou non pris en charge dans les listes " +"déroulantes d’imprimantes et de filaments. Ces préréglages ne peuvent pas " +"être sélectionnés." msgid "Allow Abnormal Storage" msgstr "Autoriser le stockage anormal" @@ -9387,10 +9424,10 @@ msgid "Rotate view" msgstr "Rotation de la vue" msgid "Pan view" -msgstr "Déplacement de vue" +msgstr "Déplacement de la vue" msgid "Zoom view" -msgstr "Vue agrandie" +msgstr "Zoom de la vue" msgid "Other" msgstr "Autre" @@ -10445,9 +10482,8 @@ msgid "" "Layer height is too small.\n" "It will set to min_layer_height\n" msgstr "" -"La hauteur du calque est trop faible.\n" +"La hauteur de couche est trop faible.\n" "Elle sera définie à min_layer_height\n" -"\n" msgid "" "Layer height exceeds the limit in Printer Settings -> Extruder -> Layer " @@ -10526,7 +10562,7 @@ msgstr "" "Voulez-vous continuer ?" msgid "Detach preset" -msgstr "Détacher la présélection" +msgstr "Détacher le préréglage" msgid "This is a default preset." msgstr "Il s’agit d’un préréglage par défaut." @@ -10556,7 +10592,7 @@ msgid "Additional information:" msgstr "Informations complémentaires :" msgid "vendor" -msgstr "vendeur" +msgstr "fabricant" msgid "printer model" msgstr "modèle d’imprimante" @@ -10680,13 +10716,13 @@ msgid_plural "" "Please remove them, or will beat G-code visualization and printing time " "estimation." msgstr[0] "" -"La ligne suivante %s contient des mots clés réservés. Veuillez le supprimer, " -"ou il battra la visualisation du G-code et l'estimation du temps " -"d'impression." +"La ligne suivante %s contient des mots-clés réservés.\n" +"Veuillez la supprimer, sans quoi la visualisation du G-code et l’estimation " +"du temps d’impression seront faussées." msgstr[1] "" -"La ligne suivante %s contient des mots clés réservés. Veuillez le supprimer, " -"ou il battra la visualisation du G-code et l'estimation du temps " -"d'impression." +"Les lignes suivantes %s contiennent des mots-clés réservés.\n" +"Veuillez les supprimer, sans quoi la visualisation du G-code et l’estimation " +"du temps d’impression seront faussées." msgid "Reserved keywords found" msgstr "Mots clés réservés trouvés" @@ -11003,6 +11039,10 @@ msgid "" "\n" "Shall I set it to 100% in order to enable Firmware Retraction?" msgstr "" +"L’option Rétracter avant essuyage ne peut être qu’à 100 % en mode rétraction " +"firmware.\n" +"\n" +"Faut-il la régler à 100 % pour activer la rétraction firmware ?" msgid "Firmware Retraction" msgstr "Rétraction Firmware" @@ -11222,7 +11262,9 @@ msgstr "" msgid "" "Save the selected options to preset \n" "\"%1%\"." -msgstr "Enregistrez les options sélectionnées dans le préréglage \"%1%\"." +msgstr "" +"Enregistrez les options sélectionnées dans le préréglage \n" +"\"%1%\"." #, boost-format msgid "" @@ -11230,7 +11272,8 @@ msgid "" "\"%1%\"." msgstr "" "Transférez les options sélectionnées vers le préréglage nouvellement " -"sélectionné \"%1%\"." +"sélectionné \n" +"\"%1%\"." #, boost-format msgid "Preset \"%1%\" contains the following unsaved changes:" @@ -11377,19 +11420,20 @@ msgstr "Mise à jour de la configuration" msgid "A new configuration package is available. Do you want to install it?" msgstr "" -"Un nouveau package de configuration disponible, Voulez-vous l'installer ?" +"Un nouveau paquet de configuration est disponible. Voulez-vous l’installer ?" msgid "the configuration package is incompatible with the current application." msgstr "" -"le package de configuration est incompatible avec l'application actuelle." +"le paquet de configuration est incompatible avec l’application actuelle." #, c-format, boost-format msgid "" "The configuration package is incompatible with the current application.\n" "%s will update the configuration package to allow the application to start." msgstr "" -"Le package de configuration est incompatible avec l'application actuelle. %s " -"mettra à jour le package de configuration, sinon il ne pourra pas démarrer" +"Le paquet de configuration est incompatible avec l’application actuelle.\n" +"%s mettra à jour le paquet de configuration pour permettre à l’application " +"de démarrer." #, c-format, boost-format msgid "Exit %s" @@ -11813,7 +11857,7 @@ msgstr "[Action requise]" msgid "The configuration package is changed in previous Config Guide" msgstr "" -"Le package de configuration est modifié dans le guide de configuration " +"Le paquet de configuration a été modifié dans le guide de configuration " "précédent" msgid "Configuration package changed" @@ -11847,16 +11891,16 @@ msgid "Global shortcuts" msgstr "Raccourcis globaux" msgid "Pan View" -msgstr "Déplacer la vue" +msgstr "Déplacement de la vue" msgid "Rotate View" -msgstr "Pivoter la vue" +msgstr "Rotation de la vue" msgid "Middle mouse button" msgstr "Bouton central de la souris" msgid "Zoom View" -msgstr "Zoomer la vue" +msgstr "Zoom de la vue" msgid "" "Auto orients selected objects or all objects. If there are selected objects, " @@ -12026,7 +12070,7 @@ msgstr "" "Sélectionnez l'objet/la pièce et cliquez avec la souris pour changer le nom" msgid "Objects List" -msgstr "Liste d'objets" +msgstr "Liste des objets" msgid "Vertical slider - Move active thumb Up" msgstr "Barre de défilement verticale - Déplacer le curseur actif vers le Haut" @@ -12325,6 +12369,7 @@ msgid "" "\n" msgstr "" "Échec de la génération du G-code pour un G-code personnalisé non valide.\n" +"\n" msgid "Please check the custom G-code or use the default custom G-code." msgstr "" @@ -12778,16 +12823,23 @@ msgstr "La hauteur de la couche ne peut pas dépasser le diamètre de la buse" msgid "Bridge line width must not exceed nozzle diameter" msgstr "" +"La largeur de ligne des ponts ne doit pas dépasser le diamètre de la buse" msgid "" "\"G92 E0\" was found in before_layer_change_gcode, but the G or E are not " "uppercase. Please change them to the exact uppercase \"G92 E0\"." msgstr "" +"\"G92 E0\" a été trouvé dans before_layer_change_gcode, mais le G ou le E ne " +"sont pas en majuscules. Veuillez les remplacer par \"G92 E0\" exactement en " +"majuscules." msgid "" "\"G92 E0\" was found in layer_change_gcode, but the G or E are not " "uppercase. Please change them to the exact uppercase \"G92 E0\"." msgstr "" +"\"G92 E0\" a été trouvé dans layer_change_gcode, mais le G ou le E ne sont " +"pas en majuscules. Veuillez les remplacer par \"G92 E0\" exactement en " +"majuscules." msgid "" "Relative extruder addressing requires resetting the extruder position at " @@ -12802,11 +12854,15 @@ msgid "" "\"G92 E0\" was found in before_layer_change_gcode, which is incompatible " "with absolute extruder addressing." msgstr "" +"\"G92 E0\" a été trouvé dans before_layer_change_gcode, ce qui est " +"incompatible avec l’adressage absolu de l’extrudeur." msgid "" "\"G92 E0\" was found in layer_change_gcode, which is incompatible with " "absolute extruder addressing." msgstr "" +"\"G92 E0\" a été trouvé dans layer_change_gcode, ce qui est incompatible " +"avec l’adressage absolu de l’extrudeur." #, c-format, boost-format msgid "Plate %d: %s does not support filament %s" @@ -12914,29 +12970,36 @@ msgid "Extruder printable area" msgstr "Zone d'impression de l'extrudeur" msgid "Support parallel printheads" -msgstr "" +msgstr "Prise en charge des têtes d’impression parallèles" msgid "" "Enable printer settings for machines that can use multiple printheads in " "parallel." msgstr "" +"Active les paramètres d’imprimante pour les machines pouvant utiliser " +"plusieurs têtes d’impression en parallèle." msgid "Parallel printheads count" -msgstr "" +msgstr "Nombre de têtes d’impression parallèles" msgid "" "Set the number of parallel printheads for machines like OrangeStorm Giga " "printer." msgstr "" +"Définit le nombre de têtes d’impression parallèles pour les machines comme " +"l’imprimante OrangeStorm Giga." msgid "Parallel printheads bed exclude areas" -msgstr "" +msgstr "Zones d’exclusion du plateau pour têtes parallèles" msgid "" "Ordered list of bed exclude areas by parallel printhead count. Item 1 " "applies to one printhead, item 2 to two printheads, and so on. Leave an item " "empty for no excluded area." msgstr "" +"Liste ordonnée des zones d’exclusion du plateau selon le nombre de têtes " +"parallèles. L’élément 1 s’applique à une tête, l’élément 2 à deux têtes, et " +"ainsi de suite. Laissez un élément vide pour n’exclure aucune zone." msgid "Bed exclude area" msgstr "Zone d'exclusion de plateau" @@ -13084,10 +13147,10 @@ msgstr "" "l'authentification." msgid "Serial Number" -msgstr "" +msgstr "Numéro de série" msgid "Flashforge local API requires the printer serial number." -msgstr "" +msgstr "L’API locale Flashforge nécessite le numéro de série de l’imprimante." msgid "Name of the printer." msgstr "Nom de l'imprimante" @@ -13466,6 +13529,17 @@ msgid "" "\n" "Use 180° for zero absolute angle." msgstr "" +"Remplacement de l’angle des ponts externes.\n" +"Si laissé à zéro, l’angle des ponts est calculé automatiquement pour chaque " +"pont.\n" +"Sinon, l’angle fourni est utilisé selon :\n" +" - les coordonnées absolues\n" +" - les coordonnées absolues + la rotation du modèle : si « Aligner la " +"direction du remplissage sur le modèle » est activé\n" +" - l’angle automatique optimal + cette valeur : si « Angle de pont relatif » " +"est activé\n" +"\n" +"Utilisez 180° pour un angle absolu nul." msgid "Internal bridge infill direction" msgstr "Direction du remplissage du pont interne" @@ -13483,14 +13557,27 @@ msgid "" "\n" "Use 180° for zero absolute angle." msgstr "" +"Remplacement de l’angle des ponts internes.\n" +"Si laissé à zéro, l’angle des ponts est calculé automatiquement pour chaque " +"pont.\n" +"Sinon, l’angle fourni est utilisé selon :\n" +" - les coordonnées absolues\n" +" - les coordonnées absolues + la rotation du modèle : si « Aligner la " +"direction du remplissage sur le modèle » est activé\n" +" - l’angle automatique optimal + cette valeur : si « Angle de pont relatif » " +"est activé\n" +"\n" +"Utilisez 180° pour un angle absolu nul." msgid "Relative bridge angle" -msgstr "" +msgstr "Angle de pont relatif" msgid "" "When enabled, the bridge angle values are added to the automatically " "calculated bridge direction instead of overriding it." msgstr "" +"Lorsque cette option est activée, les valeurs d’angle de pont s’ajoutent à " +"la direction de pont calculée automatiquement au lieu de la remplacer." msgid "External bridge density" msgstr "Densité du pont externe" @@ -13514,6 +13601,26 @@ msgid "" "\n" "Recommended range: Minimum 10% - Maximum 125%." msgstr "" +"Contrôle la densité (espacement) des lignes de ponts externes. La valeur par " +"défaut est 100 %.\n" +"En théorie, 100 % correspond à un pont plein, mais comme les extrusions de " +"pont ont tendance à s’affaisser, 100 % peut ne pas suffire.\n" +"\n" +"- Densité supérieure à 100 % (maximum recommandé 125 %) :\n" +" - Avantages : produit des surfaces de pont plus lisses, car le " +"chevauchement des lignes apporte un soutien supplémentaire pendant " +"l’impression.\n" +" - Inconvénients : peut provoquer une surextrusion, ce qui peut dégrader la " +"qualité des surfaces inférieures et supérieures et augmenter le risque de " +"déformation.\n" +"\n" +"- Densité inférieure à 100 % (minimum 10 %) :\n" +" - Avantages : peut créer une première couche filaire. Plus rapide et mieux " +"refroidie, car l’air circule davantage autour du pont extrudé.\n" +" - Inconvénients : peut entraîner un affaissement et un moins bon état de " +"surface.\n" +"\n" +"Plage recommandée : minimum 10 % – maximum 125 %." msgid "Internal bridge density" msgstr "Densité du pont interne" @@ -13541,6 +13648,31 @@ msgid "" "bridge over infill option to improve bridging further before solid infill is " "extruded." msgstr "" +"Contrôle la densité (espacement) des lignes de ponts internes. La valeur par " +"défaut est 100 %. 100 % correspond à un pont interne plein.\n" +"\n" +"Les ponts internes servent de soutien intermédiaire entre le remplissage et " +"le remplissage plein supérieur, et peuvent fortement influencer la qualité " +"de la surface supérieure.\n" +"\n" +"- Densité supérieure à 100 % (maximum recommandé 125 %) :\n" +" - Avantages : améliore la résistance des ponts internes et le soutien sous " +"les couches supérieures, réduisant l’affaissement et améliorant l’état de la " +"surface supérieure.\n" +" - Inconvénients : augmente la consommation de matériau et le temps " +"d’impression ; une densité excessive peut provoquer une surextrusion et des " +"contraintes internes.\n" +"\n" +"- Densité inférieure à 100 % (minimum 10 %) :\n" +" - Avantages : peut réduire l’effet d’oreiller et améliorer le " +"refroidissement (plus de flux d’air à travers le pont), et peut accélérer " +"l’impression.\n" +" - Inconvénients : peut réduire le soutien interne, augmentant le risque " +"d’affaissement et de défauts de la surface supérieure.\n" +"\n" +"Cette option fonctionne particulièrement bien combinée à l’option de second " +"pont interne au-dessus du remplissage, pour améliorer encore les ponts avant " +"l’extrusion du remplissage plein." msgid "Bridge flow ratio" msgstr "Débit des ponts" @@ -13555,6 +13687,17 @@ msgid "" "The actual bridge flow used is calculated by multiplying this value with the " "filament flow ratio, and if set, the object's flow ratio." msgstr "" +"Cette valeur régit l’épaisseur de la couche de pont externe (visible).\n" +"Valeurs supérieures à 1,0 : augmentent la quantité de matériau en conservant " +"l’espacement des lignes. Cela peut améliorer le contact entre lignes et la " +"résistance.\n" +"Valeurs inférieures à 1,0 : réduisent la quantité de matériau en ajustant " +"l’espacement des lignes pour maintenir le contact. Cela peut réduire " +"l’affaissement.\n" +"\n" +"Le débit de pont réellement utilisé est calculé en multipliant cette valeur " +"par le rapport de débit du filament et, s’il est défini, par celui de " +"l’objet." #, c-format, boost-format msgid "" @@ -13566,6 +13709,15 @@ msgid "" "The maximum value is 100% or the nozzle diameter.\n" "If set to 0, the line width will match the Internal solid infill width." msgstr "" +"La largeur de ligne des ponts s’exprime soit en valeur absolue, soit en " +"pourcentage du diamètre de la buse active (les pourcentages sont calculés à " +"partir du diamètre de la buse).\n" +"Recommandé avec une densité de pont ou un rapport de débit de pont plus " +"élevés.\n" +"\n" +"La valeur maximale est 100 % ou le diamètre de la buse.\n" +"Si réglée à 0, la largeur de ligne correspond à celle du remplissage plein " +"interne." msgid "Internal bridge flow ratio" msgstr "Ratio de débit du pont interne" @@ -13582,6 +13734,19 @@ msgid "" "The actual bridge flow used is calculated by multiplying this value with the " "filament flow ratio, and if set, the object's flow ratio." msgstr "" +"Cette valeur régit l’épaisseur de la couche de pont interne. Il s’agit de la " +"première couche au-dessus du remplissage : l’augmenter peut accroître la " +"résistance et la qualité des couches supérieures.\n" +"Valeurs supérieures à 1,0 : augmentent la quantité de matériau en conservant " +"l’espacement des lignes. Cela peut améliorer le contact entre lignes et la " +"résistance.\n" +"Valeurs inférieures à 1,0 : réduisent la quantité de matériau en ajustant " +"l’espacement des lignes pour maintenir le contact. Cela peut réduire " +"l’affaissement.\n" +"\n" +"Le débit de pont réellement utilisé est calculé en multipliant cette valeur " +"par le rapport de débit du filament et, s’il est défini, par celui de " +"l’objet." msgid "Top surface flow ratio" msgstr "Ratio du débit des surfaces supérieures" @@ -13967,6 +14132,37 @@ msgid "" "For example, when the perimeters are 100% overhanging, with no wall " "supporting them from underneath, the 100% overhang speed will be applied." msgstr "" +"Activez cette option pour ralentir l’impression dans les zones où les " +"périmètres risquent de s’être recourbés vers le haut.\n" +"Par exemple, un ralentissement supplémentaire est appliqué lors de " +"l’impression de surplombs sur des angles vifs, comme l’avant de la coque du " +"Benchy, réduisant le tuilage qui s’amplifie au fil des couches.\n" +"\n" +"Il est généralement recommandé de laisser cette option activée, sauf si le " +"refroidissement de votre imprimante est assez puissant ou la vitesse " +"d’impression assez lente pour que les périmètres ne se recourbent pas. \n" +"En cas d’impression avec une vitesse de périmètre externe élevée, ce " +"paramètre peut introduire des artéfacts sur les parois lors du " +"ralentissement, en raison de la variation potentiellement importante des " +"vitesses d’impression empêchant l’extrudeur de suivre le changement de débit " +"demandé.\n" +"La cause profonde de ces artéfacts est très probablement un réglage du PA " +"légèrement décalé, surtout combiné à un temps de lissage du PA élevé.\n" +"\n" +"Recommandations lorsque cette option est activée :\n" +"1. Réduisez le temps de lissage du Pressure Advance à 0,015 – 0,02 pour que " +"l’extrudeur réagisse rapidement aux changements de vitesse.\n" +"2. Augmentez les vitesses d’impression minimales pour limiter l’ampleur du " +"ralentissement et réduire l’écart entre segments rapides et lents.\n" +"3. Si des artéfacts persistent, activez le lissage du débit d’extrusion " +"(ERS) pour adoucir davantage les transitions de débit.\n" +"\n" +"Remarque : lorsque cette option est activée, les périmètres en surplomb sont " +"traités comme des surplombs : la vitesse de surplomb s’applique même si le " +"périmètre en surplomb fait partie d’un pont.\n" +"Par exemple, lorsque les périmètres sont à 100 % en surplomb, sans paroi " +"pour les soutenir par en dessous, la vitesse de surplomb à 100 % est " +"appliquée." msgid "mm/s or %" msgstr "mm/s ou %" @@ -14077,7 +14273,7 @@ msgstr "" "des autres. Cela peut améliorer l’adhérence de la bordure." msgid "Brim ears" -msgstr "Bordures à oreilles" +msgstr "Bordure à oreilles" msgid "Only draw brim over the sharp edges of the model." msgstr "Ne tracer la bordure que sur les arêtes vives du modèle." @@ -14258,6 +14454,12 @@ msgid "" "If disabled, bridges may look better but are generally reliable only for " "shorter spans." msgstr "" +"Si activé, l’extrusion des ponts utilise une hauteur de ligne égale au " +"diamètre de la buse.\n" +"Cela augmente la résistance et la fiabilité des ponts et permet de plus " +"longues portées, mais peut dégrader l’apparence.\n" +"Si désactivé, les ponts peuvent être plus esthétiques mais ne sont " +"généralement fiables que sur de courtes portées." msgid "Thick internal bridges" msgstr "Ponts internes épais" @@ -14270,6 +14472,12 @@ msgid "" "If disabled, internal bridges may look better but can be less reliable over " "sparse infill." msgstr "" +"Si activé, l’extrusion des ponts internes utilise une hauteur de ligne égale " +"au diamètre de la buse.\n" +"Cela augmente la résistance et la fiabilité des ponts internes imprimés " +"au-dessus du remplissage, mais peut dégrader l’apparence.\n" +"Si désactivé, les ponts internes peuvent être plus esthétiques mais moins " +"fiables au-dessus du remplissage." msgid "Extra bridge layers (beta)" msgstr "Couches de pont supplémentaires (beta)" @@ -14474,7 +14682,7 @@ msgid "Moderate" msgstr "Modéré" msgid "Top surface pattern" -msgstr "Motif de surface supérieure" +msgstr "Motif de la surface supérieure" msgid "Line pattern of top surface infill." msgstr "Motif de ligne du remplissage de la surface supérieure" @@ -15530,7 +15738,7 @@ msgid "money/kg" msgstr "argent/kg" msgid "Vendor" -msgstr "Fabriquant" +msgstr "Fabricant" msgid "Vendor of filament. For show only." msgstr "Vendeur du filament. Pour affichage uniquement" @@ -15578,6 +15786,10 @@ msgid "" "When enabled, directions rotate with the model to maintain optimal strength " "characteristics." msgstr "" +"Aligne les directions du remplissage, des ponts, du lissage et des surfaces " +"sur l’orientation du modèle sur le plateau.\n" +"Lorsque cette option est activée, les directions pivotent avec le modèle " +"afin de conserver des caractéristiques de résistance optimales." msgid "Insert solid layers" msgstr "Insérer des couches solides" @@ -15606,7 +15818,7 @@ msgstr "" msgid "Z-buckling bias optimization (experimental)" msgstr "Optimisation du biais de flambage en Z (expérimental)" -#, fuzzy, c-format, boost-format +#, no-c-format, no-boost-format msgid "" "Tightens the gyroid wave along the Z (vertical) axis at low infill density " "to shorten the effective vertical column length and improve Z-axis " @@ -15616,9 +15828,9 @@ msgid "" msgstr "" "Resserre l’onde gyroïde le long de l’axe Z (vertical) à faible densité de " "remplissage afin de raccourcir la longueur effective des colonnes verticales " -"et d’améliorer la résistance au flambage en compression sur l’axe Z. La " -"consommation de filament est préservée. Sans effet à partir d’environ 30 " -"% de densité de remplissage. Ne s’applique que lorsque le motif de " +"et d’améliorer la résistance au flambage en compression selon l’axe Z. La " +"consommation de filament est préservée. Aucun effet à partir d’environ 30 % " +"de densité de remplissage. S’applique uniquement lorsque le motif de " "remplissage est réglé sur Gyroïde." msgid "Sparse infill pattern" @@ -15714,25 +15926,31 @@ msgstr "" "pur." msgid "Lightning overhang angle" -msgstr "" +msgstr "Angle de surplomb Lightning" msgid "Maximum overhang angle for Lightning infill support propagation." msgstr "" +"Angle de surplomb maximal pour la propagation du support du remplissage " +"Lightning." msgid "Prune angle" -msgstr "" +msgstr "Angle d’élagage" msgid "" "Controls how aggressively short or unsupported Lightning branches are " "pruned.\n" "This angle is converted internally to a per-layer distance." msgstr "" +"Contrôle l’agressivité de l’élagage des branches Lightning courtes ou non " +"soutenues.\n" +"Cet angle est converti en interne en une distance par couche." msgid "Straightening angle" -msgstr "" +msgstr "Angle de redressement" msgid "Maximum straightening angle used to simplify Lightning branches." msgstr "" +"Angle de redressement maximal utilisé pour simplifier les branches Lightning." msgid "Sparse infill anchor length" msgstr "Longueur de l’ancrage de remplissage interne" @@ -16844,6 +17062,8 @@ msgid "" "Filament to print internal sparse infill.\n" "\"Default\" uses the active object/part filament." msgstr "" +"Filament pour imprimer le remplissage interne.\n" +"\"Défaut\" utilise le filament actif de l’objet ou de la pièce." msgid "" "Line width of internal sparse infill. If expressed as a %, it will be " @@ -17754,20 +17974,24 @@ msgstr "" "vitesse du pont est utilisée." msgid "Outer walls" -msgstr "" +msgstr "Parois externes" msgid "" "Filament to print outer walls.\n" "\"Default\" uses the active object/part filament." msgstr "" +"Filament pour imprimer les parois externes.\n" +"\"Défaut\" utilise le filament actif de l’objet ou de la pièce." msgid "Inner walls" -msgstr "" +msgstr "Parois internes" msgid "" "Filament to print inner walls.\n" "\"Default\" uses the active object/part filament." msgstr "" +"Filament pour imprimer les parois internes.\n" +"\"Défaut\" utilise le filament actif de l’objet ou de la pièce." msgid "" "Line width of inner wall. If expressed as a %, it will be computed over the " @@ -18490,16 +18714,22 @@ msgid "" "Filament to print internal solid infill.\n" "\"Default\" uses the active object/part filament." msgstr "" +"Filament pour imprimer le remplissage plein interne.\n" +"\"Défaut\" utilise le filament actif de l’objet ou de la pièce." msgid "" "Filament to print top surface.\n" "\"Default\" uses the active object/part filament." msgstr "" +"Filament pour imprimer la surface supérieure.\n" +"\"Défaut\" utilise le filament actif de l’objet ou de la pièce." msgid "" "Filament to print bottom surface.\n" "\"Default\" uses the active object/part filament." msgstr "" +"Filament pour imprimer la surface inférieure.\n" +"\"Défaut\" utilise le filament actif de l’objet ou de la pièce." msgid "" "Line width of internal solid infill. If expressed as a %, it will be " @@ -18901,6 +19131,9 @@ msgid "" "\"Default\" means no specific filament for support and current filament is " "used." msgstr "" +"Filament pour imprimer la base des supports et le radeau.\n" +"\"Défaut\" signifie qu’aucun filament spécifique n’est dédié aux supports : " +"le filament actuel est utilisé." msgid "Avoid interface filament for base" msgstr "Réduire le filament d’interface pour la base" @@ -18935,6 +19168,9 @@ msgid "" "\"Default\" means no specific filament for support interface and current " "filament is used." msgstr "" +"Filament pour imprimer l’interface des supports.\n" +"\"Défaut\" signifie qu’aucun filament spécifique n’est dédié à l’interface " +"des supports : le filament actuel est utilisé." msgid "Top interface layers" msgstr "Couches d'interface supérieures" @@ -19280,15 +19516,16 @@ msgid "" "either via macros or natively and is usually used when an active chamber " "heater is installed." msgstr "" -"Activer cette option pour le contrôle automatisé de la température du " -"caisson. Cette option active le lancement d’une commande M191 avant le code " -"« machine_start_gcode », qui fixe la température de la chambre et attend " -"qu’elle soit atteinte. En outre, elle déclenche une commande M141 à la fin " -"de l’impression pour éteindre le chauffage de la chambre, le cas échéant.\n" +"Activez cette option pour le contrôle automatisé de la température du " +"caisson. Cette option active l’émission d’une commande M191 avant le « " +"machine_start_gcode »,\n" +" qui fixe la température du caisson et attend qu’elle soit atteinte. En " +"outre, elle émet une commande M141 à la fin de l’impression pour éteindre le " +"chauffage du caisson, le cas échéant.\n" "\n" "Cette option repose sur la prise en charge des commandes M191 et M141 par le " -"micrologiciel, soit via des macros, soit de manière native, et est " -"généralement utilisée lorsqu’un chauffage de chambre actif est installé." +"micrologiciel, via des macros ou nativement, et est généralement utilisée " +"lorsqu’un chauffage de caisson actif est installé." msgid "Chamber temperature" msgstr "Température du caisson" @@ -19315,24 +19552,24 @@ msgstr "" "Pour les matériaux à haute température tels que l’ABS, l’ASA, le PC et le " "PA, une température de caisson plus élevée peut contribuer à supprimer ou à " "réduire la déformation et, éventuellement, à augmenter la force de liaison " -"entre les couches. Cependant, dans le même temps, une température de chambre " +"entre les couches. Cependant, dans le même temps, une température de caisson " "plus élevée réduira l’efficacité de la filtration de l’air pour l’ABS et " "l’ASA.\n" "\n" "Pour le PLA, le PETG, le TPU, le PVA et d’autres matériaux à basse " "température, cette option doit être désactivée (réglée sur 0) car la " -"température de la chambre doit être basse pour éviter l’engorgement de " +"température du caisson doit être basse pour éviter l’engorgement de " "l’extrudeuse causé par le ramollissement du matériau au niveau du " "heatbreak.\n" "\n" "S’il est activé, ce paramètre définit également une variable gcode nommée " "chamber_temperature, qui peut être utilisée pour transmettre la température " -"de la chambre souhaitée à votre macro de démarrage de l’impression, ou à une " +"de caisson souhaitée à votre macro de démarrage de l’impression, ou à une " "macro de trempe thermique comme celle-ci : PRINT_START (autres variables) " "CHAMBER_TEMP=[chamber_temperature]. Cela peut être utile si votre imprimante " "ne prend pas en charge les commandes M141/M191, ou si vous souhaitez gérer " "le préchauffage dans la macro de démarrage de l’impression si aucun " -"chauffage de chambre actif n’est installé." +"chauffage de caisson actif n’est installé." msgid "Nozzle temperature for layers after the initial one." msgstr "Température de la buse pour les couches après la première" @@ -19392,7 +19629,7 @@ msgstr "" "coque supérieure seront augmentées" msgid "Top solid layers" -msgstr "Couches solides supérieures" +msgstr "Couches pleines supérieures" msgid "Top shell thickness" msgstr "Épaisseur de la coque supérieure" @@ -20057,9 +20294,11 @@ msgstr "Valeur non valide lorsque le mode vase en spirale est activé: " msgid "Bridge line width must not exceed nozzle diameter: " msgstr "" +"La largeur de ligne des ponts ne doit pas dépasser le diamètre de la " +"buse : " msgid "too large line width " -msgstr "largeur de ligne trop importante " +msgstr "largeur de ligne trop grande " msgid " not in range " msgstr " hors plage " @@ -20167,7 +20406,7 @@ msgid "Send progress to pipe." msgstr "Envoyer la progression à la queue." msgid "Arrange Options" -msgstr "Options d'organisation" +msgstr "Options d’agencement" msgid "Arrange options: 0-disable, 1-enable, others-auto" msgstr "Options d'organisation : 0-désactiver, 1-activer, autres-auto" @@ -20329,10 +20568,11 @@ msgstr "" "avertissement, 3 :info, 4 :débogage, 5 :trace\n" msgid "Log file" -msgstr "" +msgstr "Fichier journal" msgid "Redirects debug logging to file.\n" msgstr "" +"Redirige les journaux de débogage vers un fichier.\n" msgid "Enable timelapse for print" msgstr "Activer le timelapse pour l’impression" @@ -20745,7 +20985,7 @@ msgid "Second" msgstr "Seconde" msgid "Print preset name" -msgstr "Imprimer le nom de la présélection" +msgstr "Nom du préréglage d’impression" msgid "Name of the print preset used for slicing." msgstr "Nom du préréglage d’impression utilisé pour le découpage." @@ -21325,7 +21565,7 @@ msgid "We found the best flow ratio for you" msgstr "Nous avons trouvé le meilleur ratio de débit pour vous" msgid "Flow Ratio" -msgstr "Ratio du débit" +msgstr "Rapport de débit" msgid "Please input a valid value (0.0 < flow ratio < 2.0)" msgstr "Veuillez saisir une valeur valide (0,0 < ratio du débit < 2,0)" @@ -21903,13 +22143,13 @@ msgid "Top Surface Pattern" msgstr "Motif de la surface supérieure" msgid "Choose a slot for the selected color" -msgstr "" +msgstr "Choisissez un emplacement pour la couleur sélectionnée" msgid "Material in the material station" -msgstr "" +msgstr "Matériau dans la station de matériaux" msgid "Only materials of the same type can be selected." -msgstr "" +msgstr "Seuls des matériaux du même type peuvent être sélectionnés." msgid "Send G-code to printer host" msgstr "Envoyer le G-code à l’imprimante" @@ -21938,46 +22178,56 @@ msgid "Upload" msgstr "Envoyer" msgid "Leveling before print" -msgstr "" +msgstr "Nivellement avant impression" msgid "Time-lapse" msgstr "Timelapse" msgid "Enable IFS" -msgstr "" +msgstr "Activer l’IFS" #, c-format, boost-format msgid "Detected %d IFS slots on printer." -msgstr "" +msgstr "%d emplacements IFS détectés sur l’imprimante." msgid "This printer does not report a material station." -msgstr "" +msgstr "Cette imprimante ne signale aucune station de matériaux." msgid "Unable to read IFS slots from printer." -msgstr "" +msgstr "Impossible de lire les emplacements IFS de l’imprimante." msgid "Loading IFS slots from printer..." -msgstr "" +msgstr "Chargement des emplacements IFS depuis l’imprimante…" msgid "Slice the plate first to get project material information." msgstr "" +"Découpez d’abord la plaque pour obtenir les informations sur les matériaux " +"du projet." msgid "" "This plate uses multiple materials. Enable IFS and assign each tool to a " "printer slot." msgstr "" +"Cette plaque utilise plusieurs matériaux. Activez l’IFS et attribuez chaque " +"outil à un emplacement de l’imprimante." msgid "Each project material must be assigned to an IFS slot before printing." msgstr "" +"Chaque matériau du projet doit être attribué à un emplacement IFS avant " +"l’impression." msgid "" "Each project material must be assigned to a loaded IFS slot before printing." msgstr "" +"Chaque matériau du projet doit être attribué à un emplacement IFS chargé " +"avant l’impression." msgid "" "Each project material must match the material loaded in the selected IFS " "slot." msgstr "" +"Chaque matériau du projet doit correspondre au matériau chargé dans " +"l’emplacement IFS sélectionné." msgid "Print host upload queue" msgstr "File d’attente d’envoi de l’hôte d’impression" @@ -22034,13 +22284,13 @@ msgstr "Plateau texturé (côté B)" #, c-format, boost-format msgid "Printer: %s" -msgstr "" +msgstr "Imprimante : %s" msgid "Calibrate before printing" -msgstr "" +msgstr "Calibrer avant l’impression" msgid "Filament Mapping:" -msgstr "" +msgstr "Correspondance des filaments :" msgid "Unable to perform boolean operation on selected parts" msgstr "" @@ -22119,7 +22369,7 @@ msgid "Log Info" msgstr "Journal de bord" msgid "Select filament preset" -msgstr "Sélection du préréglage du filament" +msgstr "Sélectionner le préréglage du filament" msgid "Create Filament" msgstr "Création d’un filament" @@ -22633,13 +22883,13 @@ msgstr[0] "Les préréglages suivants héritent de ce préréglage." msgstr[1] "Le préréglage suivant hérite de ce préréglage." msgid "Delete Preset" -msgstr "Supprimer la présélection" +msgstr "Supprimer le préréglage" msgid "Are you sure to delete the selected preset?" msgstr "Êtes-vous sûr de vouloir supprimer le préréglage sélectionné ?" msgid "Delete preset" -msgstr "Effacer la présélection" +msgstr "Supprimer le préréglage" msgid "+ Add Preset" msgstr "+ Ajouter un préréglage" @@ -22668,8 +22918,8 @@ msgstr "Copier le préréglage du filament" msgid "The filament choice not find filament preset, please reselect it" msgstr "" -"Le choix du filament ne correspond pas à la présélection du filament, " -"veuillez le resélectionner" +"Le choix de filament ne correspond pas au préréglage de filament, veuillez " +"le resélectionner" msgid "[Delete Required]" msgstr "[Suppression requise]" @@ -22781,16 +23031,17 @@ msgstr "" "l'imprimante. Les agents disponibles sont enregistrés au démarrage." msgid "Select a Flashforge printer" -msgstr "" +msgstr "Sélectionner une imprimante Flashforge" msgid "Discovered Printers" -msgstr "" +msgstr "Imprimantes découvertes" msgid "Could not get a valid Printer Host reference" msgstr "Impossible d’obtenir une référence d’imprimante hôte valide" msgid "Valid session not detected. Proceed with login to 3DPrinterOS?" msgstr "" +"Aucune session valide détectée. Procéder à la connexion à 3DPrinterOS ?" msgid "Success!" msgstr "Succès !" @@ -22863,7 +23114,7 @@ msgid "Authorizing..." msgstr "Autorisation en cours…" msgid "Error session check" -msgstr "" +msgstr "Erreur lors de la vérification de la session" #, c-format, boost-format msgid "Mismatched type of print host: %s" @@ -23468,7 +23719,7 @@ msgid "Use External Spool" msgstr "Utiliser la bobine externe" msgid "Select Printers" -msgstr "Sélectionner des imprimantes" +msgstr "Sélectionner les imprimantes" msgid "Device Name" msgstr "Nom de l’appareil" @@ -23682,25 +23933,27 @@ msgstr "" "pour le configurer." msgid "Flashforge returned an invalid JSON response." -msgstr "" +msgstr "Flashforge a renvoyé une réponse JSON invalide." msgid "No Flashforge printers were discovered on the local network." -msgstr "" +msgstr "Aucune imprimante Flashforge n’a été découverte sur le réseau local." msgid "Connected to Flashforge local API successfully." -msgstr "" +msgstr "Connexion à l’API locale Flashforge réussie." msgid "Serial connection to Flashforge is working correctly." msgstr "La connexion série à Flashforge fonctionne correctement." msgid "Could not connect to Flashforge local API" -msgstr "" +msgstr "Impossible de se connecter à l’API locale Flashforge" msgid "Could not connect to Flashforge via serial" msgstr "Impossible de se connecter à Flashforge via la connexion série" msgid "Flashforge local API requires both serial number and access code." msgstr "" +"L’API locale Flashforge nécessite à la fois le numéro de série et le code " +"d’accès." msgid "The provided state is not correct." msgstr "L’état communiqué n’est pas correct." @@ -23761,10 +24014,10 @@ msgid "Please select single object." msgstr "Veuillez sélectionner un seul objet." msgid "Zoom Out" -msgstr "Dézoomer" +msgstr "Zoom arrière" msgid "Zoom In" -msgstr "Zoomer" +msgstr "Zoom avant" msgid "Load skipping objects information failed. Please try again." msgstr "" @@ -24087,8 +24340,8 @@ msgid "" "Auto-Arrange\n" "Did you know that you can auto-arrange all the objects in your project?" msgstr "" -"Agencement Automatique\n" -"Saviez-vous que vous pouvez agencement automatiquement tous les objets de " +"Agencement automatique\n" +"Saviez-vous que vous pouvez agencer automatiquement tous les objets de " "votre projet ?" #: resources/data/hints.ini: [hint:Auto-Orient] @@ -24371,6 +24624,249 @@ msgstr "" #~ "Veuillez vérifier votre connexion réseau\n" #~ "(HTTP %u)" +msgid "Entering Paint-on supports" +msgstr "Entrée dans Supports peints" + +msgid "Leaving Paint-on supports" +msgstr "Quitter Supports peints" + +msgid "Paint-on supports editing" +msgstr "Modification des supports peints" + +msgid "Entering Brim Ears" +msgstr "Entrée dans Bordure à oreilles" + +msgid "Leaving Brim Ears" +msgstr "Quitter Bordure à oreilles" + +msgid "Entering color painting" +msgstr "Entrée dans la mise en couleur" + +msgid "Leaving color painting" +msgstr "Quitter la mise en couleur" + +msgid "Color painting editing" +msgstr "Modification de la mise en couleur" + +msgid "Entering Paint-on fuzzy skin" +msgstr "Entrée dans Surface irrégulière peinte" + +msgid "Leaving Paint-on fuzzy skin" +msgstr "Quitter Surface irrégulière peinte" + +msgid "Paint-on fuzzy skin editing" +msgstr "Modification de la surface irrégulière peinte" + +msgid "Entering Cut gizmo" +msgstr "Entrée dans l’outil Couper" + +msgid "Leaving Cut gizmo" +msgstr "Quitter l’outil Couper" + +msgid "Cut gizmo editing" +msgstr "Modification de la découpe" + +msgid "Entering Measure gizmo" +msgstr "Entrée dans l’outil Mesurer" + +msgid "Leaving Measure gizmo" +msgstr "Quitter l’outil Mesurer" + +msgid "Entering Assembly gizmo" +msgstr "Entrée dans l’outil Assemblage" + +msgid "Leaving Assembly gizmo" +msgstr "Quitter l’outil Assemblage" + +msgid "Simple settings" +msgstr "Paramètres simples" + +msgid "Expert settings" +msgstr "Paramètres expert" + +msgid "Type to filter..." +msgstr "Saisissez du texte pour filtrer…" + +msgid "No selected items..." +msgstr "Aucun élément sélectionné…" + +msgid "All items selected..." +msgstr "Tous les éléments sont sélectionnés…" + +msgid "No matching items..." +msgstr "Aucun élément correspondant…" + +msgid "Select visible" +msgstr "Sélectionner les éléments visibles" + +msgid "Deselect visible" +msgstr "Désélectionner les éléments visibles" + +msgid "Filter selected" +msgstr "Filtrer les éléments sélectionnés" + +msgid "Filter nonSelected" +msgstr "Filtrer les éléments non sélectionnés" + +msgid "An unexpected error occurred" +msgstr "Une erreur inattendue s’est produite" + +msgid "The download has failed" +msgstr "Le téléchargement a échoué" + +msgid "Can't create file at %1%" +msgstr "Impossible de créer le fichier à l’emplacement %1%" + +msgid "Archive preview" +msgstr "Aperçu de l’archive" + +msgid "Open File" +msgstr "Ouvrir un fichier" + +msgid "Desktop Integration" +msgstr "Intégration au bureau" + +msgid "Performing desktop integration failed - Could not find executable." +msgstr "Échec de l’intégration au bureau : exécutable introuvable." + +msgid "Beta" +msgstr "Bêta" + +msgid "Sending failed, please try again!" +msgstr "L’envoi a échoué, veuillez réessayer !" + +msgid "Failed to create the temporary folder." +msgstr "Échec de la création du dossier temporaire." + +msgid "PresetBundle" +msgstr "Paquet de préréglages" + +msgid "ExportPresetBundle" +msgstr "Exporter le paquet de préréglages" + +msgid "Save preset bundle" +msgstr "Enregistrer le paquet de préréglages" + +msgid "Bundle folder does not exist." +msgstr "Le dossier du paquet n’existe pas." + +msgid "Failed to open folder." +msgstr "Impossible d’ouvrir le dossier." + +msgid "Delete selected bundle from folder and all presets loaded from it?" +msgstr "Supprimer le paquet sélectionné du dossier ainsi que tous les préréglages chargés depuis celui-ci ?" + +msgid "Delete Bundle" +msgstr "Supprimer le paquet" + +msgid "Failed to remove bundle." +msgstr "Impossible de retirer le paquet." + +msgid "Remove Bundle" +msgstr "Retirer le paquet" + +msgid "Unsubscribe bundle?" +msgstr "Se désabonner du paquet ?" + +msgid "UnsubscribeBundle" +msgstr "Se désabonner du paquet" + +msgid "Failed to unsubscribe bundle." +msgstr "Impossible de se désabonner du paquet." + +msgid "Unsubscribe Bundle" +msgstr "Se désabonner du paquet" + +msgid "The Hostname/IP/URL could not be parsed, please check it and try again." +msgstr "Le nom d’hôte/IP/URL n’a pas pu être analysé, veuillez le vérifier et réessayer." + +msgid "Could not parse server response." +msgstr "Impossible d’analyser la réponse du serveur." + +msgid "Connected to CrealityPrint successfully!" +msgstr "Connexion à CrealityPrint réussie !" + +msgid "Could not connect to CrealityPrint" +msgstr "Impossible de se connecter à CrealityPrint" + +msgid "Connection to ElegooLink is working correctly." +msgstr "La connexion à ElegooLink fonctionne correctement." + +msgid "Could not connect to ElegooLink" +msgstr "Impossible de se connecter à ElegooLink" + +msgid "ElegooLink not detected" +msgstr "ElegooLink non détecté" + +msgid "Invalid access code" +msgstr "Code d’accès invalide" + +msgid "CC2 device not detected" +msgstr "Appareil CC2 non détecté" + +msgid "CC2 upload failed" +msgstr "Échec de l’envoi vers la CC2" + +msgid "Upload failed" +msgstr "Échec de l’envoi" + +msgid "Printer returned an error" +msgstr "L’imprimante a renvoyé une erreur" + +msgid "Missing system_info in response" +msgstr "Champ system_info absent de la réponse" + +msgid "Missing printer serial number in response" +msgstr "Numéro de série de l’imprimante absent de la réponse" + +msgid "Error parsing response" +msgstr "Erreur lors de l’analyse de la réponse" + +msgid "Error code: %1%" +msgstr "Code d’erreur : %1%" + +msgid "Error code not found" +msgstr "Code d’erreur introuvable" + +msgid "Failed to open file for upload." +msgstr "Impossible d’ouvrir le fichier à envoyer." + +msgid "Failed to read file chunk for upload." +msgstr "Impossible de lire le fragment de fichier à envoyer." + +msgid "The file is empty or could not be read." +msgstr "Le fichier est vide ou n’a pas pu être lu." + +msgid "Failed to calculate file checksum." +msgstr "Impossible de calculer la somme de contrôle du fichier." + +msgid "The file is lost, please check and try again." +msgstr "Le fichier est introuvable, veuillez vérifier et réessayer." + +msgid "The file is corrupted, please check and try again." +msgstr "Le fichier est corrompu, veuillez vérifier et réessayer." + +msgid "Transmission abnormality, please check and try again." +msgstr "Anomalie de transmission, veuillez vérifier et réessayer." + +msgid "The file does not match the printer, please check and try again." +msgstr "Le fichier ne correspond pas à l’imprimante, veuillez vérifier et réessayer." + +msgid "Start print timeout" +msgstr "Délai de démarrage de l’impression dépassé" + +msgid "Start print failed" +msgstr "Échec du démarrage de l’impression" + +msgid "Error. Can't get api token for authorization" +msgstr "Erreur : impossible d’obtenir le jeton d’API pour l’autorisation" + +msgid "Error saving session to file" +msgstr "Erreur lors de l’enregistrement de la session dans un fichier" + +msgid "Error during file upload" +msgstr "Erreur pendant l’envoi du fichier" + #~ msgid "Cloud Error" #~ msgstr "Erreur cloud" diff --git a/localization/i18n/list.txt b/localization/i18n/list.txt index 99a47c198e..7d4516cc26 100644 --- a/localization/i18n/list.txt +++ b/localization/i18n/list.txt @@ -48,9 +48,12 @@ src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.h src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.cpp src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp +src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp +src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp +src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.hpp src/slic3r/GUI/Gizmos/GLGizmoMove.cpp src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp src/slic3r/GUI/Gizmos/GLGizmoScale.cpp @@ -58,6 +61,7 @@ src/slic3r/GUI/Gizmos/GLGizmosManager.cpp src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp src/slic3r/GUI/Gizmos/GLGizmoCut.cpp +src/slic3r/GUI/Gizmos/GLGizmoCut.hpp src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp src/slic3r/GUI/Gizmos/GLGizmoFaceDetector.cpp src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp @@ -67,7 +71,9 @@ src/slic3r/GUI/Gizmos/GLGizmoText.hpp src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp +src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp +src/slic3r/GUI/Gizmos/GLGizmoAssembly.hpp src/slic3r/GUI/GUI.cpp src/slic3r/GUI/GUI_App.cpp src/slic3r/GUI/GUI_AuxiliaryList.cpp @@ -89,6 +95,8 @@ src/slic3r/GUI/Widgets/AMSControl.cpp src/slic3r/GUI/Widgets/FanControl.cpp src/slic3r/GUI/Widgets/FilamentLoad.cpp src/slic3r/GUI/Widgets/TempInput.cpp +src/slic3r/GUI/Widgets/CheckList.cpp +src/slic3r/GUI/Widgets/SwitchButton.cpp src/slic3r/GUI/ImGuiWrapper.cpp src/slic3r/GUI/Jobs/ArrangeJob.cpp src/slic3r/GUI/Jobs/OrientJob.cpp @@ -98,6 +106,7 @@ src/slic3r/GUI/Jobs/BindJob.cpp src/slic3r/GUI/Jobs/PrintJob.cpp src/slic3r/GUI/Jobs/SendJob.cpp src/slic3r/GUI/Jobs/EmbossJob.cpp +src/slic3r/GUI/Jobs/PlaterWorker.hpp src/slic3r/GUI/ThermalPreconditioningDialog.cpp src/slic3r/GUI/ThermalPreconditioningDialog.hpp src/slic3r/GUI/Jobs/SLAImportJob.cpp @@ -237,8 +246,12 @@ src/slic3r/GUI/FilamentMapPanel.cpp src/slic3r/Utils/Obico.cpp src/slic3r/Utils/SimplyPrint.cpp src/slic3r/Utils/Flashforge.cpp +src/slic3r/Utils/ElegooLink.cpp +src/slic3r/Utils/CrealityPrint.cpp +src/slic3r/Utils/PrintHost.cpp src/slic3r/GUI/Jobs/OAuthJob.cpp src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp +src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp src/slic3r/GUI/PartSkipDialog.cpp src/slic3r/GUI/PartSkipDialog.hpp src/slic3r/GUI/SkipPartCanvas.cpp @@ -250,4 +263,12 @@ src/slic3r/GUI/NetworkPluginDialog.cpp src/slic3r/GUI/RammingChart.cpp src/slic3r/GUI/StepMeshDialog.cpp src/slic3r/GUI/FilamentPickerDialog.hpp +src/slic3r/GUI/PresetBundleDialog.cpp +src/slic3r/GUI/ExportPresetBundleDialog.cpp +src/slic3r/GUI/DesktopIntegrationDialog.cpp +src/slic3r/GUI/Downloader.cpp +src/slic3r/GUI/DownloaderFileGet.cpp +src/slic3r/GUI/FileArchiveDialog.cpp +src/slic3r/GUI/PrinterCloudAuthDialog.cpp +src/slic3r/GUI/PrinterWebViewHandler.cpp src/libslic3r/PresetBundle.cpp diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp index deb6525bfa..8b1ff2ca62 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp @@ -3,6 +3,7 @@ #include "GLGizmoBase.hpp" #include "slic3r/GUI/GLSelectionRectangle.hpp" +#include "slic3r/GUI/I18N.hpp" #include "libslic3r/BrimEarsPoint.hpp" #include "libslic3r/ObjectID.hpp" @@ -87,8 +88,8 @@ public: bool is_selection_rectangle_dragging() const { return m_selection_rectangle.is_dragging(); } bool wants_enter_leave_snapshots() const override { return true; } - std::string get_gizmo_entering_text() const override { return "Entering Brim Ears"; } - std::string get_gizmo_leaving_text() const override { return "Leaving Brim Ears"; } + std::string get_gizmo_entering_text() const override { return _u8L("Entering Brim Ears"); } + std::string get_gizmo_leaving_text() const override { return _u8L("Leaving Brim Ears"); } private: bool on_init() override; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp index 133e71e2f1..f42d327a0e 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp @@ -6,6 +6,7 @@ #include "libslic3r/Print.hpp" #include "libslic3r/ObjectID.hpp" #include "slic3r/GUI/3DScene.hpp" +#include "slic3r/GUI/I18N.hpp" #include @@ -36,9 +37,9 @@ protected: void render_tooltip_button(float x, float y); wxString handle_snapshot_action_name(bool shift_down, Button button_down) const override; - std::string get_gizmo_entering_text() const override { return "Entering Paint-on supports"; } - std::string get_gizmo_leaving_text() const override { return "Leaving Paint-on supports"; } - std::string get_action_snapshot_name() const override { return "Paint-on supports editing"; } + std::string get_gizmo_entering_text() const override { return _u8L("Entering Paint-on supports"); } + std::string get_gizmo_leaving_text() const override { return _u8L("Leaving Paint-on supports"); } + std::string get_action_snapshot_name() const override { return _u8L("Paint-on supports editing"); } // BBS wchar_t m_current_tool = 0; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp index eb8473aea6..55308bffa9 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp @@ -2,6 +2,7 @@ #define slic3r_GLGizmoMmuSegmentation_hpp_ #include "GLGizmoPainterBase.hpp" +#include "slic3r/GUI/I18N.hpp" namespace Slic3r::GUI { @@ -100,9 +101,9 @@ protected: wxString handle_snapshot_action_name(bool shift_down, Button button_down) const override; - std::string get_gizmo_entering_text() const override { return "Entering color painting"; } - std::string get_gizmo_leaving_text() const override { return "Leaving color painting"; } - std::string get_action_snapshot_name() const override { return "Color painting editing"; } + std::string get_gizmo_entering_text() const override { return _u8L("Entering color painting"); } + std::string get_gizmo_leaving_text() const override { return _u8L("Leaving color painting"); } + std::string get_action_snapshot_name() const override { return _u8L("Color painting editing"); } // BBS size_t m_selected_extruder_idx = 0; diff --git a/src/slic3r/GUI/PartSkipDialog.cpp b/src/slic3r/GUI/PartSkipDialog.cpp index 87d8b714b6..5820a40c66 100644 --- a/src/slic3r/GUI/PartSkipDialog.cpp +++ b/src/slic3r/GUI/PartSkipDialog.cpp @@ -367,7 +367,7 @@ std::string PartSkipDialog::create_tmp_path() } std::string tmp_path = (parent_path / buf.str()).string(); - if (!std::filesystem::exists(tmp_path + "Metadata/") && !fs::create_directories(tmp_path + "Metadata/")) { wxMessageBox("create file failed."); } + if (!std::filesystem::exists(tmp_path + "Metadata/") && !fs::create_directories(tmp_path + "Metadata/")) { wxMessageBox(_L("Failed to create the temporary folder.")); } return tmp_path; } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index c6a5ac3aba..ad1dbab30b 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -6225,12 +6225,12 @@ std::vector Plater::priv::load_files(const std::vector& input_ BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << " " << boost::format("%1%: %2%")%it->first %it->second; // NotificationManager *notify_manager = q->get_notification_manager(); - std::string error_message = L("Invalid values found in the 3MF:"); + std::string error_message = _u8L("Invalid values found in the 3MF:"); error_message += "\n"; for (std::map::iterator it=validity.begin(); it!=validity.end(); ++it) error_message += "-" + it->first + ": " + it->second + "\n"; error_message += "\n"; - error_message += L("Please correct them in the param tabs"); + error_message += _u8L("Please correct them in the param tabs"); notify_manager->bbl_show_3mf_warn_notification(error_message); } } diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp index 42a0108383..e4c735f142 100644 --- a/src/slic3r/GUI/PrintHostDialogs.cpp +++ b/src/slic3r/GUI/PrintHostDialogs.cpp @@ -562,7 +562,7 @@ void PrintHostSendDialog::init() // }); // } - add_button(wxID_CANCEL,false, L("Cancel")); + add_button(wxID_CANCEL,false, _L("Cancel")); finalize(); #ifdef __linux__ diff --git a/src/slic3r/GUI/PrinterCloudAuthDialog.cpp b/src/slic3r/GUI/PrinterCloudAuthDialog.cpp index 4d29d9b1c1..41e5cebced 100644 --- a/src/slic3r/GUI/PrinterCloudAuthDialog.cpp +++ b/src/slic3r/GUI/PrinterCloudAuthDialog.cpp @@ -23,7 +23,7 @@ namespace Slic3r { namespace GUI { PrinterCloudAuthDialog::PrinterCloudAuthDialog(wxWindow* parent, PrintHost* host) - : wxDialog((wxWindow*) (wxGetApp().mainframe), wxID_ANY, "Login") + : wxDialog((wxWindow*) (wxGetApp().mainframe), wxID_ANY, _L("Login")) { SetBackgroundColour(*wxWHITE); // Url diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index f399337c0f..9463bdb741 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -607,7 +607,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater) auto completedimg = new wxStaticBitmap(m_panel_finish, wxID_ANY, create_scaled_bitmap("completed", m_panel_finish, 25), wxDefaultPosition, wxSize(imgsize, imgsize), 0); m_sizer_finish_h->Add(completedimg, 0, wxALIGN_CENTER | wxALL, FromDIP(5)); - m_statictext_finish = new wxStaticText(m_panel_finish, wxID_ANY, L("Send complete"), wxDefaultPosition, wxDefaultSize, 0); + m_statictext_finish = new wxStaticText(m_panel_finish, wxID_ANY, _L("Send complete"), wxDefaultPosition, wxDefaultSize, 0); m_statictext_finish->Wrap(-1); m_statictext_finish->SetForegroundColour(wxColour(0, 150, 136)); m_sizer_finish_h->Add(m_statictext_finish, 0, wxALIGN_CENTER | wxALL, FromDIP(5)); diff --git a/src/slic3r/GUI/SendToPrinter.cpp b/src/slic3r/GUI/SendToPrinter.cpp index 789d080666..ed64f922c0 100644 --- a/src/slic3r/GUI/SendToPrinter.cpp +++ b/src/slic3r/GUI/SendToPrinter.cpp @@ -61,10 +61,10 @@ static const std::map error_messages = { {SendToPrinterDialog::SEND_ERR, L("File upload failed, please try again.")} }; -static std::string ParseErrorCode(int errorcde) +static wxString ParseErrorCode(int errorcde) { auto it = error_messages.find(errorcde); - if (it != error_messages.end()) { return it->second; } + if (it != error_messages.end()) { return _L(it->second); } return ""; } @@ -367,7 +367,7 @@ SendToPrinterDialog::SendToPrinterDialog(Plater *plater) auto completedimg = new wxStaticBitmap(m_panel_finish, wxID_ANY, create_scaled_bitmap("completed", m_panel_finish, 25), wxDefaultPosition, wxSize(imgsize, imgsize), 0); m_sizer_finish_h->Add(completedimg, 0, wxALIGN_CENTER | wxALL, FromDIP(5)); - m_statictext_finish = new wxStaticText(m_panel_finish, wxID_ANY, L("Send complete"), wxDefaultPosition, wxDefaultSize, 0); + m_statictext_finish = new wxStaticText(m_panel_finish, wxID_ANY, _L("Send complete"), wxDefaultPosition, wxDefaultSize, 0); m_statictext_finish->Wrap(-1); m_statictext_finish->SetForegroundColour(wxColour(0, 150, 136)); m_sizer_finish_h->Add(m_statictext_finish, 0, wxALIGN_CENTER | wxALL, FromDIP(5)); @@ -1982,7 +1982,7 @@ void SendToPrinterDialog::UploadFileRessultCallback(int res, int resp_ec, std::s if (ParseErrorCode(resp_ec) != "") update_print_status_msg(ParseErrorCode(resp_ec), false, true); else - update_print_status_msg("Sending failed, please try again!", false, true); + update_print_status_msg(_L("Sending failed, please try again!"), false, true); m_filetransfer_uploadfile_job.reset(); m_filetransfer_uploadfile_job = nullptr; } diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 1e9bc53f47..60cf80a472 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -685,7 +685,7 @@ void PrintingTaskPanel::create_panel(wxWindow* parent) #endif - m_staticText_progress_left = new wxStaticText(penel_text, wxID_ANY, L("N/A"), wxDefaultPosition, wxDefaultSize, 0); + m_staticText_progress_left = new wxStaticText(penel_text, wxID_ANY, _L("N/A"), wxDefaultPosition, wxDefaultSize, 0); m_staticText_progress_left->Wrap(-1); m_staticText_progress_left->SetFont(wxFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("HarmonyOS Sans SC"))); m_staticText_progress_left->SetForegroundColour(wxColour(146, 146, 146)); @@ -787,7 +787,7 @@ void PrintingTaskPanel::create_panel(wxWindow* parent) m_printing_stage_panel->SetSizer(printingstage_vertical_sizer); // Orca: display the end time of the print - m_staticText_progress_end = new wxStaticText(penel_finish_time, wxID_ANY, L("N/A"), wxDefaultPosition, wxDefaultSize, 0); + m_staticText_progress_end = new wxStaticText(penel_finish_time, wxID_ANY, _L("N/A"), wxDefaultPosition, wxDefaultSize, 0); m_staticText_progress_end->Wrap(-1); m_staticText_progress_end->SetFont( wxFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("HarmonyOS Sans SC"))); diff --git a/src/slic3r/GUI/UpgradePanel.cpp b/src/slic3r/GUI/UpgradePanel.cpp index 3a42f7343d..406e9794bf 100644 --- a/src/slic3r/GUI/UpgradePanel.cpp +++ b/src/slic3r/GUI/UpgradePanel.cpp @@ -109,7 +109,7 @@ MachineInfoPanel::MachineInfoPanel(wxWindow* parent, wxWindowID id, const wxPoin m_staticText_ver_val->Wrap(-1); - m_staticText_beta_version = new wxStaticText(this, wxID_ANY, "Beta", wxDefaultPosition, wxDefaultSize, 0); + m_staticText_beta_version = new wxStaticText(this, wxID_ANY, _L("Beta"), wxDefaultPosition, wxDefaultSize, 0); m_staticText_beta_version->SetForegroundColour("#778899"); m_staticText_beta_version->Wrap(-1); m_staticText_beta_version->Hide(); @@ -1571,7 +1571,7 @@ bool UpgradePanel::Show(bool show) m_staticText_ams_ver_val->SetForegroundColour("#262E30"); m_staticText_ams_ver_val->Wrap(-1); - m_staticText_beta_version = new wxStaticText(this, wxID_ANY, "Beta", wxDefaultPosition, wxDefaultSize, 0); + m_staticText_beta_version = new wxStaticText(this, wxID_ANY, _L("Beta"), wxDefaultPosition, wxDefaultSize, 0); m_staticText_beta_version->SetForegroundColour("#778899"); m_staticText_beta_version->Wrap(-1); m_staticText_beta_version->Hide(); diff --git a/src/slic3r/Utils/3DPrinterOS.cpp b/src/slic3r/Utils/3DPrinterOS.cpp index 27a8b74916..79c8a62700 100755 --- a/src/slic3r/Utils/3DPrinterOS.cpp +++ b/src/slic3r/Utils/3DPrinterOS.cpp @@ -323,7 +323,7 @@ bool C3DPrinterOS::login(wxString& msg) const msg.clear(); std::string token = get_api_auth_token(msg); if (token.empty()) { - msg = "Error. Can't get api token for authorization"; + msg = _L("Error. Can't get api token for authorization"); return false; } @@ -341,12 +341,12 @@ bool C3DPrinterOS::login(wxString& msg) const return false; } } catch (const std::exception&) { - msg = "Could not parse server response"; + msg = _L("Could not parse server response."); return false; } bool res = save_api_session(session, email); if (!res) { - msg = "Error saving session to file"; + msg = _L("Error saving session to file"); } return res; } @@ -395,7 +395,7 @@ bool C3DPrinterOS::upload( } } } catch (const std::exception &) { - error_fn("Could not parse server response"); + error_fn(_L("Could not parse server response.")); return false; } @@ -404,7 +404,7 @@ bool C3DPrinterOS::upload( UploadOptionsDialog dlg(GUI::wxGetApp().GetTopWindow(), cloud_projects_list, cloud_printer_types_list, m_preset_name); if (dlg.ShowModal() != wxID_OK) { - error_fn("Canceled"); + error_fn(_L("Canceled")); return false; } @@ -483,7 +483,7 @@ bool C3DPrinterOS::upload( } } catch (const std::exception &) { res = false; - error_fn("Error during file upload"); + error_fn(_L("Error during file upload")); } // set printer type for uploaded gcode if (res) { @@ -542,7 +542,7 @@ std::string C3DPrinterOS::get_api_auth_token(wxString &err) const err = wxString(resp.get("message").c_str()); } } catch (const std::exception &) { - err = "Could not parse server response"; + err = _L("Could not parse server response."); } return result; } @@ -566,7 +566,7 @@ bool C3DPrinterOS::check_session(wxString &msg) const { } } catch (const std::exception &) { - msg = wxString("Could not parse server response"); + msg = _L("Could not parse server response."); return false; } return false; diff --git a/src/slic3r/Utils/AstroBox.cpp b/src/slic3r/Utils/AstroBox.cpp index fd2bd1c78c..61f9f96c33 100644 --- a/src/slic3r/Utils/AstroBox.cpp +++ b/src/slic3r/Utils/AstroBox.cpp @@ -71,7 +71,7 @@ bool AstroBox::test(wxString &msg) const } catch (const std::exception &) { res = false; - msg = "Could not parse server response"; + msg = _L("Could not parse server response."); } }) .perform_sync(); diff --git a/src/slic3r/Utils/Duet.cpp b/src/slic3r/Utils/Duet.cpp index df2e4001c5..37db6b6c33 100644 --- a/src/slic3r/Utils/Duet.cpp +++ b/src/slic3r/Utils/Duet.cpp @@ -85,7 +85,7 @@ bool Duet::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn e int err_code = dsf ? (status == 201 ? 0 : 1) : get_err_code_from_body(body); if (err_code != 0) { BOOST_LOG_TRIVIAL(error) << boost::format("Duet: Request completed but error code was received: %1%") % err_code; - error_fn(format_error(body, L("Unknown error occurred"), 0)); + error_fn(format_error(body, _u8L("Unknown error occurred"), 0)); res = false; } else if (upload_data.post_action == PrintHostPostUploadAction::StartPrint) { wxString errormsg; @@ -148,13 +148,13 @@ Duet::ConnectionType Duet::connect(wxString &msg) const res = ConnectionType::rrf; break; case 1: - msg = format_error(body, L("Wrong password"), 0); + msg = format_error(body, _u8L("Wrong password"), 0); break; case 2: - msg = format_error(body, L("Could not get resources to create a new connection"), 0); + msg = format_error(body, _u8L("Could not get resources to create a new connection"), 0); break; default: - msg = format_error(body, L("Unknown error occurred"), 0); + msg = format_error(body, _u8L("Unknown error occurred"), 0); break; } diff --git a/src/slic3r/Utils/ElegooLink.cpp b/src/slic3r/Utils/ElegooLink.cpp index 72276bf7b2..0dc291d29c 100644 --- a/src/slic3r/Utils/ElegooLink.cpp +++ b/src/slic3r/Utils/ElegooLink.cpp @@ -141,9 +141,9 @@ namespace Slic3r { const int error_code = root.get("error_code", -1); if (error_code != 0) { - error_message = root.get("message", "Printer returned an error"); + error_message = root.get("message", _u8L("Printer returned an error")); if (error_message.empty()) - error_message = "Printer returned an error"; + error_message = _u8L("Printer returned an error"); error_message += " (" + std::to_string(error_code) + ")"; return false; } @@ -151,13 +151,13 @@ namespace Slic3r { if (serial_number != nullptr) { const auto system_info = root.get_child_optional("system_info"); if (!system_info) { - error_message = "Missing system_info in response"; + error_message = _u8L("Missing system_info in response"); return false; } const auto sn = system_info->get_optional("sn"); if (!sn || sn->empty()) { - error_message = "Missing printer serial number in response"; + error_message = _u8L("Missing printer serial number in response"); return false; } *serial_number = *sn; @@ -165,7 +165,7 @@ namespace Slic3r { return true; } catch (const std::exception&) { - error_message = "Error parsing response"; + error_message = _u8L("Error parsing response"); return false; } } @@ -431,7 +431,7 @@ namespace Slic3r { if (std::regex_search(body, match, re)) { res = true; } else { - msg = format_error(body, "ElegooLink not detected", 0); + msg = format_error(body, _u8L("ElegooLink not detected"), 0); res = false; } }) @@ -472,9 +472,9 @@ namespace Slic3r { BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error getting CC2 device info: %2%, HTTP %3%, body: `%4%`") % name % error % status % body; res = false; if (status == 401 || status == 403) - msg = format_error(body, "Invalid access code", status); + msg = format_error(body, _u8L("Invalid access code"), status); else - msg = format_error(body, error.empty() ? "CC2 device not detected" : error, status); + msg = format_error(body, error.empty() ? _u8L("CC2 device not detected") : error, status); }) .on_complete([&](std::string body, unsigned status) { BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Got CC2 device info: %2%") % name % body; @@ -482,7 +482,7 @@ namespace Slic3r { std::string serial_number; if (!parse_cc2_response(body, error_message, &serial_number)) { res = false; - msg = format_error(body, error_message.empty() ? "CC2 device not detected" : error_message, status); + msg = format_error(body, error_message.empty() ? _u8L("CC2 device not detected") : error_message, status); return; } persist_sn(Http::get_host_header_value(m_host), token, serial_number); @@ -531,7 +531,7 @@ namespace Slic3r { if (std::regex_search(body, match, re)) { res = true; } else { - msg = format_error(body, "ElegooLink not detected", 0); + msg = format_error(body, _u8L("ElegooLink not detected"), 0); res = false; } }) @@ -570,16 +570,16 @@ namespace Slic3r { error % status % body; res = false; if (status == 401 || status == 403) - msg = format_error(body, "Invalid access code", status); + msg = format_error(body, _u8L("Invalid access code"), status); else - msg = format_error(body, error.empty() ? "CC2 device not detected" : error, status); + msg = format_error(body, error.empty() ? _u8L("CC2 device not detected") : error, status); }) .on_complete([&](std::string body, unsigned status) { std::string error_message; std::string serial_number; if (!parse_cc2_response(body, error_message, &serial_number)) { res = false; - msg = format_error(body, error_message.empty() ? "CC2 device not detected" : error_message, status); + msg = format_error(body, error_message.empty() ? _u8L("CC2 device not detected") : error_message, status); return; } res = true; @@ -735,7 +735,7 @@ namespace Slic3r { } else { // get error messages pt::ptree messages = root.get_child("messages"); - std::string error_message = "ErrorCode : " + code + "\n"; + std::string error_message = (boost::format(_u8L("Error code: %1%")) % code).str() + "\n"; for (pt::ptree::value_type& message : messages) { std::string field = message.second.get("field"); std::string msg = message.second.get("message"); @@ -745,10 +745,10 @@ namespace Slic3r { } } catch (...) { BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error parsing response: %2%") % name % body; - error_fn(wxString::FromUTF8("Error parsing response")); + error_fn(_L("Error parsing response")); } } else { - error_fn(format_error(body, "upload failed", status)); + error_fn(format_error(body, _u8L("Upload failed"), status)); } }) .on_error([&](std::string body, std::string error, unsigned status) { @@ -921,7 +921,7 @@ namespace Slic3r { BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: CC2 chunk uploaded: HTTP %2%: %3%") % name % status % body; std::string error_message; if (!parse_cc2_response(body, error_message)) { - error_fn(format_error(body, error_message.empty() ? "CC2 upload failed" : error_message, status)); + error_fn(format_error(body, error_message.empty() ? _u8L("CC2 upload failed") : error_message, status)); return; } result = true; @@ -929,9 +929,9 @@ namespace Slic3r { .on_error([&](std::string body, std::string error, unsigned status) { BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error uploading CC2 chunk: %2%, HTTP %3%, body: `%4%`") % name % error % status % body; if (status == 401 || status == 403) - error_fn(format_error(body, "Invalid access code", status)); + error_fn(format_error(body, _u8L("Invalid access code"), status)); else - error_fn(format_error(body, error.empty() ? "CC2 upload failed" : error, status)); + error_fn(format_error(body, error.empty() ? _u8L("CC2 upload failed") : error, status)); }) .on_progress([&](Http::Progress progress, bool& cancel) { if (progress.ultotal == progress.ulnow) diff --git a/src/slic3r/Utils/FixModelByCgal.cpp b/src/slic3r/Utils/FixModelByCgal.cpp index 9e2e014d93..8d196f7201 100644 --- a/src/slic3r/Utils/FixModelByCgal.cpp +++ b/src/slic3r/Utils/FixModelByCgal.cpp @@ -85,7 +85,7 @@ bool fix_model_with_cgal_gui(ModelObject &model_object, int volume_idx, GUI::Pro size_t ivolume = 0; // Orca: Lambda for updating progress from worker thread. - auto on_progress = [&mtx, &condition, &ivolume, &model_object, &progress](const char *msg, unsigned prcnt) { + auto on_progress = [&mtx, &condition, &ivolume, &model_object, &progress](const std::string &msg, unsigned prcnt) { std::unique_lock lock(mtx); progress.message = msg; const size_t total = std::max(1, model_object.volumes.size()); @@ -108,7 +108,7 @@ bool fix_model_with_cgal_gui(ModelObject &model_object, int volume_idx, GUI::Pro if (canceled) throw RepairCanceledException(); - on_progress(L("Repairing model object"), 10); + on_progress(_u8L("Repairing model object"), 10); ModelVolume *volume = model_object.volumes[ivolume]; @@ -118,7 +118,7 @@ bool fix_model_with_cgal_gui(ModelObject &model_object, int volume_idx, GUI::Pro parts_count = volume->split(1, keep_painting); if (parts_count > 1) { const std::string msg = Slic3r::format(L("Split into %1% parts"), parts_count); - on_progress(msg.c_str(), 10); + on_progress(msg, 10); } } @@ -145,7 +145,7 @@ bool fix_model_with_cgal_gui(ModelObject &model_object, int volume_idx, GUI::Pro if (removed_parts >= parts_count) { ivolume = part_end; - on_progress(L("Repair finished"), 100); + on_progress(_u8L("Repair finished"), 100); continue; } @@ -161,7 +161,7 @@ bool fix_model_with_cgal_gui(ModelObject &model_object, int volume_idx, GUI::Pro std::string error; if (!MeshBoolean::cgal::repair(mesh, nullptr, &error)) - throw Slic3r::RuntimeError(error.empty() ? L("Repair failed") : error.c_str()); + throw Slic3r::RuntimeError(error.empty() ? _u8L("Repair failed") : error); part_volume->set_mesh(std::move(mesh)); part_volume->calculate_convex_hull(); @@ -175,20 +175,20 @@ bool fix_model_with_cgal_gui(ModelObject &model_object, int volume_idx, GUI::Pro ivolume = part_end; - on_progress(L("Repair finished"), 100); + on_progress(_u8L("Repair finished"), 100); } model_object.invalidate_bounding_box(); if (ivolume > 0) --ivolume; - on_progress(L("Repair finished"), 100); + on_progress(_u8L("Repair finished"), 100); success = true; finished = true; } catch (RepairCanceledException &) { canceled = true; finished = true; - on_progress(L("Repair canceled"), 100); + on_progress(_u8L("Repair canceled"), 100); } catch (std::exception &ex) { success = false; finished = true; diff --git a/src/slic3r/Utils/FlashAir.cpp b/src/slic3r/Utils/FlashAir.cpp index 6976d8fb24..f2d66fd012 100644 --- a/src/slic3r/Utils/FlashAir.cpp +++ b/src/slic3r/Utils/FlashAir.cpp @@ -119,7 +119,7 @@ bool FlashAir::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, Error res = boost::icontains(body, "SUCCESS"); if (! res) { BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Request completed but no SUCCESS message was received.") % name; - error_fn(format_error(body, L("Unknown error occurred"), 0)); + error_fn(format_error(body, _u8L("Unknown error occurred"), 0)); } }) .perform_sync(); @@ -140,7 +140,7 @@ bool FlashAir::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, Error res = boost::icontains(body, "SUCCESS"); if (! res) { BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Request completed but no SUCCESS message was received.") % name; - error_fn(format_error(body, L("Unknown error occurred"), 0)); + error_fn(format_error(body, _u8L("Unknown error occurred"), 0)); } }) .perform_sync(); @@ -156,7 +156,7 @@ bool FlashAir::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, Error res = boost::icontains(body, "SUCCESS"); if (! res) { BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Request completed but no SUCCESS message was received.") % name; - error_fn(format_error(body, L("Unknown error occurred"), 0)); + error_fn(format_error(body, _u8L("Unknown error occurred"), 0)); } }) .on_error([&](std::string body, std::string error, unsigned status) { diff --git a/src/slic3r/Utils/MKS.cpp b/src/slic3r/Utils/MKS.cpp index 092a933c9e..c4aa4c7262 100644 --- a/src/slic3r/Utils/MKS.cpp +++ b/src/slic3r/Utils/MKS.cpp @@ -84,7 +84,7 @@ bool MKS::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn er int err_code = get_err_code_from_body(body); if (err_code != 0) { BOOST_LOG_TRIVIAL(error) << boost::format("MKS: Request completed but error code was received: %1%") % err_code; - error_fn(format_error(body, L("Unknown error occurred"), 0)); + error_fn(format_error(body, _u8L("Unknown error occurred"), 0)); res = false; } else if (upload_data.post_action == PrintHostPostUploadAction::StartPrint) { diff --git a/src/slic3r/Utils/OctoPrint.cpp b/src/slic3r/Utils/OctoPrint.cpp index ece2680a73..cfae9babdc 100644 --- a/src/slic3r/Utils/OctoPrint.cpp +++ b/src/slic3r/Utils/OctoPrint.cpp @@ -183,7 +183,7 @@ bool OctoPrint::test_with_resolved_ip(wxString &msg) const } catch (const std::exception&) { res = false; - msg = "Could not parse server response."; + msg = _L("Could not parse server response."); } }) .ssl_revoke_best_effort(m_ssl_revoke_best_effort) @@ -232,7 +232,7 @@ bool OctoPrint::test(wxString& msg) const } catch (const std::exception &) { res = false; - msg = "Could not parse server response"; + msg = _L("Could not parse server response."); } }) #ifdef WIN32 @@ -635,7 +635,7 @@ bool PrusaLink::test(wxString& msg) const } catch (const std::exception&) { res = false; - msg = "Could not parse server response"; + msg = _L("Could not parse server response."); } }) #ifdef WIN32 @@ -811,7 +811,7 @@ bool PrusaLink::test_with_method_check(wxString& msg, bool& use_put) const } catch (const std::exception&) { res = false; - msg = "Could not parse server response"; + msg = _L("Could not parse server response."); } }) #ifdef WIN32 @@ -891,7 +891,7 @@ bool PrusaLink::test_with_resolved_ip_and_method_check(wxString& msg, bool& use_ } catch (const std::exception&) { res = false; - msg = "Could not parse server response"; + msg = _L("Could not parse server response."); } }) diff --git a/src/slic3r/Utils/Repetier.cpp b/src/slic3r/Utils/Repetier.cpp index 0b52309da4..0d269e1cd5 100644 --- a/src/slic3r/Utils/Repetier.cpp +++ b/src/slic3r/Utils/Repetier.cpp @@ -90,7 +90,7 @@ bool Repetier::test(wxString &msg) const } catch (const std::exception &) { res = false; - msg = "Could not parse server response"; + msg = _L("Could not parse server response."); } }) .perform_sync();