Network: Translate default node and reach name in ui.

compare_results
Pierre-Antoine Rouby 2024-09-23 09:50:57 +02:00
parent a95364db1d
commit 5f37767207
7 changed files with 346 additions and 102 deletions

View File

@ -51,9 +51,9 @@ class Edge(object):
elif name == "id":
ret = self.id
elif name == "node1":
ret = self.node1.name
ret = self.node1
elif name == "node2":
ret = self.node2.name
ret = self.node2
elif name == "enable":
ret = self._enable
@ -75,10 +75,7 @@ class Edge(object):
@property
def name(self):
name = self._name
if self._name == "":
name = f"{self.node1.name} -> {self.node2.name}"
return name
return self._name
def is_enable(self):
return self._enable

View File

@ -35,11 +35,7 @@ class Node(object):
else:
self.id = id
if name == "":
self._name = f"Node {self.id}"
else:
self._name = name
self._name = name
self.pos = Point(x, y)
def __getitem__(self, key):

View File

@ -368,11 +368,18 @@ class EdgeItem(QGraphicsItem):
class NodeText(QGraphicsTextItem):
def __init__(self, node_item):
def __init__(self, node_item, graph):
super(NodeText, self).__init__()
self.item = node_item
self.setPlainText(self.item.node.name)
self.graph = graph
name = self.item.node.name
if name == "":
name = self.graph._trad.node_name(self.item.node)
self.setPlainText(name)
self.setDefaultTextColor(Qt.black)
self.set_custom_pos(self.item.pos())
self.setZValue(2)
@ -502,7 +509,7 @@ class GraphWidget(QGraphicsView):
for node in self.graph.nodes():
inode = NodeItem(node, self)
self.texts[inode] = NodeText(inode)
self.texts[inode] = NodeText(inode, self)
self.scene().addItem(self.texts[inode])
self.scene().addItem(inode)
self.node_items.append(inode)
@ -578,7 +585,7 @@ class GraphWidget(QGraphicsView):
inode = NodeItem(node, self)
self.scene().addItem(inode)
self.node_items.append(inode)
self.texts[inode] = NodeText(inode)
self.texts[inode] = NodeText(inode, self)
self.scene().addItem(self.texts[inode])
self.changeNode.emit(self.sender())

View File

@ -94,6 +94,9 @@ class NodeTableModel(PamhyrTableModel):
return ret
if self._headers[index.column()] == "name":
return self._trad.node_name(self._lst[index.row()])
return self._lst[index.row()][self._headers[index.column()]]
@pyqtSlot()
@ -133,6 +136,15 @@ class EdgeTableModel(PamhyrTableModel):
if role != Qt.ItemDataRole.DisplayRole:
return QVariant()
if (self._headers[index.column()] == "node1" or
self._headers[index.column()] == "node2"):
return self._trad.node_name(
self._lst[index.row()][self._headers[index.column()]]
)
if self._headers[index.column()] == "name":
return self._trad.edge_name(self._lst[index.row()])
return self._lst[index.row()][self._headers[index.column()]]
@pyqtSlot()

View File

@ -90,6 +90,7 @@ class NetworkWindow(PamhyrWindow):
table_view=table,
table_headers=self._table_headers_node,
editable_headers=["name"],
trad=self._trad,
data=self._graph,
undo=self._undo_stack,
)
@ -109,6 +110,7 @@ class NetworkWindow(PamhyrWindow):
table_view=table,
table_headers=self._table_headers_edge,
editable_headers=["name", "node1", "node2"],
trad=self._trad,
delegates={
"node1": self.delegate_combobox,
"node2": self.delegate_combobox,

View File

@ -31,6 +31,9 @@ class NetworkTranslate(MainTranslate):
"Network", "River network"
)
self._dict["node"] = _translate("Network", "Node")
self._dict["edge"] = _translate("Network", "Reach")
self._dict["menu_add_node"] = _translate("Network", "Add node")
self._dict["menu_del_node"] = _translate("Network", "Delete the node")
self._dict["menu_edit_res_node"] = _translate(
@ -63,3 +66,15 @@ class NetworkTranslate(MainTranslate):
"node2": _translate("Network", "Destination node"),
"id": _translate("Network", "Index"),
}
def node_name(self, node):
if node.name == "":
return f"{self['node']} #{node.id}"
return node.name
def edge_name(self, edge):
if edge.name == "":
return f"{self['edge']} #{edge.id}"
return edge.name

View File

@ -192,17 +192,17 @@
<translation>Modifier les conditions aux limites</translation>
</message>
<message>
<location filename="../View/BoundaryCondition/Edit/translate.py" line="37"/>
<location filename="../View/BoundaryCondition/Edit/translate.py" line="39"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../View/BoundaryCondition/Edit/translate.py" line="38"/>
<location filename="../View/BoundaryCondition/Edit/translate.py" line="40"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../View/BoundaryCondition/Edit/translate.py" line="43"/>
<location filename="../View/BoundaryCondition/Edit/translate.py" line="45"/>
<source>Solid (kg/s)</source>
<translation>Solide (kg/s)</translation>
</message>
@ -236,6 +236,11 @@
<source>Node</source>
<translation>Nœud</translation>
</message>
<message>
<location filename="../View/BoundaryCondition/Edit/translate.py" line="35"/>
<source>Boundary Condition Options</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BoundaryConditions</name>
@ -448,7 +453,7 @@
<translation>Sélection des graphiques personnalisés</translation>
</message>
<message>
<location filename="../View/Results/CustomPlot/Translate.py" line="46"/>
<location filename="../View/Results/CustomPlot/Translate.py" line="54"/>
<source>Bed elevation (m)</source>
<translation>Cote du fond (m)</translation>
</message>
@ -649,9 +654,9 @@
<translation>Axe Y :</translation>
</message>
<message>
<location filename="../View/ui/InitialConditions_Dialog_Generator_Discharge.ui" line="25"/>
<location filename="../View/ui/InitialConditions_Dialog_Generator_Height.ui" line="49"/>
<source>Discharge</source>
<translation type="obsolete">Débit</translation>
<translation type="unfinished">Débit</translation>
</message>
<message>
<location filename="../View/ui/MeshingOptions.ui" line="168"/>
@ -729,9 +734,9 @@
<translation>Limites</translation>
</message>
<message>
<location filename="../View/ui/MeshingOptions.ui" line="121"/>
<location filename="../View/ui/BoundaryConditionsDialogGenerator.ui" line="14"/>
<source>Options</source>
<translation type="obsolete">Options</translation>
<translation type="unfinished">Options</translation>
</message>
<message>
<location filename="../View/ui/MeshingOptions.ui" line="36"/>
@ -746,7 +751,7 @@
<message>
<location filename="../View/ui/InitialConditions_Dialog_Generator_Height.ui" line="25"/>
<source>Height (m)</source>
<translation>Hauteur (m)</translation>
<translation type="obsolete">Hauteur (m)</translation>
</message>
<message>
<location filename="../View/ui/ConfigureDialog.ui" line="241"/>
@ -754,27 +759,27 @@
<translation>Stricklers</translation>
</message>
<message>
<location filename="../View/ui/UpdateRKOptions.ui" line="30"/>
<location filename="../View/ui/UpdateRKOptions.ui" line="23"/>
<source>Distance computation</source>
<translation>Calcule des distances</translation>
</message>
<message>
<location filename="../View/ui/UpdateRKOptions.ui" line="46"/>
<location filename="../View/ui/UpdateRKOptions.ui" line="32"/>
<source>Second guide-line</source>
<translation>Deuxième ligne directrice</translation>
</message>
<message>
<location filename="../View/ui/UpdateRKOptions.ui" line="63"/>
<location filename="../View/ui/UpdateRKOptions.ui" line="55"/>
<source>First guide-line</source>
<translation>Première ligne directrice</translation>
</message>
<message>
<location filename="../View/ui/UpdateRKOptions.ui" line="73"/>
<location filename="../View/ui/UpdateRKOptions.ui" line="78"/>
<source>Origin</source>
<translation>Origine</translation>
</message>
<message>
<location filename="../View/ui/UpdateRKOptions.ui" line="80"/>
<location filename="../View/ui/UpdateRKOptions.ui" line="92"/>
<source>Origin value</source>
<translation>Valeur de l&apos;origine</translation>
</message>
@ -803,8 +808,88 @@
<source>Second guideline</source>
<translation>Seconde ligne directrice</translation>
</message>
<message>
<location filename="../View/ui/GeometryReachShift.ui" line="35"/>
<source>Y coordinate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/GeometryReachShift.ui" line="42"/>
<source>X coordinate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/GeometryReachShift.ui" line="78"/>
<source>Z coordinate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/UpdateRKOptions.ui" line="39"/>
<source>Upstream to downstream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/UpdateRKOptions.ui" line="99"/>
<source>Downstream to upstream</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/UpdateRKOptions.ui" line="116"/>
<source>Orientation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/UpdateRKOptions.ui" line="126"/>
<source>Keep current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/InitialConditions_Dialog_Generator_Height.ui" line="25"/>
<source>Upstream height (m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/InitialConditions_Dialog_Generator_Height.ui" line="73"/>
<source>Downstream height (m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/InitialConditions_Dialog_Generator_Height.ui" line="107"/>
<source>Generate constant discharge</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/BoundaryConditionsDialogGenerator.ui" line="38"/>
<source>Slope</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/BoundaryConditionsDialogGenerator.ui" line="55"/>
<source>Estimate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/PurgeOptions.ui" line="30"/>
<source>Number of points to keep</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/InitialConditions_Dialog_Generator_Discharge.ui" line="54"/>
<source>Generate height</source>
<translation type="unfinished">Générer une hauteur</translation>
</message>
<message>
<location filename="../View/ui/InitialConditions_Dialog_Generator_Depth.ui" line="35"/>
<source>Depth (m)</source>
<translation type="unfinished">Hauteur (m)</translation>
</message>
<message>
<location filename="../View/ui/InitialConditions_Dialog_Generator_Depth.ui" line="51"/>
<source>Generate discharge</source>
<translation type="unfinished">Générer un débit</translation>
</message>
<message encoding="UTF-8">
<location filename="../View/ui/InitialConditions_Dialog_Generator_Discharge.ui" line="25"/>
<location filename="../View/ui/InitialConditions_Dialog_Generator_Discharge.ui" line="35"/>
<source>Discharge (m³/s)</source>
<translation type="unfinished"></translation>
</message>
@ -1127,35 +1212,40 @@
<translation type="obsolete">Modifier les frottements</translation>
</message>
<message>
<location filename="../View/Frictions/translate.py" line="42"/>
<location filename="../View/Frictions/translate.py" line="45"/>
<source>Start (m)</source>
<translation>PK de départ (m)</translation>
</message>
<message>
<location filename="../View/Frictions/translate.py" line="43"/>
<location filename="../View/Frictions/translate.py" line="46"/>
<source>End (m)</source>
<translation>PK de fin (m)</translation>
</message>
<message>
<location filename="../View/Frictions/translate.py" line="44"/>
<location filename="../View/Frictions/translate.py" line="47"/>
<source>Start coefficient</source>
<translation>Coefficient de départ</translation>
</message>
<message>
<location filename="../View/Frictions/translate.py" line="45"/>
<location filename="../View/Frictions/translate.py" line="48"/>
<source>End coefficient</source>
<translation>Coefficient de fin</translation>
</message>
<message>
<location filename="../View/Frictions/translate.py" line="31"/>
<location filename="../View/Frictions/translate.py" line="34"/>
<source>Stricklers</source>
<translation>Stricklers</translation>
</message>
<message>
<location filename="../View/Frictions/translate.py" line="35"/>
<location filename="../View/Frictions/translate.py" line="38"/>
<source>Edit frictions</source>
<translation>Éditer les frotements</translation>
</message>
<message>
<location filename="../View/Frictions/translate.py" line="31"/>
<source>Strickler ($m^{1/3}/s$)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Geometry</name>
@ -1309,6 +1399,21 @@
<source>the mean over the two guide-lines</source>
<translation>la moyenne entre les deux ligne directrice</translation>
</message>
<message>
<location filename="../View/Geometry/Translate.py" line="85"/>
<source>UpdateRK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/Geometry/Translate.py" line="88"/>
<source>Purge</source>
<translation type="unfinished">Purger</translation>
</message>
<message>
<location filename="../View/Geometry/Translate.py" line="91"/>
<source>Shift</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HydraulicStructures</name>
@ -1387,17 +1492,17 @@
<context>
<name>MainWindow</name>
<message>
<location filename="../View/Translate.py" line="86"/>
<location filename="../View/Translate.py" line="97"/>
<source>Open debug window</source>
<translation>Ouvrir la fenêtre de débogage</translation>
</message>
<message>
<location filename="../View/Translate.py" line="89"/>
<location filename="../View/Translate.py" line="100"/>
<source>Open SQLite debuging tool (&apos;sqlitebrowser&apos;)</source>
<translation>Ouvrir l&apos;outil de débogage SQLite (&apos;sqlitebrowser&apos;)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="92"/>
<location filename="../View/Translate.py" line="103"/>
<source>Enable this window</source>
<translation>Activer cette fenêtre</translation>
</message>
@ -1412,7 +1517,7 @@
<translation type="obsolete">Barre d&apos;outils</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="169"/>
<location filename="../View/ui/GeometryReach.ui" line="127"/>
<source>Add</source>
<translation>Ajouter</translation>
</message>
@ -1432,7 +1537,7 @@
<translation>Supprimer les casier(s)</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="193"/>
<location filename="../View/ui/GeometryReach.ui" line="151"/>
<source>Edit</source>
<translation>modifier</translation>
</message>
@ -1622,12 +1727,12 @@
<translation>Modifier la géométrie</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="148"/>
<location filename="../View/ui/GeometryReach.ui" line="106"/>
<source>Import geometry</source>
<translation>Importer une géométrie</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="160"/>
<location filename="../View/ui/GeometryReach.ui" line="118"/>
<source>Export geometry</source>
<translation>Exporter la géométrie</translation>
</message>
@ -1952,42 +2057,42 @@
<translation>Modifier une condition aux limites ou un apport ponctuel</translation>
</message>
<message>
<location filename="../View/ui/Results.ui" line="152"/>
<location filename="../View/ui/Results.ui" line="142"/>
<source>Raw data</source>
<translation>Données brutes</translation>
</message>
<message>
<location filename="../View/ui/Results.ui" line="169"/>
<location filename="../View/ui/Results.ui" line="159"/>
<source>Water elevation</source>
<translation>Cote de l&apos;eau</translation>
</message>
<message>
<location filename="../View/ui/Results.ui" line="201"/>
<location filename="../View/ui/Results.ui" line="191"/>
<source>Discharge time series</source>
<translation>Hydrogramme</translation>
</message>
<message>
<location filename="../View/ui/Results.ui" line="254"/>
<location filename="../View/ui/Results.ui" line="244"/>
<source>Add customized visualization</source>
<translation>Ajouter une visualisation personnalisée</translation>
</message>
<message>
<location filename="../View/ui/Results.ui" line="263"/>
<location filename="../View/ui/Results.ui" line="253"/>
<source>Reload</source>
<translation>Recharger</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="157"/>
<location filename="../View/ui/GeometryReach.ui" line="115"/>
<source>Export</source>
<translation>Exporter</translation>
</message>
<message>
<location filename="../View/ui/Results.ui" line="275"/>
<source>Export raw data</source>
<translation>Exporter les données brutes</translation>
<translation type="obsolete">Exporter les données brutes</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="181"/>
<location filename="../View/ui/GeometryReach.ui" line="139"/>
<source>delete</source>
<translation>supprimer</translation>
</message>
@ -2042,7 +2147,7 @@
<translation>Activer/Désactiver l&apos;ouvrage hydraulique élémentaire</translation>
</message>
<message>
<location filename="../View/ui/EditBoundaryConditions.ui" line="89"/>
<location filename="../View/ui/EditBoundaryConditions.ui" line="92"/>
<source>Add a new point</source>
<translation>Ajouter un nouveau point</translation>
</message>
@ -2092,7 +2197,7 @@
<translation>Supprimer les points sélectionnés</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="229"/>
<location filename="../View/ui/GeometryReach.ui" line="187"/>
<source>Up</source>
<translation>Monter</translation>
</message>
@ -2102,7 +2207,7 @@
<translation>Déplacer les points sélectionnés vers le haut</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="241"/>
<location filename="../View/ui/GeometryReach.ui" line="199"/>
<source>Down</source>
<translation>Descendre</translation>
</message>
@ -2112,7 +2217,7 @@
<translation>Déplacer les points sélectionnés vers le bas</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="205"/>
<location filename="../View/ui/GeometryReach.ui" line="163"/>
<source>sort_asc</source>
<translation>sort_asc</translation>
</message>
@ -2122,7 +2227,7 @@
<translation>Trier les points par leurs plus proches voisins</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="217"/>
<location filename="../View/ui/GeometryReach.ui" line="175"/>
<source>sort_des</source>
<translation>sort_des</translation>
</message>
@ -2169,7 +2274,7 @@
<message>
<location filename="../View/ui/InitialConditions.ui" line="30"/>
<source>Generate height</source>
<translation>Générer une hauteur</translation>
<translation type="obsolete">Générer une hauteur</translation>
</message>
<message>
<location filename="../View/ui/InitialConditions.ui" line="37"/>
@ -2177,22 +2282,22 @@
<translation>Générer un débit</translation>
</message>
<message>
<location filename="../View/ui/InitialConditions.ui" line="98"/>
<location filename="../View/ui/InitialConditions.ui" line="105"/>
<source>Add new initial condition</source>
<translation>Ajouter une nouvelle condition initiale</translation>
</message>
<message>
<location filename="../View/ui/InitialConditions.ui" line="110"/>
<location filename="../View/ui/InitialConditions.ui" line="117"/>
<source>Delete inital condition</source>
<translation>Supprimer une condition initiale</translation>
</message>
<message>
<location filename="../View/ui/InitialConditions.ui" line="119"/>
<location filename="../View/ui/InitialConditions.ui" line="126"/>
<source>sort</source>
<translation>sort</translation>
</message>
<message>
<location filename="../View/ui/InitialConditions.ui" line="122"/>
<location filename="../View/ui/InitialConditions.ui" line="129"/>
<source>Sort inital conditions</source>
<translation>Trier les conditions initiales</translation>
</message>
@ -2237,57 +2342,57 @@
<translation>Modifier les couches sédimentaires</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="145"/>
<location filename="../View/ui/GeometryReach.ui" line="103"/>
<source>Import</source>
<translation>Importer</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="172"/>
<location filename="../View/ui/GeometryReach.ui" line="130"/>
<source>Add a cross-section</source>
<translation>Ajouter une section en travers</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="184"/>
<location filename="../View/ui/GeometryReach.ui" line="142"/>
<source>Delete selected cross-section(s)</source>
<translation>Supprimer les sections en travers sélectionnées</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="196"/>
<location filename="../View/ui/GeometryReach.ui" line="154"/>
<source>Edit selected cross section(s)</source>
<translation>Modifier les sections en travers sélectionnées</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="208"/>
<location filename="../View/ui/GeometryReach.ui" line="166"/>
<source>Sort cross-sections by ascending position</source>
<translation>Trier les sections en travers par PK croissant</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="220"/>
<location filename="../View/ui/GeometryReach.ui" line="178"/>
<source>Sort cross-sections by descending position</source>
<translation>Trier les sections en travers par PK décroissant</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="232"/>
<location filename="../View/ui/GeometryReach.ui" line="190"/>
<source>Move up selected cross-section(s)</source>
<translation>Déplacer les sections en travers vers le haut</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="244"/>
<location filename="../View/ui/GeometryReach.ui" line="202"/>
<source>Move down selected cross-section(s)</source>
<translation>Déplacer les sections en travers vers le bas</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="253"/>
<location filename="../View/ui/GeometryReach.ui" line="211"/>
<source>Meshing</source>
<translation>Maillage</translation>
</message>
<message>
<location filename="../View/Translate.py" line="79"/>
<location filename="../View/Translate.py" line="90"/>
<source>Summary</source>
<translation>Résumé</translation>
</message>
<message>
<location filename="../View/Translate.py" line="82"/>
<location filename="../View/Translate.py" line="93"/>
<source>Checks</source>
<translation>Vérifications</translation>
</message>
@ -2382,7 +2487,7 @@
<translation>Modifier les informations de l&apos;étude</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="112"/>
<location filename="../View/ui/GeometryReach.ui" line="69"/>
<source>toolBar</source>
<translation type="unfinished"></translation>
</message>
@ -2397,7 +2502,7 @@
<translation>Éditer les frotements</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="266"/>
<location filename="../View/ui/GeometryReach.ui" line="224"/>
<source>Purge</source>
<translation>Purger</translation>
</message>
@ -2417,22 +2522,22 @@
<translation>Retourner l&apos;ordre des points</translation>
</message>
<message>
<location filename="../View/ui/InitialConditions.ui" line="134"/>
<location filename="../View/ui/InitialConditions.ui" line="141"/>
<source>Import from file</source>
<translation>Importer depuis un fichier</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="258"/>
<location filename="../View/ui/GeometryReach.ui" line="216"/>
<source>Update RK</source>
<translation>Mise à jour des PK</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="261"/>
<location filename="../View/ui/GeometryReach.ui" line="219"/>
<source>Recompute RK</source>
<translation>Recalcule des PK</translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="269"/>
<location filename="../View/ui/GeometryReach.ui" line="227"/>
<source>Purge cross-sections to keep a given number of points</source>
<translation>Purger les profiles pour garder un nombre fixer de points</translation>
</message>
@ -2441,6 +2546,61 @@
<source>Sort points</source>
<translation>Trier les points</translation>
</message>
<message>
<location filename="../View/ui/Results.ui" line="265"/>
<source>Export data as CSV</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/InitialConditions.ui" line="30"/>
<source>Generate depth</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/InitialConditions.ui" line="44"/>
<source>Generate elevation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/EditBoundaryConditions.ui" line="130"/>
<source>Generate uniform</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/EditBoundaryConditions.ui" line="133"/>
<source>Generate rating curve from Manning law</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/EditBoundaryConditions.ui" line="138"/>
<source>Generate critical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/EditBoundaryConditions.ui" line="141"/>
<source>Generate rating curve as Q(z) = Sqrt(g*S(z)^3/L(z))</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/EditBoundaryConditions.ui" line="146"/>
<source>Make increasing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/EditBoundaryConditions.ui" line="149"/>
<source>Remove points to make the curve increasing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="232"/>
<source>Shift</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/ui/GeometryReach.ui" line="235"/>
<source>Shift selected sections coordinates</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow_reach</name>
@ -2473,60 +2633,75 @@
<translation>Réseau</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="34"/>
<location filename="../View/Network/translate.py" line="37"/>
<source>Add node</source>
<translation>Ajouter un nœud</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="35"/>
<location filename="../View/Network/translate.py" line="38"/>
<source>Delete the node</source>
<translation>Supprimer le nœud</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="36"/>
<location filename="../View/Network/translate.py" line="39"/>
<source>Edit node reservoir</source>
<translation>Modifier le casier du nœud</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="39"/>
<location filename="../View/Network/translate.py" line="42"/>
<source>Add node reservoir</source>
<translation>Ajouter un casier au nœud</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="46"/>
<location filename="../View/Network/translate.py" line="49"/>
<source>Delete the reach</source>
<translation>Supprimer l&apos;arrête</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="47"/>
<location filename="../View/Network/translate.py" line="50"/>
<source>Enable the reach</source>
<translation>Activer l&apos;arête</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="48"/>
<location filename="../View/Network/translate.py" line="51"/>
<source>Disable the reach</source>
<translation>Désactiver l&apos;arête</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="50"/>
<location filename="../View/Network/translate.py" line="53"/>
<source>Reverse the reach orientation</source>
<translation>Inverser l&apos;orientation de l&apos;arête</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="61"/>
<location filename="../View/Network/translate.py" line="65"/>
<source>Source node</source>
<translation>Nœud source</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="62"/>
<location filename="../View/Network/translate.py" line="66"/>
<source>Destination node</source>
<translation>Nœud destination</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="42"/>
<location filename="../View/Network/translate.py" line="45"/>
<source>Delete node reservoir</source>
<translation>Supprimer le casier du nœud</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="34"/>
<source>Node</source>
<translation>Nœud</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="35"/>
<source>Reach</source>
<translation>Bief</translation>
</message>
<message>
<location filename="../View/Network/translate.py" line="67"/>
<source>Index</source>
<translation>Index</translation>
</message>
</context>
<context>
<name>Pamhyr</name>
@ -2585,7 +2760,7 @@
<translation>X (m)</translation>
</message>
<message>
<location filename="../View/Results/PlotXY.py" line="57"/>
<location filename="../View/Results/PlotXY.py" line="61"/>
<source>Y (m)</source>
<translation>Y (m)</translation>
</message>
@ -3048,7 +3223,7 @@
<message>
<location filename="../View/Translate.py" line="55"/>
<source>Position (m)</source>
<translation>PK (m)</translation>
<translation type="obsolete">PK (m)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="56"/>
@ -3061,47 +3236,47 @@
<translation>Hauteur (m)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="58"/>
<location filename="../View/Translate.py" line="60"/>
<source>Diameter (m)</source>
<translation>Diamètre (m)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="59"/>
<location filename="../View/Translate.py" line="61"/>
<source>Thickness (m)</source>
<translation>Épaisseur (m)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="60"/>
<location filename="../View/Translate.py" line="62"/>
<source>Elevation (m)</source>
<translation>Cote (m)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="61"/>
<location filename="../View/Translate.py" line="63"/>
<source>Water elevation (m)</source>
<translation>Cote de l&apos;eau (m)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="66"/>
<location filename="../View/Translate.py" line="68"/>
<source>Area (hectare)</source>
<translation>Aire (hectare)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="68"/>
<location filename="../View/Translate.py" line="70"/>
<source>Time (sec)</source>
<translation>Temps (s)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="69"/>
<location filename="../View/Translate.py" line="71"/>
<source>Time (JJJ:HH:MM:SS)</source>
<translation>Temps (JJJ:HH:MM:SS)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="71"/>
<location filename="../View/Translate.py" line="73"/>
<source>Date (sec)</source>
<translation>Date (s)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="72"/>
<location filename="../View/Translate.py" line="74"/>
<source>Date (ISO format)</source>
<translation>Date (format ISO)</translation>
</message>
@ -3113,12 +3288,52 @@
<message>
<location filename="../View/Translate.py" line="64"/>
<source>Speed (m/s)</source>
<translation>Vitesse (m/s)</translation>
<translation type="obsolete">Vitesse (m/s)</translation>
</message>
<message>
<location filename="../View/Translate.py" line="55"/>
<source>River Kilometer (m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/Translate.py" line="58"/>
<source>Max Depth (m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/Translate.py" line="59"/>
<source>Mean Depth (m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/Translate.py" line="66"/>
<source>Velocity (m/s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/Translate.py" line="77"/>
<source>Wet Perimeter (m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/Translate.py" line="80"/>
<source>Hydraulic Radius (m)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../View/Translate.py" line="83"/>
<source>Froude number</source>
<translation type="unfinished"></translation>
</message>
<message encoding="UTF-8">
<location filename="../View/Translate.py" line="65"/>
<location filename="../View/Translate.py" line="67"/>
<source>Discharge (m³/s)</source>
<translation type="unfinished"></translation>
</message>
<message encoding="UTF-8">
<location filename="../View/Translate.py" line="76"/>
<source>Wet Area (m²)</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>