Scroll to navigation

setlocale(3) Library Functions Manual setlocale(3)

الاسم

setlocale - تعيين اللغة المحلية الحالية

المكتبة

مكتبة سي المعيارية (libc، -lc)

موجز

#include <locale.h>
char *setlocale(int category, const char *_Nullable locale);

الوصف

تُستخدم دالة setlocale() لتعيين أو الاستعلام عن اللغة المحلية الحالية للبرنامج.

إذا لم يكن locale فارغًا (NULL)، فتُعدّل اللغة المحلية الحالية للبرنامج وفقًا للمعاملات. يُحدد المعامل category أي أجزاء من اللغة المحلية الحالية للبرنامج ينبغي تعديلها.

الفئة تتحكم في
LC_ALL كل اللغة المحلية
LC_ADDRESS تنسيق العناوين و العناصر المتعلقة بالجغرافيا (*)
LC_COLLATE ترتيب سلاسل المحارف
LC_CTYPE تصنيف المحارف
LC_IDENTIFICATION البيانات الوصفية التي تصف اللغة المحلية (*)
LC_MEASUREMENT الإعدادات المتعلقة بالقياسات (الوحدات المترية مقابل الوحدات الأمريكية) (*)
LC_MESSAGES رسائل اللغة الطبيعية القابلة للتوطين
LC_MONETARY تنسيق القيم النقدية
LC_NAME تنسيق التحيات للأشخاص (*)
LC_NUMERIC تنسيق القيم الرقمية غير النقدية
LC_PAPER الإعدادات المتعلقة بحجم الورق القياسي (*)
LC_TELEPHONE التنسيقات المستخدمة مع خدمات الهاتف (*)
LC_TIME تنسيق قيم التاريخ والوقت

الفئات المميزة بعلامة النجمة في الجدول أعلاه هي امتدادات GNU. لمزيد من المعلومات حول فئات اللغة المحلية هذه، انظر locale(7).

الوسيط locale هو مؤشر لسلسلة محارف تحتوي على الإعداد المطلوب لـ category. هذه السلسلة إما ثابت معروف مثل "C" أو "da_DK" (انظر أدناه)، أو سلسلة محارف غير شفافة أُعيدت من استدعاء آخر لـ setlocale().

إذا كان locale سلسلة محارف فارغة، ""، يُضبط كل جزء من الإعداد المحلي الذي ينبغي تعديله وفقًا لمتغيرات البيئة. التفاصيل تعتمد على التطبيق. بالنسبة لـ glibc، أولاً (بغض النظر عن category)، يُفحص متغير البيئة LC_ALL، ثم متغير البيئة الذي يحمل نفس اسم الفئة (انظر الجدول أعلاه)، وأخيرًا متغير البيئة LANG. يُستخدم أول متغير بيئة موجود. إذا لم تكن قيمته مواصفة إعداد محلي صالحة، يبقى الإعداد المحلي دون تغيير، وتُعيد setlocale() قيمة NULL.

الإعداد المحلي "C" أو "POSIX" هو إعداد محلي محمول؛ يوجد على جميع الأنظمة المتوافقة.

اسم الإعداد المحلي عادةً ما يكون بالصيغة language[_territory][.codeset][@modifier]، حيث language هو رمز لغة ISO 639، وterritory هو رمز دولة ISO 3166، وcodeset هو مجموعة محارف أو معرّف ترميز مثل ISO-8859-1 أو UTF-8. للحصول على قائمة بجميع الإعدادات المحلية المدعومة، جرب "locale -a" (انظر locale(1)).

إذا كان locale هو NULL، يُستعلم عن الإعداد المحلي الحالي فقط، دون تعديل.

عند بدء تشغيل البرنامج الرئيس، يُختار الإعداد المحلي المحمول "C" كمبدئي. يمكن جعل البرنامج محمولاً لجميع الإعدادات المحلية باستدعاء:


setlocale(LC_ALL, "");

بعد تهيئة البرنامج، ثم:

باستخدام القيم المُعادة من استدعاء localeconv(3) للمعلومات المعتمدة على الإعداد المحلي؛
باستخدام دوال المحارف متعددة البايت والمحارف العريضة لمعالجة النص إذا كان MB_CUR_MAX > 1؛
باستخدام strcoll(3) و strxfrm(3) لمقارنة السلاسل؛ و
باستخدام wcscoll(3) و wcsxfrm(3) لمقارنة سلاسل المحارف العريضة.

قيمة الإرجاع

استدعاء ناجح لـ setlocale() يُعيد سلسلة محارف غير شفافة تتوافق مع الإعداد المحلي المُضبط. قد تُخصص هذه السلسلة في تخزين ثابت. السلسلة المُعادة تكون بحيث أن استدعاءً لاحقًا بتلك السلسلة وفئتها المرتبطة سيستعيد ذلك الجزء من الإعداد المحلي للعملية. قيمة الإرجاع هي NULL إذا تعذر تلبية الطلب.

السمات

للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).

الواجهة السمة القيمة
setlocale() سلامة الخيوط MT-Unsafe const:locale env

المعايير

C11, POSIX.1-2008.

الفئات

C11, POSIX.1-2008.
POSIX.1-2008.
أخرى:
GNU.

التاريخ

POSIX.1-2001، C89.

الفئات

C89, POSIX.1-2001.
POSIX.1-2001.
أخرى:
GNU.

انظر أيضًا

locale(1), localedef(1), isalpha(3), localeconv(3), nl_langinfo(3), rpmatch(3), strcoll(3), strftime(3), charsets(7), locale(7)

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

8 فبراير 2026 صفحات دليل لينكس (لم تصدر بعد)