blob: 68a2bf43526115697be4b6f91df7f06e9226278f [file] [log] [blame]
Christian Egli9a793982022-03-21 09:35:27 +01001[[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 Egli711e6452023-01-18 12:14:23 +01004[[https://api.securityscorecards.dev/projects/github.com/liblouis/liblouis][https://api.securityscorecards.dev/projects/github.com/liblouis/liblouis/badge]]
Christian Egli92277ee2014-04-17 13:05:00 +00005
Christian Egli9a793982022-03-21 09:35:27 +01006* Introduction
Christian Eglic39a6672014-10-22 16:32:34 +02007
Christian Egli52f51b42014-04-25 12:29:27 +00008Liblouis is an open-source braille translator and back-translator
Christian Egli9a793982022-03-21 09:35:27 +01009named in honor of [[http://en.wikipedia.org/wiki/Louis_Braille][Louis Braille]]. It features support for computer and
10literary 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
12easily be added through tables that support a rule- or dictionary
Christian Egli52f51b42014-04-25 12:29:27 +000013based approach. Tools for testing and debugging tables are also
14included. Liblouis also supports math braille (Nemeth and Marburg).
Christian Egli92277ee2014-04-17 13:05:00 +000015
Christian Egli52f51b42014-04-25 12:29:27 +000016Liblouis has features to support screen-reading programs. This has led
Christian Egli9a793982022-03-21 09:35:27 +010017to its use in two open-source screenreaders, [[http://www.nvda-project.org/][NVDA]] and [[http://live.gnome.org/Orca][Orca]]. It is also
18used in some commercial assistive technology applications for example
19by [[http://www.viewplus.com][ViewPlus]].
Christian Egli92277ee2014-04-17 13:05:00 +000020
Christian Egli9a793982022-03-21 09:35:27 +010021Liblouis is based on the translation routines in the [[http://mielke.cc/brltty/][BRLTTY]]
Christian Egli52f51b42014-04-25 12:29:27 +000022screenreader for Linux. It has, however, gone far beyond these
23routines. In Linux and Mac OSX it is a shared library, and in Windows
24it is a DLL.
Christian Egli92277ee2014-04-17 13:05:00 +000025
Christian Egli9a793982022-03-21 09:35:27 +010026Liblouis is free software licensed under the [[https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html][GNU LGPLv2.1+]] (see the
27file COPYING.LESSER).
Christian Egli92277ee2014-04-17 13:05:00 +000028
Christian Egli9a793982022-03-21 09:35:27 +010029The command line tools, are licensed under the [[https://www.gnu.org/licenses/gpl.html][GNU GPLv3+]] (see the
Christian Egli52f51b42014-04-25 12:29:27 +000030file COPYING).
Christian Egli92277ee2014-04-17 13:05:00 +000031
Christian Egli9a793982022-03-21 09:35:27 +010032* Documentation
Christian Egli92277ee2014-04-17 13:05:00 +000033
Christian Egli9a793982022-03-21 09:35:27 +010034For documentation, see the [[http://www.liblouis.org/documentation/liblouis.html][liblouis documentation]] (either as info
35file, html, txt or pdf) in the doc directory. For examples of
36translation tables, see =en-us-g2.ctb=, =en-us-g1.ctb=,
37=chardefs.cti=, and whatever other files they may include in the
Christian Egli52f51b42014-04-25 12:29:27 +000038tables directory. This directory contains tables for many languages.
Christian Egli9a793982022-03-21 09:35:27 +010039The Nemeth files will only work with the sister library [[http://www.liblouis.org/][liblouisutdml]].
Christian Egli92277ee2014-04-17 13:05:00 +000040
Christian Egli9a793982022-03-21 09:35:27 +010041* Installation
Christian Egli92277ee2014-04-17 13:05:00 +000042
Christian Egli9a793982022-03-21 09:35:27 +010043After unpacking the distribution tarball from [[https://github.com/liblouis/liblouis/releases][releases]] go to the
44directory it creates. You now have the choice to compile liblouis for
45either 16- or 32-bit unicode. By default it is compiled for the
46former. To get 32-bit Unicode run configure with =--enable-ucs4=.
Christian Egli92277ee2014-04-17 13:05:00 +000047
Christian Egli9a793982022-03-21 09:35:27 +010048After running =./configure= run =make= and then =sudo make install=.
49As a final step you might have to run =sudo ldconfig=. For other ways
50of installation, see the file HACKING.
Christian Egli92277ee2014-04-17 13:05:00 +000051
Christian Egli9a793982022-03-21 09:35:27 +010052This will produce the liblouis library and the programs =lou_allround=
53(for testing the library), =lou_checkhyphens=, =lou_checktable= (for
54checking translation tables), =lou_debug= (for debugging translation
55tables), =lou_translate= (for extensive testing of forward and
56backwards translation) and =lou_trace= (for tracing if individual
Christian Egli52f51b42014-04-25 12:29:27 +000057translations). For more details see the liblouis documentation.
Christian Egli92277ee2014-04-17 13:05:00 +000058
Christian Egli52f51b42014-04-25 12:29:27 +000059If you wish to have man pages for the programs you might want to
Christian Egli9a793982022-03-21 09:35:27 +010060install =help2man= before running configure.
Christian Egli92277ee2014-04-17 13:05:00 +000061
Christian Egli9a793982022-03-21 09:35:27 +010062If 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
64want to skip those tests you can do so by running =configure
65--without-yaml=.
Christian Eglia02c1362017-03-06 10:38:45 +010066
Christian Egli9a793982022-03-21 09:35:27 +010067* Participating
Christian Eglia5f1e1d2015-09-03 23:38:52 +020068
69You can contribute to Liblouis in several different ways:
70
Christian Egli9a793982022-03-21 09:35:27 +010071- 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 Eglia5f1e1d2015-09-03 23:38:52 +020077
78Finally, if you want to see what we have for the future and learn more
Christian Egli9a793982022-03-21 09:35:27 +010079about our release cycles, all this information is detailed on the [[https://github.com/liblouis/liblouis/wiki/Release-schedule][wiki]]
Christian Eglia5f1e1d2015-09-03 23:38:52 +020080
Christian Egli9a793982022-03-21 09:35:27 +010081* Release Notes
Christian Egli92277ee2014-04-17 13:05:00 +000082
Christian Egli52f51b42014-04-25 12:29:27 +000083For notes on the newest and older releases see the file NEWS.
Christian Egli92277ee2014-04-17 13:05:00 +000084
Christian Egli9a793982022-03-21 09:35:27 +010085* History
Christian Egli92277ee2014-04-17 13:05:00 +000086
Christian Egli9a793982022-03-21 09:35:27 +010087Liblouis was begun in 2002 largely as a business decision by [[http://www.viewplus.com][ViewPlus]].
88They believed that they could never have good braille except as part
89of an open source effort and knew that John Boyer was dying to start
90just such a project. So ViewPlus did start it on the agreement that
91they would give a small monthly stipend to John Boyer that allowed him
92to pay for sighted assistants. While ViewPlus has not contributed much
93to the coding, it certainly has contributed and continues to
94contribute to liblouis through that support of John Boyer.