Difference between revisions of "Translation environment4"

From Gramps
Jump to: navigation, search
(Created page with "This page describes the next translation environment. Could be used for Gramps 4.0.x. Category:Translators/Categories Category:Developers/General")
 
m (completed)
(27 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
This page describes the next translation environment.
 
This page describes the next translation environment.
  
Could be used for Gramps 4.0.x.
+
See [[GEPS_026:_Replace_'make'_for_Gramps_build|Replace make]]. ''completed'' (testing stage)
 +
 
 +
Could be used for Gramps '''4.0.x'''.
 +
 
 +
==How it works==
 +
 
 +
* One way: intltool (perl), gettext
 +
 
 +
intltool-update -p
 +
or run:
 +
genpot.sh
 +
 
 +
* Other way: python, ElementTree[http://docs.python.org/library/xml.etree.elementtree.html] and xgettext[http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/xgettext-Invocation.html]
 +
 
 +
python update_po.py -h
 +
python update_po.py --help
 +
python update_po.py [options]
 +
 
 +
For generating a new template:
 +
python update_po.py -p
 +
 
 +
* ''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 are some informations 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'''.
 +
 
 +
===Files and directory===
 +
 
 +
Like with [[Translation_environment22#Files_and_directory|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 : <code>po/POTFILES.in</code>. 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
 +
...
 +
 
 +
==Translating man pages==
 +
 
 +
You can also translated the man pages into your own language.
 +
 
 +
For the development (trunk) version you can find the required starting files under the directory /data/man.
 +
 
 +
You need at least [http://docutils.sourceforge.net/ docutils package].
 +
 
 +
You will find the files
 +
*update_man.py
 +
*en.rst
 +
*gramps.1
 +
 
 +
First off all you must make a directory for your language under data/man.
 +
<code>
 +
  cd data/man
 +
</code>
 +
 
 +
and do <code>
 +
  mkdir xx
 +
</code>
 +
 
 +
where xx is your languagecode (fr for French, sv for Swedish, etc.) You should use SVN. See [[Brief_introduction_to_SVN| the introduction to SVN]]. Then do <code>
 +
  svn add xx
 +
  svn commit -m "xx dir for man pages" xx
 +
</code>
 +
This will add the xx dir under svn revision control and upload the new dir.
 +
 
 +
Next step is to copy the en.rst from data/man to your new directory and rename it to your langage code.
 +
 
 +
Translate all relevant strings in the data/man/xx/xx.rst file.
 +
 
 +
Edit the file data/man/update_man.py by adding your lang
 +
 
 +
Run data/man/update_man.py:
 +
<code>
 +
$ python update_man.py -m
 +
</code>
 +
 
 +
Because you added new files, SVN requires that you set the correct propset for those files. Two things are to be done.
 +
<code>
 +
  svn propset svn:mime-type text/plain xx/gramps.1 xx/xx.rst
 +
  svn propset svn:eol-type native xx/gramps.1 xx/xx.rst
 +
</code>
 +
 
 +
You could also in the config file of subversion ( HOMEDIR/.subversion/config) enable the auto-prop feature (enable-auto-props = yes) and uncomment the relevant lines in the [auto-props] section.
 +
All changes must be committed.
 +
 
 +
To see the result of your work, do:<code>
 +
  $ man xx/gramps.1
 +
</code>
  
 
[[Category:Translators/Categories]]
 
[[Category:Translators/Categories]]
 
[[Category:Developers/General]]
 
[[Category:Developers/General]]

Revision as of 04:16, 28 December 2012

This page describes the next translation environment.

See Replace make. completed (testing stage)

Could be used for Gramps 4.0.x.

How it works

  • One way: intltool (perl), gettext
intltool-update -p

or run:

genpot.sh
  • Other way: python, ElementTree[1] and xgettext[2]
python update_po.py -h
python update_po.py --help
python update_po.py [options]

For generating a new template:

python update_po.py -p
  • 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 are some informations 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.

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
...

Translating man pages

You can also translated the man pages into your own language.

For the development (trunk) version you can find the required starting files under the directory /data/man.

You need at least docutils package.

You will find the files

  • 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 do

  mkdir xx

where xx is your languagecode (fr for French, sv for Swedish, etc.) You should use SVN. See the introduction to SVN. Then do

  svn add xx
  svn commit -m "xx dir for man pages" xx

This will add the xx dir under svn revision control and upload the new dir.

Next step is to copy the en.rst from data/man to your new directory and rename it to your langage code.

Translate all relevant strings in the data/man/xx/xx.rst file.

Edit the file data/man/update_man.py by adding your lang

Run data/man/update_man.py:

$ python update_man.py -m

Because you added new files, SVN requires that you set the correct propset for those files. Two things are to be done.

  svn propset svn:mime-type text/plain xx/gramps.1 xx/xx.rst
  svn propset svn:eol-type native xx/gramps.1 xx/xx.rst

You could also in the config file of subversion ( HOMEDIR/.subversion/config) enable the auto-prop feature (enable-auto-props = yes) and uncomment the relevant lines in the [auto-props] section. All changes must be committed.

To see the result of your work, do:

  $ man xx/gramps.1