blob: aaeaf6e157d952fe8a0e7f0f2eca74c7d549c551 [file] [log] [blame]
liblouis 3.11.0 has been released
The liblouis developer team is proud to announce the liblouis release
3.11.0. The release is available for download at:
https://github.com/liblouis/liblouis/releases
Introduction
============
Liblouis is an open-source braille translator and back-translator. It
features support for computer, literary and math braille, supports
contracted and uncontracted translation for many, many languages [1]_.
It plays an important role in an open source accessibility stack and is
used by screenreaders such as NVDA, Orca and JAWS. A companion project
liblouisutdml [2]_ deals with formatting of braille.
Noteworthy changes in this release
==================================
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 [3]_.
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 existing ``display-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 a ``repeated`` 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 the ``text_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`` or
``liblouisutdml``) 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 to ``noUndefined``. For
backwards compatibility ``noUndefinedDots`` is still available in the
header file and in the Python bindings, as an alias for
``noUndefined``.
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
Next release
============
The next release will be published on December 2 2019 so please keep up
the excellent work and keep those improvements coming.
Share and Enjoy!
– Christian Egli, on behalf of the liblouis developers
Footnotes
=========
.. [1]
https://github.com/liblouis/liblouis/tree/master/tables
.. [2]
https://github.com/liblouis/liblouisutdml
.. [3]
https://github.com/liblouis/liblouis/milestone/21?closed=1