eric6/Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py

Sat, 10 Apr 2021 18:38:27 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 10 Apr 2021 18:38:27 +0200
changeset 8218
7c09585bd960
parent 8143
2c730d5fd177
child 8259
2bbec88047dd
permissions
-rw-r--r--

Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).

6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
7923
91e843545d9a Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
3 # Copyright (c) 2014 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the translator widget.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt5.QtCore import pyqtSlot, QTemporaryFile
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt5.QtWidgets import QWidget
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 try:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 MULTIMEDIA_AVAILABLE = True
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 except ImportError:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 MULTIMEDIA_AVAILABLE = False
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from E5Gui import E5MessageBox
6577
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
19 from E5Gui.E5Application import e5App
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 from .Ui_TranslatorWidget import Ui_TranslatorWidget
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 from .TranslatorLanguagesDb import TranslatorLanguagesDb
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 from . import TranslatorEngines
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 import UI.PixmapCache
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 class TranslatorWidget(QWidget, Ui_TranslatorWidget):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 Class implementing the translator widget.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 def __init__(self, plugin, translator, parent=None):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 Constructor
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @param plugin reference to the plugin object (TranslatorPlugin)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @param translator reference to the translator object (Translator)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @param parent reference to the parent widget (QWidget)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
41 super().__init__(parent)
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.setupUi(self)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.__plugin = plugin
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.__translator = translator
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self.__languages = TranslatorLanguagesDb(self)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.__translatorRequest = None
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.__translationEngine = None
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.__mediaPlayer = None
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.__mediaFile = None
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 audioAvailable = (MULTIMEDIA_AVAILABLE and
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 bool(QMediaPlayer.hasSupport("audio/mpeg")))
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.pronounceOrigButton.setVisible(audioAvailable)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.pronounceTransButton.setVisible(audioAvailable)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.pronounceOrigButton.setIcon(
7505
7d3cfeeb5f4f Added breeze style icons for the Translator plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
61 self.__translator.getAppIcon("pronounce"))
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.pronounceTransButton.setIcon(
7505
7d3cfeeb5f4f Added breeze style icons for the Translator plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
63 self.__translator.getAppIcon("pronounce"))
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 self.swapButton.setIcon(
7505
7d3cfeeb5f4f Added breeze style icons for the Translator plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
65 self.__translator.getAppIcon("swap"))
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.translateButton.setIcon(
7505
7d3cfeeb5f4f Added breeze style icons for the Translator plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
67 self.__translator.getAppIcon("translate"))
7533
88261c96484b Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7505
diff changeset
68 self.clearButton.setIcon(UI.PixmapCache.getIcon("editDelete"))
88261c96484b Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7505
diff changeset
69 self.preferencesButton.setIcon(UI.PixmapCache.getIcon("configure"))
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 self.translateButton.setEnabled(False)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 self.clearButton.setEnabled(False)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.pronounceOrigButton.setEnabled(False)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.pronounceTransButton.setEnabled(False)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 selectedEngine = self.__plugin.getPreferences("SelectedEngine")
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 self.__updateEngines()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 engineIndex = self.engineComboBox.findData(selectedEngine)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 self.engineComboBox.setCurrentIndex(engineIndex)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 self.__engineComboBoxCurrentIndexChanged(engineIndex)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 self.engineComboBox.currentIndexChanged.connect(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 self.__engineComboBoxCurrentIndexChanged)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 self.__plugin.updateLanguages.connect(self.__updateLanguages)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 def __updateLanguages(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 Private slot to update the language combo boxes.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 """
6546
30829a28e969 TranslatorWidget: added code to cope with a situation where the translation engine is None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6523
diff changeset
91 self.__ensureTranslationEngineReady()
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
92 if self.__translationEngine is not None:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
93 supportedCodes = self.__translationEngine.supportedLanguages()
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
94 enabledCodes = self.__plugin.getPreferences("EnabledLanguages")
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
95
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
96 # 1. save current selections
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
97 origLanguage = self.origLanguageComboBox.itemData(
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
98 self.origLanguageComboBox.currentIndex())
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
99
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
100 # 2. reload the original language combo box
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
101 self.origLanguageComboBox.blockSignals(True)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
102 self.origLanguageComboBox.clear()
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
103 for code in enabledCodes:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
104 if code in supportedCodes:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
105 language = self.__languages.getLanguage(code)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
106 if language:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
107 icon = self.__languages.getLanguageIcon(code)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
108 self.origLanguageComboBox.addItem(
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
109 icon, language, code)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
110 self.origLanguageComboBox.model().sort(0)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
111 origIndex = self.origLanguageComboBox.findData(origLanguage)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
112 if origIndex == -1:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
113 origIndex = 0
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
114 self.origLanguageComboBox.blockSignals(False)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
115 self.origLanguageComboBox.setCurrentIndex(origIndex)
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 def __updateEngines(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 Private slot to update the engines combo box.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 currentEngine = self.engineComboBox.itemData(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 self.engineComboBox.currentIndex())
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 self.engineComboBox.clear()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 for engineName in TranslatorEngines.supportedEngineNames():
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 icon = TranslatorEngines.getEngineIcon(engineName)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 self.engineComboBox.addItem(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 icon,
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 TranslatorEngines.engineDisplayName(engineName),
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 engineName)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 self.engineComboBox.model().sort(0)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 self.engineComboBox.setCurrentIndex(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 self.engineComboBox.findData(currentEngine))
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 def __originalLanguage(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 Private method to return the code of the selected original language.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 @return code of the original language (string)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 return self.origLanguageComboBox.itemData(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 self.origLanguageComboBox.currentIndex())
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 def __translationLanguage(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 Private method to return the code of the selected translation language.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 @return code of the translation language (string)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 return self.transLanguageComboBox.itemData(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 self.transLanguageComboBox.currentIndex())
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 def on_translateButton_clicked(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 Private slot to translate the entered text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 self.transEdit.clear()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 result, ok = self.__translate(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 self.origEdit.toPlainText(),
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 self.__originalLanguage(),
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 self.__translationLanguage())
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 if ok:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 self.transEdit.setHtml(result)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 else:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 E5MessageBox.critical(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 self,
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 self.tr("Translation Error"),
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 result)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 def on_pronounceOrigButton_clicked(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 Private slot to pronounce the original text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 self.__pronounce(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 self.origEdit.toPlainText(), self.__originalLanguage())
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 def on_pronounceTransButton_clicked(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 Private slot to pronounce the translated text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 self.__pronounce(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 self.transEdit.toPlainText(), self.__translationLanguage())
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 def on_swapButton_clicked(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 Private slot to swap the languages.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 """
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
191 # save selected language codes
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
192 oLanguage = self.origLanguageComboBox.itemData(
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
193 self.origLanguageComboBox.currentIndex())
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
194
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
195 tLanguage = self.transLanguageComboBox.itemData(
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 self.transLanguageComboBox.currentIndex())
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
197
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
198 oIdx = self.origLanguageComboBox.findData(tLanguage)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
199 if oIdx < 0:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
200 oIdx = 0
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
201 self.origLanguageComboBox.setCurrentIndex(oIdx)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
202
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
203 tIdx = self.transLanguageComboBox.findData(oLanguage)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
204 if tIdx < 0:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
205 tIdx = 0
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
206 self.transLanguageComboBox.setCurrentIndex(tIdx)
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 origText = self.origEdit.toPlainText()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 self.origEdit.setPlainText(self.transEdit.toPlainText())
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 self.transEdit.setPlainText(origText)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 def on_clearButton_clicked(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 Private slot to clear the text fields.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 self.origEdit.clear()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 self.transEdit.clear()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 def on_origEdit_textChanged(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 Private slot to handle changes of the original text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 self.__updatePronounceButtons()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 self.__updateClearButton()
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
227 self.__updateTranslateButton()
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 def on_transEdit_textChanged(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 Private slot to handle changes of the translation text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 self.__updatePronounceButtons()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 self.__updateClearButton()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 @pyqtSlot(int)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 def on_origLanguageComboBox_currentIndexChanged(self, index):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 Private slot to handle the selection of the original language.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 @param index current index (integer)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 self.__plugin.setPreferences(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 "OriginalLanguage", self.origLanguageComboBox.itemData(index))
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
246
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
247 supportedTargetCodes = (
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
248 self.__translationEngine.supportedTargetLanguages(
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
249 self.origLanguageComboBox.itemData(index)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
250 )
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
251 )
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
252 if supportedTargetCodes is not None:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
253 enabledCodes = self.__plugin.getPreferences("EnabledLanguages")
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
254 transLanguage = self.transLanguageComboBox.itemData(
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
255 self.transLanguageComboBox.currentIndex())
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
256 self.transLanguageComboBox.clear()
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
257 if len(supportedTargetCodes) > 0:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
258 for code in enabledCodes:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
259 if code in supportedTargetCodes:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
260 language = self.__languages.getLanguage(code)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
261 if language:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
262 icon = self.__languages.getLanguageIcon(code)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
263 self.transLanguageComboBox.addItem(
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
264 icon, language, code)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
265 self.transLanguageComboBox.model().sort(0)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
266 index = self.transLanguageComboBox.findData(transLanguage)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
267 if index == -1:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
268 index = 0
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
269 self.transLanguageComboBox.setCurrentIndex(index)
6523
3e2897a36771 TranslatorWidget: fixed an issue causing the translate button to remain active even with no Original Language selected (e.g. after changing translator engine).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6419
diff changeset
270
3e2897a36771 TranslatorWidget: fixed an issue causing the translate button to remain active even with no Original Language selected (e.g. after changing translator engine).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6419
diff changeset
271 self.__updateTranslateButton()
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 @pyqtSlot(int)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 def on_transLanguageComboBox_currentIndexChanged(self, index):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 Private slot to handle the selection of the translation language.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 @param index current index (integer)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 self.__plugin.setPreferences(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 "TranslationLanguage", self.transLanguageComboBox.itemData(index))
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
283 @pyqtSlot()
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
284 def __availableTranslationsLoaded(self):
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
285 """
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
286 Private slot to handle the availability of translations.
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 """
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
288 origLanguage = self.__plugin.getPreferences("OriginalLanguage")
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
289 transLanguage = self.__plugin.getPreferences("TranslationLanguage")
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
290
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
291 self.__updateLanguages()
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292
6419
5d47e741245a TranslatorWidget: fixed an issue updating the target language selector.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6412
diff changeset
293 origIndex = self.origLanguageComboBox.findData(origLanguage)
5d47e741245a TranslatorWidget: fixed an issue updating the target language selector.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6412
diff changeset
294 self.origLanguageComboBox.setCurrentIndex(origIndex)
5d47e741245a TranslatorWidget: fixed an issue updating the target language selector.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6412
diff changeset
295 self.on_origLanguageComboBox_currentIndexChanged(origIndex)
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
296 self.transLanguageComboBox.setCurrentIndex(
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
297 self.transLanguageComboBox.findData(transLanguage))
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
298
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
299 def __ensureTranslationEngineReady(self):
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 """
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
301 Private slot to ensure, that the currently selected translation engine
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
302 is ready.
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
303 """
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
304 engineName = self.engineComboBox.itemData(
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
305 self.engineComboBox.currentIndex())
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
306 if (
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
307 self.__translationEngine is not None and
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
308 self.__translationEngine.engineName() != engineName
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
309 ):
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
310 self.__translationEngine.availableTranslationsLoaded.disconnect(
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
311 self.__availableTranslationsLoaded)
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 self.__translationEngine.deleteLater()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 self.__translationEngine = None
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 if self.__translationEngine is None:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 self.__translationEngine = TranslatorEngines.getTranslationEngine(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 engineName, self.__plugin, self)
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
318 if self.__translationEngine is not None:
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
319 self.__translationEngine.availableTranslationsLoaded.connect(
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
320 self.__availableTranslationsLoaded)
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
321
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
322 @pyqtSlot(int)
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
323 def __engineComboBoxCurrentIndexChanged(self, index):
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
324 """
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
325 Private slot to handle the selection of a translation service.
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
326
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
327 @param index current index
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
328 @type int
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
329 """
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
330 self.__ensureTranslationEngineReady()
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
331 if self.__translationEngine is not None:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
332 self.__updateTranslateButton()
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
333 self.__updatePronounceButtons()
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
334
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
335 self.__plugin.setPreferences(
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
336 "SelectedEngine", self.engineComboBox.itemData(index))
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 def __updatePronounceButtons(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 Private slot to set the state of the pronounce buttons.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 """
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
342 if self.__translationEngine is not None:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
343 hasTTS = self.__translationEngine.hasTTS()
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
344 else:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
345 hasTTS = False
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 self.pronounceOrigButton.setEnabled(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 hasTTS and bool(self.origEdit.toPlainText()))
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 self.pronounceTransButton.setEnabled(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 hasTTS and bool(self.transEdit.toPlainText()))
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 def __updateClearButton(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
353 Private slot to set the state of the clear button.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 """
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
355 enable = (
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
356 bool(self.origEdit.toPlainText()) or
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 bool(self.transEdit.toPlainText())
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
358 )
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 self.clearButton.setEnabled(enable)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
361 def __updateTranslateButton(self):
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
362 """
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
363 Private slot to set the state of the translate button.
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
364 """
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
365 enable = bool(self.origEdit.toPlainText())
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
366 enable &= bool(self.__translationLanguage())
6523
3e2897a36771 TranslatorWidget: fixed an issue causing the translate button to remain active even with no Original Language selected (e.g. after changing translator engine).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6419
diff changeset
367 enable &= bool(self.__originalLanguage())
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
368 self.translateButton.setEnabled(enable)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
369
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 def __translate(self, text, originalLanguage, translationLanguage):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 Private method to translate the given text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 @param text text to be translated (string)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 @param originalLanguage language code of the original (string)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 @param translationLanguage language code of the translation (string)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 @return tuple of translated text (string) and flag indicating
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 success (boolean)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 if self.__translatorRequest is None:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 from .TranslatorRequest import TranslatorRequest
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 self.__translatorRequest = TranslatorRequest(self)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
384 self.__ensureTranslationEngineReady()
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
385 if self.__translationEngine is None:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
386 return "", False
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
387 else:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
388 result, ok = self.__translationEngine.getTranslation(
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
389 self.__translatorRequest, text, originalLanguage,
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
390 translationLanguage)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
391
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
392 return result, ok
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 def __pronounce(self, text, language):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
396 Private method to pronounce the given text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
397
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
398 @param text text to be pronounced (string)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399 @param language language code of the text (string)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
400 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401 if not text or not language:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
402 return
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404 if self.__translatorRequest is None:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 from .TranslatorRequest import TranslatorRequest
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 self.__translatorRequest = TranslatorRequest(self)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 if self.__mediaPlayer is None:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 self.__mediaPlayer = QMediaPlayer(self)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410 self.__mediaPlayer.stateChanged.connect(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411 self.__mediaPlayerStateChanged)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
413 if self.__mediaPlayer.state() == QMediaPlayer.State.PlayingState:
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414 return
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
416 self.__ensureTranslationEngineReady()
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
417 if self.__translationEngine is not None:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
418 if not self.__translationEngine.hasTTS():
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
419 E5MessageBox.critical(
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
420 self,
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
421 self.tr("Translation Error"),
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
422 self.tr("The selected translation service does not"
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
423 " support the Text-to-Speech function."))
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
424 return
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
426 data, ok = self.__translationEngine.getTextToSpeechData(
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
427 self.__translatorRequest, text, language)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
428 if ok:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
429 self.__mediaFile = QTemporaryFile(self)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
430 self.__mediaFile.open()
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
431 self.__mediaFile.setAutoRemove(False)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
432 self.__mediaFile.write(data)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
433
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
434 self.__mediaPlayer.setMedia(QMediaContent(), self.__mediaFile)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
435 self.__mediaPlayer.play()
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
436 else:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
437 E5MessageBox.critical(
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
438 self,
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
439 self.tr("Translation Error"),
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
440 data)
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
441
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442 def __mediaPlayerStateChanged(self, state):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
443 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
444 Private slot handling changes of the media player state.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
445
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
446 @param state media player state (QAudio.State)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
447 """
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
448 if state == QMediaPlayer.State.StoppedState:
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
449 self.__mediaFile.close()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
450 self.__mediaFile.remove()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
451 self.__mediaFile = None
6577
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
452
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
453 @pyqtSlot()
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
454 def on_preferencesButton_clicked(self):
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
455 """
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
456 Private slot to open the Translator configuration page.
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
457 """
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
458 e5App().getObject("UserInterface").showPreferences("translatorPage")

eric ide

mercurial