תכניות צריכות להניח כל מיני הנחות עלינו: מהי השפה (או השפות) שבהן אנו מצפים לקרוא את מנשק המשתמש? באיזה קידוד אנחנו בד"כ משתמשים? באיזה מטבע? באיזה גודל נייר? (A4 אירופי או letter אמריקאי)? ועוד. במערכת לינוקס הדרך הטבעית להעביר מידע כזה בצורה גמישה היא דרך משתני סביבה.
bash$ locale
LANG=he_IL
LC_CTYPE="he_IL"
LC_NUMERIC="he_IL"
LC_TIME="he_IL"
LC_COLLATE="he_IL"
LC_MONETARY="he_IL"
LC_MESSAGES="he_IL"
LC_PAPER="he_IL"
LC_NAME="he_IL"
LC_ADDRESS="he_IL"
LC_TELEPHONE="he_IL"
LC_MEASUREMENT="he_IL"
LC_IDENTIFICATION="he_IL"
LC_ALL=
לפי הפלט הזה, המשתנה LANG מוגדר אצלי בצורה מפורשת, לערך
"he_IL", כלומר עברית (he) בישראל (il). לפעמים מופיעה שם רק השפה
("he"), ולפעמים מוסיפים גם את סט התווים ("he_IL.utf-8" או
"he_IL.UTF-8"). ההגדרות הללו אומרות לתכניות איפה לחפש את קובצי
ההגדרות השל ה"שפה" הזו. לפי משתני הסביבה הללו המערכת מחפשת קובצי
הגדרות. במנדרייק הם מותקנים מהחבילות locales-XX כאשר XX הוא
שם השפה בשתי אותיות (locales-he עבור עברית). ברד-האט הם כולם מותקנים
בד"כ.