LinuxCommandLibrary

eselect-locale

Set system-wide locale settings

TLDR

List available locales

$ eselect locale list
copy

Set the $LANG environment variable in /etc/profile.env by name or index from the list command
$ eselect locale set [name|index]
copy

Display the value of $LANG in /etc/profile.env
$ eselect locale show
copy

SYNOPSIS

eselect locale action [arguments]

PARAMETERS

list [locale_prefix]
    List all available locales, or variants/sub-locales matching locale_prefix (e.g., 'en_US').

set index1 [index2 [index3 ...]]
    Set system locale(s) using indices from 'list': index1=LANG, index2=LC_COLLATE, index3=LC_MESSAGES, etc.

help
    Display usage information.

DESCRIPTION

eselect locale is a Gentoo-specific module of the eselect framework for managing system locales. It lists locales compiled into glibc (based on /etc/locale.gen) and sets the active system locale by updating /etc/env.d/02locale.

To use: First, uncomment desired locales in /etc/locale.gen, run emerge --ask --newuse @locale (or recompile glibc). Then eselect locale list shows numbered options like 1 en_US (en_US.utf8). Use eselect locale set 1 to activate.

It supports hierarchical listing: eselect locale list en_US shows variants (UTF-8, ISO-8859-1). Multiple indices set LANG (first), LC_COLLATE (second), LC_MESSAGES (third), etc.

Changes require env-update and sourcing /etc/profile or relogin for environment variables to update. Ideal for multilingual setups or switching encodings without recompiling.

CAVEATS

Gentoo-only; requires eselect package and glibc recompiled with locales. Always run env-update && source /etc/profile after 'set'. Indices change if locales updated.

EXAMPLE USAGE

eselect locale list
1) en_US (en_US.utf8)
2) en_US (en_US)
eselect locale set 1
env-update && source /etc/profile
echo $LANG # en_US.utf8

ADDING LOCALES

Edit /etc/locale.gen, add lines like 'en_US.UTF-8 UTF-8'. Run emerge --ask --newuse @locale, then eselect locale list refreshes.

HISTORY

Introduced ~2005 as part of eslect (Gentoo's 2004 selector tool) to streamline OpenRC-based locale config vs. manual env.d edits.

SEE ALSO

eselect(5), env-update(1), locale(1), localedef(1)

Copied to clipboard