Final python based merge.
This commit is contained in:
commit
fdfafa87d4
218 files changed
+8139
-1521
No files matched your search
@@ -8,6 +8,28 @@
|
||||
|
||||
**Exception**: Never break core accessibility (speech output, basic navigation).
|
||||
|
||||
## Translation Maintenance
|
||||
|
||||
- Make all new or changed user-facing messages translatable, including speech
|
||||
announcements, help, command descriptions, menus, and errors. Import `_` and
|
||||
`ngettext` as needed from `fenrirscreenreader.core.i18n`.
|
||||
- Translate complete literal messages before formatting values, for example
|
||||
`_("Loading voices for {module}").format(module=module)`. Avoid translated
|
||||
sentence fragments, f-strings inside `_()`, and formatting before translation.
|
||||
Use `ngettext()` for count-dependent messages and preserve placeholders.
|
||||
- Keep internal identifiers, configuration keys, filenames, application content,
|
||||
and clipboard data unchanged.
|
||||
- When messages change, regenerate `tools/fenrir.pot` with
|
||||
`./tools/generate_translations.sh`, then run
|
||||
`./tools/generate_translations.sh check`.
|
||||
- Preserve existing translations. Update specific `.po` catalogs only when
|
||||
requested; leave untranslated and fuzzy entries for translator review.
|
||||
- Review the diff for user-facing strings missing translation markers; the
|
||||
catalog check cannot detect every unmarked string.
|
||||
- For localization behavior changes, run
|
||||
`pytest tests/unit/test_translations.py` and verify the affected workflow.
|
||||
Consult the README's Localization section for the maintenance workflow.
|
||||
|
||||
## Core Architecture
|
||||
|
||||
### Drivers
|
||||
|
||||
@@ -153,6 +153,12 @@ By default Fenrir uses:
|
||||
- **Input driver**: evdevDriver for Linux TTY, x11Driver for `fenrir -x`
|
||||
- **Screen driver**: vcsaDriver for Linux TTY, ptyDriver for `fenrir -x`
|
||||
|
||||
The VMenu word-echo and sound toggles take effect immediately. Exclusive
|
||||
keyboard access is staged: save settings, then restart Fenrir to apply it.
|
||||
Until restart, Fenrir retains the active keyboard-grabbing mode so existing
|
||||
devices can be released correctly. Toggling it again before restart changes
|
||||
the staged choice. Unsaved changes are discarded when Fenrir exits.
|
||||
|
||||
## Audio Configuration
|
||||
|
||||
Both PulseAudio and PipeWire require special configuration to allow console applications running as root (like Fenrir) to route audio to your regular user session. This is normal audio system behavior, not a Fenrir issue.
|
||||
@@ -815,11 +821,51 @@ This mode requires `python-xlib`.
|
||||
For users who want a dedicated PTY/terminal screen reader instead of Fenrir's Linux console focus, see TDSR: https://github.com/tspivey/tdsr
|
||||
|
||||
## Localization
|
||||
Translation files are located in the `locale/` directory. To install translations:
|
||||
|
||||
Fenrir's announcements and help text use GNU gettext. The message template is
|
||||
`tools/fenrir.pot`; contributors maintain translations in `locale/` as `.po`
|
||||
files. Compiled `fenrir.mo` files are installed by both `setup.py` and `install.sh`.
|
||||
Fenrir selects its interface language from `LANGUAGE`, `LC_ALL`, `LC_MESSAGES`,
|
||||
or `LANG` at startup. The `[speech] language` setting controls synthesis, not
|
||||
the interface language. Messages without a translation fall back to English.
|
||||
|
||||
Install GNU gettext to use the maintenance tool. Run these commands from the
|
||||
checkout root; the tool itself also works from other working directories:
|
||||
|
||||
```bash
|
||||
# Refresh only the template; leave every language catalog untouched.
|
||||
./tools/generate_translations.sh
|
||||
|
||||
# Check template freshness and validate catalogs without changing files.
|
||||
./tools/generate_translations.sh check
|
||||
|
||||
# Translator workflow: merge new messages into one catalog.
|
||||
./tools/generate_translations.sh update locale/de/LC_MESSAGES/fenrir.po
|
||||
# Translate empty entries and review fuzzy entries in your PO editor.
|
||||
./tools/generate_translations.sh check locale/de/LC_MESSAGES/fenrir.po
|
||||
./tools/generate_translations.sh compile locale/de/LC_MESSAGES/fenrir.po
|
||||
```
|
||||
|
||||
`update` requires explicit catalog paths and preserves existing translations
|
||||
for review. `compile` with no paths builds all catalogs after validating them.
|
||||
Catalog paths are relative to your current working directory. Neither operation
|
||||
installs anything or requires root. To start a new language, run `msginit` with
|
||||
the template and create its catalog under `locale/LANGUAGE/LC_MESSAGES/`.
|
||||
|
||||
Developers should translate complete messages before formatting values:
|
||||
`_("Loading voices for {module}").format(module=module)`. Do not pass an f-string
|
||||
or an already formatted sentence to `_()`. Keep placeholders intact in
|
||||
translations, use `ngettext()` for counts, and leave application contents,
|
||||
clipboard data, filenames, and configuration identifiers unchanged. The tool
|
||||
also extracts built-in menu labels, key names, and color names that are looked
|
||||
up dynamically. Custom profiles must supply their own translated descriptions
|
||||
and catalogs.
|
||||
|
||||
To install a compiled catalog manually:
|
||||
|
||||
```bash
|
||||
# Copy translation file to system location
|
||||
sudo cp locale/your_language/LC_MESSAGES/fenrir.mo /usr/share/locale/your_language/LC_MESSAGES/fenrir.mo
|
||||
sudo install -m644 -D locale/your_language/LC_MESSAGES/fenrir.mo /usr/share/locale/your_language/LC_MESSAGES/fenrir.mo
|
||||
```
|
||||
|
||||
Available languages:
|
||||
@@ -829,6 +875,36 @@ Available languages:
|
||||
- Portuguese (pt)
|
||||
- Russian (ru)
|
||||
|
||||
## AI-assisted contributions
|
||||
|
||||
AI-assisted contributions are welcome. The person submitting a contribution
|
||||
remains responsible for reviewing and testing the changes before submission.
|
||||
Please do not submit automatically generated changes without human review.
|
||||
|
||||
Before making changes:
|
||||
|
||||
- Read the contributing guide, if present, and this README.
|
||||
- Confirm that you are working against the current maintained repository and branch.
|
||||
- Check whether the issue still exists in the current code.
|
||||
|
||||
Before submitting:
|
||||
|
||||
- Review the generated diff.
|
||||
- Test the changed behavior.
|
||||
- Run the project's existing test suite where practical.
|
||||
- Consider code paths affected indirectly and test those as well.
|
||||
- Clearly describe what was changed and how it was tested.
|
||||
|
||||
AI coding assistants must call the contributor's attention to these requirements
|
||||
and provide concrete testing steps for the intended change and plausible
|
||||
regressions. Newly created tests alone are not sufficient. Leave submission to
|
||||
the contributor after they have reviewed and tested the result.
|
||||
|
||||
For email patches, assistants should offer guidance with configuring
|
||||
`git send-email`, creating a scoped commit or patch series, running
|
||||
`git format-patch`, reviewing the generated patch, sending a test message when
|
||||
appropriate, and sending the final patches to the contribution address.
|
||||
|
||||
## Documentation and Support
|
||||
|
||||
- **Email list**: [stormux+subscribe@groups.io](mailto:stormux+subscribe@groups.io?subject=subscribe) with the subject subscribe
|
||||
|
||||
@@ -271,6 +271,7 @@ clipboard_export_path=/tmp/fenrirClipboard
|
||||
# Keep Fenrir's clipboard history and the X clipboard synchronized.
|
||||
# In fenrir -x, an empty sync_display uses the current DISPLAY.
|
||||
# In console/TTY mode, set sync_display explicitly, for example :0.
|
||||
# Manual graphical clipboard import/export also use sync_display when set.
|
||||
sync_enabled=False
|
||||
sync_display=
|
||||
sync_interval=0.5
|
||||
|
||||
@@ -7,6 +7,11 @@ install -m755 -d /opt/fenrirscreenreader
|
||||
cp -af src/* /opt/fenrirscreenreader
|
||||
|
||||
ln -fs /opt/fenrirscreenreader/fenrir /usr/bin/fenrir
|
||||
# compiled translations
|
||||
for localeFile in locale/*/LC_MESSAGES/*.mo; do
|
||||
[[ -f "$localeFile" ]] || continue
|
||||
install -m644 -D "$localeFile" "/usr/share/$localeFile"
|
||||
done
|
||||
# tools
|
||||
install -m755 -d /usr/share/fenrirscreenreader/tools
|
||||
cp -af tools/* /usr/share/fenrirscreenreader/tools
|
||||
|
||||
+59
-42
@@ -11,6 +11,7 @@ import sys
|
||||
|
||||
from daemonize import Daemonize
|
||||
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
from fenrirscreenreader import fenrirVersion
|
||||
from fenrirscreenreader.core import fenrirManager
|
||||
|
||||
@@ -24,63 +25,75 @@ if fenrirPath not in sys.path:
|
||||
def create_argument_parser():
|
||||
"""Create and return the argument parser for Fenrir"""
|
||||
argumentParser = argparse.ArgumentParser(
|
||||
description="Fenrir - A console screen reader for Linux",
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter
|
||||
description=_("Fenrir - A console screen reader for Linux"),
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
)
|
||||
argumentParser.add_argument(
|
||||
'-v', '--version',
|
||||
action='version',
|
||||
version=f'Fenrir screen reader version {fenrirVersion.version}-{fenrirVersion.code_name}',
|
||||
help='Show version information and exit'
|
||||
"-v",
|
||||
"--version",
|
||||
action="version",
|
||||
version=_("Fenrir screen reader version {0}-{1}").format(
|
||||
fenrirVersion.version, fenrirVersion.code_name
|
||||
),
|
||||
help=_("Show version information and exit"),
|
||||
)
|
||||
argumentParser.add_argument(
|
||||
'-f', '--foreground',
|
||||
action='store_true',
|
||||
help='Run Fenrir in the foreground (default: run as daemon)'
|
||||
"-f",
|
||||
"--foreground",
|
||||
action="store_true",
|
||||
help=_("Run Fenrir in the foreground (default: run as daemon)"),
|
||||
)
|
||||
argumentParser.add_argument(
|
||||
'-s', '--setting',
|
||||
metavar='SETTING-FILE',
|
||||
"-s",
|
||||
"--setting",
|
||||
metavar="SETTING-FILE",
|
||||
default=None,
|
||||
help='Path to custom settings file'
|
||||
help=_("Path to custom settings file"),
|
||||
)
|
||||
argumentParser.add_argument(
|
||||
'-o', '--options',
|
||||
metavar='SECTION#SETTING=VALUE;..',
|
||||
default='',
|
||||
help='Override settings file options. Format: SECTION#SETTING=VALUE;... (case sensitive)'
|
||||
"-o",
|
||||
"--options",
|
||||
metavar="SECTION#SETTING=VALUE;..",
|
||||
default="",
|
||||
help=_(
|
||||
"Override settings file options. Format: SECTION#SETTING=VALUE;... (case sensitive)"
|
||||
),
|
||||
)
|
||||
argumentParser.add_argument(
|
||||
'-d', '--debug',
|
||||
action='store_true',
|
||||
help='Enable debug mode'
|
||||
"-d", "--debug", action="store_true", help=_("Enable debug mode")
|
||||
)
|
||||
argumentParser.add_argument(
|
||||
'-p', '--print',
|
||||
action='store_true',
|
||||
help='Print debug messages to screen'
|
||||
"-p", "--print", action="store_true", help=_("Print debug messages to screen")
|
||||
)
|
||||
argumentParser.add_argument(
|
||||
'-x', '--x11',
|
||||
action='store_true',
|
||||
help='Use PTY emulation with X11 keyboard input scoped to the terminal window'
|
||||
"-x",
|
||||
"--x11",
|
||||
action="store_true",
|
||||
help=_(
|
||||
"Use PTY emulation with X11 keyboard input scoped to the terminal window"
|
||||
),
|
||||
)
|
||||
argumentParser.add_argument(
|
||||
'--x11-window-id',
|
||||
metavar='WINDOWID',
|
||||
default='',
|
||||
help='X11 window id to use for --x11 terminal mode'
|
||||
"--x11-window-id",
|
||||
metavar="WINDOWID",
|
||||
default="",
|
||||
help=_("X11 window id to use for --x11 terminal mode"),
|
||||
)
|
||||
argumentParser.add_argument(
|
||||
'-F',
|
||||
'--force-all-screens',
|
||||
action='store_true',
|
||||
help='Force Fenrir to respond on all screens, ignoring ignoreScreen setting')
|
||||
"-F",
|
||||
"--force-all-screens",
|
||||
action="store_true",
|
||||
help=_("Force Fenrir to respond on all screens, ignoring ignoreScreen setting"),
|
||||
)
|
||||
argumentParser.add_argument(
|
||||
'-i', '-I', '--ignore-screen',
|
||||
metavar='SCREEN',
|
||||
action='append',
|
||||
help='Ignore specific screen(s). Can be used multiple times. Same as ignoreScreen setting.'
|
||||
"-i",
|
||||
"-I",
|
||||
"--ignore-screen",
|
||||
metavar="SCREEN",
|
||||
action="append",
|
||||
help=_(
|
||||
"Ignore specific screen(s). Can be used multiple times. Same as ignoreScreen setting."
|
||||
),
|
||||
)
|
||||
return argumentParser
|
||||
|
||||
@@ -90,10 +103,12 @@ def validate_arguments(cliArgs):
|
||||
if cliArgs.options:
|
||||
for option in cliArgs.options.split(';'):
|
||||
if option and ('#' not in option or '=' not in option):
|
||||
return False, f"Invalid option format: {option}\nExpected format: SECTION#SETTING=VALUE"
|
||||
return False, _(
|
||||
"Invalid option format: {0}\nExpected format: SECTION#SETTING=VALUE"
|
||||
).format(option)
|
||||
|
||||
if cliArgs.x11_window_id and not cliArgs.x11:
|
||||
return False, "--x11-window-id requires --x11"
|
||||
return False, _("--x11-window-id requires --x11")
|
||||
|
||||
return True, None
|
||||
|
||||
@@ -105,10 +120,10 @@ def run_fenrir():
|
||||
fenrirApp = fenrirManager.FenrirManager(cliArgs)
|
||||
fenrirApp.proceed()
|
||||
except Exception as e:
|
||||
print(f"Error starting Fenrir: {e}", file=sys.stderr)
|
||||
print(_("Error starting Fenrir: {0}").format(e), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
except KeyboardInterrupt:
|
||||
print("Interrupted", file=sys.stderr)
|
||||
print(_("Interrupted"), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
finally:
|
||||
if fenrirApp and hasattr(fenrirApp, 'cleanup_on_error'):
|
||||
@@ -116,7 +131,9 @@ def run_fenrir():
|
||||
fenrirApp.cleanup_on_error()
|
||||
except Exception as cleanup_error:
|
||||
print(
|
||||
f"Error during cleanup: {cleanup_error}", file=sys.stderr)
|
||||
_("Error during cleanup: {0}").format(cleanup_error),
|
||||
file=sys.stderr,
|
||||
)
|
||||
if fenrirApp:
|
||||
del fenrirApp
|
||||
# Clean up PID file if it exists
|
||||
|
||||
@@ -25,11 +25,17 @@ class adjustment_command:
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
action = "Increase" if self.direction == "inc" else "Decrease"
|
||||
if self.section == "speech":
|
||||
return _(f"{action} the speech {self.setting}")
|
||||
else:
|
||||
return _(f"{action} the {self.section} {self.setting}")
|
||||
descriptions = {
|
||||
("speech", "rate", "inc"): _("Increase the speech rate"),
|
||||
("speech", "rate", "dec"): _("Decrease the speech rate"),
|
||||
("speech", "pitch", "inc"): _("Increase the speech pitch"),
|
||||
("speech", "pitch", "dec"): _("Decrease the speech pitch"),
|
||||
("speech", "volume", "inc"): _("Increase the speech volume"),
|
||||
("speech", "volume", "dec"): _("Decrease the speech volume"),
|
||||
("sound", "volume", "inc"): _("Increase the sound volume"),
|
||||
("sound", "volume", "dec"): _("Decrease the sound volume"),
|
||||
}
|
||||
return descriptions[(self.section, self.setting, self.direction)]
|
||||
|
||||
def run(self):
|
||||
if self.section == "sound" and self.setting == "volume":
|
||||
@@ -62,14 +68,12 @@ class adjustment_command:
|
||||
|
||||
# Present feedback
|
||||
percentage = int(value * 100)
|
||||
if self.section == "speech":
|
||||
feedback = _("{0} percent speech {1}").format(
|
||||
percentage, self.setting
|
||||
)
|
||||
else:
|
||||
feedback = _("{0} percent {1} {2}").format(
|
||||
percentage, self.section, self.setting
|
||||
)
|
||||
messages = {
|
||||
"rate": _("{0} percent speech rate"),
|
||||
"pitch": _("{0} percent speech pitch"),
|
||||
"volume": _("{0} percent speech volume"),
|
||||
}
|
||||
feedback = messages[self.setting].format(percentage)
|
||||
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
feedback, sound_icon="", interrupt=True
|
||||
|
||||
@@ -24,8 +24,9 @@ class command:
|
||||
def run(self):
|
||||
try:
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
f"Fenrir screen reader version "
|
||||
f"{fenrirVersion.version}-{fenrirVersion.code_name}",
|
||||
_("Fenrir screen reader version {0}-{1}").format(
|
||||
fenrirVersion.version, fenrirVersion.code_name
|
||||
),
|
||||
interrupt=True,
|
||||
)
|
||||
except Exception as e:
|
||||
|
||||
@@ -14,7 +14,7 @@ class command:
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
return "Apply the last tested voice from safe voice browser"
|
||||
return _("Apply the last tested voice from safe voice browser")
|
||||
|
||||
def run(self):
|
||||
try:
|
||||
@@ -25,10 +25,10 @@ class command:
|
||||
or "lastTestedVoice" not in self.env["commandBuffer"]
|
||||
):
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"No voice has been tested yet", interrupt=True
|
||||
_("No voice has been tested yet"), interrupt=True
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Use voice browser first", interrupt=True
|
||||
_("Use voice browser first"), interrupt=True
|
||||
)
|
||||
return
|
||||
|
||||
@@ -37,7 +37,7 @@ class command:
|
||||
language = self.env["commandBuffer"].get("lastTestedLanguage")
|
||||
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
f"Applying {voice} from {module}", interrupt=True
|
||||
_("Applying {0} from {1}").format(voice, module), interrupt=True
|
||||
)
|
||||
|
||||
# Apply to runtime settings only (temporary until saved)
|
||||
@@ -73,10 +73,10 @@ class command:
|
||||
SpeechDriver.set_voice(voice)
|
||||
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Voice applied successfully!", interrupt=True
|
||||
_("Voice applied successfully!"), interrupt=True
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Use save settings to make permanent", interrupt=True
|
||||
_("Use save settings to make permanent"), interrupt=True
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].play_sound("Accept")
|
||||
|
||||
@@ -90,14 +90,14 @@ class command:
|
||||
)
|
||||
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
f"Failed to apply voice, reverted: {str(e)}",
|
||||
_("Failed to apply voice, reverted: {0}").format(str(e)),
|
||||
interrupt=True,
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].play_sound("Error")
|
||||
|
||||
except Exception as e:
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
f"Apply voice error: {str(e)}", interrupt=True
|
||||
_("Apply voice error: {0}").format(str(e)), interrupt=True
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].play_sound("Error")
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ class bookmark_command:
|
||||
return _("set Bookmark {0}").format(self.ID)
|
||||
elif self.action == "clear":
|
||||
return _("remove Bookmark {0}").format(self.ID)
|
||||
return f"{self.action} Bookmark {self.ID}"
|
||||
return _("{0} Bookmark {1}").format(self.action, self.ID)
|
||||
|
||||
def run(self):
|
||||
if self.action == "read":
|
||||
@@ -49,13 +49,13 @@ class bookmark_command:
|
||||
|
||||
if not self.env["commandBuffer"]["bookMarks"][self.ID]:
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Bookmark {0} not set".format(self.ID), interrupt=True
|
||||
_("Bookmark {0} not set").format(self.ID), interrupt=True
|
||||
)
|
||||
return
|
||||
|
||||
if curr_app not in self.env["commandBuffer"]["bookMarks"][self.ID]:
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Bookmark for application {0} not set".format(curr_app),
|
||||
_("Bookmark for application {0} not set").format(curr_app),
|
||||
interrupt=True,
|
||||
)
|
||||
return
|
||||
@@ -64,7 +64,7 @@ class bookmark_command:
|
||||
"1"
|
||||
):
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Bookmark for application {0} not set".format(curr_app),
|
||||
_("Bookmark for application {0} not set").format(curr_app),
|
||||
interrupt=True,
|
||||
)
|
||||
return
|
||||
|
||||
@@ -30,7 +30,7 @@ class command:
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].announce_active_cursor()
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
" column number", interrupt=False
|
||||
_(" column number"), interrupt=False
|
||||
)
|
||||
|
||||
def set_callback(self, callback):
|
||||
|
||||
@@ -30,7 +30,7 @@ class command:
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].announce_active_cursor()
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
" line number", interrupt=False
|
||||
_(" line number"), interrupt=False
|
||||
)
|
||||
|
||||
def set_callback(self, callback):
|
||||
|
||||
@@ -9,9 +9,9 @@ from fenrirscreenreader.core.i18n import _
|
||||
from fenrirscreenreader.utils import x_clipboard
|
||||
|
||||
|
||||
def write_clipboard(clipboard):
|
||||
def write_clipboard(clipboard, display):
|
||||
"""Write the graphical clipboard without accessing Fenrir state."""
|
||||
return x_clipboard.write_text(clipboard, scan_displays=True)
|
||||
return x_clipboard.write_text(clipboard, display, scan_displays=True)
|
||||
|
||||
|
||||
class command:
|
||||
@@ -47,6 +47,9 @@ class command:
|
||||
clipboard = self.env["runtime"][
|
||||
"MemoryManager"
|
||||
].get_index_list_element("clipboardHistory")
|
||||
display = self.env["runtime"]["SettingsManager"].get_setting(
|
||||
"clipboard", "sync_display"
|
||||
)
|
||||
|
||||
task_id = self.env["runtime"][
|
||||
"BackgroundTaskManager"
|
||||
@@ -54,6 +57,7 @@ class command:
|
||||
write_clipboard,
|
||||
lambda result: self._handle_result(clipboard, result),
|
||||
clipboard,
|
||||
display,
|
||||
)
|
||||
if task_id is not None:
|
||||
self._task_ids.add(task_id)
|
||||
|
||||
@@ -49,7 +49,7 @@ class command:
|
||||
)
|
||||
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Import to Clipboard", sound_icon="CopyToClipboard", interrupt=True
|
||||
_("Import to Clipboard"), sound_icon="CopyToClipboard", interrupt=True
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
imported, sound_icon="", interrupt=False
|
||||
|
||||
@@ -8,9 +8,9 @@ from fenrirscreenreader.core.i18n import _
|
||||
from fenrirscreenreader.utils import x_clipboard
|
||||
|
||||
|
||||
def read_clipboard():
|
||||
def read_clipboard(display):
|
||||
"""Read the graphical clipboard without accessing Fenrir state."""
|
||||
return x_clipboard.read_text(scan_displays=True)
|
||||
return x_clipboard.read_text(display, scan_displays=True)
|
||||
|
||||
|
||||
class command:
|
||||
@@ -32,8 +32,11 @@ class command:
|
||||
return _("imports the graphical clipboard to Fenrir's clipboard")
|
||||
|
||||
def run(self):
|
||||
display = self.env["runtime"]["SettingsManager"].get_setting(
|
||||
"clipboard", "sync_display"
|
||||
)
|
||||
task_id = self.env["runtime"]["BackgroundTaskManager"].submit_task(
|
||||
read_clipboard, self._handle_result
|
||||
read_clipboard, self._handle_result, display
|
||||
)
|
||||
if task_id is not None:
|
||||
self._task_ids.add(task_id)
|
||||
@@ -43,14 +46,14 @@ class command:
|
||||
clipboard_content = result.get("value")
|
||||
if not result.get("succeeded"):
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
result.get("error", "Clipboard import failed"),
|
||||
result.get("error", _("Clipboard import failed")),
|
||||
sound_icon="",
|
||||
interrupt=False,
|
||||
)
|
||||
return
|
||||
if not clipboard_content or not isinstance(clipboard_content, str):
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"No text found in clipboard or no accessible display",
|
||||
_("No text found in clipboard or no accessible display"),
|
||||
interrupt=True,
|
||||
)
|
||||
return
|
||||
@@ -58,8 +61,11 @@ class command:
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", clipboard_content
|
||||
)
|
||||
sync_manager = self.env["runtime"].get("ClipboardSyncManager")
|
||||
if sync_manager:
|
||||
sync_manager.mark_imported_from_x(clipboard_content)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Import to Clipboard",
|
||||
_("Import to Clipboard"),
|
||||
sound_icon="CopyToClipboard",
|
||||
interrupt=True,
|
||||
)
|
||||
|
||||
@@ -37,7 +37,7 @@ class command:
|
||||
)
|
||||
return
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"paste clipboard",
|
||||
_("paste clipboard"),
|
||||
sound_icon="PasteClipboardOnScreen",
|
||||
interrupt=True,
|
||||
)
|
||||
|
||||
@@ -23,7 +23,7 @@ class command:
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Read-all functionality temporarily disabled",
|
||||
_("Read-all functionality temporarily disabled"),
|
||||
interrupt=True
|
||||
)
|
||||
return
|
||||
|
||||
@@ -76,7 +76,7 @@ class command:
|
||||
):
|
||||
return
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"has attribute", sound_icon="HasAttributes", interrupt=False
|
||||
_("has attribute"), sound_icon="HasAttributes", interrupt=False
|
||||
)
|
||||
|
||||
def set_callback(self, callback):
|
||||
|
||||
@@ -52,7 +52,7 @@ class command:
|
||||
flush=False,
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
_("end of cell"),
|
||||
_("end of cell"),
|
||||
interrupt=False,
|
||||
sound_icon="EndOfLine"
|
||||
)
|
||||
@@ -128,7 +128,7 @@ class command:
|
||||
):
|
||||
return
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"has attribute", sound_icon="HasAttributes", interrupt=False
|
||||
_("has attribute"), sound_icon="HasAttributes", interrupt=False
|
||||
)
|
||||
|
||||
def set_callback(self, callback):
|
||||
|
||||
@@ -57,7 +57,7 @@ class command:
|
||||
flush=False,
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
_("start of cell"),
|
||||
_("start of cell"),
|
||||
interrupt=False,
|
||||
sound_icon="StartOfLine"
|
||||
)
|
||||
@@ -134,7 +134,7 @@ class command:
|
||||
):
|
||||
return
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"has attribute", sound_icon="HasAttributes", interrupt=False
|
||||
_("has attribute"), sound_icon="HasAttributes", interrupt=False
|
||||
)
|
||||
|
||||
def set_callback(self, callback):
|
||||
|
||||
@@ -22,7 +22,11 @@ class command:
|
||||
return _("Saves your current Fenrir settings so they are the default.")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["SettingsManager"].save_settings()
|
||||
if not self.env["runtime"]["SettingsManager"].save_settings():
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
_("Failed to save settings."), interrupt=True
|
||||
)
|
||||
return
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
_("Settings saved."), interrupt=True
|
||||
)
|
||||
|
||||
@@ -12,7 +12,7 @@ class command:
|
||||
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
self.test_message = (
|
||||
self.test_message = _(
|
||||
"This is a voice test. The quick brown fox jumps over the lazy dog."
|
||||
)
|
||||
self.modules = []
|
||||
@@ -29,7 +29,7 @@ class command:
|
||||
self._leave_voice_browser(False)
|
||||
|
||||
def get_description(self):
|
||||
return "Interactive voice browser with arrow key navigation"
|
||||
return _("Interactive voice browser with arrow key navigation")
|
||||
|
||||
def run(self):
|
||||
if self.browserActive:
|
||||
@@ -37,7 +37,7 @@ class command:
|
||||
return
|
||||
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Starting voice browser", interrupt=True
|
||||
_("Starting voice browser"), interrupt=True
|
||||
)
|
||||
|
||||
if self._loading:
|
||||
@@ -57,7 +57,7 @@ class command:
|
||||
if error or not modules:
|
||||
self._loading = False
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"No speech modules found", interrupt=True
|
||||
_("No speech modules found"), interrupt=True
|
||||
)
|
||||
return
|
||||
self.modules = modules
|
||||
@@ -71,7 +71,7 @@ class command:
|
||||
def _request_current_module_voices(self, generation, enter_browser=False):
|
||||
module = self.modules[self.module_index]
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
f"Loading voices for {module}", interrupt=True
|
||||
_("Loading voices for {0}").format(module), interrupt=True
|
||||
)
|
||||
self.env["runtime"]["SpeechDiscoveryManager"].request_voices(
|
||||
module,
|
||||
@@ -122,10 +122,10 @@ class command:
|
||||
self.register_browser_commands()
|
||||
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Voice browser active", interrupt=True
|
||||
_("Voice browser active"), interrupt=True
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Up/Down=voices, Left/Right=modules, Enter=test, Space=apply, Esc=exit",
|
||||
_("Up/Down=voices, Left/Right=modules, Enter=test, Space=apply, Esc=exit"),
|
||||
interrupt=True,
|
||||
)
|
||||
|
||||
@@ -158,7 +158,7 @@ class command:
|
||||
|
||||
if announce:
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Voice browser exited", interrupt=True
|
||||
_("Voice browser exited"), interrupt=True
|
||||
)
|
||||
|
||||
def announce_current_selection(self):
|
||||
@@ -176,12 +176,14 @@ class command:
|
||||
if self.voices and self.voice_index < len(self.voices):
|
||||
voice = self.voices[self.voice_index].split("|", 1)[0]
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
f"{module}: {voice} ({self.voice_index + 1}/{len(self.voices)})",
|
||||
_("{0}: {1} ({2}/{3})").format(
|
||||
module, voice, self.voice_index + 1, len(self.voices)
|
||||
),
|
||||
interrupt=True,
|
||||
)
|
||||
else:
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
f"{module}: No voices", interrupt=True
|
||||
_("{0}: No voices").format(module), interrupt=True
|
||||
)
|
||||
|
||||
def next_voice(self):
|
||||
@@ -217,7 +219,7 @@ class command:
|
||||
"""Test current voice"""
|
||||
if not self.voices or self.voice_index >= len(self.voices):
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"No voice selected", interrupt=True
|
||||
_("No voice selected"), interrupt=True
|
||||
)
|
||||
return
|
||||
|
||||
@@ -226,7 +228,7 @@ class command:
|
||||
voice_name = encoded_voice.split("|", 1)[0]
|
||||
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Testing...", interrupt=True
|
||||
_("Testing..."), interrupt=True
|
||||
)
|
||||
self._request_generation += 1
|
||||
generation = self._request_generation
|
||||
@@ -282,13 +284,13 @@ class command:
|
||||
SpeechDriver.initialize(self.env)
|
||||
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Voice applied!", interrupt=True
|
||||
_("Voice applied!"), interrupt=True
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].play_sound("Accept")
|
||||
|
||||
except Exception as e:
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Apply failed", interrupt=True
|
||||
_("Apply failed"), interrupt=True
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].play_sound("Error")
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ class command:
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
return "Voice browser: apply current voice"
|
||||
return _("Voice browser: apply current voice")
|
||||
|
||||
def run(self):
|
||||
if "voiceBrowserInstance" in self.env["runtime"]:
|
||||
|
||||
@@ -14,7 +14,7 @@ class command:
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
return "Voice browser: exit browser mode"
|
||||
return _("Voice browser: exit browser mode")
|
||||
|
||||
def run(self):
|
||||
if "voiceBrowserInstance" in self.env["runtime"]:
|
||||
|
||||
@@ -14,7 +14,7 @@ class command:
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
return "Voice browser: next module"
|
||||
return _("Voice browser: next module")
|
||||
|
||||
def run(self):
|
||||
if "voiceBrowserInstance" in self.env["runtime"]:
|
||||
|
||||
@@ -14,7 +14,7 @@ class command:
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
return "Voice browser: next voice"
|
||||
return _("Voice browser: next voice")
|
||||
|
||||
def run(self):
|
||||
if "voiceBrowserInstance" in self.env["runtime"]:
|
||||
|
||||
@@ -14,7 +14,7 @@ class command:
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
return "Voice browser: previous module"
|
||||
return _("Voice browser: previous module")
|
||||
|
||||
def run(self):
|
||||
if "voiceBrowserInstance" in self.env["runtime"]:
|
||||
|
||||
@@ -14,7 +14,7 @@ class command:
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
return "Voice browser: previous voice"
|
||||
return _("Voice browser: previous voice")
|
||||
|
||||
def run(self):
|
||||
if "voiceBrowserInstance" in self.env["runtime"]:
|
||||
|
||||
@@ -12,7 +12,7 @@ class command:
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
self.test_message = (
|
||||
"Voice test: The quick brown fox jumps over the lazy dog."
|
||||
_("Voice test: The quick brown fox jumps over the lazy dog.")
|
||||
)
|
||||
|
||||
def shutdown(self):
|
||||
|
||||
@@ -14,7 +14,7 @@ class command:
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
return "Voice browser: test current voice"
|
||||
return _("Voice browser: test current voice")
|
||||
|
||||
def run(self):
|
||||
if "voiceBrowserInstance" in self.env["runtime"]:
|
||||
|
||||
@@ -41,7 +41,7 @@ class command:
|
||||
):
|
||||
return
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"has attribute", sound_icon="HasAttributes", interrupt=False
|
||||
_("has attribute"), sound_icon="HasAttributes", interrupt=False
|
||||
)
|
||||
|
||||
def set_callback(self, callback):
|
||||
|
||||
@@ -19,7 +19,7 @@ class command:
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
return "Detects progress patterns for progress bar monitoring"
|
||||
return _("Detects progress patterns for progress bar monitoring")
|
||||
|
||||
def run(self):
|
||||
# Only run if progress monitoring is enabled
|
||||
|
||||
@@ -19,7 +19,7 @@ class command:
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
return "Detects shell prompts for silence until prompt feature"
|
||||
return _("Detects shell prompts for silence until prompt feature")
|
||||
|
||||
def run(self):
|
||||
# Only run if silence until prompt is active
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Argentina flag emoji to clipboard"
|
||||
return _("Add Argentina flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Argentina flag to clipboard",
|
||||
_("Added Argentina flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Australia flag emoji to clipboard"
|
||||
return _("Add Australia flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Australia flag to clipboard",
|
||||
_("Added Australia flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Belgium flag emoji to clipboard"
|
||||
return _("Add Belgium flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Belgium flag to clipboard",
|
||||
_("Added Belgium flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Brazil flag emoji to clipboard"
|
||||
return _("Add Brazil flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Brazil flag to clipboard",
|
||||
_("Added Brazil flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Canada flag emoji to clipboard"
|
||||
return _("Add Canada flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Canada flag to clipboard",
|
||||
_("Added Canada flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add China flag emoji to clipboard"
|
||||
return _("Add China flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added China flag to clipboard",
|
||||
_("Added China flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Denmark flag emoji to clipboard"
|
||||
return _("Add Denmark flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Denmark flag to clipboard",
|
||||
_("Added Denmark flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Finland flag emoji to clipboard"
|
||||
return _("Add Finland flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Finland flag to clipboard",
|
||||
_("Added Finland flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add France flag emoji to clipboard"
|
||||
return _("Add France flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added France flag to clipboard",
|
||||
_("Added France flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Germany flag emoji to clipboard"
|
||||
return _("Add Germany flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Germany flag to clipboard",
|
||||
_("Added Germany flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Greece flag emoji to clipboard"
|
||||
return _("Add Greece flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Greece flag to clipboard",
|
||||
_("Added Greece flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add India flag emoji to clipboard"
|
||||
return _("Add India flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added India flag to clipboard",
|
||||
_("Added India flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Ireland flag emoji to clipboard"
|
||||
return _("Add Ireland flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Ireland flag to clipboard",
|
||||
_("Added Ireland flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Israel flag emoji to clipboard"
|
||||
return _("Add Israel flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Israel flag to clipboard",
|
||||
_("Added Israel flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Italy flag emoji to clipboard"
|
||||
return _("Add Italy flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Italy flag to clipboard",
|
||||
_("Added Italy flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Japan flag emoji to clipboard"
|
||||
return _("Add Japan flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Japan flag to clipboard",
|
||||
_("Added Japan flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Mexico flag emoji to clipboard"
|
||||
return _("Add Mexico flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Mexico flag to clipboard",
|
||||
_("Added Mexico flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Netherlands flag emoji to clipboard"
|
||||
return _("Add Netherlands flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Netherlands flag to clipboard",
|
||||
_("Added Netherlands flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Norway flag emoji to clipboard"
|
||||
return _("Add Norway flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Norway flag to clipboard",
|
||||
_("Added Norway flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Poland flag emoji to clipboard"
|
||||
return _("Add Poland flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Poland flag to clipboard",
|
||||
_("Added Poland flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Portugal flag emoji to clipboard"
|
||||
return _("Add Portugal flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Portugal flag to clipboard",
|
||||
_("Added Portugal flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Russia flag emoji to clipboard"
|
||||
return _("Add Russia flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Russia flag to clipboard",
|
||||
_("Added Russia flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add South Africa flag emoji to clipboard"
|
||||
return _("Add South Africa flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added South Africa flag to clipboard",
|
||||
_("Added South Africa flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add South Korea flag emoji to clipboard"
|
||||
return _("Add South Korea flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added South Korea flag to clipboard",
|
||||
_("Added South Korea flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Spain flag emoji to clipboard"
|
||||
return _("Add Spain flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Spain flag to clipboard",
|
||||
_("Added Spain flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Sweden flag emoji to clipboard"
|
||||
return _("Add Sweden flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Sweden flag to clipboard",
|
||||
_("Added Sweden flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Switzerland flag emoji to clipboard"
|
||||
return _("Add Switzerland flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Switzerland flag to clipboard",
|
||||
_("Added Switzerland flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Turkey flag emoji to clipboard"
|
||||
return _("Add Turkey flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Turkey flag to clipboard",
|
||||
_("Added Turkey flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add UK flag emoji to clipboard"
|
||||
return _("Add UK flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added UK flag to clipboard",
|
||||
_("Added UK flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Ukraine flag emoji to clipboard"
|
||||
return _("Add Ukraine flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Ukraine flag to clipboard",
|
||||
_("Added Ukraine flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add USA flag emoji to clipboard"
|
||||
return _("Add USA flag emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added USA flag to clipboard",
|
||||
_("Added USA flag to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Red apple emoji"
|
||||
return _("Red apple emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added red apple to clipboard",
|
||||
_("Added red apple to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Avocado emoji"
|
||||
return _("Avocado emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added avocado to clipboard",
|
||||
_("Added avocado to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Beer emoji"
|
||||
return _("Beer emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added beer to clipboard",
|
||||
_("Added beer to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Birthday cake emoji"
|
||||
return _("Birthday cake emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added birthday cake to clipboard",
|
||||
_("Added birthday cake to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add coffee emoji to clipboard"
|
||||
return _("Add coffee emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added coffee to clipboard",
|
||||
_("Added coffee to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Donut emoji"
|
||||
return _("Donut emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added donut to clipboard",
|
||||
_("Added donut to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add hamburger emoji to clipboard"
|
||||
return _("Add hamburger emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added hamburger to clipboard",
|
||||
_("Added hamburger to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add pizza emoji to clipboard"
|
||||
return _("Add pizza emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added pizza to clipboard",
|
||||
_("Added pizza to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Strawberry emoji"
|
||||
return _("Strawberry emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added strawberry to clipboard",
|
||||
_("Added strawberry to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Taco emoji"
|
||||
return _("Taco emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added taco to clipboard",
|
||||
_("Added taco to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Alien monster emoji"
|
||||
return _("Alien monster emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added alien monster to clipboard",
|
||||
_("Added alien monster to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add bat emoji to clipboard"
|
||||
return _("Add bat emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added bat to clipboard",
|
||||
_("Added bat to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Black cat emoji"
|
||||
return _("Black cat emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added black cat to clipboard",
|
||||
_("Added black cat to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add bunny emoji to clipboard"
|
||||
return _("Add bunny emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added bunny to clipboard",
|
||||
_("Added bunny to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Mage emoji"
|
||||
return _("Mage emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added mage to clipboard",
|
||||
_("Added mage to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Christmas tree emoji to clipboard"
|
||||
return _("Add Christmas tree emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Christmas tree to clipboard",
|
||||
_("Added Christmas tree to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Coffin emoji"
|
||||
return _("Coffin emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added coffin to clipboard",
|
||||
_("Added coffin to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Easter egg emoji to clipboard"
|
||||
return _("Add Easter egg emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Easter egg to clipboard",
|
||||
_("Added Easter egg to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add fireworks emoji to clipboard"
|
||||
return _("Add fireworks emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added fireworks to clipboard",
|
||||
_("Added fireworks to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add ghost emoji to clipboard"
|
||||
return _("Add ghost emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added ghost to clipboard",
|
||||
_("Added ghost to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add gift emoji to clipboard"
|
||||
return _("Add gift emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added gift to clipboard",
|
||||
_("Added gift to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add jack o'lantern emoji to clipboard"
|
||||
return _("Add jack o'lantern emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added jack o'lantern to clipboard",
|
||||
_("Added jack o'lantern to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Mummy emoji"
|
||||
return _("Mummy emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added mummy to clipboard",
|
||||
_("Added mummy to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add Santa emoji to clipboard"
|
||||
return _("Add Santa emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added Santa to clipboard",
|
||||
_("Added Santa to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add shamrock emoji to clipboard"
|
||||
return _("Add shamrock emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added shamrock to clipboard",
|
||||
_("Added shamrock to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add skull emoji to clipboard"
|
||||
return _("Add skull emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added skull to clipboard",
|
||||
_("Added skull to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add snowman emoji to clipboard"
|
||||
return _("Add snowman emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added snowman to clipboard",
|
||||
_("Added snowman to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add spider emoji to clipboard"
|
||||
return _("Add spider emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added spider to clipboard",
|
||||
_("Added spider to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Add turkey emoji to clipboard"
|
||||
return _("Add turkey emoji to clipboard")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added turkey to clipboard",
|
||||
_("Added turkey to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Vampire emoji"
|
||||
return _("Vampire emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added vampire to clipboard",
|
||||
_("Added vampire to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Spider web emoji"
|
||||
return _("Spider web emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added spider web to clipboard",
|
||||
_("Added spider web to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Witch emoji"
|
||||
return _("Witch emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added witch to clipboard",
|
||||
_("Added witch to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Zombie emoji"
|
||||
return _("Zombie emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added zombie to clipboard",
|
||||
_("Added zombie to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Butterfly emoji"
|
||||
return _("Butterfly emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added butterfly to clipboard",
|
||||
_("Added butterfly to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Cat emoji"
|
||||
return _("Cat emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added cat to clipboard",
|
||||
_("Added cat to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Cherry blossom emoji"
|
||||
return _("Cherry blossom emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added cherry blossom to clipboard",
|
||||
_("Added cherry blossom to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
from fenrirscreenreader.core.i18n import _
|
||||
|
||||
class command():
|
||||
def initialize(self, environment):
|
||||
self.env = environment
|
||||
@@ -10,13 +12,13 @@ class command():
|
||||
pass
|
||||
|
||||
def getDescription(self):
|
||||
return "Dog emoji"
|
||||
return _("Dog emoji")
|
||||
|
||||
def run(self):
|
||||
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
|
||||
"clipboardHistory", self.emoji
|
||||
)
|
||||
self.env["runtime"]["OutputManager"].present_text(
|
||||
"Added dog to clipboard",
|
||||
_("Added dog to clipboard"),
|
||||
interrupt=False, flush=False
|
||||
)
|
||||
Loaded 100 of 218 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user