nl_langinfo(3)

الاسم
nl_langinfo, nl_langinfo_l - استعلام معلومات اللغة والإعدادات المحلية

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

موجز
#include <langinfo.h>

char *nl_langinfo(nl_item item);
char *nl_langinfo_l(nl_item item, locale_t locale);

    متطلبات ماكروات اختبار الميزات لـ glibc (انظر feature_test_macros(7)):

nl_langinfo_l():
    منذ glibc 2.24:
        _POSIX_C_SOURCE >= 200809L
    glibc 2.23 وما قبله:
        _POSIX_C_SOURCE >= 200112L

الوصف
توفر الدالتان nl_langinfo() وnl_langinfo_l() الوصول إلى معلومات اللغة بطريقة أكثر مرونة من localeconv(3). تُعيد nl_langinfo() سلسلة محارف تمثل القيمة المقابلة لـ item في اللغة العامة الحالية للبرنامج. تُعيد nl_langinfo_l() سلسلة محارف تمثل القيمة المقابلة لـ item للغة المُحددة بواسطة كائن اللغة locale، الذي أُنشئ سابقًا بواسطة newlocale(3). يمكن الاستعلام عن العناصر الفردية والإضافية لفئات اللغة. يجب تنفيذ setlocale(3) مع المعاملات المناسبة قبل ذلك.

أمثلة على عناصر الإعدادات المحلية التي يمكن تحديدها في item باستخدام الثوابت المعرفة في <langinfo.h> هي:

CODESET (LC_CTYPE)
    تُرجع سلسلة محارف تحتوي على اسم ترميز الأحرف المستخدم في الإعدادات المحلية المحددة، مثل "UTF-8" أو "ISO-8859-1" أو "ANSI_X3.4-1968" (المعروف باسم US-ASCII). هذه هي نفس السلسلة التي تحصل عليها باستخدام "locale charmap". للحصول على قائمة بأسماء ترميز الأحرف، جرب "locale -m" (انظر locale(1)).

D_T_FMT (LC_TIME)
    تُرجع سلسلة محارف يمكن استخدامها كسلسلة تنسيق لـ strftime(3) لتمثيل الوقت والتاريخ بطريقة خاصة بالإعدادات المحلية (مواصفات التحويل %c).

D_FMT (LC_TIME)
    تُرجع سلسلة محارف يمكن استخدامها كسلسلة تنسيق لـ strftime(3) لتمثيل التاريخ بطريقة خاصة بالإعدادات المحلية (مواصفات التحويل %x).

T_FMT (LC_TIME)
    تُرجع سلسلة محارف يمكن استخدامها كسلسلة تنسيق لـ strftime(3) لتمثيل الوقت بطريقة خاصة بالإعدادات المحلية (مواصفات التحويل %X).

AM_STR (LC_TIME)
    تُرجع سلسلة محارف تمثل لاحقة لوقت ما قبل الظهر (قبل منتصف النهار، "AM"). (تُستخدم في مواصفات التحويل %p لـ strftime(3).)

PM_STR (LC_TIME)
    تُرجع سلسلة محارف تمثل لاحقة لوقت ما بعد الظهر (قبل منتصف الليل، "PM"). (تُستخدم في مواصفات التحويل %p لـ strftime(3).)

T_FMT_AMPM (LC_TIME)
    أرجع سلسلة محارف يمكن استخدامها كسلسلة تنسيق للدالة strftime(3) لتمثيل وقت بترميز صباحًا أو مساءً بطريقة خاصة بالمحل (مواصفة التحويل %r).

ERA (LC_TIME)
    أرجع وصف العصر، الذي يحتوي على معلومات حول كيفية حساب السنوات وعرضها لكل عصر في محل. يجب أن يكون لكل مقطع وصف عصر التنسيق:

        direction:offset:start_date:end_date:era_name:era_format

    وفقًا للتعريفات أدناه:

    direction
        إما حرف "+" أو "-". يعني "+" أن السنوات تزداد من start_date نحو end_date، ويعني "-" العكس.

    offset
        سنة الحقبة لـ start_date.

    start_date
        تاريخ بالصيغة yyyy/mm/dd، حيث yyyy وmm وdd هي أرقام السنة والشهر واليوم على التوالي لبداية العصر.

    end_date
        تاريخ نهاية العصر، بنفس تنسيق start_date، أو إحدى القيمتين الخاصتين "-*" (ناقص لانهاية) أو "+*" (زائد لانهاية).

    era_name
        اسم العصر، الموافق لمواصفة التحويل %EC في strftime(3).

    era_format
        تنسيق السنة في العصر، الموافق لمواصفة التحويل %EY في strftime(3).

    تُفصل مقاطع وصف العصر بفواصل منقوطة. معظم المحلات لا تعرف هذه القيمة. أمثلة على المحلات التي تعرف هذه القيمة هي المحلات اليابانية والتايلاندية.

ERA_D_T_FMT (LC_TIME)
    أرجع سلسلة محارف يمكن استخدامها كسلسلة تنسيق للدالة strftime(3) لتمثيل بديل للوقت والتاريخ بطريقة خاصة بالمحل (مواصفة التحويل %Ec).

ERA_D_FMT (LC_TIME)
    أرجع سلسلة محارف يمكن استخدامها كسلسلة تنسيق للدالة strftime(3) لتمثيل بديل لتاريخ بطريقة خاصة بالمحل (مواصفة التحويل %Ex).

ERA_T_FMT (LC_TIME)
    أرجع سلسلة محارف يمكن استخدامها كسلسلة تنسيق للدالة strftime(3) لتمثيل بديل لوقت بطريقة خاصة بالمحل (مواصفة التحويل %EX).

DAY_{1–7} (LC_TIME)
    أرجع اسم اليوم n من الأسبوع. [تحذير: هذا يتبع اصطلاح الولايات المتحدة DAY_1 = الأحد، وليس الاصطلاح الدولي (ISO 8601) بأن الاثنين هو أول يوم في الأسبوع.] (مُستخدم في مواصفة التحويل %A في strftime(3).)

ABDAY_{1–7} (LC_TIME)
    أعد الاسم المختصر لليوم n من الأسبوع. (مُستخدم في مواصفات تحويل %a strftime(3).)

MON_{1–12} (LC_TIME)
    أعد اسم الشهر n. (مُستخدم في مواصفات تحويل %B strftime(3).)

ABMON_{1–12} (LC_TIME)
    أعد الاسم المختصر للشهر n. (مُستخدم في مواصفات تحويل %b strftime(3).)

RADIXCHAR (LC_NUMERIC)
    أعد حرف الجذر (نقطة عشرية، فاصلة عشرية، إلخ).

THOUSEP (LC_NUMERIC)
    أعد حرف الفاصل للآلاف (مجموعات من ثلاثة أرقام).

YESEXPR (LC_MESSAGES)
    أعد تعبيرًا نمطيًا يمكن استخدامه مع دالة regex(3) للتعرف على استجابة إيجابية لسؤال نعم/لا.

NOEXPR (LC_MESSAGES)
    أعد تعبيرًا نمطيًا يمكن استخدامه مع دالة regex(3) للتعرف على استجابة سلبية لسؤال نعم/لا.

CRNCYSTR (LC_MONETARY)
    أعد رمز العملة، مسبوقًا بـ "-" إذا كان الرمز يجب أن يظهر قبل القيمة، أو "+" إذا كان الرمز يجب أن يظهر بعد القيمة، أو "." إذا كان الرمز يجب أن يستبدل حرف الجذر.

تغطي القائمة أعلاه بعض الأمثلة فقط من العناصر التي يمكن طلبها. للحصول على قائمة أكثر تفصيلاً، راجع دليل مكتبة C لجنو.

قيمة الإرجاع
عند النجاح، تُعيد هذه الدوال مؤشرًا إلى سلسلة محارف وهي القيمة المقابلة لـ item في الإعدادات المحلية المحددة.

إذا لم تُحدد إعدادات محلية بواسطة setlocale(3) للفئة المناسبة، تُعيد nl_langinfo() مؤشرًا إلى السلسلة المقابلة في الإعدادات المحلية "C". وينطبق نفس الشيء على nl_langinfo_l() إذا حدد locale إعدادات محلية حيث بيانات langinfo غير مُعرَّفة.

إذا كان item غير صالح، يُعاد مؤشر إلى سلسلة محارف فارغة.

قد يشير المؤشر الذي تُعيده هذه الدوال إلى بيانات ثابتة قد تُستبدل، أو قد يُبطل المؤشر نفسه، باستدعاء لاحق لـ nl_langinfo() أو nl_langinfo_l() أو setlocale(3). تنطبق نفس العبارات على nl_langinfo_l() إذا تم تحرير أو تعديل كائن الإعدادات المحلية المشار إليه بواسطة locale بواسطة freelocale(3) أو newlocale(3).

تُحدد POSIX أن التطبيق قد لا يُعدّل السلسلة المحارف المُعادة من هذه الدوال.

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
nl_langinfo() | سلامة الخيوط | المنطقة (locale) آمنة لتعدد المسالك (MT-Safe)

المعايير
POSIX.1-2008.

التاريخ
POSIX.1-2001, SUSv2.

ملاحظات
سلوك nl_langinfo_l() غير مُحدد إذا كان locale هو كائن اللغة الخاص LC_GLOBAL_LOCALE أو ليس مقبض كائن لغة صالح.

أمثلة
يُعيِّن البرنامج التالي نوع المحرف واللغة الرقمية وفقًا للبيئة ويستعلم عن مجموعة محارف الطرفية ومحرف الجذر.

    #include <langinfo.h>
    #include <locale.h>
    #include <stdio.h>
    #include <stdlib.h>

    int
    main(void)
    {
        setlocale(LC_CTYPE, "");
        setlocale(LC_NUMERIC, "");

        printf("%s\n", nl_langinfo(CODESET));
        printf("%s\n", nl_langinfo(RADIXCHAR));

        exit(EXIT_SUCCESS);
    }

انظر أيضًا
locale(1), localeconv(3), setlocale(3), charsets(7), locale(7)

دليل مكتبة GNU C المرجعي

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

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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