Get details of or set aspects of the locale for the R process.
Sys.getlocale(category = "LC_ALL") Sys.setlocale(category = "LC_ALL", locale = "")
character string. The following categories should
always be supported:
character string. A valid locale name on the system in
The locale describes aspects of the internationalization of a program.
Initially most aspects of the locale of R are set to
(which is the default for the C language and reflects North-American
usage – also known as
"POSIX"). R sets
"LC_COLLATE", which allow the use of a different character set
and alphabetic comparisons in that character set (including the use of
"LC_MONETARY" (for use by
"LC_TIME" may affect the
functions which use them (but not
The first seven categories described here are those specified by
"LC_MESSAGES" will be
"C" on systems that do not
support message translation, and is not supported on Windows. Trying
to use an unsupported category is an error for
Note that setting category
"LC_ALL" sets only categories
Attempts to set an invalid locale are ignored. There may or may not be a warning, depending on the OS.
Attempts to change the character set (by
Sys.setlocale("LC_CTYPE", ), if that implies a different
character set) during a session may not work and are likely to lead to
Note that the LANGUAGE environment variable has precedence over
"LC_MESSAGES" in selecting the language for message translation
on most R platforms.
On platforms where ICU is used for collation the locale used for
collation can be reset by
icuSetCollate. Except on
Windows, the initial setting is taken from the
category, and it is reset when this is changed by a call to
A character string of length one describing the locale in use (after
Sys.setlocale), or an empty character string if the
current locale settings are invalid or
NULL if locale
information is unavailable.
category = "LC_ALL" the details of the string are
system-specific: it might be a single locale name or a set of locale
names separated by
"/" (Solaris, macOS) or
(Windows, Linux). For portability, it is best to query categories
individually: it is not necessarily the case that the result of
foo <- Sys.getlocale() can be used in
Sys.setlocale("LC_ALL", locale = foo).
On most Unix-alikes the POSIX shell command
locale -a will
list the ‘available public’ locales. What that means is
platform-dependent. On recent Linuxen this may mean ‘available
to be installed’ as on some RPM-based systems the locale data is in
separate RPMs. On Debian/Ubuntu the set of available locales is
managed by OS-specific facilities such as
locale -a lists those currently enabled.
For Windows, Microsoft moves its documentation frequently so a Web search is the best way to find current information.
"LC_NUMERIC" to any value other than
cause R to function anomalously, so gives a warning. Input
conversions in R itself are unaffected, but the reading and writing
save files will be, as may packages which do
their own input/output.
Setting it temporarily on a Unix-alike to produce graphical or text
output may work well enough, but
Almost all the output routines used by R itself under Windows ignore
the setting of
"LC_NUMERIC" since they make use of the Trio
library which is not internationalized.
Changing the values of locale categories whilst R is running ought to be noticed by the OS services, and usually is but exceptions have been seen (usually in collation services).
Do not use the value of
Sys.getlocale("LC_CTYPE") to attempt to
find the character set – for example UTF-8 locales can have suffix
.UTF-8 or .utf8 (more common on Linux than UTF-8)
or none (as on macOS) and Latin-9 locales can have suffix
ISO8859-15, iso885915, iso885915@euro or
strptime for uses of
category = "LC_TIME".
Sys.localeconv for details of numerical and monetary
l10n_info gives some summary facts about the locale and
its encoding (including if it is UTF-8).
The ‘R Installation and Administration’ manual for background on locales and how to find out locale names on your system.
Sys.getlocale() Sys.getlocale("LC_TIME") ## Not run: Sys.setlocale("LC_TIME", "de") # Solaris: details are OS-dependent Sys.setlocale("LC_TIME", "de_DE") # Many Unix-alikes Sys.setlocale("LC_TIME", "de_DE.UTF-8") # Linux, macOS, other Unix-alikes Sys.setlocale("LC_TIME", "de_DE.utf8") # some Linux versions Sys.setlocale("LC_TIME", "German") # Windows ## End(Not run) Sys.getlocale("LC_PAPER") # may or may not be set ## Not run: Sys.setlocale("LC_COLLATE", "C") # turn off locale-specific sorting, # usually (but not on all platforms) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.