Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Aircraft by nationality
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local p = {} --Similar to {{LinkCatIfExists2}}: make a piped link to a category, if it exists; --if it doesn't exist, just display the greyed link title without linking function catlink( name, disp ) name = mw.text.trim(name or '') disp = mw.text.trim(disp or '') local grey = '#888' local exists = mw.title.new( name, 'Category' ).exists if exists then return '[[:Category:'..name..'|'..disp..']]' else return '<span style="color:'..grey..'">'..disp..'</span>' end end --checks for existance & returns tracking [[Category:Aircraft catnav missing parent]] if missing function checkparent( colon, name, sortkey ) local exists = mw.title.new( name, 'Category' ).exists if not exists then return '[['..colon..'Category:Aircraft catnav missing parent|'..sortkey..']]' end return '' end --[[==========================================================================]] --[[ Main ]] --[[==========================================================================]] function p.catnav( frame ) local currtitle = mw.title.getCurrentTitle() local namespace = currtitle.nsText local testcases = (currtitle.subpageText == 'testcases') local colon = '' if namespace ~= 'Category' then colon = ':' end local args = frame:getParent().args local nation = args['nation'] --live {{Template}} -- local nation = frame.args['nation'] --direct {{#invoke:}} from cat local pagename = currtitle.baseText local trackingcats = { '', --[1] placeholder for [[Category:Aircraft catnav missing parameter]] (civ/mil) '', --[2] placeholder for [[Category:Aircraft catnav missing parent]] (civ/mil/air) '', --[3] placeholder for [[Category:Aircraft catnav failed to generate navbox]] !(civ/mil/air) } local parentcats = { '', --[1] placeholder for [[Category:Aircraft manufactured in {{{nation}}}]] (civ) or -- [[Category:International aircraft]] (mil) -- [[Category:Aircraft by country]] (air) '', --[2] placeholder for [[Category:Civil aircraft]] (civ) or -- [[Category:Military aircraft by country]] (mil) -- [[Category:Aircraft in <nation>]] (air) } local countries = { -- { 'the Country Name', 'Adjectival' }, -- 'the' gets removed as needed { 'Algeria', 'Algerian' }, { 'Argentina', 'Argentine' }, { 'Australia', 'Australian' }, { 'Austria', 'Austrian' }, { 'Austria and Austria-Hungary', 'Austrian and Austro-Hungarian' }, --[[Category:Austrian and Austro-Hungarian civil aircraft]] { 'Belgium', 'Belgian' }, { 'Brazil', 'Brazilian' }, { 'Bulgaria', 'Bulgarian' }, { 'Canada', 'Canadian' }, { 'Chile', 'Chilean' }, { 'China', 'Chinese' }, { 'Colombia', 'Colombian' }, { 'Cyprus', 'Cypriot' }, { 'the Czech Republic and Czechoslovakia', 'Czech and Czechoslovakian' }, { 'Denmark', 'Danish' }, { 'Egypt', 'Egyptian' }, { 'Estonia', 'Estonian' }, { 'Finland', 'Finnish' }, { 'France', 'French' }, { 'Georgia (country)', 'Georgian' }, --only 1 [[WP:AIR]] adj precedent: [[Category:Georgian aircraft designers]] (doesn't disambig) { 'East Germany', 'East German' }, { 'Germany', 'German' }, { 'Greece', 'Greek' }, { 'Hungary', 'Hungarian' }, { 'India', 'Indian' }, { 'Indonesia', 'Indonesian' }, { 'Iran', 'Iranian' }, { 'Israel', 'Israeli' }, { 'Italy', 'Italian' }, { 'Japan', 'Japanese' }, { 'Jordan', 'Jordanian' }, { 'Latvia', 'Latvian' }, { 'Lithuania', 'Lithuanian' }, { 'Malaysia', 'Malaysian' }, { 'Mexico', 'Mexican' }, { 'the Netherlands', 'Dutch' }, { 'New Zealand', 'New Zealand' }, { 'Norway', 'Norwegian' }, { 'the State of Palestine', 'Palestinian' }, { 'Pakistan', 'Pakistani' }, { 'Peru', 'Peruvian' }, { 'the Philippines', 'Philippine' }, { 'Poland', 'Polish' }, { 'Portugal', 'Portuguese' }, { 'the Republic of China', 'Republic of China' }, { 'Romania', 'Romanian' }, { 'Russia', 'Russian' }, { 'Saudi Arabia', 'Saudi Arabian' }, { 'Singapore', 'Singaporean' }, --[[Category:Singaporean military aircraft]] { 'Slovakia', 'Slovak' }, { 'Slovenia', 'Slovenian' }, { 'South Africa', 'South African' }, { 'South Korea', 'South Korean' }, { 'the Soviet Union', 'Soviet Union' }, { 'Soviet Union and CIS', 'Soviet and Russian' }, { 'Spain', 'Spanish' }, { 'Sweden', 'Swedish' }, { 'Switzerland', 'Swiss' }, { 'Taiwan', 'Taiwanese' }, { 'Thailand', 'Thai' }, { 'Turkey', 'Turkish' }, { 'the United Arab Emirates', 'Emirati' }, { 'the United Kingdom', 'British' }, { 'the United States', 'United States' }, { 'Ukraine', 'Ukrainian' }, { 'Vietnam', 'Vietnamese' }, { 'Yugoslavia', 'Yugoslav' }, { 'Yugoslavia and Serbia', 'Yugoslav and Serbian' }, } --determine category type local nation_airtitle = nil --autodetected from air title local adj, civmilair = string.match(pagename, '^(.+) (civil) aircraft$') --assume civ if civmilair == nil then adj, civmilair = string.match(pagename, '^(.+) (military) aircraft$') --mil end if civmilair == nil then civmilair, nation_airtitle = string.match(pagename, '^(Aircraft) manufactured in ([^%/]+)$') --air end if civmilair == nil then civmilair = string.match(pagename, '^(International) aircraft$') --int (special case) end if civmilair == nil then if namespace == 'Category' or testcases then trackingcats[3] = '[['..colon..'Category:Aircraft catnav failed to generate navbox]]' end return table.concat(trackingcats) end local CivMilAir = civmilair:gsub("^%l", string.upper) --proceed according to category type local civmil = (civmilair ~= 'Aircraft' and civmilair ~= 'International') if civmil then --if {{{nation}}} DNE, find it via the title adjective if nation == nil or (nation and nation == '') then for _, kv in pairs (countries) do if kv[2] == adj then nation = kv[1] break end end end --tracking cats 1 & 2; parent cat 1 if nation == nil or (nation and nation == '') then trackingcats[1] = '[['..colon..'Category:Aircraft catnav missing parameter|N]]' elseif nation == 'International' then local basename = 'International aircraft' --static: no check/tracking needed if CivMilAir == 'Civil' then parentcats[1] = '[['..colon..'Category:'..basename..'|Civil]]' else parentcats[1] = '[['..colon..'Category:'..basename..'|Military aircraft, International]]' end else local basename = 'Aircraft manufactured in '..nation trackingcats[2] = checkparent(colon, basename, 'Q') parentcats[1] = '[['..colon..'Category:'..basename..'| '..CivMilAir..' aircraft, '..nation..']]' end --parent 2 static: no check/tracking needed if CivMilAir == 'Civil' then parentcats[2] = '[['..colon..'Category:Civil aircraft]]' else parentcats[2] = '[['..colon..'Category:Military aircraft by country]]' end elseif civmilair == 'Aircraft' then if nation == nil or (nation and nation == '') then nation = nation_airtitle --use title if {{{nation}}} DNE end --air parent 1 local nation_sortkey = string.gsub(nation, '^the ', '') parentcats[1] = '[['..colon..'Category:Aircraft by country|'..nation_sortkey..']]' --static: no check/tracking needed --air tracking/parent 2 local basename = 'Aviation in '..nation trackingcats[2] = checkparent(colon, basename, 'R') --TODO: update cat description text & inc {{Milairnd}} sortkeys parentcats[2] = '[['..colon..'Category:'..basename..'|Aircraft]]' else --if civmilair == 'International' then parentcats[1] = '[['..colon..'Category:Aircraft by country| ]]' --static: no check/tracking needed end local heading1 = CivMilAir..' aircraft' --assume civmil local heading2 = civmilair..' aircraft' --assume civmil if not civmil then heading1 = 'Aircraft' heading2 = 'aircraft' end local sep = ' β’ ' local catnav = '{| class="toccolours" cellpadding="2" cellspacing="0" style="margin:3px auto; border: 1px solid; font-size:95%; align="center"\n'.. '|-\n'.. '| style="text-align:center;" |\n'.. "'''"..heading1.." by nationality of original manufacturer'''<br/> ".. '[[:Category:International '..heading2..'|International joint ventures]]<br/>' for _, kv in pairs (countries) do local the_c = kv[1] local a = kv[2] local c = (string.gsub(the_c, '^the ', '')) local basename = a..' '..civmilair..' aircraft' --assume civmil if not civmil then basename = 'Aircraft manufactured in '..the_c end catnav = catnav..catlink(basename, c)..sep end catnav = mw.text.trim(catnav, sep) catnav = catnav..'\n'.. '|}\n'.. '<br/>' return catnav..table.concat(trackingcats)..table.concat(parentcats) end return p
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Aircraft by nationality/doc
(
edit
)
Module:Aircraft by nationality/doc
(
edit
)