Mô đun:Road data/strings/USA/CA

--**
To inspect the content of this data module, use Special:ExpandTemplates
and enter the following input text:
module=Module:
To inspect the content of this data module when editing, enter the following
into the Debug console:
local util = require("Module:Road data/util")
print(util.arrayToString(p))
To inspect a particular route type, change `p` above to include the route type,
e.g., `p.I` and `p"US-Hist"`.

**
-- California
local CA = {}
local util = require("Module:Road data/util")
util.addAll(CA, require("Module:Road data/strings/USA"))
local format = mw.ustring.format
local suffix = " (California)"
CA.I.shield = CA"I 1961".shield
CA.I.link = {
	"8" = "Interstate 8",
	"505" = "Interstate 505",
	"605" = "Interstate 605",
	"805" = "Interstate 805",
	"905" = "Interstate 905",
	"710" = "Interstate 710",
	"238" = "Interstate 238",
	"780" = "Interstate 780",
	"980" = "Interstate 980",
	default = {
		hook = "split",
		split = 100,
		above = "Interstate %route% (California)",
		below = "Interstate %route% in California"
	}
}
CA.I.law = "SHC § %section%"
for k, v in pairs(CA) do if k:find ("^I%-") then
	v.shield = CA.I.shield
	v.shieldmain = CA.I.shieldmain
	end
end
for k, v in pairs(CA) do if k:find ("^I") then 
	v.link = CA.I.link
	v.bannersuffix = "blue 1961"
	end
end
CA.BL.shield = "Business Loop %route% (CA).svg"
CA.BL.shieldmain = CA.BL.shield
CA.BL.link = CA.I.base .. " Business" .. suffix
for k, v in pairs(CA) do if k:find ("^B%a") then 
	v.link = CA.BL.link
	v.bannersuffix = "California"
	end
end
-- The 405 Express Lanes do not use the I abbreviation, but others do 
CA"I-Express" = {
	shield = CA.I.shield,
	name = {
		"405" = "405 Express Lanes",
		default = "I-%route% Express Lanes"
	},
	link = {
		-- "10" = "El Monte Busway", - disabled after the 2024 opening of the I-10 San Bernardino Express Lanes  
		"110" = "Harbor Transitway",
		default = CA.I.link
	},
	abbr = {
		"405" = "405 Express Lanes",
		default = "I-%route% Express Lanes"
	},
	bannersuffix = "blue 1961",
	banner = "Express plate.svg" --  Caltrans does not use the yellow express plates, opting instead for white signage
}
-- I-5/SR 14/Newhall Pass and I-5/I-405/Mission Hills use "Truck Route"
-- I-5/SR 99/Wheeler Ridge, I-15/I-215/Devore, and I-580/I-205 instead use "Truck Bypass"
CA"I-Truck".link = "Interstate %route% Truck (California)"
CA"I-Truck".banner = "Truck plate.svg" --  Caltrans does not use the blue truck plates, opting instead for white signage
CA.US.link = {
	"199" = "U.S. Route 199",
	"299" = "U.S. Route 299",
	"399" = "U.S. Route 399",
	"466" = "U.S. Route 466",
	default ="U.S. Route %route% in California"
}
CA.US.law = CA.I.law
CA.US.bannersuffix = "1961"
CA.US.color = {
	"66" = "hist",
	"80" = "hist",
	default = 'USA'
}
CA"US-Express" = {
	shield = CA.US.shield,
	name = "US %route% Express Lanes",
	link = CA.US.link,
	abbr = "US %route% Express Lanes",
	bannersuffix = "1961",
	banner = "Express plate.svg", --  Caltrans does not use the yellow express plates, opting instead for white signage
	width = "expand"
}
CA"US 1926-Alt" = {
	shield = CA"US 1926".shield,
	shieldmain = CA"US 1926".shieldmain,
	name = CA"US-Alt".name,
	link = CA"US-Alt".link,
	abbr = CA"US-Alt".abbr,
	banner = "Alternate plate 1927.svg",
}
CA"US-Alt 1926" = CA"US 1926-Alt"
	     
CA"US 1948-Alt" = {
	shield = CA"US 1948".shield,
	shieldmain = CA"US 1948".shieldmain,
	name = CA"US-Alt".name,
	link = CA"US-Alt".link,
	abbr = CA"US-Alt".abbr,
	banner = "Alternate plate 1948.svg",
	width = "expand"
}
CA"US 1948-Bus" = {
	shield = CA"US 1948".shield,
	shieldmain = CA"US 1948".shieldmain,
	name = CA"US-Bus".name,
	link = CA"US-Bus".link,
	abbr = CA"US-Bus".abbr,
	banner = "Business plate 1948.svg"
}
for _,auxType in ipairs({"Alt", "Bus", "Byp", "Conn", "Detour", "Future", "Old", "Opt", "Scenic", "Spur", "Temp", "Toll", "Truck"}) do
	local spec = CA" aux "auxType
	CA"US-" .. auxType = {
		shield = CA.US.shield,
		name = CA.US.name .. " " .. spec.name,
		link = CA.US.base .. " " .. spec.name .. suffix,
		abbr = CA.US.abbr .. " " .. spec.abbrsuffix,
		banner = spec.bannerprefix .. " plate 1961.svg",
		bannersuffix = "1961",
		aux = spec.aux,
		width = "expand"
	}
end
for k, v in pairs(CA) do if k:find ("^US %d") then
	v.link = CA.US.link
	end
end
CA"US-Hist".link = "Historic " .. CA.US.base .. " (California)"
CA.SR = {
	base = "California State Route %route%",
	shield = "California %route%.svg",
	shieldmain = {
		"162" = {"California %route%.svg", "Forest Route 7.svg"},
		"185" = {"California %route%.svg", "California 77.svg"},
		default = "California %route%.svg"
	},
	name = {
		"162" = "State Route %route% andForest Highway 7",
		"185" = "State Route %route% andState Route 77",
		default = "State Route %route%"
	},
	link = "California State Route %route% ",
	abbr = "SR %route%",
	bannersuffix = "California",
	law = CA.I.law
}
CA.CA = CA.SR
for _,type in ipairs({'SR', 'CA'}) do
	for _,year in ipairs({"1934 S", "1948", "1957"}) do
		CAtype .. " " .. year = {
			shield = format("California %%route%% %s.svg", year),
			name = CA.SR.name.default,
			link = CA.SR.link,
			abbr = CA.SR.abbr,
			bannersuffix = "California"
		}
	end
end
for _,type in ipairs({'SR', 'CA'}) do
	for _,auxType in ipairs({"Alt", "Bus", "Byp", "Conn", "Opt", "Scenic", "Spur", "Temp", "Toll", "Truck"}) do
		local spec = CA" aux "auxType
		CAtype .. "-" .. auxType = {
			shield = CA.SR.shield,
			name = CA.SR.name.default .. " " .. spec.name,
			link = CA.SR.base .. " " .. spec.name .. CA" dab ",
			abbr = CA.SR.abbr .. " " .. spec.abbrsuffix,
			banner = spec.bannerprefix .. " plate California.svg",
			bannersuffix = "California",
			aux = spec.aux,
			width = "expand"
		}
	end
end
CA"SR-Toll".link = {
	"125" = "South Bay Expressway",
	default = CA.SR.link
}
CA"CA-Toll".link = CA"SR-Toll".link
-- The 91 Express Lanes do not use the SR abbreviation, but those in the Bay Area do 
CA"SR-Express" = {
	shield = CA.SR.shield,
	name = {
		"91" = "91 Express Lanes",
		default = "SR %route% Express Lanes"
	},
	link = {
		"91" = "91 Express Lanes",
		default = CA.SR.link
	},
	abbr = {
		"91" = "91 Express Lanes",
		default = "SR %route% Express Lanes"
	},
	bannersuffix = "California",
	banner = "Express plate.svg" --  Caltrans does not use the yellow express plates, opting instead for white signage
}
CA"CA-Express" = CA"SR-Express"
CA"SR-Hist" = {	shield = CA.SR.shield,
	name = "Historic State Route %route%",
	link = "Historic " .. CA.SR.base,
	abbr = "Historic SR %route%",
	bannersuffix = "California",
	banner = "Historic plate California.svg"
	}
CA"CA-Hist" = CA"SR-Hist"
CA.FH.shieldmain = {
	"59" = {"Los Angeles County N3.svg", CA.FH.shield},
	default = CA.FH.shield
}
CA.ISR = {
	shield = {CA.I.shield, CA.SR.shield},
	shieldmain = {CA.I.shieldmain, CA.SR.shield},
	name = CA.I.name .. " and " .. CA.SR.name.default,
	link = CA.I.link,
	abbr = "Route %route%",
	bannersuffix = {"blue 1961", "California"},
	law = CA.I.law
}
-- add new types above this line if you want it to have the state highway browse and maint
for k, v in pairs(CA) do if k:find ("^%a") then
	v.maint = "Caltrans"
	end
end
CA"CA 1934 S".maint = "California Department of Public Works"
CA"CA 1948".maint = CA"CA 1934 S".maint
CA.CR.link = "County Route %route% (California)"
CA.CR.maint = ""
CA"I-OR" = {alias = {module = "USA/OR", type = "I"}}
CA"US-NV" = {alias = {module = "USA/NV", type = "US"}}
CA.AZ = {alias = {module = "USA/AZ", type = "SR"}}
CA.NV = {alias = {module = "USA/NV", type = "SR"}}
CA.OR = {alias = {module = "USA/OR", type = "OR"}}
CA.MEX = {alias = {module = "MEX", type = "FH"}}
CA"US-NV".bannersuffix = "1961"
return CA