fixed some translation issues

This commit is contained in:
Faraphel 2024-01-01 13:42:47 +01:00
parent e7d43371bb
commit 30dd5410f0
5 changed files with 91 additions and 87 deletions

View file

@ -1,43 +1,43 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="en"> <TS version="2.1" language="en">
<context> <context>
<name>LanguageSelection</name> <name>LanguageSelection</name>
<message> <message>
<location filename="../../source/ui/LanguageSelection.py" line="70"/> <location filename="..\..\source\ui\LanguageSelection.py" line="69" />
<source>SELECT YOUR LANGUAGE</source> <source>SELECT YOUR LANGUAGE</source>
<translation>Select your language</translation> <translation>Select your language</translation>
</message> </message>
<message> <message>
<location filename="../../source/ui/LanguageSelection.py" line="71"/> <location filename="..\..\source\ui\LanguageSelection.py" line="70" />
<source>START</source> <source>START</source>
<translation>Start</translation> <translation>Start</translation>
</message> </message>
</context> </context>
<context> <context>
<name>SurveyEngine</name> <name>SurveyEngine</name>
<message> <message>
<location filename="../../source/ui/SurveyEngine.py" line="177"/> <location filename="..\..\source\ui\SurveyEngine.py" line="177" />
<source>WARNING</source> <source>WARNING</source>
<translation>Warning</translation> <translation>Warning</translation>
</message> </message>
</context> </context>
<context> <context>
<name>SurveyNavigation</name> <name>SurveyNavigation</name>
<message> <message>
<location filename="../../source/ui/SurveyNavigation.py" line="19"/> <location filename="..\..\source\ui\SurveyNavigation.py" line="19" />
<source>ABANDON</source> <source>ABANDON</source>
<translation>Abandon</translation> <translation>Abandon</translation>
</message> </message>
<message> <message>
<location filename="../../source/ui/SurveyNavigation.py" line="29"/> <location filename="..\..\source\ui\SurveyNavigation.py" line="29" />
<source>SKIP</source> <source>SKIP</source>
<translation>Skip</translation> <translation>Skip</translation>
</message> </message>
<message> <message>
<location filename="../../source/ui/SurveyNavigation.py" line="38"/> <location filename="..\..\source\ui\SurveyNavigation.py" line="38" />
<source>NEXT</source> <source>NEXT</source>
<translation>Next</translation> <translation>Next</translation>
</message> </message>
</context> </context>
</TS> </TS>

View file

@ -1,43 +1,43 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="es"> <TS version="2.1" language="es">
<context> <context>
<name>LanguageSelection</name> <name>LanguageSelection</name>
<message> <message>
<location filename="../../source/ui/LanguageSelection.py" line="70"/> <location filename="..\..\source\ui\LanguageSelection.py" line="69" />
<source>SELECT YOUR LANGUAGE</source> <source>SELECT YOUR LANGUAGE</source>
<translation>Seleccione su idioma</translation> <translation>Seleccione su idioma</translation>
</message> </message>
<message> <message>
<location filename="../../source/ui/LanguageSelection.py" line="71"/> <location filename="..\..\source\ui\LanguageSelection.py" line="70" />
<source>START</source> <source>START</source>
<translation>Comenzar</translation> <translation>Comenzar</translation>
</message> </message>
</context> </context>
<context> <context>
<name>SurveyEngine</name> <name>SurveyEngine</name>
<message> <message>
<location filename="../../source/ui/SurveyEngine.py" line="177"/> <location filename="..\..\source\ui\SurveyEngine.py" line="177" />
<source>WARNING</source> <source>WARNING</source>
<translation>Atención</translation> <translation>Atención</translation>
</message> </message>
</context> </context>
<context> <context>
<name>SurveyNavigation</name> <name>SurveyNavigation</name>
<message> <message>
<location filename="../../source/ui/SurveyNavigation.py" line="19"/> <location filename="..\..\source\ui\SurveyNavigation.py" line="19" />
<source>ABANDON</source> <source>ABANDON</source>
<translation>Abandonar</translation> <translation>Abandonar</translation>
</message> </message>
<message> <message>
<location filename="../../source/ui/SurveyNavigation.py" line="29"/> <location filename="..\..\source\ui\SurveyNavigation.py" line="29" />
<source>SKIP</source> <source>SKIP</source>
<translation>Pasar</translation> <translation>Pasar</translation>
</message> </message>
<message> <message>
<location filename="../../source/ui/SurveyNavigation.py" line="38"/> <location filename="..\..\source\ui\SurveyNavigation.py" line="38" />
<source>NEXT</source> <source>NEXT</source>
<translation>Siguiente</translation> <translation>Siguiente</translation>
</message> </message>
</context> </context>
</TS> </TS>

View file

@ -1,43 +1,43 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="fr_FR"> <TS version="2.1" language="fr_FR">
<context> <context>
<name>LanguageSelection</name> <name>LanguageSelection</name>
<message> <message>
<location filename="../../source/ui/LanguageSelection.py" line="70"/> <location filename="..\..\source\ui\LanguageSelection.py" line="69" />
<source>SELECT YOUR LANGUAGE</source> <source>SELECT YOUR LANGUAGE</source>
<translation>Sélectionner votre langue</translation> <translation>Sélectionner votre langue</translation>
</message> </message>
<message> <message>
<location filename="../../source/ui/LanguageSelection.py" line="71"/> <location filename="..\..\source\ui\LanguageSelection.py" line="70" />
<source>START</source> <source>START</source>
<translation>Démarrer</translation> <translation>Démarrer</translation>
</message> </message>
</context> </context>
<context> <context>
<name>SurveyEngine</name> <name>SurveyEngine</name>
<message> <message>
<location filename="../../source/ui/SurveyEngine.py" line="177"/> <location filename="..\..\source\ui\SurveyEngine.py" line="177" />
<source>WARNING</source> <source>WARNING</source>
<translation>Attention</translation> <translation>Attention</translation>
</message> </message>
</context> </context>
<context> <context>
<name>SurveyNavigation</name> <name>SurveyNavigation</name>
<message> <message>
<location filename="../../source/ui/SurveyNavigation.py" line="19"/> <location filename="..\..\source\ui\SurveyNavigation.py" line="19" />
<source>ABANDON</source> <source>ABANDON</source>
<translation>Abandonner</translation> <translation>Abandonner</translation>
</message> </message>
<message> <message>
<location filename="../../source/ui/SurveyNavigation.py" line="29"/> <location filename="..\..\source\ui\SurveyNavigation.py" line="29" />
<source>SKIP</source> <source>SKIP</source>
<translation>Passer</translation> <translation>Passer</translation>
</message> </message>
<message> <message>
<location filename="../../source/ui/SurveyNavigation.py" line="38"/> <location filename="..\..\source\ui\SurveyNavigation.py" line="38" />
<source>NEXT</source> <source>NEXT</source>
<translation>Suivant</translation> <translation>Suivant</translation>
</message> </message>
</context> </context>
</TS> </TS>

View file

@ -1,14 +1,15 @@
import typing
from typing import Callable from typing import Callable
from PyQt6.QtCore import Qt, QLocale, QTranslator from PyQt6.QtCore import Qt, QLocale
from PyQt6.QtWidgets import QWidget, QLabel, QVBoxLayout, QComboBox, QApplication, QPushButton from PyQt6.QtWidgets import QWidget, QLabel, QVBoxLayout, QComboBox, QPushButton
from source import assets_path, translate from source import assets_path, translate, ui
class LanguageSelection(QWidget): class LanguageSelection(QWidget):
def __init__(self, after: Callable): def __init__(self, parent: QWidget, after: Callable):
super().__init__() super().__init__(parent=parent)
self.after = after self.after = after
@ -49,20 +50,18 @@ class LanguageSelection(QWidget):
# refresh the texts # refresh the texts
self.refresh_language() self.refresh_language()
super().show()
def refresh_language(self): def refresh_language(self):
language_code = self.select_language.currentData() language_code = self.select_language.currentData()
# load the correct translator # load the correct translation in the window
translator = QTranslator() window = typing.cast(ui.SurveyWindow, self.window())
translator.load(str(assets_path / f"language/{language_code}.qm")) window.translator.load(str(assets_path / f"language/{language_code}.qm"))
# apply the language on the custom translator # apply the language on the custom translator
translate.set_language(language_code) translate.set_language(language_code)
# install the translator on the application
application = QApplication.instance()
application.installTranslator(translator)
# refresh the texts # refresh the texts
self.retranslate() self.retranslate()

View file

@ -1,7 +1,8 @@
from pathlib import Path from pathlib import Path
from PyQt6.QtCore import QTranslator
from PyQt6.QtGui import QIcon from PyQt6.QtGui import QIcon
from PyQt6.QtWidgets import QMainWindow from PyQt6.QtWidgets import QMainWindow, QApplication
from source import ui, assets_path, __icon_png__, __appname__ from source import ui, assets_path, __icon_png__, __appname__
@ -12,16 +13,20 @@ class SurveyWindow(QMainWindow):
def __init__(self, survey_path: Path | str): def __init__(self, survey_path: Path | str):
super().__init__() super().__init__()
self.translator = QTranslator()
QApplication.instance().installTranslator(self.translator)
# window style # window style
self.setWindowIcon(QIcon(__icon_png__)) self.setWindowIcon(QIcon(__icon_png__))
self.setWindowTitle(__appname__) self.setWindowTitle(__appname__)
# start by asking the user his language # start by asking the user his language
language_selection = ui.LanguageSelection( self.language_selection = ui.LanguageSelection(
parent=self,
# after the language is selected, start the survey # after the language is selected, start the survey
after=lambda: self.setCentralWidget(ui.SurveyEngine.from_file(survey_path)) after=lambda: self.setCentralWidget(ui.SurveyEngine.from_file(survey_path))
) )
self.setCentralWidget(language_selection) self.setCentralWidget(self.language_selection)
def quit(self): def quit(self):
# quit the application by closing and deleting the window # quit the application by closing and deleting the window