Dictionary format
This page needs clean-up. The information may be complete, but help revise the page by removing first-person speech, breaking up large blocks of text, adding inter-wiki links, and making information more concise and easy-to-read.
Plover reads three different dictionary file types by default and uses a unique dictionary format or translation language to encode extra information or commands into translations for outlines.
Dictionary File Types
- See also: Plover Docs: Dictionary Formats
By default, Plover can interpret .json (recommended), .rtf, and .modal dictionaries.
With the installation of the plover-python-dictionary plugin, Python also supports programmatic dictionaries in .py file format. After installing the plugin, Plover must be restarted before it loads Python dictionaries.
Currently, Plover does not support dictionary file formats from other CAT programs such as .dct or .sgdct formats. Plugins were previously authored to allow support in Plover, but as of March 2026, are not in working order.
JSON
The standard Plover format. These dictionaries contain a single JSON dictionary containing outlines mapped to translations.
The JSON format that Plover uses is not used or supported by other steno applications. If you want to move or copy your Plover JSON formatted dictionary to another steno software application, you must convert it to RTF. This is a default function in Plover, which can be found by right clicking highlighted dictionaries, and choosing "Save dictionaries as..." and then "Create a copy of each dictionary". This process may fail if the dictionary contains any unicode characters.
Unicode is supported in JSON format dictionaries since Plover 3.0.0.
RTF (aka CRE)
RTF dictionaries tend to cause Plover to take longer to start up and do not support Unicode.
A standard interchange format. Described at http://www.legalxml.org/workgroups/substantive/transcripts/cre-spec.htm .
RTF/CRE is an import/export format used by proprietary steno software. This means Plover can work with exported dictionaries from Eclipse, ProCAT, Case CATalyst, and other steno software applications.
Python
- See also: Programmatic dictionary
Within a Python dictionary, a function called lookup() is used to process input and determine if the dictionary will create an output.
Translation Language (JSON)
- See also: Plover Docs: Translation Language
Since the default .json Plover dictionary format only contains two pieces of data for each entry—an outline and a translation—most of the extra information concerning prefix, suffix, glue, and capitalization behavior must be included within the translation field.
Other dictionary formats contain more than two pieces of data per entry in order to separate out this information out.
In order to distinguish such information from the translation itself, Plover has a translation language that dictates how to encode it. Most of these commands utilize curly braces {}.
For the definitive documentation of the Plover translation, refer to the Plover Documentation: https://plover.readthedocs.io/en/latest/translation_language.html
Following is a summary of a few aspects:
Affixes
In English stenography, spaces are output by default before each translation. To indicate that a certain translation should stick to either the previous or following translation as a prefix or suffix, the ^ symbol is used. Depending on the formatting, you can also control whether Plover attaches these translations as-is, or according to orthography rules.
Glue
Glue is similar to affixes above, except that "glued" strokes only attach to neighboring "glue" strokes. To indicate a glue stroke, the & symbol is used. This is most frequently used for writing numbers and fingerspelling.
Translations containing only digits are glued, allowing you to output multiple number strokes to make a large number.
Keyboard Shortcuts
You can use Plover to type common keyboard shortcuts. For example, you may use the arrow keys to navigate. You may know Ctrl+C and Ctrl+V to copy and paste, or Alt+Tab to switch windows. You can encode these shortcuts as translations for steno outlines, using Plover translation language.
In contrast with text output, keyboard shortcuts cannot be "undone" with the * outline, similar to how you cannot backspace a shortcut on your keyboard.
Read the Plover source code to find the complete list of supported keyboard shortcut keys.
Plover Control Commands
You can control some aspects of Plover's function using certain translations, such as adding a translation, enabling or disabling output, using lookup, suggestions, opening Configuration, focusing, quitting, and modifying Plover config.
Plover's default dictionary commands.json contains some of these commands on default outlines.
Dynamic Functions
Modifying previous strokes
You can use Plover's translation language to repeat the last stroke, toggle the asterisk in the last stroke, and more.
The most notable translation in this category is the function of undoing the last stroke typed, which is the default way of "backspacing" in stenography and is assigned to the outline * in nearly every theory.
Conditional translation
Plover can output a conditional translation that depends on the following text. The following text is compared to a RegEx expression to determine what to output.
For example, this function can be used to make a single outline output "a" or "an" based on the text that follows.
Casing Modes
You can use certain translations to put Plover in a certain "mode", such as CAPS LOCK and Title Case. The mode can be changed or reset with another translation.
There are some built-in modes:
| Dictionary Syntax | Sample Output |
|---|---|
{MODE:CAPS}
|
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. |
{MODE:TITLE}
|
The Quick Brown Fox Jumps Over The Lazy Dog. |
{MODE:LOWER}
|
the quick brown fox jumps over the lazy dog. |
{MODE:CAMEL}
|
theQuickBrownFoxJumpsOverTheLazyDog. |
{MODE:SNAKE}
|
The_quick_brown_fox_jumps_over_the_lazy_dog. |
You can also define your own custom modes on the fly using additional translations.
