update_pkg_po: Prepare Translations for a Package

Description Usage Arguments Details System requirements See Also


Prepare the ‘po’ directory of a package and compile and install the translations.


update_pkg_po(pkgdir, pkg = NULL, version = NULL, copyright, bugs)



The path to the package directory.


The package name: if NULL it is read from the package's ‘DESCRIPTION’ file.


The package version: if NULL it is read from the package's ‘DESCRIPTION’ file.

copyright, bugs

optional character strings for the Copyright and Report-Msgid-Bugs-To details in the template files.


This performs a series of steps to prepare or update messages in the package.

Note that C/C++ messages are not automatically prepared for translation as they need to be explicitly marked for translation in the source files. Once that has been done, create an empty file ‘po/pkgname.pot’ in the package sources and run this function again.

pkg = "base" is special (and for use by R developers only): the C files are not in the package directory but in the main sources.

System requirements

This function requires the following tools from the GNU gettext-tools: xgettext, msgmerge, msgfmt, msginit and msgconv. These are part of most Linux distributions and easily compiled from the sources on Unix-alikes (including macOS). Pre-compiled versions for Windows are available in https://www.stats.ox.ac.uk/pub/Rtools/goodies/gettext-tools.zip.

It will probably not work correctly for en@quot translations except in a UTF-8 locale, so these are skipped elsewhere.

See Also