update_pkg_po {tools}R Documentation

Prepare Translations for a Package


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


update_pkg_po(pkgdir, pkg = NULL, version = NULL,
              pot_make = TRUE, mo_make = TRUE,
              verbose = getOption("verbose"),
              mergeOpts = "", 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.

pot_make, mo_make

logicals indicating if a new ‘*.pot’ file or new binary translations ‘*.mo’ should be (re)created.


logical indicating if extra information about the updating process should be printed to the console.


a string, by default empty, of space-separated options to msgmerge in addition to "--update". Since R 4.2.0, "--no-wrap" is used when called from file.path(R.home("po"), "Makefile").

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


[Package tools version 4.4.1 Index]