C M4 C++ Makefile Emacs Lisp Python Other
Failed to load latest commit information.
build-aux Do not ignore the files in build-aux/snippet Jun 15, 2016
contrib emacs mode: allow virtual dots in the regexp for dots Aug 18, 2016
doc Document the new features of the YAML test framework Feb 27, 2017
gnulib Add the dirent gnulib module Jun 17, 2016
liblouis Merge branch 'dm/publicize-getEmphClasses' of https://github.com/Dave… Feb 27, 2017
m4 Make sure the m4 directory is not pruned by git Aug 3, 2016
man Move check_yaml to tools Jan 19, 2016
python Merge pull request #198 from mattvenn/master Feb 27, 2017
tables Add an extended 8-dot computer braille table for U.S. English. Feb 2, 2017
tests Merge branch 'dm/publicize-getEmphClasses' of https://github.com/Dave… Feb 27, 2017
tools Merge branch 'dm/publicize-getEmphClasses' of https://github.com/Dave… Feb 27, 2017
windows Fix unresolved external errors when building on windows Oct 3, 2016
.clang-format Add the style file for the clang formatter Jun 10, 2016
.dockerignore Remove two m4 files from .gitignore Oct 10, 2016
.gitignore Ignore byte-compiler emacs lisp file Nov 25, 2016
.travis.yml Try the Trusty build environment on Travis Jun 21, 2016
ANNOUNCEMENT Update announcement for new release Jul 14, 2016
AUTHORS brltty is now at brltty.com (moved from mielke.cc/brltty). (dm) Jan 12, 2017
COPYING State in the README that the library is licensed under LGPL and the Nov 5, 2009
COPYING.LESSER Move the library to LGPLv2.1 Jun 20, 2016
ChangeLog Change the email of John May 7, 2015
Dockerfile Scripts for cross-compilation Jul 24, 2016
Dockerfile.dev make distwin32: don't send generated files to Docker Oct 10, 2016
Doxyfile Prepare for generation of documentation using doxygen Jun 30, 2016
HACKING Scripts for cross-compilation Jul 24, 2016
License.md Make sure github lists liblouis as licensed under LGPLv2.1 Dec 13, 2016
Makefile.am Remove dependency on pkg-config Oct 10, 2016
NEWS Add NEWS entry for the YAML test improvements Feb 27, 2017
README Make it more clear how to run configure Feb 27, 2017
README.md Add a symlink so that github displays the README is a nice way May 20, 2014
README.windows Fix unresolved external errors when building on windows Oct 3, 2016
TODO removed todo items that are now documented on website. Sep 2, 2014
autogen.sh Move the library to LGPLv2.1 Jun 20, 2016
configure.ac Remove dependency on pkg-config Oct 10, 2016
liblouis.pc.in * liblouis.pc.in: Added a variable called 'tablesdir'. Jan 17, 2008
libyaml_mingw.patch Build libyaml from source Sep 9, 2016



Build Status

Liblouis is an open-source braille translator and back-translator named in honor of Louis Braille. It features support for computer and literary braille, supports contracted and uncontracted translation for many languages and has support for hyphenation. New languages can easily be added through tables that support a rule- or dictionary based approach. Tools for testing and debugging tables are also included. Liblouis also supports math braille (Nemeth and Marburg).

Liblouis has features to support screen-reading programs. This has led to its use in two open-source screenreaders, NVDA and Orca. It is also used in some commercial assistive technology applications for example by ViewPlus.

Liblouis is based on the translation routines in the BRLTTY screenreader for Linux. It has, however, gone far beyond these routines. In Linux and Mac OSX it is a shared library, and in Windows it is a DLL.

Liblouis is free software licensed under the GNU LGPLv2.1+ (see the file COPYING.LESSER).

The command line tools, are licensed under the GNU GPLv3+ (see the file COPYING).


For documentation, see the liblouis documentation (either as info file, html, txt or pdf) in the doc directory. For examples of translation tables, see en-us-g2.ctb, en-us-g1.ctb, chardefs.cti, and whatever other files they may include in the tables directory. This directory contains tables for many languages. The Nemeth files will only work with the sister library liblouisutdml.


After unpacking the distribution tarball go to the directory it creates. You now have the choice to compile liblouis for either 16- or 32-bit unicode. By default it is compiled for the former. To get 32-bit Unicode run configure with --enable-ucs4.

After running ./configure run make and then make install. You must have root privileges for the installation step.

This will produce the liblouis library and the programs lou_allround (for testing the library), lou_checkhyphens, lou_checktable (for checking translation tables), lou_debug (for debugging translation tables), lou_translate (for extensive testing of forward and backwards translation) and lou_trace (for tracing if individual translations). For more details see the liblouis documentation.

If you wish to have man pages for the programs you might want to install help2man before running configure.


You can contribute to Liblouis in several different ways:

  • If you have comments, questions, or want to use your knowledge to help others, come join the conversation on either the mailing list or on IRC. You can reach us at liblouis-liblouisxml@freelists.org or in channel #liblouis on irc:irc.oftc.net.

  • To report a problem or request a feature, please file an issue.

  • Of course, we welcome pull requests and patches.

Finally, if you want to see what we have for the future and learn more about our release cycles, all this information is detailed on the wiki

Release Notes

For notes on the newest and older releases see the file NEWS.


Liblouis was begun in 2002 largely as a business decision by ViewPlus. They believed that they could never have good braille except as part of an open source effort and knew that John Boyer was dying to start just such a project. So ViewPlus did start it on the agreement that they would give a small monthly stipend to John Boyer that allowed him to pay for sighted assistants. While ViewPlus has not contributed much to the coding, it certainly has contributed and continues to contribute to liblouis through that support of John Boyer.