[liblouis-liblouisxml] liblouis 3.13.0 has been released

  • From: Christian Egli <christian.egli@xxxxxx>
  • To: "liblouis-liblouisxml\@freelists.org" <liblouis-liblouisxml@xxxxxxxxxxxxx>
  • Date: Mon, 02 Mar 2020 17:27:39 +0100


The liblouis developer team is proud to announce the liblouis release
3.13.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 lots of different people has gone into
this release. Bert Frees for example added new opcodes, fixed long
standing bugs (with emphasis and capitalization), made the documentation
more clear and helped table contributors bringing in their improvements.
Bue Vester-Andersen added major improvements to Danish and German
braille. This release also contains much improved tables for Afrikaans,
Russian computer braille, Urdu and Chinese.

On a personal note I'd like to say that this is the 20th release of
liblouis shipped by the current release team Bert Frees and Christian
Egli. I hope we can continue to do so.

For a detailed list of all the changes refer to the list of closed
issues [3]_.

New features
------------

-  The ``nocross`` opcode has been made into a prefix opcode, which
   means that it can now be used in combination not just with the
   ``always`` opcode but also with other translation opcodes such as
   ``begword``, e.g. ``nocross begword sh 146`` for example. The old
   usage of the opcode no longer works, see "Backwards incompatible
   changes" below.
-  Added a new opcode ``rependword``, needed to implement Malay braille.
   Thanks to Bert Frees.
-  Emphasis and capitals can now be marked correctly in more cases.
   Thanks to Bert Frees.

   -  When ``begemphword`` (``begcapsword``) is defined but not
      ``endemphword`` (``endcapsword``), use ``emphletter``
      (``capsletter``) to mark every character in an emphasized
      (capitalized) part that ends in the middle of a word.
   -  When ``begemphword`` (``begcapsword``) and ``begemph``
      (``begcaps``) are both not defined, use ``emphletter``
      (``capsletter``) to mark every emphasized (uppercase) letter.
   -  ``capsnocont`` has no influence anymore on whether ``capsletter``
      is used for every uppercase letter or not, see "Backwards
      incompatible changes" below.

Bug fixes
---------

-  Fix a crash on sparc64 thanks to Samuel Thibault.
-  Fixed a bug where the ``inputPos`` array was not monotonically
   increasing. This is a problem for language bindings that try to do
   hyphenation based on this information. Thanks to Bert Frees.
-  A couple of small Coverity fixes thanks to David King.
-  Fix an infinite loop involving multipass rules and backtranslation
   thanks to Bert Frees and Bue Vester-Andersen.
-  Fix several problems in the Python bindings thanks to Leonard de
   Ruijter, Łukasz Golonka and André-Abush Clause:

   -  Ensure that the mbcs encoding is always used to encode file path
      on Windows, especially when 'Unicode UTF-8' feature is enabled.
   -  ``getTypeformForEmphClass`` was passed a decoded string on Python
      3 instead of an encoded one.
   -  The same applies to ``compileString``. We encoded the input
      string, but never used that encoded one when passing it to
      liblouis.

-  ``begemphword`` (``begcapsword``) and ``endemphword``
   (``endcapsword``) are now used for single letters within a word when
   ``emphletter`` (``capsletter``) is not defined.
-  For backward translation the returned input length is now equal to
   the initial input length (as it is for forward translation) thanks to
   Bert Frees.

Braille table improvements
--------------------------

-  Improvements to Afrikaans thanks to Christo de Klerk

   -  Fixed back translation of some lower words.
   -  Fixed several contraction errors where contractions are based on
      pronunciation or occur where compound words join.
   -  Eliminated grade 1 indicator where a single letter follows a
      single apostrophe to indicate an abbreviated word, e.g. 'k for ek.
   -  Corrected the use of the grade 1 indicator in grade 2 with signs
      which would conflict with contractions, such as the trademark sign
      that would conflict with the contraction of tussen.
   -  Fixed the back translation conflict between the UEB circle shape
      indicator and words containing $= being the contraction for
      &quot;alge&quot;.

-  Improvements to Russian computer braille table thanks to Andrey
   Yakuboy.

   -  The table is now based on the Unicode character set. A lot of new
      characters were added that aren't in KOI8-R, including Greek,
      Hebrew, accented letters and so on.
   -  For special characters we now follow the definitions from other
      software (JAWS, TSS, DBT) instead of following the American
      standard.

-  Improvements to Urdu Braille thanks to Jake Kyle

   -  Changed definition of \x0624 (Waw with hamza above) from dots
      1256 to dots 3-2456 following advice from proof reader.
   -  Added 2 character versions of letter plus diactric (previously
      only the one character versions defined):

-  Updates to the Danish Tables thanks to Bue Vester-Andersen:

   -  Fixed back-translation for some JAWS Braille drivers, which
      deliver Unicode characters to Liblouis as input from a Braille
      keyboard.
   -  Ensured proper use of letsign in connection with accented letters.
   -  Re-arranged and strengthened tests to include all Unicode
      characters defined in the tables.

-  Updates to the Chinese braille table (``zh-tw.ctb``) thanks to
   Bo-Cheng Jhan, Coscell Kao and Victor Cai.
-  New experimental German tables for grade 0 (Basisschrift) and grade 1
   (Vollschrift) that are more suitable for back-translation, thanks to
   Bue Vester-Andersen.

   -  All capital letters are marked.
   -  Accented letters are translated using ``de-accents-detailed.cti``
      to make the translation as detailed as possible.
   -  Apostrophes and single quotation marks are translated the same.

Other changes
-------------

-  The documentation for the emphasis opcodes has been reworked and is
   now much more clear and accurate thanks to Bert Frees.

Deprecation notice
------------------

-  Python 2 is no longer maintained [4]_ since the beginning of this
   year. The current liblouis Python bindings work with both Python 2
   and 3. However the support for Python 2 will be dropped in the next
   release (3.14) at the beginning of June 2020. If you have code that
   uses the liblouis Python bindings with Python 2 then please refer
   to the official porting guide [5]_ for help with migrating it.

Backwards incompatible changes
------------------------------

-  Since the ``nocross`` opcode has been made into a prefix opcode, it
   must now be used in combination with another opcode. For example
   ``nocross sh 146`` must now be written as ``nocross always sh 146``.
-  The ``capsnocont`` opcode can not be used anymore to control whether
   ``capsletter`` is inserted for every uppercase letter. This now
   depends on whether ``begcaps`` and ``begcapsword`` are defined.

Invisible changes
-----------------

New, renamed or removed tables
------------------------------

New
~~~

-  de-g0-bidi-core.uti
-  de-g0-bidi.utb
-  de-g1-bidi-core.cti
-  de-g1-bidi.ctb

Renamed
~~~~~~~

None

Removed
~~~~~~~

None

Next release
============

The next release will be published on June 1 2020 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/23?closed=1

.. [4]
   https://www.python.org/dev/peps/pep-0373/

.. [5]
   https://docs.python.org/3/howto/pyporting.html

-- 
Christian Egli
Swiss Library for the Blind, Visually Impaired and Print Disabled
Grubenstrasse 12, CH-8045 Zürich, Switzerland

For a description of the software, to download it and links to
project pages go to http://liblouis.org

Other related posts: