|
|
# Localization of strings in R code
|
|
|
|
|
|
The localization (l10n) process mostly requires to marks strings in R code that are l10n candidates. This is done by wrapping every such strings with `gettext` function, for example
|
|
|
```r
|
|
|
xlab(gettext("Date"))
|
|
|
```
|
|
|
|
|
|
Apart from this, arguments of the following R functions are also automatically considered l10n candidates (see `?tools::xgettext2pot`for details: `stop`, `warning` and `message`.
|
|
|
|
|
|
When having some new l10n candidates in the R code, the following steps have to be performed (in the `Dashboard` directory):
|
|
|
|
|
|
1. `make` – this will add translation templates the new l10n candidates to the Portable Object (PO) file
|
|
|
```locales/cs/LC_MESSAGES/R-Dashboard.po```
|
|
|
|
|
|
2. Add translations by editing the new templates in the PO file. See [PO editors](#po-editors).
|
|
|
|
|
|
3. Commit and push the edited PO file.
|
|
|
|
|
|
## PO editors
|
|
|
|
|
|
The “canonical” editor for PO files is [GNU Emacs](https://www.gnu.org/software/gettext/manual/gettext.html#PO-Mode). The following specialized PO editors are also available:
|
|
|
|
|
|
* [po.vim](https://www.vim.org/scripts/script.php?script_id=2530) – for Vim
|
|
|
* [GNOME Translation Editor](https://wiki.gnome.org/Apps/Gtranslator)
|
|
|
* [Lokalize](https://userbase.kde.org/Lokalize) – for KDE 4
|
|
|
* [Poedit](https://poedit.net/)
|
|
|
|
|
|
## Notes
|
|
|
|
|
|
* The PO files also need to be transformed to Machine Object (MO) files that are then used by the [gettext](https://www.gnu.org/software/gettext/) library. This step is taken care of by GitLab CI. In other words, MO files should never be committed to GitLab.
|
|
|
|
|
|
* The above procedure assumes that the (old version of) PO file already exists. The following command was used for creating the initial version:
|
|
|
```shell
|
|
|
msginit --input=R-Dashboard.pot \
|
|
|
--output-file=locales/cs/LC_MESSAGES/R-Dashboard.po \
|
|
|
--locale=cs_CZ.UTF-8
|
|
|
``` |