אונטערשייד צווישן ווערסיעס פון "יחידה:עלטער"

2,245 בייטן צוגעלייגט ,  פֿאַר 2 יאָר
קיין רעדאגירונג באמערקונג
אין תקציר עריכה
אין תקציר עריכה
שורה 3: שורה 3:


local Errors = {
local Errors = {
['future-date'] = '[[קאטעגאריע:אומגעהעריגע לעבן-דאטעס]]'
['future-date'] = '[[קאטעגאריע:אומריכטיגע לעבן דאטומען]]'
}
}


שורה 9: שורה 9:
local isValidDate, res = pcall(dateParser.newFromWikitext, Date)
local isValidDate, res = pcall(dateParser.newFromWikitext, Date)
local errors = ''
local errors = ''
if not isValidDate then
if isValidDate and dateParser.age(res).year<0 then
-- invalid date
-- date is in the future
errors = frame:expandTemplate{ title = 'עלטער/בעיה', args = {
['מקורב']=ApproxDate,
['נוסף']=Date,
['מחרוזת']=Date
} }
-- validate
elseif dateParser.age(res)<0 then  
isValidDate = false
isValidDate = false
local title = mw.title.getCurrentTitle()
local title = mw.title.getCurrentTitle()
if title.namespace==0 then
if title.namespace==0 then
errors = Errors['future-date']-- date is in the future
errors = Errors['future-date']
else
else
errors = '<!--' .. Errors['future-date'] .. '-->'
errors = '<!--' .. Errors['future-date'] .. '-->'
end
end
elseif not isValidDate or res.precision < dateParser.PRECISION.YEAR then
-- date is either invalid or is imprecise
isValidDate = false -- mark as invalid anyway, even if "only" imprecise
errors = frame:expandTemplate{ title = 'עלטער/בעיה', args = {
['מקורב']=ApproxDate,
['נוסף']=Date,
['מחרוזת']=Date
} }
end
end
return isValidDate, res, errors
return isValidDate, res, errors
שורה 72: שורה 72:
end
end


function ageCalc(BirthDateStr, DeathDateStr, DisplayForAlive, DisplayForDead, Brackets, ApproxDate)
function ageCalc(BirthDateStr, DeathDateStr, DisplayForAlive, DisplayForDead, Brackets, ApproxDate, gender)
local frame = mw.getCurrentFrame()
local frame = mw.getCurrentFrame()
local warnings = {}
local warnings = {}
שורה 79: שורה 79:
if BirthDateStr == '' then BirthDateStr = nil end
if BirthDateStr == '' then BirthDateStr = nil end
if DeathDateStr == '' then DeathDateStr = nil end
if DeathDateStr == '' then DeathDateStr = nil end
--local entityId = mw.wikibase.getEntityIdForCurrentPage()
wikidataBirth = entityId and mw.wikibase.getBestStatements( entityId, 'P569' )
wikidataBirth = entityId and mw.wikibase.getBestStatements( entityId, 'P569' )
wikidataDeath = entityId and wikidataBirth and mw.wikibase.getBestStatements( entityId, 'P570' )
wikidataDeath = entityId and wikidataBirth and mw.wikibase.getBestStatements( entityId, 'P570' )
שורה 106: שורה 105:
end
end
end
end
-- skip age calculation if we dont have enough precision
if BirthDate.precision < dateParser.PRECISION.YEAR then return nil end
local DeathDate
local DeathDate
שורה 117: שורה 119:
table.insert(warnings, '[[קאטעגאריע:דפים עם שנות חיים שלא תואמים את ויקינתונים]]')
table.insert(warnings, '[[קאטעגאריע:דפים עם שנות חיים שלא תואמים את ויקינתונים]]')
end
end
prefix = 'אלט '  
prefix = 'אלט'  
else
else
--if (age_string) then
if gender == nil and entityId~=nil then
-- prefix = age_string..'&nbsp;'
local PropertyLink = require('Module:PropertyLink')
--else
gender = PropertyLink.getItem( 'P21', entityId )
-- prefix = frame:expandTemplate{ title = 'לפי מגדר/בדוק', args = { 'בן&nbsp;', 'בת&nbsp;' } }
if (gender == "Q6581097") then -- male
--end
gender = 'זכר'
                prefix = 'אלט '  
elseif (gender == "Q2449503") then -- transgender male
gender = 'זכר'
elseif (gender == "Q15145778") then -- cisgender male
gender = 'זכר'
elseif (gender == "Q6581072") then -- female
gender = 'נקבה'
elseif (gender == "Q1052281") then -- transgender female
gender = 'נקבה'
elseif (gender == "Q15145779") then -- cisgender female
gender = 'נקבה'
end
end
prefix = 'גיל:&nbsp;'
if gender == 'נקבה' then
prefix = 'בת&nbsp;'
elseif gender == 'זכר' then
prefix = 'בן&nbsp;'
end
end
end
-- skip age calculation if we dont have enough precision
if DeathDate and DeathDate.precision and DeathDate.precision < dateParser.PRECISION.YEAR then return nil end
local success, Age = pcall(dateParser.age, BirthDate , DeathDate)
local success, AgeYears = pcall(dateParser.age, BirthDate , DeathDate)
if success then
if success then
if AgeYears == 1 then
AgeYears = Age.year
result = prefix..'שנה'
if Age.year <= 0 then
elseif AgeYears == 2 then
if Age.month == 1 then
result = prefix..'שנתיים'
result = prefix..'חודש'
elseif Age.month == 2 then
result  = prefix..'חודשיים'
else
result = prefix..tostring(Age.month)..' חודשים'
end
if Age.day > 0 then
if Age.day == 1 then
result = result..' ויום'
elseif Age.day == 2 then
result = result..' ויומיים'
else
result = result..'  ו־'..tostring(Age.day)..' ימים'
end
end
elseif Age.year < 3 then
if Age.year == 1 then
result = prefix..'שנה'
elseif Age.year == 2 then
result = prefix..'שנתיים'
end
if Age.month == 0 then
if Age.day > 0 then
if Age.day == 1 then
result = result..' ויום'
elseif Age.day == 2 then
result = result..' ויומיים'
else
result = result..'  ו־'..tostring(Age.day)..' ימים'
end
end
elseif Age.month == 1 then
result = result..' וחודש'
elseif Age.month == 2 then
result  = result..' וחודשיים'
else
result = result..' ו־'..tostring(Age.month)..' חודשים'
end
else
else
result = prefix..tostring(AgeYears)
result = prefix..tostring(Age.year)
end
end
if BirthDate.precision < dateParser.PRECISION.MONTH or (DeathDate and DeathDate.precision < dateParser.PRECISION.MONTH) then
if BirthDate.precision < dateParser.PRECISION.MONTH or (DeathDate and DeathDate.precision < dateParser.PRECISION.MONTH) then
שורה 143: שורה 204:
end
end
-- ignore warning in specific template
local noAgeWarning = false
if mw.getCurrentFrame():getParent():getTitle() == 'תבנית:אישיות תנ"כית' then
noAgeWarning = true
end
local title = mw.title.getCurrentTitle()
local title = mw.title.getCurrentTitle()
-- ignore warning in other namespace except the main NS
-- ignore warning in other namespace except the main NS
if title.namespace==0 then
if title.namespace==0 and not noAgeWarning then
if AgeYears > 139 then  
if AgeYears > 139 then  
table.insert(warnings, Errors['future-date'])
table.insert(warnings, Errors['future-date'])
elseif AgeYears>109 then  
elseif AgeYears>109 then  
table.insert(warnings, '[[קאטעגאריע:הונדערט-און-צען-יעריגער]]')
table.insert(warnings, '[[קאטעגאריע:מענטשן וואס זענען אנגעקומען צו די 110]]')
elseif AgeYears>99 then
elseif AgeYears>99 then
table.insert(warnings, '[[קאטעגאריע:הונדערט-יעריגער]]')
table.insert(warnings, '[[קאטעגאריע:מענטשן וואס זענען אנגעקומען צו די הונדרעט]]')
end
end
end
end