Module:Lang: Difference between revisions

Jump to navigation Jump to search
Content added Content deleted
No edit summary
No edit summary
Line 68: Line 68:




--[=[-------------------------< L A N G _ X X >----------------------------------------------------------------
--[[--------------------------< M A K E _ T E X T _ S P A N >--------------------------------------------------


]]


local function make_text_span (code, text, rtl, italic, size)
local span = {};

table.insert (span, '<span lang="'); -- open <span> tag
table.insert (span, code); -- language attribute
if is_set (rtl) then
table.insert (span, ' dir="rtl"'); -- for right to left languages
end
if is_set (size) then -- {{lang}} only
table.insert (span, table.concat ({'style="font-size:', size, ';"'}))
end
table.insert (span, '> '); -- close the opening span tag
if 'yes' == italic then
table.insert (span, table.concat ({"''", text, "''"})); -- text with italic markup
else
table.insert (span, text); -- DEFAULT: text is not italicized
end
table.insert (span, '</span>'); -- close the span
if is_set (rtl) then
table.insert (span, '&lrm;'); -- make sure the browser knows that we're at the end of the rtl
end
return table.concat (span); -- put it all together and done
end


--[=[-------------------------< L A N G _ X X >----------------------------------------------------------------


{{#invoke:lang|lang_xx|code=es|text={{{1}}}|link={{{links|{{{link}}}}}}|rtl={{{rtl}}}|nocat={{{nocat}}}}}
{{#invoke:lang|lang_xx|code=es|text={{{1}}}|link={{{links|{{{link}}}}}}|rtl={{{rtl}}}|nocat={{{nocat}}}}}


[[Spanish language|Spanish]]&#58; <span lang="es" >''<span style="font-style:normal;">Don Quixote</span>''</span>
]=]
]=]


function p.lang_xx (frame)
function p.lang_xx (frame)
local args = getArgs(frame);
local args = getArgs(frame);
if not is_set (args.italic) then
args.italic = 'yes'; -- DEFAULT for {{lang-xx}} templates is to italicize
end
args.size = nil; -- size not supported in {{lang-xx}}
local out = {};
local out = {};
local language_name = mw.language.fetchLanguageName(args.code, mw.getContentLanguage():getCode()) or 'error: unknown language';
local language_name = mw.language.fetchLanguageName(args.code, mw.getContentLanguage():getCode());
if not is_set (language_name) then
return 'error: unknown language';
end
if 'no' == args.link then
if 'no' == args.link then
Line 89: Line 126:
end
end
table.insert (out, ': '); -- separator
table.insert (out, ': '); -- separator

table.insert (out, '<span lang="'); -- open <span> tag
table.insert (out, args.code); -- language attribute
table.insert (out, make_text_span (args.code, args.text, args.rtl, args.italic, args.size))
if is_set (args.rtl) then
table.insert (out, ' dir="rtl"'); -- for right to left languages
if is_set (args.lit) then -- translation (not supported in {{lang}})
table.insert (out, ', <small>');
end
table.insert (out, '> '); -- close the opening span tag
table.insert (out, make_wikilink ('Literal translation', 'lit.'));
table.insert (out, "&nbsp;</small>'");
if 'no' == args.italic then
table.insert (out, args.text); -- text is not italicized
table.insert (out, args.lit);
table.insert (out, "'");
else
table.insert (out, table.concat ({"''", args.text, "''"})); -- text with italic markup
end
table.insert (out, '</span>'); -- close the span
if is_set (args.rtl) then
table.insert (out, '&lrm;'); -- make sure the browser knows that we're at the end of the rtl
end
end