local p = {}
local convert_num = require('Module:Numeral converter').convert
local concat = table.concat
local insert = table.insert
local state
local function stateName(args)
local AUSabbrs = {NT = "قلمرو شمالی", WA = "استرالیای غربی"}
local data = mw.loadData("Module:Jct/statename")
local abbr = args.state or args['ایالت'] or args.province or args['استان']
local country = args.country or args['کشور']
if country == 'AUS' then
return AUSabbrs[abbr] or data[abbr]
else
return data[abbr]
end
end
local function location(args, num)
local city = args["city" .. num] or args['شهر' .. convert_num('fa', num)]
local location = args["location" .. num] or args['موقعیت' .. convert_num('fa', num)]
local areadab = args["areadab" .. num] or args['ابهامزدایی ناحیه' .. convert_num('fa', num)]
local countydab = args["countydab" .. num] or args['ابهامزدایی شهرستان' .. convert_num('fa', num)]
if not(city or location) then
return ''
end
local parts
if num == 1 then
parts = {" – "}
else
parts = {"، "}
end
if location then
insert(parts, location)
return concat(parts)
end
insert(parts, "[[" .. city)
if areadab then
insert(parts, " (" .. areadab .. ")")
end
if countydab then
insert(parts, "، شهرستان " .. countydab)
end
if state then
insert(parts, "، " .. state)
end
insert(parts, "|" .. city .. "]]")
return concat(parts)
end
function p.city(args)
state = stateName(args)
local cities = {}
local locationCount = 1
repeat
local location = location(args, locationCount)
insert(cities, location)
local empty = (location == '')
locationCount = locationCount + 1
until empty
return concat(cities)
end
return p