Jump to content
Toggle menu
  • 8 articles
  • 75 files
  • 7 users
  • 37.8K edits
Neodyland Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:TNTTools: Difference between revisions

From Neodyland Wiki
Created page with 'local p = {} local TNT = require('Module:TNT') local SA = require('Module:SimpleArgs') function TNTTabFull (TNTTab) if (string.sub(TNTTab, 1, 5)) ~= 'I18n/' t...'
 
No edit summary
Line 5: Line 5:


function TNTTabFull (TNTTab)
function TNTTabFull (TNTTab)
if (string.sub(TNTTab, 1, 5)) ~= 'I18n/' then
    if (string.sub(TNTTab, 1, 5)) ~= 'I18n/' then
TNTTab = 'I18n/'..TNTTab
        TNTTab = 'I18n/'..TNTTab
end
    end  
if (string.sub(TNTTab, string.len(TNTTab)-3)) ~= '.tab' then
    if (string.sub(TNTTab, string.len(TNTTab)-3)) ~= '.tab' then
TNTTab = TNTTab..'.tab'
        TNTTab = TNTTab..'.tab'
end
    end  
return TNTTab
    return TNTTab
end --TNTTabFull
end --TNTTabFull
function p.GetTabTrans (TNTTab, S, CaseSensitive)
CaseSensitive = ((CaseSensitive ~= nil) and (CaseSensitive == true)) or true
local Wds = TNT.format (TNTTabFull(TNTTab), S)
if not CaseSensitive then
Wds = string.lower (Wds)
end
    return mw.text.split (Wds, '|')
end --GetTabTrans


function p.GetSTransWithParams (TNTTab, S, ...)
function p.GetSTransWithParams (TNTTab, S, ...)
return TNT.format (TNTTabFull(TNTTab), S, {...}) or ''
    return TNT.format (TNTTabFull(TNTTab), S, {...}) or ''
end
end


function p.GetTabOr1Trans (TNTTab, S, MaxTrans)
function p.TabTransCS (TNTTab, S, CaseSensitive)
local Trans = p.GetTabTrans (TNTTab, S)
    CaseSensitive = ((CaseSensitive ~= nil) and (CaseSensitive == true)) or true
if WithTrans then
    local Wds = TNT.format (TNTTabFull(TNTTab), S)
tab = mw.text.split (Trans, '|')
    if not CaseSensitive then
if #tab > MaxTrans then
        Wds = string.lower (Wds)
error (string.format('Found %s translations for "%s". Search in [[:commons:data:%s.tab]]',#tab,S,TNTTab), 0)  
    end   
-- Translation not required
    return mw.text.split (Wds, '|')
end
end --TabTransCS
return tab
 
else
function p.TabTransMT (TNTTab, S, MaxTrans)
return Trans
    local FN = TNTTabFull(TNTTab)
end
    local tab = mw.text.split (TNT.format (FN, S), '|')
end --GetTabOr1Trans
    if #tab > MaxTrans then
        error (string.format('Found %s translations for "%s". Search in [[:commons:data:%s]]',#tab,S,FN))
                            -- Translation not required
    end
    return tab
end --TabTransMT


function p.SFoundInTNTArr (TNTTab, val, CaseSensitive, S)
function p.SFoundInTNTArr (TNTTab, val, CaseSensitive, S)
if (S == nil) or (S == '') then
    if (S == nil) or (S == '') then
error('Not arguments trying to find "'..val..'"') --It doesn't require translation, only for degug
        error('Not arguments trying to find "'..val..'"') --It doesn't require translation, only for degug
end
    end  
local Arr = p.GetTabTrans (TNTTab, S, CaseSensitive)
    local Arr = p.TabTransCS (TNTTab, S, CaseSensitive)
if not CaseSensitive then
    if not CaseSensitive then
val = string.lower (val)
        val = string.lower (val)
end
    end  
for I, W in ipairs(Arr) do
    for I, W in ipairs(Arr) do
if W == val then
        if W == val then
return true
            return true
end
        end  
end
    end  
return false
    return false
end --SFoundInTNTArr
end --SFoundInTNTArr


function p.IdxFromTabTrans (TNTTab, val, CaseSensitive, ...)
function p.IdxFromTabTrans (TNTTab, val, CaseSensitive, ...)
local Arr = unpack(arg)
    local Arr = unpack(arg)
if Arr == nil then
    if Arr == nil then
error('Not arguments trying to find "'..val..'"') --It doesn't require translation, only for degug
        error('Not arguments trying to find "'..val..'"') --It doesn't require translation, only for degug
end
    end  
local Idx = 0
    local Idx = 0
for I, W in ipairs(Arr) do
    for I, W in ipairs(Arr) do
if p.SFoundInTNTArr (TNTTab, val, CaseSensitive, W) then
        if p.SFoundInTNTArr (TNTTab, val, CaseSensitive, W) then
Idx = I
            Idx = I
break
            break
end
        end  
end
    end  
return Idx
    return Idx
end --IdxFromTabTrans
end   --IdxFromTabTrans


function p.Str (frame)
function p.Str (frame)
local args, NArgs = SA.GetArgs (frame)
    local args, NArgs = SA.GetArgs (frame)
local tab = SA.GetStrArgsFromPos (args, NArgs, 3)
    local tab = SA.GetStrArgsFromPos (args, NArgs, 3)
return TNT.format (TNTTabFull(args[1]), args[2], unpack(tab))
    return TNT.format (TNTTabFull(args[1]), args[2], unpack(tab))
end --Str
end --Str


function p.FoundStrBool (frame)
function p.FoundStrBool (frame)
local args = SA.GetArgs (frame)
    local args = SA.GetArgs (frame)
return p.SFoundInTNTArr (args[1], args[2], SA.GetBoolFromArgs (args,3), args[4])
    return p.SFoundInTNTArr (args[1], args[2], SA.GetBoolFromArgs (args,3), args[4])
end
end
   
function p.FoundStrNum (frame)
function p.FoundStrNum (frame)
local args = SA.GetArgs (frame)
    local args = SA.GetArgs (frame)
if p.SFoundInTNTArr (args[1], args[2], SA.GetBoolFromArgs (args,3), args[4]) then
    if p.SFoundInTNTArr (args[1], args[2], SA.GetBoolFromArgs (args,3), args[4]) then
return 1
        return 1
else
    else
return 0
        return 0
end
    end
end --FoundStrNum
end --FoundStrNum
   
function p.FoundIdx (frame)
function p.FoundIdx (frame)
local args, NArgs = SA.GetArgs (frame)
    local args, NArgs = SA.GetArgs (frame)
local tab = SA.GetStrArgsFromPos (args, NArgs, 4)
    local tab = SA.GetStrArgsFromPos (args, NArgs, 4)
return p.IdxFromTabTrans (args[1], args[2], SA.GetBoolFromArgs (args,3), tab)
    return p.IdxFromTabTrans (args[1], args[2], SA.GetBoolFromArgs (args,3), tab)
end --FoundIdx
end --FoundIdx
   
return p
return p

Revision as of 12:25, 25 October 2019

Module documentation[ create · purge ]
This documentation is transcluded from Module:TNTTools/doc.
local p = {}

local TNT = require('Module:TNT')
local SA = require('Module:SimpleArgs')

function TNTTabFull (TNTTab)
    if (string.sub(TNTTab, 1, 5)) ~= 'I18n/' then
        TNTTab = 'I18n/'..TNTTab
    end    
    if (string.sub(TNTTab, string.len(TNTTab)-3)) ~= '.tab' then
        TNTTab = TNTTab..'.tab'
    end    
    return TNTTab
end --TNTTabFull

function p.GetSTransWithParams (TNTTab, S, ...)
    return TNT.format (TNTTabFull(TNTTab), S, {...}) or ''
end

function p.TabTransCS (TNTTab, S, CaseSensitive)
    CaseSensitive = ((CaseSensitive ~= nil) and (CaseSensitive == true)) or true
    local Wds = TNT.format (TNTTabFull(TNTTab), S)
    if not CaseSensitive then
        Wds = string.lower (Wds)
    end    
    return mw.text.split (Wds, '|')
end --TabTransCS

function p.TabTransMT (TNTTab, S, MaxTrans)
    local FN = TNTTabFull(TNTTab)
    local tab = mw.text.split (TNT.format (FN, S), '|')
    if #tab > MaxTrans then
        error (string.format('Found %s translations for "%s". Search in [[:commons:data:%s]]',#tab,S,FN))
                            -- Translation not required
    end
    return tab
end --TabTransMT

function p.SFoundInTNTArr (TNTTab, val, CaseSensitive, S)
    if (S == nil) or (S == '') then
        error('Not arguments trying to find "'..val..'"') --It doesn't require translation, only for degug
    end    
    local Arr = p.TabTransCS (TNTTab, S, CaseSensitive)
    if not CaseSensitive then
        val = string.lower (val)
    end    
    for I, W in ipairs(Arr) do
        if W == val then
            return true
        end    
    end    
    return false
end --SFoundInTNTArr

function p.IdxFromTabTrans (TNTTab, val, CaseSensitive, ...)
    local Arr = unpack(arg)
    if Arr == nil then
        error('Not arguments trying to find "'..val..'"') --It doesn't require translation, only for degug
    end    
    local Idx = 0
    for I, W in ipairs(Arr) do
        if p.SFoundInTNTArr (TNTTab, val, CaseSensitive, W) then
            Idx = I
            break
        end    
    end    
    return Idx
end    --IdxFromTabTrans

function p.Str (frame)
    local args, NArgs = SA.GetArgs (frame)
    local tab = SA.GetStrArgsFromPos (args, NArgs, 3)
    return TNT.format (TNTTabFull(args[1]), args[2], unpack(tab))
end --Str

function p.FoundStrBool (frame)
    local args = SA.GetArgs (frame)
    return p.SFoundInTNTArr (args[1], args[2], SA.GetBoolFromArgs (args,3), args[4])
end
    
function p.FoundStrNum (frame)
    local args = SA.GetArgs (frame)
    if p.SFoundInTNTArr (args[1], args[2], SA.GetBoolFromArgs (args,3), args[4]) then
        return 1
    else
        return 0
    end
end --FoundStrNum
    
function p.FoundIdx (frame)
    local args, NArgs = SA.GetArgs (frame)
    local tab = SA.GetStrArgsFromPos (args, NArgs, 4)
    return p.IdxFromTabTrans (args[1], args[2], SA.GetBoolFromArgs (args,3), tab)
end --FoundIdx
    
return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.