trans: Fix Network and Results table translate.

mesh
Pierre-Antoine Rouby 2023-09-19 14:40:04 +02:00
parent 47bcf8a748
commit f5046858c8
6 changed files with 94 additions and 51 deletions

View File

@ -16,6 +16,8 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from PyQt5.QtCore import QCoreApplication
from PyQt5.QtGui import ( from PyQt5.QtGui import (
QKeySequence, QKeySequence,
) )
@ -37,11 +39,17 @@ from Model.River import RiverNode, RiverReach, River
from View.ASubWindow import ASubMainWindow from View.ASubWindow import ASubMainWindow
from View.Network.GraphWidget import GraphWidget from View.Network.GraphWidget import GraphWidget
from View.Network.UndoCommand import * from View.Network.UndoCommand import *
from View.Network.translate import * from View.Network.translate import (
table_headers_node, table_headers_edge,
retranslate,
)
from View.Network.Table import ( from View.Network.Table import (
ComboBoxDelegate, NodeTableModel, EdgeTableModel, ComboBoxDelegate, NodeTableModel, EdgeTableModel,
) )
_translate = QCoreApplication.translate
class NetworkWindow(ASubMainWindow): class NetworkWindow(ASubMainWindow):
def __init__(self, model=None, title="River network", parent=None): def __init__(self, model=None, title="River network", parent=None):
self._title = title self._title = title
@ -70,6 +78,8 @@ class NetworkWindow(ASubMainWindow):
self.redo_sc = QShortcut(QKeySequence.Redo, self) self.redo_sc = QShortcut(QKeySequence.Redo, self)
def setup_table(self): def setup_table(self):
retranslate()
# Nodes table # Nodes table
table = self.find(QTableView, "tableView_nodes") table = self.find(QTableView, "tableView_nodes")
self._nodes_model = NodeTableModel( self._nodes_model = NodeTableModel(

View File

@ -30,3 +30,11 @@ table_headers_edge = {
"node1": _translate("Network", "Source node"), "node1": _translate("Network", "Source node"),
"node2": _translate("Network", "Destination node"), "node2": _translate("Network", "Destination node"),
} }
def retranslate():
table_headers_node["name"] = _translate("Network", "Name")
table_headers_node["type"] = _translate("Network", "Type")
table_headers_edge["name"] = _translate("Network", "Name")
table_headers_edge["node1"] = _translate("Network", "Source node")
table_headers_edge["node2"] = _translate("Network", "Destination node")

View File

@ -53,7 +53,10 @@ from View.Results.PlotSedReach import PlotSedReach
from View.Results.PlotSedProfile import PlotSedProfile from View.Results.PlotSedProfile import PlotSedProfile
from View.Results.Table import TableModel from View.Results.Table import TableModel
from View.Results.translate import * from View.Results.translate import (
table_headers_reach, table_headers_profile,
retranslate,
)
from View.Stricklers.Window import StricklersWindow from View.Stricklers.Window import StricklersWindow
_translate = QCoreApplication.translate _translate = QCoreApplication.translate
@ -102,6 +105,7 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
self.paste_sc = QShortcut(QKeySequence.Paste, self) self.paste_sc = QShortcut(QKeySequence.Paste, self)
def setup_table(self): def setup_table(self):
retranslate()
self._table = {} self._table = {}
for t in ["reach", "profile"]: for t in ["reach", "profile"]:

View File

@ -28,3 +28,9 @@ table_headers_profile = {
"name": _translate("Results", "Name"), "name": _translate("Results", "Name"),
"kp": _translate("Results", "KP (m)"), "kp": _translate("Results", "KP (m)"),
} }
def retranslate():
table_headers_reach["name"] = _translate("Results", "Reach name")
table_headers_profile["name"] = _translate("Results", "Name")
table_headers_profile["kp"] = _translate("Results", "KP (m)")

View File

@ -121,6 +121,7 @@ class PamhyrTableModel(QAbstractTableModel):
def headerData(self, section, orientation, role): def headerData(self, section, orientation, role):
if role == Qt.ItemDataRole.DisplayRole and orientation == Qt.Orientation.Horizontal: if role == Qt.ItemDataRole.DisplayRole and orientation == Qt.Orientation.Horizontal:
logger.info(self._table_headers[self._headers[section]])
return self._table_headers[self._headers[section]] return self._table_headers[self._headers[section]]
return QVariant() return QVariant()

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS><TS version="2.0" language="fr_FR" sourcelanguage="en_150">
<TS version="2.1" language="fr_FR" sourcelanguage="en_150">
<context> <context>
<name>About</name> <name>About</name>
<message> <message>
@ -78,7 +77,7 @@
</message> </message>
<message> <message>
<location filename="../View/BoundaryCondition/Edit/translate.py" line="12"/> <location filename="../View/BoundaryCondition/Edit/translate.py" line="12"/>
<source>Discharge (m³/s)</source> <source>Discharge (m&#xb3;/s)</source>
<translation type="obsolete">Débit (m³/s)</translation> <translation type="obsolete">Débit (m³/s)</translation>
</message> </message>
<message> <message>
@ -106,6 +105,11 @@
<source>ZDischarge</source> <source>ZDischarge</source>
<translation>HauteurDébit</translation> <translation>HauteurDébit</translation>
</message> </message>
<message encoding="UTF-8">
<location filename="../View/BoundaryCondition/Edit/translate.py" line="28"/>
<source>Discharge (m³/s)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Checker</name> <name>Checker</name>
@ -704,9 +708,14 @@
</message> </message>
<message> <message>
<location filename="../View/InitialConditions/translate.py" line="11"/> <location filename="../View/InitialConditions/translate.py" line="11"/>
<source>Discharge (m³/s)</source> <source>Discharge (m&#xb3;/s)</source>
<translation type="obsolete">Débit (m³/s)</translation> <translation type="obsolete">Débit (m³/s)</translation>
</message> </message>
<message encoding="UTF-8">
<location filename="../View/InitialConditions/translate.py" line="27"/>
<source>Discharge (m³/s)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
@ -1515,28 +1524,28 @@
<source>Edit sediment layers</source> <source>Edit sediment layers</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/ui/MainWindow.ui" line="553"/> <location filename="../View/ui/MainWindow.ui" line="553"/>
<source>Édition des Tronçons</source> <source>Édition des Tronçons</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/ui/MainWindow.ui" line="667"/> <location filename="../View/ui/MainWindow.ui" line="667"/>
<source>Ouvrir une étude</source> <source>Ouvrir une étude</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/ui/MainWindow.ui" line="679"/> <location filename="../View/ui/MainWindow.ui" line="679"/>
<source>Enrégistrer étude en cours (Ctrl+S)</source> <source>Enrégistrer étude en cours (Ctrl+S)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/ui/MainWindow.ui" line="694"/> <location filename="../View/ui/MainWindow.ui" line="694"/>
<source>Fermer étude en cours (Ctrl+F)</source> <source>Fermer étude en cours (Ctrl+F)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context encoding="UTF-8">
<name>MainWindowProfile</name> <name>MainWindowProfile</name>
<message> <message>
<location filename="../View/Geometry/Profile/Window.py" line="83"/> <location filename="../View/Geometry/Profile/Window.py" line="83"/>
@ -1610,108 +1619,108 @@
<source>Cote (m)</source> <source>Cote (m)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/Window.py" line="328"/> <location filename="../View/Geometry/Profile/Window.py" line="328"/>
<source>Suppression les lignes incomplètes</source> <source>Suppression les lignes incomplètes</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/Window.py" line="328"/> <location filename="../View/Geometry/Profile/Window.py" line="328"/>
<source>Supprimer les lignes des cellules non renseignées ?</source> <source>Supprimer les lignes des cellules non renseignées ?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/Window.py" line="371"/> <location filename="../View/Geometry/Profile/Window.py" line="371"/>
<source>Suppression des noms répétés</source> <source>Suppression des noms répétés</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/Window.py" line="382"/> <location filename="../View/Geometry/Profile/Window.py" line="382"/>
<source>Etes-vous sûr de vouloir quitter ?</source> <source>Etes-vous sûr de vouloir quitter ?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="225"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="225"/>
<source>Insérer un point</source> <source>Insérer un point</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="226"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="226"/>
<source>Supprimer le/les point(s) sélectionnés</source> <source>Supprimer le/les point(s) sélectionnés</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="230"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="230"/>
<source>Trier les points par ordre décroissant de X</source> <source>Trier les points par ordre décroissant de X</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="235"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="235"/>
<source>Trier les points par ordre décroissant de Y</source> <source>Trier les points par ordre décroissant de Y</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="237"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="237"/>
<source>Décaler le point sélectionné vers le haut</source> <source>Décaler le point sélectionné vers le haut</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="239"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="239"/>
<source>Décaler le point sélectionné vers le bas</source> <source>Décaler le point sélectionné vers le bas</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="241"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="241"/>
<source>Exporter (dans un fichier) les points du profil au format tabulé</source> <source>Exporter (dans un fichier) les points du profil au format tabulé</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="243"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="243"/>
<source>Copier la sélection au format tabulé</source> <source>Copier la sélection au format tabulé</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="245"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="245"/>
<source>Coller la sélection depuis le presse-papier au format tabulé</source> <source>Coller la sélection depuis le presse-papier au format tabulé</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="247"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="247"/>
<source>Vérifier la validité de la saisie et garder ou pas les modifications apportées</source> <source>Vérifier la validité de la saisie et garder ou pas les modifications apportées</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="250"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="250"/>
<source>Annuler toutes les modifications depuis la dernière validation</source> <source>Annuler toutes les modifications depuis la dernière validation</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="252"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="252"/>
<source>Annuler toutes les modifications et revenir à l&apos;état initial</source> <source>Annuler toutes les modifications et revenir à l&apos;état initial</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="254"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="254"/>
<source>Ligne d&apos;eau : <source>Ligne d&apos;eau :
Z : Cote (m) <byte value="x9"/>Z : Cote (m)
A : Aire mouillée (mu00B2) <byte value="x9"/>A : Aire mouillée (mu00B2)
p : Périmètre mouillé (m) <byte value="x9"/>p : Périmètre mouillé (m)
L : Largeur au miroir (m)</source> <byte value="x9"/>L : Largeur au miroir (m)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="258"/> <location filename="../View/Geometry/Profile/mainwindow_ui_profile.py" line="258"/>
<source>&apos;Maj + Clic&apos; : Ligne d&apos;eau &amp; &apos;Ctrl + Clic&apos; : Sélectionner des points</source> <source>&apos;Maj + Clic&apos; : Ligne d&apos;eau &amp; &apos;Ctrl + Clic&apos; : Sélectionner des points</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Profile/Table.py" line="142"/> <location filename="../View/Geometry/Profile/Table.py" line="142"/>
<source>Abscisse en travers calculée en projétant les points <source>Abscisse en travers calculée en projétant les points
sur le plan défini par les deux points nommés extrêmes </source> sur le plan défini par les deux points nommés extrêmes </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context encoding="UTF-8">
<name>MainWindow_reach</name> <name>MainWindow_reach</name>
<message> <message>
<location filename="../View/Frictions/PlotStricklers.py" line="76"/> <location filename="../View/Frictions/PlotStricklers.py" line="76"/>
@ -1903,58 +1912,58 @@ sur le plan défini par les deux points nommés extrêmes </source>
<source> Editer selected profile</source> <source> Editer selected profile</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Window.py" line="164"/> <location filename="../View/Geometry/Window.py" line="164"/>
<source>Édition des profils sélectionnés</source> <source>Édition des profils sélectionnés</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Window.py" line="166"/> <location filename="../View/Geometry/Window.py" line="166"/>
<source>Vous avez sélectionné plus de 5 profils. <source>Vous avez sélectionné plus de 5 profils.
Seuls les 5 premiers seront édités.</source> Seuls les 5 premiers seront édités.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/Window.py" line="322"/> <location filename="../View/Geometry/Window.py" line="322"/>
<source>Profil N° : </source> <source>Profil N° : </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/PlotAC.py" line="179"/> <location filename="../View/Geometry/PlotAC.py" line="179"/>
<source>Profil précédent</source> <source>Profil précédent</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/PlotAC.py" line="180"/> <location filename="../View/Geometry/PlotAC.py" line="180"/>
<source>Profil sélectionné</source> <source>Profil sélectionné</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/mainwindow_ui_reach.py" line="328"/> <location filename="../View/Geometry/mainwindow_ui_reach.py" line="328"/>
<source> Trier les profils par ordre décroissant des Pk</source> <source> Trier les profils par ordre décroissant des Pk</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/mainwindow_ui_reach.py" line="329"/> <location filename="../View/Geometry/mainwindow_ui_reach.py" line="329"/>
<source> Changer l&apos;ordre des profils (en décalant le profil sélectionné vers le haut)</source> <source> Changer l&apos;ordre des profils (en décalant le profil sélectionné vers le haut)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/mainwindow_ui_reach.py" line="331"/> <location filename="../View/Geometry/mainwindow_ui_reach.py" line="331"/>
<source> Changer l&apos;ordre des profils (en décalant le profil sélectionné vers le bas)</source> <source> Changer l&apos;ordre des profils (en décalant le profil sélectionné vers le bas)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/mainwindow_ui_reach.py" line="339"/> <location filename="../View/Geometry/mainwindow_ui_reach.py" line="339"/>
<source>Vue isométrique (Alt+Z)</source> <source>Vue isométrique (Alt+Z)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/mainwindow_ui_reach.py" line="342"/> <location filename="../View/Geometry/mainwindow_ui_reach.py" line="342"/>
<source>Vue isométrique (Alt+E)</source> <source>Vue isométrique (Alt+E)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message encoding="UTF-8">
<location filename="../View/Geometry/mainwindow_ui_reach.py" line="345"/> <location filename="../View/Geometry/mainwindow_ui_reach.py" line="345"/>
<source>Vue isométrique (Alt+R)</source> <source>Vue isométrique (Alt+R)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2000,22 +2009,22 @@ Seuls les 5 premiers seront édités.</source>
<message> <message>
<location filename="../View/Network/translate.py" line="29"/> <location filename="../View/Network/translate.py" line="29"/>
<source>Name</source> <source>Name</source>
<translation type="unfinished">Nom</translation> <translation>Nom</translation>
</message> </message>
<message> <message>
<location filename="../View/Network/translate.py" line="25"/> <location filename="../View/Network/translate.py" line="25"/>
<source>Type</source> <source>Type</source>
<translation type="unfinished">Type</translation> <translation>Type</translation>
</message> </message>
<message> <message>
<location filename="../View/Network/translate.py" line="30"/> <location filename="../View/Network/translate.py" line="30"/>
<source>Source node</source> <source>Source node</source>
<translation type="unfinished"></translation> <translation>Nœud source</translation>
</message> </message>
<message> <message>
<location filename="../View/Network/translate.py" line="31"/> <location filename="../View/Network/translate.py" line="31"/>
<source>Destination node</source> <source>Destination node</source>
<translation type="unfinished"></translation> <translation>Nœud destination</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2062,9 +2071,14 @@ Seuls les 5 premiers seront édités.</source>
</message> </message>
<message> <message>
<location filename="../View/Results/PlotH.py" line="79"/> <location filename="../View/Results/PlotH.py" line="79"/>
<source>Discharge (m³/s)</source> <source>Discharge (m&#xb3;/s)</source>
<translation type="obsolete">Débit (m³/s)</translation> <translation type="obsolete">Débit (m³/s)</translation>
</message> </message>
<message encoding="UTF-8">
<location filename="../View/Results/PlotH.py" line="79"/>
<source>Discharge (m³/s)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>SedimentLayers</name> <name>SedimentLayers</name>