diff --git a/PreCourlis/i18n/fr.ts b/PreCourlis/i18n/fr.ts index 4ae2182b171e03760ac8596ee6b36239844200de..d9b83ca58364cf2f7c7fc40f1a8a2ddaed82ef9a 100644 --- a/PreCourlis/i18n/fr.ts +++ b/PreCourlis/i18n/fr.ts @@ -21,7 +21,210 @@ <message> <location filename="../ui/about_dialog.ui" line="14"/> <source>About PreCourlis</source> - <translation>A propos de PreCoulis</translation> + <translation>À propos de PreCoulis</translation> + </message> +</context> +<context> + <name>AddIntermediateProfilesAlgorithm</name> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="33"/> + <source>Input</source> + <translation>Entrée</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="41"/> + <source>Axis</source> + <translation>Axe</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="49"/> + <source>Constraint lines</source> + <translation>Lignes de contraintes</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="58"/> + <source>Create constraint lines at profiles ends (avoid errors when some constraint lines doesn't cross all profiles)</source> + <translation>Créer des lignes de contraintes aux extrémites des profils (évite des erreurs lorsque certaines lignes de contraintes ne croisent pas tous les profils)</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="69"/> + <source>Longitudinal space step (in m)</source> + <translation>Pas longitudinal (en mètres)</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="77"/> + <source>Lateral space step (in m)</source> + <translation>Pas latéral (en mètres)</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="85"/> + <source>Attribute to identify cross-sections</source> + <translation>Attribut identifiant des sections</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="101"/> + <source>Please select exactly two features (profiles) from the input layer!</source> + <translation>Sélectionnez exactement deux entités (profils) depuis la couche d'entrée</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="108"/> + <source>Extracting selected features (profiles) from layer:</source> + <translation>Extraction des entités sélectionnées (profils) de la couche :</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="125"/> + <source>Lines interpolation:</source> + <translation>Interpolation des lignes :</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="151"/> + <source>Adding new lines to input layer:</source> + <translation>Ajout des lignes interpolées à la couche :</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="197"/> + <source>Add intermediate profiles</source> + <translation>Ajouter les profiles intermédiaires</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="200"/> + <source>This algorithm add intermediate profiles interpolated between two selected profiles from the input layer. + +It writes the result directly on the input layer. + +Don't forget to select two features (profiles) from your input profiles layer!</source> + <translation>Cet algortihme ajoute des profils intermédiaires calculés par interpolation entre les deux profils sélectionnés dans la couche en entrée. + +Il écrit directement le résultat dans la couche en entrée. + +N'oubliez pas de sélectionner deux entités (profils) depuis votre couche de profils en entrée !</translation> + </message> + <message> + <location filename="../processing/add_intermediate_profiles_algorithm.py" line="210"/> + <source>Profiles</source> + <translation>Profils</translation> + </message> +</context> +<context> + <name>AddPointDialog</name> + <message> + <location filename="../ui/new_point_dialog.ui" line="14"/> + <source>Add new point</source> + <translation>Ajouter un nouveau point</translation> + </message> + <message> + <location filename="../ui/new_point_dialog.ui" line="152"/> + <source>...</source> + <translation>...</translation> + </message> + <message> + <location filename="../ui/new_point_dialog.ui" line="35"/> + <source>Y</source> + <translation>Y</translation> + </message> + <message> + <location filename="../ui/new_point_dialog.ui" line="166"/> + <source>TextLabel</source> + <translation></translation> + </message> + <message> + <location filename="../ui/new_point_dialog.ui" line="96"/> + <source>Topo / Bathy</source> + <translation>Topo / Bathy</translation> + </message> + <message> + <location filename="../ui/new_point_dialog.ui" line="103"/> + <source>Id</source> + <translation>Id</translation> + </message> + <message> + <location filename="../ui/new_point_dialog.ui" line="117"/> + <source>Z fond</source> + <translation>Z fond</translation> + </message> + <message> + <location filename="../ui/new_point_dialog.ui" line="145"/> + <source>Lateral abscissa</source> + <translation>Abscisse latérale</translation> + </message> + <message> + <location filename="../ui/new_point_dialog.ui" line="159"/> + <source>X</source> + <translation>X</translation> + </message> +</context> +<context> + <name>DefineTopoBathAlgorithm</name> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="19"/> + <source>Sections</source> + <translation>Sections</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="26"/> + <source>Polygons</source> + <translation>Polygones</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="33"/> + <source>Topography / bathymetry expression</source> + <translation>Expression topographie / bathymétrie</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="56"/> + <source>Converting sections lines to points:</source> + <translation>Convertion des lignes des sections en points :</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="71"/> + <source>Deleting old topo_bat attribute:</source> + <translation>Suppression de l'ancien attribut topo_bat :</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="90"/> + <source>Evaluating expression on polygons layer:</source> + <translation>Évalution de l'expression sur la couche des polygones :</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="113"/> + <source>Joining topo_bath attribute based on relation with polygons:</source> + <translation>Jointure de l'attribut topo_bath en fonction de l'emplacement des polygones :</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="140"/> + <source>Fields refactoring:</source> + <translation>Modification des champs :</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="252"/> + <source>Converting points back to lines:</source> + <translation>Re-convertion des points des sections en lignes :</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="270"/> + <source>Applying changes to sections:</source> + <translation>Appliquation des modifications aux sections :</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="306"/> + <source>Define topography / bathymetry from a polygon</source> + <translation>Définir la topographie/bathymétrie à partir d'un polygone</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="309"/> + <source>Profiles</source> + <translation>Profils</translation> + </message> + <message> + <location filename="../processing/define_topo_bath_algorithm.py" line="318"/> + <source>This algorithm update the topo_bath attribute of the input sections layer according to their location inside the provided polygons source, or selection. +Each polygons should either have a Topography / Bathymetry expression set as an attribute or we should give to the algorithm a default value ('T' or 'B'). + +It writes the result directly on the input sections layer.</source> + <translation>Cet algorithme met à jour l'attribut topo_bath de la couche de sections en entrée en fonction de leur emplacement à l'intérieur de la source ou de la sélection des polygones fournis. +Chaque polygone doit soit avoir une expression topographique/bathymétrique définie comme attribut, soit donner à l'algorithme une valeur par défaut (« T » ou « B »). + +Il écrit le résultat directement sur la couche des sections d'entrée.</translation> </message> </context> <context> @@ -29,7 +232,7 @@ <message> <location filename="../processing/export_courlis_algorithm.py" line="26"/> <source>Input</source> - <translation></translation> + <translation>Entrée</translation> </message> <message> <location filename="../processing/export_courlis_algorithm.py" line="35"/> @@ -54,7 +257,7 @@ <message> <location filename="../processing/export_courlis_algorithm.py" line="99"/> <source>Export</source> - <translation></translation> + <translation>Export</translation> </message> </context> <context> @@ -62,7 +265,7 @@ <message> <location filename="../processing/export_mascaret_algorithm.py" line="25"/> <source>Input</source> - <translation></translation> + <translation>Entrée</translation> </message> <message> <location filename="../processing/export_mascaret_algorithm.py" line="34"/> @@ -87,7 +290,7 @@ <message> <location filename="../processing/export_mascaret_algorithm.py" line="87"/> <source>Export</source> - <translation></translation> + <translation>Export</translation> </message> </context> <context> @@ -115,7 +318,7 @@ <message> <location filename="../processing/export_mobili_algorithm.py" line="30"/> <source>Profiles layer</source> - <translation>Couche Profils</translation> + <translation>Couche profils</translation> </message> <message> <location filename="../processing/export_mobili_algorithm.py" line="103"/> @@ -124,8 +327,8 @@ </message> <message> <location filename="../processing/export_mobili_algorithm.py" line="39"/> - <source>Reach name (default to Profiles layer name)</source> - <translation>Nom du bief (par défaut, le nom de la couche Profils)</translation> + <source>Reach name (default to profiles layer name)</source> + <translation>Nom du bief (par défaut, le nom de la couche profils)</translation> </message> <message> <location filename="../processing/export_mobili_algorithm.py" line="70"/> @@ -141,25 +344,70 @@ <context> <name>ExportVisuProfilAlgorithm</name> <message> - <location filename="../processing/export_visu_profil_algorithm.py" line="33"/> + <location filename="../processing/export_visu_profil_algorithm.py" line="45"/> <source>Input profiles layer</source> - <translation>Couche profils</translation> + <translation>Couche profils en entrée</translation> </message> <message> - <location filename="../processing/export_visu_profil_algorithm.py" line="42"/> + <location filename="../processing/export_visu_profil_algorithm.py" line="54"/> <source>Output excel file</source> <translation>Fichier Excel en sortie</translation> </message> <message> - <location filename="../processing/export_visu_profil_algorithm.py" line="203"/> + <location filename="../processing/export_visu_profil_algorithm.py" line="219"/> <source>Export VisuProfil</source> <translation>Export VisuProfil</translation> </message> <message> - <location filename="../processing/export_visu_profil_algorithm.py" line="206"/> + <location filename="../processing/export_visu_profil_algorithm.py" line="222"/> <source>Export</source> <translation>Export</translation> </message> + <message> + <location filename="../processing/export_visu_profil_algorithm.py" line="80"/> + <source>Load precourlis file from input profiles layer</source> + <translation>Charger le fichier precourlis à partir de la couche de profils d'entrée</translation> + </message> + <message> + <location filename="../processing/export_visu_profil_algorithm.py" line="88"/> + <source>Load excel workbook</source> + <translation>Charger un classeur Excel</translation> + </message> + <message> + <location filename="../processing/export_visu_profil_algorithm.py" line="104"/> + <source>Write name of each profiles / Z interfaces</source> + <translation>Écrire le nom de chaque profil / interface Z</translation> + </message> + <message> + <location filename="../processing/export_visu_profil_algorithm.py" line="137"/> + <source>Write longitudinal abscissa, section name an profil name in column</source> + <translation>Écrire en abscisse longitudinale, le nom de la section et le nom du profil en colonne</translation> + </message> + <message> + <location filename="../processing/export_visu_profil_algorithm.py" line="170"/> + <source>Clear rows</source> + <translation>Effacer les lignes</translation> + </message> + <message> + <location filename="../processing/export_visu_profil_algorithm.py" line="207"/> + <source>Save excel file</source> + <translation>Enregistrer le fichier Excel</translation> + </message> + <message> + <location filename="../processing/export_visu_profil_algorithm.py" line="94"/> + <source>Load worksheet named 'Affichage'</source> + <translation>Charger la feuille de travail nommée 'Affichage'</translation> + </message> + <message> + <location filename="../processing/export_visu_profil_algorithm.py" line="160"/> + <source>Load worksheet named 'Données'</source> + <translation>Charger la feuille de travail nommée 'Données'</translation> + </message> + <message> + <location filename="../processing/export_visu_profil_algorithm.py" line="182"/> + <source>Write in 'Données' worksheet</source> + <translation>Ecrire dans la feuille de travail 'Données'</translation> + </message> </context> <context> <name>GeoreferencingAlgorithm</name> @@ -169,17 +417,17 @@ <translation>Fichier .geo en entrée</translation> </message> <message> - <location filename="../processing/georeferencing_algorithm.py" line="48"/> + <location filename="../processing/georeferencing_algorithm.py" line="47"/> <source>Output .georef file</source> <translation>Fichier de sortie .georef</translation> </message> <message> - <location filename="../processing/georeferencing_algorithm.py" line="56"/> + <location filename="../processing/georeferencing_algorithm.py" line="55"/> <source>Output layer</source> <translation>Couche de sortie</translation> </message> <message> - <location filename="../processing/georeferencing_algorithm.py" line="196"/> + <location filename="../processing/georeferencing_algorithm.py" line="195"/> <source>georeferencing</source> <translation>Géoréférencement</translation> </message> @@ -230,103 +478,369 @@ <context> <name>ImportLayerFromDemAlgorithm</name> <message> - <location filename="../processing/import_layer_from_dem_algorithm.py" line="35"/> + <location filename="../processing/import_layer_from_dem_algorithm.py" line="39"/> <source>Layer name</source> <translation>Nom de la couche</translation> </message> <message> - <location filename="../processing/import_layer_from_dem_algorithm.py" line="40"/> + <location filename="../processing/import_layer_from_dem_algorithm.py" line="44"/> <source>Digital Elevation Model</source> <translation>Modèle numérique de terrain</translation> </message> <message> - <location filename="../processing/import_layer_from_dem_algorithm.py" line="55"/> + <location filename="../processing/import_layer_from_dem_algorithm.py" line="76"/> <source>Band number</source> <translation>Numéro de la bande</translation> </message> <message> - <location filename="../processing/import_layer_from_dem_algorithm.py" line="137"/> + <location filename="../processing/import_layer_from_dem_algorithm.py" line="194"/> <source>Import layer from DEM</source> <translation>Importer une couche depuis un MNT</translation> </message> <message> - <location filename="../processing/import_layer_from_dem_algorithm.py" line="140"/> + <location filename="../processing/import_layer_from_dem_algorithm.py" line="204"/> <source>Import</source> <translation></translation> </message> <message> - <location filename="../processing/import_layer_from_dem_algorithm.py" line="27"/> + <location filename="../processing/import_layer_from_dem_algorithm.py" line="31"/> <source>Input</source> <translation>Entrée</translation> </message> <message> - <location filename="../processing/import_layer_from_dem_algorithm.py" line="45"/> + <location filename="../processing/import_layer_from_dem_algorithm.py" line="66"/> + <source>Default elevation (the default value when there is no Z value to extract)</source> + <translation>Altitude par défaut (valeur par défaut quand il n'y a aucune valeur à extraire pour le Z)</translation> + </message> + <message> + <location filename="../processing/import_layer_from_dem_algorithm.py" line="49"/> + <source>Mask</source> + <translation>Masque</translation> + </message> + <message> + <location filename="../processing/import_layer_from_dem_algorithm.py" line="57"/> + <source>Points filter (formatted as a json array or arrays : [ [sec_id, p_id], ... ])</source> + <translation>Filtre sur les points (formaté sous forme de tableaux json ou de tableux: [ [sec_id, p_id], ... ])</translation> + </message> + <message> + <location filename="../processing/import_layer_from_dem_algorithm.py" line="197"/> + <source>This algorithm import/extract the elevation value from a Digital Elevation Model (DEM). + +We can specify the area of interest with a list of points and/or a mask.</source> + <translation>Cet algorithme importe/extrait la valeur d'élévation d'un modèle numérique d'élévation (DEM). + +Nous pouvons préciser la zone d'intérêt avec une liste de points et/ou un masque.</translation> + </message> +</context> +<context> + <name>ImportLayerFromPointsAlgorithm</name> + <message> + <location filename="../processing/import_layer_from_points_algorithm.py" line="30"/> + <source>Target profiles</source> + <translation>Profils cibles</translation> + </message> + <message> + <location filename="../processing/import_layer_from_points_algorithm.py" line="38"/> + <source>Target layer to fill</source> + <translation>Couche cible à remplir</translation> + </message> + <message> + <location filename="../processing/import_layer_from_points_algorithm.py" line="46"/> + <source>Source points</source> + <translation>Points sources</translation> + </message> + <message> + <location filename="../processing/import_layer_from_points_algorithm.py" line="54"/> + <source>Source section name field</source> + <translation>Champ du nom de la section source</translation> + </message> + <message> + <location filename="../processing/import_layer_from_points_algorithm.py" line="62"/> + <source>Source Z field</source> + <translation>Champ source Z</translation> + </message> + <message> + <location filename="../processing/import_layer_from_points_algorithm.py" line="70"/> + <source>Mask</source> + <translation>Masque</translation> + </message> + <message> + <location filename="../processing/import_layer_from_points_algorithm.py" line="78"/> + <source>Points filter (formatted as a json array or arrays : [ [sec_id, p_id], ... ])</source> + <translation>Filtre sur les points (formaté sous forme de tableaux json ou de tableux: [ [sec_id, p_id], ... ])</translation> + </message> + <message> + <location filename="../processing/import_layer_from_points_algorithm.py" line="87"/> <source>Default elevation (the default value when there is no Z value to extract)</source> <translation>Altitude par défaut (valeur par défaut quand il n'y a aucune valeur à extraire pour le Z)</translation> </message> + <message> + <location filename="../processing/import_layer_from_points_algorithm.py" line="264"/> + <source>Import layer from points</source> + <translation>Importer une couche à partir de points</translation> + </message> + <message> + <location filename="../processing/import_layer_from_points_algorithm.py" line="267"/> + <source>Import</source> + <translation>Import</translation> + </message> + <message> + <location filename="../processing/import_layer_from_points_algorithm.py" line="276"/> + <source>This algorithm fill or create a new sedimental layer interface in target profiles from source points with elevation and already having some field making the relation with tracks. + +Note that it is possible to create the relation between points and tracks using function 'Join points to profiles'.</source> + <translation>Cet algorithme remplit ou crée une nouvelle interface de couche sédimentaire dans des profils cibles à partir de points sources avec élévation et disposant déjà d'un champ faisant la relation avec les traces. + +A noter qu'il est possible de créer la relation entre points et traces à l'aide de la fonction 'Joindre les points aux profils'.</translation> + </message> +</context> +<context> + <name>ImportLayerFromProfilesAlgorithm</name> + <message> + <location filename="../processing/import_layer_from_profiles_algorithm.py" line="41"/> + <source>Target profiles</source> + <translation>Profils cibles</translation> + </message> + <message> + <location filename="../processing/import_layer_from_profiles_algorithm.py" line="49"/> + <source>Target layer to fill</source> + <translation>Couche cible à remplir</translation> + </message> + <message> + <location filename="../processing/import_layer_from_profiles_algorithm.py" line="57"/> + <source>Source profiles</source> + <translation>Profils cibles</translation> + </message> + <message> + <location filename="../processing/import_layer_from_profiles_algorithm.py" line="62"/> + <source>Source layer field</source> + <translation>Champ couche source</translation> + </message> + <message> + <location filename="../processing/import_layer_from_profiles_algorithm.py" line="70"/> + <source>Import source points</source> + <translation>Importer des points sources</translation> + </message> + <message> + <location filename="../processing/import_layer_from_profiles_algorithm.py" line="77"/> + <source>Mask</source> + <translation>Masque</translation> + </message> + <message> + <location filename="../processing/import_layer_from_profiles_algorithm.py" line="85"/> + <source>Points filter (formatted as a json array or arrays : [ [sec_id, p_id], ... ])</source> + <translation>Filtre sur les points (formaté sous forme de tableaux json ou de tableux: [ [sec_id, p_id], ... ])</translation> + </message> + <message> + <location filename="../processing/import_layer_from_profiles_algorithm.py" line="94"/> + <source>Default elevation (the default value when there is no Z value to extract)</source> + <translation>Altitude par défaut (valeur par défaut quand il n'y a aucune valeur à extraire pour le Z)</translation> + </message> + <message> + <location filename="../processing/import_layer_from_profiles_algorithm.py" line="464"/> + <source>Import layer from profiles</source> + <translation>Importer une couche à partir de profils</translation> + </message> + <message> + <location filename="../processing/import_layer_from_profiles_algorithm.py" line="467"/> + <source>Import</source> + <translation></translation> + </message> + <message> + <location filename="../processing/import_layer_from_profiles_algorithm.py" line="476"/> + <source>This algorithm fill or create a new sedimental layer interface in target profiles from another profiles layer.</source> + <translation>Cet algorithme remplit ou crée une nouvelle interface de couche sédimentaire dans des profils cibles à partir d'une autre couche de profils.</translation> + </message> +</context> +<context> + <name>ImportPointsAlgorithm</name> + <message> + <location filename="../processing/import_points_algorithm.py" line="24"/> + <source>Tracks</source> + <translation>Traces</translation> + </message> + <message> + <location filename="../processing/import_points_algorithm.py" line="32"/> + <source>Tracks section name field</source> + <translation>Champs correspondant aux noms de la section-cible</translation> + </message> + <message> + <location filename="../processing/import_points_algorithm.py" line="40"/> + <source>Axis</source> + <translation>Axe</translation> + </message> + <message> + <location filename="../processing/import_points_algorithm.py" line="48"/> + <source>Source points</source> + <translation>Points sources</translation> + </message> + <message> + <location filename="../processing/import_points_algorithm.py" line="56"/> + <source>Source Z field</source> + <translation>Champ source Z</translation> + </message> + <message> + <location filename="../processing/import_points_algorithm.py" line="64"/> + <source>Buffer distance</source> + <translation>Distance tampon</translation> + </message> + <message> + <location filename="../processing/import_points_algorithm.py" line="74"/> + <source>Sections</source> + <translation>Sections</translation> + </message> + <message> + <location filename="../processing/import_points_algorithm.py" line="134"/> + <source>Import points by projection on tracks</source> + <translation>Importer des points par projection des traces</translation> + </message> + <message> + <location filename="../processing/import_points_algorithm.py" line="137"/> + <source>Import</source> + <translation></translation> + </message> + <message> + <location filename="../processing/import_points_algorithm.py" line="146"/> + <source>This algorithm create a new profiles layer from: +- Tracks +- Source points with elevation + +using a buffer to join points to tracks and then projecting points on tracks.</source> + <translation>Cet algorithme crée une nouvelle couche de profils à partir : +- Des traces +- Des points sources avec une élévation + +Utiliser un tampon pour joindre des points aux traces, puis projeter des points sur les traces.</translation> + </message> +</context> +<context> + <name>ImportPreparedPointsAlgorithm</name> + <message> + <location filename="../processing/import_prepared_points_algorithm.py" line="31"/> + <source>Tracks</source> + <translation>Traces</translation> + </message> + <message> + <location filename="../processing/import_prepared_points_algorithm.py" line="39"/> + <source>Tracks section name field</source> + <translation>Champs correspondant aux noms de la section-cible</translation> + </message> + <message> + <location filename="../processing/import_prepared_points_algorithm.py" line="47"/> + <source>Axis</source> + <translation>Axe</translation> + </message> + <message> + <location filename="../processing/import_prepared_points_algorithm.py" line="55"/> + <source>Source points</source> + <translation></translation> + </message> + <message> + <location filename="../processing/import_prepared_points_algorithm.py" line="63"/> + <source>Source section name field</source> + <translation></translation> + </message> + <message> + <location filename="../processing/import_prepared_points_algorithm.py" line="71"/> + <source>Source Z field</source> + <translation></translation> + </message> + <message> + <location filename="../processing/import_prepared_points_algorithm.py" line="79"/> + <source>Sections</source> + <translation></translation> + </message> + <message> + <location filename="../processing/import_prepared_points_algorithm.py" line="207"/> + <source>Import prepared points by projection on tracks</source> + <translation></translation> + </message> + <message> + <location filename="../processing/import_prepared_points_algorithm.py" line="210"/> + <source>Import</source> + <translation></translation> + </message> + <message> + <location filename="../processing/import_prepared_points_algorithm.py" line="219"/> + <source>This algorithm create a new profiles layer by projecting points on tracks using: +- Tracks +- Source points with elevation already having some field making the relation with tracks + +Note that it is possible to create the relation between points and tracks using function 'Join points to profiles'.</source> + <translation>Cet algorithme crée une nouvelle couche de profils en projetant des points sur les traces en utilisant : +- Des traces +- Des points sources avec une élévation ayant déjà un champ faisant la relation avec les traces + +A noter qu'il est possible de créer la relation entre points et traces à l'aide de la fonction 'Joindre les points aux profils'.</translation> + </message> </context> <context> <name>ImportTracksAlgorithm</name> <message> - <location filename="../processing/import_tracks_algorithm.py" line="30"/> + <location filename="../processing/import_tracks_algorithm.py" line="31"/> <source>Tracks</source> <translation>Traces</translation> </message> <message> - <location filename="../processing/import_tracks_algorithm.py" line="38"/> + <location filename="../processing/import_tracks_algorithm.py" line="39"/> <source>Axis</source> <translation>Axe</translation> </message> <message> - <location filename="../processing/import_tracks_algorithm.py" line="46"/> + <location filename="../processing/import_tracks_algorithm.py" line="47"/> <source>Abscissa of first section</source> <translation>Abscisse de la première section</translation> </message> <message> - <location filename="../processing/import_tracks_algorithm.py" line="55"/> + <location filename="../processing/import_tracks_algorithm.py" line="56"/> <source>Abscissa of axis first point (take precedence over abscissa of first section when set)</source> <translation>Abscisse du premier point de l'axe (prend le pas sur l'abscisse de la première section si définit)</translation> </message> <message> - <location filename="../processing/import_tracks_algorithm.py" line="66"/> + <location filename="../processing/import_tracks_algorithm.py" line="67"/> <source>Name field</source> <translation>Champ nom</translation> </message> <message> - <location filename="../processing/import_tracks_algorithm.py" line="77"/> + <location filename="../processing/import_tracks_algorithm.py" line="85"/> <source>Maximum distance between two points</source> <translation>Distance maximale entre deux points</translation> </message> <message> - <location filename="../processing/import_tracks_algorithm.py" line="85"/> + <location filename="../processing/import_tracks_algorithm.py" line="93"/> <source>Apply strict distance (do not keep initial points)</source> <translation>Appliquer une distance stricte (ne garde pas les points initiaux)</translation> </message> <message> - <location filename="../processing/import_tracks_algorithm.py" line="92"/> + <location filename="../processing/import_tracks_algorithm.py" line="100"/> <source>Digital Elevation Model</source> <translation>Modèle numérique de terrain</translation> </message> <message> - <location filename="../processing/import_tracks_algorithm.py" line="107"/> + <location filename="../processing/import_tracks_algorithm.py" line="118"/> <source>Sections</source> <translation></translation> </message> <message> - <location filename="../processing/import_tracks_algorithm.py" line="330"/> + <location filename="../processing/import_tracks_algorithm.py" line="362"/> <source>Import tracks</source> <translation>Import de traces</translation> </message> <message> - <location filename="../processing/import_tracks_algorithm.py" line="333"/> + <location filename="../processing/import_tracks_algorithm.py" line="365"/> <source>Import</source> <translation></translation> </message> <message> - <location filename="../processing/import_tracks_algorithm.py" line="97"/> + <location filename="../processing/import_tracks_algorithm.py" line="108"/> <source>Default elevation (the default value when there is no Z value to extract)</source> <translation>Altitude par défaut (valeur par défaut quand il n'y a aucune valeur à extraire pour le Z)</translation> </message> + <message> + <location filename="../processing/import_tracks_algorithm.py" line="78"/> + <source>Lateral interpolation</source> + <translation>Interpolation latérale</translation> + </message> </context> <context> <name>InterpolateLinesAlgorithm</name> @@ -361,17 +875,17 @@ <translation>Attribut identifiant des sections</translation> </message> <message> - <location filename="../processing/interpolate_lines.py" line="182"/> + <location filename="../processing/interpolate_lines.py" line="187"/> <source>Interpolated</source> <translation>Profils interpolés</translation> </message> <message> - <location filename="../processing/interpolate_lines.py" line="209"/> + <location filename="../processing/interpolate_lines.py" line="214"/> <source>Interpolate lines</source> <translation>Interpoler des lignes</translation> </message> <message> - <location filename="../processing/interpolate_lines.py" line="212"/> + <location filename="../processing/interpolate_lines.py" line="217"/> <source>Interpolate</source> <translation>Interpolation</translation> </message> @@ -414,22 +928,22 @@ <translation>Pas latéral (en mètres)</translation> </message> <message> - <location filename="../processing/interpolate_points.py" line="123"/> + <location filename="../processing/interpolate_points.py" line="124"/> <source>Attribute to identify cross-sections</source> <translation>Attribut identifiant des sections</translation> </message> <message> - <location filename="../processing/interpolate_points.py" line="131"/> + <location filename="../processing/interpolate_points.py" line="132"/> <source>Interpolated</source> <translation></translation> </message> <message> - <location filename="../processing/interpolate_points.py" line="325"/> + <location filename="../processing/interpolate_points.py" line="326"/> <source>Interpolate points</source> <translation>Interpoler des points</translation> </message> <message> - <location filename="../processing/interpolate_points.py" line="328"/> + <location filename="../processing/interpolate_points.py" line="329"/> <source>Interpolate</source> <translation>Interpolation</translation> </message> @@ -438,69 +952,131 @@ <source>Create constraint lines at profiles ends (avoid errors when some constraint lines doesn't cross all profiles)</source> <translation>Créer des lignes de contraintes aux extrémites des profils (évite des erreurs lorsque certaines lignes de contraintes ne croisent pas tous les profils)</translation> </message> + <message> + <location filename="../processing/interpolate_points.py" line="310"/> + <source>Failed to execute command {}</source> + <translation>Échec de l'exécution de la commande {}</translation> + </message> </context> <context> <name>InterpolateProfilesPerAreasAlgorithm</name> <message> - <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="71"/> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="104"/> <source>Lateral space step (in m)</source> <translation>Pas latéral (en mètres)</translation> </message> <message> - <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="87"/> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="120"/> <source>Interpolated profiles</source> <translation>Profils interpolés</translation> </message> <message> - <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="238"/> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="284"/> <source>Interpolate profiles per areas</source> <translation>Interpoler les profils par parties</translation> </message> <message> - <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="241"/> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="287"/> <source>Interpolate</source> <translation>Interpolation</translation> </message> <message> - <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="42"/> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="69"/> <source>Axis</source> <translation>Axe</translation> </message> <message> - <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="51"/> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="77"/> <source>Contraint lines</source> <translation>Lignes de contraintes</translation> </message> <message> - <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="60"/> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="86"/> <source>Create constraint lines at profiles ends (avoid errors when some constraint lines doesn't cross all profiles)</source> <translation>Créer des lignes de contraintes aux extrémites des profils (évite des erreurs lorsque certaines lignes de contraintes ne croisent pas tous les profils)</translation> </message> <message> - <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="79"/> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="112"/> <source>Attribute to identify cross-sections</source> <translation>Attribut identifiant des sections</translation> </message> <message> - <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="33"/> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="61"/> <source>Sections</source> <translation>Sections</translation> </message> <message> - <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="99"/> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="132"/> <source>Sections parameter is not set or invalid</source> <translation>Le paramètre sections est indéfini ou invalide</translation> </message> <message> - <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="111"/> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="144"/> <source>Axis parameter is not set or invalid</source> <translation>Le paramètre axe est indéfini ou invalide</translation> </message> + <message> + <location filename="../processing/interpolate_profiles_per_areas_algorithm.py" line="97"/> + <source>Areas</source> + <translation>Parties</translation> + </message> +</context> +<context> + <name>InterpolateProfilesWithoutLateralResamplingAlgorithm</name> + <message> + <location filename="../processing/interpolate_profiles_without_lateral_resampling_algorithm.py" line="34"/> + <source>Sections</source> + <translation></translation> + </message> + <message> + <location filename="../processing/interpolate_profiles_without_lateral_resampling_algorithm.py" line="42"/> + <source>Axis</source> + <translation>Axe</translation> + </message> + <message> + <location filename="../processing/interpolate_profiles_without_lateral_resampling_algorithm.py" line="50"/> + <source>Longitudinal space step (in m)</source> + <translation>Pas longitudinal (en mètres)</translation> + </message> + <message> + <location filename="../processing/interpolate_profiles_without_lateral_resampling_algorithm.py" line="58"/> + <source>Attribute to identify cross-sections</source> + <translation>Attribut identifiant des sections</translation> + </message> + <message> + <location filename="../processing/interpolate_profiles_without_lateral_resampling_algorithm.py" line="66"/> + <source>Interpolated profiles</source> + <translation>Profils interpolés</translation> + </message> + <message> + <location filename="../processing/interpolate_profiles_without_lateral_resampling_algorithm.py" line="137"/> + <source>Profiles {first_section['sec_name']} and {last_section['sec_name']} do not have the same number of points.</source> + <translation>Les profils {first_section['sec_name']} et {last_section['sec_name']} n'ont pas le même nombre de points.</translation> + </message> + <message> + <location filename="../processing/interpolate_profiles_without_lateral_resampling_algorithm.py" line="303"/> + <source>Interpolate profiles without lateral resampling</source> + <translation>Interpoler des profils sans rééchantillonnage latéral</translation> + </message> + <message> + <location filename="../processing/interpolate_profiles_without_lateral_resampling_algorithm.py" line="306"/> + <source>Interpolate</source> + <translation>Interpolation</translation> + </message> + <message> + <location filename="../processing/interpolate_profiles_without_lateral_resampling_algorithm.py" line="315"/> + <source>This algorithm interpolate a profiles layer by creating regular and perpendicular profiles along axis with fixed number of points per profile. + +Note that the source profiles must have the same number of points and be perpendical to the axis.</source> + <translation>Cet algorithme interpole une couche de profils en créant des profils réguliers et perpendiculaires le long d'un axe avec un nombre fixe de points par profil. + +Notez que les profils sources doivent avoir le même nombre de points et être perpendiculaires à l'axe.</translation> + </message> </context> <context> <name>InterpolationAreasConfigDialog</name> <message> - <location filename="../widgets/interpolation_areas_config_dialog.py" line="139"/> + <location filename="../widgets/interpolation_areas_config_dialog.py" line="156"/> <source>Error</source> <translation>Erreur</translation> </message> @@ -528,21 +1104,72 @@ <context> <name>InterpolationAreasTableModel</name> <message> - <location filename="../widgets/interpolation_areas_table_model.py" line="90"/> + <location filename="../widgets/interpolation_areas_table_model.py" line="115"/> <source>from_profil_id</source> <translation>Profil de début</translation> </message> <message> - <location filename="../widgets/interpolation_areas_table_model.py" line="92"/> + <location filename="../widgets/interpolation_areas_table_model.py" line="117"/> <source>to_profil_id</source> <translation>Profil de fin</translation> </message> <message> - <location filename="../widgets/interpolation_areas_table_model.py" line="94"/> + <location filename="../widgets/interpolation_areas_table_model.py" line="119"/> <source>longitudinal_step</source> <translation>Pas longitudinal</translation> </message> </context> +<context> + <name>InterpolationAreasWidgetWrapper</name> + <message> + <location filename="../processing/ui/interpolation_areas_widget_wrapper.py" line="27"/> + <source>Configure interpolation areas</source> + <translation>Configuration de l'interpolation par parties</translation> + </message> +</context> +<context> + <name>JoinPointsToProfilesAlgorithm</name> + <message> + <location filename="../processing/join_points_to_profiles_algorithm.py" line="26"/> + <source>Source points</source> + <translation></translation> + </message> + <message> + <location filename="../processing/join_points_to_profiles_algorithm.py" line="34"/> + <source>Target profiles</source> + <translation>Profils cibles</translation> + </message> + <message> + <location filename="../processing/join_points_to_profiles_algorithm.py" line="42"/> + <source>Target profiles section name field</source> + <translation>Champs correspondant aux noms des profiles cibles de la section</translation> + </message> + <message> + <location filename="../processing/join_points_to_profiles_algorithm.py" line="51"/> + <source>Buffer distance</source> + <translation>Distance tampon</translation> + </message> + <message> + <location filename="../processing/join_points_to_profiles_algorithm.py" line="61"/> + <source>Points prepared</source> + <translation>Points préparés</translation> + </message> + <message> + <location filename="../processing/join_points_to_profiles_algorithm.py" line="157"/> + <source>Join points to profiles</source> + <translation>Joindre les points aux profils</translation> + </message> + <message> + <location filename="../processing/join_points_to_profiles_algorithm.py" line="160"/> + <source>Import</source> + <translation></translation> + </message> + <message> + <location filename="../processing/join_points_to_profiles_algorithm.py" line="169"/> + <source>This algorithm create a relation between points and profiles using a buffer around profiles.</source> + <translation>Cet algorithme crée une relation entre les points et les profils en utilisant un tampon autour des profils.</translation> + </message> +</context> <context> <name>LinesToPointsAlgorithm</name> <message> @@ -566,6 +1193,19 @@ <translation>Conversion</translation> </message> </context> +<context> + <name>NewPointDialog</name> + <message> + <location filename="../widgets/new_point_dialog.py" line="331"/> + <source>Field topo_bat is required</source> + <translation>Le champ topo_bat est obligatoire</translation> + </message> + <message> + <location filename="../widgets/new_point_dialog.py" line="337"/> + <source>Validation error</source> + <translation>Erreur de validation</translation> + </message> +</context> <context> <name>PointsAlongLinesAlgorithm</name> <message> @@ -627,12 +1267,12 @@ <translation>Lignes</translation> </message> <message> - <location filename="../processing/points_to_lines_algorithm.py" line="252"/> + <location filename="../processing/points_to_lines_algorithm.py" line="257"/> <source>Points to lines</source> <translation>Points vers lignes</translation> </message> <message> - <location filename="../processing/points_to_lines_algorithm.py" line="255"/> + <location filename="../processing/points_to_lines_algorithm.py" line="260"/> <source>Convert</source> <translation>Conversion</translation> </message> @@ -640,80 +1280,130 @@ <context> <name>PreCourlisPlugin</name> <message> - <location filename="../PreCourlis.py" line="139"/> + <location filename="../PreCourlis.py" line="171"/> <source>Georeference and import a .geo file</source> <translation>Géoréférencer et importer un fichier .geo</translation> </message> <message> - <location filename="../PreCourlis.py" line="144"/> + <location filename="../PreCourlis.py" line="176"/> <source>Import a .georef / .georefC file</source> <translation>Importer un fichier .georef / .georefC</translation> </message> <message> - <location filename="../PreCourlis.py" line="149"/> + <location filename="../PreCourlis.py" line="181"/> <source>Reverse the direction of the hydraulic axis</source> <translation>Inverser le sens de l'axe hydraulique</translation> </message> <message> - <location filename="../PreCourlis.py" line="154"/> + <location filename="../PreCourlis.py" line="186"/> <source>Convert tracks to profiles</source> <translation>Convertir les traces en profils</translation> </message> <message> - <location filename="../PreCourlis.py" line="162"/> + <location filename="../PreCourlis.py" line="199"/> <source>View profiles</source> <translation>Visualiser les profils</translation> </message> <message> - <location filename="../PreCourlis.py" line="173"/> + <location filename="../PreCourlis.py" line="246"/> <source>Interpolate profiles</source> <translation>Interpoler des profils</translation> </message> <message> - <location filename="../PreCourlis.py" line="178"/> + <location filename="../PreCourlis.py" line="251"/> <source>Configure interpolation areas</source> <translation>Configuration de l'interpolation par parties</translation> </message> <message> - <location filename="../PreCourlis.py" line="183"/> + <location filename="../PreCourlis.py" line="256"/> <source>Interpolate profiles with areas</source> <translation>Interpoler les profils par parties</translation> </message> <message> - <location filename="../PreCourlis.py" line="191"/> + <location filename="../PreCourlis.py" line="270"/> <source>Export a Courlis geometry file</source> <translation>Exporter un fichier de géométrie Courlis</translation> </message> <message> - <location filename="../PreCourlis.py" line="196"/> + <location filename="../PreCourlis.py" line="275"/> <source>Export a Mascaret geometry file</source> <translation>Exporter un fichier de géométrie Mascaret</translation> </message> <message> - <location filename="../PreCourlis.py" line="201"/> + <location filename="../PreCourlis.py" line="280"/> <source>Export a Mobili geometry file</source> <translation>Exporter un fichier de géométrie Mobili</translation> </message> <message> - <location filename="../PreCourlis.py" line="214"/> + <location filename="../PreCourlis.py" line="293"/> <source>Settings</source> <translation>Réglages</translation> </message> <message> - <location filename="../PreCourlis.py" line="215"/> + <location filename="../PreCourlis.py" line="294"/> <source>About</source> <translation>A propos</translation> </message> <message> - <location filename="../PreCourlis.py" line="206"/> + <location filename="../PreCourlis.py" line="285"/> <source>Export a VisuProfil file</source> <translation>Exporter un fichier VisuProfil</translation> </message> + <message> + <location filename="../PreCourlis.py" line="191"/> + <source>Convert points to profiles</source> + <translation>Convertir les points en profils</translation> + </message> + <message> + <location filename="../PreCourlis.py" line="208"/> + <source>Add intermediate profiles</source> + <translation>Ajouter les profils intermédiaires</translation> + </message> + <message> + <location filename="../PreCourlis.py" line="216"/> + <source>Join points to profiles</source> + <translation>Joindre les points aux profils</translation> + </message> + <message> + <location filename="../PreCourlis.py" line="216"/> + <source>This algorithm fill raw points with corresponding profile identifier using a buffer around profiles.</source> + <translation>Cet algorithme remplit les points bruts avec l'identifiant de profil correspondant en utilisant un tampon autour des profils.</translation> + </message> + <message> + <location filename="../PreCourlis.py" line="226"/> + <source>Import sedimental interface from points</source> + <translation>Importer une interface sédimentaire à partir de points</translation> + </message> + <message> + <location filename="../PreCourlis.py" line="226"/> + <source>This algorithm fill a sedimental interface altitude from points.</source> + <translation>Cet algorithme remplit une altitude d'interface sédimentaire à partir de points.</translation> + </message> + <message> + <location filename="../PreCourlis.py" line="235"/> + <source>Define topography / bathymetry from a polygon</source> + <translation>Définir la topographie/bathymétrie à partir d'un polygone</translation> + </message> + <message> + <location filename="../PreCourlis.py" line="235"/> + <source>This algorithm define topography / bathymetry from a polygon.</source> + <translation>Cet algorithme définit la topographie/bathymétrie à partir d'un polygone.</translation> + </message> + <message> + <location filename="../PreCourlis.py" line="262"/> + <source>Interpolate without lateral resampling</source> + <translation></translation> + </message> + <message> + <location filename="../PreCourlis.py" line="301"/> + <source>Start debugpy and wait for client</source> + <translation>Démarrez le débogage et attendez le client</translation> + </message> </context> <context> <name>PreCourlisProvider</name> <message> - <location filename="../processing/precourlis_provider.py" line="105"/> + <location filename="../processing/precourlis_provider.py" line="150"/> <source>PreCourlis</source> <translation></translation> </message> @@ -754,12 +1444,12 @@ <context> <name>ProfileDialog</name> <message> - <location filename="../widgets/profile_dialog.py" line="275"/> + <location filename="../widgets/profile_dialog.py" line="723"/> <source>Save Layer Edits</source> <translation>Enregistrer les modifications</translation> </message> <message> - <location filename="../widgets/profile_dialog.py" line="275"/> + <location filename="../widgets/profile_dialog.py" line="723"/> <source>Could not commit changes to layer {} Errors: {} @@ -770,10 +1460,75 @@ Erreurs: {} </translation> </message> <message> - <location filename="../widgets/profile_dialog.py" line="152"/> + <location filename="../widgets/profile_dialog.py" line="326"/> <source>Not set</source> <translation>Non définit</translation> </message> + <message> + <location filename="../widgets/profile_dialog.py" line="311"/> + <source>DEM</source> + <translation>DEM</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="312"/> + <source>Profiles</source> + <translation>Profils</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="315"/> + <source>Points</source> + <translation>Points</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="595"/> + <source>Add new point</source> + <translation>Ajouter un nouveau point</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="595"/> + <source>Please select one and only one point</source> + <translation>Veuillez sélectionner un et un seul point</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="610"/> + <source>Point added to profile</source> + <translation>Point ajouté au profil</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="629"/> + <source>Remove points</source> + <translation>Supprimer des points</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="629"/> + <source>No points selected</source> + <translation>Aucun point sélectionné</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="651"/> + <source>Points removed from profile</source> + <translation>Points supprimés du profil</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="655"/> + <source>Invalid points from section moved up</source> + <translation>Points invalides de la section déplacée vers le haut</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="659"/> + <source>Invalid points from section moved down </source> + <translation>Points invalides de la section déplacée vers le bas</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="681"/> + <source>Invalid points from layer moved up </source> + <translation>Points invalides de la couche déplacés vers le haut</translation> + </message> + <message> + <location filename="../widgets/profile_dialog.py" line="707"/> + <source>Invalid points from layer moved down</source> + <translation>Points invalides de la couche déplacés vers le bas</translation> + </message> </context> <context> <name>ProfileDialogBase</name> @@ -793,57 +1548,57 @@ Erreurs: {} <translation></translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="223"/> + <location filename="../ui/profile_dialog_base.ui" line="369"/> <source>...</source> <translation></translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="195"/> + <location filename="../ui/profile_dialog_base.ui" line="341"/> <source>Sedimental layers</source> <translation>Couches sédimentaires</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="274"/> + <location filename="../ui/profile_dialog_base.ui" line="420"/> <source>Add</source> <translation>Ajouter</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="414"/> + <location filename="../ui/profile_dialog_base.ui" line="601"/> <source>Apply</source> <translation>Appliquer</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="294"/> + <location filename="../ui/profile_dialog_base.ui" line="440"/> <source>Delete</source> <translation>Supprimer</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="356"/> + <location filename="../ui/profile_dialog_base.ui" line="537"/> <source>Interpolation</source> <translation></translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="362"/> + <location filename="../ui/profile_dialog_base.ui" line="545"/> <source>Left</source> <translation>Gauche</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="385"/> + <location filename="../ui/profile_dialog_base.ui" line="568"/> <source>Right</source> <translation>Droite</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="424"/> + <location filename="../ui/profile_dialog_base.ui" line="611"/> <source>Clear</source> <translation>RAZ</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="74"/> + <location filename="../ui/profile_dialog_base.ui" line="84"/> <source>Undo</source> <translation>Annuler</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="84"/> + <location filename="../ui/profile_dialog_base.ui" line="94"/> <source>Redo</source> <translation>Refaire</translation> </message> @@ -863,70 +1618,115 @@ Erreurs: {} <translation>Profil suivant</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="209"/> + <location filename="../ui/profile_dialog_base.ui" line="355"/> <source>Select sedimental layer</source> <translation>Sélectionner la couche sédimentaire</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="244"/> + <location filename="../ui/profile_dialog_base.ui" line="390"/> <source>Sedimental layer color</source> <translation>Couleur de la couche sédimentaire</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="411"/> + <location filename="../ui/profile_dialog_base.ui" line="598"/> <source>Apply interpolation</source> <translation>Appliquer l'interpolation</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="421"/> + <location filename="../ui/profile_dialog_base.ui" line="608"/> <source>Clear values</source> <translation>Remettre les valeurs à zéro</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="94"/> + <location filename="../ui/profile_dialog_base.ui" line="104"/> <source>Save modifications</source> <translation>Enregistrer les modifications</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="271"/> + <location filename="../ui/profile_dialog_base.ui" line="417"/> <source>Add new sedimental layer</source> <translation>Ajouter une nouvelle couche sédimentaire</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="281"/> + <location filename="../ui/profile_dialog_base.ui" line="427"/> <source>Apply settings to current sedimental layer</source> <translation>Appliquer les réglages à la couche sédimentaire courante</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="291"/> + <location filename="../ui/profile_dialog_base.ui" line="437"/> <source>Delete current sedimental layer</source> <translation>Supprimer la couche sédimentaire courante</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="234"/> + <location filename="../ui/profile_dialog_base.ui" line="380"/> <source>Sedimental layer name (limited to 7 characters)</source> <translation>Nom de la couche sédimentaire (limité à 7 caractères)</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="308"/> + <location filename="../ui/profile_dialog_base.ui" line="524"/> <source>Extract layer values from DEM</source> <translation>Extraire les valeurs de la couche depuis un MNT</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="311"/> + <location filename="../ui/profile_dialog_base.ui" line="527"/> <source>Extract Z</source> <translation>Extraire le Z</translation> </message> <message> - <location filename="../ui/profile_dialog_base.ui" line="322"/> - <source>Default elevation value when there is no Z value to extract.</source> - <translation></translation> - </message> - <message> - <location filename="../ui/profile_dialog_base.ui" line="325"/> + <location filename="../ui/profile_dialog_base.ui" line="511"/> <source>Default elevation</source> <translation>Altitude par défaut</translation> </message> + <message> + <location filename="../ui/profile_dialog_base.ui" line="74"/> + <source>Delete current profile</source> + <translation>Supprimer le profil actuel</translation> + </message> + <message> + <location filename="../ui/profile_dialog_base.ui" line="147"/> + <source>Select secondary layer</source> + <translation>Sélectionnez le calque secondaire</translation> + </message> + <message> + <location filename="../ui/profile_dialog_base.ui" line="157"/> + <source>Buffer size to catch secondary profiles</source> + <translation>Taille du tampon pour capturer les profils secondaires</translation> + </message> + <message> + <location filename="../ui/profile_dialog_base.ui" line="164"/> + <source>hide/show previous and next sections</source> + <translation>masquer/afficher les sections précédentes et suivantes</translation> + </message> + <message> + <location filename="../ui/profile_dialog_base.ui" line="186"/> + <source>Add new point after selected point</source> + <translation>Ajouter un nouveau point après le point sélectionné</translation> + </message> + <message> + <location filename="../ui/profile_dialog_base.ui" line="196"/> + <source>Remove selected points</source> + <translation>Supprimer les points sélectionnés</translation> + </message> + <message> + <location filename="../ui/profile_dialog_base.ui" line="452"/> + <source>Import Z</source> + <translation>Importer Z</translation> + </message> + <message> + <location filename="../ui/profile_dialog_base.ui" line="460"/> + <source>From</source> + <translation>Depuis</translation> + </message> + <message> + <location filename="../ui/profile_dialog_base.ui" line="477"/> + <source>Source</source> + <translation>Source</translation> + </message> + <message> + <location filename="../ui/profile_dialog_base.ui" line="494"/> + <source>Mask</source> + <translation>Masque</translation> + </message> </context> <context> <name>SaveChangesDialog</name> diff --git a/PreCourlis/processing/add_intermediate_profiles_algorithm.py b/PreCourlis/processing/add_intermediate_profiles_algorithm.py index a923eb7009221b32ac4d29b6ae6f44f93b03a887..cb9ccecd363456489d8c28be60b2efbe9e35546e 100644 --- a/PreCourlis/processing/add_intermediate_profiles_algorithm.py +++ b/PreCourlis/processing/add_intermediate_profiles_algorithm.py @@ -122,7 +122,7 @@ class AddIntermediateProfilesAlgorithm(PreCourlisAlgorithm): feedback.setCurrentStep(1) if feedback.isCanceled(): return {} - feedback.setProgressText(self.tr("Interpolate lines:")) + feedback.setProgressText(self.tr("Lines interpolation:")) alg_params = { "SECTIONS": outputs["selected_features"]["OUTPUT"], @@ -148,11 +148,11 @@ class AddIntermediateProfilesAlgorithm(PreCourlisAlgorithm): feedback.setCurrentStep(2) if feedback.isCanceled(): return {} - feedback.setProgressText(self.tr("Add Interpolate lines to layer:")) + feedback.setProgressText(self.tr("Adding interpolated lines to layer:")) # Notes: This algorithm directly edit input layer in place using edit buffer layer.startEditing() - layer.beginEditCommand("Add interpolated lines") + layer.beginEditCommand(self.tr("Adding interpolated lines")) temp_layer = context.getMapLayer(outputs["interpolated_lines"]["OUTPUT"]) for (current, feature) in enumerate(temp_layer.getFeatures()): diff --git a/PreCourlis/processing/define_topo_bath_algorithm.py b/PreCourlis/processing/define_topo_bath_algorithm.py index 5eef89a5f80574f765416f5b15eb6b96cdebadd7..58c940fc23b2ff3c13b1ac5ee579501d6d3afe36 100644 --- a/PreCourlis/processing/define_topo_bath_algorithm.py +++ b/PreCourlis/processing/define_topo_bath_algorithm.py @@ -53,7 +53,7 @@ class DefineTopoBathAlgorithm(PreCourlisAlgorithm): TOPO_BAT_ATTRIBUTE_NAME = "topo_bat" # Convert lines to points: - feedback.setProgressText(self.tr("Convert sections lines to points:")) + feedback.setProgressText(self.tr("Converting sections lines to points:")) alg_params = {"INPUT": sections, "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT} outputs["lines_to_points"] = processing.run( @@ -68,7 +68,7 @@ class DefineTopoBathAlgorithm(PreCourlisAlgorithm): feedback.setCurrentStep(1) if feedback.isCanceled(): return {} - feedback.setProgressText(self.tr("Delete old topo_bat attribute:")) + feedback.setProgressText(self.tr("Deleting old topo_bat attribute:")) alg_params = { "INPUT": outputs["lines_to_points"]["OUTPUT"], @@ -87,7 +87,9 @@ class DefineTopoBathAlgorithm(PreCourlisAlgorithm): feedback.setCurrentStep(2) if feedback.isCanceled(): return {} - feedback.setProgressText(self.tr("Evalutate expression for polygons location:")) + feedback.setProgressText( + self.tr("Expression evaluation for polygons location:") + ) alg_params = { "INPUT": parameters[self.POLYGONS], @@ -111,7 +113,7 @@ class DefineTopoBathAlgorithm(PreCourlisAlgorithm): if feedback.isCanceled(): return {} feedback.setProgressText( - self.tr("Join topo_bath attribute by polygons location:") + self.tr("Joining topo_bath attribute by polygons location:") ) alg_params = { @@ -137,7 +139,7 @@ class DefineTopoBathAlgorithm(PreCourlisAlgorithm): feedback.setCurrentStep(4) if feedback.isCanceled(): return {} - feedback.setProgressText(self.tr("Refactor fields:")) + feedback.setProgressText(self.tr("Fields refactoring:")) alg_params = { "INPUT": outputs["join_attributes_by_location"]["OUTPUT"], @@ -249,7 +251,7 @@ class DefineTopoBathAlgorithm(PreCourlisAlgorithm): feedback.setCurrentStep(5) if feedback.isCanceled(): return {} - feedback.setProgressText(self.tr("Convert points back to lines:")) + feedback.setProgressText(self.tr("Converting points back to lines:")) alg_params = { "INPUT": outputs["refactorfields"]["OUTPUT"], @@ -267,7 +269,7 @@ class DefineTopoBathAlgorithm(PreCourlisAlgorithm): feedback.setCurrentStep(6) if feedback.isCanceled(): return {} - feedback.setProgressText(self.tr("Apply changes to sections:")) + feedback.setProgressText(self.tr("Applying changes to sections:")) # Notes: This algorithm directly edit input layer in place using edit buffer sections.startEditing() diff --git a/PreCourlis/processing/export_visu_profil_algorithm.py b/PreCourlis/processing/export_visu_profil_algorithm.py index af4e33aa79e4c90d8b047d915db85ef626ede5d4..8121e4fdd5b3a75a8da3e76e4a12ec21de6d611a 100644 --- a/PreCourlis/processing/export_visu_profil_algorithm.py +++ b/PreCourlis/processing/export_visu_profil_algorithm.py @@ -91,7 +91,7 @@ class ExportVisuProfilAlgorithm(PreCourlisAlgorithm): workbook = openpyxl.load_workbook(OUTPUT_EXCEL_FILEPATH, keep_vba=True) feedback.setProgress(30) - feedback.setProgressText(self.tr('Load worksheet named "Affichage"')) + feedback.setProgressText(self.tr("Load worksheet named 'Affichage'")) # Load worksheet named "Affichage" try: @@ -157,7 +157,7 @@ class ExportVisuProfilAlgorithm(PreCourlisAlgorithm): affichage_worksheet["Q1"].value = 1 feedback.setProgress(60) - feedback.setProgressText(self.tr('Load worksheet named "Données"')) + feedback.setProgressText(self.tr("Load worksheet named 'Données'")) # Load worksheet named "Données" try: @@ -179,7 +179,7 @@ class ExportVisuProfilAlgorithm(PreCourlisAlgorithm): data_worksheet["C1"].value = C1_header_value feedback.setProgress(70) - feedback.setProgressText(self.tr('Write in "Données" worksheet')) + feedback.setProgressText(self.tr("Write in 'Données' worksheet")) # Write in data worksheet LAYER_NAME = input_profiles_layer.name() diff --git a/PreCourlis/processing/import_tracks_algorithm.py b/PreCourlis/processing/import_tracks_algorithm.py index 0994dc28b13f665e2bbb82c74f5b4729e3dd9c00..19ae06a4bc85ce2c3f57d5a14aa3171d678f841d 100644 --- a/PreCourlis/processing/import_tracks_algorithm.py +++ b/PreCourlis/processing/import_tracks_algorithm.py @@ -78,7 +78,7 @@ class ImportTracksAlgorithm(PreCourlisAlgorithm): self.addParameter( QgsProcessingParameterBoolean( self.LATERAL_INTERPOLATION, - self.tr("Interpolation latérale"), + self.tr("Lateral interpolation"), defaultValue=True, ) )