locales                 package: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.  The following categories should always be
          supported: '"LC_ALL"', '"LC_COLLATE"', '"LC_CTYPE"',
          '"LC_MONETARY"', '"LC_NUMERIC"' and '"LC_TIME"'.  Some
          systems will also support '"LC_MESSAGES"', '"LC_PAPER"' and
          '"LC_MEASUREMENT"'. 

  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.

     The first seven categories described here are those specified by
     POSIX.  '"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
     'Sys.setlocale'.

     Note that setting '"LC_ALL"' sets only '"LC_COLLATE"',
     '"LC_CTYPE"', '"LC_MONETARY"' and '"LC_TIME"'.

     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_TYPE",
     )', if that implies a different character set) during a session
     may not work and are likely to lead to some confusion.

Value:

     A character string of length one describing the locale in use
     (after setting for 'Sys.setlocale'), or an empty character string
     if the current locale settings are invalid 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 name or a set of
     locale names separated by '"/"' (Solaris, Mac OS X) 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)'.

Warning:

     Setting '"LC_NUMERIC"' may cause R to function anomalously, so
     gives a warning.  As from R 2.7.0 input conversions in R itself
     are unaffected, but the reading and writing of ASCII 'save' files
     will be, as may packages. Setting it temporarily to produce
     graphical or text output may work well enough, but
     'options(OutDec)' is often preferable.

See Also:

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

     'l10n_info' gives some summary facts about the locale and its
     encoding.

Examples:

     Sys.getlocale()
     Sys.getlocale("LC_TIME")
     ## Not run: 
     Sys.setlocale("LC_TIME", "de")     # Solaris 7: details are OS-dependent
     Sys.setlocale("LC_TIME", "de_DE.utf8")  # Modern Linux etc.
     Sys.setlocale("LC_TIME", "German") # Windows
     ## End(Not run)
     Sys.getlocale("LC_PAPER")          # may or may not be set

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

