My favorites | Sign in
Project Home Downloads Issues Source
Project Information
Members
Featured
Downloads
Links

Liblouis is an open-source braille translator and back-translator. It features support for computer and literary braille, supports contracted and uncontracted translation for many, many languages (Arabic, Armenian, Bulgarian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Esperanto, Estonian, Ethiopic, Finish, French, Gaelic, German, Greek, Icelandic, many Indian languages, Italian, Kurdish, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, Slovakian, Spanish, Swedish, Turkish, Vietnamese, Welsh) and has support for hyphenation. New languages can easily be added through tables that support a rule- or dictionary based approach. Included are also tools for testing and debugging tables. Liblouis also supports math braille (Nemeth and Marburg). The formatting of braille is provided by the companion project liblouisxml.

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 such as from ViewPlus for example.

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

News

Article about John J. Boyer in the The DAISY Planet

The DAISY Planet for the month of April contains a interesting article about John J. Boyer and the Liblouis software suite.

Noteworthy changes in release 2.3.0 (2011-05-09)

This release contains support for many more languages than before (Swedish, Kurdish, Ethiopic, Serbian, many Indian languages, Icelandic, Catalan, Dutch, etc). The search path for tables is now a list of paths. Finally there is the usual assortment of bug fixes.

New features

Multiple table search path

The environment variable LOUIS_TABLEPATH can now contain a list of paths (separated by commas) where liblouis should look for tables. This allows the user to keep local tables.

New --quiet option for lou_checktable

lou_checktable writes to stderr even in the case of success. This can now be suppressed with the new option --quiet.

New functions to make libraries relocatable

Two new functions, to set the search path for tables and files. They make the library relocatable. See the in the documentation for lou_setDataPath and lou_getDataPath.

New Braille tables

  • A new table for Swedish braille has been provided by Samuel Thibault.
  • A new table for Sorani (Kurdish) Braille has been donated by Peter Engström from Index Braille
  • A new table for Ethiopic Braille has been donated by Tamru E. Belay PH.D. from Adaptive Technology Center for the Blind (ATCB)
  • A new table for Serbian Braille has been donated by Peter Engström from Index Braille
  • Support for many Indian languages
  • Support for Icelandic 6- and 8-dot
  • Support for Catalan
  • Support for Dutch Braille (for Belgium and the Netherlands)
  • Support for Flemish Braille Math Code (a.k.a. Woluwe code)

Improved the documentation

The deprecated opcodes have been moved to a separate section

Bug fixes

  • Fixed a long standing bug with an infinite loop in the table compiler

Braille Table Improvements

  • Improvements to the Chinese braille table
  • Improvements to the Flemish Braille Math Code tables
  • Improvements to the Dutch Braille tables
  • Improvements to the Spanish Braille tables.
  • Fixes for the uncontracted French 6 and 8 dot tables
  • Improved support for Italian 8 dot
  • Improvements to the Generic Arabic Grade 1 table
  • Improved support for Spanish
  • Improved Norwegian tables

Noteworthy changes in release 2.1.1 (2010-8-23)

Bug fixes

  • Fixed problems with the Danish grade 2 table
  • Fixed problems with the Marburg maths table for mathematics and the UK maths table for mathematics

Noteworthy changes in release 2.1.0 (2010-8-19)

New features

New tables

  • Added tables for Portuguese grade 1 and 2
  • Added unicode.dis for Unicode braille

Modified tables

  • Updated Danish tables

Implemented language to table mapping

New format of error messages

The error messages are now reported in a format similar to the one used in gcc.

New opcode

  • added undefined opcode

Python bindings

  • Allow the user to configure the maximum output length by specifying a number by which the input length is multiplied using the outlenMultiplier module variable. The default will handle the case where every input character is undefined in the translation table. Previously, this was hard-coded to 2, which was insufficient in some cases.
  • Add compbrlLeftCursor mode constant.
  • Add compileString function which wraps lou_compileString.
  • Corrections/clarifications to docstrings.
  • Add python binding for the lou_hyphenate function.
  • Added python wrapper for lou_backTranslateString and lou_backTranslate.

liblouisxslt as an example

Add liblouisxslt as an example to python/examples. This is basically an extension of libxslt that lets you invoke liblouis from an xslt stylesheet to do Braille translation on text nodes for example.

compbrlLeftCursor

Added a patch provided by Volker Bijewitz to implement compbrlLeftCursor.

Bug fixes

output cursorPos

Fix the output cursorPos when the compbrlAtCursor mode is enabled and the characters around the cursor translate to multiple braille cells, such as in the Chinese braille tables.

outpos when doing back translation

Include a patch by Timothy Lee to fix outpos when doing back translation ( issue 11 )

inputPos/outputPos for undefined characters

Fix the input/output position arrays for characters in the input which are undefined in the translation table.

table fixes

  • Fixed a bug with back translation of '*n'. ( issue 13 )
  • Fixes to the en-us-g2.ctb table

Python bindings

  • Remove unnecessary imports, allowing the bindings to run in Python 2.7. ( issue 12 )
  • lou_translate* writes output information in typeform, so allocate enough bytes for it. Fixes possible buffer overruns and resultant crashes.

Miscellaneous

  • Fixes to the man page generation to fix issues that were reported by the Debian packaging builder
  • Do not invoke help2man when cross-compiling
  • Documentation updates ( issue 10 )
  • Removing noletsign defaults
  • Many small fixes

older news

Powered by Google Project Hosting