Module:Localized name

local p = {} local gameShortenedModule = require("Module:GameShortened") local flagModule = require("Module:Flag")

local function getGameShortened(game, default) return gameShortenedModule.getGame(game, default) end

local function getFlag(country) return flagModule.getFlag(country, "20x20") end

-- Function to handle a single language entry in the table -- t: the table to append -- args: the frame args which includes the Meaning and Romanized values if applicable -- languageTitle: the Title Case description of the language -- wikiParameter: the base wiki parameter (without M and R) for the language we are handling -- flagParameter: the two letter lower-case code for this language -- htmlLanguageCode: the language code used in HTML for this language. Reference: local function handleLanguage(t, args, languageTitle, wikiParameter, flagParameter, htmlLanguageCode) if args[wikiParameter] and args[wikiParameter] ~= '' then local flag = getFlag(flagParameter) if not flag then flag = "" end

local htmlLang = htmlLanguageCode or wikiParameter or "" local name = args[wikiParameter] or "Unnamed language (" .. wikiParameter .. ")" local romanized = "" if args[wikiParameter .. "R"] and args[wikiParameter .. "R"] ~= "" then romanized = " ''" .. args[wikiParameter .. "R"] .. "''"       end

local meaning = "" if args[wikiParameter .. "M"] and args[wikiParameter .. "M"] ~= "" then meaning = args[wikiParameter .. "M"] end

table.insert(t, "|-") table.insert(t, "|" .. flag .. " " .. languageTitle .. "|||" .. name .. " " .. romanized .. "|||" .. meaning) end end

function p.main(frame) local args = frame:getParent.args return p.localizedName(args) end

function p.localizedName(args) local colorClass = "generic" if args["color"] and args["color"] ~= '' then colorClass = mw.ustring.lower(getGameShortened(args["color"], "generic")) or "generic" end local t = {} mw.logObject(colorClass) table.insert(t, '{| class="wikitable sitecolor-' .. colorClass .. '" style="min-width: 25%;')   if args["title"] then        table.insert(t, "|+" .. args.title)    end

table.insert(t, "!" .. (args["column-1"] or "Language")) table.insert(t, "!" .. (args["column-2"] or "Name")) table.insert(t, "!" .. (args["column-3"] or "Meaning"))

-- Handle each language handleLanguage(t, args, "Japanese", "Jap", "jp", "ja") handleLanguage(t, args, "Dutch", "Dut", "nl", "nl") handleLanguage(t, args, "French", "Fra", "cafr", "fr") handleLanguage(t, args, "French (NOA)", "FraA", "ca", "fr-ca") handleLanguage(t, args, "French (NOE)", "FraE", "fr", "fr-fr") handleLanguage(t, args, "French", "Fre", "cafr", "fr") handleLanguage(t, args, "French (NOA)", "FreA", "ca", "fr-ca") handleLanguage(t, args, "French (NOE)", "FreE", "fr", "fr-fr") handleLanguage(t, args, "German", "Ger", "de", "de") handleLanguage(t, args, "Italian", "Ita", "it", "it") handleLanguage(t, args, "Russian", "Rus", "ru", "ru") handleLanguage(t, args, "Spanish", "Spa", "esmx", "es") handleLanguage(t, args, "Spanish (NOA)", "SpaA", "mx", "es-mx") handleLanguage(t, args, "Spanish (NOE)", "SpaE", "es", "es-es") handleLanguage(t, args, "Chinese", "Chi", "cn", "zh") handleLanguage(t, args, "Chinese (Simplified)", "ChiS", "cn", "zh-Hans") handleLanguage(t, args, "Chinese (Traditional)", "ChiT", "hk", "zh-Hant") handleLanguage(t, args, "Czech", "Cze", "cz", "cs") handleLanguage(t, args, "Danish", "Dan", "da", "da") handleLanguage(t, args, "Finnish", "Fin", "fi", "fi") handleLanguage(t, args, "Hungarian", "Hun", "hu", "hu") handleLanguage(t, args, "Korean", "Kor", "kr", "ko") handleLanguage(t, args, "Norwegian", "Nor", "no", "no") handleLanguage(t, args, "Polish", "Pol", "pl", "pl") handleLanguage(t, args, "Portuguese", "Por", "pt", "pt") handleLanguage(t, args, "Portuguese (NOA)", "PorA", "br", "pt-br") handleLanguage(t, args, "Portuguese (NOE)", "PorE", "pt", "pt-pt") handleLanguage(t, args, "Swedish", "Swe", "se", "sv")

-- Internal is a bit different because there's no code or flag if args["Internal"] then table.insert(t, "|-") table.insert(t, "| Internal|||" .. args["Internal"] .. " |||" .. (args["InternalM"] or "")) end

return table.concat(t, "\n") .. "\n|}" end

return p