Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 1 | liblouis 3.11.0 has been released |
Christian Egli | 15c482e | 2009-01-27 16:23:57 +0000 | [diff] [blame] | 2 | |
Christian Egli | 554b70f | 2014-09-01 13:47:30 +0200 | [diff] [blame] | 3 | The liblouis developer team is proud to announce the liblouis release |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 4 | 3.11.0. The release is available for download at: |
Christian Egli | 15c482e | 2009-01-27 16:23:57 +0000 | [diff] [blame] | 5 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 6 | https://github.com/liblouis/liblouis/releases |
Christian Egli | 15c482e | 2009-01-27 16:23:57 +0000 | [diff] [blame] | 7 | |
| 8 | Introduction |
Christian Egli | 554b70f | 2014-09-01 13:47:30 +0200 | [diff] [blame] | 9 | ============ |
Christian Egli | 15c482e | 2009-01-27 16:23:57 +0000 | [diff] [blame] | 10 | |
| 11 | Liblouis is an open-source braille translator and back-translator. It |
Christian Egli | 183d9e7 | 2011-05-09 07:38:36 +0000 | [diff] [blame] | 12 | features support for computer, literary and math braille, supports |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 13 | contracted and uncontracted translation for many, many languages [1]_. |
| 14 | It plays an important role in an open source accessibility stack and is |
| 15 | used by screenreaders such as NVDA, Orca and JAWS. A companion project |
| 16 | liblouisutdml [2]_ deals with formatting of braille. |
Christian Egli | 15c482e | 2009-01-27 16:23:57 +0000 | [diff] [blame] | 17 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 18 | Noteworthy changes in this release |
| 19 | ================================== |
Christian Egli | 15c482e | 2009-01-27 16:23:57 +0000 | [diff] [blame] | 20 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 21 | A tremendous amount of work by Dave Mielke and Bert Frees has gone into |
| 22 | this release. They have improved liblouis for use on note taker devices, |
| 23 | for backwards translation and a number of languages. Many other |
| 24 | contributors (listed below) have also helped in fixing bugs and |
| 25 | improving braille tables, such as Dutch, Mongolian, Polish, Ancient |
| 26 | Greek, Danish, Irish, Chinese, and American Braille Computer Code. |
Christian Egli | 343b1ae | 2016-07-14 17:40:54 +0200 | [diff] [blame] | 27 | |
Christian Egli | 8923b3a | 2018-06-04 18:18:47 +0200 | [diff] [blame] | 28 | For a detailed list of all the changes refer to the list of closed |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 29 | issues [3]_. |
Christian Egli | 1f0ae09 | 2017-09-04 17:23:22 +0200 | [diff] [blame] | 30 | |
| 31 | New features |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 32 | ------------ |
Christian Egli | 1f0ae09 | 2017-09-04 17:23:22 +0200 | [diff] [blame] | 33 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 34 | - Enable ``always`` rules with a single character and a single braille |
| 35 | cell for back-translation. Thanks to Bue Vester-Andersen. |
| 36 | - Implement ``noUndefined`` mode for forward translation, thanks to |
| 37 | Dave Mielke. |
| 38 | - Use fallback braille representations (NABCC) for rendering undefined |
| 39 | characters in hexadecimal notation, thanks to Dave Mielke. |
| 40 | - Always render undefined characters, also ASCII characters, in |
| 41 | hexadecimal notation. |
| 42 | - Add a new metadata field ``index-name`` for selecting a table from a |
| 43 | list fast and efficiently. It has the most important information |
| 44 | first and no redundant information. It should look nice when sorted. |
| 45 | This in contrast to the existing ``display-name`` field which is for |
| 46 | describing a table accurately and should sound good. Thanks to Dave |
| 47 | Mielke and Bert Frees. |
Christian Egli | 2d6ae7e | 2014-12-01 14:37:01 +0100 | [diff] [blame] | 48 | |
| 49 | Bug fixes |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 50 | --------- |
Christian Egli | 2d6ae7e | 2014-12-01 14:37:01 +0100 | [diff] [blame] | 51 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 52 | - Don't let a caps passage end on a word with no letters. Thanks to |
| 53 | Bert Frees. |
| 54 | - Handle word resets in the last word of an caps or emphasis passage if |
| 55 | the end indicator was placed before the word. Thanks to Bert Frees. |
| 56 | - Never convert to lowercase if ``capsletter`` is not defined. Thanks |
| 57 | to Bert Frees. |
| 58 | - Fix position mapping for back-translation when ``noUndefined`` mode |
| 59 | is active. Thanks to Dave Mielke. |
| 60 | - Fix bug where a translation would hang on words that match both a |
| 61 | ``nocont`` and a ``repeated`` rule. Thanks to Dave Mielke. |
| 62 | - Fix bug where the effect of ``capsnocont`` would leak to the next |
| 63 | word if that word starts with a capital. Thanks to Bue |
| 64 | Vester-Andersen. |
Christian Egli | 2d6ae7e | 2014-12-01 14:37:01 +0100 | [diff] [blame] | 65 | |
Christian Egli | b4b192b | 2015-03-02 10:54:30 +0100 | [diff] [blame] | 66 | Braille table improvements |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 67 | -------------------------- |
Christian Egli | 695316a | 2017-12-04 16:51:01 +0100 | [diff] [blame] | 68 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 69 | - Fix an issue with ordinal numbers inside caps passages in Dutch |
| 70 | braille. Thanks to Bert Frees. |
| 71 | - Improved back-translation for Mongolian thanks to Angaragerdene. |
| 72 | - Fixes to Polish grade 1 and Polish computer braille thanks to Łukasz |
| 73 | Golonka. |
| 74 | - Improvements to Ancient Greek braille, which has been renamed |
| 75 | "Greek international braille". A version with composed |
| 76 | accents is made available as a .uti table. Thanks to Dave Mielke and |
| 77 | Μαρια Γεωργακαράκου (Maria Georgakarakou). |
| 78 | - Various improvements to modern Greek thanks to Dave Mielke. |
| 79 | - Improvements and fixes to Spanish contracted braille. Details in |
| 80 | #741. Thanks to Juan Pablo Bello. |
| 81 | - Improvements and fixes to the Danish tables. Thanks to Bue |
| 82 | Vester-Andersen. |
| 83 | - Add a display table to match Word CX which is used in Norway and |
| 84 | Sweden, and maybe also in other countries thanks to Lars Bjørndal. |
| 85 | - Fix handling of colon within number in Dutch braille, thanks to Jake |
| 86 | Kyle. |
| 87 | - Fix translation of bullet and dot operators in Dutch braille, thanks |
| 88 | to Paul Rambags |
| 89 | - Added North American Braille Computer Code table (``en-nabcc.utb``) |
| 90 | which is the counterpart of the ``text_nabcc.dis`` display table. |
| 91 | Thanks to Dave Mielke. |
| 92 | - Add support for the International Phonetic Alphabet (IPA) to the |
| 93 | Chinese bopomofo braille table, thanks to Hurt Huang and Sponge Jhan. |
| 94 | Various improvements, including dot patterns and test cases, to the |
| 95 | Chinese bopomofo braille table, thanks to Sponge Jhan. |
| 96 | - Unified English Braille no longer displays a single underscore when |
| 97 | multiple underscores are in the text, thanks to André-Abush Clause. |
| 98 | - Update to Afrikaans uncontracted braille and new table for contracted |
| 99 | braille. Thanks to Christo de Klerk and Greg Kearney. |
| 100 | - Update Irish braille (contracted and uncontracted) to the May 2019 |
| 101 | version of the specification, thanks to Ronan McGuirk |
Christian Egli | 695316a | 2017-12-04 16:51:01 +0100 | [diff] [blame] | 102 | |
| 103 | Other changes |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 104 | ------------- |
Christian Egli | 695316a | 2017-12-04 16:51:01 +0100 | [diff] [blame] | 105 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 106 | - The python wrapper now encodes and decodes strings to/from UTF-16 and |
| 107 | UTF-32 using the surrogatepass error handler. This ensures that |
| 108 | single UTF-16 surrogate characters are processed correctly by the |
| 109 | wrapper and don't raise an encoding/decoding error. Thanks to Leonard |
| 110 | de Ruijter. |
| 111 | - Metadata keys and values are now case insensitive, thanks to Dave |
| 112 | Mielke. |
| 113 | - Remove ``unicodedefs.cti``. It was obsolete and never meant to be |
| 114 | included by any tables. Instead use the online references as |
| 115 | mentioned in the documentation now. See also #696. |
| 116 | - ``lou_checkyaml`` test reporting has been improved, thanks to Bert |
| 117 | Frees. For example it now has a ``--verbose`` option so that printing |
| 118 | of expected failures can be enabled. |
| 119 | - Hyphenation tables have been removed from tables except those needed |
| 120 | for ``nocross`` rules, thanks to Bert Frees. |
Christian Egli | f56443c | 2019-06-03 16:22:28 +0200 | [diff] [blame] | 121 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 122 | The idea is that the caller (for example ``odt2braille`` or |
| 123 | ``liblouisutdml``) should be able to decide for themselves which |
| 124 | hyphenation table to use. The case in which a table contains nocross |
| 125 | rules is an exception. In this case the hyphenation patterns are a |
| 126 | real part of the table. Because it is not recommended to append an |
| 127 | own hyphenation table in this case, a ``#-has-nocross`` metadata |
| 128 | field was added to indicate that a table contains nocross rules. |
| 129 | - ``lou_hyphenate`` can now handle more than just words (sequences of |
| 130 | letters), e.g compound words, thanks to Bert Frees. |
Christian Egli | 695316a | 2017-12-04 16:51:01 +0100 | [diff] [blame] | 131 | |
| 132 | Deprecation notice |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 133 | ------------------ |
Christian Egli | 695316a | 2017-12-04 16:51:01 +0100 | [diff] [blame] | 134 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 135 | - The ``noUndefinedDots`` mode has been renamed to ``noUndefined``. For |
| 136 | backwards compatibility ``noUndefinedDots`` is still available in the |
| 137 | header file and in the Python bindings, as an alias for |
| 138 | ``noUndefined``. |
Christian Egli | 695316a | 2017-12-04 16:51:01 +0100 | [diff] [blame] | 139 | |
| 140 | Backwards incompatible changes |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 141 | ------------------------------ |
Christian Egli | 695316a | 2017-12-04 16:51:01 +0100 | [diff] [blame] | 142 | |
Christian Egli | f56443c | 2019-06-03 16:22:28 +0200 | [diff] [blame] | 143 | None |
| 144 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 145 | Invisible changes |
| 146 | ----------------- |
| 147 | |
| 148 | - Internally separate more clearly the display and translation phases. |
Christian Egli | d1998f2 | 2017-06-06 14:46:08 +0200 | [diff] [blame] | 149 | |
| 150 | New, renamed or removed tables |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 151 | ------------------------------ |
Christian Egli | d1998f2 | 2017-06-06 14:46:08 +0200 | [diff] [blame] | 152 | |
| 153 | New |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 154 | ~~~ |
Christian Egli | 695316a | 2017-12-04 16:51:01 +0100 | [diff] [blame] | 155 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 156 | - grc-international-common.uti |
| 157 | - grc-international-composed.uti |
| 158 | - grc-international-decomposed.uti |
| 159 | - en-nabcc.utb |
Christian Egli | d1998f2 | 2017-06-06 14:46:08 +0200 | [diff] [blame] | 160 | |
| 161 | Renamed |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 162 | ~~~~~~~ |
Christian Egli | 695316a | 2017-12-04 16:51:01 +0100 | [diff] [blame] | 163 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 164 | - gr-bb.ctb -> grc-international-en.utb |
Christian Egli | 695316a | 2017-12-04 16:51:01 +0100 | [diff] [blame] | 165 | |
| 166 | Removed |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 167 | ~~~~~~~ |
Christian Egli | 0dee1fc | 2018-03-05 17:09:58 +0100 | [diff] [blame] | 168 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 169 | - unicodedefs.cti |
| 170 | - fi-fi.ctb |
Christian Egli | 2d6ae7e | 2014-12-01 14:37:01 +0100 | [diff] [blame] | 171 | |
Christian Egli | b4b192b | 2015-03-02 10:54:30 +0100 | [diff] [blame] | 172 | Next release |
| 173 | ============ |
Christian Egli | 2d6ae7e | 2014-12-01 14:37:01 +0100 | [diff] [blame] | 174 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 175 | The next release will be published on December 2 2019 so please keep up |
| 176 | the excellent work and keep those improvements coming. |
Christian Egli | 15c482e | 2009-01-27 16:23:57 +0000 | [diff] [blame] | 177 | |
| 178 | Share and Enjoy! |
| 179 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 180 | – Christian Egli, on behalf of the liblouis developers |
Christian Egli | 971d4e8 | 2009-01-30 10:09:52 +0000 | [diff] [blame] | 181 | |
| 182 | Footnotes |
Christian Egli | 554b70f | 2014-09-01 13:47:30 +0200 | [diff] [blame] | 183 | ========= |
Christian Egli | 971d4e8 | 2009-01-30 10:09:52 +0000 | [diff] [blame] | 184 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 185 | .. [1] |
| 186 | https://github.com/liblouis/liblouis/tree/master/tables |
Christian Egli | 8c46e1b | 2018-12-03 16:47:51 +0100 | [diff] [blame] | 187 | |
Christian Egli | 67ab8e9 | 2019-09-02 13:29:53 +0200 | [diff] [blame^] | 188 | .. [2] |
| 189 | https://github.com/liblouis/liblouisutdml |
| 190 | |
| 191 | .. [3] |
| 192 | https://github.com/liblouis/liblouis/milestone/21?closed=1 |