وحدة:Wikidata/تتبع

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

هذه الوحدة أنشئت لتعرض التصنيف المناسب عند استخدام قيم خواص ويكي بيانات، وكذلك تعرض أيقونة التعديل في ويكي بيانات.

تستخدم هذه الوحدة بواسطة وحدة:wikidata2 و{{قيمة ويكي بيانات/إيقونة وتصنيف}}.

local p = {}

function trim(s)
		--Removes leading zeroes from value
		if s:sub(1,1)=="P" then return s:sub(2)
		else return s
		end
	end
local function category(propertyid,q,nocate)
        main = '[[تصنيف:صفحات بها بيانات ويكي بيانات|'.. trim(propertyid) ..']]'
	if nocate and nocate  ~= ''  
		then -- to hide the category
	 		return ''
	 	elseif q and q  ~= ''  
		then 
	 		return q..''..main 
	end
	d = mw.text.trim(propertyid)
	s = list(d)
	if s then
		return '[[تصنيف:'.. s ..']]'..main  -- linktext(s)
	end
end

local function icons(u,id,noicon,icon2)
	if noicon and noicon  ~= ''  
		then -- to hide the icon
	 		return ''
	end
	local label = mw.wikibase.label(u) --{{#invoke:Wikibase|label| u }}
		if label ==nil or not label 
			then label ='' 
			else
		end

	local temp =  label .. ' ('.. u ..')'
	local ico =  'Twemoji_270f.svg|13px'
		if icon2 and icon2 ~='' then 
			ico = 'Wikidata-logo.svg|20px' 
			size = '20px' 
			end
	local so = 'تعديل قيمة خاصية ' .. temp ..' في ويكي بيانات'
	local im =' [[File:'.. ico .. '|baseline|link=d:'.. (id or '') .. '#'.. u ..'|'.. so .. ']]'
	local noprint=  '<span class="noprint">'.. im ..'</span>'
	local sup=  '<sup>'.. noprint ..'</sup>'
	if u then
		return noprint
	end
end

local function xt(e)
		return  'صفحات تستخدم خاصية '.. e
end

local function wd(e)
		return e .. ' من ويكي بيانات'
end

local categorieskey = {
	['7']	 = 'أخ'
	,['9']	 = 'أخت'
	,['18']	 = 'صور'
	,['19']	 = 'مكان ميلاد'
	,['20']	 = 'مكان وفاة'
	,['22']	 = 'والد'
	,['25']	 = 'والدة'
	,['27']	 = 'مواطنة شخص'
	,['37']	 = 'لغة رسمية'
	,['38']	 = 'عملة'
	,['39']	 = 'منصب'
	,['41']	 = 'علم'
	,['50']	 = 'مؤلف'
	,['53']	 = 'عائلة'
	,['54']	 = 'فرق لاعب'
	,['57']	 = 'مخرج'
	,['58']	 = 'سيناريو'
	,['61']	 = 'مكتشف'
	,['66']	 = 'مسقط رأس شخص'
	,['69']	 = 'مدرسة أم'
	,['84']	 = 'مهندس معماري'
	,['86']	 = 'موسيقي'
	,['94']	 = 'شعار نبالة'
	,['98']	 = 'محرر'
	,['101']	 = 'مجال عمل'
	,['106']	 = 'مهنة'
	,['112']	 = 'مؤسس'
	,['115']	 = 'ملعب'
	,['119']	 = 'مكان دفن شخص'
	,['123']	 = 'ناشر'
	,['127']	 = 'مالك'
	,['136']	 = 'نوع فني'
	,['137']	 = 'مشغل'
	,['138']	 = 'سبب تسمية'
	,['140']	 = 'ديانة'
	,['141']	 = 'حالة حفظ'
	,['144']	 = 'عمل أصلي'
	,['154']	 = 'شعار'
	,['155']	 = 'سبقه'
	,['156']	 = 'تبعه'
	,['159']	 = 'مقر رئيسي'
	,['162']	 = 'منتج'
	,['166']	 = 'جوائز'
	,['169']	 = 'مدير تنفيذي لشركة'
	,['170']	 = 'مخترع'
	,['172']	 = 'عرقية شخص'
	,['178']	 = 'مطور'
	,['179']	 = 'سلسلة'
	,['184']	 = 'مشرف الدكتوراة'
	,['185']	 = 'طلاب دكتوراة'
	,['218']	 = 'رمز أيزو 639-1'
	,['219']	 = 'رمز أيزو 3166-2'
	,['219']	 = 'رمز أيزو 639-2'
	,['220']	 = 'رمز أيزو 639-3'
	,['221']	 = 'رمز أيزو 639-6'
	,['225']	 = 'تسمية علمية'
	,['241']	 = 'فرع عسكري'
	,['243']	 = 'معرف Oclc'
	,['249']	 = 'رمز شركة بالبورصة'
	,['263']	 = 'مقر رسمي'
	,['264']	 = 'شركة تسجيلات'
	,['274']	 = 'صيغة جزيئية'
	,['277']	 = 'لغة برمجة'
	,['279']	 = 'نوع فرعي'
	,['286']	 = 'مدرب'
	,['287']	 = 'مصمم'
	,['297']	 = 'رمز أيزو 3166-1'
	,['300']	 = 'رمز أيزو 3166-2'
	,['306']	 = 'نظام تشغيل'
	,['344']	 = 'مصور سينمائي'
	,['355']	 = 'شركات فرعية'
	,['364']	 = 'لغة'
	,['373']	 = 'قالب تصنيف كومنز بوصلة'
	,['404']	 = 'نمط لعبة'
	,['405']	 = 'واضع تسمية علمية'
	,['408']	 = 'محرك'
	,['412']	 = 'طبقة صوتية'
	,['413']	 = 'مركز لاعب'
	,['425']	 = 'مجال مهنة'
	,['428']	 = 'اختصار عالم نبات'
	,['434']	 = 'معرف ميوزك برينز للفنانين'
	,['449']	 = 'شبكة البث'
	,['452']	 = 'صناعة شركة'
	,['463']	 = 'عضو في'
	,['480']	 = 'معرف فيلمافينيتي'
	,['493']	 = 'كود ICD9'
	,['494']	 = 'كود ICD10'
	,['498']	 = 'رمز أيزو 4217'
	,['509']	 = 'سبب وفاة'
	,['598']	 = 'قيادات شخص'
	,['1035']	 = 'لاحقة شرفية'
	,['512']	 = 'شهادة جامعية'
	,['527']	 = 'مكونات'
	,['555']	 = 'سجل الفوز زوجي'
	,['563']	 = 'كود ICDO'
	,['564']	 = 'سجل الفوز فردي'
	,['569']	 = 'تاريخ ميلاد'
	,['570']	 = 'تاريخ وفاة'
	,['574']	 = 'تاريخ وضع تسمية علمية'
	,['607']	 = 'معارك'
	,['625']	 = 'إحداثيات'
	,['634']	 = 'كابتن'
	,['646']	 = 'قالب فريبيس يستخدم بيانات'
	,['648']	 = 'معرف المكتبة المفتوحة'
	--,['746']	 = 'تاريخ الاختفاء'
	,['748']	 = 'معين'
	,['749']	 = 'شركة أم'
	,['750']	 = 'موزع فيلم'
	,['757']	 = 'معرف موقع تراث'
	,['802']	 = 'طلاب'
	,['812']	 = 'تخصص أكاديمي'
	,['835']	 = 'اختصار عالم حيوان'
	,['856']	 = 'موقع رسمي بوصلة'
	,['915']	 = 'موقع تصوير'
	,['921']	 = 'موضوع رئيسي'
	,['935']	 = 'وصلة كومنز'
	,['957']	 = 'معرف ISBN'
	,['1006']	 = 'معرف القاموس الوطني لأسماء المؤلفين'
	,['1036']	 = 'معرف Dewey'
	,['1040']	 = 'مونتاج'
	,['1050']	 = 'مشكلة صحية'
	,['1056']	 = 'منتجات شركة'
	,['1098']	 = 'عدد المتحدثين'
	,['1104']	 = 'عدد الصفحات'
	,['1120']	 = 'وفيات'
	,['1128']	 = 'عدد موظفي شركة'
	,['1132']	 = 'عدد المشاركين'
	,['1146']	 = 'قالب اتحاد ألعاب القوى يستخدم بيانات'
	,['1220']	 = 'معرف شخص في قاعدة بيانات برودواي على الإنترنت'
	,['1233']	 = 'قالب اسفدب يستخدم بيانات'
	,['1237']	 = 'معرف فيلم بوكس أوفيس موجو'
	,['1258']	 = 'معرف موقع الطماطم الفاسدة'
	,['1263']	 = 'معرف شخص في إن إن دي بي'
	,['1265']	 = 'معرف ألو سيني'
	,['1266']	 = 'معرف شخص في ألو سيني'
	,['1284']	 = 'أرشيف مونزينجر'
	,['1303']	 = 'آلات فنان'
	,['1308']	 = 'شاغل منصب'
	,['1346']	 = 'فائز'
	,['1365']	 = 'سبقه'
	,['1366']	 = 'تبعه'
	,['1389']	 = 'شهادة المنتج'
	-- ,['1409']	 = 'قالب أرشيف ركوب الدراجات يستخدم بيانات'
	,['1412']	 = 'لغة كاتب'
	,['1417']	 = 'معرف موسوعة بريتانيكا على الإنترنت'
	,['1431']	 = 'منتج تنفيذي'
	,['1442']	 = 'صورة القبر'  --not yet
	,['1446']	 = 'مفقودين'
	,['1447']	 = 'قالب سبورتس رفرنس يستخدم بيانات'
	,['1451']	 = 'شعار نصي'
	,['1476']	 = 'عنوان'
	,['1546']	 = 'شعار وطني'
	,['1562']	 = 'عنوان أول موفي'
	,['1581']	 = 'مدونة'
	,['1590']	 = 'خسائر'
	,['1663']	 = 'قالب برو سايكلنج يستخدم بيانات'
	,['1712']	 = 'معرف ميتاكريتيك'
	,['1741']	 = 'معرف المكنز العام للأرشيف السمعي البصري'
	,['1798']	 = 'رمز أيزو 639-5'
	,['1819']	 = 'معرف شخص في جينالوجيكش.كوم'
	,['1971']	 = 'عدد الابناء'
	,['1972']	 = 'معرف أوبن هب يستخدم بيانات'
	,['2019']	 = 'قالب اسم أول موفي يستخدم بيانات'
	,['2043']	 = 'طول'
	,['2046']	 = 'مساحة'
	,['2047']	 = 'مدة'
	,['2049']	 = 'عرض'
	,['2067']	 = 'وزن'
	,['2073']	 = 'مدى'
	,['2090']	 = 'قالب باور اوف تن يستخدم بيانات'
	,['2097']	 = 'مدة ولاية'
	,['2096']	 = 'وصف صورة'
	,['2101']	 = 'نقطة الانصهار'
	,['2130']	 = 'ميزانية'
	,['2250']	 = 'متوسط العمر'
	,['2284']	 = 'سعر الصرف'
	,['2334']	 = 'معرف قاعدة بيانات الأفلام السويدية'
	,['2386']	 = 'قطر'
	,['2522']	 = 'فوز شخص'
	,['2534']	 = 'صيغة'
	,['2638']	 = 'معرف تي في دوت كوم'
	,['2656']	 = 'تصنيف الفيفا'
	,['2716']	 = 'صورة مجمعة'--not yet 
	,['2910']	 = 'إيقونة'--not yet 
	,['3017']	 = 'معرف فنان في رولينغ ستون'
	,['3065']	 = 'معرف شخص في تيرنر كلاسيك موفيز'
	,['3069']	 = 'رمز وثيقة الأمم المتحدة'
	,['3136']	 = 'معرف السينما.كوم للأشخاص'
	,['3143']	 = 'معرف فيلم في موقع الفيلم'
	,['3144']	 = 'معرف شخص في موقع الفيلم'
	,['3383']	 = 'ملصق فيلم'
	-- ,[' ']	 = ' '
	-- ,[' ']	 = ' '
	-- ,[' ']	 = ' '
	}

function list(s)
	local I = trim(s)
	local key = categorieskey[I]
	if key and key ~= "" then
		--mw.log("key: " .. key)
		return wd(key)
	else 
		return xt(s)
	end
end

function p.pageId(frame)
	return mw.wikibase.getEntityIdForCurrentPage()
end

function p.makecategory1(options)  --Main function
	prop = options['property']
	noicon = options['noicon'] -- options to hide the icon.
	nocate = options['nocate']  -- options to hide the category.
	q = options['category']
	iid = options['entityId'] or options['id']
	icon2 = options['icon2']
	if iid == '' or not iid then
             id = p.pageId()
             else id = iid 
      end
	if prop  == '' or not prop then
		return nil -- don't do anything if no options property.
	end
	propertyid = mw.ustring.gsub(prop:upper(), " ", "")

	icon = icons(propertyid,id,noicon,icon2)   -- function to display the icon.
	cate = category(propertyid,q,nocate) -- function to display the category.
	
	last = cate ..''.. icon
		return last
end

function p.makecategory(frame)  --Main function
	local final = p.makecategory1(frame.args)
	return final
end

function p.make1(prop,id)  --Main function
	if id == '' or not id then
             id = p.pageId()
             else id = iid 
      end
	if prop  == '' or not prop then
		return nil -- don't do anything if no args property.
	end
	propertyid = mw.ustring.gsub(prop:upper(), " ", "")

	icon = icons(propertyid,id,noicon)   -- function to display the icon.
	cate = category(propertyid,q,nocate) -- function to display the category.
	
	last = cate ..''.. icon
		return last
end


function p.SS(frame) --testing function
	s = mw.ustring.gsub(frame.args['property']:upper(), " ", "")
	s = list(s)
	s = mw.text.trim(s)
	if s  == '' or not s then
		return  nil
	end
	q = frame.args['category']
	if q  == '' or not q then
		return category(s)
        else return q
	end
	
end

return p