This commit is contained in:
Jeremiah Ticket 2017-02-27 11:14:12 -09:00
commit a45425ae6c
97 changed files with 1513 additions and 342 deletions

View File

@ -55,6 +55,8 @@ This software is licensed under the LGPL v3 .
- aspell-YourLanguageCode (example aspell-en for us english) - aspell-YourLanguageCode (example aspell-en for us english)
2. unix daemon (also needed for systemd): 2. unix daemon (also needed for systemd):
- python-daemonize - python-daemonize
3. Modify system volume:
- pyalsaaudio (needs libasound2's headers).
# installation # installation
- Archlinux: PKGBUILD in AUR - Archlinux: PKGBUILD in AUR

View File

@ -6,8 +6,7 @@ General:
read highlighted text mode read highlighted text mode
- be more event based (vcsa sets POLLPRI) - be more event based (vcsa sets POLLPRI)
http://scotdoyle.com/python-epoll-howto.html http://scotdoyle.com/python-epoll-howto.html
- try to make it more asynchronus - try to make it more asynchronus with multpible threads
- multpible threads
- leave review on typing (Easy for contribution) - leave review on typing (Easy for contribution)
- implement commands - implement commands
@ -47,12 +46,12 @@ Driver:
https://stackoverflow.com/questions/6396659/how-do-you-get-the-encoding-of-the-terminal-from-within-a-python-script https://stackoverflow.com/questions/6396659/how-do-you-get-the-encoding-of-the-terminal-from-within-a-python-script
Settings: Settings:
- configuration should be overwritable with parameter and alternative paths - configuration should be overwritable with parameter and alternative paths (Easy for contribution)
- write settings - write settings (Easy for contribution)
- menue for settings configuration #storm - menue for settings configuration (Easy for contribution)
Application Profiles Application Profiles
- reimplement process detection without subprocessing - reimplement process detection without subprocessing // this is started by chrys
- fenrir is not able to detect the current application inside of screen. - fenrir is not able to detect the current application inside of screen.
ps -e -H -o pid,pgrp,ppid,tty,cmd ps -e -H -o pid,pgrp,ppid,tty,cmd
http://stackoverflow.com/questions/24861351/how-to-detect-if-python-script-is-being-run-as-a-background-process/24862213 http://stackoverflow.com/questions/24861351/how-to-detect-if-python-script-is-being-run-as-a-background-process/24862213

View File

@ -108,5 +108,8 @@ KEY_FENRIR,KEY_X=set_mark
KEY_FENRIR,KEY_SHIFT,KEY_X=marked_text KEY_FENRIR,KEY_SHIFT,KEY_X=marked_text
KEY_FENRIR,KEY_C=copy_marked_to_clipboard KEY_FENRIR,KEY_C=copy_marked_to_clipboard
KEY_FENRIR,KEY_V=paste_clipboard KEY_FENRIR,KEY_V=paste_clipboard
# linux specific # linux specific
#=export_clipboard_to_x #=export_clipboard_to_x
KEY_FENRIR,KEY_CTRL,KEY_UP=inc_alsa_volume
KEY_FENRIR,KEY_CTRL,KEY_DOWN=dec_alsa_volume

View File

@ -110,3 +110,5 @@ KEY_FENRIR,KEY_C=copy_marked_to_clipboard
KEY_FENRIR,KEY_V=paste_clipboard KEY_FENRIR,KEY_V=paste_clipboard
# linux specific # linux specific
#=export_clipboard_to_x #=export_clipboard_to_x
KEY_FENRIR,KEY_CTRL,KEY_UP=inc_alsa_volume
KEY_FENRIR,KEY_CTRL,KEY_DOWN=dec_alsa_volume

View File

@ -41,7 +41,9 @@ if [ -f "/etc/fenrir/settings/settings.conf" ]; then
else else
install -m644 -D "config/settings/settings.conf" /etc/fenrir/settings/settings.conf.current install -m644 -D "config/settings/settings.conf" /etc/fenrir/settings/settings.conf.current
fi fi
fi else
install -m644 -D "config/settings/settings.conf" /etc/fenrir/settings/settings.conf
fi
# end message # end message

View File

@ -1,6 +1,5 @@
Known Bugs (Problems with the logic ): Known Bugs (Problems with the logic ):
- fenrir crashes on device unplug (remove device graceful) - fenrir crashes on device unplug (remove device graceful)
- no autodetection of X if you start without GUI and use startx manual
- word echo triggers twice if there are two spaces after an word and you arrow over them - word echo triggers twice if there are two spaces after an word and you arrow over them
- spellcheck triggers twice if there are two spaces after an word and you arrow over them - spellcheck triggers twice if there are two spaces after an word and you arrow over them

Binary file not shown.

View File

@ -5,8 +5,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"POT-Creation-Date: 2017-02-20 10:45+UTC\n" "POT-Creation-Date: 2017-02-26 22:19+UTC\n"
"PO-Revision-Date: 2017-02-20 04:52-0600\n" "PO-Revision-Date: 2017-02-26 17:01-0600\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: es\n" "Language: es\n"
@ -22,6 +22,9 @@ msgid "adds the current word to the exceptions dictionary"
msgstr "añade la palabra actual al diccionario" msgstr "añade la palabra actual al diccionario"
#: ../src/fenrir/commands/commands/add_word_to_spell_check.py:34 #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:34
#: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:34
#: ../src/fenrir/commands/commands/spell_check.py:29
#: ../src/fenrir/commands/commands/spell_check.py:36
msgid "pyenchant is not installed" msgid "pyenchant is not installed"
msgstr "Pyenchant no está instalado" msgstr "Pyenchant no está instalado"
@ -94,6 +97,24 @@ msgstr "El marcador para la aplicación {0} no se ha establecido"
#: ../src/fenrir/commands/commands/bookmark_9.py:43 #: ../src/fenrir/commands/commands/bookmark_9.py:43
#: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:27 #: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:27
#: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:30 #: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:30
#: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:27
#: ../src/fenrir/commands/commands/indent_curr_line.py:31
#: ../src/fenrir/commands/commands/marked_text.py:33
#: ../src/fenrir/commands/commands/present_first_line.py:25
#: ../src/fenrir/commands/commands/present_last_line.py:25
#: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:27
#: ../src/fenrir/commands/commands/review_curr_line.py:27
#: ../src/fenrir/commands/commands/review_curr_word.py:27
#: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:27
#: ../src/fenrir/commands/commands/review_line_begin.py:27
#: ../src/fenrir/commands/commands/review_next_line.py:29
#: ../src/fenrir/commands/commands/review_next_word.py:29
#: ../src/fenrir/commands/commands/review_next_word_phonetic.py:27
#: ../src/fenrir/commands/commands/review_prev_line.py:27
#: ../src/fenrir/commands/commands/review_prev_word.py:27
#: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:27
#: ../src/fenrir/commands/onInput/55000-present_line_if_cursor_change_vertical.py:38
#: ../src/fenrir/commands/onInput/72000-history.py:50
msgid "blank" msgid "blank"
msgstr "en blanco" msgstr "en blanco"
@ -137,7 +158,7 @@ msgstr "Eliminar marcador {0}"
#: ../src/fenrir/commands/commands/clear_bookmark_8.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_8.py:24
#: ../src/fenrir/commands/commands/clear_bookmark_9.py:24 #: ../src/fenrir/commands/commands/clear_bookmark_9.py:24
msgid "Bookmark {0} removed for application {1}" msgid "Bookmark {0} removed for application {1}"
msgstr "" msgstr "el marcador {0} de la aplicación {1} ha sido eliminado"
#: ../src/fenrir/commands/commands/clear_clipboard.py:17 #: ../src/fenrir/commands/commands/clear_clipboard.py:17
msgid "clears the currently selected clipboard" msgid "clears the currently selected clipboard"
@ -153,7 +174,7 @@ msgstr "Desactiva el modo de ventana para la aplicación"
#: ../src/fenrir/commands/commands/clear_window_application.py:22 #: ../src/fenrir/commands/commands/clear_window_application.py:22
msgid "Window Mode off for application {0}" msgid "Window Mode off for application {0}"
msgstr "" msgstr "El modo de ventana está desactivado para la aplicación {0}"
#: ../src/fenrir/commands/commands/clear_window_application.py:24 #: ../src/fenrir/commands/commands/clear_window_application.py:24
msgid "Not in window Mode" msgid "Not in window Mode"
@ -172,6 +193,18 @@ msgid "speaks the contents of the currently selected clipboard"
msgstr "Habla el contenido del portapapeles seleccionado" msgstr "Habla el contenido del portapapeles seleccionado"
#: ../src/fenrir/commands/commands/curr_clipboard.py:21 #: ../src/fenrir/commands/commands/curr_clipboard.py:21
#: ../src/fenrir/commands/commands/export_clipboard_to_x.py:29
#: ../src/fenrir/commands/commands/export_clipboard_to_x.py:32
#: ../src/fenrir/commands/commands/export_clipboard_to_x.py:35
#: ../src/fenrir/commands/commands/export_clipboard_to_x.py:38
#: ../src/fenrir/commands/commands/first_clipboard.py:21
#: ../src/fenrir/commands/commands/last_clipboard.py:21
#: ../src/fenrir/commands/commands/next_clipboard.py:21
#: ../src/fenrir/commands/commands/paste_clipboard.py:23
#: ../src/fenrir/commands/commands/paste_clipboard.py:26
#: ../src/fenrir/commands/commands/paste_clipboard.py:29
#: ../src/fenrir/commands/commands/paste_clipboard.py:32
#: ../src/fenrir/commands/commands/prev_clipboard.py:21
msgid "clipboard empty" msgid "clipboard empty"
msgstr "Portapapeles vacío" msgstr "Portapapeles vacío"
@ -196,12 +229,479 @@ msgid ""
"presents the current column number for review cursor in review mode or the " "presents the current column number for review cursor in review mode or the "
"text cursor if not. Starts with 1" "text cursor if not. Starts with 1"
msgstr "" msgstr ""
"Indica el número de columna actual para el cursor de revisión si se está en "
"el modo de revisión, o el cursor de texto si no."
#: ../src/fenrir/commands/commands/cursor_lineno.py:17 #: ../src/fenrir/commands/commands/cursor_lineno.py:17
msgid "" msgid ""
"presents the current line number for review cursor in review mode or the " "presents the current line number for review cursor in review mode or the "
"text cursor if not. Starts with 1" "text cursor if not. Starts with 1"
msgstr "" msgstr ""
"Indica el número de línea actual para el cursor de revisión si se está en el "
"modo de revisión, o el cursor de texto si no."
#: ../src/fenrir/commands/commands/cursor_position.py:17
msgid "displays the position of the review cursor"
msgstr "Indica la posición del cursor de revisión"
#: ../src/fenrir/commands/commands/cursor_position.py:23
msgid "line {0}, column {1}"
msgstr "Línea {0}, columna {1}"
#: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:18
msgid ""
"read to end of line, use review cursor if you are in review mode, otherwhise "
"use text cursor"
msgstr ""
"Leer hasta el fin de línea, utiliza el cursor de revisión cuando el modo de "
"revisión está activo, de lo contrario utiliza el cursor de texto."
#: ../src/fenrir/commands/commands/date.py:18
msgid "presents the date"
msgstr "Lee la fecha"
#: ../src/fenrir/commands/commands/dec_sound_volume.py:18
msgid "decrease sound volume"
msgstr "Reduce el volumen del sonido"
#: ../src/fenrir/commands/commands/dec_sound_volume.py:29
#: ../src/fenrir/commands/commands/inc_sound_volume.py:29
msgid "{0} percent sound volume"
msgstr "volumen de sonido al {0} porciento"
#: ../src/fenrir/commands/commands/dec_speech_pitch.py:18
msgid "decreases the pitch of the speech"
msgstr "Reduce el tono de voz"
#: ../src/fenrir/commands/commands/dec_speech_pitch.py:27
#: ../src/fenrir/commands/commands/inc_speech_pitch.py:27
msgid "{0} percent speech pitch"
msgstr "Tono de voz al {0} porciento"
#: ../src/fenrir/commands/commands/dec_speech_rate.py:18
msgid "decreases the rate of the speech"
msgstr "Reduce la velocidad de voz"
#: ../src/fenrir/commands/commands/dec_speech_rate.py:27
#: ../src/fenrir/commands/commands/inc_speech_rate.py:27
msgid "{0} percent speech rate"
msgstr "Velocidad de voz al {0} porciento"
#: ../src/fenrir/commands/commands/dec_speech_volume.py:18
msgid "decreases the volume of the speech"
msgstr "Reduce el volumen de voz"
#: ../src/fenrir/commands/commands/dec_speech_volume.py:27
#: ../src/fenrir/commands/commands/inc_speech_volume.py:27
msgid "{0} percent speech volume"
msgstr "Volumen de voz al {0} porciento"
#: ../src/fenrir/commands/commands/exit_review.py:17
msgid "exits review mode"
msgstr "Sale del modo de revisión"
#: ../src/fenrir/commands/commands/exit_review.py:21
msgid "Not in review mode"
msgstr "No está en modo de revisión"
#: ../src/fenrir/commands/commands/exit_review.py:25
msgid "leave review mode"
msgstr "Saliendo del modo de revisión"
#: ../src/fenrir/commands/commands/export_clipboard_to_x.py:21
msgid "export the current fenrir clipboard to X clipboard"
msgstr "Exporta el contenido del portapapeles de Fenrir al servidor X"
#: ../src/fenrir/commands/commands/first_clipboard.py:17
msgid "selects the first clipboard"
msgstr "Selecciona el primer portapapeles"
#: ../src/fenrir/commands/commands/forward_keypress.py:17
msgid "sends the following keypress to the terminal"
msgstr "Envía la siguiente tecla a la terminal"
#: ../src/fenrir/commands/commands/forward_keypress.py:21
msgid "Forward next keypress"
msgstr "Enviar la siguiente tecla"
#: ../src/fenrir/commands/commands/inc_sound_volume.py:18
msgid "adjusts the volume for in coming sounds"
msgstr "aumenta el volumen del sonido"
#: ../src/fenrir/commands/commands/inc_speech_pitch.py:18
msgid "increases the pitch of the speech"
msgstr "Aumenta el tono de voz"
#: ../src/fenrir/commands/commands/inc_speech_rate.py:18
msgid "increase the speech rate"
msgstr "Aumenta la velocidad de voz"
#: ../src/fenrir/commands/commands/inc_speech_volume.py:18
msgid "increase the speech volume"
msgstr "Aumenta el volumen de voz"
#: ../src/fenrir/commands/commands/indent_curr_line.py:18
msgid "shows the indention level for the current line"
msgstr "Lee el nivel de indentación de la línea actual"
#: ../src/fenrir/commands/commands/indent_curr_line.py:33
msgid "indent {0}"
msgstr ""
#: ../src/fenrir/commands/commands/last_clipboard.py:17
msgid "selects the last clipboard"
msgstr "Selecciona el último portapapeles"
#: ../src/fenrir/commands/commands/last_incoming.py:17
msgid "displays the last received text"
msgstr "Lee el último mensaje recibido"
#: ../src/fenrir/commands/commands/marked_text.py:18
msgid "speaks the currently selected text that will be copied to the clipboard"
msgstr "Lee el texto que será copiado al portapapeles"
#: ../src/fenrir/commands/commands/marked_text.py:23
msgid "please set begin and endmark"
msgstr "Establece una marca de principio y otra para el final de la selección."
#: ../src/fenrir/commands/commands/next_clipboard.py:17
msgid "selects the next clipboard"
msgstr "Selecciona el siguiente portapapeles"
#: ../src/fenrir/commands/commands/next_clipboard.py:26
msgid "First clipboard "
msgstr "Primer portapapeles"
#: ../src/fenrir/commands/commands/paste_clipboard.py:18
msgid "pastes the text from the currently selected clipboard"
msgstr "Pega el texto del portapapeles en uso"
#: ../src/fenrir/commands/commands/present_first_line.py:18
msgid "present first line"
msgstr "lee la primera línea"
#: ../src/fenrir/commands/commands/present_last_line.py:18
#: ../src/fenrir/commands/commands/review_curr_line.py:18
msgid "current line"
msgstr "línea actual"
#: ../src/fenrir/commands/commands/prev_clipboard.py:17
msgid "selects the previous clipboard"
msgstr "Selecciona el portapapeles anterior"
#: ../src/fenrir/commands/commands/prev_clipboard.py:26
msgid "Last clipboard "
msgstr "Último portapapeles"
#: ../src/fenrir/commands/commands/quit_fenrir.py:17
msgid "exits Fenrir"
msgstr "Sale de Fenrir"
#: ../src/fenrir/commands/commands/remove_marks.py:17
msgid "removes marks from selected text"
msgstr "Quitar marcas del texto seleccionado"
#: ../src/fenrir/commands/commands/remove_marks.py:21
msgid "Remove marks"
msgstr "Marcas eliminadas"
#: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:27
msgid "removes the current word from the exceptions dictionary"
msgstr "Quita la palabra actual del diccionario de excepciones"
#: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:50
msgid "{0} is already removed from dict"
msgstr "{0} no está en el diccionario"
#: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:53
msgid "{0} removed"
msgstr "se ha eliminado {0}"
#: ../src/fenrir/commands/commands/review_bottom.py:17
msgid "move review to bottom of screen"
msgstr "Mueve el cursor de revisión al final de la pantalla"
#: ../src/fenrir/commands/commands/review_bottom.py:21
msgid "Bottom"
msgstr "Fin"
#: ../src/fenrir/commands/commands/review_curr_char.py:18
msgid "presents the current character."
msgstr "Lee el carácter actual"
#: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:18
msgid "set review and phonetically presents the current character"
msgstr "Lee fonéticamente el último carácter"
#: ../src/fenrir/commands/commands/review_curr_word.py:18
msgid "current word."
msgstr "Palabra actual. "
#: ../src/fenrir/commands/commands/review_curr_word.py:32
#: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:36
#: ../src/fenrir/commands/commands/review_down.py:27
#: ../src/fenrir/commands/commands/review_next_char.py:28
#: ../src/fenrir/commands/commands/review_next_char_phonetic.py:30
#: ../src/fenrir/commands/commands/review_next_line.py:34
#: ../src/fenrir/commands/commands/review_next_word.py:34
#: ../src/fenrir/commands/commands/review_next_word_phonetic.py:36
#: ../src/fenrir/commands/commands/review_prev_char.py:31
#: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:30
#: ../src/fenrir/commands/commands/review_prev_line.py:32
#: ../src/fenrir/commands/commands/review_prev_word.py:32
#: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:36
#: ../src/fenrir/commands/commands/review_up.py:27
msgid "end of screen"
msgstr "Fin de pantalla"
#: ../src/fenrir/commands/commands/review_curr_word.py:35
#: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:39
#: ../src/fenrir/commands/commands/review_next_char.py:31
#: ../src/fenrir/commands/commands/review_next_char_phonetic.py:33
#: ../src/fenrir/commands/commands/review_next_word.py:37
#: ../src/fenrir/commands/commands/review_next_word_phonetic.py:39
#: ../src/fenrir/commands/commands/review_prev_char.py:34
#: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:33
#: ../src/fenrir/commands/commands/review_prev_word.py:35
#: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:39
#: ../src/fenrir/commands/commands/review_up.py:30
msgid "line break"
msgstr "Nueva línea"
#: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:19
#: ../src/fenrir/commands/commands/review_next_word_phonetic.py:19
#: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:19
msgid "phonetically spells the current word and set review to it"
msgstr "Deletrea fonéticamente la palabra actual"
#: ../src/fenrir/commands/commands/review_down.py:18
msgid "set review cursor to char below the current char and present it."
msgstr "Mueve el cursor de revisión al carácter después del actual y lo lee"
#: ../src/fenrir/commands/commands/review_line_begin.py:18
msgid "set review cursor to begin of current line and display the content"
msgstr "lee la línea actual desde el principio"
#: ../src/fenrir/commands/commands/review_line_begin.py:30
msgid "beginning of line"
msgstr "principio de línea"
#: ../src/fenrir/commands/commands/review_line_end.py:18
#: ../src/fenrir/commands/commands/review_line_first_char.py:19
#: ../src/fenrir/commands/commands/review_line_last_char.py:18
msgid "set review cursor to end of current line and display the content"
msgstr "Lee el final de la línea"
#: ../src/fenrir/commands/commands/review_line_end.py:27
msgid "end of line"
msgstr "Fin de línea"
#: ../src/fenrir/commands/commands/review_line_first_char.py:26
msgid "line is empty"
msgstr "Línea en blanco"
#: ../src/fenrir/commands/commands/review_line_first_char.py:33
msgid "first char in line indent {0}"
msgstr ""
#: ../src/fenrir/commands/commands/review_line_last_char.py:27
msgid "last char in line"
msgstr "último carácter de la línea"
#: ../src/fenrir/commands/commands/review_next_char.py:18
msgid "moves review to the next character and presents it"
msgstr "Lee el siguiente carácter"
#: ../src/fenrir/commands/commands/review_next_char_phonetic.py:18
msgid "phonetically presents the next character and set review to it"
msgstr "Lee fonéticamente el siguiente carácter"
#: ../src/fenrir/commands/commands/review_next_line.py:18
msgid "moves review to the next line and presents it"
msgstr "Lee la siguiente línea"
#: ../src/fenrir/commands/commands/review_next_word.py:18
msgid "moves review to the next word and presents it"
msgstr "Lee la siguiente palabra"
#: ../src/fenrir/commands/commands/review_prev_char.py:18
msgid "moves review to the previous character and presents it"
msgstr "Lee el carácter anterior"
#: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:18
msgid "phonetically presents the previous character and set review to it"
msgstr "Lee fonéticamente el carácter anterior"
#: ../src/fenrir/commands/commands/review_prev_line.py:18
msgid "moves review to the previous line and presents it"
msgstr "Lee la línea anterior"
#: ../src/fenrir/commands/commands/review_prev_word.py:18
msgid "moves review focus to the previous word and presents it"
msgstr "Lee la palabra anterior"
#: ../src/fenrir/commands/commands/review_top.py:18
msgid "move review to top of screen"
msgstr "ir al final de la pantalla"
#: ../src/fenrir/commands/commands/review_top.py:22
msgid "Top"
msgstr "Fin"
#: ../src/fenrir/commands/commands/review_up.py:18
msgid "set review cursor to the char in the line below and present it"
msgstr "Mueve el cursor de revisión al carácter en la siguiente línea y lo lee"
#: ../src/fenrir/commands/commands/set_bookmark_1.py:18
#: ../src/fenrir/commands/commands/set_bookmark_10.py:18
#: ../src/fenrir/commands/commands/set_bookmark_2.py:18
#: ../src/fenrir/commands/commands/set_bookmark_3.py:18
#: ../src/fenrir/commands/commands/set_bookmark_4.py:18
#: ../src/fenrir/commands/commands/set_bookmark_5.py:18
#: ../src/fenrir/commands/commands/set_bookmark_6.py:18
#: ../src/fenrir/commands/commands/set_bookmark_7.py:18
#: ../src/fenrir/commands/commands/set_bookmark_8.py:18
#: ../src/fenrir/commands/commands/set_bookmark_9.py:18
msgid "set Bookmark {0}"
msgstr "Añadir marcador {0}"
#: ../src/fenrir/commands/commands/set_bookmark_1.py:22
#: ../src/fenrir/commands/commands/set_bookmark_10.py:22
#: ../src/fenrir/commands/commands/set_bookmark_2.py:22
#: ../src/fenrir/commands/commands/set_bookmark_3.py:22
#: ../src/fenrir/commands/commands/set_bookmark_4.py:22
#: ../src/fenrir/commands/commands/set_bookmark_5.py:22
#: ../src/fenrir/commands/commands/set_bookmark_6.py:22
#: ../src/fenrir/commands/commands/set_bookmark_7.py:22
#: ../src/fenrir/commands/commands/set_bookmark_8.py:22
#: ../src/fenrir/commands/commands/set_bookmark_9.py:22
msgid "No Mark found"
msgstr "No se han encontrado marcas"
#: ../src/fenrir/commands/commands/set_bookmark_1.py:32
#: ../src/fenrir/commands/commands/set_bookmark_10.py:32
#: ../src/fenrir/commands/commands/set_bookmark_2.py:32
#: ../src/fenrir/commands/commands/set_bookmark_3.py:32
#: ../src/fenrir/commands/commands/set_bookmark_4.py:32
#: ../src/fenrir/commands/commands/set_bookmark_5.py:32
#: ../src/fenrir/commands/commands/set_bookmark_6.py:32
#: ../src/fenrir/commands/commands/set_bookmark_7.py:32
#: ../src/fenrir/commands/commands/set_bookmark_8.py:32
#: ../src/fenrir/commands/commands/set_bookmark_9.py:32
msgid "Bookmark {0} set for application {1}"
msgstr "Añadido marcador {0} para aplicación {1}"
#: ../src/fenrir/commands/commands/set_mark.py:17
msgid "places marks to select text to copy to the clipboard"
msgstr ""
"Establece marcas para seleccionar texto que será copiado al portapapeles"
#: ../src/fenrir/commands/commands/set_mark.py:21
msgid "no review cursor"
msgstr "No hay cursor de revisión"
#: ../src/fenrir/commands/commands/set_mark.py:26
#: ../src/fenrir/commands/commands/set_mark.py:28
msgid "set mark"
msgstr "Marcar"
#: ../src/fenrir/commands/commands/set_window_application.py:17
msgid "set Window Mode, needs 2 marks "
msgstr "se necesitan dos marcas para establecer el modo ventana"
#: ../src/fenrir/commands/commands/set_window_application.py:22
msgid "Window Mode on for application {0}"
msgstr "El modo de ventana está activado para la aplicación {0}"
#: ../src/fenrir/commands/commands/set_window_application.py:25
msgid "Set window begin and end marks"
msgstr "Establece una marca de principio y otra para el final de la ventana"
#: ../src/fenrir/commands/commands/shut_up.py:17
msgid "interrupts the current presentation"
msgstr "Interrumpe el habla y braille."
#: ../src/fenrir/commands/commands/spell_check.py:26
msgid "checks the spelling of the current word"
msgstr "Revisa la ortografía para la palabra actual"
#: ../src/fenrir/commands/commands/spell_check.py:52
#: ../src/fenrir/commands/onInput/62000-spell_check.py:132
msgid "misspelled"
msgstr "mal escrito"
#: ../src/fenrir/commands/commands/spell_check.py:54
msgid "correct"
msgstr "Correcto"
#: ../src/fenrir/commands/commands/subprocess.py:21
msgid "script: {0} fullpath: {1}"
msgstr "Script: {0} Ruta de archivo: {1}"
#: ../src/fenrir/commands/commands/subprocess.py:24
msgid "scriptfile does not exist"
msgstr "el archivo del script no existe"
#: ../src/fenrir/commands/commands/subprocess.py:27
msgid "scriptfile is not a file"
msgstr "El script no es un archivo"
#: ../src/fenrir/commands/commands/subprocess.py:30
msgid "scriptfile is not executable"
msgstr "el script no es ejecutable"
#: ../src/fenrir/commands/commands/temp_disable_speech.py:17
#: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:17
msgid "disables speech until next keypress"
msgstr "Desactiva el habla hasta la siguiente pulsación de teclas"
#: ../src/fenrir/commands/commands/temp_disable_speech.py:21
msgid "speech temporary disabled"
msgstr "Habla desactivada temporalmente"
#: ../src/fenrir/commands/commands/time.py:18
msgid "presents the time"
msgstr "Lee la hora"
#: ../src/fenrir/commands/commands/toggle_auto_read.py:16
msgid "enables or disables automatic reading of new text as it appears"
msgstr ""
"Activa o desactiva la lectura de texto cuando hay nuevo contenido en la "
"pantalla"
#: ../src/fenrir/commands/commands/toggle_auto_read.py:21
msgid "autoread enabled"
msgstr "Lectura automática activada"
#: ../src/fenrir/commands/commands/toggle_auto_read.py:23
msgid "autoread disabled"
msgstr "Lectura automática desactivada"
#: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:17
msgid "enables or disables automatic spell checking"
msgstr "Activa o desactiva la corrección ortográfica automática"
#: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:22
msgid "auto spellcheck enabled"
msgstr "corrección ortográfica automática activada"
#: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:24
msgid "auto spellcheck disabled"
msgstr "corrección ortográfica automática desactivada"
#: ../src/fenrir/commands/commands/toggle_auto_time.py:16
msgid "enables or disables automatic reading of time after an period"
msgstr ""
"Activa o desactiva la lectura automática de la hora después de un intervalo "
"de tiempo"
#: ../src/fenrir/commands/commands/toggle_auto_time.py:21
msgid "autotime enabled"
msgstr "lectura automática de hora activada"
#: ../src/fenrir/commands/commands/toggle_auto_time.py:23
msgid "autotime disabled"
msgstr "Lectura automática de hora desactivada"
#: ../src/fenrir/commands/commands/toggle_braille.py:17 #: ../src/fenrir/commands/commands/toggle_braille.py:17
msgid "enables and disables output in braille" msgid "enables and disables output in braille"
@ -228,6 +728,7 @@ msgid "emoticons disabled"
msgstr "Emoticonos desactivados" msgstr "Emoticonos desactivados"
#: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:16 #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:16
#: ../src/fenrir/commands/onInput/56000-highlight_tracking.py:16
msgid "enables or disables tracking of highlighted" msgid "enables or disables tracking of highlighted"
msgstr "Activa o desactiva el seguimiento de texto resaltado" msgstr "Activa o desactiva el seguimiento de texto resaltado"
@ -276,6 +777,7 @@ msgid "speech disabled"
msgstr "Habla desactivada" msgstr "Habla desactivada"
#: ../src/fenrir/commands/commands/toggle_speech.py:24 #: ../src/fenrir/commands/commands/toggle_speech.py:24
#: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:28
msgid "speech enabled" msgid "speech enabled"
msgstr "Habla activada" msgstr "Habla activada"
@ -296,3 +798,43 @@ msgstr ""
"Has entrado al tutorial. En este modo las combinaciones de teclado no se " "Has entrado al tutorial. En este modo las combinaciones de teclado no se "
"ejecutarán pero te darán una descripción de lo que hacen. Para salir del " "ejecutarán pero te darán una descripción de lo que hacen. Para salir del "
"tutorial, presiona la misma combinación de teclado de nuevo." "tutorial, presiona la misma combinación de teclado de nuevo."
#: ../src/fenrir/commands/onInput/80000-capslock.py:22
msgid "Capslock on"
msgstr "Bloqueo mayúsculas activado"
#: ../src/fenrir/commands/onInput/80000-capslock.py:24
msgid "Capslock off"
msgstr "Bloqueo mayúsculas desactivado"
#: ../src/fenrir/commands/onInput/80300-scrolllock.py:22
msgid "Scrolllock on"
msgstr "Bloqueo de desplazamiento activado"
#: ../src/fenrir/commands/onInput/80300-scrolllock.py:24
msgid "Scrolllock off"
msgstr "Bloqueo de desplazamiento desactivado"
#: ../src/fenrir/commands/onInput/80500-numlock.py:22
msgid "Numlock on"
msgstr "Bloqueo numérico activado"
#: ../src/fenrir/commands/onInput/80500-numlock.py:24
msgid "Numlock off"
msgstr "Bloqueo numérico desactivado"
#: ../src/fenrir/commands/onScreenChanged/80000-screen_change_announcement.py:20
msgid "screen {0}"
msgstr "pantalla {0}"
#: ../src/fenrir/commands/onScreenUpdate/76000-time.py:66
msgid "Autotime: {0}"
msgstr "Hora automática: {0}"
#: ../src/fenrir/fenrir.py:24
msgid "Start Fenrir"
msgstr "Iniciando fenrir"
#: ../src/fenrir/fenrir.py:99
msgid "Quit Fenrir"
msgstr "Cerrando Fenrir"

View File

@ -0,0 +1,48 @@
#!/bin/python
iDevices = {}
iDeviceNo = 0
def updateInputDevices(force = False, init = False):
global iDeviceNo
if init:
iDevices = {}
iDeviceNo = 0
deviceFileList = evdev.list_devices()
if not force:
if len(deviceFileList) == iDeviceNo:
return
iDeviceNo = len(deviceFileList)
mode = 'ALL'
iDevicesFiles = []
for device in iDevices:
iDevicesFiles.append(iDevices[device].fn)
print(len(iDevicesFiles),len(deviceFileList))
if len(iDevicesFiles) == len(deviceFileList):
return
for deviceFile in deviceFileList:
try:
if deviceFile in iDevicesFiles:
print('skip')
continue
open(deviceFile)
# 3 pos absolute
# 2 pos relative
# 1 Keys
currDevice = evdev.InputDevice(deviceFile)
cap = currDevice.capabilities()
if mode in ['ALL','NOMICE']:
if 1 in cap:
if 116 in cap[1] and len(cap[1]) < 5:
print('power')
continue
if mode == 'ALL':
iDevices[currDevice.fd] = currDevice
print('Device added:' + iDevices[currDevice.fd].name)
elif mode == 'NOMICE':
if not ((2 in cap) or (3 in cap)):
iDevices[currDevice.fd] = currDevice
print('Device added:' + iDevices[currDevice.fd].name)
elif currDevice.name.upper() in mode.split(','):
iDevices[currDevice.fd] = currDevice
print('Device added:' + iDevices[currDevice.fd].name)
except Exception as e:
print("Skip Inputdevice : " + deviceFile +' ' + str(e))

View File

@ -14,13 +14,13 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'displays the position of the review cursor' return _('displays the position of the review cursor')
def run(self): def run(self):
# Prefer review cursor over text cursor # Prefer review cursor over text cursor
cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor() cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor()
self.env['runtime']['outputManager'].presentText("line "+ str(cursorPos['y']+1) + " column "+ str(cursorPos['x']+1), interrupt=True) self.env['runtime']['outputManager'].presentText(_("line {0}, column {1}").format(cursorPos['y']+1, cursorPos['x']+1), interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'read to end of line, use review cursor if you are in reviewmode, otherwhise use text cursor' return _('read to end of line, use review cursor if you are in review mode, otherwhise use text cursor')
def run(self): def run(self):
cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor() cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor()
@ -24,7 +24,7 @@ class command():
line_utils.getCurrentLine(cursorPos['x'], cursorPos['y'], self.env['screenData']['newContentText']) line_utils.getCurrentLine(cursorPos['x'], cursorPos['y'], self.env['screenData']['newContentText'])
if currLine.isspace(): if currLine.isspace():
self.env['runtime']['outputManager'].presentText("blank", soundIcon='EmptyLine', interrupt=True) self.env['runtime']['outputManager'].presentText(_("blank"), soundIcon='EmptyLine', interrupt=True)
else: else:
self.env['runtime']['outputManager'].presentText(currLine[cursorPos['x']], interrupt=True) self.env['runtime']['outputManager'].presentText(currLine[cursorPos['x']], interrupt=True)
self.env['runtime']['outputManager'].announceActiveCursor() self.env['runtime']['outputManager'].announceActiveCursor()

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'presents the date' return _('presents the date')
def run(self): def run(self):
dateFormat = self.env['runtime']['settingsManager'].getSetting('general', 'dateFormat') dateFormat = self.env['runtime']['settingsManager'].getSetting('general', 'dateFormat')

View File

@ -0,0 +1,39 @@
#!/bin/python
# -*- coding: utf-8 -*-
# Fenrir TTY screen reader
# By Chrys, Storm Dragon, and contributers.
initialized = False
try:
import alsaaudio
initialized = True
except:
pass
from core import debug
class command():
def __init__(self):
pass
def initialize(self, environment):
self.env = environment
def shutdown(self):
pass
def getDescription(self):
return _("Decrease system volume")
def run(self):
if not initialized:
self.env['runtime']['outputManager'].presentText(_('alsaaudio is not installed'), interrupt=True)
return
mixer = alsaaudio.Mixer()
value = mixer.getvolume()[0]
value = value - 5
if value < 5:
value = 5
mixer.setvolume(value)
self.env['runtime']['outputManager'].presentText(_("{0} percent system volume").format(value), interrupt=True)
def setCallback(self, callback):
pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'decrease sound volume' return _('decrease sound volume')
def run(self): def run(self):
@ -26,7 +26,7 @@ class command():
value = 0.1 value = 0.1
self.env['runtime']['settingsManager'].setSetting('sound', 'volume', str(value)) self.env['runtime']['settingsManager'].setSetting('sound', 'volume', str(value))
self.env['runtime']['outputManager'].presentText(str(int(value * 100)) + " percent sound volume", soundIcon='SoundOff', interrupt=True) self.env['runtime']['outputManager'].presentText(_("{0} percent sound volume").format(int(value * 100)), soundIcon='SoundOff', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'decreases the pitch of the speech' return _('decreases the pitch of the speech')
def run(self): def run(self):
value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'pitch') value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'pitch')
@ -23,8 +23,7 @@ class command():
if value < 0.0: if value < 0.0:
value = 0.0 value = 0.0
self.env['runtime']['settingsManager'].setSetting('speech', 'pitch', str(value)) self.env['runtime']['settingsManager'].setSetting('speech', 'pitch', str(value))
self.env['runtime']['outputManager'].presentText(_('{0} percent speech pitch').format(int(value * 100)), soundIcon='', interrupt=True)
self.env['runtime']['outputManager'].presentText(str(int(value * 100)) + " percent speech pitch", soundIcon='', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'decreases the rate of the speech' return _('decreases the rate of the speech')
def run(self): def run(self):
value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'rate') value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'rate')
@ -24,7 +24,7 @@ class command():
value = 0.0 value = 0.0
self.env['runtime']['settingsManager'].setSetting('speech', 'rate', str(value)) self.env['runtime']['settingsManager'].setSetting('speech', 'rate', str(value))
self.env['runtime']['outputManager'].presentText(str(int(value * 100)) + " percent speech rate", soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_("{0} percent speech rate").format(int(value * 100)), soundIcon='', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'decreases the volume of the speech' return _('decreases the volume of the speech')
def run(self): def run(self):
value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'volume') value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'volume')
@ -24,7 +24,7 @@ class command():
value = 0.1 value = 0.1
self.env['runtime']['settingsManager'].setSetting('speech', 'volume', str(value)) self.env['runtime']['settingsManager'].setSetting('speech', 'volume', str(value))
self.env['runtime']['outputManager'].presentText(str(int(value * 100)) + " percent speech volume", soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_("{0} percent speech volume").format(int(value * 100)), soundIcon='', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -14,15 +14,15 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'exits review mode' return _('exits review mode')
def run(self): def run(self):
if not self.env['runtime']['cursorManager'].isReviewMode(): if not self.env['runtime']['cursorManager'].isReviewMode():
self.env['runtime']['outputManager'].presentText("Not in review mode", interrupt=True) self.env['runtime']['outputManager'].presentText(_("Not in review mode"), interrupt=True)
return return
self.env['runtime']['cursorManager'].clearReviewCursor() self.env['runtime']['cursorManager'].clearReviewCursor()
self.env['runtime']['outputManager'].presentText("leve review mode", interrupt=True) self.env['runtime']['outputManager'].presentText(_("leave review mode"), interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -18,7 +18,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'export the current fenrir clipboard to X clipboard' return _('export the current fenrir clipboard to X clipboard')
def run(self): def run(self):
_thread.start_new_thread(self._threadRun , ()) _thread.start_new_thread(self._threadRun , ())
@ -26,16 +26,16 @@ class command():
try: try:
currClipboard = self.env['commandBuffer']['currClipboard'] currClipboard = self.env['commandBuffer']['currClipboard']
if currClipboard < 0: if currClipboard < 0:
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
if not self.env['commandBuffer']['clipboard']: if not self.env['commandBuffer']['clipboard']:
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
if not self.env['commandBuffer']['clipboard'][currClipboard]: if not self.env['commandBuffer']['clipboard'][currClipboard]:
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
if self.env['commandBuffer']['clipboard'][currClipboard] == '': if self.env['commandBuffer']['clipboard'][currClipboard] == '':
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
p = Popen('su -c "echo -n \"' + self.env['commandBuffer']['clipboard'][currClipboard] +'\" | xclip -selection c' + self.env['generalInformation']['currUser'] , stdout=PIPE, stderr=PIPE, shell=True) p = Popen('su -c "echo -n \"' + self.env['commandBuffer']['clipboard'][currClipboard] +'\" | xclip -selection c' + self.env['generalInformation']['currUser'] , stdout=PIPE, stderr=PIPE, shell=True)

View File

@ -14,11 +14,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'selects the first clipboard' return _('selects the first clipboard')
def run(self): def run(self):
if len(self.env['commandBuffer']['clipboard']) == 0: if len(self.env['commandBuffer']['clipboard']) == 0:
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
self.env['commandBuffer']['currClipboard'] = 0 self.env['commandBuffer']['currClipboard'] = 0
self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=True) self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=True)

View File

@ -14,11 +14,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'sends the following keypress to the terminal' return _('sends the following keypress to the terminal')
def run(self): def run(self):
self.env['input']['keyForeward'] = 3 self.env['input']['keyForeward'] = 3
self.env['runtime']['outputManager'].presentText('Foreward next keypress', interrupt=True) self.env['runtime']['outputManager'].presentText(_('Forward next keypress'), interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -0,0 +1,39 @@
#!/bin/python
# -*- coding: utf-8 -*-
# Fenrir TTY screen reader
# By Chrys, Storm Dragon, and contributers.
initialized = False
try:
import alsaaudio
initialized = True
except:
pass
from core import debug
class command():
def __init__(self):
pass
def initialize(self, environment):
self.env = environment
def shutdown(self):
pass
def getDescription(self):
return _("Increase system volume")
def run(self):
if not initialized:
self.env['runtime']['outputManager'].presentText(_('alsaaudio is not installed'), interrupt=True)
return
mixer = alsaaudio.Mixer()
value = mixer.getvolume()[0]
value = value + 5
if value > 100:
value = 100
mixer.setvolume(value)
self.env['runtime']['outputManager'].presentText(_("{0} percent system volume").format(value), interrupt=True)
def setCallback(self, callback):
pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'adjusts the volume for in coming sounds' return _('adjusts the volume for in coming sounds')
def run(self): def run(self):
@ -26,7 +26,7 @@ class command():
value = 1.0 value = 1.0
self.env['runtime']['settingsManager'].setSetting('sound', 'volume', str(value)) self.env['runtime']['settingsManager'].setSetting('sound', 'volume', str(value))
self.env['runtime']['outputManager'].presentText(str(int(value * 100)) + " percent sound volume", soundIcon='SoundOn', interrupt=True) self.env['runtime']['outputManager'].presentText(_("{0} percent sound volume").format(int(value * 100)), soundIcon='SoundOn', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'increases the pitch of the speech' return _('increases the pitch of the speech')
def run(self): def run(self):
value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'pitch') value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'pitch')
@ -24,7 +24,7 @@ class command():
value = 1.0 value = 1.0
self.env['runtime']['settingsManager'].setSetting('speech', 'pitch', str(value)) self.env['runtime']['settingsManager'].setSetting('speech', 'pitch', str(value))
self.env['runtime']['outputManager'].presentText(str(int(value * 100)) + " percent speech pitch", soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_("{0} percent speech pitch").format(int(value * 100)), soundIcon='', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'increase the speech rate' return _('increase the speech rate')
def run(self): def run(self):
value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'rate') value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'rate')
@ -24,7 +24,7 @@ class command():
value = 1.0 value = 1.0
self.env['runtime']['settingsManager'].setSetting('speech', 'rate', str(value)) self.env['runtime']['settingsManager'].setSetting('speech', 'rate', str(value))
self.env['runtime']['outputManager'].presentText(str(int(value * 100)) + " percent speech rate", soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_("{0} percent speech rate").format(int(value * 100)), soundIcon='', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'increase the speech volume' return _('increase the speech volume')
def run(self): def run(self):
value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'volume') value = self.env['runtime']['settingsManager'].getSettingAsFloat('speech', 'volume')
@ -24,7 +24,7 @@ class command():
value = 1.0 value = 1.0
self.env['runtime']['settingsManager'].setSetting('speech', 'volume', str(value)) self.env['runtime']['settingsManager'].setSetting('speech', 'volume', str(value))
self.env['runtime']['outputManager'].presentText(str(int(value * 100)) + " percent speech volume", soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_("{0} percent speech volume").format(int(value * 100)), soundIcon='', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'shows the indention level for the current line' return _('shows the indention level for the current line')
def run(self): def run(self):
# Prefer review cursor over text cursor # Prefer review cursor over text cursor
@ -28,9 +28,9 @@ class command():
line_utils.getCurrentLine(cursorPos['x'], cursorPos['y'], self.env['screenData']['newContentText']) line_utils.getCurrentLine(cursorPos['x'], cursorPos['y'], self.env['screenData']['newContentText'])
if currLine.isspace(): if currLine.isspace():
self.env['runtime']['outputManager'].presentText("blank", soundIcon='EmptyLine', interrupt=True) self.env['runtime']['outputManager'].presentText(_("blank"), soundIcon='EmptyLine', interrupt=True)
else: else:
self.env['runtime']['outputManager'].presentText("indent "+ str(len(currLine) - len(currLine.lstrip())), interrupt=True) self.env['runtime']['outputManager'].presentText(_("indent {0}").format(len(currLine) - len(currLine.lstrip())), interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -14,11 +14,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'selects the last clipboard' return _('selects the last clipboard')
def run(self): def run(self):
if len(self.env['commandBuffer']['clipboard']) == 0: if len(self.env['commandBuffer']['clipboard']) == 0:
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
self.env['commandBuffer']['currClipboard'] = len(self.env['commandBuffer']['clipboard']) -1 self.env['commandBuffer']['currClipboard'] = len(self.env['commandBuffer']['clipboard']) -1
self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=True) self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=True)

View File

@ -14,7 +14,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'displays the last received text' return _('displays the last received text')
def run(self): def run(self):
self.env['runtime']['outputManager'].presentText(self.env['screenData']['newDelta'], interrupt=True) self.env['runtime']['outputManager'].presentText(self.env['screenData']['newDelta'], interrupt=True)

View File

@ -15,12 +15,12 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'speaks the currently selected text that will be copied to the clipboard' return _('speaks the currently selected text that will be copied to the clipboard')
def run(self): def run(self):
if not (self.env['commandBuffer']['Marks']['1'] and \ if not (self.env['commandBuffer']['Marks']['1'] and \
self.env['commandBuffer']['Marks']['2']): self.env['commandBuffer']['Marks']['2']):
self.env['runtime']['outputManager'].presentText("please set begin and endmark", interrupt=True) self.env['runtime']['outputManager'].presentText(_("please set begin and endmark"), interrupt=True)
return return
# use the last first and the last setted mark as range # use the last first and the last setted mark as range
@ -30,7 +30,7 @@ class command():
marked = mark_utils.getTextBetweenMarks(startMark, endMark, self.env['screenData']['newContentText']) marked = mark_utils.getTextBetweenMarks(startMark, endMark, self.env['screenData']['newContentText'])
if marked.isspace(): if marked.isspace():
self.env['runtime']['outputManager'].presentText("blank", soundIcon='EmptyLine', interrupt=True) self.env['runtime']['outputManager'].presentText(_("blank"), soundIcon='EmptyLine', interrupt=True)
else: else:
self.env['runtime']['outputManager'].presentText(marked, interrupt=True) self.env['runtime']['outputManager'].presentText(marked, interrupt=True)

View File

@ -14,16 +14,16 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'selects the next clipboard' return _('selects the next clipboard')
def run(self): def run(self):
if len(self.env['commandBuffer']['clipboard']) == 0: if len(self.env['commandBuffer']['clipboard']) == 0:
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
self.env['commandBuffer']['currClipboard'] += 1 self.env['commandBuffer']['currClipboard'] += 1
if self.env['commandBuffer']['currClipboard'] > len(self.env['commandBuffer']['clipboard']) -1: if self.env['commandBuffer']['currClipboard'] > len(self.env['commandBuffer']['clipboard']) -1:
self.env['commandBuffer']['currClipboard'] = 0 self.env['commandBuffer']['currClipboard'] = 0
self.env['runtime']['outputManager'].presentText('First clipboard ', interrupt=True) self.env['runtime']['outputManager'].presentText(_('First clipboard '), interrupt=True)
self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=False) self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=False)
else: else:
self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=True) self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=True)

View File

@ -15,21 +15,21 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'pastes the text from the currently selected clipboard' return _('pastes the text from the currently selected clipboard')
def run(self): def run(self):
currClipboard = self.env['commandBuffer']['currClipboard'] currClipboard = self.env['commandBuffer']['currClipboard']
if currClipboard < 0: if currClipboard < 0:
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
if not self.env['commandBuffer']['clipboard']: if not self.env['commandBuffer']['clipboard']:
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
if not self.env['commandBuffer']['clipboard'][currClipboard]: if not self.env['commandBuffer']['clipboard'][currClipboard]:
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
if self.env['commandBuffer']['clipboard'][currClipboard] == '': if self.env['commandBuffer']['clipboard'][currClipboard] == '':
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
self.env['runtime']['outputManager'].presentText('paste clipboard', soundIcon='PasteClipboardOnScreen', interrupt=True) self.env['runtime']['outputManager'].presentText('paste clipboard', soundIcon='PasteClipboardOnScreen', interrupt=True)
time.sleep(0.01) time.sleep(0.01)

View File

@ -15,14 +15,14 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'present first line' return _('present first line')
def run(self): def run(self):
x, y, firstLine = \ x, y, firstLine = \
line_utils.getCurrentLine(0, 0, self.env['screenData']['newContentText']) line_utils.getCurrentLine(0, 0, self.env['screenData']['newContentText'])
if firstLine.isspace(): if firstLine.isspace():
self.env['runtime']['outputManager'].presentText("blank", soundIcon='EmptyLine', interrupt=True) self.env['runtime']['outputManager'].presentText(_("blank"), soundIcon='EmptyLine', interrupt=True)
else: else:
self.env['runtime']['outputManager'].presentText(firstLine, interrupt=True) self.env['runtime']['outputManager'].presentText(firstLine, interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -15,14 +15,14 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'current line' return _('current line')
def run(self): def run(self):
x, y, lastLine = \ x, y, lastLine = \
line_utils.getCurrentLine(0, self.env['screenData']['lines'] -1, self.env['screenData']['newContentText']) line_utils.getCurrentLine(0, self.env['screenData']['lines'] -1, self.env['screenData']['newContentText'])
if lastLine.isspace(): if lastLine.isspace():
self.env['runtime']['outputManager'].presentText("blank", soundIcon='EmptyLine', interrupt=True) self.env['runtime']['outputManager'].presentText(_("blank"), soundIcon='EmptyLine', interrupt=True)
else: else:
self.env['runtime']['outputManager'].presentText(lastLine, interrupt=True) self.env['runtime']['outputManager'].presentText(lastLine, interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -14,16 +14,16 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'selects the previous clipboard' return _('selects the previous clipboard')
def run(self): def run(self):
if len(self.env['commandBuffer']['clipboard']) == 0: if len(self.env['commandBuffer']['clipboard']) == 0:
self.env['runtime']['outputManager'].presentText('clipboard empty', interrupt=True) self.env['runtime']['outputManager'].presentText(_('clipboard empty'), interrupt=True)
return return
self.env['commandBuffer']['currClipboard'] -= 1 self.env['commandBuffer']['currClipboard'] -= 1
if self.env['commandBuffer']['currClipboard'] < 0: if self.env['commandBuffer']['currClipboard'] < 0:
self.env['commandBuffer']['currClipboard'] = len(self.env['commandBuffer']['clipboard']) -1 self.env['commandBuffer']['currClipboard'] = len(self.env['commandBuffer']['clipboard']) -1
self.env['runtime']['outputManager'].presentText('Last clipboard ', interrupt=True) self.env['runtime']['outputManager'].presentText(_('Last clipboard '), interrupt=True)
self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=False) self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=False)
else: else:
self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=True) self.env['runtime']['outputManager'].presentText(self.env['commandBuffer']['clipboard'][self.env['commandBuffer']['currClipboard']], interrupt=True)

View File

@ -14,7 +14,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'exits Fenrir' return _('exits Fenrir')
def run(self): def run(self):
self.env['generalInformation']['running'] = False self.env['generalInformation']['running'] = False

View File

@ -14,11 +14,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'removes marks from selected text' return _('removes marks from selected text')
def run(self): def run(self):
self.env['runtime']['cursorManager'].clearMarks() self.env['runtime']['cursorManager'].clearMarks()
self.env['runtime']['outputManager'].presentText('Remove marks', interrupt=True) self.env['runtime']['outputManager'].presentText(_('Remove marks'), interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -24,14 +24,14 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'removes the current word from the exceptions dictionary' return _('removes the current word from the exceptions dictionary')
def updateSpellLanguage(self): def updateSpellLanguage(self):
self.spellChecker = enchant.Dict(self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage')) self.spellChecker = enchant.Dict(self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage'))
self.language = self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage') self.language = self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage')
def run(self): def run(self):
if not initialized: if not initialized:
self.env['runtime']['outputManager'].presentText('pychant is not installed', interrupt=True) self.env['runtime']['outputManager'].presentText(_('pyenchant is not installed'), interrupt=True)
return return
if self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage') != self.language: if self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage') != self.language:
try: try:
@ -47,9 +47,9 @@ class command():
currWord = currWord.strip(string.whitespace + '!"#$%&\()*+,-./:;<=§>?@[\\]^_{|}~') currWord = currWord.strip(string.whitespace + '!"#$%&\()*+,-./:;<=§>?@[\\]^_{|}~')
if not currWord.isspace(): if not currWord.isspace():
if self.spellChecker.is_removed(currWord): if self.spellChecker.is_removed(currWord):
self.env['runtime']['outputManager'].presentText(currWord + ' is already removed from dict',soundIcon='Cancel', interrupt=True) self.env['runtime']['outputManager'].presentText(_('{0} is already removed from dict').format(currWord,), soundIcon='Cancel', interrupt=True)
else: else:
self.spellChecker.remove(currWord) self.spellChecker.remove(currWord)
self.env['runtime']['outputManager'].presentText(currWord + ' removed',soundIcon='Accept', interrupt=True) self.env['runtime']['outputManager'].presentText(_('{0} removed').format(currWord,), soundIcon='Accept', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -14,11 +14,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'move review to bottom of screen' return _('move review to bottom of screen')
def run(self): def run(self):
self.env['screenData']['newCursorReview'] = { 'x': 0, 'y':self.env['screenData']['lines'] -1} self.env['screenData']['newCursorReview'] = { 'x': 0, 'y':self.env['screenData']['lines'] -1}
self.env['runtime']['outputManager'].presentText("Bottom", interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("Bottom"), interrupt=True, flush=False)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'presents the current character.' return _('presents the current character.')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set review and phonetically presents the current character' return _('set review and phonetically presents the current character')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
@ -24,7 +24,7 @@ class command():
char_utils.getCurrentChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) char_utils.getCurrentChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if currChar.isspace(): if currChar.isspace():
self.env['runtime']['outputManager'].presentText("blank" ,interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), interrupt=True, flush=False)
else: else:
currChar = char_utils.getPhonetic(currChar) currChar = char_utils.getPhonetic(currChar)
self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True, announceCapital=True, flush=False) self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True, announceCapital=True, flush=False)

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'current line' return _('current line')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
@ -24,7 +24,7 @@ class command():
line_utils.getCurrentLine(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) line_utils.getCurrentLine(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if currLine.isspace(): if currLine.isspace():
self.env['runtime']['outputManager'].presentText("blank", soundIcon='EmptyLine', interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), soundIcon='EmptyLine', interrupt=True, flush=False)
else: else:
self.env['runtime']['outputManager'].presentText(currLine, interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(currLine, interrupt=True, flush=False)
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'current word.' return _('current word.')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
@ -24,14 +24,14 @@ class command():
word_utils.getCurrentWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) word_utils.getCurrentWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if currWord.isspace(): if currWord.isspace():
self.env['runtime']['outputManager'].presentText("blank", interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), interrupt=True, flush=False)
else: else:
self.env['runtime']['outputManager'].presentText(currWord, interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(currWord, interrupt=True, flush=False)
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
if lineBreak: if lineBreak:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'):
self.env['runtime']['outputManager'].presentText('line break' ,interrupt=False, soundIcon='EndOfLine') self.env['runtime']['outputManager'].presentText(_('line break'), interrupt=False, soundIcon='EndOfLine')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -16,7 +16,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'phonetically spells the current word and set review to it' return _('phonetically spells the current word and set review to it')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
@ -24,7 +24,7 @@ class command():
word_utils.getCurrentWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) word_utils.getCurrentWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if currWord.isspace(): if currWord.isspace():
self.env['runtime']['outputManager'].presentText("blank", interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), interrupt=True, flush=False)
else: else:
firstSequence = True firstSequence = True
for c in currWord: for c in currWord:
@ -33,9 +33,9 @@ class command():
firstSequence = False firstSequence = False
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
if lineBreak: if lineBreak:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'):
self.env['runtime']['outputManager'].presentText('line break' ,interrupt=False, soundIcon='EndOfLine') self.env['runtime']['outputManager'].presentText(_('line break'), interrupt=False, soundIcon='EndOfLine')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set review cursor to char below the current char and present it.' return _('set review cursor to char below the current char and present it.')
def run(self): def run(self):
cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor() cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor()
@ -24,6 +24,6 @@ class command():
self.env['runtime']['outputManager'].presentText(downChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False) self.env['runtime']['outputManager'].presentText(downChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False)
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set review cursor to begin of current line and display the content' return _('set review cursor to begin of current line and display the content')
def run(self): def run(self):
cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor() cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor()
@ -24,10 +24,10 @@ class command():
char_utils.getCurrentChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) char_utils.getCurrentChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if currChar.isspace(): if currChar.isspace():
self.env['runtime']['outputManager'].presentText("blank" ,interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), interrupt=True, flush=False)
else: else:
self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False) self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False)
self.env['runtime']['outputManager'].presentText("beginning of line", interrupt=False) self.env['runtime']['outputManager'].presentText(_("beginning of line"), interrupt=False)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set review cursor to end of current line and display the content' return _('set review cursor to end of current line and display the content')
def run(self): def run(self):
cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor() cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor()
@ -24,7 +24,7 @@ class command():
char_utils.getCurrentChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) char_utils.getCurrentChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False) self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False)
self.env['runtime']['outputManager'].presentText("end of line", interrupt=False) self.env['runtime']['outputManager'].presentText(_("end of line"), interrupt=False)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -16,21 +16,21 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set review cursor to end of current line and display the content' return _('set review cursor to end of current line and display the content')
def run(self): def run(self):
cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor() cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor()
x, y, currLine = \ x, y, currLine = \
line_utils.getCurrentLine(cursorPos['x'], cursorPos['y'], self.env['screenData']['newContentText']) line_utils.getCurrentLine(cursorPos['x'], cursorPos['y'], self.env['screenData']['newContentText'])
if currLine.isspace(): if currLine.isspace():
self.env['runtime']['outputManager'].presentText("line is empty" ,interrupt=True) self.env['runtime']['outputManager'].presentText(_("line is empty"), interrupt=True)
return return
self.env['runtime']['cursorManager'].setReviewCursorPosition((len(currLine) - len(currLine.lstrip())), cursorPos['y']) self.env['runtime']['cursorManager'].setReviewCursorPosition((len(currLine) - len(currLine.lstrip())), cursorPos['y'])
self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], currChar = \ self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], currChar = \
char_utils.getCurrentChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) char_utils.getCurrentChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False) self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False)
self.env['runtime']['outputManager'].presentText("first char in line indent " + str(len(currLine) - len(currLine.lstrip())), interrupt=False) self.env['runtime']['outputManager'].presentText(_("first char in line indent {0}").format(str(len(currLine) - len(currLine.lstrip()))), interrupt=False)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set review cursor to end of current line and display the content' return _('set review cursor to end of current line and display the content')
def run(self): def run(self):
cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor() cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor()
@ -24,7 +24,7 @@ class command():
char_utils.getLastCharInLine(self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) char_utils.getLastCharInLine(self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
self.env['runtime']['outputManager'].presentText(lastChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False) self.env['runtime']['outputManager'].presentText(lastChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False)
self.env['runtime']['outputManager'].presentText("last char in line", interrupt=False) self.env['runtime']['outputManager'].presentText(_("last char in line"), interrupt=False)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'moves review to the next character and presents it' return _('moves review to the next character and presents it')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
@ -25,9 +25,9 @@ class command():
self.env['runtime']['outputManager'].presentText(nextChar, interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False) self.env['runtime']['outputManager'].presentText(nextChar, interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False)
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
if lineBreak: if lineBreak:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'):
self.env['runtime']['outputManager'].presentText('line break' ,interrupt=False, soundIcon='EndOfLine') self.env['runtime']['outputManager'].presentText(_('line break'), interrupt=False, soundIcon='EndOfLine')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'phonetically presents the next character and set review to it' return _('phonetically presents the next character and set review to it')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
@ -27,9 +27,9 @@ class command():
self.env['runtime']['outputManager'].presentText(nextChar ,interrupt=True, announceCapital=True, flush=False) self.env['runtime']['outputManager'].presentText(nextChar ,interrupt=True, announceCapital=True, flush=False)
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
if lineBreak: if lineBreak:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'):
self.env['runtime']['outputManager'].presentText('line break' ,interrupt=False, soundIcon='EndOfLine') self.env['runtime']['outputManager'].presentText(_('line break'), interrupt=False, soundIcon='EndOfLine')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'moves review to the next line and presents it' return _('moves review to the next line and presents it')
def run(self): def run(self):
self.env['screenData']['oldCursorReview'] = self.env['screenData']['newCursorReview'] self.env['screenData']['oldCursorReview'] = self.env['screenData']['newCursorReview']
@ -26,11 +26,11 @@ class command():
line_utils.getNextLine(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) line_utils.getNextLine(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if nextLine.isspace(): if nextLine.isspace():
self.env['runtime']['outputManager'].presentText("blank", soundIcon='EmptyLine', interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), soundIcon='EmptyLine', interrupt=True, flush=False)
else: else:
self.env['runtime']['outputManager'].presentText(nextLine, interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(nextLine, interrupt=True, flush=False)
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'moves review to the next word and presents it' return _('moves review to the next word and presents it')
def run(self): def run(self):
self.env['screenData']['oldCursorReview'] = self.env['screenData']['newCursorReview'] self.env['screenData']['oldCursorReview'] = self.env['screenData']['newCursorReview']
@ -26,14 +26,14 @@ class command():
word_utils.getNextWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) word_utils.getNextWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if nextWord.isspace(): if nextWord.isspace():
self.env['runtime']['outputManager'].presentText("blank", interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), interrupt=True, flush=False)
else: else:
self.env['runtime']['outputManager'].presentText(nextWord, interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(nextWord, interrupt=True, flush=False)
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
if lineBreak: if lineBreak:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'):
self.env['runtime']['outputManager'].presentText('line break' ,interrupt=False, soundIcon='EndOfLine') self.env['runtime']['outputManager'].presentText(_('line break'), interrupt=False, soundIcon='EndOfLine')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -16,7 +16,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'phonetically spells the current word and set review to it' return _('phonetically spells the current word and set review to it')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
@ -24,7 +24,7 @@ class command():
word_utils.getNextWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) word_utils.getNextWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if nextWord.isspace(): if nextWord.isspace():
self.env['runtime']['outputManager'].presentText("blank", interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), interrupt=True, flush=False)
else: else:
firstSequence = True firstSequence = True
for c in nextWord: for c in nextWord:
@ -33,9 +33,9 @@ class command():
firstSequence = False firstSequence = False
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
if lineBreak: if lineBreak:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'):
self.env['runtime']['outputManager'].presentText('line break' ,interrupt=False, soundIcon='EndOfLine') self.env['runtime']['outputManager'].presentText(_('line break'), interrupt=False, soundIcon='EndOfLine')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'moves review to the previous character and presents it' return _('moves review to the previous character and presents it')
def run(self): def run(self):
self.env['screenData']['oldCursorReview'] = self.env['screenData']['newCursorReview'] self.env['screenData']['oldCursorReview'] = self.env['screenData']['newCursorReview']
@ -28,9 +28,9 @@ class command():
self.env['runtime']['outputManager'].presentText(prevChar, interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False) self.env['runtime']['outputManager'].presentText(prevChar, interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False)
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
if lineBreak: if lineBreak:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'):
self.env['runtime']['outputManager'].presentText('line break' ,interrupt=False, soundIcon='EndOfLine') self.env['runtime']['outputManager'].presentText(_('line break'), interrupt=False, soundIcon='EndOfLine')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'phonetically presents the previous character and set review to it' return _('phonetically presents the previous character and set review to it')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
@ -27,9 +27,9 @@ class command():
self.env['runtime']['outputManager'].presentText(prevChar ,interrupt=True, announceCapital=True, flush=False) self.env['runtime']['outputManager'].presentText(prevChar ,interrupt=True, announceCapital=True, flush=False)
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
if lineBreak: if lineBreak:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'):
self.env['runtime']['outputManager'].presentText('line break' ,interrupt=False, soundIcon='EndOfLine') self.env['runtime']['outputManager'].presentText(_('line break'), interrupt=False, soundIcon='EndOfLine')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'moves review to the previous line and presents it' return _('moves review to the previous line and presents it')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
@ -24,12 +24,12 @@ class command():
line_utils.getPrevLine(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) line_utils.getPrevLine(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if prevLine.isspace(): if prevLine.isspace():
self.env['runtime']['outputManager'].presentText("blank", soundIcon='EmptyLine', interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), soundIcon='EmptyLine', interrupt=True, flush=False)
else: else:
self.env['runtime']['outputManager'].presentText(prevLine, interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(prevLine, interrupt=True, flush=False)
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'moves review focus to the previous word and presents it' return _('moves review focus to the previous word and presents it')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
@ -24,14 +24,14 @@ class command():
word_utils.getPrevWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) word_utils.getPrevWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if prevWord.isspace(): if prevWord.isspace():
self.env['runtime']['outputManager'].presentText("blank", interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), interrupt=True, flush=False)
else: else:
self.env['runtime']['outputManager'].presentText(prevWord, interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(prevWord, interrupt=True, flush=False)
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=False, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=False, soundIcon='EndOfScreen')
if lineBreak: if lineBreak:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'):
self.env['runtime']['outputManager'].presentText('line break' ,interrupt=False, soundIcon='EndOfLine') self.env['runtime']['outputManager'].presentText(_('line break'), interrupt=False, soundIcon='EndOfLine')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -16,7 +16,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'phonetically spells the current word and set review to it' return _('phonetically spells the current word and set review to it')
def run(self): def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor() self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
@ -24,7 +24,7 @@ class command():
word_utils.getPrevWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText']) word_utils.getPrevWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if prevWord.isspace(): if prevWord.isspace():
self.env['runtime']['outputManager'].presentText("blank", interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), interrupt=True, flush=False)
else: else:
firstSequence = True firstSequence = True
for c in prevWord: for c in prevWord:
@ -33,9 +33,9 @@ class command():
firstSequence = False firstSequence = False
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
if lineBreak: if lineBreak:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'):
self.env['runtime']['outputManager'].presentText('line break' ,interrupt=False, soundIcon='EndOfLine') self.env['runtime']['outputManager'].presentText(_('line break'), interrupt=False, soundIcon='EndOfLine')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,11 +15,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'move review to top of screen' return _('move review to top of screen')
def run(self): def run(self):
self.env['screenData']['newCursorReview'] = {'x':0,'y':0} self.env['screenData']['newCursorReview'] = {'x':0,'y':0}
self.env['runtime']['outputManager'].presentText("Top", interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("Top"), interrupt=True, flush=False)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set review cursor to the char in the line below and present it' return _('set review cursor to the char in the line below and present it')
def run(self): def run(self):
cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor() cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor()
@ -24,9 +24,9 @@ class command():
self.env['runtime']['outputManager'].presentText(upChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False) self.env['runtime']['outputManager'].presentText(upChar ,interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False)
if endOfScreen: if endOfScreen:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'endOfScreen'):
self.env['runtime']['outputManager'].presentText('end of screen' ,interrupt=True, soundIcon='EndOfScreen') self.env['runtime']['outputManager'].presentText(_('end of screen'), interrupt=True, soundIcon='EndOfScreen')
if lineBreak: if lineBreak:
if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'): if self.env['runtime']['settingsManager'].getSettingAsBool('review', 'lineBreak'):
self.env['runtime']['outputManager'].presentText('line break' ,interrupt=False, soundIcon='EndOfLine') self.env['runtime']['outputManager'].presentText(_('line break'), interrupt=False, soundIcon='EndOfLine')
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -15,11 +15,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set Bookmark ' + self.ID return _('set Bookmark {0}').format(self.ID,)
def run(self): def run(self):
if not self.env['commandBuffer']['Marks']['1']: if not self.env['commandBuffer']['Marks']['1']:
self.env['runtime']['outputManager'].presentText("No Mark found", interrupt=True) self.env['runtime']['outputManager'].presentText(_("No Mark found"), interrupt=True)
return return
currApp = self.env['runtime']['applicationManager'].getCurrentApplication() currApp = self.env['runtime']['applicationManager'].getCurrentApplication()
self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {} self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {}
@ -29,7 +29,7 @@ class command():
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy() self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy()
else: else:
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None
self.env['runtime']['outputManager'].presentText('Bookmark ' + self.ID + " set for application " + currApp, interrupt=True) self.env['runtime']['outputManager'].presentText(_('Bookmark {0} set for application {1}').format(self.ID, currApp), interrupt=True)
self.env['commandBuffer']['Marks']['1'] = None self.env['commandBuffer']['Marks']['1'] = None
self.env['commandBuffer']['Marks']['2'] = None self.env['commandBuffer']['Marks']['2'] = None
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -15,11 +15,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set Bookmark ' + self.ID return _('set Bookmark {0}').format(self.ID,)
def run(self): def run(self):
if not self.env['commandBuffer']['Marks']['1']: if not self.env['commandBuffer']['Marks']['1']:
self.env['runtime']['outputManager'].presentText("No Mark found", interrupt=True) self.env['runtime']['outputManager'].presentText(_("No Mark found"), interrupt=True)
return return
currApp = self.env['runtime']['applicationManager'].getCurrentApplication() currApp = self.env['runtime']['applicationManager'].getCurrentApplication()
self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {} self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {}
@ -29,7 +29,7 @@ class command():
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy() self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy()
else: else:
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None
self.env['runtime']['outputManager'].presentText('Bookmark ' + self.ID + " set for application " + currApp, interrupt=True) self.env['runtime']['outputManager'].presentText(_('Bookmark {0} set for application {1}').format(self.ID, currApp), interrupt=True)
self.env['commandBuffer']['Marks']['1'] = None self.env['commandBuffer']['Marks']['1'] = None
self.env['commandBuffer']['Marks']['2'] = None self.env['commandBuffer']['Marks']['2'] = None
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -15,11 +15,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set Bookmark ' + self.ID return _('set Bookmark {0}').format(self.ID,)
def run(self): def run(self):
if not self.env['commandBuffer']['Marks']['1']: if not self.env['commandBuffer']['Marks']['1']:
self.env['runtime']['outputManager'].presentText("No Mark found", interrupt=True) self.env['runtime']['outputManager'].presentText(_("No Mark found"), interrupt=True)
return return
currApp = self.env['runtime']['applicationManager'].getCurrentApplication() currApp = self.env['runtime']['applicationManager'].getCurrentApplication()
self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {} self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {}
@ -29,7 +29,7 @@ class command():
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy() self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy()
else: else:
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None
self.env['runtime']['outputManager'].presentText('Bookmark ' + self.ID + " set for application " + currApp, interrupt=True) self.env['runtime']['outputManager'].presentText(_('Bookmark {0} set for application {1}').format(self.ID, currApp), interrupt=True)
self.env['commandBuffer']['Marks']['1'] = None self.env['commandBuffer']['Marks']['1'] = None
self.env['commandBuffer']['Marks']['2'] = None self.env['commandBuffer']['Marks']['2'] = None
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -15,11 +15,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set Bookmark ' + self.ID return _('set Bookmark {0}').format(self.ID,)
def run(self): def run(self):
if not self.env['commandBuffer']['Marks']['1']: if not self.env['commandBuffer']['Marks']['1']:
self.env['runtime']['outputManager'].presentText("No Mark found", interrupt=True) self.env['runtime']['outputManager'].presentText(_("No Mark found"), interrupt=True)
return return
currApp = self.env['runtime']['applicationManager'].getCurrentApplication() currApp = self.env['runtime']['applicationManager'].getCurrentApplication()
self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {} self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {}
@ -29,7 +29,7 @@ class command():
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy() self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy()
else: else:
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None
self.env['runtime']['outputManager'].presentText('Bookmark ' + self.ID + " set for application " + currApp, interrupt=True) self.env['runtime']['outputManager'].presentText(_('Bookmark {0} set for application {1}').format(self.ID, currApp), interrupt=True)
self.env['commandBuffer']['Marks']['1'] = None self.env['commandBuffer']['Marks']['1'] = None
self.env['commandBuffer']['Marks']['2'] = None self.env['commandBuffer']['Marks']['2'] = None
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -15,11 +15,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set Bookmark ' + self.ID return _('set Bookmark {0}').format(self.ID,)
def run(self): def run(self):
if not self.env['commandBuffer']['Marks']['1']: if not self.env['commandBuffer']['Marks']['1']:
self.env['runtime']['outputManager'].presentText("No Mark found", interrupt=True) self.env['runtime']['outputManager'].presentText(_("No Mark found"), interrupt=True)
return return
currApp = self.env['runtime']['applicationManager'].getCurrentApplication() currApp = self.env['runtime']['applicationManager'].getCurrentApplication()
self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {} self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {}
@ -29,7 +29,7 @@ class command():
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy() self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy()
else: else:
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None
self.env['runtime']['outputManager'].presentText('Bookmark ' + self.ID + " set for application " + currApp, interrupt=True) self.env['runtime']['outputManager'].presentText(_('Bookmark {0} set for application {1}').format(self.ID, currApp), interrupt=True)
self.env['commandBuffer']['Marks']['1'] = None self.env['commandBuffer']['Marks']['1'] = None
self.env['commandBuffer']['Marks']['2'] = None self.env['commandBuffer']['Marks']['2'] = None
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -15,11 +15,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set Bookmark ' + self.ID return _('set Bookmark {0}').format(self.ID,)
def run(self): def run(self):
if not self.env['commandBuffer']['Marks']['1']: if not self.env['commandBuffer']['Marks']['1']:
self.env['runtime']['outputManager'].presentText("No Mark found", interrupt=True) self.env['runtime']['outputManager'].presentText(_("No Mark found"), interrupt=True)
return return
currApp = self.env['runtime']['applicationManager'].getCurrentApplication() currApp = self.env['runtime']['applicationManager'].getCurrentApplication()
self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {} self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {}
@ -29,7 +29,7 @@ class command():
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy() self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy()
else: else:
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None
self.env['runtime']['outputManager'].presentText('Bookmark ' + self.ID + " set for application " + currApp, interrupt=True) self.env['runtime']['outputManager'].presentText(_('Bookmark {0} set for application {1}').format(self.ID, currApp), interrupt=True)
self.env['commandBuffer']['Marks']['1'] = None self.env['commandBuffer']['Marks']['1'] = None
self.env['commandBuffer']['Marks']['2'] = None self.env['commandBuffer']['Marks']['2'] = None
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -15,11 +15,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set Bookmark ' + self.ID return _('set Bookmark {0}').format(self.ID,)
def run(self): def run(self):
if not self.env['commandBuffer']['Marks']['1']: if not self.env['commandBuffer']['Marks']['1']:
self.env['runtime']['outputManager'].presentText("No Mark found", interrupt=True) self.env['runtime']['outputManager'].presentText(_("No Mark found"), interrupt=True)
return return
currApp = self.env['runtime']['applicationManager'].getCurrentApplication() currApp = self.env['runtime']['applicationManager'].getCurrentApplication()
self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {} self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {}
@ -29,7 +29,7 @@ class command():
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy() self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy()
else: else:
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None
self.env['runtime']['outputManager'].presentText('Bookmark ' + self.ID + " set for application " + currApp, interrupt=True) self.env['runtime']['outputManager'].presentText(_('Bookmark {0} set for application {1}').format(self.ID, currApp), interrupt=True)
self.env['commandBuffer']['Marks']['1'] = None self.env['commandBuffer']['Marks']['1'] = None
self.env['commandBuffer']['Marks']['2'] = None self.env['commandBuffer']['Marks']['2'] = None
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -15,11 +15,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set Bookmark ' + self.ID return _('set Bookmark {0}').format(self.ID,)
def run(self): def run(self):
if not self.env['commandBuffer']['Marks']['1']: if not self.env['commandBuffer']['Marks']['1']:
self.env['runtime']['outputManager'].presentText("No Mark found", interrupt=True) self.env['runtime']['outputManager'].presentText(_("No Mark found"), interrupt=True)
return return
currApp = self.env['runtime']['applicationManager'].getCurrentApplication() currApp = self.env['runtime']['applicationManager'].getCurrentApplication()
self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {} self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {}
@ -29,7 +29,7 @@ class command():
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy() self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy()
else: else:
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None
self.env['runtime']['outputManager'].presentText('Bookmark ' + self.ID + " set for application " + currApp, interrupt=True) self.env['runtime']['outputManager'].presentText(_('Bookmark {0} set for application {1}').format(self.ID, currApp), interrupt=True)
self.env['commandBuffer']['Marks']['1'] = None self.env['commandBuffer']['Marks']['1'] = None
self.env['commandBuffer']['Marks']['2'] = None self.env['commandBuffer']['Marks']['2'] = None
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -15,11 +15,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set Bookmark ' + self.ID return _('set Bookmark {0}').format(self.ID,)
def run(self): def run(self):
if not self.env['commandBuffer']['Marks']['1']: if not self.env['commandBuffer']['Marks']['1']:
self.env['runtime']['outputManager'].presentText("No Mark found", interrupt=True) self.env['runtime']['outputManager'].presentText(_("No Mark found"), interrupt=True)
return return
currApp = self.env['runtime']['applicationManager'].getCurrentApplication() currApp = self.env['runtime']['applicationManager'].getCurrentApplication()
self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {} self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {}
@ -29,7 +29,7 @@ class command():
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy() self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy()
else: else:
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None
self.env['runtime']['outputManager'].presentText('Bookmark ' + self.ID + " set for application " + currApp, interrupt=True) self.env['runtime']['outputManager'].presentText(_('Bookmark {0} set for application {1}').format(self.ID, currApp), interrupt=True)
self.env['commandBuffer']['Marks']['1'] = None self.env['commandBuffer']['Marks']['1'] = None
self.env['commandBuffer']['Marks']['2'] = None self.env['commandBuffer']['Marks']['2'] = None
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -15,11 +15,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set Bookmark ' + self.ID return _('set Bookmark {0}').format(self.ID,)
def run(self): def run(self):
if not self.env['commandBuffer']['Marks']['1']: if not self.env['commandBuffer']['Marks']['1']:
self.env['runtime']['outputManager'].presentText("No Mark found", interrupt=True) self.env['runtime']['outputManager'].presentText(_("No Mark found"), interrupt=True)
return return
currApp = self.env['runtime']['applicationManager'].getCurrentApplication() currApp = self.env['runtime']['applicationManager'].getCurrentApplication()
self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {} self.env['commandBuffer']['bookMarks'][self.ID][currApp] = {}
@ -29,7 +29,7 @@ class command():
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy() self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = self.env['commandBuffer']['Marks']['2'].copy()
else: else:
self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None self.env['commandBuffer']['bookMarks'][self.ID][currApp]['2'] = None
self.env['runtime']['outputManager'].presentText('Bookmark ' + self.ID + " set for application " + currApp, interrupt=True) self.env['runtime']['outputManager'].presentText(_('Bookmark {0} set for application {1}').format(self.ID, currApp), interrupt=True)
self.env['commandBuffer']['Marks']['1'] = None self.env['commandBuffer']['Marks']['1'] = None
self.env['commandBuffer']['Marks']['2'] = None self.env['commandBuffer']['Marks']['2'] = None
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -14,17 +14,17 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'places marks to select text to copy to the clipboard' return _('places marks to select text to copy to the clipboard')
def run(self): def run(self):
if not self.env['runtime']['cursorManager'].isReviewMode(): if not self.env['runtime']['cursorManager'].isReviewMode():
self.env['runtime']['outputManager'].presentText('no review cursor', interrupt=True) self.env['runtime']['outputManager'].presentText(_('no review cursor'), interrupt=True)
return return
currMark = self.env['runtime']['cursorManager'].setMark() currMark = self.env['runtime']['cursorManager'].setMark()
if currMark == 1: if currMark == 1:
self.env['runtime']['outputManager'].presentText('set mark',soundIcon='PlaceStartMark', interrupt=True) self.env['runtime']['outputManager'].presentText(_('set mark'), soundIcon='PlaceStartMark', interrupt=True)
elif currMark == 2: elif currMark == 2:
self.env['runtime']['outputManager'].presentText('set mark',soundIcon='PlaceEndMark', interrupt=True) self.env['runtime']['outputManager'].presentText(_('set mark'),soundIcon='PlaceEndMark', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -14,15 +14,15 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'set Window Mode, needs 2 marks ' return _('set Window Mode, needs 2 marks ')
def run(self): def run(self):
if self.env['runtime']['cursorManager'].setWindowForApplication(): if self.env['runtime']['cursorManager'].setWindowForApplication():
currApp = self.env['runtime']['applicationManager'].getCurrentApplication() currApp = self.env['runtime']['applicationManager'].getCurrentApplication()
self.env['runtime']['outputManager'].presentText('Window Mode on for application ' + currApp, interrupt=True) self.env['runtime']['outputManager'].presentText(_('Window Mode on for application {0}').format(currApp), interrupt=True)
self.env['runtime']['cursorManager'].clearMarks() self.env['runtime']['cursorManager'].clearMarks()
else: else:
self.env['runtime']['outputManager'].presentText("Set window beginn and end marks", interrupt=True) self.env['runtime']['outputManager'].presentText(_("Set window begin and end marks"), interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -14,7 +14,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'interrupts the current presentation' return _('interrupts the current presentation')
def run(self): def run(self):
if len(self.env['input']['prevDeepestInput']) > len(self.env['input']['currInput']): if len(self.env['input']['prevDeepestInput']) > len(self.env['input']['currInput']):
return return

View File

@ -23,17 +23,17 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'checks the spelling of the current word' return _('checks the spelling of the current word')
def updateSpellLanguage(self): def updateSpellLanguage(self):
if not initialized: if not initialized:
self.env['runtime']['outputManager'].presentText('pychant is not installed', interrupt=True) self.env['runtime']['outputManager'].presentText(_('pyenchant is not installed'), interrupt=True)
return return
self.spellChecker = enchant.Dict(self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage')) self.spellChecker = enchant.Dict(self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage'))
self.language = self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage') self.language = self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage')
def run(self): def run(self):
if not initialized: if not initialized:
self.env['runtime']['outputManager'].presentText('pychant is not installed', interrupt=True) self.env['runtime']['outputManager'].presentText(_('pyenchant is not installed'), interrupt=True)
return return
if self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage') != self.language: if self.env['runtime']['settingsManager'].getSetting('general', 'spellCheckLanguage') != self.language:
try: try:
@ -49,8 +49,8 @@ class command():
if not currWord.isspace(): if not currWord.isspace():
if not self.spellChecker.check(currWord): if not self.spellChecker.check(currWord):
self.env['runtime']['outputManager'].presentText('misspelled',soundIcon='mispell', interrupt=True) self.env['runtime']['outputManager'].presentText(_('misspelled'),soundIcon='mispell', interrupt=True)
elif not ignore: elif not ignore:
self.env['runtime']['outputManager'].presentText('correct',soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_('correct'),soundIcon='', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -18,16 +18,16 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'script: ' + os.path.basename(self.scriptPath) + ' fullpath: '+ self.scriptPath return _('script: {0} fullpath: {1}').format(os.path.basename(self.scriptPath), self.scriptPath)
def run(self): def run(self):
if not os.path.exists(self.scriptPath): if not os.path.exists(self.scriptPath):
self.env['runtime']['outputManager'].presentText('scriptfile does not exist' , soundIcon='', interrupt=False) self.env['runtime']['outputManager'].presentText(_('scriptfile does not exist'), soundIcon='', interrupt=False)
return return
if not os.path.isfile(self.scriptPath): if not os.path.isfile(self.scriptPath):
self.env['runtime']['outputManager'].presentText('scriptfile is not a file' , soundIcon='', interrupt=False) self.env['runtime']['outputManager'].presentText(_('scriptfile is not a file'), soundIcon='', interrupt=False)
return return
if not os.access(self.scriptPath, os.X_OK): if not os.access(self.scriptPath, os.X_OK):
self.env['runtime']['outputManager'].presentText('scriptfile is not executable' , soundIcon='', interrupt=False) self.env['runtime']['outputManager'].presentText(_('scriptfile is not executable'), soundIcon='', interrupt=False)
return return
_thread.start_new_thread(self._threadRun , ()) _thread.start_new_thread(self._threadRun , ())

View File

@ -14,11 +14,11 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'disables speech until next keypress' return _('disables speech until next keypress')
def run(self): def run(self):
if self.env['runtime']['settingsManager'].getSettingAsBool('speech', 'enabled'): if self.env['runtime']['settingsManager'].getSettingAsBool('speech', 'enabled'):
self.env['runtime']['outputManager'].presentText("speech temporary disabled", soundIcon='SpeechOff', interrupt=True) self.env['runtime']['outputManager'].presentText(_("speech temporary disabled"), soundIcon='SpeechOff', interrupt=True)
self.env['commandBuffer']['enableSpeechOnKeypress'] = True self.env['commandBuffer']['enableSpeechOnKeypress'] = True
self.env['runtime']['settingsManager'].setSetting('speech', 'enabled', str(not self.env['runtime']['settingsManager'].getSettingAsBool('speech', 'enabled'))) self.env['runtime']['settingsManager'].setSetting('speech', 'enabled', str(not self.env['runtime']['settingsManager'].getSettingAsBool('speech', 'enabled')))
self.env['runtime']['outputManager'].interruptOutput() self.env['runtime']['outputManager'].interruptOutput()

View File

@ -15,7 +15,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'presents the time' return _('presents the time')
def run(self): def run(self):
timeFormat = self.env['runtime']['settingsManager'].getSetting('general', 'timeFormat') timeFormat = self.env['runtime']['settingsManager'].getSetting('general', 'timeFormat')

View File

@ -13,14 +13,14 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'enables or disables automatic reading of new text as it appears' return _('enables or disables automatic reading of new text as it appears')
def run(self): def run(self):
self.env['runtime']['settingsManager'].setSetting('speech', 'autoReadIncoming', str(not self.env['runtime']['settingsManager'].getSettingAsBool('speech', 'autoReadIncoming'))) self.env['runtime']['settingsManager'].setSetting('speech', 'autoReadIncoming', str(not self.env['runtime']['settingsManager'].getSettingAsBool('speech', 'autoReadIncoming')))
if self.env['runtime']['settingsManager'].getSettingAsBool('speech', 'autoReadIncoming'): if self.env['runtime']['settingsManager'].getSettingAsBool('speech', 'autoReadIncoming'):
self.env['runtime']['outputManager'].presentText("autoread enabled", soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_("autoread enabled"), soundIcon='', interrupt=True)
else: else:
self.env['runtime']['outputManager'].presentText("autoread disabled", soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_("autoread disabled"), soundIcon='', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -14,14 +14,14 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'enables or disables automatic spell checking' return _('enables or disables automatic spell checking')
def run(self): def run(self):
self.env['runtime']['settingsManager'].setSetting('general', 'autoSpellCheck', str(not self.env['runtime']['settingsManager'].getSettingAsBool('general', 'autoSpellCheck'))) self.env['runtime']['settingsManager'].setSetting('general', 'autoSpellCheck', str(not self.env['runtime']['settingsManager'].getSettingAsBool('general', 'autoSpellCheck')))
if self.env['runtime']['settingsManager'].getSettingAsBool('general', 'autoSpellCheck'): if self.env['runtime']['settingsManager'].getSettingAsBool('general', 'autoSpellCheck'):
self.env['runtime']['outputManager'].presentText("auto spellcheck enabled", soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_("auto spellcheck enabled"), soundIcon='', interrupt=True)
else: else:
self.env['runtime']['outputManager'].presentText("auto spellcheck disabled", soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_("auto spellcheck disabled"), soundIcon='', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -13,14 +13,14 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'enables or disables automatic reading of time after an period' return _('enables or disables automatic reading of time after an period')
def run(self): def run(self):
self.env['runtime']['settingsManager'].setSetting('time', 'enabled', str(not self.env['runtime']['settingsManager'].getSettingAsBool('time', 'enabled'))) self.env['runtime']['settingsManager'].setSetting('time', 'enabled', str(not self.env['runtime']['settingsManager'].getSettingAsBool('time', 'enabled')))
if self.env['runtime']['settingsManager'].getSettingAsBool('time', 'enabled'): if self.env['runtime']['settingsManager'].getSettingAsBool('time', 'enabled'):
self.env['runtime']['outputManager'].presentText("autotime enabled", soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_("autotime enabled"), soundIcon='', interrupt=True)
else: else:
self.env['runtime']['outputManager'].presentText("autotime disabled", soundIcon='', interrupt=True) self.env['runtime']['outputManager'].presentText(_("autotime disabled"), soundIcon='', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -14,7 +14,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'disables speech until next keypress' return _('disables speech until next keypress')
def run(self): def run(self):
if self.env['runtime']['inputManager'].noKeyPressed(): if self.env['runtime']['inputManager'].noKeyPressed():
@ -25,7 +25,7 @@ class command():
return return
self.env['runtime']['settingsManager'].setSetting('speech', 'enabled', str(self.env['commandBuffer']['enableSpeechOnKeypress'])) self.env['runtime']['settingsManager'].setSetting('speech', 'enabled', str(self.env['commandBuffer']['enableSpeechOnKeypress']))
self.env['commandBuffer']['enableSpeechOnKeypress'] = False self.env['commandBuffer']['enableSpeechOnKeypress'] = False
self.env['runtime']['outputManager'].presentText("speech enabled", soundIcon='SpeechOn', interrupt=True) self.env['runtime']['outputManager'].presentText(_("speech enabled"), soundIcon='SpeechOn', interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -35,7 +35,7 @@ class command():
x, y, currLine = line_utils.getCurrentLine(self.env['screenData']['newCursor']['x'], self.env['screenData']['newCursor']['y'], self.env['screenData']['newContentText']) x, y, currLine = line_utils.getCurrentLine(self.env['screenData']['newCursor']['x'], self.env['screenData']['newCursor']['y'], self.env['screenData']['newContentText'])
if currLine.isspace(): if currLine.isspace():
self.env['runtime']['outputManager'].presentText("blank", soundIcon='EmptyLine', interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), soundIcon='EmptyLine', interrupt=True, flush=False)
else: else:
self.env['runtime']['outputManager'].presentText(currLine, interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(currLine, interrupt=True, flush=False)

View File

@ -13,7 +13,7 @@ class command():
def shutdown(self): def shutdown(self):
pass pass
def getDescription(self): def getDescription(self):
return 'enables or disables tracking of highlighted' return _('enables or disables tracking of highlighted')
def run(self): def run(self):
if not self.env['runtime']['settingsManager'].getSettingAsBool('focus', 'highlight'): if not self.env['runtime']['settingsManager'].getSettingAsBool('focus', 'highlight'):

View File

@ -129,7 +129,7 @@ class command():
pass pass
if not self.spellChecker.check(currWord): if not self.spellChecker.check(currWord):
self.env['runtime']['outputManager'].presentText('misspelled',soundIcon='mispell', interrupt=False, flush=False) self.env['runtime']['outputManager'].presentText(_('misspelled'), soundIcon='mispell', interrupt=False, flush=False)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -47,7 +47,7 @@ class command():
announce = currLine announce = currLine
if currLine.isspace(): if currLine.isspace():
self.env['runtime']['outputManager'].presentText("blank", soundIcon='EmptyLine', interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("blank"), soundIcon='EmptyLine', interrupt=True, flush=False)
else: else:
self.env['runtime']['outputManager'].presentText(announce, interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(announce, interrupt=True, flush=False)
self.env['commandsIgnore']['onScreenUpdate']['CHAR_DELETE_ECHO'] = True self.env['commandsIgnore']['onScreenUpdate']['CHAR_DELETE_ECHO'] = True

View File

@ -19,9 +19,9 @@ class command():
if self.env['input']['oldCapsLock'] == self.env['input']['newCapsLock']: if self.env['input']['oldCapsLock'] == self.env['input']['newCapsLock']:
return return
if self.env['input']['newCapsLock']: if self.env['input']['newCapsLock']:
self.env['runtime']['outputManager'].presentText("Capslock on", interrupt=True) self.env['runtime']['outputManager'].presentText(_("Capslock on"), interrupt=True)
else: else:
self.env['runtime']['outputManager'].presentText("Capslock off", interrupt=True) self.env['runtime']['outputManager'].presentText(_("Capslock off"), interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -19,9 +19,9 @@ class command():
if self.env['input']['oldScrollLock'] == self.env['input']['newScrollLock']: if self.env['input']['oldScrollLock'] == self.env['input']['newScrollLock']:
return return
if self.env['input']['newScrollLock']: if self.env['input']['newScrollLock']:
self.env['runtime']['outputManager'].presentText("Scrolllock on", interrupt=True) self.env['runtime']['outputManager'].presentText(_("Scrolllock on"), interrupt=True)
else: else:
self.env['runtime']['outputManager'].presentText("Scrolllock off", interrupt=True) self.env['runtime']['outputManager'].presentText(_("Scrolllock off"), interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -19,9 +19,9 @@ class command():
if self.env['input']['oldNumLock'] == self.env['input']['newNumLock']: if self.env['input']['oldNumLock'] == self.env['input']['newNumLock']:
return return
if self.env['input']['newNumLock']: if self.env['input']['newNumLock']:
self.env['runtime']['outputManager'].presentText("Numlock on", interrupt=True) self.env['runtime']['outputManager'].presentText(_("Numlock on"), interrupt=True)
else: else:
self.env['runtime']['outputManager'].presentText("Numlock off", interrupt=True) self.env['runtime']['outputManager'].presentText(_("Numlock off"), interrupt=True)
def setCallback(self, callback): def setCallback(self, callback):
pass pass

View File

@ -17,7 +17,7 @@ class command():
return 'No Description found' return 'No Description found'
def run(self): def run(self):
self.env['runtime']['outputManager'].presentText("screen " + str(self.env['screenData']['newTTY']),soundIcon='ChangeTTY', interrupt=True, flush=False) self.env['runtime']['outputManager'].presentText(_("screen {0}").format(self.env['screenData']['newTTY']),soundIcon='ChangeTTY', interrupt=True, flush=False)
self.env['runtime']['outputManager'].presentText(self.env['screenData']['newContentText'], interrupt=False, flush=False) self.env['runtime']['outputManager'].presentText(self.env['screenData']['newContentText'], interrupt=False, flush=False)
def setCallback(self, callback): def setCallback(self, callback):

View File

@ -63,7 +63,7 @@ class command():
if presentTime: if presentTime:
# present the time # present the time
self.env['runtime']['outputManager'].presentText('Autotime: ' + timeString , soundIcon='', interrupt=False) self.env['runtime']['outputManager'].presentText(_('Autotime: {0}').format(timeString), soundIcon='', interrupt=False)
# and date if changes # and date if changes
if presentDate: if presentDate:
self.env['runtime']['outputManager'].presentText(dateString , soundIcon='', interrupt=False) self.env['runtime']['outputManager'].presentText(dateString , soundIcon='', interrupt=False)

View File

@ -15,38 +15,17 @@ class commandManager():
def initialize(self, environment): def initialize(self, environment):
self.env = environment self.env = environment
# commands # commands
self.env['runtime']['commandManager'].loadCommands('commands', for commandFolder in self.env['generalInformation']['commandFolderList']:
self.env['runtime']['settingsManager'].getSetting('general', 'commandPath')) self.env['runtime']['commandManager'].loadCommands(commandFolder,
self.env['runtime']['commandManager'].loadCommands('commands') self.env['runtime']['settingsManager'].getSetting('general', 'commandPath'))
# onInput self.env['runtime']['commandManager'].loadCommands(commandFolder)
self.env['runtime']['commandManager'].loadCommands('onInput',
self.env['runtime']['settingsManager'].getSetting('general', 'commandPath'))
self.env['runtime']['commandManager'].loadCommands('onInput')
# onScreenUpdate
self.env['runtime']['commandManager'].loadCommands('onScreenUpdate',
self.env['runtime']['settingsManager'].getSetting('general', 'commandPath'))
self.env['runtime']['commandManager'].loadCommands('onScreenUpdate')
# onScreenChanged
self.env['runtime']['commandManager'].loadCommands('onScreenChanged',
self.env['runtime']['settingsManager'].getSetting('general', 'commandPath'))
self.env['runtime']['commandManager'].loadCommands('onScreenChanged')
# onApplicationChange
self.env['runtime']['commandManager'].loadCommands('onApplicationChange',
self.env['runtime']['settingsManager'].getSetting('general', 'commandPath'))
self.env['runtime']['commandManager'].loadCommands('onApplicationChange')
# onSwitchApplicationProfile
self.env['runtime']['commandManager'].loadCommands('onSwitchApplicationProfile',
self.env['runtime']['settingsManager'].getSetting('general', 'commandPath'))
self.env['runtime']['commandManager'].loadCommands('onSwitchApplicationProfile')
# scripts for scriptKey # scripts for scriptKey
self.env['runtime']['commandManager'].loadScriptCommands() self.env['runtime']['commandManager'].loadScriptCommands()
def shutdown(self): def shutdown(self):
self.env['runtime']['commandManager'].shutdownCommands('commands') for commandFolder in self.env['generalInformation']['commandFolderList']:
self.env['runtime']['commandManager'].shutdownCommands('onInput') self.env['runtime']['commandManager'].shutdownCommands(commandFolder)
self.env['runtime']['commandManager'].shutdownCommands('onScreenUpdate')
self.env['runtime']['commandManager'].shutdownCommands('onScreenChanged')
self.env['runtime']['commandManager'].shutdownCommands('onApplicationChange')
self.env['runtime']['commandManager'].shutdownCommands('onSwitchApplicationProfile')
def loadCommands(self, section='commands',commandPath=''): def loadCommands(self, section='commands',commandPath=''):
if commandPath =='': if commandPath =='':

View File

@ -11,4 +11,8 @@ generalInformation = {
'tutorialMode': False, 'tutorialMode': False,
'currUser':'', 'currUser':'',
'prevUser':'', 'prevUser':'',
'managerList':['punctuationManager','cursorManager','applicationManager','commandManager'
,'screenManager','inputManager','outputManager','debug'],
'commandFolderList':['commands','onInput','onScreenUpdate','onScreenChanged'
,'onApplicationChange','onSwitchApplicationProfile',],
} }

View File

@ -21,7 +21,7 @@ class fenrir():
raise RuntimeError('Cannot Initialize. Maybe the configfile is not available or not parseable') raise RuntimeError('Cannot Initialize. Maybe the configfile is not available or not parseable')
except RuntimeError: except RuntimeError:
raise raise
self.environment['runtime']['outputManager'].presentText("Start Fenrir", soundIcon='ScreenReaderOn', interrupt=True) self.environment['runtime']['outputManager'].presentText(_("Start Fenrir"), soundIcon='ScreenReaderOn', interrupt=True)
signal.signal(signal.SIGINT, self.captureSignal) signal.signal(signal.SIGINT, self.captureSignal)
signal.signal(signal.SIGTERM, self.captureSignal) signal.signal(signal.SIGTERM, self.captureSignal)
self.wasCommand = False self.wasCommand = False
@ -35,8 +35,8 @@ class fenrir():
self.shutdown() self.shutdown()
def handleProcess(self): def handleProcess(self):
#startTime = time.time()
eventReceived = self.environment['runtime']['inputManager'].getInputEvent() eventReceived = self.environment['runtime']['inputManager'].getInputEvent()
startTime = time.time()
if eventReceived: if eventReceived:
self.prepareCommand() self.prepareCommand()
if not (self.wasCommand or self.environment['generalInformation']['tutorialMode']) or self.environment['runtime']['screenManager'].isSuspendingScreen(): if not (self.wasCommand or self.environment['generalInformation']['tutorialMode']) or self.environment['runtime']['screenManager'].isSuspendingScreen():
@ -65,7 +65,7 @@ class fenrir():
self.environment['runtime']['commandManager'].executeDefaultTrigger('onScreenUpdate') self.environment['runtime']['commandManager'].executeDefaultTrigger('onScreenUpdate')
#self.environment['runtime']['outputManager'].brailleText(flush=False) #self.environment['runtime']['outputManager'].brailleText(flush=False)
self.handleCommands() self.handleCommands()
#print(time.time()-startTime) print(time.time()-startTime)
def prepareCommand(self): def prepareCommand(self):
if self.environment['runtime']['screenManager'].isSuspendingScreen(): if self.environment['runtime']['screenManager'].isSuspendingScreen():
@ -84,7 +84,6 @@ class fenrir():
self.environment['runtime']['commandManager'].queueCommand(command) self.environment['runtime']['commandManager'].queueCommand(command)
def handleCommands(self): def handleCommands(self):
if not self.environment['runtime']['commandManager'].isCommandQueued(): if not self.environment['runtime']['commandManager'].isCommandQueued():
return return
@ -97,35 +96,11 @@ class fenrir():
self.shutdownRequest() self.shutdownRequest()
def shutdown(self): def shutdown(self):
if self.environment['runtime']['inputManager']: self.environment['runtime']['outputManager'].presentText(_("Quit Fenrir"), soundIcon='ScreenReaderOff', interrupt=True)
self.environment['runtime']['inputManager'].shutdown() for currManager in self.environment['generalInformation']['managerList']:
del self.environment['runtime']['inputManager'] if self.environment['runtime'][currManager]:
self.environment['runtime']['outputManager'].presentText("Quit Fenrir", soundIcon='ScreenReaderOff', interrupt=True) self.environment['runtime'][currManager].shutdown()
time.sleep(0.9) # wait a little for sound del self.environment['runtime'][currManager]
if self.environment['runtime']['screenManager']:
self.environment['runtime']['screenManager'].shutdown()
del self.environment['runtime']['screenManager']
if self.environment['runtime']['commandManager']:
self.environment['runtime']['commandManager'].shutdown()
del self.environment['runtime']['commandManager']
if self.environment['runtime']['outputManager']:
self.environment['runtime']['outputManager'].shutdown()
del self.environment['runtime']['outputManager']
if self.environment['runtime']['punctuationManager']:
self.environment['runtime']['punctuationManager'].shutdown()
del self.environment['runtime']['punctuationManager']
if self.environment['runtime']['cursorManager']:
self.environment['runtime']['cursorManager'].shutdown()
del self.environment['runtime']['cursorManager']
if self.environment['runtime']['applicationManager']:
self.environment['runtime']['applicationManager'].shutdown()
del self.environment['runtime']['applicationManager']
if self.environment['runtime']['debug']:
self.environment['runtime']['debug'].shutdown()
del self.environment['runtime']['debug']
time.sleep(0.2) # wait a little before splatter it :)
self.environment = None self.environment = None
def main(): def main():

View File

@ -22,7 +22,6 @@ class driver():
def __init__(self): def __init__(self):
self.iDevices = {} self.iDevices = {}
self.uDevices = {} self.uDevices = {}
self.ledDevices = {}
self._initialized = False self._initialized = False
def initialize(self, environment): def initialize(self, environment):
@ -36,21 +35,24 @@ class driver():
self.getInputDevices() self.getInputDevices()
def shutdown(self): def shutdown(self):
pass
def getInputEvent(self):
if not self._initialized: if not self._initialized:
time.sleep(0.005) # dont flood CPU return
return None def getInputEvent(self):
if not self.iDevices:
return None
if self.iDevices == {}:
return None
if not self.hasIDevices():
time.sleep(0.008) # dont flood CPU
return None
event = None event = None
r, w, x = select(self.iDevices, [], [], self.env['runtime']['settingsManager'].getSettingAsFloat('screen', 'screenUpdateDelay')) r, w, x = select(self.iDevices, [], [], self.env['runtime']['settingsManager'].getSettingAsFloat('screen', 'screenUpdateDelay'))
if r != []: if r != []:
for fd in r: for fd in r:
event = self.iDevices[fd].read_one() try:
event = self.iDevices[fd].read_one()
except:
#print('jow')
self.removeDevice(fd)
return None
foreward = False foreward = False
while(event): while(event):
self.env['input']['eventBuffer'].append( [self.iDevices[fd], self.uDevices[fd], event]) self.env['input']['eventBuffer'].append( [self.iDevices[fd], self.uDevices[fd], event])
@ -107,21 +109,17 @@ class driver():
except Exception as e: except Exception as e:
self.env['runtime']['debug'].writeDebugOut("Skip Inputdevice : " + dev +' ' + str(e),debug.debugLevel.ERROR) self.env['runtime']['debug'].writeDebugOut("Skip Inputdevice : " + dev +' ' + str(e),debug.debugLevel.ERROR)
self.iDevices = map(evdev.InputDevice, (readableDevices)) self.iDevices = map(evdev.InputDevice, (readableDevices))
self.ledDevices = map(evdev.InputDevice, (readableDevices))
# 3 pos absolute # 3 pos absolute
# 2 pos relative # 2 pos relative
# 17 LEDs
# 1 Keys # 1 Keys
# we try to filter out mices and other stuff here # we try to filter out mices and other stuff here
if self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper() == 'ALL': if self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper() == 'ALL':
self.iDevices = {dev.fd: dev for dev in self.iDevices if 1 in dev.capabilities()} self.iDevices = {dev.fd: dev for dev in self.iDevices if 1 in dev.capabilities()}
self.ledDevices = {dev.fd: dev for dev in self.ledDevices if 1 in dev.capabilities() and 17 in dev.capabilities()}
elif self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper() == 'NOMICE': elif self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper() == 'NOMICE':
self.iDevices = {dev.fd: dev for dev in self.iDevices if 1 in dev.capabilities() and not 3 in dev.capabilities() and not 2 in dev.capabilities()} self.iDevices = {dev.fd: dev for dev in self.iDevices if 1 in dev.capabilities() and not 3 in dev.capabilities() and not 2 in dev.capabilities()}
self.ledDevices = {dev.fd: dev for dev in self.ledDevices if 1 in dev.capabilities() and 17 in dev.capabilities() and not 3 in dev.capabilities() and not 2 in dev.capabilities()}
else: else:
self.iDevices = {dev.fd: dev for dev in self.iDevices if dev.name.upper() in self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper().split(',')} self.iDevices = {dev.fd: dev for dev in self.iDevices if dev.name.upper() in self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper().split(',')}
self.ledDevices = {dev.fd: dev for dev in self.ledDevices if dev.name.upper() in self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper().split(',')}
def mapEvent(self, event): def mapEvent(self, event):
if not self._initialized: if not self._initialized:
@ -140,30 +138,29 @@ class driver():
return None return None
def getLedState(self, led = 0): def getLedState(self, led = 0):
if not self._initialized: if not self.hasIDevices():
return None return False
# 0 = Numlock # 0 = Numlock
# 1 = Capslock # 1 = Capslock
# 2 = Rollen # 2 = Rollen
if self.ledDevices == None: for fd, dev in self.iDevices.items():
return False if led in dev.leds():
if self.ledDevices == {}: return True
return False
for fd, dev in self.ledDevices.items():
return led in dev.leds()
return False return False
def toggleLedState(self, led = 0): def toggleLedState(self, led = 0):
if not self._initialized: if not self.hasIDevices():
return None return False
ledState = self.getLedState(led) ledState = self.getLedState(led)
for i in self.ledDevices: for i in self.iDevices:
if ledState == 1: # 17 LEDs
self.ledDevices[i].set_led(led , 0) if 17 in self.iDevices[i].capabilities():
else: if ledState == 1:
self.ledDevices[i].set_led(led , 1) self.iDevices[i].set_led(led , 0)
else:
self.iDevices[i].set_led(led , 1)
def grabDevices(self): def grabDevices(self):
if not self._initialized: if not self._initialized:
return None return
for fd in self.iDevices: for fd in self.iDevices:
try: try:
self.uDevices[fd] = UInput.from_device(self.iDevices[fd].fn) self.uDevices[fd] = UInput.from_device(self.iDevices[fd].fn)
@ -199,30 +196,47 @@ class driver():
# #'/dev/uinput' # #'/dev/uinput'
# ) # )
# dev.grab() # dev.grab()
def removeDevice(self,fd):
def releaseDevices(self): try:
self.iDevices[fd].ungrab()
except:
pass
try:
self.iDevices[fd].close()
except:
pass
try:
self.uDevices[fd].close()
except:
pass
try:
del(self.iDevices[fd])
except:
pass
try:
del(self.uDevices[fd])
except:
pass
def hasIDevices(self):
if not self._initialized: if not self._initialized:
return None return False
for fd in self.iDevices: if not self.iDevices:
try: return False
self.iDevices[fd].ungrab() if len(self.iDevices) == 0:
except: return False
pass return True
try:
self.iDevices[fd].close() def releaseDevices(self):
except: if not self.hasIDevices():
pass return
try: devices = self.iDevices.copy()
self.uDevices[fd].close() for fd in devices:
except: self.removeDevice(fd)
pass
self.iDevices.clear() self.iDevices.clear()
self.uDevices.clear() self.uDevices.clear()
def __del__(self): def __del__(self):
if not self._initialized: if not self._initialized:
return None return
self.releaseDevices()

View File

@ -17,6 +17,7 @@ from utils import screen_utils
class driver(): class driver():
def __init__(self): def __init__(self):
self.vcsaDevicePath = '/dev/vcsa' self.vcsaDevicePath = '/dev/vcsa'
self.ListSessions = None
def initialize(self, environment): def initialize(self, environment):
self.env = environment self.env = environment
def shutdown(self): def shutdown(self):
@ -62,24 +63,18 @@ class driver():
return return
except Exception as e: except Exception as e:
self.env['runtime']['debug'].writeDebugOut(str(e),debug.debugLevel.ERROR) self.env['runtime']['debug'].writeDebugOut(str(e),debug.debugLevel.ERROR)
return
def getSessionInformation(self): def getSessionInformation(self):
progname = 'org.freedesktop.login1'
objpath = '/org/freedesktop/login1'
intfname = 'org.freedesktop.login1.Manager'
methname = 'ListSessions'
bus = dbus.SystemBus() bus = dbus.SystemBus()
if not self.ListSessions:
obj = bus.get_object(progname, objpath) obj = bus.get_object('org.freedesktop.login1', '/org/freedesktop/login1')
inf = dbus.Interface(obj, intfname) inf = dbus.Interface(obj, 'org.freedesktop.login1.Manager')
meth = inf.get_dbus_method(methname) self.ListSessions = inf.get_dbus_method('ListSessions')
sessions = meth() sessions = self.ListSessions()
self.env['screenData']['autoIgnoreScreens'] = [] self.env['screenData']['autoIgnoreScreens'] = []
for session in sessions: for session in sessions:
obj = bus.get_object(progname, session[4]) obj = bus.get_object('org.freedesktop.login1', session[4])
inf = dbus.Interface(obj, 'org.freedesktop.DBus.Properties') inf = dbus.Interface(obj, 'org.freedesktop.DBus.Properties')
sessionType = inf.Get('org.freedesktop.login1.Session', 'Type') sessionType = inf.Get('org.freedesktop.login1.Session', 'Type')
screen = str(inf.Get('org.freedesktop.login1.Session', 'TTY')) screen = str(inf.Get('org.freedesktop.login1.Session', 'TTY'))

View File

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2017-02-20 10:45+UTC\n" "POT-Creation-Date: 2017-02-26 22:19+UTC\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -20,6 +20,9 @@ msgid "adds the current word to the exceptions dictionary"
msgstr "" msgstr ""
#: ../src/fenrir/commands/commands/add_word_to_spell_check.py:34 #: ../src/fenrir/commands/commands/add_word_to_spell_check.py:34
#: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:34
#: ../src/fenrir/commands/commands/spell_check.py:29
#: ../src/fenrir/commands/commands/spell_check.py:36
msgid "pyenchant is not installed" msgid "pyenchant is not installed"
msgstr "" msgstr ""
@ -92,6 +95,24 @@ msgstr ""
#: ../src/fenrir/commands/commands/bookmark_9.py:43 #: ../src/fenrir/commands/commands/bookmark_9.py:43
#: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:27 #: ../src/fenrir/commands/commands/curr_screen_after_cursor.py:27
#: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:30 #: ../src/fenrir/commands/commands/curr_screen_before_cursor.py:30
#: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:27
#: ../src/fenrir/commands/commands/indent_curr_line.py:31
#: ../src/fenrir/commands/commands/marked_text.py:33
#: ../src/fenrir/commands/commands/present_first_line.py:25
#: ../src/fenrir/commands/commands/present_last_line.py:25
#: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:27
#: ../src/fenrir/commands/commands/review_curr_line.py:27
#: ../src/fenrir/commands/commands/review_curr_word.py:27
#: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:27
#: ../src/fenrir/commands/commands/review_line_begin.py:27
#: ../src/fenrir/commands/commands/review_next_line.py:29
#: ../src/fenrir/commands/commands/review_next_word.py:29
#: ../src/fenrir/commands/commands/review_next_word_phonetic.py:27
#: ../src/fenrir/commands/commands/review_prev_line.py:27
#: ../src/fenrir/commands/commands/review_prev_word.py:27
#: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:27
#: ../src/fenrir/commands/onInput/55000-present_line_if_cursor_change_vertical.py:38
#: ../src/fenrir/commands/onInput/72000-history.py:50
msgid "blank" msgid "blank"
msgstr "" msgstr ""
@ -170,6 +191,18 @@ msgid "speaks the contents of the currently selected clipboard"
msgstr "" msgstr ""
#: ../src/fenrir/commands/commands/curr_clipboard.py:21 #: ../src/fenrir/commands/commands/curr_clipboard.py:21
#: ../src/fenrir/commands/commands/export_clipboard_to_x.py:29
#: ../src/fenrir/commands/commands/export_clipboard_to_x.py:32
#: ../src/fenrir/commands/commands/export_clipboard_to_x.py:35
#: ../src/fenrir/commands/commands/export_clipboard_to_x.py:38
#: ../src/fenrir/commands/commands/first_clipboard.py:21
#: ../src/fenrir/commands/commands/last_clipboard.py:21
#: ../src/fenrir/commands/commands/next_clipboard.py:21
#: ../src/fenrir/commands/commands/paste_clipboard.py:23
#: ../src/fenrir/commands/commands/paste_clipboard.py:26
#: ../src/fenrir/commands/commands/paste_clipboard.py:29
#: ../src/fenrir/commands/commands/paste_clipboard.py:32
#: ../src/fenrir/commands/commands/prev_clipboard.py:21
msgid "clipboard empty" msgid "clipboard empty"
msgstr "" msgstr ""
@ -197,6 +230,460 @@ msgstr ""
msgid "presents the current line number for review cursor in review mode or the text cursor if not. Starts with 1" msgid "presents the current line number for review cursor in review mode or the text cursor if not. Starts with 1"
msgstr "" msgstr ""
#: ../src/fenrir/commands/commands/cursor_position.py:17
msgid "displays the position of the review cursor"
msgstr ""
#: ../src/fenrir/commands/commands/cursor_position.py:23
msgid "line {0}, column {1}"
msgstr ""
#: ../src/fenrir/commands/commands/cursor_read_to_end_of_line.py:18
msgid "read to end of line, use review cursor if you are in review mode, otherwhise use text cursor"
msgstr ""
#: ../src/fenrir/commands/commands/date.py:18
msgid "presents the date"
msgstr ""
#: ../src/fenrir/commands/commands/dec_sound_volume.py:18
msgid "decrease sound volume"
msgstr ""
#: ../src/fenrir/commands/commands/dec_sound_volume.py:29
#: ../src/fenrir/commands/commands/inc_sound_volume.py:29
msgid "{0} percent sound volume"
msgstr ""
#: ../src/fenrir/commands/commands/dec_speech_pitch.py:18
msgid "decreases the pitch of the speech"
msgstr ""
#: ../src/fenrir/commands/commands/dec_speech_pitch.py:27
#: ../src/fenrir/commands/commands/inc_speech_pitch.py:27
msgid "{0} percent speech pitch"
msgstr ""
#: ../src/fenrir/commands/commands/dec_speech_rate.py:18
msgid "decreases the rate of the speech"
msgstr ""
#: ../src/fenrir/commands/commands/dec_speech_rate.py:27
#: ../src/fenrir/commands/commands/inc_speech_rate.py:27
msgid "{0} percent speech rate"
msgstr ""
#: ../src/fenrir/commands/commands/dec_speech_volume.py:18
msgid "decreases the volume of the speech"
msgstr ""
#: ../src/fenrir/commands/commands/dec_speech_volume.py:27
#: ../src/fenrir/commands/commands/inc_speech_volume.py:27
msgid "{0} percent speech volume"
msgstr ""
#: ../src/fenrir/commands/commands/exit_review.py:17
msgid "exits review mode"
msgstr ""
#: ../src/fenrir/commands/commands/exit_review.py:21
msgid "Not in review mode"
msgstr ""
#: ../src/fenrir/commands/commands/exit_review.py:25
msgid "leave review mode"
msgstr ""
#: ../src/fenrir/commands/commands/export_clipboard_to_x.py:21
msgid "export the current fenrir clipboard to X clipboard"
msgstr ""
#: ../src/fenrir/commands/commands/first_clipboard.py:17
msgid "selects the first clipboard"
msgstr ""
#: ../src/fenrir/commands/commands/forward_keypress.py:17
msgid "sends the following keypress to the terminal"
msgstr ""
#: ../src/fenrir/commands/commands/forward_keypress.py:21
msgid "Forward next keypress"
msgstr ""
#: ../src/fenrir/commands/commands/inc_sound_volume.py:18
msgid "adjusts the volume for in coming sounds"
msgstr ""
#: ../src/fenrir/commands/commands/inc_speech_pitch.py:18
msgid "increases the pitch of the speech"
msgstr ""
#: ../src/fenrir/commands/commands/inc_speech_rate.py:18
msgid "increase the speech rate"
msgstr ""
#: ../src/fenrir/commands/commands/inc_speech_volume.py:18
msgid "increase the speech volume"
msgstr ""
#: ../src/fenrir/commands/commands/indent_curr_line.py:18
msgid "shows the indention level for the current line"
msgstr ""
#: ../src/fenrir/commands/commands/indent_curr_line.py:33
msgid "indent {0}"
msgstr ""
#: ../src/fenrir/commands/commands/last_clipboard.py:17
msgid "selects the last clipboard"
msgstr ""
#: ../src/fenrir/commands/commands/last_incoming.py:17
msgid "displays the last received text"
msgstr ""
#: ../src/fenrir/commands/commands/marked_text.py:18
msgid "speaks the currently selected text that will be copied to the clipboard"
msgstr ""
#: ../src/fenrir/commands/commands/marked_text.py:23
msgid "please set begin and endmark"
msgstr ""
#: ../src/fenrir/commands/commands/next_clipboard.py:17
msgid "selects the next clipboard"
msgstr ""
#: ../src/fenrir/commands/commands/next_clipboard.py:26
msgid "First clipboard "
msgstr ""
#: ../src/fenrir/commands/commands/paste_clipboard.py:18
msgid "pastes the text from the currently selected clipboard"
msgstr ""
#: ../src/fenrir/commands/commands/present_first_line.py:18
msgid "present first line"
msgstr ""
#: ../src/fenrir/commands/commands/present_last_line.py:18
#: ../src/fenrir/commands/commands/review_curr_line.py:18
msgid "current line"
msgstr ""
#: ../src/fenrir/commands/commands/prev_clipboard.py:17
msgid "selects the previous clipboard"
msgstr ""
#: ../src/fenrir/commands/commands/prev_clipboard.py:26
msgid "Last clipboard "
msgstr ""
#: ../src/fenrir/commands/commands/quit_fenrir.py:17
msgid "exits Fenrir"
msgstr ""
#: ../src/fenrir/commands/commands/remove_marks.py:17
msgid "removes marks from selected text"
msgstr ""
#: ../src/fenrir/commands/commands/remove_marks.py:21
msgid "Remove marks"
msgstr ""
#: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:27
msgid "removes the current word from the exceptions dictionary"
msgstr ""
#: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:50
msgid "{0} is already removed from dict"
msgstr ""
#: ../src/fenrir/commands/commands/remove_word_from_spell_check.py:53
msgid "{0} removed"
msgstr ""
#: ../src/fenrir/commands/commands/review_bottom.py:17
msgid "move review to bottom of screen"
msgstr ""
#: ../src/fenrir/commands/commands/review_bottom.py:21
msgid "Bottom"
msgstr ""
#: ../src/fenrir/commands/commands/review_curr_char.py:18
msgid "presents the current character."
msgstr ""
#: ../src/fenrir/commands/commands/review_curr_char_phonetic.py:18
msgid "set review and phonetically presents the current character"
msgstr ""
#: ../src/fenrir/commands/commands/review_curr_word.py:18
msgid "current word."
msgstr ""
#: ../src/fenrir/commands/commands/review_curr_word.py:32
#: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:36
#: ../src/fenrir/commands/commands/review_down.py:27
#: ../src/fenrir/commands/commands/review_next_char.py:28
#: ../src/fenrir/commands/commands/review_next_char_phonetic.py:30
#: ../src/fenrir/commands/commands/review_next_line.py:34
#: ../src/fenrir/commands/commands/review_next_word.py:34
#: ../src/fenrir/commands/commands/review_next_word_phonetic.py:36
#: ../src/fenrir/commands/commands/review_prev_char.py:31
#: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:30
#: ../src/fenrir/commands/commands/review_prev_line.py:32
#: ../src/fenrir/commands/commands/review_prev_word.py:32
#: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:36
#: ../src/fenrir/commands/commands/review_up.py:27
msgid "end of screen"
msgstr ""
#: ../src/fenrir/commands/commands/review_curr_word.py:35
#: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:39
#: ../src/fenrir/commands/commands/review_next_char.py:31
#: ../src/fenrir/commands/commands/review_next_char_phonetic.py:33
#: ../src/fenrir/commands/commands/review_next_word.py:37
#: ../src/fenrir/commands/commands/review_next_word_phonetic.py:39
#: ../src/fenrir/commands/commands/review_prev_char.py:34
#: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:33
#: ../src/fenrir/commands/commands/review_prev_word.py:35
#: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:39
#: ../src/fenrir/commands/commands/review_up.py:30
msgid "line break"
msgstr ""
#: ../src/fenrir/commands/commands/review_curr_word_phonetic.py:19
#: ../src/fenrir/commands/commands/review_next_word_phonetic.py:19
#: ../src/fenrir/commands/commands/review_prev_word_phonetic.py:19
msgid "phonetically spells the current word and set review to it"
msgstr ""
#: ../src/fenrir/commands/commands/review_down.py:18
msgid "set review cursor to char below the current char and present it."
msgstr ""
#: ../src/fenrir/commands/commands/review_line_begin.py:18
msgid "set review cursor to begin of current line and display the content"
msgstr ""
#: ../src/fenrir/commands/commands/review_line_begin.py:30
msgid "beginning of line"
msgstr ""
#: ../src/fenrir/commands/commands/review_line_end.py:18
#: ../src/fenrir/commands/commands/review_line_first_char.py:19
#: ../src/fenrir/commands/commands/review_line_last_char.py:18
msgid "set review cursor to end of current line and display the content"
msgstr ""
#: ../src/fenrir/commands/commands/review_line_end.py:27
msgid "end of line"
msgstr ""
#: ../src/fenrir/commands/commands/review_line_first_char.py:26
msgid "line is empty"
msgstr ""
#: ../src/fenrir/commands/commands/review_line_first_char.py:33
msgid "first char in line indent {0}"
msgstr ""
#: ../src/fenrir/commands/commands/review_line_last_char.py:27
msgid "last char in line"
msgstr ""
#: ../src/fenrir/commands/commands/review_next_char.py:18
msgid "moves review to the next character and presents it"
msgstr ""
#: ../src/fenrir/commands/commands/review_next_char_phonetic.py:18
msgid "phonetically presents the next character and set review to it"
msgstr ""
#: ../src/fenrir/commands/commands/review_next_line.py:18
msgid "moves review to the next line and presents it"
msgstr ""
#: ../src/fenrir/commands/commands/review_next_word.py:18
msgid "moves review to the next word and presents it"
msgstr ""
#: ../src/fenrir/commands/commands/review_prev_char.py:18
msgid "moves review to the previous character and presents it"
msgstr ""
#: ../src/fenrir/commands/commands/review_prev_char_phonetic.py:18
msgid "phonetically presents the previous character and set review to it"
msgstr ""
#: ../src/fenrir/commands/commands/review_prev_line.py:18
msgid "moves review to the previous line and presents it"
msgstr ""
#: ../src/fenrir/commands/commands/review_prev_word.py:18
msgid "moves review focus to the previous word and presents it"
msgstr ""
#: ../src/fenrir/commands/commands/review_top.py:18
msgid "move review to top of screen"
msgstr ""
#: ../src/fenrir/commands/commands/review_top.py:22
msgid "Top"
msgstr ""
#: ../src/fenrir/commands/commands/review_up.py:18
msgid "set review cursor to the char in the line below and present it"
msgstr ""
#: ../src/fenrir/commands/commands/set_bookmark_1.py:18
#: ../src/fenrir/commands/commands/set_bookmark_10.py:18
#: ../src/fenrir/commands/commands/set_bookmark_2.py:18
#: ../src/fenrir/commands/commands/set_bookmark_3.py:18
#: ../src/fenrir/commands/commands/set_bookmark_4.py:18
#: ../src/fenrir/commands/commands/set_bookmark_5.py:18
#: ../src/fenrir/commands/commands/set_bookmark_6.py:18
#: ../src/fenrir/commands/commands/set_bookmark_7.py:18
#: ../src/fenrir/commands/commands/set_bookmark_8.py:18
#: ../src/fenrir/commands/commands/set_bookmark_9.py:18
msgid "set Bookmark {0}"
msgstr ""
#: ../src/fenrir/commands/commands/set_bookmark_1.py:22
#: ../src/fenrir/commands/commands/set_bookmark_10.py:22
#: ../src/fenrir/commands/commands/set_bookmark_2.py:22
#: ../src/fenrir/commands/commands/set_bookmark_3.py:22
#: ../src/fenrir/commands/commands/set_bookmark_4.py:22
#: ../src/fenrir/commands/commands/set_bookmark_5.py:22
#: ../src/fenrir/commands/commands/set_bookmark_6.py:22
#: ../src/fenrir/commands/commands/set_bookmark_7.py:22
#: ../src/fenrir/commands/commands/set_bookmark_8.py:22
#: ../src/fenrir/commands/commands/set_bookmark_9.py:22
msgid "No Mark found"
msgstr ""
#: ../src/fenrir/commands/commands/set_bookmark_1.py:32
#: ../src/fenrir/commands/commands/set_bookmark_10.py:32
#: ../src/fenrir/commands/commands/set_bookmark_2.py:32
#: ../src/fenrir/commands/commands/set_bookmark_3.py:32
#: ../src/fenrir/commands/commands/set_bookmark_4.py:32
#: ../src/fenrir/commands/commands/set_bookmark_5.py:32
#: ../src/fenrir/commands/commands/set_bookmark_6.py:32
#: ../src/fenrir/commands/commands/set_bookmark_7.py:32
#: ../src/fenrir/commands/commands/set_bookmark_8.py:32
#: ../src/fenrir/commands/commands/set_bookmark_9.py:32
msgid "Bookmark {0} set for application {1}"
msgstr ""
#: ../src/fenrir/commands/commands/set_mark.py:17
msgid "places marks to select text to copy to the clipboard"
msgstr ""
#: ../src/fenrir/commands/commands/set_mark.py:21
msgid "no review cursor"
msgstr ""
#: ../src/fenrir/commands/commands/set_mark.py:26
#: ../src/fenrir/commands/commands/set_mark.py:28
msgid "set mark"
msgstr ""
#: ../src/fenrir/commands/commands/set_window_application.py:17
msgid "set Window Mode, needs 2 marks "
msgstr ""
#: ../src/fenrir/commands/commands/set_window_application.py:22
msgid "Window Mode on for application {0}"
msgstr ""
#: ../src/fenrir/commands/commands/set_window_application.py:25
msgid "Set window begin and end marks"
msgstr ""
#: ../src/fenrir/commands/commands/shut_up.py:17
msgid "interrupts the current presentation"
msgstr ""
#: ../src/fenrir/commands/commands/spell_check.py:26
msgid "checks the spelling of the current word"
msgstr ""
#: ../src/fenrir/commands/commands/spell_check.py:52
#: ../src/fenrir/commands/onInput/62000-spell_check.py:132
msgid "misspelled"
msgstr ""
#: ../src/fenrir/commands/commands/spell_check.py:54
msgid "correct"
msgstr ""
#: ../src/fenrir/commands/commands/subprocess.py:21
msgid "script: {0} fullpath: {1}"
msgstr ""
#: ../src/fenrir/commands/commands/subprocess.py:24
msgid "scriptfile does not exist"
msgstr ""
#: ../src/fenrir/commands/commands/subprocess.py:27
msgid "scriptfile is not a file"
msgstr ""
#: ../src/fenrir/commands/commands/subprocess.py:30
msgid "scriptfile is not executable"
msgstr ""
#: ../src/fenrir/commands/commands/temp_disable_speech.py:17
#: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:17
msgid "disables speech until next keypress"
msgstr ""
#: ../src/fenrir/commands/commands/temp_disable_speech.py:21
msgid "speech temporary disabled"
msgstr ""
#: ../src/fenrir/commands/commands/time.py:18
msgid "presents the time"
msgstr ""
#: ../src/fenrir/commands/commands/toggle_auto_read.py:16
msgid "enables or disables automatic reading of new text as it appears"
msgstr ""
#: ../src/fenrir/commands/commands/toggle_auto_read.py:21
msgid "autoread enabled"
msgstr ""
#: ../src/fenrir/commands/commands/toggle_auto_read.py:23
msgid "autoread disabled"
msgstr ""
#: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:17
msgid "enables or disables automatic spell checking"
msgstr ""
#: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:22
msgid "auto spellcheck enabled"
msgstr ""
#: ../src/fenrir/commands/commands/toggle_auto_spell_check.py:24
msgid "auto spellcheck disabled"
msgstr ""
#: ../src/fenrir/commands/commands/toggle_auto_time.py:16
msgid "enables or disables automatic reading of time after an period"
msgstr ""
#: ../src/fenrir/commands/commands/toggle_auto_time.py:21
msgid "autotime enabled"
msgstr ""
#: ../src/fenrir/commands/commands/toggle_auto_time.py:23
msgid "autotime disabled"
msgstr ""
#: ../src/fenrir/commands/commands/toggle_braille.py:17 #: ../src/fenrir/commands/commands/toggle_braille.py:17
msgid "enables and disables output in braille" msgid "enables and disables output in braille"
msgstr "" msgstr ""
@ -222,6 +709,7 @@ msgid "emoticons disabled"
msgstr "" msgstr ""
#: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:16 #: ../src/fenrir/commands/commands/toggle_highlight_tracking.py:16
#: ../src/fenrir/commands/onInput/56000-highlight_tracking.py:16
msgid "enables or disables tracking of highlighted" msgid "enables or disables tracking of highlighted"
msgstr "" msgstr ""
@ -270,6 +758,7 @@ msgid "speech disabled"
msgstr "" msgstr ""
#: ../src/fenrir/commands/commands/toggle_speech.py:24 #: ../src/fenrir/commands/commands/toggle_speech.py:24
#: ../src/fenrir/commands/onInput/15000-enable_temp_speech.py:28
msgid "speech enabled" msgid "speech enabled"
msgstr "" msgstr ""
@ -281,3 +770,44 @@ msgstr ""
msgid "you entered the tutorial mode. In that mode the commands are not executed. but you get a description of what the shortcut does. To leave the tutorial mode, press that shortcut again." msgid "you entered the tutorial mode. In that mode the commands are not executed. but you get a description of what the shortcut does. To leave the tutorial mode, press that shortcut again."
msgstr "" msgstr ""
#: ../src/fenrir/commands/onInput/80000-capslock.py:22
msgid "Capslock on"
msgstr ""
#: ../src/fenrir/commands/onInput/80000-capslock.py:24
msgid "Capslock off"
msgstr ""
#: ../src/fenrir/commands/onInput/80300-scrolllock.py:22
msgid "Scrolllock on"
msgstr ""
#: ../src/fenrir/commands/onInput/80300-scrolllock.py:24
msgid "Scrolllock off"
msgstr ""
#: ../src/fenrir/commands/onInput/80500-numlock.py:22
msgid "Numlock on"
msgstr ""
#: ../src/fenrir/commands/onInput/80500-numlock.py:24
msgid "Numlock off"
msgstr ""
#:
#: ../src/fenrir/commands/onScreenChanged/80000-screen_change_announcement.py:20
msgid "screen {0}"
msgstr ""
#: ../src/fenrir/commands/onScreenUpdate/76000-time.py:66
msgid "Autotime: {0}"
msgstr ""
#: ../src/fenrir/fenrir.py:24
msgid "Start Fenrir"
msgstr ""
#: ../src/fenrir/fenrir.py:99
msgid "Quit Fenrir"
msgstr ""