Module:Lang: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
No edit summary |
No edit summary |
||
Line 20: | Line 20: | ||
{{{1}}} iso language code - required |
{{{1}}} iso language code - required |
||
{{{2}}} text - required |
{{{2}}} text - required |
||
{{{rtl}}} if set to any value, set |
{{{rtl}}} if set to any value, set rtl="rtl" attribute and inserts ‎ after the </span> tag |
||
{{{nocat}}} if set to any value, disables categorization |
{{{nocat}}} if set to any value, disables categorization |
||
Line 30: | Line 30: | ||
require('Module:No globals'); |
require('Module:No globals'); |
||
⚫ | |||
local getArgs = require('Module:Arguments').getArgs; |
local getArgs = require('Module:Arguments').getArgs; |
||
--local lang_name_table = mw.loadData ('Module:Language/data/iana languages'); |
|||
local lang_name_table = require ('Module:Language/name/data'); |
local lang_name_table = require ('Module:Language/name/data'); |
||
⚫ | |||
local namespace = mw.title.getCurrentTitle().namespace; -- used for categorization |
|||
Line 80: | Line 82: | ||
table.insert (span, '"'); |
table.insert (span, '"'); |
||
if is_set (rtl) then |
if is_set (rtl) then |
||
table.insert (span, ' |
table.insert (span, ' rtl="rtl"'); -- for right to left languages |
||
end |
end |
||
if is_set (size) then -- {{lang}} only |
if is_set (size) then -- {{lang}} only |
||
Line 87: | Line 89: | ||
table.insert (span, '>'); -- close the opening span tag |
table.insert (span, '>'); -- close the opening span tag |
||
if 'yes' == italic then |
if 'yes' == italic then |
||
table.insert (span, table.concat ({"''", text, "''"})); -- text with italic markup |
table.insert (span, table.concat ({"''", text, "''"})); -- text with italic markup |
||
else |
else |
||
table.insert (span, text); -- DEFAULT: text is not italicized |
table.insert (span, text); -- DEFAULT: text is not italicized |
||
end |
end |
||
table.insert (span, '</span>'); -- close the span |
table.insert (span, '</span>'); -- close the span |
||
Line 99: | Line 101: | ||
end |
end |
||
--[[--------------------------< M A K E _ C A T E G O R Y >---------------------------------------------------- |
|||
]] |
|||
local function make_category (code) |
|||
local cat = {}; |
|||
if 0 ~= namespace then -- only categorize in article space |
|||
return ''; -- return empty string for concatenation |
|||
end |
|||
table.insert (cat, '[[Category:Articles containing '); |
|||
-- if ('en' == code) or ('eng' == code) then |
|||
-- table.insert (cat, 'explicitly cited English'); |
|||
-- elseif 'art' == code then |
|||
-- table.insert (cat, 'constructed') |
|||
-- else |
|||
end |
|||
--[=[-------------------------< L A N G >---------------------------------------------------------------------- |
--[=[-------------------------< L A N G >---------------------------------------------------------------------- |
||
{{#invoke:lang|lang|code={{{1}}}|text={{{2}}}| |
{{#invoke:lang|lang|code={{{1}}}|text={{{2}}}|rtl={{{rtl}}}|size={{{size}}}|nocat={{{nocat}}}}} |
||
]=] |
]=] |
||
Line 110: | Line 133: | ||
local out = {}; |
local out = {}; |
||
local language_name; |
|||
⚫ | |||
if lang_name_table.lang_iana[args.code] then |
|||
⚫ | |||
end |
|||
if not is_set (language_name) then |
if not is_set (language_name) then |
||
table.insert (out, '<span style="font-size:100%" class="error">error: unknown language code: '); |
|||
table.insert (out, args.code); |
|||
table.insert (out, '</span>'); |
|||
if 0 ~= namespace then -- only categorize in article space |
|||
table.insert (out, '[[Category:Articles containing unknown language template codes|'); |
|||
table.insert (out, args.code); |
|||
table.insert (out, ']]'); |
|||
end |
|||
return table.concat (out); -- emit an error message and category |
|||
end |
end |
||
table.insert (out, make_text_span (args.code, args.text, args. |
table.insert (out, make_text_span (args.code, args.text, args.rtl, nil, args.size)) -- italics set to nil here because not supporte by {{lang}} |
||
return table.concat (out); -- put it all together and done |
return table.concat (out); -- put it all together and done |
||
end |
end |
||
Line 123: | Line 158: | ||
--[=[-------------------------< L A N G _ X X >---------------------------------------------------------------- |
--[=[-------------------------< L A N G _ X X >---------------------------------------------------------------- |
||
{{#invoke:lang|lang_xx|code={{{1}}}|text={{{2}}}|link={{{links|{{{link}}}}}}| |
{{#invoke:lang|lang_xx|code={{{1}}}|text={{{2}}}|link={{{links|{{{link}}}}}}|rtl={{{rtl}}}|nocat={{{nocat}}}|italic={{{italic}}}|lit={{{lit}}}}} |
||
]=] |
]=] |
||
Line 137: | Line 172: | ||
local out = {}; |
local out = {}; |
||
local language_name; |
|||
⚫ | |||
if lang_name_table.lang_iana[args.code] then |
|||
⚫ | |||
end |
|||
if not is_set (language_name) then |
if not is_set (language_name) then |
||
table.insert (out, '<span style="font-size:100%" class="error">error: unknown language code: '); |
|||
table.insert (out, args.code); |
|||
table.insert (out, '</span>'); |
|||
if 0 ~= namespace then -- only categorize in article space |
|||
table.insert (out, '[[Category:Articles containing unknown language template codes|'); |
|||
table.insert (out, args.code); |
|||
table.insert (out, ']]'); |
|||
end |
|||
return table.concat (out); -- emit an error message and category |
|||
end |
end |
||