Modulo:Lingue/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Moroboshi (discussione | contributi)
Nessun oggetto della modifica
Moroboshi (discussione | contributi)
test per gestione template:Lang
Riga 1:
local language = {}
local HtmlBuildergetArgs = require('Module:HtmlBuilderArguments').getArgs
 
-- File di configurazione contenente due tabelle:
Line 98 ⟶ 99:
--viene normalizzato a quello standard della lingua, piuttosto che essere quello
--passato
--In aggiunta può ricevere se il parametro return_error è vero ritorna in caso di
--codici lingua non ritrovati in tabella una tabella aggiuntiva con i codici errati
--return_error viene controllato solo se la funzione è richiamata da un modulo Lua
--se è richiamata da un template è sempre falsa
function language.lingue(frame)
local lingue_list = { }
Line 109 ⟶ 114:
else
args = frame
return_error = args['return_error'] or Falsefalse
end
local usa_codice = false
local lingua, codice_normalizzato, code_to_show
local usa_codice = (args['usacodice'] ~= nil)
 
 
for _,code in ipairs(args) do
Line 139 ⟶ 143:
end
end
 
function language.lang_testo(frame)
local args = getArgs(frame)
local txt = args.txt or args[2]
if not txt then return '' end
local language_code = args.lang or args[1]
local direction = "ltr"
if language_code then
language_code = lg.alias[language_code] or language_code
local writing = lg.scrittura[language_code]
if writing then
direction = writing[1]
if #writing > 1 then language_code = writing[2] end
end
end
local italic = false
local set_italic = args.set_italic or "n"
if set_italic:lower() == 's' then
italic = true
elseif set_italic:lower() == 'd' and language_code then
if lg.codici[language_code] and lg.codici[language_code][3] == true then
italic = false
end
end
if italic then
if txt[1]=="'" then txt = "<nowiki />" .. txt end
if txt[#txt] =="'" then txt = txt .. "<nowiwiki />" end
txt = mw.ustring.format("''%s''", txt)
end
local span = mw.html.create('span')
:attr('dir', direction)
:attr('lang', language_code)
:attr('xml:lang', language_code)
:addClass(args.class)
:wikitext(txt)
return tostring(span)
end
 
 
-- Restituisce una tabella con tutti i codici riconosciuti dal modulo
function language.tabella(frame)
local HtmlBuilder = require('Module:HtmlBuilder')
-- genera una tabella codici -> lista alias e una di codici per ordinarla
local alias_table = {}
Line 156 ⟶ 197:
table.sort(codici_sorted)
local root = HtmlBuildermw.html.create('table')
root
.:addClass('wikitable sortable')
.:tag('tr')
.:tag('th').:wikitext('Codici').:done()
.:tag('th').:wikitext('[[template:Nomelingua/vocenome]]').:done()
.:tag('th').:wikitext('[[template:Nomelingua/voce]]').:done()
.:tag('th').:wikitext('[[template:Lingue]]')
for _,code in ipairs(codici_sorted) do
Line 170 ⟶ 211:
if voce ~= '' then voce = '[[' .. voce .. ']]' end
root
.:tag('tr')
.:tag('td').:wikitext(code_string).:done()
.:tag('td').:wikitext(nome).:done()
.:tag('td').:wikitext(voce).:done()
.:tag('td').:css('text-align', 'center').:wikitext(language.lingue({code}))
end
return tostring(root)
Line 181 ⟶ 222:
-- Restituisce una tabella degli alias in formato alias;codice
function language.tabella_alias(frame)
local HtmlBuilder = require('Module:HtmlBuilder')
 
local root = HtmlBuildermw.html.create('table')
root
.:addClass('wikitable sortable')
.:tag('tr')
.:tag('th').:wikitext('Alias').:done()
.:tag('th').:wikitext('codice').:done()
for alias, code in pairs(lg.alias) do
root
.:tag('tr')
.:tag('td').:wikitext(alias).:done()
.:tag('td').:wikitext(code)
end
return tostring(root)
Line 200 ⟶ 240:
-- Restituisce una tabella dei codici in formato codice;nome;voce
function language.tabella_codici(frame)
local HtmlBuilder = require('Module:HtmlBuilder')
 
local root = HtmlBuildermw.html.create('table')
root
.:addClass('wikitable sortable')
.:tag('tr')
.:tag('th').:wikitext('Codice').:done()
.:tag('th').:wikitext('Nome').:done()
.:tag('th').:wikitext('Voce').:done()
for code, valore in pairs(lg.codici) do
root
.:tag('tr')
.:tag('td').:wikitext(code).:done()
.:tag('td').:wikitext(valore[1]).:done()
.:tag('td').:wikitext(valore[2])
end
return tostring(root)
end
 
-- ritorna una whitelist di tutti i codici riconosciuti ad uso bot in python
function language.whitelist(frame)
local rows = { 'WHITELIST_LINGUE = set( [' }