Translation environment4
![]() |
Current This page describes the current translation environment used for Gramps 4.0.x to Gramps 5.1.x. |
Usage
To generate an updated translation template catalog eg:gramps.pot
:
python update_po.py -p
Update the existing translation xx.po
file where xx is your language code:
python update_po.py -m it.po Merge it.po with current template.... done. Updated file: 'updated_it.po'.
![]() |
This article's content is incomplete or a placeholder stub. |
The python program update_po.py
, is a parser that uses ElementTree and xgettext.
python update_po.py -h python update_po.py --help usage: update_po.py [-h] [-t] [-x] [-g] [-c] [-p] [-m {all, xx.po}] [-k {all, xx.po}] [-u {xx.po}] [-f {xx.po}] This program generates a new template and also provides some common features. optional arguments: -h, --help show this help message and exit -t, --test test if 'python' and 'gettext' are properly installed -x, --xml extract messages from xml based file formats -g, --glade extract messages from glade file format only -c, --clean remove created files -p, --pot create a new catalog Update: Maintenance around translations -m merge lang.po files with last catalog -k check lang.po files Translation: Display content of translations file -u list untranslated messages -f list fuzzy messages python update_po.py [options]
- parser generates a new template and also provides some common features.
- test flag (-t) will test if 'python' and 'gettext' are properly installed.
- extract options are everything around extraction for message strings.
- xml flag (-x) will extract messages from xml based, ini and desktop files.
- glade flag (-g) will extract messages from glade file format only.
- clean flag (-c) will remove created files.
- pot flag (-p) will create a new catalog.
- update options are everything around update for translation file(s).
- merge flag (-m) will merge lang.po file(s) with last catalog.
- check flag (-k) will check lang.po file(s), will try to compile and will also use check_po script.
- translation options provide some information about one translation file.
- untranslate flag (-u) will list untranslated messages on lang.po file.
- fuzzy flag (-f) will list fuzzy messages on lang.po file.
Alternate ways
- Using: intltool (perl), gettext
intltool-update -p
which should be considered as incomplete, see differences between tools.
- xgettext and shell
genpot.sh
Files and directory
Like with previous environment, we need to list files with translation strings for retrieving messages and generating a 'po/gramps.pot' file. Process is now only using gettext and python.
- gettext, 'POTFILES.in' and 'POTFILES.skip' files
If you want a script to take your translatable strings into account, you must add your source file path in the file : po/POTFILES.in
. For this report example, you should add:
... gramps/plugins/leak.py gramps/plugins/mediamanager.py gramps/plugins/myreport.py # <------ gramps/plugins/narrativeweb.py gramps/plugins/patchnames.py ...
We can still check if some references are missing via:
$ intltool-update -m
Translating man pages
You can also translate the man pages (short for manual page a form of software documentation on Linux systems) into your own language.
For the development version (master branch) you can find the required starting files under the directory /data/man.
You need at least docutils package.
Some of the files you will find in the data/man
directory are:
update_man.py
en.rst
gramps.1
First off all you must make a directory for your language under data/man.
cd data/man
and on Linux run the following command mkdir xx
where xx
is your two letter language code (fr for French, sv for Swedish, etc.)
Next step is to copy the en.rst
from data/man
to your new directory and rename it to your language code eg: fr.rst
for French.
Then translate all relevant strings in the data/man/xx/xx.rst
file.
Edit the file data/man/update_man.py and search for following line LANGUAGES = ['sv', 'nl', 'pl', 'cs', 'pt_BR', 'fr', 'xx']
where 'xx' is your new language. Save the file.
Run data/man/update_man.py:
$ python update_man.py -m
All changes must be committed and pushed to your server (You should use Git. See the introduction to Git.):
git commit -am "Add man page for xx" git push
To see the result of your work, do:$ man xx/gramps.1
See also
- Translating Gramps
- Translation environment22
- Translation environment4
- See Replace make. completed in 2012 for the release of Gramps 4.0