Home

LCIDs

LCIDs, or Locale Identifiers, are numeric values used by Windows to identify a specific locale—combining language, regional settings, and often sorting rules—for the purpose of formatting data, selecting resources, and other culture-specific behavior. An LCID is a 32-bit value in Windows APIs; the low 16 bits encode a language ID and a sublanguage identifying the locale, while the higher bits may carry additional sort order or reserved data. The LANGID part can be constructed with macros such as MAKELANGID and SUBLANG constants in development.

Common examples include 0x0409 for English (United States), 0x0407 for German (Germany), and 0x040C for French

LCIDs are largely Windows-specific and have historically been used for resource loading by language-specific resource DLLs

In practice, developers may need to map between LCIDs and human-readable names, or convert to BCP 47

(France).
These
values
are
used
by
functions
such
as
GetUserDefaultLCID,
GetThreadLocale,
and
SetThreadLocale
to
tailor
formatting
(dates,
numbers,
currency),
string
resources,
and
input
behavior
to
the
user's
locale.
and
for
locale-aware
API
calls.
They
coexist
with
locale
names
or
language
tags
(like
en-US)
in
modern
software;
some
APIs
accept
either
form,
while
others
prefer
or
require
LCIDs
for
compatibility
with
older
code.
language
tags
for
cross-platform
interoperability.
Understanding
LCIDs
is
useful
when
dealing
with
legacy
Windows
applications,
internationalization,
and
locale-sensitive
operations
in
the
Windows
API.