Skip to content

Locales

Scheme Procedure: setlocale category [locale]

C Function: scm_setlocale (category, locale)

Get or set the current locale, used for various internationalizations. Locales are strings, such as ‘sv_SE’.

If locale is given then the locale for the given category is set and the new value returned. If locale is not given then the current value is returned. category should be one of the following values (see Categories of Activities that Locales Affect in The GNU C Library Reference Manual):

Variable: LC_ALL

Variable: LC_COLLATE

Variable: LC_CTYPE

Variable: LC_MESSAGES

Variable: LC_MONETARY

Variable: LC_NUMERIC

Variable: LC_TIME

A common usage is ‘(setlocale LC_ALL "")’, which initializes all categories based on standard environment variables (LANG etc). For full details on categories and locale names see Locales and Internationalization in The GNU C Library Reference Manual.

Note that setlocale affects locale settings for the whole process. See locale objects and make-locale, for a thread-safe alternative.

A system-error exception (see How to Handle Errors) is raised by setlocale when locale-name does not match any of the locales compiled on the system.