| liblouis 3.13.0 has been released |
| |
| 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*. |
| - 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]]. |
| |
| 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 |
| "alge". |
| |
| - 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 |