A tremendous amount of work by Dave Mielke and Bert Frees has gone into this release. They have improved liblouis for use on note taker devices, for backwards translation and a number of languages. Many other contributors (listed below) have also helped in fixing bugs and improving braille tables, such as Dutch, Mongolian, Polish, Ancient Greek, Danish, Irish, Chinese, and American Braille Computer Code.
For a detailed list of all the changes refer to the list of closed issues.
- New features
- Bug fixes
- Braille table improvements
- Other changes
- Deprecation notice
- Backwards incompatible changes
- Invisible changes
- New, renamed or removed tables
New features
- Enable
always
rules with a single character and a single braille cell for back-translation. Thanks to Bue Vester-Andersen. - Implement
noUndefined
mode for forward translation, thanks to Dave Mielke. - Use fallback braille representations (NABCC) for rendering undefined characters in hexadecimal notation, thanks to Dave Mielke.
- Always render undefined characters, also ASCII characters, in hexadecimal notation.
- Add a new metadata field
index-name
for selecting a table from a list fast and efficiently. It has the most important information first and no redundant information. It should look nice when sorted. This in contrast to the existingdisplay-name
field which is for describing a table accurately and should sound good. Thanks to Dave Mielke and Bert Frees.
Bug fixes
- Don't let a caps passage end on a word with no letters. Thanks to Bert Frees.
- Handle word resets in the last word of an caps or emphasis passage if the end indicator was placed before the word. Thanks to Bert Frees.
- Never convert to lowercase if
capsletter
is not defined. Thanks to Bert Frees. - Fix position mapping for back-translation when
noUndefined
mode is active. Thanks to Dave Mielke. - Fix bug where a translation would hang on words that match both a
nocont
and arepeated
rule. Thanks to Dave Mielke. - Fix bug where the effect of
capsnocont
would leak to the next word if that word starts with a capital. Thanks to Bue Vester-Andersen.
Braille table improvements
- Fix an issue with ordinal numbers inside caps passages in Dutch braille. Thanks to Bert Frees.
- Improved back-translation for Mongolian thanks to Angaragerdene.
- Fixes to Polish grade 1 and Polish computer braille thanks to Łukasz Golonka.
- Improvements to Ancient Greek braille, which has been renamed "Greek international braille". A version with composed accents is made available as a .uti table. Thanks to Dave Mielke and Μαρια Γεωργακαράκου (Maria Georgakarakou).
- Various improvements to modern Greek thanks to Dave Mielke.
- Improvements and fixes to Spanish contracted braille. Details in #741. Thanks to Juan Pablo Bello.
- Improvements and fixes to the Danish tables. Thanks to Bue Vester-Andersen.
- Add a display table to match Word CX which is used in Norway and Sweden, and maybe also in other countries thanks to Lars Bjørndal.
- Fix handling of colon within number in Dutch braille, thanks to Jake Kyle.
- Fix translation of bullet and dot operators in Dutch braille, thanks to Paul Rambags
- Added North American Braille Computer Code table (
en-nabcc.utb
) which is the counterpart of thetext_nabcc.dis
display table. Thanks to Dave Mielke. - Add support for the International Phonetic Alphabet (IPA) to the Chinese bopomofo braille table, thanks to Hurt Huang and Sponge Jhan. Various improvements, including dot patterns and test cases, to the Chinese bopomofo braille table, thanks to Sponge Jhan.
- Unified English Braille no longer displays a single underscore when multiple underscores are in the text, thanks to André-Abush Clause.
- Update to Afrikaans uncontracted braille and new table for contracted braille. Thanks to Christo de Klerk and Greg Kearney.
- Update Irish braille (contracted and uncontracted) to the May 2019 version of the specification, thanks to Ronan McGuirk
Other changes
- The python wrapper now encodes and decodes strings to/from UTF-16 and UTF-32 using the surrogatepass error handler. This ensures that single UTF-16 surrogate characters are processed correctly by the wrapper and don't raise an encoding/decoding error. Thanks to Leonard de Ruijter.
- Metadata keys and values are now case insensitive, thanks to Dave Mielke.
- Remove
unicodedefs.cti
. It was obsolete and never meant to be included by any tables. Instead use the online references as mentioned in the documentation now. See also #696. lou_checkyaml
test reporting has been improved, thanks to Bert Frees. For example it now has a--verbose
option so that printing of expected failures can be enabled.-
Hyphenation tables have been removed from tables except those needed for
nocross
rules, thanks to Bert Frees.The idea is that the caller (for example
odt2braille
orliblouisutdml
) should be able to decide for themselves which hyphenation table to use. The case in which a table contains nocross rules is an exception. In this case the hyphenation patterns are a real part of the table. Because it is not recommended to append an own hyphenation table in this case, a#-has-nocross
metadata field was added to indicate that a table contains nocross rules. lou_hyphenate
can now handle more than just words (sequences of letters), e.g compound words, thanks to Bert Frees.
Deprecation notice
- The
noUndefinedDots
mode has been renamed tonoUndefined
. For backwards compatibilitynoUndefinedDots
is still available in the header file and in the Python bindings, as an alias fornoUndefined
.
Backwards incompatible changes
None
Invisible changes
- Internally separate more clearly the display and translation phases.
New, renamed or removed tables
New
- grc-international-common.uti
- grc-international-composed.uti
- grc-international-decomposed.uti
- en-nabcc.utb
Renamed
- gr-bb.ctb -> grc-international-en.utb
Removed
- unicodedefs.cti
- fi-fi.ctb