Modul:Uživatel:Xoristzatziki/jazyky: Porovnání verzí

Smazaný obsah Přidaný obsah
Založena nová stránka s textem „export = {} local Ld = {} local Lf = {} Ld['prototype1'] = [=[copy-paste to ΛΛΛΛ1<br> <nowiki>==</nowiki> řečtina ==<br> <nowiki>===</nowiki> e…“
(Žádný rozdíl)

Verze z 14. 8. 2018, 11:57

Dokumentaci tohoto modulu lze vytvořit na stránce Nápověda:Modul:Uživatel:Xoristzatziki/jazyky

export = {}

local Ld = {}
local Lf = {}
Ld['prototype1'] = [=[copy-paste to [[ΛΛΛΛ1]]<br>
<nowiki>==</nowiki> řečtina ==<br>

<nowiki>===</nowiki> etymologie ===<br>
Z <nowiki>[[</nowiki>ΛΛΛΛ2]].

<nowiki>===</nowiki> podstatné jméno ===<br>
<nowiki>* ''</nowiki>rod střední<nowiki>''</nowiki><br>
<nowiki>* ''</nowiki>pomnožné<nowiki>''</nowiki><br>

<nowiki>====</nowiki> skloňování ====<br>
<nowiki>{{</nowiki>Substantivum (el)<br>
<nowiki></nowiki>  | snom = -<br>
<nowiki></nowiki>  | sgen = -<br>
<nowiki></nowiki>  | sacc = -<br>
<nowiki></nowiki>  | svoc = -<br>
<nowiki></nowiki>  | pnom = ΛΛΛΛ1<br>
<nowiki></nowiki>  | pgen = ΛΛΛΛ3<br>
<nowiki></nowiki>  | pacc = ΛΛΛΛ1<br>
<nowiki></nowiki>  | pvoc = ΛΛΛΛ1<br>
}}<br>
<nowiki>====</nowiki> význam ====<br>
<nowiki>#</nowiki> <nowiki>[[</nowiki>ΛΛΛΛ4]]

<nowiki>===</nowiki> přídavné jméno ===<br>
<nowiki>* ''</nowiki>tvrdé<nowiki>''</nowiki>

<nowiki>====</nowiki> význam ====<br>
<nowiki>#</nowiki> <nowiki>''</nowiki>nominativ plurálu středního rodu adjektiva <nowiki>[[</nowiki>ΛΛΛΛ2]]<nowiki>''</nowiki><br>
<nowiki>#</nowiki> <nowiki>''</nowiki>akuzativ plurálu středního rodu adjektiva <nowiki>[[</nowiki>ΛΛΛΛ2]]<nowiki>''</nowiki><br>
<nowiki>#</nowiki> <nowiki>''</nowiki>vokativ plurálu středního rodu adjektiva <nowiki>[[</nowiki>ΛΛΛΛ2]]<nowiki>''</nowiki><br>
<br>
<nowiki>[[</nowiki>Kategorie:Řecká substantiva]]<br>
<nowiki>[[</nowiki>Kategorie:Tvary řeckých adjektiv]]<br>
]=]

Ld['prototype2'] = [=[copy-paste to [[ΛΛΛΛ1]]<br>
<nowiki>==</nowiki> řečtina ==<br>

<nowiki>===</nowiki> etymologie ===<br>
Z <nowiki>[[</nowiki>ΛΛΛΛ2]].

<nowiki>===</nowiki> podstatné jméno ===<br>
<nowiki>* ''</nowiki>rod střední<nowiki>''</nowiki><br>
<nowiki>* ''</nowiki>pomnožné<nowiki>''</nowiki><br>

<nowiki>====</nowiki> skloňování ====<br>
<nowiki>{{</nowiki>Substantivum (el)<br>
<nowiki></nowiki>  | snom = -<br>
<nowiki></nowiki>  | sgen = -<br>
<nowiki></nowiki>  | sacc = -<br>
<nowiki></nowiki>  | svoc = -<br>
<nowiki></nowiki>  | pnom = ΛΛΛΛ1<br>
<nowiki></nowiki>  | pgen = ΛΛΛΛ3<br>
<nowiki></nowiki>  | pacc = ΛΛΛΛ1<br>
<nowiki></nowiki>  | pvoc = ΛΛΛΛ1<br>
}}<br>
<nowiki>====</nowiki> význam ====<br>
<nowiki>#</nowiki> <nowiki>[[</nowiki>ΛΛΛΛ4]]

<nowiki>====</nowiki> synonyma ====<br>
<nowiki>#</nowiki> <nowiki>[[</nowiki>ΛΛΛΛ5]]

<nowiki>===</nowiki> přídavné jméno ===<br>
<nowiki>* ''</nowiki>tvrdé<nowiki>''</nowiki>

<nowiki>====</nowiki> význam ====<br>
<nowiki>#</nowiki> <nowiki>''</nowiki>nominativ plurálu středního rodu adjektiva <nowiki>[[</nowiki>ΛΛΛΛ2]]<nowiki>''</nowiki><br>
<nowiki>#</nowiki> <nowiki>''</nowiki>akuzativ plurálu středního rodu adjektiva <nowiki>[[</nowiki>ΛΛΛΛ2]]<nowiki>''</nowiki><br>
<nowiki>#</nowiki> <nowiki>''</nowiki>vokativ plurálu středního rodu adjektiva <nowiki>[[</nowiki>ΛΛΛΛ2]]<nowiki>''</nowiki><br>
<br>
<nowiki>[[</nowiki>Kategorie:Řecká substantiva]]<br>
<nowiki>[[</nowiki>Kategorie:Tvary řeckých adjektiv]]<br>
]=]

Ld['prototype3'] = [=[copy-paste to [[ΛΛΛΛ1]]<br>
<nowiki>==</nowiki> řečtina ==<br>

<nowiki>===</nowiki> etymologie ===<br>
Z <nowiki>[[</nowiki>ΛΛΛΛ2]].

<nowiki>====</nowiki> varianty ====<br>
<nowiki>* [[</nowiki>ΛΛΛΛ6]]

<nowiki>===</nowiki> podstatné jméno ===<br>
<nowiki>* ''</nowiki>rod střední<nowiki>''</nowiki><br>
<nowiki>* ''</nowiki>pomnožné<nowiki>''</nowiki><br>

<nowiki>====</nowiki> skloňování ====<br>
<nowiki>{{</nowiki>Substantivum (el)<br>
<nowiki></nowiki>  | snom = -<br>
<nowiki></nowiki>  | sgen = -<br>
<nowiki></nowiki>  | sacc = -<br>
<nowiki></nowiki>  | svoc = -<br>
<nowiki></nowiki>  | pnom = ΛΛΛΛ1<br>
<nowiki></nowiki>  | pgen = ΛΛΛΛ3<br>
<nowiki></nowiki>  | pacc = ΛΛΛΛ1<br>
<nowiki></nowiki>  | pvoc = ΛΛΛΛ1<br>
}}<br>
<nowiki>====</nowiki> význam ====<br>
<nowiki>#</nowiki> <nowiki>[[</nowiki>ΛΛΛΛ4]]

<nowiki>===</nowiki> přídavné jméno ===<br>
<nowiki>* ''</nowiki>tvrdé<nowiki>''</nowiki>

<nowiki>====</nowiki> význam ====<br>
<nowiki>#</nowiki> <nowiki>''</nowiki>nominativ plurálu středního rodu adjektiva <nowiki>[[</nowiki>ΛΛΛΛ2]]<nowiki>''</nowiki><br>
<nowiki>#</nowiki> <nowiki>''</nowiki>akuzativ plurálu středního rodu adjektiva <nowiki>[[</nowiki>ΛΛΛΛ2]]<nowiki>''</nowiki><br>
<nowiki>#</nowiki> <nowiki>''</nowiki>vokativ plurálu středního rodu adjektiva <nowiki>[[</nowiki>ΛΛΛΛ2]]<nowiki>''</nowiki><br>
<br>
<nowiki>[[</nowiki>Kategorie:Řecká substantiva]]<br>
<nowiki>[[</nowiki>Kategorie:Tvary řeckých adjektiv]]<br>
]=]

export['framepreview'] =  function(frame)
    lc = {}
    lc['args'] = frame.args
    lc['jazyky'] = mw.title.new('Uživatel:Xoristzatziki/jazyky')
    lc['wikitext'] = lc['jazyky']:getContent()
	lc['splitted lines'] = export.usplit(lc['wikitext'], '\n')
	lc['lines'] ={}
	lc['dummy']  = ''
	lc['splitted line']  = {}
	lc['řečtina']  = lc['args'][1] or ''
	lc['čeština']  = lc['args'][2] or ''
	lc['varianty'] = lc['args'][3] or ''
	lc['synonyma'] = lc['args'][4] or ''
	--lc['řečtina']  = 'ουγγρικά'
	--lc['čeština']  = 'τσεχ'
	--lc['varianty'] = '' 
	--lc['synonyma'] = 'ουγγαρέζικα'
	lc['prototype'] = Ld['prototype1']
	if lc['varianty'] ~= '' then
		lc['prototype'] = Ld['prototype3']
	end
	if lc['synonyma'] ~= '' then
		lc['prototype'] = Ld['prototype2']
	end

	for k,v in ipairs(lc['splitted lines']) do
		lc['dummy'] = v
		lc['splitted line'] = export.usplit(lc['dummy'], '|')
		if mw.ustring.sub( lc['splitted line'][2], 1, -2 ) == lc['řečtina']  then
			--local a = mw.ustring.sub( lc['splitted line'][2], 1, -1 )
			--mw.addWarning("LL" .. lc['splitted line'][6] .. 'LL')
			lc['thetext'] = mw.ustring.gsub(lc['prototype'] , 'ΛΛΛΛ1',  lc['řečtina'] )
			lc['thetext'] = mw.ustring.gsub(lc['thetext'] , 'ΛΛΛΛ2', mw.ustring.sub( lc['splitted line'][3], 1, -2 ) )
			lc['thetext'] = mw.ustring.gsub(lc['thetext'] , 'ΛΛΛΛ3', mw.ustring.sub( lc['splitted line'][4], 1, -2 ) )
			lc['thetext'] = mw.ustring.gsub(lc['thetext'], 'ΛΛΛΛ4', lc['čeština'] )
			lc['thetext'] = mw.ustring.gsub(lc['thetext'], 'ΛΛΛΛ5', lc['synonyma'] )
			lc['thetext'] = mw.ustring.gsub(lc['thetext'], 'ΛΛΛΛ6', lc['varianty'] )
			return frame:preprocess(lc['thetext'])
		end
	end
    return 'nic'
end

export['framepreviewold'] =  function(frame)
    lc = {}
    --lc['παράμετροι λήμματος'] = frame:getParent().args
    lc['παράμετροι λήμματος'] = frame.args
    --mw.log(lc['παράμετροι λήμματος'][1])
    lc['aa'] = lc['παράμετροι λήμματος'][1] or ''
    mw.addWarning('#' .. lc['aa'] .. '#')
    return frame:preprocess(export['consolepreview'](lc['aa']))
	
end

export['thefirstknown'] =  function(frame)
    lc = {}
    lc['args'] = frame.args
    lc['jazyky'] = mw.title.new('Uživatel:Xoristzatziki/jazyky')
    lc['wikitext'] = lc['jazyky']:getContent()
	lc['splitted lines'] = export.usplit(lc['wikitext'], '\n')
	lc['lines'] ={}
	lc['dummy']  = ''
	lc['splitted line']  = {}
	for k,v in ipairs(lc['splitted lines']) do
		lc['dummy'] = v
		lc['splitted line'] = export.usplit(lc['dummy'], '|')
		lc['čeština'] = lc['splitted line'][6] or ''
		lc['čeština'] = mw.ustring.gsub(lc['čeština'], '^%s*(.-)%s*$', '%1')
		if lc['čeština'] ~= "" then
			--local a = mw.ustring.sub( lc['splitted line'][2], 1, -1 )
			mw.addWarning("LL" .. lc['splitted line'][6] .. 'LL')
			lc['thetext'] = mw.ustring.gsub(Ld['prototype1'] , 'ΛΛΛΛ1', mw.ustring.sub( lc['splitted line'][2], 1, -2 ) )
			lc['thetext'] = mw.ustring.gsub(lc['thetext'] , 'ΛΛΛΛ2', mw.ustring.sub( lc['splitted line'][3], 1, -2 ) )
			lc['thetext'] = mw.ustring.gsub(lc['thetext'] , 'ΛΛΛΛ3', mw.ustring.sub( lc['splitted line'][4], 1, -2 ) )
			lc['thetext'] = mw.ustring.gsub(lc['thetext'], 'ΛΛΛΛ4', mw.ustring.sub( lc['splitted line'][6], 1, -2 ) )
			return frame:preprocess(lc['thetext'])
			--return 	lc['thetext'] --lc['splitted line'][3]
		end
		--lc['lines']
	end
    return 'None found'
	
end
export['consolepreview'] =  function(astring)
	local lc = {}
	lc['jazyky'] = mw.title.new('Uživatel:Xoristzatziki/jazyky')
	lc['wikitext'] = lc['jazyky']:getContent()
	--lc['splitted lines'] = Lf['χωρισμός σε γραμμές'](lc['wikitext'])
	lc['splitted lines'] = export.usplit(lc['wikitext'], '\n')
	lc['lines'] ={}
	lc['dummy']  = ''
	lc['splitted line']  = {}
	for k,v in ipairs(lc['splitted lines']) do
		lc['dummy'] = v
		lc['splitted line'] = export.usplit(lc['dummy'], '|')
		if lc['splitted line'][2] == astring .. "|" then
			--local a = mw.ustring.sub( lc['splitted line'][2], 1, -1 )
			lc['thetext'] = mw.ustring.gsub(Ld['prototype1'] , 'ΛΛΛΛ1', mw.ustring.sub( lc['splitted line'][2], 1, -2 ) )
			lc['thetext'] = mw.ustring.gsub(lc['thetext'] , 'ΛΛΛΛ2', mw.ustring.sub( lc['splitted line'][3], 1, -2 ) )
			lc['thetext'] = mw.ustring.gsub(lc['thetext'] , 'ΛΛΛΛ3', mw.ustring.sub( lc['splitted line'][4], 1, -2 ) )
			--lc['thetext'] = mw.ustring.gsub(lc['thetext'], 'ΛΛΛΛ4', mw.ustring.sub( lc['splitted line'][5], 1, -1 ) )
			return 	lc['thetext'] --lc['splitted line'][3]
		end
		--lc['lines']
	end
	--return lc['dummy']
	return lc['splitted line'][1] .. '#' .. lc['splitted line'][2] .. '#'
	
	
end

--en:Module:User:Wikitiki89/split
function export.split(text, pattern, plain)
	local len = text:len()
	local result = {}
	local start = 1
	if pattern == "" or (not plain and string.match("", pattern)) then -- special case
		while start <= len do
			result[#result + 1] = text:sub(start, start)
		end
	else
		while true do
			local i, j = text:find(pattern, start, plain)
			if i == nil then
				result[#result + 1] = text:sub(start)
				break
			end
			if j < start then
				error("Infinite split (position: " .. start .. ")")
			end
			result[#result + 1] = text:sub(start, i)
			start = j + 1
		end
	end
	return result
end

--en:Module:User:Wikitiki89/split
function export.usplit(text, pattern, plain) -- naive implementation
	if plain then -- proper unicode handling is unnecessary for plain patterns
		return export.split(text, pattern, plain)
	end
	local len = mw.ustring.len(text)
	local result = {}
	local start = 1
	if mw.ustring.match("", pattern) then -- special case
		while start <= len do
			result[#result + 1] = mw.ustring.sub(text, start, start)
		end
	else
		while true do
			local i, j = mw.ustring.find(text, pattern, start)
			if i == nil then
				result[#result + 1] = mw.ustring.sub(text, start)
				break
			end
			if j < start then
				error("Infinite split (position: " .. start .. ")")
			end
			result[#result + 1] = mw.ustring.sub(text, start, i)
			start = j + 1
		end
	end
	return result
end

Lf['χωρισμός σε γραμμές'] = function(theUtext)
    local lc = {}
    lc['γραμμές'] = {}
    lc['μήκος'] = mw.ustring.len(theUtext)
    lc['αρχή'] = 1
    while true do
        lc['από'], lc['μέχρι'] = mw.ustring.find(theUtext, '\n', lc['αρχή'])
        if lc['από'] == nil then
            lc['γραμμές'][#lc['γραμμές'] + 1] = mw.ustring.sub(theUtext, lc['αρχή'])
            break
        end
        if lc['μέχρι'] < lc['αρχή'] then
            error("Infinite split (position: " .. lc['αρχή'] .. ")")
        end
        lc['γραμμές'][#lc['γραμμές'] + 1] = mw.ustring.sub(theUtext, lc['αρχή'], lc['από'])
        lc['αρχή'] = lc['μέχρι'] + 1
    end
    return lc['γραμμές']
end
return export