تضامنًا مع حق الشعب الفلسطيني |
وحدة:Ill-WD2/ملعب
اذهب إلى التنقل
اذهب إلى البحث
هذه صفحة ملعب الوحدة لصفحة وحدة:Ill-WD2 (فرق). |
- تستخدم هذه الوحدة أساساً عبر قالب:Ill-WD2.
هذه الوحدة مستخدمة في عدد كبير من الصفحات (+349498) . لتفادي خلق بلبلة على نطاق واسع من الصفحات وزيادة الأعباء على الخوادم، يجب تجربة أي تعديل في هذه الصفحات الفرعية /ملعب أو /تجربة أو في ملعبك. بعدها يمكنك اضافة التعديلات دفعة واحدة، ورجاءً، لا تنسَ مناقشة أمر التعديلات أوّلًا قبل القيام بها. |
الهدف من القالب
يستخدم هذا القالب كما قالب {{وصلة إنترويكي}} ولكن يعتمد هذا القالب بشكل أساسي على عنصر ويكي بيانات الذي يتم وضعه في القيمة الثانية |id=Q001
عند وجود قيمة للوسيط الأول |1=وصلة
أو يوضع في الوسيط |id=Q001
عند عدم وجود أول قيمة، فإن كانت هناك وصلة في ويكي بيانات فستظهر عند عدم وضع وصلة محلية، أو تظهر بدل ذلك الوصلة التي توضع في الوسيط الأول |1=وصلة
.
- سؤال: لماذا هذا القالب؟!
- جواب: للتأكد من أن المقالة ربطت بالمقالة المطلوبة، حتى عند وجود تكرار في الاسم أو الوصلة، حيث أن القالب لا يظهر الصفحة في تصنيف:صفحات بها وصلات للإزالة إلا عند ارتباط مقالة في العنصر المطلوب في ويكي بيانات.
- في حالة وجود صفحة في ويكي بيانات للوسيط
|id=
سيقوم البوت Mr.Ibrahembot بإزالة القالب ووضع الوصلة المناسبة.
الاستعمال
- الوسيط
|id=
يجب أن يستخدم كشرط أساسي لعمل القالب.
استخدام |نص=
- يمكن استخدام
|نص=
في جميع الحالات التي ينتج فيها القالب وصلة، سواء حمراء أم زرقاء.{{Ill-WD2/ملعب|جائزة الرئيس|المعرف=Q17011862}}
← جائزة الرئيس {{Ill-WD2/ملعب|id=Q76|نص=أوباما}}
←
وصلة موجودة في ويكي بيانات
- عند وجود وصلة في ويكي بيانات سيتجاهل القالب عمل الوسائط
|1=
و|target=
و|en=
.{{Ill-WD2/ملعب|id=Q76}}
←
- استعمال
|1=
(يقوم القالب بتجاهله لوجود وصلة في ويكي بيانات) :{{Ill-WD2/ملعب|أوباما|id=Q76}}
← أوباما {{Ill-WD2/ملعب|أوباما|id=Q76|target=fa}}
← أوباما
- يمكن استعمال
|نص=
(ليظهر مكان الوصلة) :{{Ill-WD2/ملعب|id=Q76|نص=أوباما}}
←{{Ill-WD2/ملعب|id=Q21857932}}
←{{Ill-WD2/ملعب|id=Q21857932|نص=طواف 2017}}
←
استخدام |en=
- يمكن استخدام
|en=
في جميع حالات عدم وجود وصلة عربية في ويكي بيانات: - إذا أردنا استخدام تسمية غير الإنجليزية فيمكن استخدام الوسيط
|target=
. - يظهر هذا الوسيط التسمية الإنجليزية في ويكي بيانات (ويضع وصلة إلى أرابيكا الإنجليزية) عند عدم استخدام
|1=
وعدم وجود تسمية عربية.{{Ill-WD2/ملعب|id=Q3402429|en=true}}
←
- عند عدم وجود وصلة لأرابيكا الإنجليزية لا ينتج شيء كالتالي:
{{Ill-WD2/ملعب|id=Q21475076|en=true}}
←
استخدام |enlabel=
- إذا أردنا إضافة نص يظهر بدلًا عن التسمية الإنجليزية من ويكي بيانات بدون وصلة (في حالة عدم وجود تسمية عربية):
{{Ill-WD2/ملعب|id=Q15836474|enlabel=Nederland Bloeit 2011}}
← Nederland Bloeit 2011
استخدام |target=
القيم المستخدمة: رمز لغة.
- يظهر الوسيط الوصلة إلى ويكي بيانات أو إلى أحد الموسوعات الشقيقة للمقالة التي نريد.
- يمكن استخدام
|لغ=
أو|target=
في جميع حالات عدم وجود وصلة عربية في ويكي بيانات:
- وجود تسمية عربية في ويكي بيانات أو باستخدام
|1=
{{Ill-WD2/ملعب|id=Q17011862|target=en}}
←{{Ill-WD2/ملعب|جروسلون|id=Q3402429|target=fa}}
← جروسلون
- عدم وجود تسمية عربية
{{Ill-WD2/ملعب|id=Q3402429|target=en}}
←{{Ill-WD2/ملعب|en=true|target=fa|id=Q3402429}}
←- عند عدم استخدام
|en=
سيظهر التسمية التي نضع رمز لغتها:{{Ill-WD2/ملعب|id=Q3402429|target=fa}}
←
- عند استخدام رمز لغة خاطئ
- باستخدام
|en=
لإضافة التسمية الإنجليزية{{Ill-WD2/ملعب|en=true|target=fai|id=Q3402429}}
← {{Ill-WD2/ملعب|id=Q3402429|target=fai}}
←
- باستخدام
تسمية عربية أو |1=
النص يساوي مقالة موجودة
- (مع استخدام
|id=
للعنصر (Q18201527))
- عند وجود تسمية عربية تساوي (جون جونز) أو أستخدمنا
|1=جون جونز
: - سيتجاهل القالب عمل وصلة إلى "جون جونز" بسبب وجود مقالة جون جونز تحمل هذا الاسم في ويكبيديا العربية وهي مرتبطة بعنصر آخر في ويكي بيانات:
- وستظهر الصفحة في تصنيف:وصلات إنترويكي بحاجة لمراجعة.
توصيف | يظهر |
---|---|
{{Ill-WD2/ملعب| id=Q18201527}} |
توصيف | يظهر |
---|---|
{{Ill-WD2/ملعب|جون جونز| id=Q18201527}} | جون جونز |
توصيف | يظهر |
---|---|
{{Ill-WD2/ملعب|اليمن| id=Q18201527| target=en}} | اليمن |
- استخدام
|1=جون جونز (كاتب مسرحي)
لنفس العنصر:{{Ill-WD2/ملعب|جون جونز (كاتب مسرحي)|id=Q18201527}}
← جون جونز (كاتب مسرحي) {{Ill-WD2/ملعب|جون جونز (كاتب مسرحي)|id=Q18201527|نص=جون جونز}}
← جون جونز {{Ill-WD2/ملعب|جون جونز (كاتب مسرحي)|id=Q18201527|نص=جون جونز|target=en}}
← جون جونز
النص لا يساوي مقالة موجودة
- مع وجود تسمية عربية:
{{Ill-WD2/ملعب|id=Q17011862}}
←{{Ill-WD2/ملعب|id=Q17011862|target=en}}
←{{Ill-WD2/ملعب|جائزة الرئيس|id=Q17011862}}
← جائزة الرئيس
أمثلة أخرى
- عدم وجود تسمية عربية وعدم استخدام
|1=
:توصيف يظهر {{Ill-WD2/ملعب| id=Q3402429}}
y
|y=أي قيمة
يستخدم عند الرغبة في إظهار السنة فقط إن كانت موجودة وإن لم تكن موجودة يظهر الوصلة كما هي، تستخدم غالبا في قوالب السباقات مثل : قالب:طواف لومبارديا- مثال بدون استخدام الوسيط :
توصيف يظهر {{Ill-WD2/ملعب| id=Q29456648}}
- مثال يستخدم الوسيط:
توصيف يظهر {{Ill-WD2/ملعب| id=Q29456648| y=true}}
noy
|noy=أي قيمة
يستخدم عكس الوسيط السابق|y=
حيث يقوم بإزالة السنة الموجودة في نهاية التسمية:
توصيف | يظهر |
---|---|
{{Ill-WD2/ملعب| id=Q29456648| noy=t}} |
توصيف | يظهر |
---|---|
{{Ill-WD2/ملعب| id=Q1629020| noy=t}} |
توصيف | يظهر |
---|---|
{{Ill-WD2/ملعب|طواف هوتفار 2011| id=Q1629020| noy=t}} | طواف هوتفار |
ملاحظة
- عند عدم وجود أي وصلات لغات أخرى في عنصر ويكي بيانات لن تظهر
[لغات أخرى]
ولن تظهر وصلة عربية.- وسيتم إضافة الصفحة في: تصنيف:صفحات بها قالب:Ill-WD2 دون وصلات لغات
تصنيفات التتبع
- تصنيف:صفحات بها وصلات إنترويكي (57٬751 صفحة)
- تصنيف:صفحات بها قالب:Ill-WD2 دون وصلات لغات (68٬397 صفحة)
- تصنيف:صفحات بها وصلات للإزالة (1 صفحة)
- تصنيف:وصلات إنترويكي بحاجة لمراجعة (0 صفحة)
وسائط
---@diagnostic disable: undefined-global
local p = {}
local options = {}
local Frame
local RTL = "‏"
local Category = {}
Category["remove"] = " [[تصنيف:صفحات بها وصلات للإزالة]]"
Category["review"] = " [[تصنيف:وصلات إنترويكي بحاجة لمراجعة|%s]]"
Category["nositelinks"] = " [[تصنيف:صفحات بها قالب:Ill-WD2 دون وصلات لغات|%s]]"
Category["add"] = "[[تصنيف:صفحات بها وصلات إنترويكي|%s]]"
function isvalid(x)
if x and x ~= "" then
return x
end
return nil
end
function debug(msg)
if isvalid(options.debug) then
mw.log("Module:Ill-WD2: " .. msg)
end
end
function countSiteLinks()
local numb = 0
local entity = mw.wikibase.getEntityObject(options.id)
if entity and entity.sitelinks then
for i, v in pairs(entity.sitelinks) do
numb = numb + 1
end
end
return numb
end
function sitelink(site)
local site = site or "arwiki"
local link = mw.wikibase.sitelink(options.id, site) or ""
debug("mw.wikibase.sitelink : " .. link)
return link
end
function labelIn(langcode)
local label, lange = mw.wikibase.getLabelWithLang(options.id)
if lange == langcode then
return label
end
debug("label = " .. (label or "") .. "lange = " .. (lange or "") .. "langcode = " .. langcode)
return ""
end
function makeCategory(key)
if key ~= "add" and isvalid(options.nocat) then
return ""
end
return Category[key]
end
function make_noy_text(str, langcode)
if not isvalid(options.noy) then
return str
end
local prefix = langcode == "ar" and "" or "^"
local suffix = langcode == "ar" and "$" or ""
local ca = str:gsub(prefix .. "%d%d%d%d[–-]%d%d%d%d%s*" .. suffix, "")
ca = ca:gsub(prefix .. "%d%d[–-]%d%d%d%d%s*" .. suffix, "")
ca = ca:gsub(prefix .. "%d%d%d%d[–-]%d%d%s*" .. suffix, "")
ca = ca:gsub(prefix .. "%d%d%d%d%s*" .. suffix, "")
debug("ca: " .. ca)
return ca
end
function maketext(String)
if isvalid(options.text) then
debug("text: " .. options.text)
return options.text
end
local String2 = mw.ustring.gsub(String, "–", "-")
if isvalid(options.year) then
return mw.ustring.match(String2, "%d%d%d%d[%–-]%d%d%d%d%s*$", 1) or
mw.ustring.match(String2, "%d%d[%–-]%d%d%d%d%s*$", 1) or
mw.ustring.match(String2, "%d%d%d%d[%–-]%d%d%s*$", 1) or
mw.ustring.match(String2, "%d%d%d%d%s*$", 1) or
mw.ustring.match(String2, "^%d%d%d%d[%–-]%d%d%d%d%s", 1) or
mw.ustring.match(String2, "^%d%d[%–-]%d%d%d%d%s", 1) or
mw.ustring.match(String2, "^%d%d%d%d[%–-]%d%d%s", 1) or
mw.ustring.match(String2, "^%d%d%d%d%s", 1) or
String
end
if isvalid(options.noy) then
local ca = make_noy_text(String, "ar")
return ca == String and make_noy_text(String, "en") or ca
end
return String
end
function make_suffix(target_Site, target_Link, sitelinks_count)
if sitelinks_count == 0 and not isvalid(options.from_lua) then
return string.format(makeCategory("nositelinks"), options.id)
end
local other_lang = """ .. options.id .. "" في لغات أخرى"
other_lang = '<sup class=reference title="' .. other_lang .. '">[لغات أخرى]</sup>'
local other_lang_text = " [[d:" .. options.id .. "#sitelinks-wikipedia|" .. other_lang .. "]]"
local suff =
mw.text.tag(
"span",
{
class = "noprint",
style = "font-size: smaller; font-style: normal; font-weight: normal;"
},
other_lang_text
)
if isvalid(target_Link) and isvalid(target_Site) then
local language = Frame:callParserFunction("#language", target_Site, "ar")
suff =
"[[:" ..
target_Site ..
":" .. target_Link .. '|<sup class=reference title="' .. target_Link .. '">[' .. language .. "]</sup>]]"
end
local suffe = " " .. suff
local text = isvalid(options.from_lua) and string.format(makeCategory("add"), options.id) or ""
return suffe .. text
end
function make_ar_link(title, suffix, sitelinks_count)
local text = maketext(title)
local link
local tit = mw.title.new(title)
local cate = isvalid(options.from_lua) and string.format(makeCategory("review"), options.id) or ""
if sitelinks_count == 0 then
link = text .. suffix
elseif tit and tit.exists then
debug(cate)
link = text .. suffix .. cate
mw.log('review "' .. title .. '", id: ' .. options.id)
else
title = mw.ustring.gsub(title, "^تصنيف:", "")
text = mw.ustring.gsub(text, "^تصنيف:", "")
link = "[[" .. title .. "|" .. text .. "]]" .. suffix
end
debug("link: " .. link)
return link
end
function argument_wrapper(frame)
local args = frame.args
-- merge args with frame:getParent().args
for k, v in pairs(frame:getParent().args) do
if args[k] == nil or args[k] == "" then
args[k] = v
end
end
local origin = {}
local aliases = {
["debug"] = {"debug"},
["en_label"] = {"enlabel"},
["use_en_target"] = {"en"},
["id"] = {"المعرف", "id", 2},
["label"] = {"label", 1},
["target"] = {"target", "لغ"},
["nocat"] = {"nocat"},
["noy"] = {"noy"},
["year"] = {"y"},
["text"] = {"text", "نص"},
["from_lua"] = {"fromlua"}
}
-- iterate over the aliases table
for k, v in pairs(aliases) do
for _, alias in ipairs(v) do
if args[alias] and args[alias] ~= "" then
mw.log("Module:Ill-WD2: alias: " .. alias .. ": for " .. k)
origin[k] = args[alias]
break
end
end
origin[k] = origin[k] or ""
end
-- return the new table with the original argument names
return origin
end
function p.link(frame)
options = argument_wrapper(frame)
Frame = frame:getParent()
local id = options.id
if not isvalid(id) then
return "No ID"
end
local target = options.target
if isvalid(options.use_en_target) then
target = "en"
end
local en_label = options.en_label or (target == "en" and labelIn("en"))
local target_SiteLink = isvalid(target) and sitelink(target .. "wiki") or ""
local SiteLink = mw.wikibase.sitelink(id)
local sitelinks_count = countSiteLinks()
if SiteLink then
local Link = "[[" .. SiteLink .. "|" .. maketext(SiteLink) .. "]]"
mw.log("remove: " .. id)
return Link .. makeCategory("remove") .. RTL
end
local suffix = make_suffix(target, target_SiteLink, sitelinks_count)
local ar_label = labelIn("ar")
local ar_link = isvalid(options.label) and options.label or (isvalid(ar_label) and ar_label)
if isvalid(ar_link) then
debug("ar_link : " .. ar_link)
return make_ar_link(ar_link, suffix, sitelinks_count) .. RTL
elseif isvalid(en_label) then
debug("en_label " .. en_label)
return maketext(en_label) .. make_suffix("", "", sitelinks_count) .. RTL
elseif isvalid(target) and isvalid(target_SiteLink) then
debug("target " .. target .. ": " .. target_SiteLink)
return maketext(target_SiteLink) .. suffix .. RTL
else
debug("nothing en_label: " .. en_label)
return ""
end
end
return p