| update_pkg_po {tools} | R Documentation | 
Prepare Translations for a Package
Description
Prepare the ‘po’ directory of a package and optionally compile and install the translations.
Usage
update_pkg_po(pkgdir, pkg = NULL, version = NULL,
              pot_make = TRUE, mo_make = TRUE,
              verbose = getOption("verbose"),
              mergeOpts = "", copyright, bugs)
Arguments
| pkgdir | The path to the package directory. | 
| pkg | The package name: if  | 
| version | The package version: if  | 
| pot_make,mo_make | 
 | 
| verbose | 
 | 
| mergeOpts | a string, by default empty, of space-separated options to
 | 
| copyright,bugs | optional character strings for the ‘Copyright’ and ‘Report-Msgid-Bugs-To’ details in the template files. | 
Details
This performs a series of steps to prepare or update messages in the package.
- If the package sources do not already have a ‘po’ directory, one is created. 
-  xgettext2potis called to create/update a file ‘po/R-pkgname.pot’ containing the translatable messages in the package.
- All existing files in directory - powith names ‘R-lang.po’ are updated from ‘R-pkgname.pot’,- checkPoFileis called on the updated file, and if there are no problems the file is compiled and installed under ‘inst/po’.
- In a UTF-8 locale, a ‘translation’ ‘R-en@quot.po’ is created with UTF-8 directional quotes, compiled and installed under ‘inst/po’. 
- The remaining steps are done only if file ‘po/pkgname.pot’ already exists. The ‘src/*.{c,cc,cpp,m,mm}’ files in the package are examined to create a file ‘po/pkgname.pot’ containing the translatable messages in the C/C++ files. If there is a - src/windowsdirectory, files within it are also examined.
- All existing files in directory - powith names ‘lang.po’ are updated from ‘pkgname.pot’,- checkPoFileis called on the updated file, and if there are no problems the file is compiled and installed under ‘inst/po’.
- In a UTF-8 locale, a ‘translation’ ‘en@quot.po’ is created with UTF-8 directional quotes, compiled and installed under ‘inst/po’. 
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.