Skip to content

06 Mar 2017 - Liblouis

An influx of new contributors have made sure that liblouis continues to improve. Back translation has seen major improvements, there are some additional modes to help screen readers, for many tables meta data has been added, the Python bindings are more robust, Windows support has been improved, the YAML test suite has been generalized and as usual new and improved braille tables have been included. On the licensing front we managed to get almost all tables re-licensed to LGPLv2.1+.

New features

Meta data

Most of the translation tables now contain meta data. This makes them discoverable. Programs can use the lou_findTable function to find a table based on a query.

noUndefinedDots mode

Add a noUndefinedDots mode to disable the output of dot numbers when back-translating undefined patterns. Thanks to James Teh.

When back translating input from a braille keyboard cell by cell, it is desirable to output characters as soon as they are produced. Similarly, when back translating contracted braille, it is desirable to provide a “guess” to the user of the characters they typed. To achieve this, liblouis needs to have the ability to produce no text when indicators (which don’t produce a character by themselves) are not followed by another cell. This works already for indicators liblouis knows about such as capital sign, number sign, etc., but it does not work for indicators which are not (and cannot be) specifically defined as indicators. For example, in UEB, dots 4 5 6 alone produces the text “\456/”. Setting the noUndefinedDots mode suppresses this dot number output.

partialTrans mode

Add a partialTrans mode to specify that back-translation input should be treated as an incomplete word. Thanks to James Teh.

If this mode is set, rules that apply only for complete words or at the end of a word will not take effect. This is intended to be used when translating input typed on a braille keyboard to provide a rough idea to the user of the characters they are typing before the word is complete.

YAML test framework

The YAML framework has been extended and is much more useful now. You can test multiple tables within one YAML file, you can define test tables directly inline and you can test multiple tables using the same test data. Refer to the documentation for the details.

If really not wanted the YAML tests can be disabled by specifying configure --without-yaml.

Bug fixes

  • Fixes implicit declaration of pattern_check thanks to Reiner Dolp
  • Fix a stackoverflow crash on applications with smaller stack size. Thanks to Victor Montalvão.
  • Fix the \v escape sequence. Thanks to Davy Kager.
  • The Python bindings now give a helpful error if liblouis has been compiled with a different character size than Python. Thanks to Matt Wenn.
  • Massive bug fixes in multipass rules. Dave Mielke has done a tremendous job improving the multipass machinery also in the context of back-translation. Where needed nofor/noback has been added to the multipass rules.

Other changes

  • Improvements to the Emacs mode for editing liblouis tables thanks to Christian Egli
  • Documenting lou_charSize thanks to Reiner Dolp
  • Support for relative table paths in the tests. This will make sure you always know which table a test actually uses.
  • Infrastructure to build windows binaries in a Docker container, thanks to Bert Frees

Braille table improvements

  • UEB improvements, thanks to Mike Gray
    • Fixed apostrophe and back translation
    • Added rules for Unicode apostrophe handling
    • Improvements to UEB and Nemeth math
  • Complete overhaul of Lithuanian 8-dots table, thanks to Rimas Kudelis
  • New Urdu 6 Dot Grade 1 and 2 Braille tables thanks to Jake Kyle
  • Improvements to Italian 8 dots computer braille, thanks to Simone Dal Maso.
  • New table unicode-braille.utb that helps to back translate braille input to Unicode braille output, thanks to Leonard de Ruijter.
  • Improvements to the Chinese braille table thanks to Coscell Kao.
  • New Turkish braille table for grade 1 that should replace the old tr.ctb table, thanks to Arend Arends.
  • New Persian grade 1 table and 8-dots computer table thanks to Mohammadreza Rashad.
  • New table for the International Phonetic Alphabet thanks to Ludovic Oger
  • Fixes for the French 6 and 8 dots tables thanks to Michel Such. Some errors have been fixed and many Unicode characters have been added.
  • Add an extended 8-dot computer braille table for U.S. English thanks to Davy Kager. The table is tailored for use on Windows (CP-1252) and uses dot patterns from Windows screen readers, but should be useful on other platforms too.
  • New Greek table that is better than the existing Greek Grade 1 Braille Table (gr-gr-g1.utb) thanks to Dave Mielke.
  • Improved number back-translations on fr-fr-g1 and vi-g1 tables thanks to Victor Montalvao.
  • New Chinese Braille table for use in the mainland of China thanks to Kaifang Bao of RejoinTech.
  • The Black Circle character is commonly used for displaying password characters. The absence of its definition leads to users not being able to know how many characters were typed in such fields. This has been improved for many tables thanks to Victor Montalvao.

License changes

  • DocArch has agreed to re-license their tables, so we have 8 more tables under the LGPLv2.1+.

Backwards incompatible changes

  • The naming in the YAML test framework has changed slightly from tables: to table:.

Next release

The next release will be published on June 5, 2017 so please keep up the excellent work and keep those improvements coming.