blob: f4f6ef584616368b746ea72202f1dcf85801034b [file] [log] [blame]
Christian Egli52f51b42014-04-25 12:29:27 +00001# Introduction
Christian Egli92277ee2014-04-17 13:05:00 +00002
Christian Egli93acfd82021-02-15 14:51:07 +01003![Make check/distcheck](https://github.com/liblouis/liblouis/workflows/Make%20check/distcheck/badge.svg)
4![Cross-compile with mingw](https://github.com/liblouis/liblouis/workflows/Cross-compile%20with%20mingw/badge.svg)
5![Emscripten](https://github.com/liblouis/liblouis/workflows/Emscripten/badge.svg)
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
8named in honor of [Louis Braille][]. It features support for computer
9and literary braille, supports contracted and uncontracted translation
10for [many languages][] and has support for hyphenation. New languages
11can easily be added through tables that support a rule- or dictionary
12based 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
16to its use in two open-source screenreaders, [NVDA][] and [Orca][]. It
17is also used in some commercial assistive technology applications for
18example by [ViewPlus][].
Christian Egli92277ee2014-04-17 13:05:00 +000019
Christian Egli52f51b42014-04-25 12:29:27 +000020Liblouis is based on the translation routines in the [BRLTTY][]
21screenreader 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 Egli80b619c2016-06-30 16:20:13 +020025Liblouis is free software licensed under the [GNU LGPLv2.1+][] (see
Christian Eglif6ec6a52016-06-20 10:33:37 +020026the file COPYING.LESSER).
Christian Egli92277ee2014-04-17 13:05:00 +000027
Christian Egli80b619c2016-06-30 16:20:13 +020028The command line tools, are licensed under the [GNU GPLv3+][] (see the
Christian Egli52f51b42014-04-25 12:29:27 +000029file COPYING).
Christian Egli92277ee2014-04-17 13:05:00 +000030
Christian Egli52f51b42014-04-25 12:29:27 +000031# Documentation
Christian Egli92277ee2014-04-17 13:05:00 +000032
Christian Egli52f51b42014-04-25 12:29:27 +000033For documentation, see the [liblouis documentation][] (either as info
34file, html, txt or pdf) in the doc directory. For examples
35of translation tables, see `en-us-g2.ctb`, `en-us-g1.ctb`,
36`chardefs.cti`, and whatever other files they may include in the
37tables directory. This directory contains tables for many languages.
38The Nemeth files will only work with the sister library
39[liblouisutdml][].
Christian Egli92277ee2014-04-17 13:05:00 +000040
Christian Egli52f51b42014-04-25 12:29:27 +000041# Installation
Christian Egli92277ee2014-04-17 13:05:00 +000042
Ludovic Ogerd41864e2019-03-06 09:34:46 +010043After unpacking the distribution tarball from [releases][] go to the directory it creates.
Christian Egli52f51b42014-04-25 12:29:27 +000044You now have the choice to compile liblouis for either 16- or 32-bit
45unicode. By default it is compiled for the former. To get 32-bit Unicode
46run configure with `--enable-ucs4`.
Christian Egli92277ee2014-04-17 13:05:00 +000047
Ludovic Ogerd41864e2019-03-06 09:34:46 +010048After running `./configure` run `make` and then `make install`. You
Christian Egli07e17ba2017-02-27 16:07:27 +010049must have root privileges for the installation step.
Ludovic Ogerd41864e2019-03-06 09:34:46 +010050(For other ways of installation, see the file HACKING)
Christian Egli92277ee2014-04-17 13:05:00 +000051
Christian Egli52f51b42014-04-25 12:29:27 +000052This 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
57translations). 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
60install `help2man` before running configure.
Christian Egli92277ee2014-04-17 13:05:00 +000061
Christian Eglia02c1362017-03-06 10:38:45 +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 --without-yaml`.
65
Christian Eglia5f1e1d2015-09-03 23:38:52 +020066# Participating
67
68You can contribute to Liblouis in several different ways:
69
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
73 or in channel #liblouis on irc:irc.oftc.net.
74
75 - To report a problem or request a feature, please file an issue.
76
77 - Of course, we welcome pull requests and patches.
78
79Finally, if you want to see what we have for the future and learn more
80about our release cycles, all this information is detailed on the
81[wiki](https://github.com/liblouis/liblouis/wiki/Release-schedule)
82
Christian Egli52f51b42014-04-25 12:29:27 +000083# Release Notes
Christian Egli92277ee2014-04-17 13:05:00 +000084
Christian Egli52f51b42014-04-25 12:29:27 +000085For notes on the newest and older releases see the file NEWS.
Christian Egli92277ee2014-04-17 13:05:00 +000086
Christian Egli52f51b42014-04-25 12:29:27 +000087# History
Christian Egli92277ee2014-04-17 13:05:00 +000088
Christian Egli52f51b42014-04-25 12:29:27 +000089Liblouis was begun in 2002 largely as a business decision by
90[ViewPlus][]. They believed that they could never have good braille
91except as part of an open source effort and knew that John Boyer was
92dying to start just such a project. So ViewPlus did start it on the
93agreement that they would give a small monthly stipend to John Boyer
94that allowed him to pay for sighted assistants. While ViewPlus has not
95contributed much to the coding, it certainly has contributed and
96continues to contribute to liblouis through that support of John
97Boyer.
Christian Egli92277ee2014-04-17 13:05:00 +000098
Christian Egli52f51b42014-04-25 12:29:27 +000099[Louis Braille]: http://en.wikipedia.org/wiki/Louis_Braille
Christian Egli2ab024f2014-08-27 16:34:17 +0200100[many languages]: https://github.com/liblouis/liblouis/tree/master/tables
Christian Egli52f51b42014-04-25 12:29:27 +0000101[NVDA]: http://www.nvda-project.org/
102[Orca]: http://live.gnome.org/Orca
103[ViewPlus]: http://www.viewplus.com
104[BRLTTY]: http://mielke.cc/brltty/
Christian Eglie38474e2016-06-30 16:58:50 +0200105[GNU LGPLv2.1+]: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
106[GNU GPLv3+]: https://www.gnu.org/licenses/gpl.html
Christian Egli2ab024f2014-08-27 16:34:17 +0200107[liblouisutdml]: http://www.liblouis.org/
Christian Egli52f51b42014-04-25 12:29:27 +0000108[liblouis documentation]: http://www.liblouis.org/documentation/liblouis.html
Ludovic Ogerd41864e2019-03-06 09:34:46 +0100109[releases]: https://github.com/liblouis/liblouis/releases
Christian Egli92277ee2014-04-17 13:05:00 +0000110
Christian Egli52f51b42014-04-25 12:29:27 +0000111<!-- Local Variables: -->
112<!-- mode: markdown -->
113<!-- End: -->