blob: b44b4755f1917d818a59b0703a65bc520d3c8bec [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 Egli92277ee2014-04-17 13:05:00 +00004
Christian Egli9a793982022-03-21 09:35:27 +01005* Introduction
Christian Eglic39a6672014-10-22 16:32:34 +02006
Christian Egli52f51b42014-04-25 12:29:27 +00007Liblouis is an open-source braille translator and back-translator
Christian Egli9a793982022-03-21 09:35:27 +01008named in honor of [[http://en.wikipedia.org/wiki/Louis_Braille][Louis Braille]]. It features support for computer and
9literary 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
11easily be added through tables that support a rule- or dictionary
Christian Egli52f51b42014-04-25 12:29:27 +000012based approach. Tools for testing and debugging tables are also
13included. Liblouis also supports math braille (Nemeth and Marburg).
Christian Egli92277ee2014-04-17 13:05:00 +000014
Christian Egli52f51b42014-04-25 12:29:27 +000015Liblouis has features to support screen-reading programs. This has led
Christian Egli9a793982022-03-21 09:35:27 +010016to its use in two open-source screenreaders, [[http://www.nvda-project.org/][NVDA]] and [[http://live.gnome.org/Orca][Orca]]. It is also
17used in some commercial assistive technology applications for example
18by [[http://www.viewplus.com][ViewPlus]].
Christian Egli92277ee2014-04-17 13:05:00 +000019
Christian Egli9a793982022-03-21 09:35:27 +010020Liblouis is based on the translation routines in the [[http://mielke.cc/brltty/][BRLTTY]]
Christian Egli52f51b42014-04-25 12:29:27 +000021screenreader for Linux. It has, however, gone far beyond these
22routines. In Linux and Mac OSX it is a shared library, and in Windows
23it is a DLL.
Christian Egli92277ee2014-04-17 13:05:00 +000024
Christian Egli9a793982022-03-21 09:35:27 +010025Liblouis is free software licensed under the [[https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html][GNU LGPLv2.1+]] (see the
26file COPYING.LESSER).
Christian Egli92277ee2014-04-17 13:05:00 +000027
Christian Egli9a793982022-03-21 09:35:27 +010028The 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 +000029file COPYING).
Christian Egli92277ee2014-04-17 13:05:00 +000030
Christian Egli9a793982022-03-21 09:35:27 +010031* Documentation
Christian Egli92277ee2014-04-17 13:05:00 +000032
Christian Egli9a793982022-03-21 09:35:27 +010033For documentation, see the [[http://www.liblouis.org/documentation/liblouis.html][liblouis documentation]] (either as info
34file, html, txt or pdf) in the doc directory. For examples of
35translation tables, see =en-us-g2.ctb=, =en-us-g1.ctb=,
36=chardefs.cti=, and whatever other files they may include in the
Christian Egli52f51b42014-04-25 12:29:27 +000037tables directory. This directory contains tables for many languages.
Christian Egli9a793982022-03-21 09:35:27 +010038The Nemeth files will only work with the sister library [[http://www.liblouis.org/][liblouisutdml]].
Christian Egli92277ee2014-04-17 13:05:00 +000039
Christian Egli9a793982022-03-21 09:35:27 +010040* Installation
Christian Egli92277ee2014-04-17 13:05:00 +000041
Christian Egli9a793982022-03-21 09:35:27 +010042After unpacking the distribution tarball from [[https://github.com/liblouis/liblouis/releases][releases]] go to the
43directory it creates. You now have the choice to compile liblouis for
44either 16- or 32-bit unicode. By default it is compiled for the
45former. To get 32-bit Unicode run configure with =--enable-ucs4=.
Christian Egli92277ee2014-04-17 13:05:00 +000046
Christian Egli9a793982022-03-21 09:35:27 +010047After running =./configure= run =make= and then =sudo make install=.
48As a final step you might have to run =sudo ldconfig=. For other ways
49of installation, see the file HACKING.
Christian Egli92277ee2014-04-17 13:05:00 +000050
Christian Egli9a793982022-03-21 09:35:27 +010051This will produce the liblouis library and the programs =lou_allround=
52(for testing the library), =lou_checkhyphens=, =lou_checktable= (for
53checking translation tables), =lou_debug= (for debugging translation
54tables), =lou_translate= (for extensive testing of forward and
55backwards translation) and =lou_trace= (for tracing if individual
Christian Egli52f51b42014-04-25 12:29:27 +000056translations). For more details see the liblouis documentation.
Christian Egli92277ee2014-04-17 13:05:00 +000057
Christian Egli52f51b42014-04-25 12:29:27 +000058If you wish to have man pages for the programs you might want to
Christian Egli9a793982022-03-21 09:35:27 +010059install =help2man= before running configure.
Christian Egli92277ee2014-04-17 13:05:00 +000060
Christian Egli9a793982022-03-21 09:35:27 +010061If 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
63want to skip those tests you can do so by running =configure
64--without-yaml=.
Christian Eglia02c1362017-03-06 10:38:45 +010065
Christian Egli9a793982022-03-21 09:35:27 +010066* Participating
Christian Eglia5f1e1d2015-09-03 23:38:52 +020067
68You can contribute to Liblouis in several different ways:
69
Christian Egli9a793982022-03-21 09:35:27 +010070- 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 Eglia5f1e1d2015-09-03 23:38:52 +020076
77Finally, if you want to see what we have for the future and learn more
Christian Egli9a793982022-03-21 09:35:27 +010078about 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 +020079
Christian Egli9a793982022-03-21 09:35:27 +010080* Release Notes
Christian Egli92277ee2014-04-17 13:05:00 +000081
Christian Egli52f51b42014-04-25 12:29:27 +000082For notes on the newest and older releases see the file NEWS.
Christian Egli92277ee2014-04-17 13:05:00 +000083
Christian Egli9a793982022-03-21 09:35:27 +010084* History
Christian Egli92277ee2014-04-17 13:05:00 +000085
Christian Egli9a793982022-03-21 09:35:27 +010086Liblouis was begun in 2002 largely as a business decision by [[http://www.viewplus.com][ViewPlus]].
87They believed that they could never have good braille except as part
88of an open source effort and knew that John Boyer was dying to start
89just such a project. So ViewPlus did start it on the agreement that
90they would give a small monthly stipend to John Boyer that allowed him
91to pay for sighted assistants. While ViewPlus has not contributed much
92to the coding, it certainly has contributed and continues to
93contribute to liblouis through that support of John Boyer.