Jump to content

Module:Mw lang: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
create;
 
No edit summary
Line 1: Line 1:
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 >------------------------------------------------------
--[[--------------------------< C O D E _ T O _ N A M E >------------------------------------------------------


Line 8: Line 19:


local function code_to_name (frame)
local function code_to_name (frame)
local code = mw.language.fetchLanguageName (frame.args[1]:lower(), mw.getContentLanguage():getCode());
local name = mw.language.fetchLanguageName (frame.args[1]:lower(), mw.getContentLanguage():getCode());
return '' ~= code and code or 'error';
return '' ~= name and name or err_msg_make ('code: ' .. frame.args[1]);
end
end


Line 30: Line 41:
end
end


return name_list[name:lower()] or 'error'
return name_list[name] or err_msg_make ('name: ' .. frame.args[1])
end
end



Revision as of 15:09, 9 March 2020

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,
	}