locales {base} | R Documentation

## Query or Set Aspects of the Locale

### Description

Get details of or set aspects of the locale for the R process.

### Usage

    Sys.getlocale(category = "LC_ALL")
    Sys.setlocale(category = "LC_ALL", locale = "")

### Arguments

`category` | character string. Must be one of `"LC_ALL"`, `"LC_COLLATE"`, `"LC_CTYPE"`, `"LC_MONETARY"`, `"LC_NUMERIC"` or `"LC_TIME"`.
`locale` | character string. A valid locale name on the system in use. Normally `""` (the default) will pick up the default locale for the system.

### Details

The locale describes aspects of the internationalization of a program. Initially most aspects of the locale of R are set to `"C"` (which is the default for the C language and reflects North-American usage). R sets `"LC_CTYPE"` and `"LC_COLLATE"`, which allow the use of a different character set and alphabetic comparisons in that character set (including the use of `sort`), `"LC_MONETARY"` (for use by `Sys.localeconv`) and `"LC_TIME"` may affect the behaviour of `as.POSIXlt` and `strptime` and functions which use them (but not `date`).

R can be built with no support for locales, but it is normally available on Unix and is available on Windows.

Some systems will have other locale categories, but the six described here are those specified by POSIX.

Note that setting `"LC_ALL"` as from R 2.1.0 sets only `"LC_COLLATE"`, `"LC_CTYPE"`, `"LC_MONETARY"` and `"LC_TIME"`.

### Value

A character string of length one describing the locale in use (after setting for `Sys.setlocale`), or an empty character string if the locale is invalid (with a warning) or `NULL` if locale information is unavailable.
For `category = "LC_ALL"` the details of the string are system-specific: it might be a single locale or a set of locales separated by `"/"` (Solaris) or `";"` (Windows, Linux). For portability, it is best to query categories individually. It is guaranteed that the result of `foo <- Sys.getlocale()` can be used in `Sys.setlocale("LC_ALL", locale = foo)` on the same machine.

### Warning

Setting `"LC_CTYPE"` to `"C"` causes problems in the C code, so it is interpreted as an English locale in CP1252.

Setting `"LC_NUMERIC"` may cause R to function anomalously, so gives a warning. (The known problems are with input conversion in locales with `,` as the decimal point.) Setting it temporarily to produce graphical or text output may work well enough.

### See Also

`strptime` for uses of `category = "LC_TIME"`. `Sys.localeconv` for details of numerical and monetary representations.

### Examples

    Sys.getlocale()
    Sys.getlocale("LC_TIME")
    ## Not run:
    Sys.setlocale("LC_TIME", "de")     # Solaris: details are OS-dependent
    Sys.setlocale("LC_TIME", "German") # Windows
    ## End(Not run)

    Sys.setlocale("LC_COLLATE", "C")  # turn off locale-specific sorting

[Package base version 2.3.1 Index]