Module:In lang
Appearance
This module implements templates and miscellaneous functions for templates that rely on Module:Lang but are properly not part of that module.
- functions for templates
set_italics()
(exported function) andis_cjk_code()
(private to this module) – used in{{Infobox book}}
require ('Module:No globals');
local is_latn = require ('Module:Lang').is_latn;
local p={}
--[[--------------------------< I S _ C J K >------------------------------------------------------------------
return true if code is one of the listed Chinese, Japanese, Korean ISO 639 codes, false else.
]]
local function is_cjk_code (code)
local cjk =
{
['zh'] = true, ['cdo'] = true, ['cjy'] = true, ['cmn'] = true, -- Chinese language codes
['cpi'] = true, ['cpx'] = true, ['czh'] = true, ['czo'] = true,
['gan'] = true, ['hak'] = true, ['hsn'] = true, ['ltc'] = true,
['lzh'] = true, ['mnp'] = true, ['nan'] = true, ['och'] = true,
['wuu'] = true, ['yue'] = true, ['zhx'] = true,
['ja'] = true, ['jpx'] = true, ['ojp'] = true, -- Japanese language codes
['ko'] = true, ['okm'] = true, ['oko'] = true, -- Korean language codes
}
return cjk[code] or false;
end
--[[--------------------------< S E T _ I T A L I C S >--------------------------------------------------------
Created for use with Template:Infobox book and Template:Infobox document and perhaps others to replace hard-coded
italic markup in the call to {{lang}}. This module attempts to make sure that {{lang}} correctly applies italic
markup according to MOS:FOREIGNITALIC.
]]
function p.set_italics (frame)
local code = frame.args[1] or frame.args['code'] or ''; -- empty string causes 'yes' return; {{lang}} will handle the missing code error
local text = frame.args[2] or frame.args['text'] or ''; -- empty string causes 'yes' return; {{lang}} will handle the missing text error
if is_cjk_code (code) and not is_latn (text) then -- is_latn() is in Module:Lang
return 'no'; -- only case for 'no'
end
return 'yes'; -- everything else is yes
end
return p;