پرش به محتوا

پودمان:Jct/city

از ویکی‌پدیا، دانشنامهٔ آزاد
توضیحات پودمان[ایجاد] [پاکسازی]
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