The R Project SVN R

Rev

Rev 48530 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

The Makefile.in.in here was originally produced by gettextize, but has
since been modified extensively.

If you convert a C file for use with gettext, add it to POTFILES.in and
then run

    make update-po

to recreate R.pot and update the automated `translations'.

Target

    make update-pkg-po

updates the message catalogs for the C and R code in the standard packages,
uses msgmerge --update to update the translations and then re-makes the
compiled (.mo) files.

To do this for an individual standard package use

    make pkg-update PKG=<pkgname>


To add a new translation, add the lang.po file to this directory and
add the language to LINGUAS.  If there are no problems with the
translations 'make all R' (in the builddir, if separate) will do the
rest (create ll.gmo and install it as required).  For fuller manual
control, use

    msgfmt -c --statistics -o ll.gmo ll.po

to check and compile the translation, and

    mkdir R_BUILD_DIR/share/locale/ll/LC_MESSAGES
    cp ll.gmo R_BUILD_DIR/share/locale/ll/LC_MESSAGES/R.mo

to install it manually for testing.

An R-core member, after fixing a translation file, e.g.,
    ../src/library/<pkg>/po/R-<ll>.po
needs to use msgfmt as above, e.g., inside the <pkg>/po/ directory,
        msgfmt -c --statistics -o R-<ll>.gmo R-<ll>.po
and     mv R-<ll>.gmo ../inst/po/<ll>/LC_MESSAGES/R-tools.mo



Windows RGui translations
=========================

These are contained in RGui.pot, created by running 'make RGui.pot-update'.

Translations should be called RGui-ll.po for language 'll': such a file is
compiled by

    msgfmt -c --statistics -o RGui-ll.gmo RGui-ll.po

To add a translation, add both the .po and .gmo files to the
RGUI-CATALOGS macro in Makefile.in.in: it will then be automatically
distributed.

To test a translation on Windows, use

    cp RGui-ll.gmo ../share/locale/ll/LC_MESSAGES/RGui.mo

and then startup RGui.exe in an appropriate locale, or set LANGUAGE=ll
on the command line.  (All RGui-*.gmo files will installed to the
right places when 'make -f Makefile.win' is run in this directory,
which is part of the main 'make' process.)

To re-make RGui.pot and all the translations use 'make update-RGui'.


Adding translations to other packages
=====================================

To create the .pot files for a package PKG with absolute path PKGDIR, use

   mkdir ${PKGDIR}/po

and (only) if there are marked translations in the C source code

    touch ${PKGDIR}/po/${PKG}.pot

Then run from this directory

     make pkg-update PKG=${PKG} PKGDIR=${PKGDIR}

This will create ${PKGDIR}/po/R-${PKG}.pot, and update
${PKGDIR}/po/${PKG}.pot if it already exists.  It will then create
en@quot translations and install them.

Running the same make command at a later stage will update the
template files, and update and install any new translations that have
been added in ${PKGDIR}/po.


Note to Mac OS X users
======================

NB: these commands did not run correctly on at least one Mac OS X
installation.  There were problems with the sed scripts used for the
en@quot translations (in how \n was handled).