Module:Mw lang
Appearance
![]() | This Lua module is used on approximately 91,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
![]() | This module depends on the following other modules: |
Implements {{Mw lang}}
require('Module:No globals');
--[[--------------------------< E R R _ M S G _ M A K E >------------------------------------------------------
]]
local function err_msg_make (msg)
return '<span class="error" style="font-size:100%">error: language ' .. msg .. 'not recognized</span>'
end
--[[--------------------------< C O D E _ T O _ N A M E >------------------------------------------------------
module entry point
return language-name if language-code is a mediawiki recognized code; error message string else
]]
local function code_to_name (frame)
local name = mw.language.fetchLanguageName (frame.args[1]:lower(), mw.getContentLanguage():getCode());
return '' ~= name and name or err_msg_make ('code: ' .. frame.args[1]);
end
--[[--------------------------< N A M E _ T O _ C O D E >------------------------------------------------------
module entry point
return language-code if language-name is a mediawiki recognized name; error message string else
]]
local function name_to_code (frame)
local name = frame.args[1]:lower();
local source_list = mw.language.fetchLanguageNames(mw.getContentLanguage():getCode(), 'all');
local name_list = {}
for k, v in pairs (source_list) do
name_list[v:lower()] = k;
end
return name_list[name] or err_msg_make ('name: ' .. frame.args[1])
end
--[[--------------------------< I S _ L A N G _ C O D E >------------------------------------------------------
module entry point
return true if code is a mediawiki recognized code; empty string else
]]
local function is_lang_code (frame)
local code = mw.language.fetchLanguageName (frame.args[1]:lower(), mw.getContentLanguage():getCode());
return '' ~= code and true or '';
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
code_to_name = code_to_name,
is_lang_code = is_lang_code,
name_to_code = name_to_code,
}