Module:LangInfo

De Terraria Wiki
Aller à la navigation Aller à la recherche
Voir aussi la page anglaise du module : Module:LangInfo. Elle pourra contenir des informations plus complètes et actuelles.

Aucune sous-page de documentation n'existe déjà pour ce module. En créer une maintenant.


local data = mw.loadData('Module:LangInfo/data')

-- manually set Wikipedia link to a language's local "<lang> language" article; in case that differs from the language's endonym
local wplinks = {
	-- format: ["language code"] = "local Wikipedia article",
	["bg"] = "Български език",
	["zh"] = "汉语",
	["da"] = "Dansk (sprog)",
	["fi"] = "Suomen kieli",
	["de"] = "Deutsche Sprache",
	["hu"] = "Magyar nyelv",
	["it"] = "Lingua italiana",
	["hi"] = "हिन्दी",
	["lv"] = "Latviešu valoda",
	["lt"] = "Lietuvių kalba",
	["pl"] = "Język polski",
	["pt"] = "Língua portuguesa",
	["ru"] = "Русский язык",
	["sk"] = "Slovenčina",
	["es"] = "Idioma español",
	["th"] = "ภาษาไทย",
	["uk"] = "Українська мова",
}

-- manually set country codes for countries whose official language's ISO 639-1 code is not equal to the country's ISO 3166-1 code
local countrycodes = {
	-- format: ["language code"] = "country code",
	["ar"] = "eg",
	["cs"] = "cz",
	["da"] = "dk",
	["el"] = "gr",
	["en"] = "us",
	["hi"] = "in",
	["ja"] = "jp",
	["ko"] = "kr",
	["sv"] = "se",
	["uk"] = "ua",
	["vi"] = "vn",
	["yue"] = "cn",
	["zh"] = "cn",
	["es-formal"] = "es",
}

local trim = mw.text.trim
local args_table

local getArg = function(key)
	local value = args_table[key]
	if not value then
		return nil
	end
	value = trim(value)
	if value == '' then
		return nil
	end
	return value
end

-----------------------------------------------------------------
-- main return object
return {
	
go = function(frame, args)
	-- init cache
	args_table = args or frame.args

	local _arg1 = getArg(1) or ''
	local _arg2 = getArg(2) or ''
	
	if not data[_arg1] then
		return
	end
	if _arg2 == 'name' then
		if data[_arg1]['shortname'] ~= '' then
			return data[_arg1]['shortname']
		else
			return data[_arg1]['fullname']
		end
	elseif _arg2 == 'countrycode' then
		if countrycodes[_arg1] ~= nil then
			return countrycodes[_arg1]
		else
			return _arg1
		end
	elseif _arg2 == 'wplink' and wplinks[_arg1] ~= nil then
		return wplinks[_arg1]
	elseif _arg2 == 'lname' or _arg2 == 'wplink' then
		return ( string.gsub(data[_arg1]['lname'], "(.-),.+", "%1") ) --only get first part of a comma-separated list
	elseif data[_arg1][_arg2] ~= '' then
		return data[_arg1][_arg2]
	else
		return ''
	end
end

}