linux - Meaning of LC_IDENTIFICATION environment variable

19
2014-04
  • Amir

    Just out of curiosity, what is the meaning of LC_IDENTIFICATION?

    The reason I am asking is, that a fresh US-English installation of Linux Mint (I guess Ubuntu would be the same), located in “Jerusalem” for time zone, left me with the following mix and match locale in /etc/default/locale:

    LANG=en_US.UTF-8
    LANGUAGE=
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC=he_IL.UTF-8
    LC_TIME=he_IL.UTF-8
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY=he_IL.UTF-8
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER=he_IL.UTF-8
    LC_NAME=he_IL.UTF-8
    LC_ADDRESS=he_IL.UTF-8
    LC_TELEPHONE=he_IL.UTF-8
    LC_MEASUREMENT=he_IL.UTF-8
    LC_IDENTIFICATION=he_IL.UTF-8
    LC_ALL=
    

    As I was working to fix it to my liking, I was wondering if I should also update LC_IDENTIFICATION.

    The man page for locale(1) says “Metadata about the locale information”, but it does not tell me exactly what the effect of changing it would be. Can you think of any application or API using this variable and how?

  • Answers
  • slhck

    It appears that by setting LC_IDENTIFICATION you indeed supply metadata for a given locale specification, as seen in this example of the Uzbekistan locale:

    LC_IDENTIFICATION
    title      "Uzbek (latin) locale for Uzbekistan"
    source     "Bobir Ismailov"
    address    ""
    contact    "Bobir Ismailov, Pablo Saratxaga, Mashrab Kuvatov"
    email      "[email protected], [email protected], [email protected]"
    tel        ""
    fax        ""
    language   "Uzbek"
    territory  "Uzbekistan"
    revision   "0.5"
    date       "2003-06-27"
    

    Or another variant with the Greek locale:

    LC_IDENTIFICATION
    title      "Greek locale for Greece"
    source     "RAP"
    address    "Sankt Jorgens Alle 8, DK-1615 Kobenhavn V, Danmark"
    contact    ""
    email      "address@hidden"
    tel        ""
    fax        ""
    language   "Greek"
    territory  "Greece"
    revision   "1.0"
    date       "2000-06-29"
    

    LC_IDENTIFICATION is a GNU extension. I could not find a specification of it though. Since it's just metadata, I'm assuming it's not used in any userland programs.


  • Related Question

    Where do I initialise the LANG and LC_ALL sys variables under Ubuntu 8.10?
  • Thierry Lam

    Under Ubuntu 8.10, bash shell, the LANG and LC_ALL variables are not set:

    user@machine1:~$ locale
    LANG=
    LC_CTYPE="POSIX"
    LC_NUMERIC="POSIX"
    LC_TIME="POSIX"
    LC_COLLATE="POSIX"
    LC_MONETARY="POSIX"
    LC_MESSAGES="POSIX"
    LC_PAPER="POSIX"
    LC_NAME="POSIX"
    LC_ADDRESS="POSIX"
    LC_TELEPHONE="POSIX"
    LC_MEASUREMENT="POSIX"
    LC_IDENTIFICATION="POSIX"
    LC_ALL=
    

    Where should I set those variables so that they point to en_US.UTF-8. Once that is done, do I need to restart anything?


  • Related Answers
  • Johan

    You can set it per user in ~/.bashrc:

    export LANG=en_US.UTF-8
    

    If you do not have that locale file installed, you can do it by

    locale-gen en_US.UTF-8
    
  • Evan Carroll

    LANG is set in /etc/default/locale the rest of those the LC_ stuff are locale specific variables that I believe are set by the bash. They aren't set by xterm anyway. See man locale and man setlocale for more information.