DotExpress is a text-to-braille translation tool that converts plain text into fixed-width braille, producing output that can be used directly for printed braille.
DotExpress is designed for braille transcribers and educators who require precise control over printed braille output.
DotExpress was created to address long-standing limitations in traditional braille transcription tools, especially when handling mixed-language content such as Chinese, English, and technical symbols. It aims to provide a modern, accessible workflow for braille transcribers working in real-world educational and professional environments.
DotExpress provides independent braille table settings for Chinese, English, and Japanese. Users can select appropriate braille tables for different languages and regions, ensuring translation results better match practical usage.
For example, Taiwan Bopomofo Braille can be used for Chinese, while UEB Grade 1 Braille can be applied to English.
DotExpress translates plain text into braille with a fixed number of braille cells per line, supporting printed braille production.
Users can configure how many braille cells each line contains. Output is formatted according to the specified line width to accommodate different paper sizes and printing requirements.
To address translation issues caused by proper nouns, rare vocabulary, or specialized terms not included in standard translation tables, DotExpress provides a Custom Dictionary feature.
This allows users to adjust translation results in real time while maintaining flexible translation behavior.
Users can define custom mapping rules between source text and target braille to fine-tune translation output.
- Click the Dictionary button to open the dictionary editor.
- Click Add to create a new translation mapping rule.
- Select the desired dictionary mode, then enter values for the Source Text and corresponding Braille fields.
The Custom Dictionary supports the following three modes:
In this mode, the content of the Braille field replaces the Source Text field directly, with no validation applied.
This is suitable for simple text-to-braille replacement scenarios.
In this mode, the content of the Braille field replaces the Source Text field and is interpreted according to Bopomofo symbol rules.
Only valid Bopomofo symbols and tone marks are permitted. Basic validation is performed to prevent invalid Bopomofo sequences.
This mode is intended for workflows that use Taiwanese Bopomofo Braille as the translation source.
- A space represents the first tone (Tone 1).
- Input must follow valid Bopomofo symbol sequence rules.
For the special standalone symbols
ㄓ, ㄔ, ㄕ, ㄖ, ㄗ, ㄘ, ㄙ,
when used without a final, the system automatically appends the corresponding ⠱ Braille code according to Bopomofo Braille rules.
In this mode, the Braille field is treated as pure braille input.
Only characters within the Unicode Braille block (0x2800–0x28FF) are allowed.
This mode is suitable for users who are familiar with braille and require full control over the final output.
Through multilingual translation, fixed line width configuration, and a customizable dictionary system, DotExpress provides a flexible yet precise text-to-braille workflow, helping users complete printed braille transcription and pre-print preparation more efficiently.
This project is developed using Python 3.13 (64-bit).
To build the executable or generate translation files locally, ensure your Python version meets this requirement, then install the dependencies listed in requirements.txt:
pip install -r requirements.txtRun the following command in Windows CMD to generate the executable using PyInstaller:
pyinstaller --onefile --name=DotExpress ^
--noconsole ^
--add-data "liblouis.dll;." ^
--add-data "louis/tables;louis/tables" ^
--add-data "data;data" ^
--add-data "locales;locales" ^
gui.pyTo update the translation template file (.pot), run:
xgettext --language=Python --keyword=_ --output=locales/DotExpress.pot gui.py dialog.py brailleTables/__tables.pyThis project is licensed under the GNU General Public License v2.0 (GPL-2.0).