Module:Names
Purpose
Template used to document the names or titles of pieces of media and subjects found in other languages or regions, as well as the name's meaning or translation, by specifying the language's ISO 639-1 code. This template is to be placed in Nomenclature sections.
Usage
Parameters for using Template:Exp, Template:Exp App, and ref
tags are labeled with E
. Parameters for romanizations (for languages with a non-Latin script) are labeled with R
. Parameters for name meanings are labeled with M
. If a language parameter is left blank or omitted, it will be skipped in the table.
This template also supports regional dialects (such as European Spanish and Latin American Spanish); these should only be used if a name or title differs between regions. I.e. if a media only has one regional localization, or if a subject's name or title is identical between regions, use the neutral language parameter.
This template also supports an arbitrary amount of names by putting numbers after the language code and, if applicable, after E
, R
, or M
. These names will get their own rows. For the first row, the number 1
is optional; that is to say, both ja
and ja1
work, for example. If both are specified, the unnumbered one takes priority.
{{Names |en=English |enM= |enBr=British English |enBrM= |enAu=Australian English |enAuM= |ja=Japanese |jaR= |jaM= |zhS=Simplified Chinese |zhSR= |zhSM= |zhT=Traditional Chinese |zhTR= |zhTM= |fr=French |frM= |frC=Canadian French |frCM= |frF=French of France |frFM= |de=German |deM= |it=Italian |itM= |ko=Korean |koM= |pl=Polish |plM= |pt=Portuguese |ptM= |ptB=Brazilian Portuguese |ptBM= |ptP=European Portuguese |ptPM= |ru=Russian |ruM= |es=Spanish |esM= |esS=European Spanish |esSM= |esL=Latin American Spanish |esLM= |tl=Tagalog |tlM= |tr=Turkish |trM= }}
Code
Minimal code
{{Names |ja= |jaR= |jaM= |zhS= |zhSR= |zhSM= |zhT= |zhTR= |zhTM= |fr= |frM= |de= |deM= |it= |itM= |ko= |koR= |koM= |es= |esM= }}
All supported languages
{{Names |en= |enM= |enBr= |enBrM= |enAu= |enAuM= |ja= |jaR= |jaM= |zhS= |zhSM= |zhT= |zhTM= |fr= |frM= |frC= |frCM= |frF= |frFM= |de= |deM= |it= |itM= |ko= |koR= |koM= |pl= |plM= |pt= |ptM= |ptB= |ptBM= |ptP= |ptPM= |ru= |ruM= |es= |esM= |esS= |esSM= |esL= |esLM= |tl= |tlM= |tr= |trM= }}
All supported languages with all fields
{{Names |en= |enE= |enM= |enBr= |enBrE= |enBrM= |enAu= |enAuE= |enAuM= |ja= |jaE= |jaR= |jaM= |zhS= |zhSE= |zhSR= |zhSM= |zhT= |zhTE= |zhTR= |zhTM= |fr= |frE= |frM= |frC= |frCE= |frCM= |frF= |frFE= |frFM= |de= |deE= |deM= |it= |itE= |itM= |ko= |koE= |koR= |koM= |pl= |plE= |plM= |pt= |ptE= |ptM= |ptB= |ptBE= |ptBM= |ptP= |ptPE= |ptPM= |ru= |ruE= |ruR= |ruM= |es= |esE= |esM= |esS= |esSE= |esSM= |esL= |esLE= |esLM= |tl= |tlE= |tlM= |tr= |trE= |trM= }}
All supported languages with all fields and two names for each
{{Names |en= |enE= |enM= |en2= |enE2= |enM2= |enBr= |enBrE= |enBrM= |enBr2= |enBrE2= |enBrM2= |enAu= |enAuE= |enAuM= |enAu2= |enAuE2= |enAuM2= |ja= |jaE= |jaR= |jaM= |ja2= |jaE2= |jaR2= |jaM2= |zhS= |zhSE= |zhSR= |zhSM= |zhS2= |zhSE2= |zhSR2= |zhSM2= |zhT= |zhTE= |zhTR= |zhTM= |zhT2= |zhTE2= |zhTR2= |zhTM2= |fr= |frE= |frM= |fr2= |frE2= |frM2= |frC= |frCE= |frCM= |frC2= |frCE2= |frCM2= |frF= |frFE= |frFM= |frF2= |frFE2= |frFM2= |de= |deE= |deM= |de2= |deE2= |deM2= |it= |itE= |itM= |it2= |itE2= |itM2= |ko= |koE= |koR= |koM= |ko2= |koE2= |koR2= |koM2= |pl= |plE= |plM= |pl2= |plE2= |plM2= |pt= |ptE= |ptM= |pt2= |ptE2= |ptM2= |ptB= |ptBE= |ptBM= |ptB2= |ptBE2= |ptBM2= |ptP= |ptPE= |ptPM= |ptP2= |ptPE2= |ptPM2= |ru= |ruE= |ruR= |ruM= |ru2= |ruE2= |ruR2= |ruM2= |es= |esE= |esM= |es2= |esE2= |esM2= |esS= |esSE= |esSM= |esS2= |esSE2= |esSM2= |esL= |esLE= |esLM= |esL2= |esLE2= |esLM2= |tl= |tlE= |tlM= |tl2= |tlE2= |tlM2= |tr= |trE= |trM= |tr2= |trE2= |trM2= }}
Examples
Names in Japanese and other regions
{{Names |en=Shin Megami Tensei: Nocturne |enM= |enBr=Shin Megami Tensei: Lucifer's Call |enBrM= |ja=真・女神転生III-NOCTURNE マニアクス |jaR=Shin Megami Tensei Surī Nokutān Maniakusu |jaM=Shin Megami Tensei III: Nocturne Maniax }}
Language | Name | Meaning |
---|---|---|
English | Shin Megami Tensei: Nocturne | |
British English | Shin Megami Tensei: Lucifer's Call | |
Japanese | 真・女神転生III-NOCTURNE マニアクス Shin Megami Tensei Surī Nokutān Maniakusu | Shin Megami Tensei III: Nocturne Maniax |
Multiple names for the same language, with explanatory notes
{{Names |en=Jack Frost |en2=J. Frost |enE2={{Exp App|DKLD}} |ja=ジャクフロスト |jaE={{Exp App|MT2}} |jaR=Jaku furosuto |jaM=Jack Frost |ja2=ジャックフロスト |jaR2=Jakku furosuto |jaM2=Jack Frost |ja3=ジャック・オ・フロスト |jaE3={{Exp App|GMT}} |jaR3=Jakku o furosuto |jaM3=Jack-o'-Frost }}
Language | Name | Meaning |
---|---|---|
English | Jack Frost | |
J. FrostDemiKids Light Version and Dark Version | ||
Japanese | ジャクフロストDigital Devil Story: Megami Tensei II Jaku furosuto |
Jack Frost |
ジャックフロスト Jakku furosuto | Jack Frost | |
ジャック・オ・フロストGiten Megami Tensei: Tokyo Revelation Jakku o furosuto |
Jack-o'-Frost |
local getArgs = require('Module:Arguments').getArgs local p = {} function p.main(frame) local args = getArgs(frame) local languageList = { "en", "enBr", "enAu", "ja", "zhS", "zhT", "fr", "frC", "frF", "de", "it", "ko", "pl", "pt", "ptB", "ptP", "ru", "es", "esS", "esL", "tl", "tr" } local languages = { ["en"] = { label = frame:expandTemplate{ title = "Flag", args = { "US" } } .. " English", ietf = "en", ietfRoman = "en" }, ["enBr"] = { label = frame:expandTemplate{ title = "Flag", args = { "GB" } } .. " British English", ietf = "en-GB", ietfRoman = "en-GB" }, ["enAu"] = { label = frame:expandTemplate{ title = "Flag", args = { "AU" } } .. " Australian English", ietf = "en-AU", ietfRoman = "en-AU" }, ["ja"] = { label = frame:expandTemplate{ title = "Flag", args = { "JP" } } .. " Japanese", ietf = "ja", ietfRoman = "ja-Latn-hepburn" }, ["zhS"] = { label = frame:expandTemplate{ title = "Flag", args = { "CN" } } .. " Simplified Chinese", ietf = "zh-Hans", ietfRoman = "zh-Latn-pinyin" }, ["zhT"] = { label = frame:expandTemplate{ title = "Flag", args = { "TW" } } .. '<span style="font-size:smaller"> </span>' .. frame:expandTemplate{ title = "Flag", args = { "HK" } } .. '<span style="font-size:smaller"> </span>' .. frame:expandTemplate{ title = "Flag", args = { "MO" } } .. " Traditional Chinese", ietf = "zh-Hant", ietfRoman = "zh-Latn-pinyin" }, ["fr"] = { label = frame:expandTemplate{ title = "Flag", args = { "FR" } } .. " French", ietf = "fr", ietfRoman = "fr" }, ["frC"] = { label = frame:expandTemplate{ title = "Flag", args = { "CA" } } .. " Canadian French", ietf = "fr-CA", ietfRoman = "fr-CA" }, ["frF"] = { label = frame:expandTemplate{ title = "Flag", args = { "FR" } } .. " Metropolitan French", ietf = "fr-FR", ietfRoman = "fr-FR" }, ["de"] = { label = frame:expandTemplate{ title = "Flag", args = { "DE" } } .. " German", ietf = "de", ietfRoman = "de" }, ["it"] = { label = frame:expandTemplate{ title = "Flag", args = { "IT" } } .. " Italian", ietf = "it", ietfRoman = "it" }, ["ko"] = { label = frame:expandTemplate{ title = "Flag", args = { "KR" } } .. " Korean", ietf = "ko", ietfRoman = "ko-Latn" }, ["pl"] = { label = frame:expandTemplate{ title = "Flag", args = { "PL" } } .. " Polish", ietf = "pl", ietfRoman = "pl" }, ["pt"] = { label = frame:expandTemplate{ title = "Flag", args = { "PT" } } .. " Portuguese", ietf = "pt", ietfRoman = "pt" }, ["ptB"] = { label = frame:expandTemplate{ title = "Flag", args = { "BR" } } .. " Brazilian Portuguese", ietf = "pt-BR", ietfRoman = "pt-BR" }, ["ptP"] = { label = frame:expandTemplate{ title = "Flag", args = { "PT" } } .. " European Portuguese", ietf = "pt-PT", ietfRoman = "pt-PT" }, ["ru"] = { label = frame:expandTemplate{ title = "Flag", args = { "RU" } } .. " Russian", ietf = "ru", ietfRoman = "ru-Latn" }, ["es"] = { label = frame:expandTemplate{ title = "Flag", args = { "ES" } } .. " Spanish", ietf = "es", ietfRoman = "es" }, ["esS"] = { label = frame:expandTemplate{ title = "Flag", args = { "ES" } } .. " European Spanish", ietf = "es-ES", ietfRoman = "es-ES" }, ["esL"] = { label = frame:expandTemplate{ title = "Flag", args = { "CL" } } .. " Latin American Spanish", ietf = "es-419", ietfRoman = "es-419" }, ["tl"] = { label = frame:expandTemplate{ title = "Flag", args = { "PH" } } .. " Tagalog", ietf = "tl", ietfRoman = "tl" }, ["tr"] = { label = frame:expandTemplate{ title = "Flag", args = { "TR" } } .. " Turkish", ietf = "tr", ietfRoman = "tr" }, } local output = "" local function makeRow(lang) local nameList = {} local romanList = {} local noteList = {} local meaningList = {} local x = 1 if args[lang] then --Case for if there is no number. table.insert(nameList,x,args[lang]) if args [lang .. "R"] then table.insert(romanList,x,args[lang .. "R"]) end if args [lang .. "E"] then table.insert(noteList,x,args[lang .. "E"]) end if args [lang .. "M"] then table.insert(meaningList,x,args[lang .. "M"]) end x = x + 1 end while args[lang .. x] do table.insert(nameList,x,args[lang .. x]) if args [lang .. "R" .. x] then table.insert(romanList,x,args[lang .. "R" .. x]) end if args [lang .. "E" .. x] then table.insert(noteList,x,args[lang .. "E" .. x]) end if args [lang .. "M" .. x] then table.insert(meaningList,x,args[lang .. "M" .. x]) end x = x + 1 end if #nameList > 0 then output = output .. '\n| rowspan="' .. #nameList .. '" | ' .. languages[lang]["label"] for i = 1,#nameList do local category = "" if string.find(nameList[i],"<br") or string.find(nameList[i]," ''") or string.find(nameList[i],"xp|") then category = "[[Category:Pages using old Names format]]" end local romanization = "" if romanList[i] then romanization = string.format(" <span lang=\"%s\">''%s''</span>", languages[lang]["ietfRoman"], romanList[i]) end local note = "" if noteList[i] then note = noteList[i] end local meaning = "" local colspan = 1 if meaningList[i] then meaning = " || " .. meaningList[i] else colspan = 2 end output = output .. '\n| colspan="' .. colspan .. '" | <span lang="'.. languages[lang]["ietf"] .. '">' .. nameList[i] .. "</span>" .. note .. romanization .. meaning .. category .. "\n|-" end end end for i, lang in ipairs(languageList) do makeRow(lang) end return output end return p