وحدة:Flagg

من ويكيبيديا، الموسوعه الحره
اذهب إلى التنقل اذهب إلى البحث

قالب {{Flagg}} (عـلم عـام) هو قالب أعلام عام مع تنسيق الإخراج متغير. يستخدم لغة لوا بدلا من الآلية الموحدة، لأنها تتيح تجاوز اسم الصورة والهدف والارتباط، ويعمل القالب حتى لو كان قالب البلد غير موجود (دون تجاوز أي من حدود القوالب).

الوسائط[تعديل]

يتم إعطاء (بدائل القيم) لكل معلمة بين قوسين ().

التنسيق (المعلمة الأولى غير المسماه)[تعديل]

المعلمة الأولى هي رمز أبجدي تحدد شكل ظهور القالب. الحرف الأول يتعلق بالصورة، والثاني بالفاصل، والثالث باسم البلد. تأخذ المعلمة بعين الاعتبار تحسس حالة الأحرف.

اذا كان أي حرف من المعلمة مفقود أو بطابع لا يتطابق مع أحد الخيارات التالية, سيتم استخدام القيمه الافتراضية المحددة أدناه؛ على سبيل المثال اذا كانت المعلمة الأولى مساوية لـi، أو i**، أو izz ستقرأ كالتالي: isc.

الصورة[تعديل]

الصورة (الحرف الأول)

الحرف المعنى المعنى وصفه مثال
u unlinked دون وصلة صورة غير مرتبطة (إفتراضي) {{flagg|uxx|France}} ينتج: ←
c country البلد وصلة الصورة لصفحة البلد/الكيان. {{flagg|cxx|France}} ينتج: ←
p [f] prefix/suffix وصلة الصورة لاسم البلد مع البادئة. "و/أو" نص اللاحقة (افتراضي "علم ...")، يتعين باستخدام |pref= و|suff= (انظر ادناه). {{flagg|pxx|France}} ينتج: ←
i image page صفحة الصورة وصلة الصورة إلى الملف الخاص بها تستخدم مع الصور غير الحرة. {{flagg|ixx|France}} ينتج: ←
d data template بيانات القالب وصلة الصورة إلى قالب بيانات بلد المستخدم، للاستخدام في النقاش/التوثيق. تضيف الوحدة تلقائياً redirect=no اذا كانت الوصلة تحويلة. {{flagg|dxx|France}} ينتج: ←
x علامة الشطب علامة × لا يتم عرض أي صورة. يستخدم صورة شفافة غير مرتبطة للحفاظ على المسافات في حالة إذا كان الحرف الثاني أي شيء آخر غير x، وأيضاً o لم يتم تحديدها. {{flagg|xnx|France}} ينتج: ←  

الفاصل[تعديل]

الفاصل (الحرف الثاني)

الحرف المعنى المعنى وصفه مثال
s span box مربع ممتد (افتراضي) يتم وضع صورة العلم في <span>، وهذا يعني أن أسماء البلدان منحازة في قوائم عمودية؛ راجع توثيق قالب {{Flaglist}}. {{flagg|usu|نيجر}} ينتج: ← نيجر
n non-breaking space مسافة غير منقسمة يستخدم مسافة غير منقسمة (&nbsp;) كما هو الحال في معظم قوالب الأعلام، بما فيها قالب {{علم}}. لاحظ أن &nbsp; لا يمنع في الواقع التفاف بين الصورة والنص في جميع المتصفحات؛ استخدم w كما هو موضح أدناه إذا لزم الأمر. {{flagg|unu|نيجر}} ينتج: ←  نيجر
l line break خط مكسور يستخدم فاصل سطر جديد (<br/>) كفاصل. {{flagg|ulu|نيجر}} ينتج: ←
نيجر
t table cell خلية جدول يستخدم فاصل خلية جدول (||). نيجر
x X mark علامة × لا يستخدم أي فاصل. {{flagg|uxu|نيجر}} ينتج: ← نيجر

الاسم[تعديل]

الاسم (الحرف الثالث)

الحرف المعنى المعنى وصفه مثال
c country البلد (افتراضي) يضع الوصلة إلى وصلة البلد. {{flagg|xxc|تشيلى}} ينتج: ← تشيلى
p prefix/suffix بادئة / لاحقة وصلة اسم البلد إلى صفحة البلد، مع سابقة و/أو لاحقة (افتراضياً "علم ..."). تحدد باستخدام |pref=، و|suff= (طالع أدناه). {{flagg|xxp|تشيلى}} ينتج: ← تشيلى
f full prefix/suffix بادئة / لاحقة الكاملة كما p، لكن في هذه الحالة يتم عرض البادئة و/أو اللاحقة. {{flagg|xxf|تشيلى}} ينتج: ← علم تشيلى
b both country and prefix/suffix يضع وصلة البلد ووصلة البادئة واللاحقة، يربط اسم البلد إلى صفحة الدولة، ويضع وصلة أخرى مع البادئة/اللاحقة. {{flagg|xxb|تشيلى}} ينتج: ← علم تشيلى
u unlinked دون وصلة (انظر. {{flagu}}) يتم عرض اسم البلد كنص عادي، دون وصلة. {{flagg|xxu|تشيلى}} ينتج: ← تشيلى
d data template بيانات القالب يربط اسم البلد إلى قالب بيانات البلد المستخدم، للاستخدام في صفحات النقاش أو التوثيق. يضع بشكل افتراضي redirect=no اذا كان القالب عبارة عن تحويلة. {{flagg|xxd|تشيلى}} ينتج: ← تشيلى
x X mark علامة × لا يعرض أي نص. {{flagg|xxx|تشيلى}} ينتج: ←

أخرى[تعديل]

يمكن تمكين بعض الخيارات الإضافية بإلحاق الرسائل التالية إلى الأحرف الثلاثة، في أي أمر:

الحرف معنى معنى وصفه مثال
a alt نص بديل يضيف اسم البلد (معلمة "name"، وإن لم تكن متوفرة يستخدم المعلمة الثانية الغير مسماة) كـ نص بديل للصورة يظهر عند تمرير الفأرة على الصورة، إذا استخدمت المعلمة |alt= لتخصيص نص بديل للصورة، فهذا لا يحتاج إلى تعيينه بصورة منفصلة. {{flagg|uxxa|باكستان}} ينتج: ← باكستان
e expands اسم مختصر يستخدم الاسم المنصوص عليه في قالب بيانات بلد (بدلا من المعلمة الأولى) للعرض، كما في قالب {{علم الدولة}}. {{flagg|unue|PAK}} ينتج: ←  باكستان
o Omits يتجاهل الصورة والمسافات في حالة كانت الصورة غير مرئية، بحيث يظهر التباعد في حالة تم عرض العلم. مفيد للاستعمال في حالة التضمين في سطر أو في قوائم أفقية، حيث ليست هناك حاجة لمحاذاة الاسم. {{flagg|unuo|باكستان|image=}} ينتج: ← باكستان
Compare with:
{{flagg|unu|باكستان|image=}} ينتج: ←  باكستان
r right يعكس ترتيب العناصر, حيث يضع الصورة يمين الاسم كما قالب {{علم يمين}}. ولا يؤثر هذا على ترتيب الأحرف في التنسيق. {{flagg|uncr|باكستان}} ينتج: ← باكستان 
w wrapping يتجنب الالتفاف بإضافة <span class="nowrap">...</span> حول الناتج. {{flagg|unuw|باكستان}} ينتج: ←  باكستان

الكيان/البلد (المعلمة الثانية الغير مسماة)[تعديل]

المعلمة الثانية هي اسم البلد أو الكيان. يستخدمها القالب لقراءة بيانات العلم من "قالب:بيانات بلد"؛ إذا لم يوجد القالب، سيتم استخدام نفس المعلمة افتراضياً كاسم البلد ولن يتم عرض أي صورة، وتعرف المعلمة اسم العرض الافتراضي اذا لم تستخدم المعلمة e.

وسائط الصورة[تعديل]

|variant= [المعلمة الثالثة غير المسماة]
يحدد صورة متغير العلم، كما هي محددة في قالب بيانات بلد. على سبيل المثال، {{flagg|ixx|المانيا|naval}} ينتج: ← يستخدم المتغير "naval بحري" في قالب:بيانات بلد ألمانيا.
|image=
تخصيص اسم الصورة تحتوي أو لا تحتوي "File:" .يمكن استخدامها إذا كانت الصورة المطلوبة ليست متوفرة كمتغير للكيان (يمكنك بدلا من ذلك تطلب ذلك يمكن ان تضاف في صفحة نقاش القالب البيانات التي تخصها)، أو في حالة عدم وجود قالب بيانات. قم بتعيينها إلى "none" أو ["blank" أو قيمة فارغة] لاستخدام صورة شفافة غير موصولة (عمليا مطابقة لتنسيق الوسيط x).
|size= و[|sz=]
يحدد حجم الصورة؛ الافتراضي هو 23×15 بكسل (أكبر في بعض الكيانات). يمكنك استخدام حجم صريح في بكسل (مثل 30x20px; اللاحقة "px" هي اختيارية) أو واحد من الأحجام النسبية "xs" (نصف الأبعاد الافتراضية)، "s" و"m" و"l" و"xl" (ضعف الحجم الافتراضي).
|border=
افتراضيا، يتضمن رمز العلم حدود، إلا إذا تم تعطيله في قالب بيانات بلد في الوسيط |border= يمكن تعيينه لـ "yes" أو ["y" ًأو "1"] لفرض الحدود عند استبعاده افتراضيا، أو يمكن تعيينه لـ "no" أو ["n" أو "0" أو سلسلة فارغة] لمنع ذلك.
|align= و[|al=]
قم بتعيينها إلى
  • "left" أو ["l"] أو
  • "center" أو ["centre" أو "c" أو "middle" أو "m"]
  • أو "right" أو ["r"]

لضبط محاذاة صورة لتنسيق المربع الممتد (s) وتنسيق خلية الجدول (t). بالنسبة للوسيط t فانه افتراضياً محاذاة الوسط، أما s فهو محاذاة إلى اليمين، إن لم تحدد قيمة لـ r وإلا فأنه سيكون محاذاة لليسار.

|width= و[|w=]
يحدد عرض المربع الممتد المحيط حول الصورة (s) بالبكسل، بدون "px" يتم احتساب قيمة افتراضية بواسطة وحدة:Flaglist/size ويعتمد على حجم الصورة.
|alt=
يحدد نص بديل ونص يظهر عند مرور الفأرة فوق صورة العلم،إذا كان النص المطلوب يساوي اسم الكيان، استخدم الخيار a المذكور أعلاه.
|ilink=
تجاوز وصلة الصورة (استخدم هذا فقط إذا لم يتيح أي من خيارات التنسيق أعلاه بربط الصفحة المطلوبة).

وسائط النص والوصلة[تعديل]

|name=
تغيير اسم البلد المعروض. لاحظ أنه مع تنسيق f، وهذا يشمل البادئة و / أو لاحقة.
[|link=] و|clink=
الكتابة فوق الارتباط إلى مقالة البلد؛ يتم استخدام هذه أيضا لبناء وصلة بادئة / لاحقة للخيارات التالية: f، وp، وb .
|pref= و|suff= و|plink=
|pref= و|suff= تعيين البادئة واللاحقة لاستخدامها في بادئة / لاحقة الروابط (شكل الحروف f، وp وb). افتراضياً،إذا لم يتم تحديد ذلك، سيكون "علم_" بادئة (راجع {{flagof}}) ولن يتم استخدام لاحقة. يمكن استخدام المعلمة |plink= لتجاوز الارتباط المشترك.
|the=
قم بتعيينها إلى "yes" أو ["y"، أو "1"] لتضمين "the" قبل اسم البلد في بادئة/لاحقة الروابط . مثال: {{flagg|usf|الفيليبين|the=1}} ينتج: ← علم ال الفيليبين. استعمل |pthe= إذا كان الرابط يحتاج ذلك، "و" لكن في الاسم ليس كذلك، واستخدم |nthe= إذا كان الاسم يحتاج ذلك، ولكن الرابط لا يحتاج ذلك.
|section=
وصلة لقسم من أقسام المقالة، دون عرض اسم المقطع في الاسم، في حالة تم استخدام وصلة البلد وأيضاً بادئة/لاحقة الوصلة قم باستخدام |csection= للقسم في المقالة، واستخدم |psection= للقسم المسبوق/المتبوع من المقالة.
|altvar=، و[|avar=]، و|age=
إمكانية استخدام لاحقة قياسية محددة مسبقاً، كوصلة لفريق رياضي أو فرع عسكري. يتم تحميل بيانات altvar واللاحقة من وحدة:Flagg/Altvar data. القيم الممكنة للمعلمات هي الأسماء الأساسية للقوالب المخصصة المقابلة؛ قيم الاسم المستعار من أسم الرياضة الكاملة الموجودة (أنظر الأمثلة الواردة أدناه وصفحة البيانات).

بالنسبة لبعض الكيانات أو العناصر، هذا يغير الصورة أيضاً لمحدد بديل variant إلى رياضة أو فرع عسكري؛ على سبيل المثال: {{flagg|usp|Ireland|avar=ru}} ينتج: ← Ireland يستخدم علم اتحاد الرغبي لتمثيل فريق اتحاد الرجبي الأيرلندي. لفرق الشباب في بعض الألعاب الرياضية (انظر صفحة البيانات)، الحد الأدنى للسن لا بد وأن يتم تعيينه باستخدام الوسيط |age=.

|nalign=، و[|nal=]
تعيين محاذاة النص في شكل خلية الجدول (t). افتراضياً محاذاة لليسار؛ القيم الممكنة هي نفسها بالنسبة لـ |align=.
|text=
تجاوز النص بالكامل؛ فقط يستخدم عند الضرورة لأي صيغ غير قياسية. بدلا من ذلك يمكنك تعيين الحرف الثالث من المعلمة تنسيق لـ x (دون نص) وقم بإضافة النص المخصص خارج القالب.

أمثلة[تعديل]

التنسيقات:

  • {{flagg|usc|Fiji}} ينتج: ← Fiji (التنسيق الافتراضي)
  • {{flagg||Fiji}} ينتج: ← Fiji (التنسيق الافتراضي)
  • {{flagg|pnbr|Fiji}} ينتج: ← علم Fiji 
  • <span style="display:inline-block;text-align:center;">{{flagg|ilf|Fiji|sz=xl}}</span>
    علم Fiji

تنسيق الجدول والمحاذاة:

{{flagg|utu|Jamaica}} Jamaica
{{flagg|utur|Jamaica}} Jamaica
{{flagg|utu|Jamaica|al=l|nal=l}} Jamaica
{{flagg|utu|Jamaica|al=c|nal=c}} Jamaica
{{flagg|utu|Jamaica|al=r|nal=r}} Jamaica
  • {{flagg|usu|Switzerland}} ينتج: ← Switzerland
  • {{flagg|usu|Switzerland|al=l}} ينتج: ← Switzerland
  • {{flagg|usu|Switzerland|al=c}} ينتج: ← Switzerland
  • {{flagg|usu|Switzerland|al=r}} ينتج: ← Switzerland

معايير الصورة الافتراضية واسماء المعلمات:

  • {{flagg|isc|Burma}} ينتج: ← Burma
  • {{flagg|isc|Burma|border=}} ينتج: ← Burma
  • {{flagg|isc|Burma|1974}} ينتج: ← Burma
  • {{flagg|isc|Burma|variant=1974}} ينتج: ← Burma
  • {{flagg|isc|Burma|name=Burma|variant=1974}} ينتج: ← Burma
  • {{flagg|isc|Burma|variant=1974}} ينتج: ← Burma
  • {{flagg|isc|Burma|sz=30}} ينتج: ← Burma
  • {{flagg|isc|Burma|size=30}} ينتج: ← Burma
  • {{flagg|isc|Burma|size=30px}} ينتج: ← Burma
  • {{flagg|isc|Burma|size=30x18px}} ينتج: ← Burma
  • {{flagg|isc|Burma|size=xs}} ينتج: ← Burma
  • {{flagg|isc|Burma|size=xl}} ينتج: ← Burma
  • {{flagg|isc|Burma|width=30|size=xs}} ينتج: ← Burma
  • {{flagg|isc|Burma|image=}} ينتج: ← Burma
  • {{flagg|isc|Burma|image=Flag of None.svg}} ينتج: → Burma
  • {{flagg|isc|Burma|image=File:Flag of None.svg}} ينتج: → Burma

الوصلات والـ altvars:

  • {{flagg|psp|مصر}} ينتج: ← مصر
  • {{flagg|psf|مصر}} ينتج: ← علم مصر
  • {{flagg|psb|مصر}} ينتج: ← علم مصر
  • {{flagg|psb|الفيليبين|the=1}} ينتج: ← علم ال الفيليبين
  • {{flagg|csc|مصر|section=History}} ينتج: ← مصر
  • {{flagg|csb|مصر|csection=History}} ينتج: ← علم مصر
  • {{flagg|psb|مصر|psection=Kingdom of مصر (1922–1953)|variant=1922}} ينتج: ← علم مصر
  • {{flagg|psb|مصر|plink=List of مصرian flags}} ينتج: ← علم مصر
  • {{flagg|psf|مصر|pref=تاريخ}} ينتج: ← تاريخ مصر
  • {{flagg|psp|مصر|suff=at the Olympics}} ينتج: ← مصر
  • {{flagg|psp|مصر|avar=fb}} ينتج: ← مصر
  • {{flagg|psp|مصر|avar=football}} ينتج: ← مصر
  • {{flagg|psp|مصر|avar=fbu|age=20}} ينتج: ← مصر
  • {{flagg|psf|مصر|avar=navy}} ينتج: ← مصر القوات البحرية

قالب بيانات غير موجود:

  • {{flagg|isc|Belfast}} ينتج: ← Belfast
  • {{flagg|isc|Belfast|image=Flag of Belfast.svg}} ينتج: ← Belfast

مقارنة مع قوالب أخرى[تعديل]

هذه القوالب تسبق قالب flagg، مع أن أغلبها لا تملك خيارات لتخصيص الوصلات والصور، إلا أنها ربما تكون أسرع لأنها تقوم فقط بوظيفتين دون الاستناد إلى لوا.

قوالب عامة[تعديل]

Template Corresponding {{flagg}} syntax Example
{{flag|country}} {{flagg|uncb|country}} {{flag|الصين}} ينتج: ←  الصين



{{flagg|unc|الصين}} ينتج: ←  الصين

{{flagbig|country}} {{flagg|ulc|country|sz=l}} {{flagbig|الصين}} ينتج: ←
الصين
{{flagg|ulc|الصين|sz=l}} ينتج: ←
الصين
{{flagc|country}} {{flagg|inc|country}} {{flagc|الصين}} ينتج: ←  الصين
{{flagg|inc|الصين}} ينتج: ←  الصين
{{flagcountry|country}} {{flagg|unce|country}} {{flagcountry|CHN}} ينتج: ←  الصين
{{flagg|unce|CHN}} ينتج: ←  CHN
{{flagdeco|country}} {{flagg|uxxo|country}} {{flagdeco|الصين}} ينتج: ←
{{flagg|uxx|الصين}} ينتج: ←
{{flagicon|country}} {{flagg|cxxlo|country}} {{flagicon|الصين}} ينتج: ← الصين
{{flagg|cxxlo|الصين}} ينتج: ←
{{flagicon image|image}} {{flagg|uxx|image=image}} {{flagicon image|Flag of الصين.svg}} ينتج: ← 22x20px
{{flagg|uxx|image=Flag of الصين.svg}} ينتج: ← 23x15px
{{flaglink|country|suffix}} {{flagg|unp|country|suff=suffix}} {{flaglink|الصين|at the Hopman Cup}} ينتج: ←  الصين
{{flagg|unp|الصين|suff=at the Hopman Cup}} ينتج: ←  الصين
{{flag+link|prefix|country}} {{flagg|unp|country|pref=prefix}} (no existence check) {{flag+link|Agriculture in|الصين}} ينتج: ←  الصين
{{flagg|unp|الصين|pref=Agriculture in}} ينتج: ←  الصين
{{flaglist|country}} {{flagg|usc|country}} {{flaglist|الصين}} ينتج: ← الصين
{{flagg|usc|الصين}} ينتج: ← الصين
{{flagof|country}} {{flagg|unp|country|sz=l}} {{flagof|الصين}} ينتج: ←  الصين
{{flagg|unp|الصين|sz=l}} ينتج: ←  الصين
{{flagright|country}} {{flagg|uncr|country}} {{flagright|الصين}} ينتج: ←  الصين
{{flagg|uncr|الصين}} ينتج: ← الصين 
{{flagu|country}} {{flagg|unu|country}} {{flagu|الصين}} ينتج: ←  الصين
{{flagg|unu|الصين}} ينتج: ←  الصين
{{noflag|country}} {{flagg|xnu|country}} {{noflag|الصين}} ينتج: ←  الصين
{{flagg|xnu|الصين}} ينتج: ←  الصين
{{noflag|[[country]]}} {{flagg|xnc|country}} {{noflag|[[الصين]]}} ينتج: ←  الصين
{{flagg|xnc|الصين}} ينتج: ←  الصين

Sports/military templates[تعديل]

The football templates are used as examples here; other sports that have separate templates work correspondingly.

Template Corresponding {{flagg}} syntax Example
{{fb|country}} {{flagg|unpe|country|avar=fb}} {{fb|الصين}} ينتج: ←  الصين
{{flagg|unpe|الصين|avar=fb}} ينتج: ←  الصين
{{fb|country|align=1}} {{flagg|uspe|country|avar=fb|al=c}} {{fb|الصين|align=1}} ينتج: ←  الصين
{{flagg|uspe|الصين|avar=fb|al=c}} ينتج: ← الصين
{{fb-big|country}} {{flagg|ulpe|country|avar=fb|sz=l}} {{fb-big|الصين}} ينتج: ←
الصين
{{flagg|ulpe|الصين|avar=fb|sz=l}} ينتج: ←
الصين
{{fb-rt|country}} {{flagg|unpre|country|avar=fb}} {{fb-rt|الصين}} ينتج: ←  الصين
{{flagg|unpre|الصين|avar=fb}} ينتج: ← الصين 
{{fbu|age|country}} {{flagg|unpe|country|avar=fbu|age=age}} {{fbu|17|الصين}} ينتج: ←  الصين
{{flagg|unpe|الصين|avar=fbu|age=17}} ينتج: ←  الصين
{{fbw|country}} {{flagg|unpe|country|avar=fbw}} {{fbw|الصين}} ينتج: ←  الصين
{{flagg|unpe|الصين|avar=fbw}} ينتج: ←  الصين
{{fbwu|age|country}} {{flagg|unpe|country|avar=fbwu|age=age}} {{fbwu|17|الصين}} ينتج: ←  الصين
{{flagg|unpe|الصين|avar=fbwu|age=17}} ينتج: ←  الصين
{{army|country}} {{flagg|unfe|country|avar=army}} (no automatic name override) {{army|الصين}} ينتج: ←  جيش الصين
{{flagg|unfe|الصين|avar=army}} ينتج: ←  الصين الجيش
{{navy|country}} {{flagg|unfe|country|avar=navy}} (no automatic name override) {{navy|الصين}} ينتج: ←

 قوات الصين البحرية
{{flagg|unfe|الصين|avar=navy}} ينتج: ←  الصين القوات البحرية

{{air force|country}} {{flagg|unfe|country|avar=air force}} (no automatic name override) {{air force|الصين}} ينتج: ←

 قوات الصين الجوية
{{flagg|unfe|الصين|avar=air force}} ينتج: ←  الصين القوات الجوية


local p = {}

function p.main(frame)

--Get input arguments
local args = require('Module:Arguments').getArgs(frame,{valueFunc =
  function(key,value)
    if value then
      value = mw.text.trim(value)
      if key=="image" or value~="" then
        return value
      end
    end
    return nil
  end
})

--Call main function
return p.luaMain(frame,args)

end

function p.luaMain(frame,args)

	function emp2nil(x)
	  if x=="" then return nil else return x end
	end
	function space2emp(x)
	  if string.find(x,"^%s*$") then return "" else return x end
	end
	function nopx(x)
	  if x~=nil and (string.find(x,"^%d+$") or string.find(x,"^%d+px$")) then return string.gsub(x,"^(.*)px","%1") else return nil end
	end

	--Country & mode parameters
	local mode = string.lower(args[1] or "usc")
	local mi = string.sub(mode,1,1)
	local ms = string.sub(mode,2,2)
	local mn = string.sub(mode,3,3)
	local me = string.sub(mode,4,-1)

	local find= require('Module:تحويلات بلدان').red ------------------------------------ Just in Arabic
	local country = find( args[2] ) or ""
	local avar = args["avar"] or args["altvar"]
	local clink = args["clink"] or args["link"]

	--Get country data & altvar data
	local data, alink, amap, asuf , apre
	if avar then
	  local age = args["age"] or ""
	  local aalias
	  amap, aalias = require("Module:Flagg/Altvar data").alttable(age)
	  avar = string.gsub(string.lower(avar or ""),"[ \-]","")
	  avar = aalias[avar] or avar
	  if not amap[avar] then error("Unknown avar") end
	  local apar = {altvar=amap[avar].altvar;mw=amap[avar].mw;age=amap[avar].age;variant=args["variant"] or args[3]}
	  data = require("Module:CountryData").gettable(frame,country,apar)
	  asuf = amap[avar].altlink
	  apre = amap[avar].linkpre
	  alink = data["link alias-"..amap[avar].altvar] or (apre or '').." "..(clink or data["shortname alias"] or data.alias or country).." "..asuf
	else
	  data = require("Module:CountryData").gettable(frame,country,{variant=args["variant"] or args[3]})
	  avar = ""
	  amap = {[""]={altvar=""}}
	end

	--Name and link parameters
	clink = clink or data.alias or country

	local pref = args["pref"]
	local suff = args["suff"] or asuf
	if not pref and not suff then --Default prefix
	  pref = "علم"
	end
	local yn_map = {[""]=0; ["0"]=0; ["no"]=0; ["n"]=0; ["1"]=1; ["yes"]=1; ["y"]=1}
	local fthe = (args["pthe"] and yn_map[args["pthe"]]~=0) or (args["the"] and yn_map[args["the"]]~=0)
	local nthe = (args["nthe"] and yn_map[args["nthe"]]~=0) or (args["the"] and yn_map[args["the"]]~=0)
	fthe = fthe and (pref and "ا" or "ا").."ل " or ""
	nthe = nthe and (pref and "ا" or "ا").."ل " or ""
	local flink = args["plink"] or args["flink"] or alink or space2emp((pref or "").." ")..fthe..clink..space2emp(" "..(suff or ""))
	local fsec = args["psection"] or args["section"]
	local csec = args["csection"] or args["section"]
	fsec = fsec and "#"..fsec or ""
	csec = csec and "#"..csec or ""

	local name = args["name"]
	if string.find(me,"e") then
	  local cname = data["name alias-"..amap[avar].altvar] or data["shortname alias"] or data.alias or country
	  if mn == "f" then
		name = name or space2emp((pref or "").." ")..nthe..cname..space2emp(" "..(suff or ""))
	  else
		name = name or cname
	  end
	else
	  if mn == "f" then
		name = name or space2emp((pref or "").." ")..nthe..country..space2emp(" "..(suff or ""))
	  else
		name = name or country
	  end
	end

	--Image parameters
	local pimage = args["image"]
	local placeholder = "Flag placeholder.svg"
	local variant = args["variant"] or args[3] or ""
	local image_map = {[""]=placeholder; ["none"]=placeholder; ["blank"]=placeholder}
	if pimage then --Remove namespace
	  pimage = string.gsub(pimage,"^[Ff][Ii][Ll][Ee]:(.*)$","%1")
	  pimage = string.gsub(pimage,"^[Ii][Mm][Aa][Gg][Ee]:(.*)$","%1")
	end
	local iname = image_map[pimage] or pimage

	local size = args["size"] or args["sz"]
	local size_map = {xs="12x8px"; s="17x11px"; m="23x15px"; l="32x21px"; xl="46x30px"}
	if size==nil or string.find(size,"^%d*x?%d+px$")
	  then --valid EIS size (..px, x..px or ..x..px), or unset
	elseif string.find(size,"^%d*x?%d+$")
	  then size=size.."px" --EIS size without "px" suffix
	  else size = size_map[size] or nil
	end
	local border = frame:getParent().args["border"] or frame.args["border"]

	if iname then
	  size = size or "23x15px"
	  if yn_map[border]==0 then border = "" else border = "|border" end
	else
	  iname = data["flag alias-"..amap[avar].altvar.."-"..variant] or data["flag alias-"..variant] or data["flag alias-"..amap[avar].altvar] or data["flag alias"] or placeholder
	  size = size or emp2nil(data.size) or "23x15px"
	  if border then
		if yn_map[border]==0 then border = "" else border = "|border" end
	  else
		local autoborder = data["border-"..variant] or data["border-"..amap[avar].altvar] or data.border
		if autoborder and autoborder~="border" then border = "" else border = "|border" end
	  end
	end

	local am = ""
	if args["alt"] or string.find(me,"a") then
	  am = args["alt"] or args["name"] or country
	  am = am.."|"..am
	end

	--Build display name
	local naaaa = args["naaaa"] or 'بيانات بلد'
	local text = args["text"]
	if not text then
	  if mn=="x" then --no text
		text = ""
	  elseif mn=="p" or mn=="f" then --prefix/suffix link
		text = "[["..flink..fsec.."|"..name.."]]"
	  elseif mn=="b" then --both prefix/suffix and normal country link
		if pref and suff then
		  text = "[["..flink..fsec.."|"..pref.."]] "..nthe.."[["..clink..csec.."|"..name.."]] [["..flink..fsec.."|"..suff.."]]"
		elseif pref then
		  text = "[["..flink..fsec.."|"..pref.."]] "..nthe.."[["..clink..csec.."|"..name.."]]"
		elseif suff then
		  text = nthe.."[["..clink..csec.."|"..name.."]] [["..flink..fsec.."|"..suff.."]]"
		else
		  text = nthe.."[["..clink..csec.."|"..name.."]]"
		end
	  elseif mn=="d" then --data template
		--check if redirect
		if require('Module:Redirect').luaIsRedirect("Template:" .. naaaa ..  " "..country) then
		  text = "<span class=\"plainlinks\">["..mw.title.new("Template:" .. naaaa ..  " "..country):fullUrl("redirect=no").." "..name.."]</span>"
		else
		  text = "[[Template:" .. naaaa ..  " "..country.."|"..name.."]]"
		end
	  elseif mn=="u" then --unlinked
		text = name
	  else --country link (default)
		text = "[["..clink..csec.."|"..name.."]]"
	  end
	end

	--Build image
	local ilink = args["ilink"]
	if not ilink then
	  if mi=="x" or (iname==placeholder and pimage~=placeholder) then --no image/invisible image
		iname = placeholder
		border = ""
		ilink = "|link="
		am = ""
	  elseif mi=="i" then --image page link
		ilink = ""
	  elseif mi=="c" then --country link
		ilink = "|link="..clink..csec
	  elseif mi=="p" or mi=="f" then --prefix/suffix link
		ilink = "|link="..flink..fsec
	  elseif mi=="d" then --data template
		--check if redirect
			if require('Module:Redirect').luaIsRedirect("Template:" .. naaaa ..  " "..country) then
			  ilink = "|link="..mw.title.new("Template:" .. naaaa .. " "..country):fullUrl("redirect=no")
			else
			  ilink = "|link=Template:" .. naaaa .. " "..country
			end
	  else --unlinked (default)
		ilink = "|link="
	  end
	end
	local image = "[[File:"..iname.."|"..size..border..ilink.."|alt="..am.."]]"

	--Combine image and name with separator
	local align = args["align"] or args["al"]
	local nalign = args["nalign"] or args["nal"]
	local align_map = {left="left", l="left", center="center", centre="center", c="center", middle="center", m="center", right="right", r="right"}
	local out
	if string.find(me,"r") then
	  --image right of name
	  if (ms=="x" and mi=="x") or (string.find(me,"o") and iname==placeholder and pimage~=placeholder) then --name only
		out = text
	  elseif ms=="x" then --no separator
		out = text.."<span class=\"flagicon\">"..image.."</span>"
	  elseif ms=="n" then --non-breaking space
		out = text.."<span class=\"flagicon\">&nbsp;"..image.."</span>"
	  elseif ms=="l" then --line break
		out = text.."<span class=\"flagicon\"><br/>"..image.."</span>"
	  elseif ms=="t" then --table cell
		out = "style=\"text-align:"..(align_map[nalign] or "left").."\"|"..text.."||style=\"text-align:"..(align_map[align] or "center")..";\"|<span class=\"flagicon\">"..image.."</span>"
	  else --fixed-width span box (default)
		local width = args["width"] or args["w"] or require("Module:Flaglist/size").luawidth(size)
		out = text.."<span class=\"flagicon\" style=\"display:inline-block;width:"..width.."px;text-align:"..(align_map[align] or "right")..";\">"..image.."</span>"
	  end
	 else --image left of name
	  if (ms=="x" and mi=="x") or (string.find(me,"o") and iname==placeholder and pimage~=placeholder) then --name only
		out = text
	  elseif ms=="x" then --no separator
		out = "<span class=\"flagicon\">"..image.."</span>"..text
	  elseif ms=="n" then --non-breaking space
		out = "<span class=\"flagicon\">"..image.."&nbsp;</span>"..text
	  elseif ms=="l" then --line break
		out = "<span class=\"flagicon\">"..image.."<br/></span>"..text
	  elseif ms=="t" then --table cell
		out = "style=\"text-align:"..(align_map[align] or "center")..";\"|<span class=\"flagicon\">"..image.."</span>||style=\"text-align:"..(align_map[nalign] or "left").."\"|"..text
	  else --fixed-width span box (default)
		local width = nopx(args["width"] or args["w"]) or require("Module:Flaglist/size").luawidth(size)
		out = "<span class=\"flagicon\" style=\"display:inline-block;width:"..width.."px;text-align:"..(align_map[align] or "left")..";\">"..image.."</span>"..text
	  end
	end
	if string.find(me,"w") then --avoid wrapping
	  out = "<span class=\"nowrap\">"..out.."</span>"
	end

	--Tracking categories
	local cat = ""
	if pimage and not image_map[pimage] and country~="" and data["flag alias"] and not args.demo then
	  cat = "[[Category:Pages using Flagg with specified image instead of data template image]]"
	end

	return out..cat

end

return p