Module:Nomenclature: Difference between revisions
Jump to navigation
Jump to search
MannedTooth (talk | contribs) No edit summary |
MannedTooth (talk | contribs) No edit summary |
||
Line 53: | Line 53: | ||
function p.CreateRows(translationTable, term) | function p.CreateRows(translationTable, term) | ||
local resultTranslations = translation.fetchTranslations(term) | local resultTranslations = translation.fetchTranslations(term) | ||
local tr | local tr | ||
local td | local td | ||
for key, value in pairs( | for key, value in pairs(resultTranslations) do | ||
if value ~= nil then | if value ~= nil then | ||
local keysToRemove = {} | local keysToRemove = {} | ||
Line 70: | Line 68: | ||
tr:node(td) | tr:node(td) | ||
td = mw.html.create("td"):done() | td = mw.html.create("td"):done() | ||
for key2, value2 in pairs( | for key2, value2 in pairs(resultTranslations) do | ||
if value["language"] == value2["language"] and value["translation"] == value2["translation"] then | if value["language"] == value2["language"] and value["translation"] == value2["translation"] then | ||
table.insert(games, value2["game"]) | table.insert(games, value2["game"]) | ||
Line 79: | Line 77: | ||
td:wikitext(value["translation"] .. " " .. expgame.Display(games)) | td:wikitext(value["translation"] .. " " .. expgame.Display(games)) | ||
games = {} | games = {} | ||
for key2, value2 in pairs( | for key2, value2 in pairs(resultTranslations) do | ||
if value["language"] == value2["language"] and value["translation"] ~= value2["translation"] then | if value["language"] == value2["language"] and value["translation"] ~= value2["translation"] then | ||
for key3, value3 in pairs( | for key3, value3 in pairs(resultTranslations) do | ||
if value2["language"] == value3["language"] and value2["translation"] == value3["translation"] then | if value2["language"] == value3["language"] and value2["translation"] == value3["translation"] then | ||
table.insert(games, value3["game"]) | table.insert(games, value3["game"]) | ||
Line 110: | Line 108: | ||
translationTable:node(tr) | translationTable:node(tr) | ||
for key2, value2 in pairs(keysToRemove) do | for key2, value2 in pairs(keysToRemove) do | ||
resultTranslations[value2] = nil | |||
end | end | ||
end | end | ||
Line 116: | Line 114: | ||
return translationTable | return translationTable | ||
end | end | ||
Revision as of 07:06, 2 May 2019
This is the main module for Template:Nomenclature.
Lua error in package.lua at line 80: module 'Module:UtilsLanguage' not found.
local p = {}
local cargo = mw.ext.cargo
local translation = require('Module:Translation')
local expgame = require('Module:Exp Game')
local utilsCode = require('Module:UtilsCode')
local utilsLanguage = require('Module:UtilsLanguage')
--Create an empty table with headers
function p.CreateTable()
--Table structure
local resultTable = mw.html.create("table")
:addClass("wikitable")
:css{
["margin"] = "1em",
["font-size"] = "95%",
}:done()
--Global header
local headerRow = mw.html.create("tr"):done()
local headerContent = mw.html.create("th")
:wikitext("[[File:TMC Forest Minish Artwork.png|20px]] Names in Other Regions [[File:TMC Jabber Nut Sprite.png]]")
:attr("colspan", "4")
:css{
["font-size"] = "110%",
}:done()
headerRow:node(headerContent)
resultTable:node(headerRow)
--Individual headers
--Language
headerRow = mw.html.create("tr"):done()
headerContent = mw.html.create("th")
:wikitext("Language")
:attr("colspan", "2"):done()
headerRow:node(headerContent)
--Name
headerContent = mw.html.create("th")
:wikitext("Name"):done()
headerRow:node(headerContent)
--Meaning
headerContent = mw.html.create("th")
:wikitext("Meaning"):done()
headerRow:node(headerContent)
resultTable:node(headerRow)
return resultTable
end
function p.CreateRows(translationTable, term)
local resultTranslations = translation.fetchTranslations(term)
local tr
local td
for key, value in pairs(resultTranslations) do
if value ~= nil then
local keysToRemove = {}
local games = {}
local meanings = {}
tr = mw.html.create("tr"):done()
td = mw.html.create("td")
:wikitext(utilsLanguage.CodeToFlag(value["language"])):done()
tr:node(td)
td = mw.html.create("td")
:wikitext(utilsLanguage.CodeToLanguage(value["language"])):done()
tr:node(td)
td = mw.html.create("td"):done()
for key2, value2 in pairs(resultTranslations) do
if value["language"] == value2["language"] and value["translation"] == value2["translation"] then
table.insert(games, value2["game"])
table.insert(keysToRemove, key2)
end
end
table.insert(meanings, value["meaning"])
td:wikitext(value["translation"] .. " " .. expgame.Display(games))
games = {}
for key2, value2 in pairs(resultTranslations) do
if value["language"] == value2["language"] and value["translation"] ~= value2["translation"] then
for key3, value3 in pairs(resultTranslations) do
if value2["language"] == value3["language"] and value2["translation"] == value3["translation"] then
table.insert(games, value3["game"])
table.insert(keysToRemove, key3)
end
end
table.insert(meanings, value2["meaning"])
td:wikitext("<br>" .. value2["translation"] .. " " .. expgame.Display(games))
end
end
tr:node(td)
td = mw.html.create("td"):done()
local first = true
for key2, value2 in pairs(meanings) do
if not utilsCode.IsEmpty(value2) then
if first then
td:wikitext(value2)
first = false
else
td:wikitext("<br>" .. value2)
end
else
td:wikitext("<br>—")
end
end
tr:node(td)
translationTable:node(tr)
for key2, value2 in pairs(keysToRemove) do
resultTranslations[value2] = nil
end
end
end
return translationTable
end
function p.Main( frame )
local args = frame:getParent().args
local resultTable = p.CreateTable()
local resultTable = p.CreateRows(resultTable, "Dynalfos")
return resultTable
end
return p