Skip to main content

Define multiple translations in a single steno outline and cycle through them.

Project description

Plover Cycle Translations

Build Status PyPI - Version PyPI - Downloads linting: pylint

This Plover extension plugin contains a macro that allows you define multiple translations in a single outline, and then cycle through them Alt-Tab- or IME-style using a "selector stroke". It covers similar ground to Plover's retro_toggle_asterisk macro, but is broader in scope than just toggling between an outline and its asterisk-flagged equivalent (e.g. "HAOEU": "high" and "HAO*EU": "hi").

Cycling translations can be helpful for disambiguating between homophones (words that are pronounced the same but differ in spelling; e.g. "sent", "cent", and "scent"), or words and their similar sounding proper nouns (e.g. "mark", "Mark", and "Marc") with a single outline, rather than needing to remember all their respective outlines. See here for examples of "multinyms" that could form the basis of some dictionary entries.

Install

Pre-Plover Plugin Registry inclusion (Current)

git clone git@github.com:paulfioravanti/plover-cycle-translations.git
cd plover-cycle-translations
plover --script plover_plugins install --editable .

Where plover in the command is a reference to your locally installed version of Plover. See the Invoke Plover from the command line page for details on how to create that reference.

Then:

  1. When it finishes installing, restart Plover
  2. Open the Plover Configuration screen (either click the Configuration icon, or from the main Plover application menu, select Preferences...)
  3. Open the Plugins tab
  4. Check the box next to plover_cycle_translations to activate the plugin

Post-Plover Plugin Registry inclusion (Future)

  1. In the Plover application, open the Plugins Manager (either click the Plugins Manager icon, or from the Tools menu, select Plugins Manager).
  2. From the list of plugins, find plover-cycle-translations
  3. Click "Install/Update"
  4. When it finishes installing, restart Plover
  5. After re-opening Plover, open the Configuration screen (either click the Configuration icon, or from the main Plover application menu, select Preferences...)
  6. Open the Plugins tab
  7. Check the box next to plover_cycle_translations to activate the plugin

Usage

Using the "sent", "cent", and "scent" example above, the outlines for them in Plover theory are:

  • "SEPBT": "sent" - indicative of a phonetic (how the word sounds) reading of "sent"
  • "KREPBT": "cent" - indicative of an orthographic (how the word is spelled) reading of "cent", using the fingerspelled "C" KR chord
  • "SKREPBT": "scent" - orthographic, similar to "cent"

If you wanted to standardise on the phonetic SEPBT outline for all three words, you could use this plugin to create a dictionary entry as follows:

"SEPBT": "=CYCLE:sent,cent,scent"

This will output "sent" when stroked. You then use a "selector stroke" to cycle to the next word in the comma-separated list of words, in the order they are defined. An example of a "selector stroke" dictionary entry would be:

"R*R": "=CYCLE:NEXT"

As you cycle through the word list, each outputted word gets replaced with the next word entry. Once you hit the end of the list, the cycle begins again: in the example above, if you stroke =CYCLE:NEXT when you have output "scent", it will be replaced with "sent".

Development

Clone from GitHub with git and install test-related dependencies with pip:

git clone git@github.com:paulfioravanti/plover-cycle-translations.git
cd plover-cycle-translations
python -m pip install --editable ".[test]"

If you are a Tmuxinator user, you may find my plover-cycle-translations project file of reference.

Python Version

Plover's Python environment currently uses version 3.9 (see Plover's workflow_context.yml to confirm the current version).

So, in order to avoid unexpected issues, use your runtime version manager to make sure your local development environment also uses Python 3.9.x.

Testing

  • Pylint is used for code quality
  • Mypy is used for static type checking

Currently, there is not enough logic in the plugin that doesn't depend on internal state of the extension class to justify extraction to other modules. Since the only parts of the plugin able to be tested are ones that do not rely directly on Plover, automated testing with Pytest has not really been possible.

Run linting and type checking with the following commands:

pylint plover_cycle_translations
mypy plover_cycle_translations

If you are a just user, you may find the justfile useful during development in running multiple code quality commands. You can run the following command from the project root directory:

just

Deploying Changes

After making any code changes, deploy the plugin into Plover with the following command:

plover --script plover_plugins install --editable .

Where plover in the command is a reference to your locally installed version of Plover. See the Invoke Plover from the command line page for details on how to create that reference.

When necessary, the plugin can be uninstalled via the command line with the following command:

plover --script plover_plugins uninstall plover-cycle-translations

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plover_cycle_translations-0.2.4.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

plover_cycle_translations-0.2.4-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file plover_cycle_translations-0.2.4.tar.gz.

File metadata

File hashes

Hashes for plover_cycle_translations-0.2.4.tar.gz
Algorithm Hash digest
SHA256 6b2e2c74c6427d1bbb0ebed3cb6f85aad50df8bf4d8a6c7e2d8aa200147baf93
MD5 f1e0cd0364ff9a510c264a97ae1fbc87
BLAKE2b-256 f59589ecbf8cc750c0a407d47596e52c5b8e994e39874d8672f6349df53e6a93

See more details on using hashes here.

File details

Details for the file plover_cycle_translations-0.2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for plover_cycle_translations-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 264116f4a12521480dfe3f651817972677aa5279a6762ca1ba5151daf35ef043
MD5 ec72864174e5df1fd15163a77cfbb7cd
BLAKE2b-256 1e21c3ecdf01956451c0c24baf56d4dd64e4dbbe8d813b6939b35dcb690b538e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page