summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md138
1 files changed, 138 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a040919
--- /dev/null
+++ b/README.md
@@ -0,0 +1,138 @@
+# Introduction to Po4a
+
+[![Build Status](https://img.shields.io/github/actions/workflow/status/mquinson/po4a/linux.yml?style=flat-square&branch=main)](https://github.com/mquinson/po4a/actions/workflows/linux.yml)
+[![First Timers Friendly](https://img.shields.io/badge/Beginners-Welcome-brightgreen?style=flat-square)](https://www.firsttimersonly.com)
+
+The goal of po4a (PO for anything) project is to ease translations (and
+more interestingly, the maintenance of translations) using gettext
+tools on areas where they were not expected like documentation.
+
+In po4a each documentation format is handled by a module. Presently, we have a
+module for the following formats:
+
+ - asciidoc: AsciiDoc format.
+ - dia: uncompressed Dia diagrams.
+ - docbook: DocBook XML.
+ - guide: Gentoo Linux's XML documentation format.
+ - halibut: Simon Tatham's documentation production system.
+ - ini: INI format.
+ - kernelhelp: Help messages of each kernel compilation option.
+ - latex: LaTeX format.
+ - bibtex: bibtex format.
+ - man: Good old manual page format (either roff or mdoc).
+ - markdown: MD documents (using the txt module).
+ - pod: Perl Online Documentation format.
+ - rubydoc: RubyDoc (RD) documents.
+ - sgml: either DebianDoc or DocBook DTD.
+ - texinfo: The info page format (experimental).
+ - tex: generic TeX documents (see also latex).
+ - text: simple text document.
+ - wml: WML documents.
+ - xhtml: XHTML documents.
+ - xml: generic XML documents (see also docbook).
+ - yaml: YAML documents.
+
+# Installation
+
+To install this module type the following:
+
+```bash
+ perl Build.PL
+ ./Build
+ ./Build install
+```
+
+# Contributing
+
+po4a is particularly welcoming contributions from the community. If
+you are new to Open Source, we'd love to mentor you for your first
+contributions. Please see the
+[CONTRIBUTING](https://github.com/mquinson/po4a/blob/master/CONTRIBUTING.md)
+file to see how you could help.
+
+# Use without installation
+
+If you want to use a version without installing it (e.g. directly from
+the git tree), use the PERLLIB environment variable as such:
+
+```bash
+ PERLLIB=~/git-checkouts/po4a/lib ~/git-checkouts/po4a/po4a-gettextize [usual args]
+```
+
+# Po4a dependencies
+
+* Locale::gettext (v1.01)
+
+ This module being itself internationalized, it needs the Locale::gettext
+ library to translate its own messages.
+ If it is not present, then po4a's messages won't be translated, but
+ po4a will remain fully functional.
+
+* Text::WrapI18N
+
+ This module is used to format po4a's warnings and error messages. It
+ permits to wrap long error messages without splitting words.
+ If it is not present, the formatting of messages will be different,
+ but po4a will remain fully functional.
+
+* Term::ReadKey
+
+ This module is used to retrieve the terminal's line width. It is not
+ used if Text::WrapI18N is not available.
+ If it is not present, the line width can be specified with the COLUMN
+ environment variable.
+
+
+## SGML module specific dependencies
+
+* SGMLS (1.03ii)
+
+ This is a set of Perl5 routines for processing the output from the onsgmls
+ SGML parser.
+
+* opensp (1.5.2) OpenJade group's SGML parsing tools
+
+ This is the SGML parser we use.
+
+* docbook: used in the tests. Without this package, the test fails with:
+ ```
+ onsgmls:<OSFD>0:1:59:W: cannot generate system identifier for public text "-//OASIS//DTD DocBook V4.1//EN"
+ onsgmls:<OSFD>0:6:0:E: reference to entity "REFENTRY" for which no system identifier could be generated
+ onsgmls:<OSFD>0:1:0: entity was defined here
+ onsgmls:<OSFD>0:6:0:E: DTD did not contain element declaration for document type name
+ po4a::sgml: Error while running onsgmls -p. Please check if onsgmls and the DTD are installed.
+ ```
+ You don't need it if you don't want to run the tests.
+
+## Text module specific dependencies
+
+* Unicode::GCString
+
+ This module is used to compute text width; it is needed by AsciiDoc to
+ determine two line titles in encodings different from ASCII.
+ https://github.com/hatukanezumi/Unicode-LineBreak
+
+
+## YAML module specific dependencies
+
+* YAML::Tiny
+
+ This module is used to parse and serialize the YAML file.
+
+# Project hosting
+
+ - Webpage: https://po4a.org
+ - Source code: https://github.com/mquinson/po4a
+ - Bug tracker: https://github.com/mquinson/po4a/issues
+ - Source of the web pages: https://github.com/mquinson/po4a-website
+
+# Copyright and license
+
+This program is free software; you may redistribute it and/or modify it
+under the terms of GPL v2.0 or later (GPL2+ -- see COPYING file).
+
+Copyright © 2002-2023 by SPI, inc.
+
+Authors:
+- Denis Barbier <barbier@linuxfr.org>
+- Martin Quinson (mquinson#debian.org)