تقنية

locale.normalize في بايثون: هل يغير الإعداد المحلي الجاري؟

اسم en_us المطبع كنص
تطبيع اسم. [1] [2]

اسم محلي مطبّع لا يعني إعدادًا فعّلناه. [1] [2]

الخلاصة السريعة

لا؛ نطبع الاسم، وتبقى قراءة الإعداد في مثالنا نفسها. [1] [2]

  • نقرأ LC_CTYPE دون طلب تغييره. [1] [2]
  • نمرر النص en_us إلى normalize. [1] [2]
  • الناتج en_US.ISO8859-1 في التجربة. [1] [2]
  • مقارنة القراءة اللاحقة بالسابقة تعطي True. [1] [2]
  • اختبرنا 3.12.14؛ الناتج لا يثبت توفر الاسم في النظام. [1] [2]

المثال

import locale as l
before=l.setlocale(l.LC_CTYPE)
print(l.normalize('en_us'))
print(l.setlocale(l.LC_CTYPE)==before)

[1] [2]

اسم الناتج وإعداد العملية

المصدر هنا يبحث في الأسماء البديلة ويعيد نصًا. setlocale بلا اسم إعداد يعيد القيمة الجارية؛ لذلك استدعاؤه في المثال استعلام. لم نمرر إليه الاسم المطبع لتفعيله. [1] [2]

تساوي قراءة LC_CTYPE قبل وبعد
الإعداد نفسه في المثال. [1] [2]

حدود القراءة

عند تعذر التطبيع يعاد الاسم الأصلي؛ النص المؤلف own_bud يبقى نفسه هنا. لا نستنتج من أي ناتج أن النظام يقبل تفعيله، ولا نختبر تغيير إعداد مشترك بين خيوط. [1] [2]

المراجع

  1. Python 3.12: normalize / setlocale
  2. CPython 3.12.14: locale.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.