7 Module implementing the translator widget. |
7 Module implementing the translator widget. |
8 """ |
8 """ |
9 |
9 |
10 import sys |
10 import sys |
11 |
11 |
12 from PyQt6.QtCore import QTemporaryFile, pyqtSlot |
12 from PyQt6.QtCore import QTemporaryFile, QUrl, pyqtSlot |
13 from PyQt6.QtWidgets import QWidget |
13 from PyQt6.QtWidgets import QWidget |
14 |
14 |
15 if "--no-multimedia" in sys.argv: |
15 if "--no-multimedia" in sys.argv: |
16 MULTIMEDIA_AVAILABLE = False |
16 MULTIMEDIA_AVAILABLE = False |
17 else: |
17 else: |
399 @param translationLanguage language code of the translation |
399 @param translationLanguage language code of the translation |
400 @type str |
400 @type str |
401 @return tuple of translated text and flag indicating success |
401 @return tuple of translated text and flag indicating success |
402 @rtype tuple of (str, bool) |
402 @rtype tuple of (str, bool) |
403 """ |
403 """ |
|
404 from .TranslatorRequest import TranslatorRequest |
|
405 |
404 if self.__translatorRequest is None: |
406 if self.__translatorRequest is None: |
405 from .TranslatorRequest import TranslatorRequest |
|
406 |
|
407 self.__translatorRequest = TranslatorRequest(self) |
407 self.__translatorRequest = TranslatorRequest(self) |
408 |
408 |
409 self.__ensureTranslationEngineReady() |
409 self.__ensureTranslationEngineReady() |
410 if self.__translationEngine is None: |
410 if self.__translationEngine is None: |
411 return "", False |
411 return "", False |
423 @param text text to be pronounced |
423 @param text text to be pronounced |
424 @type str |
424 @type str |
425 @param language language code of the text |
425 @param language language code of the text |
426 @type str |
426 @type str |
427 """ |
427 """ |
|
428 from .TranslatorRequest import TranslatorRequest |
|
429 |
428 if not text or not language: |
430 if not text or not language: |
429 return |
431 return |
430 |
432 |
431 if self.__translatorRequest is None: |
433 if self.__translatorRequest is None: |
432 from .TranslatorRequest import TranslatorRequest |
|
433 |
|
434 self.__translatorRequest = TranslatorRequest(self) |
434 self.__translatorRequest = TranslatorRequest(self) |
435 |
435 |
436 if self.__mediaPlayer is None: |
436 if self.__mediaPlayer is None: |
437 self.__mediaPlayer = QMediaPlayer(self) |
437 self.__mediaPlayer = QMediaPlayer(self) |
438 self.__audioOutput = QAudioOutput(self) |
438 self.__audioOutput = QAudioOutput(self) |
470 self.__mediaFile.open() |
470 self.__mediaFile.open() |
471 self.__mediaFile.setAutoRemove(False) |
471 self.__mediaFile.setAutoRemove(False) |
472 self.__mediaFile.write(data) |
472 self.__mediaFile.write(data) |
473 self.__mediaFile.close() |
473 self.__mediaFile.close() |
474 |
474 |
475 from PyQt6.QtCore import QUrl |
|
476 |
|
477 self.__mediaPlayer.setSource( |
475 self.__mediaPlayer.setSource( |
478 QUrl.fromLocalFile(self.__mediaFile.fileName()) |
476 QUrl.fromLocalFile(self.__mediaFile.fileName()) |
479 ) |
477 ) |
480 self.__mediaPlayer.play() |
478 self.__mediaPlayer.play() |
481 else: |
479 else: |