Liblouis Versions Save

Open-source braille translator and back-translator.

v3.29.0

2 months ago

Noteworthy changes in this release

A lot of hard work by Andrey, Anthony, Attila, Bert, Bue and James went into this release. We have many improvements for UEB, better support for Belarusian and Ukrainian literary braille, a major upgrade for Turkish and miscellaneous enhancements for Kannada, Danish, Dutch, Esperanto and Malay. There is also a brand new table for classical Greek for Spanish braille readers.

I'd like to thank everybody for helping to bring liblouis forward.

For a detailed list of all the changes refer to the list of closed issues.

New features

  • There is a new uncontracted braille table to read classical Greek characters according to the technical document B12-1 by the Spanish Braille Commission, thanks to Iván Novegil.

Bug fixes

  • None

Braille table improvements

  • Fixed issues with Kannada table kannada.cti thanks to Jake Kyle.
  • Improvements to the Belarusian and Ukrainian literary braille tables thanks to Andrey Yakuboy:
    • Added support for back translation to the Belarusian and Ukrainian literary Braille tables (bel.utb and uk.utb respectively).
    • Changed the dot patterns for parentheses in the Ukrainian braille table from 126-345 to 2356.
    • Added new tables for Belarusian and Ukrainian braille with indication of capital letters (bel-detailed.utb and uk-detailed.utb respectively).
  • Minor improvements to the Danish tables thanks to Bue Vester-Andersen:
    • Fixed definition of dollar sign ($)
    • Fixed rules for applying section sign (§)
    • Fixed contraction of some words
  • Updates to UEB Contracted thanks to Anthony Tibbs:
    • Final letter groupsigns will not be used immediately following capital indicators (e.g. when the first letter of the groupsign is capitalized, or the groupsign follows a capitalized passage) per UEB Rule 10.8.2
  • Updates to UEB thanks to James Bowden:
    • Back translating braille dot 3 now results in the ordinary apostrophe U+0027 rather than U+2019
    • Dot 5, used for "spaced digits" is only applied if a no-break space U+00a0 is used in the input. It fixes an issue with British postcodes which should be treated as two separate items. It also means that if someone wants spaced digits, numbers have to be joined together with no-break spaces deliberately.
  • Do not collapse Unicode braille in Dutch, thanks to Davy Kager.
  • Improvements to Hungarian (added more exceptions) thanks to Attila Hammer.
  • Added support for back-translation to the Esperanto table, thanks to Bue Vester-Andersen.
  • Major upgrade to the Turkish tables thanks to Oğuz UĞUR with lots of help from Attila Hammer.
    • add support for accented characters
    • add punctuation symbols from the Turkish Braille Writing Guideline
    • fix some contractions
  • Corrections to the Malay Table thanks to lbk2907.

Other changes

  • Duplicate emphasis classes are no longer warnings thanks to Christian Egli. There are cases where emphasis redefinition is legitimate. They are simply logged now.

Deprecation notice

  • None

Backwards incompatible changes

  • None

Invisible changes

  • None

New, renamed or removed tables

New

  • bel-detailed.utb
  • uk-detailed.utb

Renamed

None

Removed

None

v3.28.0

5 months ago

Noteworthy changes in this release

This release manages to bring as many new features, table improvements and bug fixes as we haven't seen in a long time. There are a number of major bug fixes that Bert worked on that fix bugs and inconsistencies. On the table side there is a new table for Filipino contracted braille, James has tirelessly been working on UEB improvements and (as usual) Attila worked on the Hungarian tables.

I'd like to thank everybody for helping to bring liblouis forward.

For a detailed list of all the changes refer to the list of closed issues.

New features

  • lou_translate has a new option to specify the table to use with a query. See the updated documentation on how to make use of this new feature.

Bug fixes

  • Fix a bug when matching context rules that begin with uppercase letters. Thanks to Anthony Tibbs for the very detailed bug report and thanks to Bert for the actual fix.
  • Fix a memory corruption error in the code for the swap opcodes. Thanks to the OSS-fuzz project for reporting and to Christian Egli for fixing it.
  • Change how emphasis phrases are determined. Also allow non-whole words at the start and end of a phrase. This fixes a problem in the UEB handling. Thanks to Ken Perry from APH for reporting and to Bert Frees for fixing it.
  • Character definition and base rules are now always considered in the order in which they are defined in the table. In other words the topmost rule always wins. This fixes a number of problems and inconsistencies. Thanks to Bert Frees for the fix.
    • Fix a problem with compbrlAtCursor and compbrlLeftCursor that was reported by Daniel Mayr
  • When a table does not define any capital marks, rules are now case sensitive thanks to Bert Frees

Braille table improvements

  • Improvements to UEB
    • fixes to many words starting with letters "BE-".
    • Fix back translation of dots 26 - when standing alone; should be the word enough.
    • Fix assignment for the right double arrow and added left, up, and down double arrows.
    • Fix typos in a couple of rules.
    • Fix words beginning "CONS-" and "DISHD-" when written uppercase, all above thanks to James Bowden.
    • Ensure letter indicators are added to letters A-J following numbers in a capitalized passage, thanks to Anthony Tibbs.
  • Improvements to Hungarian (added more exceptions) thanks to Attila Hammer.
  • New table for Filipino contracted braille, thanks to Allan Mesoga and Dang Hoai Phúc.

Other changes

  • The manywarnigs module from gnulib is no longer used. It caused massive slowdowns when compiling with gcc.
  • Add the name of the concerned table when logging warnings thanks to Bert Frees for the patch and to Attila Hammer for the PR.

Deprecation notice

  • None

Backwards incompatible changes

  • The order of how character definition and base rules are considered has changed. All included tables were adapted, but if you maintain your own tables you might want to look at the change to see what you need to do.

Invisible changes

New, renamed or removed tables

New

  • fil-g2.ctb

Renamed

None

Removed

None

v3.27.0

8 months ago

Noteworthy changes in this release

This release contains support for two more languages, namely Thai and Romanian uncontracted braille. There is also the usual assortment of incremental improvements to Bengali, Danish, Hungarian, Swedish, Urdu and US English. To top it off, some great new contributors did some code cleanups and bug fixes.

I'd like to thank everybody for helping to bring liblouis forward.

For a detailed list of all the changes refer to the list of closed issues.

New features

  • Added support for Thai braille thanks to Chatupol Nootatong, Dr. Wiraman Niyomphol and Itsawat Banlawanich from Thai braille fund and Foundation for the Blind in Thailand.
  • Added a new Romanian 6 dot table, thanks to BAUM Engineering.

Braille table improvements

  • Update to Urdu, removing old rule where dots 256 was used for Urdu letters TEH ALEF. Thanks to Jake Kyle.
  • Added the dari character to Bengali thanks to Attila Hammer.
  • Improvements to Hungarian (added more exceptions) thanks to Attila Hammer.
  • Improvements to Hungarian to support users if typing physical braille display, thanks to Attila Hammer.
  • Fixed the translation of Unicode ellipses in US English grade 1 and 2 tables thanks to Anthony Tibbs.
  • Added some more symbols to the Nemeth character definitions thanks to Norbert Markus and Attila Hammer.
  • Fixed a bug in Danish when back-translating a word contraction followed by "!", thanks to Bue Vester-Andersen.
  • Improved handling of numbers and fixed a couple of whole-word contraction errors in Swedish braille thanks to Insyn Scandinavia AB.
  • Added the possibility to retain the virtual dots on Dutch braille, so that it should be possible to distinguish between identical dot patterns that originate from different input. Thanks to Bert Frees.

Other changes

  • Removed some code smell thanks to Aaron Cannon.
  • Duplicate emphasis class definitions now cause a warning, thanks to Attila Hammer.

Deprecation notice

  • None

Backwards incompatible changes

  • The line continuation feature was removed, as it was no longer needed and caused problems (e.g. issue 239). The tables that depended on it were updated. Thanks to Aaron Cannon.
  • Invalid attribute names now cause a table compilation error instead of just a warning. Thanks to Attila Hammer.

New, renamed or removed tables

New

None

Renamed

None

Removed

None

v3.26.0

11 months ago

Noteworthy changes in this release

This release contains one new feature, namely the possibility to mark a test as an expected failure just for back- or forward translation. On top of that we have updates for Danish, Hungarian, Norwegian and Nemeth Braille plus the usual assortment of code cleanups and bug fixes.

I'd like to thank everybody for helping to bring liblouis forward.

For a detailed list of all the changes refer to the list of closed issues.

New features

  • The YAML syntax to define tests has been improved so that expected failures can now contain a direction attribute. In other words you can now specify whether you expect a test to fail for both directions or just for forward or backward translation. For more details consult the updated documentation on how to write YAML tests. Thanks to Christian Egli.

Bug fixes

  • Fix an out-of-bound write in brl_checks.c thanks to Bert Frees for the fix and to Han Zheng for the report.
  • Clear the display table cache on lou_free thanks to Bert Frees for the fix and to David Korczynski for the report.

Braille table improvements

  • Improvements to Hungarian (added more exceptions) thanks to Attila Hammer.
  • Changed the Danish grade 2 tables in accordance with updates from the Danish Braille committee, thanks to thanks to Bue Vester-Andersen.
  • Added support for more symbols in the Nemeth braille tables thanks to Norbert Markus.
  • Improvements to Norwegian braille thanks to Lars Bjørndal
    • Put noback before acute sign to enable input at sign (email addresses).
    • Added more noback prefixes.
    • Corrected leftwards arrow and added definition for left right arrow.
    • Changed bullet point from 2356 to 36-36. According to the Norwegian braille standard, this is the preferred unordered list item prefix.

Other changes

  • Clarify the README for Python thanks to Rob Beezer.
  • Properly remove support for Python2 in the Python bindings again thanks to Rob Beezer.

Deprecation notice

  • None

Backwards incompatible changes

  • None

Invisible changes

  • None

New, renamed or removed tables

New

  • None

Renamed

  • None

Removed

  • None

v3.25.0

1 year ago

Noteworthy changes in this release

We dedicate this release to the memory of John Boyer, the original author of liblouis. Sadly he passed away recently. We owe him a tremendous amount of gratitude. Without him liblouis would not exist.

A lot of work has gone into this release. We have quite a few security related fixes. Then there are updates to Dutch, Norwegian, Slovenian and Vietnamese. Attila, who never seems to get tired, updated the Hungarian tables and did some general cleanups in the tables.

Also due to some mishap our domain expired and we could not re-acquire it. So we had to change our domain to liblouis.io.

I'd like to thank everybody for helping to bring liblouis forward.

For a detailed list of all the changes refer to the list of closed issues.

New features

  • None

Bug fixes

  • Fixed several buffer overflow errors in lou_setDataPath, lou_logFile and resolveSubtable thanks to Marsman1996.

Braille table improvements

  • Fix a deprecation warning in Bulgarian 6 dots thanks to Attila Hammer.
  • Fix two broken space replacement rules for ZERO WIDTH SPACE and WORD JOINER thanks to Attila Hammer and Norbert Markus.
  • Fixes to Hungarian Braille exceptions and hyphenation thanks to Attila Hammer. This results in a much improved back-translation of capitalized words.
  • Support for both 8 and 6 dot math symbols in Hungarian thanks to Norbert Markus.
  • Update Dutch 8-dot computer braille table to the 2022 standard thanks to Leonard de Ruijter and the Dutch Braille Authority.
  • There are updates to the Norwegian braille standard. Most notably URLs and email addresses are no longer surrounded by braille patterns unless present in the original document. Thanks to Lars Bjørndal.
  • Add some missing character definitions to Slovenian computer braille, thanks to Jožef Gregorc.
  • Corrections and additions to Vietnamese thanks to Dang Hoai Phúc. Includes a new computer braille table.

Other changes

  • Change the domain name from liblouis.org to liblouis.io thanks to Christian Egli.
  • Simplify the Danish test to contain fewer files thanks to Bue Vester-Andersen and Bert Frees.
  • Add the tests and the examples of the Python bindings to the distribution tarball. Thanks to Rob Beezer for spotting this oversight.

Deprecation notice

  • The lou_setDataPath and lou_getDataPath functions have been deprecated. Please migrate to one of the other ways to set the table search path:
    • The recommended and most straightforward way to set the search path is to set the LOUIS_TABLEPATH environment variable.
    • You can also set a custom table resolver function through lou_registerTableResolver.
    • If you use the metadata based query API and haven't set the LOUIS_TABLEPATH environment variable, you can use the lou_indexTables function to tell Liblouis which files (not directories) to search.
    • Finally, there is the fallback solution of using absolute file paths.

Backwards incompatible changes

  • None

Invisible changes

  • None

New, renamed or removed tables

New

  • vi-cb8.utb (replaces vi.ctb)

Renamed

None

Removed

  • vi.ctb (replaced by vi-cb8.utb)

v3.24.0

1 year ago

Noteworthy changes in this release

This release contains major updates to Hungarian, UEB, and Chinese bopomofo braille. Danish has been completely reworked and there is now support for the Danish braille standard 2022. There are also some new tables so that liblouis can now generate Georgian computer braille, Swahili (Kenya) and Chichewa (Malawi). Aside from that there is the usual assortment of code cleanups and bug fixes.

I'd like to thank everybody for helping to bring liblouis forward.

For a detailed list of all the changes refer to the list of closed issues.

Braille table improvements

  • New grade 1, 1.2, 1.3, 1.4, 1.5 and 2 tables for Swahili (Kenya) and grade 1 table for Chichewa (Malawi) thanks to Jake Kyle, Dipendra Manocha and Martin Kieti.
  • Improvements to Hungarian thanks to Attila Hammer.
  • Update braille patterns of some Chinese characters and phrases in the Chinese bopomofo braille table thanks to Bo-Cheng Jhan.
  • Add experimental Georgian computer braille table thanks to Harris Mowbray and Mariam Mikiashvili.
  • Updated the Danish tables to the new 2022 Danish braille standard thanks to Bue Vester-Andersen.
    • Limited contraction level (grade 2l or 1.5) is no longer part of the Danish braille standard 2022.
    • There is no longer any need for "literary" tables. In Danish braille, capital letters are now always indicated, and steps have been taken in the standard to ensure better back-translation.
    • As requested by The Danish Braille Committee, the tables for the 1993 standard will be kept as an option for at least a year. All the 1993 tables have been renamed to include "1993" in the filename, so the new tables will be used as default.
  • Improvements to UEB thanks to James Bowden.
    • Add new sign for German sharp S (ICEB July 2022)
    • Fix a couple of acronyms which require grade 1 indicator (LLB, LLP)
    • Fix placement of numeral sign in letters comma digits
    • Review rules for "under" and "there" contractions

Deprecation notice

  • None

Backwards incompatible changes

  • None

New, renamed or removed tables

New

  • sw-ke-g1-2.ctb
  • sw-ke-g1-3.ctb
  • sw-ke-g1-4.ctb
  • sw-ke-g1-5.ctb
  • sw-ke-g1.utb
  • sw-ke-g2.ctb
  • ka.utb
  • ny-mw.utb
  • The following files now all refer to the corresponding tables for Danish braille 2022:
    • da-dk-g08.ctb
    • da-dk-g16.ctb
    • da-dk-g18.ctb
    • da-dk-g26.ctb
    • da-dk-g28.ctb
    • da-dk-octobraille.dis

Renamed

  • The old Danish tables for the now deprecated 1993 standard have been renamed to include "1993" in the filename:
    • da-dk-g08.ctb -> da-dk-g08_1993.ctb
    • da-dk-g16.ctb -> da-dk-g16_1993.ctb
    • da-dk-g16-lit.ctb -> da-dk-g16-lit_1993.ctb
    • da-dk-g18.ctb -> da-dk-g18_1993.ctb
    • da-dk-g26.ctb -> da-dk-g26_1993.ctb
    • da-dk-g26-lit.ctb -> da-dk-g26-lit_1993.ctb
    • da-dk-g26l.ctb -> da-dk-g26l_1993.ctb
    • da-dk-g26l-lit.ctb -> da-dk-g26l-lit_1993.ctb
    • da-dk-g28.ctb -> da-dk-g28_1993.ctb
    • da-dk-g28l.ctb -> da-dk-g28l_1993.ctb
    • da-dk-octobraille.dis -> da-dk-octobraille_1993.dis

Removed

None

v3.23.0

1 year ago

Noteworthy changes in this release

This release contains significant updates to many existing braille tables (Chinese bopomofo, Hungarian, Japanese, Russian, Swedish, UEB grade 2 Ukrainian). On top of that it also contains new tables for Chinese Common Braille Scheme, Kinyarwanda and Luganda thanks to Cary-Rowen and Jake Kyle. Behind the scenes Samuel Thibault has been working tirelessly to fix memory related bugs.

I'd like to thank everybody for helping to bring liblouis forward.

For a detailed list of all the changes refer to the list of closed issues.

New features

  • None

Bug fixes

  • Fix a problem in the parsing of faulty unbalanced context expressions. Thanks to Samuel Thibault.
  • Fix a buffer overflow problem when output.length is larger than input.length. Thanks to Samuel Thibault.
  • Fix an endless loop in the handling of computer braille. Thanks to Bert Frees.

Braille table improvements

  • Remove computer braille from Japanese Kantenji as it is not part of the standard. Thanks to Kensaku Yoza.
  • Bring Swedish tables up to date with the latest standard published by Punktskriftsnämnden (the Swedish Braille Authority) in 2009. The table for uncontracted braille was replaced and new tables for (partially and fully) contracted braille have been added. Thanks to David Renström from Insyn Scandinavia AB.
  • Improvements to Hungarian (added more exceptions) and migration to the nonumsign opcode thanks to Attila Hammer.
  • Fixed a bug in the Ukrainian table that led to wrong translation of some uppercase letters. Thanks to Andrey Yakuboy and Bert Frees.
  • Augment the UEB grade 2 tables to resolve an ambiguity between lower groupsigns and punctuation at the beginning of words by placing a letter sign at the front of punctuation. This resolves an ambiguity between, for example, "discount" and ".count". Thanks to Krzysztof Drewniak.
  • Add a new table for Chinese Common Braille Scheme which is a type of braille used for spelling Mandarin Chinese. It is a variant of the Chinese Current Braille System but has more perfect marking rules and produces less ambiguity than the latter. For more information see the comments in zhcn-cbs.ctb. Thanks to Cary-Rowen and Frank.
  • Updates to the Chinese bopomofo braille table thanks to Bo-Cheng Jhan:
    • Update braille patterns of some Chinese characters and phrases
    • Add braille patterns for various Greek symbols
    • Add "Math rules" section and the mixed number rule
    • Add braille patterns for ☐ (⣏⣀⣹), ☑ (⣏⣿⣹), and ☒ (⣏⣭⣹)
  • New table for Kinyarwanda braille thanks to Jake Kyle from Compass Braille.
  • New table for Luganda braille thanks to Jake Kyle from Compass Braille.
  • Improvements to the Russian contracted braille table thanks to Andrey Yakuboy:
    • Now prefixes "из" and "без" are correctly contracted before hard sign (ъ).
    • Fixed a contraction for word "кое-где", now it is contracted according to rules.
    • Other minor fixes and improvements.

Other changes

  • None

Deprecation notice

  • None

Backwards incompatible changes

  • None

Invisible changes

  • None

New, renamed or removed tables

New

  • zhcn-cbs.ctb
  • lg-ug-g1.utb
  • rw-rw-g1.utb
  • sv-g0.utb
  • sv-g1.ctb
  • sv-g2.ctb

Renamed

None

Removed

  • Se-Se-g1.utb

v3.22.0

1 year ago

Noteworthy changes in this release

This is a major release. On the Braille tables side there is a new table for German grade 2 with capitalization and there are updates to the Dutch, German Hungarian, Punjabi, Russian, UK Braille Computer Notation and Slovak tables. Christian added a new opcode to indicate the end of a number where the number doesn't end at a space character. Last but not least Samuel, Martin and Han have put a lot of work into checking for and fixing memory problems.

I'd like to thank everybody for helping to bring liblouis forward.

For a detailed list of all the changes refer to the list of closed issues.

New features

  • Add a new opcode nonumsign that helps with indicating the end of a number when it doesn't occur at the end at the end of a word such as '123abc' for example. For more details see the documentation. Thanks to Christian Egli.

Bug fixes

  • Prevent a memory overflow in compilePassOpcode thanks to Martin Gieseking. This was reported in CVE-2022-26981 and should now be fixed.
  • Prevent processing of characters beyond the string end in parseChars thanks to Martin Gieseking.
  • Prevent an invalid memory writes in compileRule. Thanks to Han Zheng for reporting it and to Christian Egli for fixing it.

Braille table improvements

  • Improvements to German braille:
    • Improve handling of single letters in grade 2 thanks to Mischa Künzle.
    • Improve handling of emphasis thanks to Bert Frees.
    • Add a table for grade 2 with capitalization thanks to Christian Egli.
  • Fix a problem with Ñ in Dutch braille thanks to Paul Rambags
  • Updated Slovak Braille table to be inline with the 2021 Slovak braille usage guidelines.
  • Fixed a problem with the '+' symbol in UK Braille Computer Notation thanks to Mario Arias.
  • Major improvements to the Hungarian braille tables thanks to Attila Hammer.
  • Make Punjabi table to behave the same as Duxbury in forward translation and more reliably than Duxbury in back translation. Thanks to Jake Kyle.
  • Improvements to the Russian and other Cyrillic tables thanks to Andrey Yakuboy:
    • Now all Russian based tables return braille Unicode braille by default when forward translating, no need to include ru-unicode.dis manually.
    • French letters (æ, ë and ï) have been added to the Russian literary braille table.

Other changes

  • Integrate sanitizer tests in the CI pipeline and fix a large number of memory problems (leaks, overflow and undefined behavior) thanks to Samuel Thibault.
  • Removed the "experimental" label from the functions lou_indexTables, lou_findTable, lou_findTables, lou_getTableInfo and lou_listTables (the meta data query API).
  • Fix a build problem when using Clang 11 on macOS thanks to Robert Scott.

Deprecation notice

  • None

Backwards incompatible changes

  • None

Invisible changes

New, renamed or removed tables

New

  • de-g2-detailed.ctb

Renamed

  • None

Removed

  • None

v3.21.0

2 years ago

Noteworthy changes in this release

This release sees major updates for Hungarian and German. The Swiss Library for the Blind, Visually Impaired and Print Disabled has agreed to upstream their tables and Attila Hammer has adapted Hungarian to the latest standard. A bug in numeric mode was fixed which should it make more useful for languages other than UEB. Finally there are fixes for Norwegian and Danish.

I'd like to thank everybody for helping to bring liblouis forward.

For a detailed list of all the changes refer to the list of closed issues.

New features

  • New table for German 6-dot computer braille thanks to the Swiss Library for the Blind, Visually Impaired and Print Disabled

Bug fixes

  • When numeric mode was enabled, i.e. when a table contains any of the numericmodechars, midnumericmodechars or numericnocontchars opcodes, contraction was automatically disabled. This is required for UEB but not necessarily so for other braille systems (as mentioned in issue 615). This has now been changed so that contraction is only disabled if the nocontractsign has been defined. Thanks to Christian Egli.

Braille table improvements

  • Fixed emphasis, section sign and dash between numbers in Danish tables thanks to Bue Vester-Andersen.
  • Correct latin small letter sharp s in Norwegian thanks to Lars Bjørndal and Dawn Renouf Bjørneby.
  • Major improvements to German Braille thanks to the Swiss Library for the Blind, Visually Impaired and Print Disabled
    • Improvements to emphasis handling in German tables and greatly extended test coverage.
    • All the improvements from the tables formerly known as bidi tables were merged in the main tables and are now used by both tables. The bidi tables have been renamed to "detailed". Essentially the detailed tables provide capitalized Braille which helps with the back-translation.
    • Upstream all improvements from the sbs-braille-tables.
  • Improvements to the Hungarian tables thanks to Attila Hammer.
    • Improved back-translation, notably of words containing special consonants like "szsz" or "ssz".
    • Extended the Hungarian grade 1 "braille input" (back-translation aided by special extra dot patterns).
    • Implemented latest update to the Hungarian braille standard (for example the characters "\" and "|" were changed).

Other changes

  • Make autogen.sh work on MacOS, thanks to Ken Perry

Deprecation notice

  • None

Backwards incompatible changes

Invisible changes

New, renamed or removed tables

New

  • de-comp6.utb

Renamed

  • de-g0-bidi.utb -> de-g0-detailed.utb
  • de-g1-bidi.ctb -> de-g1-detailed.ctb

Removed

None

v3.20.0

2 years ago

Noteworthy changes in this release

This is a major release. Not only in terms of table additions and updates but also in the way the tables are written. Bert has replaced the uplow opcode with a more generalized base opcode. This clears up the path for a more generalized handling of emphasis and uppercase characters. In the course of this simplification some bugs with computer braille were discovered and fixed.

On the Braille tables side there is a brand new table for braille kanji and there are major updates to the Polish, Chinese, Russian literary and the UEB tables.

I'd like to thank everybody for helping to bring liblouis forward.

For a detailed list of all the changes refer to the list of closed issues.

New features

  • There is an experimental new feature that allows a table writer to write table macros. This feature is disabled by default. Macros are a helpful tool for refactoring, however as it stands the feature is not mature and might disappear in future releases.
  • Add a new opcode base that associates a character with another already defined character. Think of it as a generalized form of uplow. A typical use of this opcode is for defining a pair of letters, a lowercase and the corresponding uppercase.

Bug fixes

  • Fix a problem with the dot 7 capitalization indicator in computer braille thanks to Bert Frees.

Braille table improvements

  • New table for Kantenji (or "braille kanji", a Japanese braille system) thanks to Kensaku Y.
  • Improvements to Polish literary braille table thanks to Łukasz Golonka.
    • use correct representation of indexes for squared, cubed etc.
    • use correct representation for fractions
    • change symbol used for underscore from dots 46 to 6
    • add U+2212 minus symbol (also to computer braille table)
  • Updates to the Chinese braille table (zh-tw.ctb) thanks to Bo-Cheng Jhan.
    • Complete translation of CJK Radicals Supplement
    • Change the default braille pattern of '蛤' to ⠗⠜⠂
    • Correct the default braille pattern of many Chinese characters
    • Add various Chinese phrases involving exceptions of braille patterns
    • Add a math symbol '◊' (⠫⠓)
  • Improvements to the Russian literary (uncontracted and contracted) braille thanks to Andrey Yakuboy.
    • If the dot sign ('.') is after digits at the beginning of a string, the braille dot 6 isn't inserted between the last digit and the dot. This is necessary for items' numbers of numbered lists.
    • Back translation for French letters has been disabled because of conflicts with punctuations.
    • Back translation for Latin (mostly English and German) letters has been improved.
    • The definition of the 7/8 fraction (U+215E) has been fixed.
    • Placement of spaces around math symbols has been improved according to the Russian braille rules.
    • The apostrophe sign ("'") and the right tick sign (u+2019) are displayed correctly if they're in the end of a word (English, for example).
    • New contractions have been added and minor bugs have been fixed in the Russian contracted braille table.
  • New display table (ru-brf.dis) has been added. It adds support of Braille ASCII for Russian and other Cyrillic tables. Thanks to Andrey Yakuboy.
  • Improvements to UEB thanks to James Bowden.
    • Fixed placement of numeric indicator in letters dot numbers.
    • Added more mathematical symbols.
    • Added the four new allowed shortform extension words.
    • Improvements to words starting with "dis(h)" and "cross(h)".
  • Implement alphabet change indicator in Dutch braille thanks to Bert Frees.

Other changes

Deprecation notice

  • None

Backwards incompatible changes

  • The uplow opcode has been removed and replaced with the more general base opcode.

Invisible changes

New, renamed or removed tables

New

  • ru-brf.dis
  • ja-kantenji.utb
  • latinUppercaseComp6.uti

Renamed

None

Removed

  • ru-ru.dis
  • cs-letterDef8Dots.uti
  • ru-chardefs.cti
  • nl-g0.uti
  • nl-BE-g0.utb