ה-locale הוא אוסף משתני סביבה הנוגעים להגדרות איזוריות כמו תסדיר הצגת התאריך, שפת הכתיבה, מידות וכו' משתני ה-locale יכולים לקבל ערך אחיד (לדוגמה כל משתני הסביבה יכולים להיות מכוונים להגדרות המתאימות לישראל ועברית) אך ניתן גם ליצור מקבץ הגדרות שאינן אחידות (לדוגמה שימוש בשפה העברית אך מדידת גדלים ביחידות האופיניות לארה”ב), הכל בהתאם לצרכי המשתמש. מסמך זה יסקור את המשתנים השונים הנכללים ב-locale וכיצד הם משפיעים על המערכת.
משתנים תואמי תקן POSIX. | |
LC_ALL | אם הוגדר ערך למשתנה זה יקבלו גם כל משתני ה-loacle האחרים את אותו ערך קבוע |
LC_COLLATE | ערך משתנה זה קובע לפי איזו שפה ימוינו קטעים כתובים ומחרוזות על ידי פונקציות כמו strcoll ו- strxfrm |
LC_CTYPE | ערך משתנה זה קובע את השפה להקלדה |
LC_MESSAGES | ערך משתנה זה קובע את השפה בה יוצגו הודעות למשתמש. תוכנות המשתמשות ב- GNU gettex יקבלו גם משתנה בשם LANGUAGE לאותה מטרה |
LC_MONETARY | ערך משתנה זה קובע את המטבע איתו תעבוד המערכת ואת תסדיר הצגת הערכים הכספיים |
LC_NUMERIC | ערך משתנה זה קובע את התסדיר לפיו יוצגו מספרים שאינם מייצגים ערכים כספיים |
LC_TIME | ערך משתנה זה קובע את התסדיר לפיו יוצגו השעה והתאריך |
LANG | כל משתנה ממשתני ה-locale שאין לו ערך מוגדר יקבל ערך זה. אם לא נקבע ערך למשתנה זה ברירת המחדל היא “C”. אם נקבע למשתנה זה או למשתנה אחר ממשתני ה-locale ערך שאינו תקף יחשב ערכו כערך ברירת המחדל |
הרחבות לתקן הנכללות ב- glibc. מקור הרחבות אלו במערכת ה-gettext. | |
LC_NAME | ערך משתנה זה קובע את התסדיר לפיו יוצגו שמות |
LC_ADDRESS | ערך משתנה זה קובע את התסדיר לפיו יוצגו כתובות |
LC_PAPER | ערך משתנה זה קובע את הגודל הסטנדרטי לדף |
LC_MEASUREMENT | ערך משתנה זה קובע את יחידות המדידה בסיסיות (בסיס מטרי או אחר) |
LC_TELEPHONE | ערך משתנה זה קובע את התסדיר לפיו יוצגו מספרי טלפון |
LANGUAGE | אם הוגדר ערך למשתנה זה יקבל המשתנה LC_MESSAGES את אותו הערך. משתנה זה יכול לקבל מספר ערכים אשר יסודרו לפי סדר עדיפות. |
locale -a #lists All available locales in the system
locale -m #lists all available charMaps
LANGUAGE=he:en_US:pt_BR.UTF-8
locale -c category_name
שימו לב כי קיים הבדל מהותי בין הגדרת ה-locale לקטגוריה לבין תוכנה הממשי. ההגדרה רק מנחה באילו קבצים קבועים מראש יש להשתמש. לדוגמה עבור הקטגוריה LC_TIME שקיבלה את הערך he_IL יתקבל הפלט הבא:
DoK@DoKsBoKs ~]$ locale -c LC_TIME LC_TIME א';ב';ג';ד';ה';ו';ש' ראשון;שני;שלישי;רביעי;חמישי;שישי;שבת ינו;פבר;מרץ;אפר;מאי;יונ;יול;אוג;ספט;אוק;נוב;דצמ ינואר;פברואר;מרץ;אפריל;מאי;יוני;יולי;אוגוסט;ספטמבר;אוקטובר;נובמבר;דצמבר 0 \uffff 7 19971130 0 1 1 1 %a %b %e %H:%M:%S %Z %Y UTF-8
locale -k keyword
כך לדוגמה עבור אותו מקרה שתואר לעיל תתקבל התוצאה הבאה
DoK@DoKsBoKs ~]$ locale -k day day="ראשון;שני;שלישי;רביעי;חמישי;שישי;שבת"
בדקתם את מערכי ה-locale הזמינים במערכת שלכם אך לא מצאתם את ה-locale הרצוי, מה עושים?
מגדירים מערך locale חדש.
באופן כללי הפקודה להגדרת מערך locale חדש נראית כך
localedef -f charmapfile -i inputfile options new_locale
עבור charmapfile יש לתת את הנתיב לקובץ מפת התווים הרצוי ועבור inpufile יש לתת את הנתיב לקובץ המידע הרצוי ל-locale, אם לא צויין נתיב מפורש ל-inputfile תחפש המערכת הגדרות מתאימות גם בנתיב ברירת המחדל המוגדר על ידי משתנה הסביבה I18NPATH וגם בתיקית ברירת המחדל להגדרות locale אותה ניתן לקבל מפלט הפקודה localedef –help.
במקום options ניתן להזין אפשרויות שונות שלעת עתה לא יפורטו כאן.
למדת ושיננת את כל שיש לדעת אודות משתני ה-loacle השונים ועכשיו הזמן להגדיר את המערכת לפי דרישותיך אבל… איפה?
לרוע המזל הגדרת ה-locale נמצאת במקומות שונים בהפצות שונות המשתמשות במבני קבצים שונים.
במערכות המשתמשות ב- sysconfig (לדוגמה רד-אהט, פידורה, CentOS, WhiteBox, מנדריבה וכו') ימצאו ההגדרות לכלל המערכת בנתיב etc/sysconfig/i18n/ וניתן להגדיר locale שונה לכל משתמש על ידי יצירת קובץ i18n. בתקית הבית של המשתמש ובו ערכים שיקבלו עדיפות על פני הגדרות המערכת כולה.
בדביאן ונגזרותיה השונות ככלל ההגדרות למערכת כולה ימצאו בנתיב etc/environment/ והגדרות לכל משתמש יש לכלול בתסריט הגדרת המעטפת של המשתמש כמו לדוגמה במקרה של שימוש במעטפת bash יש לכלול את הגדרות ה-locale של המשתמש בקובץ ה- bashrc. שבתקית הבית שלו (ניתן למקם את ההגדרות בקובץ profile. בתיקית הבית כדי שההגדרות יקראו על ידי כל מעטפת תואמת sh).
אחרי ביצוע השינויים יש לאתחל את המעטפת של המשתמש כדי שהם יכנסו לתוקף (במילים אחרות - יש לצאת מהמערכת ולהכנס שנית).
http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html - אתר בו תוכלו למצוא פירוט נרחב על הגדרות POSIX ל- locale כולל המילים השמורות בכל קטגוריה, הערכים הקבילים ומידע רב נוסף.
אם נתקלתם בבעיות עם מדריך זה נא דווחו לדוא"ל