Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
105 lines (65 sloc) 3.14 KB
The 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 and
then run
make update-po
to recreate R.pot and update the automated `translations'.
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>
If you add a package, R-level catalogs are produced automatically but
for a C-level catalog you need to touch path/to/package/po/package.pot.
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 and install it as required). For fuller manual
control, use
msgfmt -c --statistics -o ll.po
to check and compile the translation, and
mkdir R_BUILD_DIR/share/locale/ll/LC_MESSAGES
cp R_BUILD_DIR/share/locale/ll/LC_MESSAGES/
to install it manually for testing.
An R-core member, after fixing a translation file, e.g.,
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/
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.po
To add a translation, add both the .po and .gmo files to the
RGUI-CATALOGS macro in it will then be automatically
To test a translation on Windows, use
cp ../share/locale/ll/LC_MESSAGES/
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' 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).