معلومات الدول (الأعلام، العواصم، السكان)

ابحث عن أي دولة: العلم، العاصمة، عدد السكان، المساحة، اللغات، العملة، رمز الاتصال الدولي، والدول المجاورة — في بطاقة واحدة.

1,305 مشاهدة

البيانات: mledoze/countries (بيانات مفتوحة) + سلسلة سكان البنك الدولي — الاستعلامات تتم مباشرة من متصفحك.

كيف تتشكّل البيانات

تبدو بيانات الدول وكأنها مشكلة محلولة إلى أن تحاول البناء على واجهة برمجة تطبيقات حيّة: فخدمة REST التي كانت شائعة يومًا restcountries.com (النسخة v2 ثم v3.1) أصبحت مع السنين غير موثوقة ومحدودة المعدل، ما عطّل مشاريع لا حصر لها كانت تعتمد عليها. تتفادى هذه الأداة هذه الهشاشة عبر تحميل مجموعة بيانات mledoze/countries المفتوحة — ملف JSON واحد بحجم نحو 130 كيلوبايت يُصان على GitHub، ويغطي الأسماء الرسمية والمحلية لكل دولة وترجماتها وعواصمها وعملاتها ورموز اتصالها ودولها المجاورة — وتُقدَّم عبر شبكة jsDelivr CDN بدلًا من نقطة نهاية API محدودة المعدل. ولأنه ملف ثابت مخزَّن مؤقتًا عند الحافة (edge)، تكون عمليات البحث فورية ولا تتعطل أبدًا.

عدد السكان هو الرقم الوحيد الذي يحتاج فعلًا إلى البقاء محدَّثًا، لذا يُجلب بشكل منفصل من مؤشر البنك الدولي SP.POP.TOTL — السلسلة القياسية "إجمالي السكان" التي تُبلغ كل دولة بها البنك سنويًا. يطلب الاستعلام mrnev=1 ("أحدث قيمة غير فارغة")، لذا تحصل دائمًا على أحدث رقم منشور لكل دولة بدلًا من سنة ثابتة قد تكون قديمة بعدة سنوات في الدول بطيئة الإبلاغ. أما الأعلام فتُجلب عند الطلب من flagcdn.com بصيغة SVG (واضحة بأي حجم) أو PNG، بدلًا من تضمينها كصور، ما يبقي الصفحة نفسها خفيفة.

هذا التصميم ذو المصدرين مقصود: الحقائق التي لا تتغير تقريبًا (عاصمة، لغة رسمية، رمز اتصال) تأتي من مجموعة بيانات مُرقَّمة الإصدارات ويراجعها مساهمون على GitHub، بينما الرقم الوحيد الذي يتحرك فعلًا عامًا بعد عام يُجلب طازجًا من المؤسسة التي تتابعه باحترافية. مزج مجموعة بيانات ثابتة مع مؤشر حيّ على هذا النحو نمط شائع كلما كان معظم بياناتك مستقرًا ولم يكن سوى جزء صغير منها بحاجة للبقاء محدَّثًا — فهذا يتجنب إعادة جلب العالم بأكمله في كل مرة يفتح فيها أحدهم الصفحة، مع إبقاء الرقم الذي يهم الناس أكثر طازجًا بقدر معقول.

ما يستحق معرفته

  • لماذا لا يُستخدم restcountries.com مباشرة؟ مرّت واجهته البرمجية بتغييرات إصدار كاسرة وفترات تعطّل أو تقييد وصول؛ مجموعة بيانات ثابتة ومُرقَّمة تتجنب الاعتماد على وقت تشغيل طرف ثالث من أجل حقائق أساسية كاسم العاصمة.
  • عدد السكان ليس لحظيًا. يجمّعه البنك الدولي من مكاتب الإحصاء الوطنية، التي تُبلغ وفق جدولها الخاص — عادةً بتأخير عام إلى عامين. "أحدث قيمة غير فارغة" تعني فقط آخر سنة نشرت فيها تلك الدولة بالفعل بياناتها.
  • الترجمات تأتي من مجموعة البيانات نفسها. الأسماء المحلية والمترجمة للدول مُضمَّنة في mledoze/countries، وهذا سبب أن البحث عن "Almanya" و"Germany" يؤدي كلاهما إلى السجل نفسه.
  • الأعلام متجهية افتراضيًا. تبقى أعلام SVG من flagcdn.com حادة الحواف عند التكبير أو الطباعة؛ وتُقدَّم PNG كبديل للأدوات التي لا تتعامل جيدًا مع SVG.
  • الكثافة السكانية محسوبة، لا مخزَّنة. تقسيم عدد السكان على المساحة يحدث في متصفحك وقت الاستعلام، لذا يعكس دائمًا أيًا كان رقم السكان الذي جُلب للتو، بدلًا من رقم مثبَّت داخل مجموعة البيانات.

الأسئلة الشائعة

ما مدى حداثة أرقام السكان؟

تأتي بيانات السكان من السلسلة السنوية للبنك الدولي — وعادةً ما تكون رقم العام الماضي. تُحدَّث التعدادات الرسمية بوتيرتها الخاصة، لذا قد تختلف الأرقام قليلاً عن الرقم الوطني لهذا العام — المرتبة العددية الصحيحة، لا الدقة على مستوى الفرد.

هل يمكنني البحث بلغتي الخاصة؟

نعم — يجرّب البحث الأسماء المحلية والمترجمة، لذا فإن كتابة "Almanya" أو "Deutschland" أو "Germany" يجد جميعها الدولة نفسها.

لماذا تعرض بعض الدول عدة عواصم؟

لأن لديها فعلاً أكثر من عاصمة — تسرد جنوب أفريقيا ثلاث عواصم مثلًا. تعرض البطاقة القائمة الرسمية الكاملة بدلًا من اختيار واحدة فقط.

لماذا تُجلب هذه البيانات من شبكة توزيع محتوى بدلًا من واجهة برمجية حيّة؟

لأن حقائق الدول مثل العواصم والعملات تتغيّر نادرًا جدًا، فلا حاجة لاستعلام حيّ في كل مرة — تخزّن jsDelivr نفس الملف الثابت مؤقتًا على خوادم حافة حول العالم، ما يجعل عمليات البحث أسرع ومحصّنة ضد التعطل أو حدود المعدل التي قد تصطدم بها واجهة REST عاجلًا أم آجلًا.

هل يمكنني الحصول على علم دولة كصورة قابلة للتنزيل؟

نعم — تُقدَّم الأعلام من flagcdn.com بصيغة SVG (الأفضل للتحجيم الحاد بأي مقاس) أو PNG؛ استخدم روابط الصيغة لحفظ واحدة مباشرة على جهازك.

التعليقات

لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!

أدوات مشابهة