Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 1 | [[https://github.com/liblouis/liblouis/actions/workflows/main.yml][https://github.com/liblouis/liblouis/actions/workflows/main.yml/badge.svg]] |
| 2 | [[https://github.com/liblouis/liblouis/actions/workflows/mingw.yml][https://github.com/liblouis/liblouis/actions/workflows/mingw.yml/badge.svg]] |
| 3 | [[https://github.com/liblouis/liblouis/actions/workflows/emscripten.yml][https://github.com/liblouis/liblouis/actions/workflows/emscripten.yml/badge.svg]] |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 4 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 5 | * Introduction |
Christian Egli | c39a667 | 2014-10-22 16:32:34 +0200 | [diff] [blame] | 6 | |
Christian Egli | 52f51b4 | 2014-04-25 12:29:27 +0000 | [diff] [blame] | 7 | Liblouis is an open-source braille translator and back-translator |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 8 | named in honor of [[http://en.wikipedia.org/wiki/Louis_Braille][Louis Braille]]. It features support for computer and |
| 9 | literary braille, supports contracted and uncontracted translation for |
| 10 | [[https://github.com/liblouis/liblouis/tree/master/tables][many languages]] and has support for hyphenation. New languages can |
| 11 | easily be added through tables that support a rule- or dictionary |
Christian Egli | 52f51b4 | 2014-04-25 12:29:27 +0000 | [diff] [blame] | 12 | based approach. Tools for testing and debugging tables are also |
| 13 | included. Liblouis also supports math braille (Nemeth and Marburg). |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 14 | |
Christian Egli | 52f51b4 | 2014-04-25 12:29:27 +0000 | [diff] [blame] | 15 | Liblouis has features to support screen-reading programs. This has led |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 16 | to its use in two open-source screenreaders, [[http://www.nvda-project.org/][NVDA]] and [[http://live.gnome.org/Orca][Orca]]. It is also |
| 17 | used in some commercial assistive technology applications for example |
| 18 | by [[http://www.viewplus.com][ViewPlus]]. |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 19 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 20 | Liblouis is based on the translation routines in the [[http://mielke.cc/brltty/][BRLTTY]] |
Christian Egli | 52f51b4 | 2014-04-25 12:29:27 +0000 | [diff] [blame] | 21 | screenreader for Linux. It has, however, gone far beyond these |
| 22 | routines. In Linux and Mac OSX it is a shared library, and in Windows |
| 23 | it is a DLL. |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 24 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 25 | Liblouis is free software licensed under the [[https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html][GNU LGPLv2.1+]] (see the |
| 26 | file COPYING.LESSER). |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 27 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 28 | The command line tools, are licensed under the [[https://www.gnu.org/licenses/gpl.html][GNU GPLv3+]] (see the |
Christian Egli | 52f51b4 | 2014-04-25 12:29:27 +0000 | [diff] [blame] | 29 | file COPYING). |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 30 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 31 | * Documentation |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 32 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 33 | For documentation, see the [[http://www.liblouis.org/documentation/liblouis.html][liblouis documentation]] (either as info |
| 34 | file, html, txt or pdf) in the doc directory. For examples of |
| 35 | translation tables, see =en-us-g2.ctb=, =en-us-g1.ctb=, |
| 36 | =chardefs.cti=, and whatever other files they may include in the |
Christian Egli | 52f51b4 | 2014-04-25 12:29:27 +0000 | [diff] [blame] | 37 | tables directory. This directory contains tables for many languages. |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 38 | The Nemeth files will only work with the sister library [[http://www.liblouis.org/][liblouisutdml]]. |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 39 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 40 | * Installation |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 41 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 42 | After unpacking the distribution tarball from [[https://github.com/liblouis/liblouis/releases][releases]] go to the |
| 43 | directory it creates. You now have the choice to compile liblouis for |
| 44 | either 16- or 32-bit unicode. By default it is compiled for the |
| 45 | former. To get 32-bit Unicode run configure with =--enable-ucs4=. |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 46 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 47 | After running =./configure= run =make= and then =sudo make install=. |
| 48 | As a final step you might have to run =sudo ldconfig=. For other ways |
| 49 | of installation, see the file HACKING. |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 50 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 51 | This will produce the liblouis library and the programs =lou_allround= |
| 52 | (for testing the library), =lou_checkhyphens=, =lou_checktable= (for |
| 53 | checking translation tables), =lou_debug= (for debugging translation |
| 54 | tables), =lou_translate= (for extensive testing of forward and |
| 55 | backwards translation) and =lou_trace= (for tracing if individual |
Christian Egli | 52f51b4 | 2014-04-25 12:29:27 +0000 | [diff] [blame] | 56 | translations). For more details see the liblouis documentation. |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 57 | |
Christian Egli | 52f51b4 | 2014-04-25 12:29:27 +0000 | [diff] [blame] | 58 | If you wish to have man pages for the programs you might want to |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 59 | install =help2man= before running configure. |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 60 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 61 | If you want to run the test suite with =make check= you should install |
| 62 | =libyaml= as that will enable extensive tests on the tables. If you |
| 63 | want to skip those tests you can do so by running =configure |
| 64 | --without-yaml=. |
Christian Egli | a02c136 | 2017-03-06 10:38:45 +0100 | [diff] [blame] | 65 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 66 | * Participating |
Christian Egli | a5f1e1d | 2015-09-03 23:38:52 +0200 | [diff] [blame] | 67 | |
| 68 | You can contribute to Liblouis in several different ways: |
| 69 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 70 | - If you have comments, questions, or want to use your knowledge to |
| 71 | help others, come join the conversation on either the mailing list |
| 72 | or on IRC. You can reach us at liblouis-liblouisxml@freelists.org or |
| 73 | in channel #liblouis on irc:irc.oftc.net. |
| 74 | - To report a problem or request a feature, please file an issue. |
| 75 | - Of course, we welcome pull requests and patches. |
Christian Egli | a5f1e1d | 2015-09-03 23:38:52 +0200 | [diff] [blame] | 76 | |
| 77 | Finally, if you want to see what we have for the future and learn more |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 78 | about our release cycles, all this information is detailed on the [[https://github.com/liblouis/liblouis/wiki/Release-schedule][wiki]] |
Christian Egli | a5f1e1d | 2015-09-03 23:38:52 +0200 | [diff] [blame] | 79 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 80 | * Release Notes |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 81 | |
Christian Egli | 52f51b4 | 2014-04-25 12:29:27 +0000 | [diff] [blame] | 82 | For notes on the newest and older releases see the file NEWS. |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 83 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 84 | * History |
Christian Egli | 92277ee | 2014-04-17 13:05:00 +0000 | [diff] [blame] | 85 | |
Christian Egli | 9a79398 | 2022-03-21 09:35:27 +0100 | [diff] [blame] | 86 | Liblouis was begun in 2002 largely as a business decision by [[http://www.viewplus.com][ViewPlus]]. |
| 87 | They believed that they could never have good braille except as part |
| 88 | of an open source effort and knew that John Boyer was dying to start |
| 89 | just such a project. So ViewPlus did start it on the agreement that |
| 90 | they would give a small monthly stipend to John Boyer that allowed him |
| 91 | to pay for sighted assistants. While ViewPlus has not contributed much |
| 92 | to the coding, it certainly has contributed and continues to |
| 93 | contribute to liblouis through that support of John Boyer. |