Mô đun:Infobox road/locations

local p = {}
local function countries(args, country)
local data = {EUR = "no", ASIA = "no", default = "yes"}
local yesOrNo = datacountry or data.default
if yesOrNo == "no" then
return args.countries
else
return nil
end
end
local function regions(args, country)
	local data = {EUR = "no", ESP = "no", ITA = "no", HRV = "no", CZE = "no", CAN = "no", CYP = "no", GRC = "no", POL = "no", HUN = "no",
	              SVN = "no", SVK = "no", AUT = "no", TUR = "no", UKR = "no", BIH = "no", SRB = "no", SGP = "no", AUS = "no", default = "yes"}
	if args.communities then
		return "Cộng đồng tự trị:", args.communities
	end
	local yesOrNo = datacountry or data.default
	if yesOrNo == "no" then
		return "Vùng:", args.regions
	else
		return "Vùng:", nil
	end
end
local function states(args, country)
local data = {USA = "no", IND = "no", DEU = "no", AUT = "no", MEX = "no", AUS = "no", BRA = "no", default = "yes"}
local yesOrNo = datacountry or data.default
if yesOrNo == "no" then
return args.states
else
return nil
end
end
local function provinces(args, country)
local data = {CAN = "no", TUR = "no", THA = "no", IRN = "no", NLD = "no", ESP = "no", PHL = "no", default = "yes"}
local yesOrNo = datacountry or data.default
if yesOrNo == "no" then
return args.provinces
else
return nil
end
end
local function counties(args, country)
local counties = args.counties
local districts = args.districts
local municipalities = args.municipalities
local parishes = args.parishes
local boroughs = args.boroughs
if counties then
return "Hạt", counties
elseif districts then
return "Huyện", districts
elseif municipalities then
return "Đô thị", municipalities
elseif parishes then
return "Giáo xứ", parishes
elseif boroughs then
return "Các quận", boroughs
else
return , nil
end
end
local function ruralMunis(args, country)
local label
local province = country or 
if province == "AB" then
label = "Các đô thịchuyên ngành vànông thôn"
else
label = "Đô thịnông nghiệp"
end
local data = {MB = "no", SK = "no", AB = "no", default = "yes"}
local yesOrNo = dataprovince or data.default
if yesOrNo == "no" then
return label, args.rural_municipalities
else
return , nil
end
end
local function divisions(args, country)
local province = country or 
local data = {ON = "no", default = "yes"}
local yesOrNo = dataprovince or data.default
if yesOrNo == "no" then
return args.divisions
else
return nil
end
end
local function cities(args, country, parameter)
local data = {USA = "yes", default = "no"}
local yesOrNo = datacountry or data.default
if yesOrNo == "no" then
return argsparameter
else
return nil
end
end
local function destinations(args, country)
local label
if country == "GBR" then
label = "Các điểm đến chính"
else
label = "Các điểm đến chính"
end
local data = {AUS = "no", NZL = "no", GBR = "no", IRL = "no", MYS = "no", IND = "no", NPL = "no", default = "yes"}
local yesOrNo = datacountry or data.default
if yesOrNo == "no" then
return label, args.destinations
else
return , nil
end
end
local function lga(args, country)
local labels = {SA = "LGA(s)", VIC = "LGA(s)", NSW = "LGA(s)",
QLD = "LGA(s)", NT = "LGA(s)",
WA = "LGA(s)", TAS = "LGA(s)", ACT = "Quận"}
local data = {AUS = "no", default = "yes"}
local yesOrNo = datacountry or data.default
if yesOrNo == "no" then
local state = args.state or 
local label = labelsstate or "LGA(s)"
return label, args.lga
else
return , nil
end
end
local function locations(args, country)
local labels = {highway = "Các khu định cư chính", "rural road" = "Các khu định cư chính", freeway = "Vùng ngoại ô chính", "city highway" = "Vùng ngoại ô chính", road = "Vùng ngoại ô chính", street = "Ngoại ô"}
local data = {AUS = "no", default = "yes"}
local yesOrNo = datacountry or data.default
if yesOrNo == "no" then
local type = args.type or 
local label = labelstype or "Các điểm đến chính"
return label, args.locations
else
return , nil
end
end
function p.locations(frame)
local pframe = frame:getParent()
local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself
local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template

local parameters = {label1 = "Các quốc gia", label3 = "Tiểu bang", label4 = "Tỉnh", label7 = "Đơn vị hành chính", label8 = "Các thành phố chính",
label9 = "Thị trấn", label10 = "Làng", child = "yes", decat = "yes", labelstyle = "text-align:right", title = "Vị trí"}
local data = {}

local function emptyParam(param)
if param ==  then
return nil
else
return param
end
end
local country = emptyParam(args.country)
local state = emptyParam(args.state)
local province = emptyParam(args.province)
if not(country) then
local stateParam = args.state or args.province
if not(stateParam) then
country = 
else
local countryMask = require "Mô đun:Infobox road/meta/mask/country"
country = countryMask._country(stateParam, country)
end
end
data1 = countries(args, country)
parameters.label2, data2 = regions(args, country)
data3 = states(args, country)
data4 = provinces(args, country)
parameters.label5, data5 = counties(args, country)
parameters.label6, data6 = ruralMunis(args, province)
data7 = divisions(args, province)
data8 = cities(args, country, 'cities')
data9 = cities(args, country, 'towns')
data10 = cities(args, country, 'villages')
parameters.label11, data11 = destinations(args, country)
parameters.label12, data12 = lga(args, country)
parameters.label13, data13 = locations(args, country)

local hasData = false
for k,v in pairs(data) do
if v ~=  then
hasData = true
break
end
end
if not(hasData) then
return 
end

for k,v in pairs(data) do
parameters"data" .. k = v
end

local infoboxModule = require 'Mô đun:Infobox'
return infoboxModule.infobox(parameters)
end
return p