couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andy Wenk <>
Subject Suggested process for integrating l10n into the CouchDB source
Date Mon, 21 Oct 2013 21:46:36 GMT
Hi all,

I have written together a suggestion for integrating i10n into the CouchDB
source. Pleas take this as a draft. I have no deeper insights into the
organization of the build process of CouchDB yet so I expect that some of
my suggestions are not working. But I want to get things rollin' ;-)


/ install sphinx-intl

1.) add the following to share/doc/src/

  locale_dirs = ["../locale/"]
  gettext_compact = False

2.) create the folder share/doc/locale

3.) create .pot files in share/doc/locale/pot

  cd share/doc/src
  sphinx-build -b gettext . ../locale/pot

4.) create language target folders in share/doc/locale

  sphinx-intl update -p ../locale/pot -l de -l fr

Now we have a lot of .po files. These files are needed for translation. As
we want to use the pootle service we need to transfer the .po files to I am not sure how this has
to be done as I don't know the service there.

5.) when the .po files are translated, we put them back into the folder
locale and convert them into a binary format .mo

  sphinx-intl build

6.) the last step is to create the html files. I suggest to have them in a
language folder under share/www

  share/www <- en

This is where share/doc/build/ has to be adjusted. It can be
done with this (from share/doc/src):

  sphinx-build -b html -d src/doctrees . ../www/en
  sphinx-build -b html -D language='de' -d src/doctrees . ../www/de
  sphinx-build -b html -D language='fr' -d src/doctrees . ../www/fr

Now we have made translated html files from one source. You can see a
little translation in share/doc/www/de/contributing.html (just to prove
that it works ;-) ).

7.) If we added new sources (.rst) to the documentation we create .pot
files with

  sphinx-build -b gettext . ../locale/pot

as seen in 1.). Then we have to update the .po files with this command:

  sphinx-intl update -p ../locale/pot

If we add a new language, we invoke:

  sphinx-intl update -p ../locale/pot -l 'es'

I have put the result into the branch l10n at

I would love to get your feedback, thoughts, ideas and finally somebody who
is doing the implementation or helping me to do it so that I can send a PR.


Andy Wenk
Hamburg - Germany

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message