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