Dokumentation för denna modul finns på /dok (redigera), /test
Implementerar {{gammalstavning}}
.
{{gammalstavning}}
för listan, eller -
för ospecificerad)]
)(ålderdomligt)
(vid kedjelagd användning){sv|hv|vilken}
(ålderdomligt) genom stavningsreformen 1906 ersatt av vilken
{da|aa|forstå}
(ålderdomligt) genom rättskrivningsreformen 1948 ersatt av forstå
{sv|-|glass}
(ålderdomligt) ersatt av glass
{da|aa|forstå|junk=uppskattas-ej}
Ogiltiga parametrar -- "Mall:gammalstavning" använder inte parameter "junk=".
{Sv|hv|vilken}
Uppenbarligen ogiltig språkkod -- Kod "Sv" skickades in i "Mall:gammalstavning".
{sv|av|vilken}
Mallsyntax -- Okänd förkortning för reform "av" för språkkod "sv" skickad in i "Mall:gammalstavning".
6 olika fel detekteras. Spårningskategori Kategori:Mallsyntax och andra. Tydliga röda varningar visas vid förhandsgranskning men inte i sparade versioner.
All tests passed. (refresh)
Text | Expected | Actual | |
---|---|---|---|
{{gammalstavning|sv|hv|vilken|pagenameoverridetestonly=hvilken|nocat=false}} | <i>(ålderdomligt) genom [[w:stavningsreformen 1906|stavningsreformen 1906]] ersatt av</i> [][[Kategori:Svenska/Ålderdomligt|hvilken]] | <i>(ålderdomligt) genom [[w:stavningsreformen 1906|stavningsreformen 1906]] ersatt av</i> [][[Kategori:Svenska/Ålderdomligt|hvilken]] | |
{{gammalstavning|sv|wv|öfvergifva|pagenameoverridetestonly=öfwergifwa|nocat=false}} | <i>(ålderdomligt) genom övergången från fraktur till antikva ersatt av</i> [[öfvergifva]][[Kategori:Svenska/Ålderdomligt|z°fwergifwa]] | <i>(ålderdomligt) genom övergången från fraktur till antikva ersatt av</i> [[öfvergifva]][[Kategori:Svenska/Ålderdomligt|z°fwergifwa]] | |
{{gammalstavning|sv|-|dom|pagenameoverridetestonly=dem|nocat=false}} | <i>(ålderdomligt) ersatt av</i> [][[Kategori:Svenska/Ålderdomligt|dem]] | <i>(ålderdomligt) ersatt av</i> [][[Kategori:Svenska/Ålderdomligt|dem]] |
Text | Expected | Actual | |
---|---|---|---|
{{gammalstavning|da|aa|forstå|pagenameoverridetestonly=forstaa|nocat=false}} | <i>(ålderdomligt) genom [[:da:w:Retskrivningsreformen i 1948|rättskrivningsreformen 1948]] ersatt av</i> [[forstå]][[Kategori:Danska/Ålderdomligt|forstaa]] | <i>(ålderdomligt) genom [[:da:w:Retskrivningsreformen i 1948|rättskrivningsreformen 1948]] ersatt av</i> [[forstå]][[Kategori:Danska/Ålderdomligt|forstaa]] |
Text | Expected | Actual | |
---|---|---|---|
{{gammalstavning|da|aa|forstå|junk=uppskattas-ej|pagenameoverridetestonly=forstaa|nocat=false}} | <br><span class="error"><b>Ogiltiga parametrar -- "Mall:gammalstavning" använder inte parameter "junk=".</b></span></br>[[Kategori:Ogiltiga parametrar]][[Kategori:Ogiltiga parametrar (gammalstavning)]] | <br><span class="error"><b>Ogiltiga parametrar -- "Mall:gammalstavning" använder inte parameter "junk=".</b></span></br>[[Kategori:Ogiltiga parametrar]][[Kategori:Ogiltiga parametrar (gammalstavning)]] | |
{{gammalstavning| |aa|lyn|pagenameoverridetestonly=lin|nocat=false}} | <br><span class="error"><b>Mallsyntax -- Obligatorisk parameter saknas i "Mall:gammalstavning".</b></span></br>Språkkod, förkortning för reform och ny stavning krävs alltid.[[Kategori:Mallsyntax]][[Kategori:Mallsyntax (gammalstavning)]] | <br><span class="error"><b>Mallsyntax -- Obligatorisk parameter saknas i "Mall:gammalstavning".</b></span></br>Språkkod, förkortning för reform och ny stavning krävs alltid.[[Kategori:Mallsyntax]][[Kategori:Mallsyntax (gammalstavning)]] | |
{{gammalstavning|Da|aa|forstå|pagenameoverridetestonly=forstaa|nocat=false}} | <br><span class="error"><b>Uppenbarligen ogiltig språkkod -- Kod "Da" skickades in i "Mall:gammalstavning".</b></span></br>[[Kategori:Uppenbarligen ogiltig språkkod]][[Kategori:Uppenbarligen ogiltig språkkod (gammalstavning)]] | <br><span class="error"><b>Uppenbarligen ogiltig språkkod -- Kod "Da" skickades in i "Mall:gammalstavning".</b></span></br>[[Kategori:Uppenbarligen ogiltig språkkod]][[Kategori:Uppenbarligen ogiltig språkkod (gammalstavning)]] | |
{{gammalstavning|aad|aa|forstå|pagenameoverridetestonly=forstaa|nocat=false}} | <br><span class="error"><b>Okänd språkkod -- Kod "aad" skickades in i "Mall:gammalstavning".</b></span></br>[[Kategori:Okänd språkkod]][[Kategori:Okänd språkkod (gammalstavning)]] | <br><span class="error"><b>Okänd språkkod -- Kod "aad" skickades in i "Mall:gammalstavning".</b></span></br>[[Kategori:Okänd språkkod]][[Kategori:Okänd språkkod (gammalstavning)]] | |
{{gammalstavning|id|fv|provinsi|pagenameoverridetestonly=profinsi|nocat=false}} | <br><span class="error"><b>Mallsyntax -- Okänd förkortning för reform "fv" för språkkod "id" skickad in i "Mall:gammalstavning".</b></span></br>[[Kategori:Mallsyntax]][[Kategori:Mallsyntax (gammalstavning)]] | <br><span class="error"><b>Mallsyntax -- Okänd förkortning för reform "fv" för språkkod "id" skickad in i "Mall:gammalstavning".</b></span></br>[[Kategori:Mallsyntax]][[Kategori:Mallsyntax (gammalstavning)]] | |
{{gammalstavning|sv|fv|[[övergiva]]|pagenameoverridetestonly=öfvergifva|nocat=false}} | <br><span class="error"><b>Mallsyntax -- Ny stavning ska anges utan hakparenteser för "Mall:gammalstavning".</b></span></br>[[Kategori:Mallsyntax]][[Kategori:Mallsyntax (gammalstavning)]] | <br><span class="error"><b>Mallsyntax -- Ny stavning ska anges utan hakparenteser för "Mall:gammalstavning".</b></span></br>[[Kategori:Mallsyntax]][[Kategori:Mallsyntax (gammalstavning)]] |
-- (obligatory) language code
-- (obligatory) code for reform (lowercase, see list, or "-" for unspecified)
-- (obligatory) new (current or next newer) spelling (raw word without brackets "]")
-- (optional) "ejtagg=1" (suppress text "(ålderdomligt) " for chained use)
local exporttbl = {}
local import_lang = require ("Modul:lang")
local import_param = require ("Modul:param")
local import_sort = require ("Modul:sort")
local name_short = "gammalstavning"
local name_long = '"Mall:' .. name_short .. '"'
local reformer = {}
reformer = "övergången från fraktur till antikva"
reformer = "förenklingen under 1800-talet"
reformer = "sjätte upplagan av ] (1889)"
reformer = reformer -- 1889
reformer = "sjunde upplagan av ] (1900)"
reformer = "]"
reformer = reformer -- 1906
reformer = reformer -- 1906
reformer = reformer -- 1906
reformer = "]"
reformer = reformer
reformer = reformer
reformer = "]"
reformer = reformer
reformer = reformer
reformer = reformer
reformer = reformer
reformer = "stavningsreformen 1973"
reformer = "]"
local function expandTwo (control_string, insert_m_string, insert_v_string)
local temp_string = ''
local expanded_string = ''
local x_length = 0
local x_index = 0
local chark = 0
local charl = 0
x_length = string.len (control_string)
while true do
if (x_index==x_length) then
break
end--if
chark = string.byte (control_string,(x_index+1),(x_index+1))
x_index = x_index + 1
charl = 0
if (x_index<x_length) then
charl = string.byte (control_string,(x_index+1),(x_index+1))
end--if
if ((chark==64) and (charl==77)) then -- @M cannot be empty
temp_string = insert_m_string
x_index = x_index + 1
else
if ((chark==64) and (charl==86)) then -- @V can be empty
temp_string = insert_v_string
x_index = x_index + 1
else
temp_string = string.char (chark)
end--if
end--if
expanded_string = expanded_string .. temp_string
end--while
return expanded_string
end--function expandTwo
function exporttbl.go (arxframent)
local arxsomons = 0
local legal_params = {}
local many_complaints = {}
local list_bad_params = ''
local violating_string = ''
local problem_1_main = ''
local problem_2_desc = ''
local problem_3_hint = ''
local p_2_desc_expanded = ''
local pagename = '' -- only for sorting hint/key
local reform_desc = ''
local error_visible = ''
local error_cat = ''
local good_visible = ''
local good_cat = ''
local final_result = ''
local error_code = 0
local boo_bad_brackets = false
local boo_reform_type_specified = false
local boo_ej_tagg = false
local boo_no_cat_true = false
local boo_no_cat_false = false
arxsomons = arxframent.args -- "args" from our own "frame"
if (arxsomons=="true") then
arxsomons = arxframent:getParent().args -- "args" from caller's "frame"
end--if
legal_params = {=3,"ejtagg","nocat","pagenameoverridetestonly"}
list_bad_params = import_param.go (arxsomons,legal_params)
pagename = arxsomons or mw.title.getCurrentTitle().text
local lang_code = mw.text.trim (arxsomons or "")
local reform_code = mw.text.trim (arxsomons or "")
local new_spelling = mw.text.trim (arxsomons or "")
boo_ej_tagg = (arxsomons=="1")
boo_no_cat_true = (arxsomons=="true")
boo_no_cat_false = (arxsomons=="false")
many_complaints = {'Ogiltiga parametrar','@M använder inte @V'}
many_complaints = {'Mallsyntax','Obligatorisk parameter saknas i @M','Språkkod, förkortning för reform och ny stavning krävs alltid.'}
many_complaints = {'Uppenbarligen ogiltig språkkod','Kod @V skickades in i @M'}
many_complaints = {'Okänd språkkod','Kod @V skickades in i @M'}
many_complaints = {'Mallsyntax','Okänd @V skickad in i @M'} -- "@V" contains both ref code and lang code
many_complaints = {'Mallsyntax','Ny stavning ska anges utan hakparenteser för @M'}
boo_reform_type_specified = (reform_code~="-") -- can still be unknown
if boo_reform_type_specified then
reform_desc = reformer or "" -- circumvent risk of type "nil"
end--if
boo_bad_brackets = (string.find(new_spelling,'',1,true)~=nil)
while true do
if list_bad_params ~= '' then
error_code = 1
violating_string = list_bad_params
break
end--if
if ((lang_code=="") or (reform_code=="") or (new_spelling=="")) then
error_code = 2 -- no string here
break
end--if
if import_lang.isObviouslyInvalid(lang_code) then
error_code = 3
violating_string = '"' .. lang_code .. '"'
break
end--if
if not import_lang.hasLanguage(lang_code) then
error_code = 4
violating_string = '"' .. lang_code .. '"'
break
end--if
if (boo_reform_type_specified and (reform_desc=="")) then
error_code = 5
violating_string = 'förkortning för reform "' .. reform_code .. '" för språkkod "' .. lang_code .. '"'
break
end--if
if boo_bad_brackets then
error_code = 6 -- no string here
end--if
break
end--while
if (error_code~=0) then
problem_1_main = many_complaints
problem_2_desc = many_complaints -- @M cannot be empty, @V can be empty
problem_3_hint = many_complaints or '' -- optional, can be empty
p_2_desc_expanded = expandTwo (problem_2_desc, name_long, violating_string)
error_cat = ']]'
error_visible = '<br><span class="error"><b>' .. problem_1_main .. ' -- ' .. p_2_desc_expanded .. '.</b></span></br>'
if (problem_3_hint~='') then
error_visible = error_visible .. problem_3_hint
end--if
end--if
if (error_code==0) then
local language_ucf = import_lang.getLanguageUCFirst(lang_code) -- use "isObviouslyInvalid" and "hasLanguage" for validation
local sort_key = import_sort.getSortKey(lang_code, pagename)
good_visible = "<i>"
if (not boo_ej_tagg) then
good_visible = good_visible .. "(ålderdomligt) "
end--if
if (boo_reform_type_specified) then
good_visible = good_visible .. "genom " .. reform_desc .. " "
end--if
good_visible = good_visible .. "ersatt av</i> ]"
good_cat = "]"
end--if (error_code==0) then
if (error_code==0) then
final_result = good_visible
else
if ((arxframent:preprocess ("{{REVISIONID}}") == '') or boo_no_cat_true or boo_no_cat_false) then
mw.addWarning (error_visible)
final_result = error_visible
else
final_result = "<i>" .. name_short .. "</i>"
end--if
end--if
if (not boo_no_cat_true) then
if (error_code==0) then
final_result = final_result .. good_cat
else
final_result = final_result .. error_cat
end--if
end--if
return final_result
end--function
return exporttbl