وحدة:Ill-WD2

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
توثيق الوحدة[عرض] [عدل] [تاريخ] [مسح الكاش] [استخدامات]

الهدف من القالب[عدل]

يستخدم هذا القالب كما قالب {{وصلة إنترويكي}} ولكن يعتمد هذا القالب بشكل أساسي على عنصر ويكي بيانات الذي يتم وضعه في القيمة الثانية |id=Q001 عند وجود قيمة للوسيط الأول |1=وصلة أو يوضع في الوسيط |id=Q001 عند عدم وجود أول قيمة، فإن كانت هناك وصلة في ويكي بيانات فستظهر عند عدم وضع وصلة محلية، أو تظهر بدل ذلك الوصلة التي توضع في الوسيط الأول |1=وصلة.

  • سؤال: لماذا هذا القالب؟!
    • جواب: للتأكد من أن المقالة ربطت بالمقالة المطلوبة، حتى عند وجود تكرار في الإسم أو الوصلة، حيث أن القالب لا يظهر الصفحة في تصنيف:صفحات بها وصلات للإزالة إلا عند ارتباط مقالة في العنصر المطلوب في ويكي بيانات.

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

  • الوسيط |id= يجب أن يستخدم كشرط أساسي لعمل القالب.

استخدام |نص=[عدل]

  • يمكن استخدام |نص= في جميع الحالات التي ينتج فيها القالب وصلة، سواء حمراء أم زرقاء.

وصلة موجودة في ويكي بيانات[عدل]

  • عند وجود وصلة في ويكي بيانات سيتجاهل القالب عمل الوسائط |1= و|target= و|en=.
  • استعمال |1= (يقوم القالب بتجاهله لوجود وصلة في ويكي بيانات) :
  • يمكن استعمال |نص= (ليظهر مكان الوصلة) :

عدم وجود وصلة في ويكي بيانات[عدل]

استخدام |en=[عدل]

  • يمكن استخدام |en= في جميع حالات عدم وجود وصلة عربية في ويكي بيانات:
    • يظهر هذا الوسيط التسمية الإنجليزية في ويكي بيانات عند عدم استخدام |1= وعدم وجود تسمية عربية.
      • {{Ill-WD2|id=Q1153257|en=true}} ينتج: ← NAACP Image Awards [الإنجليزية]
      • {{Ill-WD2|id=Q21475076|en=true}} ينتج: ←
  • إذا أردنا إستخدام تسمية غير الإنجليزية فيمكن استخدام الوسيط |target=.

استخدام |target=[عدل]

القيم المستخدمة: رمز لغة.

  • يظهر الوسيط الوصلة إلى ويكي بيانات أو إلى أحد الموسوعات الشقيقة للمقالة التي نريد.
  • يمكن استخدام |لغ= أو |target= في جميع حالات عدم وجود وصلة عربية في ويكي بيانات:
وجود تسمية عربية في ويكي بيانات أو بإستخدام |1=
عدم وجود تسمية عربية
  • {{Ill-WD2|id=Q1153257|target=en}} ينتج: ← NAACP Image Award  (لغات أخرى)
  • {{Ill-WD2|en=true|target=fa|id=Q1153257}} ينتج: ← NAACP Image Awards [الإنجليزية]
  • عند عدم استخدام |en= سيظهر التسمية التي نضع رمز لغتها:
    • {{Ill-WD2|id=Q1153257|target=fa}} ينتج: ← جایزه ایمیج [الفارسية]
  • عند استخدام رمز لغة خاطئ
    • باستخدام |en= لإضافة التسمية الإنجليزية {{Ill-WD2|en=true|target=fai|id=Q1153257}} ينتج: ← NAACP Image Awards [الإنجليزية]
    • {{Ill-WD2|id=Q1153257|target=fai}} ينتج: ←

تسمية عربية أو |1=[عدل]

النص يساوي مقالة موجودة[عدل]
(مع استخدام |id= للعنصر جون جونز (Q6262037)
  • عند وجود تسمية عربية تساوي (جون جونز) أو أستخدمنا |1=جون جونز:
  • سيتجاهل القالب عمل وصلة إلى "جون جونز" بسبب وجود مقالة جون جونز تحمل هذا الاسم في ويكبيديا العربية وهي مرتبطة بعنصر آخر في ويكي بيانات:
وستظهر الصفحة في تصنيف:وصلات إنترويكي بحاجة لمراجعة.
توصيف يظهر
{{Ill-WD2|id=Q6262037}}
جون جونز  (لغات أخرى) 
توصيف يظهر
{{Ill-WD2|جون جونز|id=Q6262037}}
جون جونز  (لغات أخرى) 
توصيف يظهر
{{Ill-WD2|اليمن|id=Q6262037|target=en}}
اليمن [الإنجليزية] 

النص لا يساوي مقالة موجودة[عدل]

أمثلة أخرى[عدل]

  • عدم وجود تسمية عربية وعدم استخدام |1=:
توصيف يظهر
{{Ill-WD2|id=Q1153257}}

y[عدل]

توصيف يظهر
{{Ill-WD2|id=Q29456648|y=t}}
2017  (لغات أخرى)
local p = {}
local wd2 = require('Module:wikidata2')
local Frame;
local Category = {}
Category["remove"] = " [[تصنيف:صفحات بها وصلات للإزالة]]"
Category["review"] = " [[تصنيف:وصلات إنترويكي بحاجة لمراجعة]]"

function labelIn(langcode,id)
	local label, lange = mw.wikibase.getLabelWithLang( id )
	if lange == langcode
	then
		return label
	else
		--mw.log("label = " ..label .. "lange = " ..lange .. "langcode = " .. langcode)
		return ""
	end
end
function maketext(pframe , String)
	local y = pframe.args["y"]
	local text = pframe.args["text"] or pframe.args["نص"]
	if text and text ~= ""  then
			return text 
	elseif y and y ~= ""  then
		String2 = mw.ustring.gsub( String , '–', '-' )
		ca = mw.ustring.match( String2 , "%d%d%d%d%-%d%d%d%d", 1 ) or mw.ustring.match( String2 , "%d%d%-%d%d%d%d", 1 ) or mw.ustring.match( String2 , "%d%d%d%d%-%d%d", 1 )
		ca = ca or mw.ustring.match( String2 , "%d%d%d%d", 1 ) or  String
		return ca
	end	
	return String
end

function make_suffix(id , target_Site , target_Link ) 
	local other_lang = '"'.. id ..'" في لغات أخرى'
	--local fa = '<span title="'.. other_lang ..'">لغات أخرى</span>'
	local fa =  mw.text.tag('span', {title= other_lang }, "لغات أخرى")
	local tex = '&nbsp;([[d:'.. id ..'#sitelinks-wikipedia|' ..fa..']])'
	--local suff = '<span class="noprint" style="font-size: smaller; font-style: normal; font-weight: normal;">' .. tex.. '</span>'
	local suff = '' .. mw.text.tag('span', {class= "noprint" , style="font-size: smaller; font-style: normal; font-weight: normal;"}, tex)
	
	if (target_Link and target_Link ~= "") and (target_Site and target_Site ~= "") then
		--language = '{{#language:'.. target_Site ..'|ar}}'
		language = Frame:callParserFunction('#language', target_Site , "ar")
		suff = '[[:'.. target_Site ..':'.. target_Link ..'|<sup class=reference title="'.. target_Link ..'">['.. language ..']</sup>]]'
	end
	--suffe = Frame:preprocess("&nbsp;" .. suff) --suff
	suffe = "&nbsp;" .. suff
	return suffe
end

function make_ar_link(pframe , title, suffix)
	local text = maketext(pframe , title)
	local link;
	local tit = mw.title.new(title)
	if tit.exists then
		link = text .. suffix .. Category["review"]
	else
		link = '[[' .. title .. "|" .. text .. "]]" .. suffix
	end
	return link
end
function sitelink_( id , site )
	local entity = mw.wikibase.getEntityObject(id)
		if entity
		and entity.sitelinks 
		and entity.sitelinks[''..site..'']
		and entity.sitelinks[''..site..''].site 
		and entity.sitelinks[''..site..''].title 
		then
			if entity.sitelinks[''..site..''].site == site then
			return entity.sitelinks[''..site..''].title
			end
		end
	return ''
end
function sitelink( id , site )
	local site = site or 'arwiki'
	local link = mw.wikibase.sitelink( id , site )
	--mw.log("mw.wikibase.sitelink : " .. link)
	return link
end

function p.link(frame)
	Frame = frame;
	local target_label;
	local ar_link;
	local en_label = ""
	local pframe = frame:getParent()
	local id = pframe.args["id"]
	if not id or id == "" then return "No ID" end
	local lab_1 = pframe.args[1] or pframe.args["label"]
	local target_SiteLink = ""
	local target = pframe.args["target"] or pframe.args["لغ"] or ""
	if pframe.args["en"] and pframe.args["en"] ~= "" then
		 target = "en" 
		 --mw.log("target = en" )
	elseif target == "en" then
		 en_label = labelIn("en",id)
		end
	if target ~= "" then target_SiteLink = sitelink_( id , target .. "wiki" ) end
	local SiteLink =  mw.wikibase.sitelink( id )
	if SiteLink 
		then 
			Link = '[[' .. SiteLink .. "|" .. maketext(pframe , SiteLink) .. "]]"
			mw.log("replace: " .. id .. " by: " .. Link)
			return Link .. Category["remove"]
	end
	local ar_label = labelIn("ar",id)
	local suffix = make_suffix(id , target , target_SiteLink )
	if lab_1 and lab_1 ~= "" 
		then ar_link = lab_1 
	elseif ar_label ~= ""
		then ar_link = ar_label
	end
	if ar_link and ar_link ~= "" then
		--mw.log("ar_link : " .. ar_link)
		return make_ar_link(pframe , ar_link , suffix)
	end
	if en_label ~= ""  then
		--mw.log("en_label " .. en_label)
		return maketext(pframe , en_label) ..  make_suffix(id , "" , "" )
	end
	if target ~= "" and target_SiteLink ~= "" then
		--mw.log("target " .. target .. ": " .. target_SiteLink)
		return maketext(pframe , target_SiteLink) .. suffix
	end
	--mw.log("nothing en_label: " .. en_label  )
	return ""
end

return p