Sari la conținut

Modul:InLang

Permanently protected module
De la Wikipedia, enciclopedia liberă

local getArgs = require('Modul:Arguments').getArgs
local illWd = require('Modul:Ill-wd')
local StringUtils = require('Modul:StringUtils')
local wikidata = require('Modul:Wikidata')
local lang = require('Modul:Lang')
local p = {}

p.fromArgs = function(langId, langText, langTranslit, latinVariantName, italics)
	local languageLinkl
	if mw.ustring.match(langId, 'Q?%d+') then
		languageLink = illWd.fromArgs(langId, StringUtils._removeStart({StringUtils._removeStart({wikidata.findLabel(langId), 'Limba '}), 'limba '}), nil)
		local langISOcode = wikidata.findOneValue('P218', langId) or wikidata.findOneValue('P219', langId) or wikidata.findOneValue('P305', langId)
		languageAlphabets = wikidata.getBestEntityIdsList(langId, 'P282')
		local languageDir = nil
		if languageAlphabets and languageAlphabets[1] then
			languageDirectionalities = wikidata.getBestEntityIdsList(languageAlphabets[1], 'P1406')
			if languageDirectionalities and languageDirectionalities[1] then
				languageDir = (languageDirectionalities[1] == 7333457) and 'rtl'
			end
		end
		local out = languageLink .. ' '
		if langText then
			if langISOcode then
				local htmlText = lang.fromArgs(langISOcode, languageDir, langText, italics)
				out = out .. htmlText
			else
				out = out .. '\'\'' .. langTranslit .. '\'\''
			end
		end
		if langTranslit then
			out = out .. ', ' .. latinVariantName .. ' '
			if langISOcode then
				local htmlText = tostring(mw.html.create('span'):attr('lang', langISOcode):wikitext('\'\'' .. langTranslit  .. '\'\''))
				out = out .. htmlText
			else
				out = out .. '\'\'' .. langTranslit .. '\'\''
			end
		end
		return out
	else 
		languageLink = '[[Limba ' .. langId .. '|' .. langId .. ']]'
		return languageLink .. ' ' .. (langText and ('\'\'' .. langText .. '\'\'') or '') .. (langTranslit and (', ' .. latinVariantName .. ' ' .. '\'\'' .. langTranslit .. '\'\'') or '')
	end
end

p.fromArray = function(args)
	local languageId = args[1]
	local languageText = args[2]
	local languageTranslit = args[3]
	local latinVariantName = args[4] or 'transliterat'
	local italics = (args['italics'] ~= 'no')
	return p.fromArgs(languageId, languageText, languageTranslit, latinVariantName, italics)
end

p.fromFrame = function(frame)
	local args = getArgs(frame)
	return p.fromArray(args)
end

return p