2014-01-11 08:19:38 -06:00
|
|
|
# Dependencies
|
|
|
|
|
|
|
|
[Pandoc](http://johnmacfarlane.net/pandoc/installing.html), a universal
|
|
|
|
document converter, is required to generate docs as HTML from Rust's
|
|
|
|
source code.
|
|
|
|
|
2014-01-13 00:18:04 -06:00
|
|
|
[po4a](http://po4a.alioth.debian.org/) is required for generating translated
|
|
|
|
docs from the master (English) docs.
|
|
|
|
|
|
|
|
[GNU gettext](http://www.gnu.org/software/gettext/) is required for managing
|
|
|
|
the translation data.
|
|
|
|
|
2014-01-11 08:19:38 -06:00
|
|
|
# Building
|
|
|
|
|
|
|
|
To generate all the docs, just run `make docs` from the root of the repository.
|
|
|
|
This will convert the distributed Markdown docs to HTML and generate HTML doc
|
|
|
|
for the 'std' and 'extra' libraries.
|
|
|
|
|
|
|
|
To generate HTML documentation from one source file/crate, do something like:
|
|
|
|
|
|
|
|
~~~~
|
|
|
|
rustdoc --output-dir html-doc/ --output-format html ../src/libstd/path.rs
|
|
|
|
~~~~
|
|
|
|
|
|
|
|
(This, of course, requires a working build of the `rustdoc` tool.)
|
|
|
|
|
|
|
|
# Additional notes
|
|
|
|
|
2014-03-09 05:06:03 -05:00
|
|
|
To generate an HTML version of a doc from Markdown manually, you can do
|
|
|
|
something like:
|
2014-01-11 08:19:38 -06:00
|
|
|
|
|
|
|
~~~~
|
|
|
|
pandoc --from=markdown --to=html5 --number-sections -o rust.html rust.md
|
|
|
|
~~~~
|
|
|
|
|
|
|
|
(rust.md being the Rust Reference Manual.)
|
|
|
|
|
|
|
|
The syntax for pandoc flavored markdown can be found at:
|
|
|
|
http://johnmacfarlane.net/pandoc/README.html#pandocs-markdown
|
|
|
|
|
|
|
|
A nice quick reference (for non-pandoc markdown) is at:
|
|
|
|
http://kramdown.rubyforge.org/quickref.html
|
2014-01-13 00:18:04 -06:00
|
|
|
|
|
|
|
# Notes for translators
|
|
|
|
|
2014-01-14 06:30:15 -06:00
|
|
|
Notice: The procedure described below is a work in progress. We are working on
|
|
|
|
translation system but the procedure contains some manual operations for now.
|
|
|
|
|
2014-01-13 00:18:04 -06:00
|
|
|
To start the translation for a new language, see po4a.conf at first.
|
|
|
|
|
|
|
|
To generate .pot and .po files, do something like:
|
|
|
|
|
|
|
|
~~~~
|
2014-01-14 06:30:15 -06:00
|
|
|
po4a --copyright-holder="The Rust Project Developers" \
|
2014-01-13 00:18:04 -06:00
|
|
|
--package-name="Rust" \
|
2014-06-27 13:07:26 -05:00
|
|
|
--package-version="0.11.0" \
|
2014-01-13 00:18:04 -06:00
|
|
|
-M UTF-8 -L UTF-8 \
|
2014-02-02 17:23:34 -06:00
|
|
|
src/doc/po4a.conf
|
2014-01-13 00:18:04 -06:00
|
|
|
~~~~
|
|
|
|
|
2014-06-27 13:07:26 -05:00
|
|
|
(the version number must be changed if it is not 0.11.0 now.)
|
2014-01-13 00:18:04 -06:00
|
|
|
|
|
|
|
Now you can translate documents with .po files, commonly used with gettext. If
|
|
|
|
you are not familiar with gettext-based translation, please read the online
|
|
|
|
manual linked from http://www.gnu.org/software/gettext/ . We use UTF-8 as the
|
|
|
|
file encoding of .po files.
|
|
|
|
|
|
|
|
When you want to make a commit, do the command below before staging your
|
|
|
|
change:
|
|
|
|
|
|
|
|
~~~~
|
2014-02-02 17:23:34 -06:00
|
|
|
for f in src/doc/po/**/*.po; do
|
2014-01-14 06:30:15 -06:00
|
|
|
msgattrib --translated $f -o $f.strip
|
2014-01-13 00:18:04 -06:00
|
|
|
if [ -e $f.strip ]; then
|
|
|
|
mv $f.strip $f
|
|
|
|
else
|
|
|
|
rm $f
|
|
|
|
fi
|
|
|
|
done
|
2014-01-14 06:30:15 -06:00
|
|
|
~~~~
|
2014-01-13 00:18:04 -06:00
|
|
|
|
|
|
|
This removes untranslated entries from .po files to save disk space.
|