Skip to content

Commit

Permalink
Merge pull request #31 from 5axes/release
Browse files Browse the repository at this point in the history
Add French Translation
  • Loading branch information
fieldOfView committed Mar 20, 2023
2 parents 0802dc2 + 27308d8 commit e2b2449
Show file tree
Hide file tree
Showing 3 changed files with 362 additions and 6 deletions.
21 changes: 15 additions & 6 deletions MeshTools.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,7 @@
from .SetTransformMatrixOperation import SetTransformMatrixOperation
from .SetParentOperationSimplified import SetParentOperationSimplified
from .SetMeshDataAndNameOperation import SetMeshDataAndNameOperation

from UM.i18n import i18nCatalog
catalog = i18nCatalog("meshtools")


import os
import sys
import numpy
Expand All @@ -53,6 +50,18 @@

from typing import Optional, List, Dict

from UM.Resources import Resources
from UM.i18n import i18nCatalog

Resources.addSearchPath(
os.path.join(os.path.abspath(os.path.dirname(__file__)))
) # Plugin translation file import

catalog = i18nCatalog("meshtools")

if catalog.hasTranslationLoaded():
Logger.log("i", "Mesh-Tool Plugin translation loaded!")

class MeshTools(Extension, QObject,):
def __init__(self, parent = None) -> None:
QObject.__init__(self, parent)
Expand Down Expand Up @@ -319,9 +328,9 @@ def analyseMeshes(self) -> None:
for node in nodes_list:
tri_node = self._toTriMesh(node.getMeshDataTransformed())
message_body = message_body + "\n - %s:" % node.getName()
message_body += "\n\t" + "%d vertices, %d faces" % (len(tri_node.vertices), len(tri_node.faces))
message_body += "\n\t" + catalog.i18nc("@info:status", "%d vertices, %d faces") % (len(tri_node.vertices), len(tri_node.faces))
if tri_node.is_watertight:
message_body += "\n\t" + "area: %d mm2, volume: %d mm3" % (tri_node.area, tri_node.volume)
message_body += "\n\t" + catalog.i18nc("@info:status", "area: %d mm2, volume: %d mm3") % (tri_node.area, tri_node.volume)

self._message.setText(message_body)
self._message.show()
Expand Down
Binary file added i18n/fr_FR/LC_MESSAGES/meshtools.mo
Binary file not shown.
347 changes: 347 additions & 0 deletions i18n/fr_FR/meshtools.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,347 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the Mesh Tools package.
# 5axes <5axes@free.fr>, 2023.
msgid ""
msgstr ""
"Project-Id-Version: Mesh Tools\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-28 13:00+0000\n"
"PO-Revision-Date: 2023-02-27 17:07+0200\n"
"Last-Translator: 5axes <5axes@free.fr>\n"
"Language-Team: 5axes\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Virtaal 0.7.1\n"

#: MeshTools.py:81 qml_qt5/MeshToolsMenu.qml:18 qml/MeshToolsMenu.qml:19
msgctxt "@item:inmenu"
msgid "Reload model"
msgstr "Recharger le modèle"

#: MeshTools.py:82 qml_qt5/MeshToolsMenu.qml:24 qml/MeshToolsMenu.qml:25
msgctxt "@item:inmenu"
msgid "Rename model..."
msgstr "Renommer modèle..."

#: MeshTools.py:83
msgctxt "@item:inmenu"
msgid "Replace models..."
msgstr "Remplacer modèles..."

#: MeshTools.py:85
msgctxt "@item:inmenu"
msgid "Check models"
msgstr "Vérifier les modèles"

#: MeshTools.py:86
msgctxt "@item:inmenu"
msgid "Analyse models"
msgstr "Analyser les modèles"

#: MeshTools.py:327
#, python-format
msgctxt "@info:status"
msgid "%d vertices, %d faces"
msgstr "%d sommets, %d faces"

#: MeshTools.py:329
#, python-format
msgctxt "@info:status"
msgid "area: %d mm2, volume: %d mm3"
msgstr "surface: %d mm2, volume: %d mm3"

#: MeshTools.py:87 qml_qt5/MeshToolsMenu.qml:49 qml/MeshToolsMenu.qml:50
msgctxt "@item:inmenu"
msgid "Fix simple holes"
msgstr "Boucher les trous simples"

#: MeshTools.py:88 qml_qt5/MeshToolsMenu.qml:55 qml/MeshToolsMenu.qml:56
msgctxt "@item:inmenu"
msgid "Fix model normals"
msgstr "Recalculer les normales du modèle"

#: MeshTools.py:89 qml_qt5/MeshToolsMenu.qml:61 qml/MeshToolsMenu.qml:62
msgctxt "@item:inmenu"
msgid "Split model into parts"
msgid_plural "Split models into parts"
msgstr[0] "Diviser le modèle en plusieurs parties"
msgstr[1] "Diviser les modèles en plusieurs parties"

#: MeshTools.py:91 qml_qt5/MeshToolsMenu.qml:68 qml/MeshToolsMenu.qml:69
msgctxt "@item:inmenu"
msgid "Randomise location"
msgstr "Localisation aléatoire"

#: MeshTools.py:92 qml_qt5/MeshToolsMenu.qml:74 qml/MeshToolsMenu.qml:75
msgctxt "@item:inmenu"
msgid "Apply transformations to mesh"
msgstr "Appliquer les transformations au maillage"

#: MeshTools.py:93 qml_qt5/MeshToolsMenu.qml:80 qml/MeshToolsMenu.qml:81
msgctxt "@item:inmenu"
msgid "Reset origin to center of mesh"
msgstr "Remettre l'origine au centre du maillage"

#: MeshTools.py:95
msgctxt "@item:inmenu"
msgid "Mesh Tools settings..."
msgstr "Paramètres de Mesh Tools..."

#: MeshTools.py:97 MeshTools.py:138 MeshTools.py:212
msgctxt "@info:title"
msgid "Mesh Tools"
msgstr "Mesh Tools"

#: MeshTools.py:206 MeshTools.py:483 MeshTools.py:547
msgctxt "@text Print job name"
msgid "Untitled"
msgstr "Sans Nom"

#: MeshTools.py:213
#, python-format
msgctxt "@info:status"
msgid "Model %s is not watertight, and may not print properly."
msgstr ""
"Le modèle %s n'est pas étanche et risque de ne pas s'imprimer correctement."

#: MeshTools.py:218
msgctxt "@info:status"
msgid "Check X-Ray View and repair the model before printing it."
msgstr "Vérifiez la vue aux Rayons-X et réparez le modèle avant de l'imprimer."

#: MeshTools.py:219
msgctxt "@action:button"
msgid "Show X-Ray View"
msgstr "Afficher la vue aux Rayons-X"

#: MeshTools.py:222
msgctxt "@info:status"
msgid "Repair the model before printing it."
msgstr "Réparez le modèle avant de l'imprimer."

#: MeshTools.py:260
msgctxt "@info:status"
msgid "Please select a single model first"
msgstr "Sélectionnez tout d'abord une pièce"

#: MeshTools.py:265 MeshTools.py:283
msgctxt "@info:status"
msgid "Please select one or more models first"
msgstr "Sélectionnez tout d'abord des pièces"

#: MeshTools.py:294
msgctxt "@info:status"
msgid "Check summary:"
msgstr "Résumé de la vérification :"

#: MeshTools.py:299
msgctxt "@info:status"
msgid "is watertight"
msgstr "est étanche"

#: MeshTools.py:301
msgctxt "@info:status"
msgid "is not watertight and may not print properly"
msgstr "n'est pas étanche et peut ne pas imprimer correctement"

#: MeshTools.py:303
#, python-brace-format
msgctxt "@info:status"
msgid "and consists of {body_count} submeshes"
msgstr "et consiste en {body_count} sous-ensembles"

#: MeshTools.py:314
msgctxt "@info:status"
msgid "Analysis summary:"
msgstr "Résumé de l'analyse :"

#: MeshTools.py:336
msgctxt "@info:status"
msgid "The mesh needs more extensive repair to become watertight"
msgstr ""
"La maille a besoin de réparations plus importantes pour devenir étanche."

#: MeshTools.py:356
msgctxt "@info:status"
msgid "Split result:"
msgstr "Résultat du fractionnement :"

#: MeshTools.py:362
#, python-format
msgctxt "@info:status"
msgid "was split in %d submeshes"
msgstr "a été divisé en %d sous-maillages"

#: MeshTools.py:364
msgctxt "@info:status"
msgid "could not be split into submeshes"
msgstr "n'a pas pu être divisé en sous-ensembles"

#: MeshTools.py:378
msgctxt "@info:status"
msgid "Replacing a group is not supported"
msgstr "Le remplacement d'un groupe n'est pas pris en charge"

#: MeshTools.py:399 MeshTools.py:404
msgctxt "@title:window"
msgid "Select Replacement Mesh File"
msgstr "Sélectionnez le fichier de maillage de remplacement"

#: MeshTools.py:448
msgctxt "@info:status"
msgid "Reloading a group is not supported"
msgstr "Le rechargement d'un groupe n'est pas pris en charge"

#: MeshTools.py:455
msgctxt "@info:status"
msgid "No link to the original file was found"
msgstr "Aucun lien vers le fichier original n'a été trouvé"

#: MeshTools.py:467
msgctxt "@info:status"
msgid "Failed to load mesh"
msgstr "Échec du chargement du maillage"

#: MeshTools.py:474
msgctxt "@info:status"
msgid "Replacing meshes with a group of meshes is not supported"
msgstr ""
"Le remplacement des maillages par un groupe de maillages n'est pas pris en "
"charge."

#: qml_qt5/RenameDialog.qml:24 qml/RenameDialog.qml:25
msgctxt "@title:window"
msgid "Rename"
msgstr "Renommer"

#: qml_qt5/RenameDialog.qml:25 qml/RenameDialog.qml:26
msgctxt "@info"
msgid "Please provide a new name."
msgstr "Veuillez indiquer un nouveau nom."

#: qml_qt5/RenameDialog.qml:74 qml/RenameDialog.qml:66
msgctxt "@action:button"
msgid "Cancel"
msgstr "Annuler"

#: qml_qt5/RenameDialog.qml:79 qml/RenameDialog.qml:72
msgctxt "@action:button"
msgid "OK"
msgstr "OK"

#: qml_qt5/MeshToolsMenu.qml:30 qml/MeshToolsMenu.qml:31
msgctxt "@item:inmenu"
msgid "Replace model..."
msgid_plural "Replace models..."
msgstr[0] "Remplacer modèle..."
msgstr[1] "Remplacer modèles..."

#: qml_qt5/MeshToolsMenu.qml:37 qml/MeshToolsMenu.qml:38
msgctxt "@item:inmenu"
msgid "Check mesh"
msgid_plural "Check meshes"
msgstr[0] "Vérifier le maillage"
msgstr[1] "Vérifier les maillages"

#: qml_qt5/MeshToolsMenu.qml:43 qml/MeshToolsMenu.qml:44
msgctxt "@item:inmenu"
msgid "Analyse mesh"
msgid_plural "Analyse meshes"
msgstr[0] "Analyser maillage"
msgstr[1] "Analyser maillages"

#: qml_qt5/SettingsDialog.qml:17 qml/SettingsDialog.qml:15
msgctxt "@title:window"
msgid "Mesh Tools Settings"
msgstr "Paramètres du plugin"

#: qml_qt5/SettingsDialog.qml:51 qml/SettingsDialog.qml:49
msgctxt "@info:tooltip"
msgid "Check if models are watertight when loading them"
msgstr "Vérifier l'étanchéité des modèles lors de leur chargement"

#: qml_qt5/SettingsDialog.qml:55 qml/SettingsDialog.qml:53
msgctxt "@option:check"
msgid "Check models on load"
msgstr "Vérifier les modèles au chargement"

#: qml_qt5/SettingsDialog.qml:65 qml/SettingsDialog.qml:63
msgctxt "@info:tooltip"
msgid "Always recalculate model normals when loading them"
msgstr "Toujours recalculer les normales des modèles lors de leur chargement"

#: qml_qt5/SettingsDialog.qml:69 qml/SettingsDialog.qml:67
msgctxt "@option:check"
msgid "Fix normals on load"
msgstr "Corriger les normales au chargement"

#: qml_qt5/SettingsDialog.qml:82 qml/SettingsDialog.qml:80
msgctxt "@info:tooltip"
msgid ""
"Unit to convert meshes from when the file does not specify a unit (such as "
"STL files). All units will be converted to millimeters."
msgstr ""
"Unité à partir de laquelle convertir les mailles lorsque le fichier ne "
"spécifie pas d'unité (comme les fichiers STL). Toutes les unités seront "
"converties en millimètres."

#: qml_qt5/SettingsDialog.qml:90 qml/SettingsDialog.qml:88
msgctxt "@window:text"
msgid "Unit for files that don't specify a unit:"
msgstr "Unité pour les fichiers qui ne spécifient pas d'unité :"

#: qml_qt5/SettingsDialog.qml:104 qml/SettingsDialog.qml:96
msgctxt "@option:unit"
msgid "Micron"
msgstr "Micron"

#: qml_qt5/SettingsDialog.qml:105 qml/SettingsDialog.qml:97
msgctxt "@option:unit"
msgid "Millimeter (default)"
msgstr "Millimètre (défaut)"

#: qml_qt5/SettingsDialog.qml:106 qml/SettingsDialog.qml:98
msgctxt "@option:unit"
msgid "Centimeter"
msgstr "Centimètre"

#: qml_qt5/SettingsDialog.qml:107 qml/SettingsDialog.qml:99
msgctxt "@option:unit"
msgid "Meter"
msgstr "Mètre"

#: qml_qt5/SettingsDialog.qml:108 qml/SettingsDialog.qml:100
msgctxt "@option:unit"
msgid "Inch"
msgstr "Pouce"

#: qml_qt5/SettingsDialog.qml:109 qml/SettingsDialog.qml:101
msgctxt "@option:unit"
msgid "Feet"
msgstr "Pied"

#: qml_qt5/SettingsDialog.qml:140 qml/SettingsDialog.qml:143
msgctxt "@info:tooltip"
msgid "Place models at a random location on the build plate when loading them"
msgstr ""
"Placez les modèles à une position aléatoire sur le plateau d'impression "
"lorsque vous les chargez."

#: qml_qt5/SettingsDialog.qml:144 qml/SettingsDialog.qml:147
msgctxt "@option:check"
msgid "Randomize position on load"
msgstr "Position aléatoire au chargement"

#: qml_qt5/SettingsDialog.qml:155 qml/SettingsDialog.qml:158
msgctxt "@action:button"
msgid "Close"
msgstr "Fermer"

#: qml/MeshToolsMenu.qml:15
msgctxt "@item:inmenu"
msgid "Mesh Tools"
msgstr "Mesh Tools"

0 comments on commit e2b2449

Please sign in to comment.