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.

  الفئات

LC_ALL
LC_COLLATE
LC_CTYPE
LC_MONETARY
LC_NUMERIC
LC_TIME
    C11, POSIX.1-2008.

LC_MESSAGES
    POSIX.1-2008.

أخرى:
    GNU.

التاريخ
POSIX.1-2001، C89.

  الفئات

LC_ALL
LC_COLLATE
LC_CTYPE
LC_MONETARY
LC_NUMERIC
LC_TIME
    C89, POSIX.1-2001.

LC_MESSAGES
    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 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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