diff --git a/src/lang/create_ts.sh b/src/lang/create_ts.sh
index c617d22a..c3019916 100755
--- a/src/lang/create_ts.sh
+++ b/src/lang/create_ts.sh
@@ -3,7 +3,7 @@
SOURCES=$(find ../ -name "*.py")
FROM=$(find ../ -name "*.ui")
-LANG="fr de"
+LANG="fr"
for l in $LANG
do
diff --git a/src/pamhyr.py b/src/pamhyr.py
index 439872a8..3c02c327 100755
--- a/src/pamhyr.py
+++ b/src/pamhyr.py
@@ -2,6 +2,7 @@
# -*- coding: utf-8 -*-
import sys, os
+import locale
from PyQt5.QtCore import QTranslator
from PyQt5.QtWidgets import QApplication
@@ -15,7 +16,9 @@ def main():
app = QApplication(sys.argv)
translator = QTranslator()
- translator.load(os.path.dirname(__file__) + "/lang/fr.qm")
+ lang = locale.getdefaultlocale()
+ if "fr" not in lang[0]:
+ translator.load(os.path.dirname(__file__) + "/lang/fr.qm")
app.installTranslator(translator)
application = ApplicationWindow(conf=conf)
diff --git a/src/view/MainWindow.py b/src/view/MainWindow.py
index 24a70235..222415d6 100644
--- a/src/view/MainWindow.py
+++ b/src/view/MainWindow.py
@@ -3,6 +3,9 @@
import os
from PyQt5 import QtGui
+from PyQt5.QtCore import (
+ QTranslator, QEvent
+)
from PyQt5.QtWidgets import (
QMainWindow, QApplication, QAction,
QFileDialog,
@@ -61,6 +64,8 @@ class ApplicationWindow(QMainWindow, ListedSubWindow):
self.init_callback()
self.default_style()
+
+ self.trans = QTranslator(self)
#self.ui.retranslateUi()
def enable_actions(self, action:str, enable:bool):
@@ -110,12 +115,36 @@ class ApplicationWindow(QMainWindow, ListedSubWindow):
"action_toolBar_sections": lambda: self.open_dummy("Tronçons"),
"action_toolBar_frictions": lambda: self.open_dummy("Frottements"),
"action_toolBar_building": lambda: self.open_dummy("Ouvrages"),
+ ## Language
+ "action_english": lambda: self.set_language(""),
+ "action_french": lambda: self.set_language("fr"),
}
for action in actions:
self.ui.findChild(QAction, action)\
.triggered.connect(actions[action])
+ def set_language(self, lang):
+ if lang != "":
+ translator = QTranslator()
+ translator.load(os.path.dirname(__file__) + f"/lang/{lang}.qm")
+ QApplication.instance().installTranslator(translator)
+ self.trans = translator
+ else:
+ QApplication.instance().removeTranslator(self.trans)
+
+ self.retranslateUi()
+
+ def retranslateUi(self):
+ for action in self.menubar.children():
+ if isinstance(action, QAction):
+ action.setText(self.trans("MainWindow", action.getText()))
+
+ def changeEvent(self, event):
+ if event.type() == QEvent.LanguageChange:
+ self.retranslateUi()
+ super(ApplicationWindow, self).changeEvent(event)
+
def default_style(self):
"""Set default window style
diff --git a/src/view/ui/ConfigureDialog.ui b/src/view/ui/ConfigureDialog.ui
index cc461673..77a43e43 100644
--- a/src/view/ui/ConfigureDialog.ui
+++ b/src/view/ui/ConfigureDialog.ui
@@ -13,6 +13,9 @@
Dialog
+
+
+
-
@@ -106,7 +109,7 @@
- Mailleur
+ Meshing tool
@@ -121,7 +124,7 @@
-
- Mailleur path
+ Meshing tool path
@@ -161,14 +164,14 @@
-
- Nombre de segment
+ Segment number
-
- Taille max. du listing
+ Listing maximum size
@@ -214,14 +217,14 @@
-
- Sauvegarde automatique
+ Auto save
-
- Chemin
+ Path
@@ -246,7 +249,7 @@
-
- Activé
+ Enable
false
diff --git a/src/view/ui/MainWindow.ui b/src/view/ui/MainWindow.ui
index 8ccb78f6..41ce2ca6 100644
--- a/src/view/ui/MainWindow.ui
+++ b/src/view/ui/MainWindow.ui
@@ -201,6 +201,16 @@
+
@@ -208,6 +218,7 @@
+
@@ -851,6 +862,16 @@
Edit study
+
+
+ English
+
+
+
+
+ French
+
+