<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="locale.conf">
  <refentryinfo>
    <title>locale.conf</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>locale.conf</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>locale.conf</refname>
    <refpurpose>Configuration file for locale settings</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>/etc/locale.conf</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para>The <filename>/etc/locale.conf</filename> file configures
    system-wide locale settings. It is read at early boot by
    <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>

    <para>The format of <filename>locale.conf</filename> is a newline-separated list of environment-like
    shell-compatible variable assignments, ignoring comments and empty lines. It is possible to source the
    configuration from shell scripts, however, beyond mere variable assignments, no shell features are
    supported, allowing applications to read the file without implementing a shell compatible execution
    engine. See
    <citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry> for a
    detailed description of the format.</para>

    <para>Note that the kernel command line options
    <varname>locale.LANG=</varname>,
    <varname>locale.LANGUAGE=</varname>,
    <varname>locale.LC_CTYPE=</varname>,
    <varname>locale.LC_NUMERIC=</varname>,
    <varname>locale.LC_TIME=</varname>,
    <varname>locale.LC_COLLATE=</varname>,
    <varname>locale.LC_MONETARY=</varname>,
    <varname>locale.LC_MESSAGES=</varname>,
    <varname>locale.LC_PAPER=</varname>,
    <varname>locale.LC_NAME=</varname>,
    <varname>locale.LC_ADDRESS=</varname>,
    <varname>locale.LC_TELEPHONE=</varname>,
    <varname>locale.LC_MEASUREMENT=</varname>,
    <varname>locale.LC_IDENTIFICATION=</varname> may be
    used to override the locale settings at boot.</para>

    <para>The locale settings configured in
    <filename>/etc/locale.conf</filename> are system-wide and are
    inherited by every service or user, unless overridden or unset by
    individual programs or users.</para>

    <para>Depending on the operating system, other configuration files
    might be checked for locale configuration as well, however only as
    fallback.</para>

    <para><filename>/etc/locale.conf</filename> can be updated
    using
    <citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
    <citerefentry project='man-pages'><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    may be used to alter the settings in this file during runtime from
    the command line. Use
    <citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    to customize them on mounted (but not booted) system images.</para>
  </refsect1>

  <refsect1>
    <title>Options</title>

    <para>The following locale settings may be set using
    <filename>/etc/locale.conf</filename>:
    <varname>LANG=</varname>,
    <varname>LANGUAGE=</varname>,
    <varname>LC_CTYPE=</varname>,
    <varname>LC_NUMERIC=</varname>,
    <varname>LC_TIME=</varname>,
    <varname>LC_COLLATE=</varname>,
    <varname>LC_MONETARY=</varname>,
    <varname>LC_MESSAGES=</varname>,
    <varname>LC_PAPER=</varname>,
    <varname>LC_NAME=</varname>,
    <varname>LC_ADDRESS=</varname>,
    <varname>LC_TELEPHONE=</varname>,
    <varname>LC_MEASUREMENT=</varname>,
    <varname>LC_IDENTIFICATION=</varname>.
    Note that <varname>LC_ALL</varname> may not be configured in this
    file. For details about the meaning and semantics of these
    settings, refer to
    <citerefentry project='man-pages'><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
  </refsect1>

  <refsect1>
    <title>Example</title>

    <example>
      <title>German locale with English messages</title>

      <para><filename>/etc/locale.conf</filename>:</para>

      <programlisting># Custom settings

LANG=de_DE.UTF-8
LC_MESSAGES=en_US.UTF-8</programlisting>
    </example>

  </refsect1>

  <refsect1>
      <title>See Also</title>
      <para>
        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
        <citerefentry project='man-pages'><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
        <citerefentry project='man-pages'><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
      </para>
  </refsect1>
</refentry>
