Locale (العربية)
تُستخدم المحليّات في لينكس لتعريف لغات المستخدم. بما أن المحليّات تعرّف أطقم المحارف المُستخدمة، إعداد المحليّة الصحيحة مهمّ، خاصةً إن كانت اللغة تحوي محارف ليست ASCII.
تُعرّف أسماء المحليّات بالتنسيق التالي:
<lang>_<territory>.<codeset>[@<modifiers>]
تمكين المحليّات الضرورية
قبل أن تُستخدم محليّة على النظام، يجب تمكينها أولًا. لفرز كل المحليّات المتوفرة، استخدم:
$ locale -a
لتمكين محليّة، أزل التعليق عن اسم المحليّة في الملف /etc/locale.gen
. يحوي هذا الملف كل المحليّات المتوفّرة التي يمكن للنظام استخدامها. اعكس العملية لتعطيل محليّة. بعد تمكين المحليّات الضرورية، يجب أن يُحدّث النظام بالمحليّات الجديدة:
# locale-gen
لعرض المحليّات المُستخدَمة حاليًّا، استخدم:
$ locale
مثال الإنجليزية الأمريكية
أولًا أزل التعليق عن المحليّات التالية في /etc/locale.gen
:
en_US.UTF-8 UTF-8
ثمّ حدّث النظام وأنت جذر:
# locale-gen
تعيين المحليّة على مستوى النظام
لتعريف المحليّة المستخدمة على مستوى النظام، عيّن LANG
في /etc/locale.conf
.
locale.conf
يحوي قائمة مفصولة بأسطر جديدة لتعيينات متغيّر البيئة: بالإضافة إلى LANG
، فهو يدعم كل متغيّرات LC_*
، ما عدا LC_ALL
.
/etc/locale.conf
غير موجود افتراضيًّا ويجب إنشاءه يدويًّا .locale
is to your liking during installation, تستطيع توفير الوقت بعمل: # locale > /etc/locale.conf
وأنت chrooted./etc/locale.conf
LANG="en_US.UTF-8"
يمكن لهذا أن يكون مثال ضبط متقدّم:
/etc/locale.conf
# Enable UTF-8 with Australian settings. LANG="en_AU.UTF-8" # Keep the default sort order (e.g. files starting with a '.' # should appear at the start of a directory listing.) LC_COLLATE="C" # Set the short date to YYYY-MM-DD (test with "date +%c") LC_TIME="en_DK.UTF-8"
يمكنك تعيين المحليّة الافتراضية في locale.conf
أثناء استخدام localectl
، مثلًا:
# localectl set-locale LANG="de_DE.utf8"
طالع localectl(1) و locale.conf(5) للتفاصيل.
سيأخذون تأثيرهم بعد إعادة إقلاع النظام وسيُعيّنون كجلسات مفردة أثناء الولوج.
تعيين المحليّات البديلة
البرامج التي تستخدم gettext للترجمات تحترم الخيار LANGUAGE
بالإضافة إلى المتغيّرات المعتادة. هذا يسمح للمستخدمين بتحديد قائمة من المحليّات المُستخدمة بذلك الترتيب. إن لم تتوفّر ترجمة للمحليّة المفضّلة، ستُستخدم محليّة أخرى شبيهة بدلًا من الافتراضية. على سبيل المثالـ المستخدم الأسترالي قد يُبدِل إلى البريطانية بدلًا من الإنجليزية الأمريكية:
~/.bashrc
export LANGUAGE="en_AU:en_GB:en"
أو على مستوى النظام
/etc/locale.conf
LANG="en_AU" LANGUAGE="en_AU:en_GB:en"
تعيين محليّة لكل مستخدم
كما ذكرنا سابقًا، بعض المستخدمين قد يعرّفون محليّة مختلفة عن المحليّة على مستوى النظام. لعمل ذلك، صدّر المتغيّر LANG
بالمحليّة المعيّنة في الملف ~/.bashrc
. كمثال، لاستخدام المحليّة en_AU.UTF-8
:
export LANG=en_AU.UTF-8
ستُحدّث المحليّات عند sourced ~/.bashrc
. للتحديث، أمّا أعد الولوج أو source it يدويًّا:
$ source ~/.bashrc
تعيين الترتيب
الترتيب أو الفرز، يختلفان قليلًا. الفرز وحش أبله والمحليّات المختلفة تفعل الأشياء بطريقة مختلفة. للإلتفاف حول المشاكل المحتملة، تعيّن آرتش LC_COLLATE="C"
إلى /etc/profile
. على أيّ حال، هذه الطريقة أُهمِلت الآن. لتمكين هذا السلوك، ببساطة أضف التالي إلى /etc/locale.conf
:
LC_COLLATE="C"
سيفرز الآن الأمر ls الملفات ذات النقاط أولًا، متبوعة بأسماء الملفات بأحرف كبيرة وصغيرة. لاحظ أنه دون الإعداد LC_COLLATE
، تقول المحليّة للتطبيقات بالفرز عبر LC_ALL
أو LANG
، لكن الإعدادات LC_COLLATE
ستُتَجاوز إن عُيّن LC_ALL
. إن كانت هذه مشكلة، تأكّد أن LC_ALL لم يُعيّن بإضافة التالي إلى /etc/profile
بدلًا منه:
export LC_ALL=
لاحظ أن LC_ALL متغيّر LC الوحيد الذي "لا يمكن" تعيينه في /etc/locale.conf
.
تعيين اليوم الأول من الأسبوع
هناك العديد من الدول التي يكون فيها بداية الأسبوع يوم الإثنين. لضبط هذا، غيّر أو أضف الأسطر التالية في القسم LC_TIME
في /usr/share/i18n/locales/<your_locale>
:
week 7;19971130;5 first_weekday 2 first_workday 2
وثمّ حدّث النظام:
# locale-gen
export LC_MESSAGES=C
قبل اللصق. ستعيِّن رسائل المَخرج (الأخطاء والتحذيرات) إلى الإنجليزية، وبالتالي فهم أناسٍ أكثر لمشكتك. لا يُطبّق ذلك إن كنت تلصق في منتدى بلغة غير الإنجليزية.إصلاح المشاكل
طرفيّتي لا تدعم UTF-8
للأسف بعض الطرفيات لا تدعم UTF-8. في هذه الحالة، عليك استخدام طرفية مختلفة. هذه بعض الطرفيات التي تدعم UTF-8:
- vte-based terminals
- gnustep-terminal
- konsole
- mlterm
- rxvt-unicode
- xterm
Xterm لا تدعم UTF-8
xterm تدعم UTF-8 فقط إن شُغِّل كـ uxterm
أو xterm -u8
.
طرفية جنوم أو rxvt-unicode لا تدعمان UTF-8
عليك إطلاق بعض التطبيقات من محليّة UTF-8 وإلّا ستُسقطا دعم UTF-8. مكّن المحليّة en_US.UTF-8
(أو بديل UTF-8 لديك) بالتعليمات أعلاه وعيّنها كمحليّة افتراضيّة، ثم أعد الإقلاع.