Skip to content

Commit

Permalink
Add default hotkeys
Browse files Browse the repository at this point in the history
  • Loading branch information
alekssamos committed Sep 4, 2020
1 parent ec0809a commit d3b8f8e
Show file tree
Hide file tree
Showing 9 changed files with 424 additions and 271 deletions.
Binary file modified .sconsign.dblite
Binary file not shown.
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
# Дополнение Яндекс.Переводчик для NVDA

[Скачать версию 2020.08.31](https://github.com/alekssamos/YandexTranslate/releases/latest/download/YandexTranslate-2020.08.31.nvda-addon)
[Скачать версию 2020.09.04](https://github.com/alekssamos/YandexTranslate/releases/latest/download/YandexTranslate-2020.08.31.nvda-addon)

После установки зайдите в NVDA меню, Параметры, Жесты ввода, назначте удобные вам сочетания клавиш для YandexTranslate.

Переводит выделенный фрагмент текста или текст из буфера обмена.

Настроить можно в NVDA меню, Сервис, Настройки Yandex Translate.
Поддерживается использование прокси сервера.

### Горячие клавиши
* nvda+Shift+T - Перевод выделенного текста.
* nvda+Shift+Y - Перевод текста из буфера обмена.
* nvda+Shift+U - Поменять языки местами.
* nvda+Shift+I - Автоматический перевод.
11 changes: 9 additions & 2 deletions addon/doc/en/readme.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,21 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="../style.css" media="screen">
<title>Yandex translator for NVDA 2020.08.31</title>
<title>Yandex translator for NVDA 2020.09.04</title>
</head>
<body>
<h1>Дополнение Яндекс.Переводчик для NVDA</h1>
<p><a href="https://github.com/alekssamos/YandexTranslate/releases/latest/download/YandexTranslate-2020.08.31.nvda-addon">Скачать версию 2020.08.31</a></p>
<p><a href="https://github.com/alekssamos/YandexTranslate/releases/latest/download/YandexTranslate-2020.08.31.nvda-addon">Скачать версию 2020.09.04</a></p>
<p>После установки зайдите в NVDA меню, Параметры, Жесты ввода, назначте удобные вам сочетания клавиш для YandexTranslate.</p>
<p>Переводит выделенный фрагмент текста или текст из буфера обмена.</p>
<p>Настроить можно в NVDA меню, Сервис, Настройки Yandex Translate.
Поддерживается использование прокси сервера.</p>
<h3>Горячие клавиши</h3>
<ul>
<li>nvda+Shift+T - Перевод выделенного текста.</li>
<li>nvda+Shift+Y - Перевод текста из буфера обмена.</li>
<li>nvda+Shift+U - Поменять языки местами.</li>
<li>nvda+Shift+I - Автоматический перевод.</li>
</ul>
</body>
</html>
8 changes: 7 additions & 1 deletion addon/doc/en/readme.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
# Дополнение Яндекс.Переводчик для NVDA

[Скачать версию 2020.08.31](https://github.com/alekssamos/YandexTranslate/releases/latest/download/YandexTranslate-2020.08.31.nvda-addon)
[Скачать версию 2020.09.04](https://github.com/alekssamos/YandexTranslate/releases/latest/download/YandexTranslate-2020.08.31.nvda-addon)

После установки зайдите в NVDA меню, Параметры, Жесты ввода, назначте удобные вам сочетания клавиш для YandexTranslate.

Переводит выделенный фрагмент текста или текст из буфера обмена.

Настроить можно в NVDA меню, Сервис, Настройки Yandex Translate.
Поддерживается использование прокси сервера.

### Горячие клавиши
* nvda+Shift+T - Перевод выделенного текста.
* nvda+Shift+Y - Перевод текста из буфера обмена.
* nvda+Shift+U - Поменять языки местами.
* nvda+Shift+I - Автоматический перевод.
64 changes: 49 additions & 15 deletions addon/globalPlugins/yandexTranslate/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import scriptHandler
import os
import json
import time
Expand Down Expand Up @@ -340,28 +341,51 @@ def getSelectedText(self):
except (RuntimeError, NotImplementedError):
return None

@scriptHandler.script(
description=_("Translate text from the clipboard"),
gesture="kb:NVDA+shift+Y"
)
def script_translate_clip(self, gesture): return self._script_translate_clip(gesture)
@secureScript
def script_translate(self, gesture):
def _script_translate_clip(self, gesture):
try:
text = api.getClipData()
except Exception:
ui.message(_("No text to translate"))
return

YandexTranslate(self.translateHandler, text=text, lang=self.getLang())

@scriptHandler.script(
description=_("Translates the selected text."),
gesture="kb:NVDA+shift+T"
)
def script_translate_sel(self, gesture): return self._script_translate_sel(gesture)
@secureScript
def _script_translate_sel(self, gesture):
text = self.getSelectedText()
if not text:
try:
text = api.getClipData()
except Exception:
ui.message(_("No text to translate"))
return
ui.message(_("No text to translate"))
return

YandexTranslate(self.translateHandler, text=text, lang=self.getLang())
script_translate.__doc__ = _("Translates the selected text. If there is no selection, it translates text from the clipboard")

@scriptHandler.script(
description=_("Translates the last spoken phrase")
)
def script_translateSpokenPhrase(self, gesture): return self._script_translateSpokenPhrase(gesture)
@secureScript
def script_translateSpokenPhrase(self, gesture):
def _script_translateSpokenPhrase(self, gesture):
text = "\n".join([i for i in self.speechSequence if isinstance(i, str)])

YandexTranslate(self.translateHandler, text=text, lang=self.getLang())
script_translateSpokenPhrase.__doc__ = _("Translates the last spoken phrase")

@scriptHandler.script(
description=_("Translates text from navigator object")
)
def script_translateNavigatorObject(self, gesture): return self._script_translateNavigatorObject(gesture)
@secureScript
def script_translateNavigatorObject(self, gesture):
def _script_translateNavigatorObject(self, gesture):
obj = api.getNavigatorObject()
text = obj.name

Expand All @@ -374,19 +398,26 @@ def script_translateNavigatorObject(self, gesture):
return

YandexTranslate(self.translateHandler, text=text, lang=self.getLang())
script_translateNavigatorObject.__doc__ = _("Translates text from navigator object")

@scriptHandler.script(
description=_("Switching between the primary and secondary target language"),
gesture="kb:NVDA+shift+U"
)
def script_switchTargetLang(self, gesture): return self._script_switchTargetLang(gesture)
@secureScript
def script_switchTargetLang(self, gesture):
def _script_switchTargetLang(self, gesture):
if self.targetLang == "primaryTargetLang":
self.targetLang = "secondaryTargetLang"
else:
self.targetLang = "primaryTargetLang"
ui.message(languages[conf[self.targetLang]])
script_switchTargetLang.__doc__ = _("Switching between the primary and secondary target language")

@scriptHandler.script(
description=_("Switching between the primary and secondary target language"),
)
def script_copyLlastTranslatedText(self, gesture): return self._script_copyLlastTranslatedText(gesture)
@secureScript
def script_copyLlastTranslatedText(self, gesture):
def _script_copyLlastTranslatedText(self, gesture):
if self.llastTranslatedText:
api.copyToClip(self.llastTranslatedText)
ui.message(_("Copy to clipboard"))
Expand All @@ -399,11 +430,14 @@ def script_showSettingsDialog(self, gesture):
gui.mainFrame._popupSettingsDialog(YandexTranslateSettingsDialog)
script_showSettingsDialog.__doc__ = _("Shows the settings dialog")

@scriptHandler.script(
description=_("Switches the function of automatic translation"),
gesture="kb:NVDA+shift+I"
)
def script_switchAutoTranslate(self, gesture):
if not self.autoTranslate:
ui.message(_("Automatic translation enabled"))
self.autoTranslate = True
else:
self.autoTranslate = False
ui.message(_("Automatic translation disabled"))
script_switchAutoTranslate.__doc__ = _("Switches the function of automatic translation")
Loading

0 comments on commit d3b8f8e

Please sign in to comment.