makeKey("test", 'de', '', NA)
makeKey('de', '')
Adds a message and its translation(s) to the library-internal translation environment, see the GNU gettext manual.
options('gettext.lang'="de") # set the current language to 'de'
addMsg("Unknown system error", "Unbekannter Systemfehler")
addMsg("Unknown system error", "Error desconegut del sistema", lang="es")
addMsg("found \%d fatal error", plural="found \%d fatal errors",
str=c("\%d Fehler gefunden", "\%d Fehler gefunden"))
addMsg("We saw her duck", "Wir haben ihre Ente gesehen", context="duck as noun")
addMsg("We saw her duck", "Wir haben gesehen, wie sie sich duckte", context="duck as verb")
Adds a plural definition to internal translation object. It it already exists it will be overwritten.
# Czech
pl <- addPlural(text='nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;')
print(pl)
Assigns a file, based on its name or a named parameter, to a language and a domain. The base name of a file is composed by a domain and language code separated by anon-letters. A language code starts with a two (ISO 639-1) letter code.
options('gettext.lang'='en')
bind('myproject_de.po')
bind(de='myproject.po')
bind(de=c('myproject1.po', 'myproject2.po'))
bind(de=c('myproject1_de.po', 'myproject2_de.po'),
en=c('myproject1_en.po', 'myproject2_en.po'))
files <- c("myproject_de.po",
"intl/for_use_owncloud_impress_cs_CZ.po",
"intl/ibalsa-master-zh_HK.po",
"spirit-po/test1.po")
bind(files)
bind()
Sets the path for a domain.
bindtextdomain('app2', system.file('shiny', 'app2', package='gettext'))
A data frame with two- and three letter codes from ISO 639-1 and ISO 693-2. Codes are taken from alpha-3 bibliographic, alpha-3 terminologic and alpha-2 code.
data(iso639)
head(iso639)
A list of plural forms used in PO files.
data(plural)
plural[[1]]
lang <- sapply(plural, function(v) { v$lang })
# extract arabic
ar <- which(lang=='ar')
plural[[ar]]
# test of plural form
plural[[ar]]$plural(0:100)
Returns a copy of the internal translation environment or a list of str
's of each object.
getTranslation()
Returns a translated string from the untranslated string id1
. An abbreviated form is G
since
R does not support _
as unary operator.
gettext("I saw her duck") # no translation at all
G("I saw her duck")
Takes a file, R code or R expression and replaces all text constants by gettext(text_constant)
.
The replacement is not done inside gettext
, G
, ngettext
, N
, library
and
require
.
If expr
is a character then gettextify
tries first to open a file with the name.
If this fails then it wil be assumed that expr
contains valid R code.
gettextify ('x<-"a"')
gettextify (system.file(package='gettext', 'shiny', 'app1', 'app.R'))
gettextify (parse(system.file(package='gettext', 'shiny', 'app1', 'app.R')))
Appends a warning to the library-internal translation environment.
msgWarning('duplicate entry')
Returns a translated string from the untranslated string id2
. An abbreviated form is N
since
R does not support _
as unary operator.
ngettext("I saw one duck", "I saw \%.0f ducks", 1)
sprintf(ngettext("I saw \%0.f duck", "I saw \%.0f ducks", 3), 3) # no translation at all
sprintf(N("I saw a duck", "I saw \%.0f ducks", 3), 3)
Converts a plural from from text to list with the input text, nplurals value and a R function
plural(n)
which computes the plural index from n
.
\itemize{
\item Note 1: The index is increased by one since R starts with x[1] and C with x[0]
\item Note 2: Only a subset of C symbols are supported based on the test cases:
(
, )
, \%
, <
, >
, >=
, <=
, &&
, ||
, ?:
, =
, and ;
.
}
# Belarusian plural form
p <- paste0('nplurals=3;',
'plural=(n\%10==1 && n\%100!=11 ? 0 : n\%10>=2 && n\%10<=4 && (n\%100<10 || n\%100>=20) ? 1 : 2);')
l <- plural2R(p)
l$nplurals
l$plural(0:100)
Prints all warning messages for the translation object.
printWarnings()
Reads one or more PO file into the library internal translation object.
If file
has been created with [language()] then several files with different
domains and languages can be read at once.
\dontrun{
readPofile('test_de.po', lang='de')
readPofile(languageFiles('test_de.po'))
}
\itemize{
\item saveTranslation
saves the library-internal translation environment as an RDS file, for details see [base::saveRDS()].
\item readTranslation
restores the library-internal translation environment from an RDS file, for details see [base::readRDS()].
\item cleanTranslation
deletes in all domains and languages the translations in the library-internal translation environment.
}
\dontrun{
saveTranslation("translation.RDS")
cleanTranslation()
readTranslation("translation.RDS")
}
Creates a POT file from text extracted with [xgettext()].
txt <- xgettext(parse(system.file('app1', 'app.R', package='gettext')))
\dontrun{
writePotfile(txt, 'myproject.pot')
}
Extracts all text constants from R program including gettext
calls.
xgettext(parse(system.file('app1', 'app.R', package='gettext')))
xgettext(parse(system.file('app2', 'app.R', package='gettext')))
txt <- xgettext(parse(system.file('shiny', 'app1', 'app.R', package='gettext')))
txt