Module:Lang: Difference between revisions

Content deleted Content added
No edit summary
sync from sandbox;
Line 401:
end
return code, script, region, variant, private, nil; -- return the good bits; make sure that msg is nil
end
 
 
--[[--------------------------< S U B S T I T U T E >----------------------------------------------------------
 
substitutes $1, $2, etc in <message> with data from <data_t>. Returns plain-text substituted string when
<data_t> not nil; returns <message> else
 
]]
 
local function substitute (message, data_t)
return data_t and mw.message.newRawMessage (message, data_t):plain() or message;
end
 
Line 410 ⟶ 422:
]]
 
local function make_error_msg (msg, argsargs_t, template)
local out = {};
local category;
Line 420 ⟶ 431:
end
table.insert local category_link = (out,(0 == namespace or 10 == namespace) and not args_t.nocat) and table.concat ({'[[Category:', category, ' template errors]]'})) or '';
table.insert (out, table.concat ({'[', args.text or 'undefined', '] '})); -- for error messages output args.text if available
table.insertreturn (out, table.concatsubstitute ({'[$1] <span style=\"color:#d33\">Error: {{', template, '$2}}: $3 ([[:Category:$4 template errors|help]])</span>$5'}));,
{
table.insert (out, msg);
args_t.text or 'undefined',
table.insert (out, table.concat ({' ([[:Category:', category, ' template errors|help]])'}));
template,
table.insert (out, '</span>');
msg,
category,
if (0 == namespace or 10 == namespace) and not args.nocat then -- categorize in article space (and template space to take care of broken usages)
category_link
table.insert (out, table.concat ({'[[Category:', category, ' template errors]]'}));
})
end
 
return table.concat (out);
end
Line 646 ⟶ 655:
]]
 
local function make_translit (code, language_name, translit, std, tscript, style, engvar)
local title;
local out_t = {};
Line 659 ⟶ 668:
title_text = title_text .. '-language'; -- skip this text (individual and macro languages only)
end
title_text = title_textsubstitute ..('$1 $2', romanization{title_text, lang_data.engvar_t[engvar]['romanisz_lc']}); -- finish the tool tip; use romanization when neither script nor standard supplied
 
elseif is_set (std) and is_set (tscript) then -- when both are specified
Line 728 ⟶ 737:
return table.concat (out_t); -- make a string and done
else
title_text = 'gb_t' == engvar and title_text:gsub ('([Rr]omani)z', '%1s') or title_text; -- gb eng when engvar specifies gb eng; us eng else
return title_wrapper_make (title_text, table.concat (out_t), 'span'); -- wrap with a tool-tip span and dondone
end
end
Line 1,152 ⟶ 1,162:
args.translit = args[2] or args.translit -- prefer args.translit
end
 
args.engvar = lang_data.engvar_sel_t[args.engvar] or 'us_t'; -- either 'gb_t' or 'us_t' when |engvar= valid; 'us_t' else
 
if args[3] and (args.translation or args.lit) then
return make_error_msg ('conflicting: {{{3}}} and |lit= or |translation=', args, template);
Line 1,251 ⟶ 1,263:
translit_script_name = language_name; -- fall back on language name
end
translit_title = mw.title.makeTitle (0, table.concat ({'Romanization of ', translit_script_name})); -- make a title object; no engvar, article titles use US spelling
if translit_title.exists and ('no' ~= args.link) then
table.insert (out, make_wikilink ('Romanization of ' .. translit_script_name or language_name,
substitute ('romanized$1', {lang_data.engvar_t[args.engvar]['romanisz_pt']})) .. ':'); -- make a wikilink if there is an article to link to; engvar the display text
 
else
table.insert (out, substitute ('romanized$1:', {lang_data.engvar_t[args.engvar]['romanisz_pt']})); -- else plain text per engvar
 
end
table.insert (out, '&nbsp;</small>'); -- close the small tag
end
translit = make_translit (args.code, language_name, args.translit, args['translit-std'], args['translit-script'], nil, args.engvar)
if is_set (translit) then
table.insert (out, translit);
Line 1,575 ⟶ 1,590:
args.italic = nil; -- set to nil;
end
 
args.engvar = lang_data.engvar_sel_t[args.engvar] or 'us_t'; -- either 'gb_t' or 'us_t' when |engvar= valid; 'us_t' else
 
if override_table[args.code] then -- is code a language code defined in the override table?
Line 1,591 ⟶ 1,608:
end
-- here only when all parameters passed to make_translit() are valid
return make_translit (args.code, language_name, args.text, args.translit_std, script, args.italic, args.engvar);
end
 
Line 1,628 ⟶ 1,645:
if msg then
local template = (args_t.template and table.concat ({'{{', args_t.template, '}}: '})) or ''; -- make template name (if provided by the template)
return table.concat ({'<span style=\"color:#d33\">Error: ', template, msg, '</span>'});
end