Modul:Uživatel:Xoristzatziki/jazyky

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]]
<pre>
== řečtina ==

=== etymologie ===
Z [[ΛΛΛΛ2]].

=== podstatné jméno ===
* ''rod střední''
* ''pomnožné''

==== skloňování ====
{{Substantivum (el)
  | snom = -
  | sgen = -
  | sacc = -
  | svoc = -
  | pnom = ΛΛΛΛ1
  | pgen = ΛΛΛΛ3
  | pacc = ΛΛΛΛ1
  | pvoc = ΛΛΛΛ1
}}

==== význam ====
# [[ΛΛΛΛ4]]

==== související ====
# [[ΛΛΛΛ7]]

=== přídavné jméno ===
* ''tvrdé''

==== význam ====
# ''nominativ plurálu středního rodu adjektiva [[ΛΛΛΛ2]]''
# ''akuzativ plurálu středního rodu adjektiva [[ΛΛΛΛ2]]''
# ''vokativ plurálu středního rodu adjektiva [[ΛΛΛΛ2]]''

[[Kategorie:Řecká substantiva]]
[[Kategorie:Tvary řeckých adjektiv]]
</pre>
]=]

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

=== etymologie ===
Z [[ΛΛΛΛ2]].

=== podstatné jméno ===
* ''rod střední''
* ''pomnožné''

==== skloňování ====
{{Substantivum (el)
  | snom = -
  | sgen = -
  | sacc = -
  | svoc = -
  | pnom = ΛΛΛΛ1
  | pgen = ΛΛΛΛ3
  | pacc = ΛΛΛΛ1
  | pvoc = ΛΛΛΛ1
}}

==== význam ====
# [[ΛΛΛΛ4]]

==== synonyma ====
# [[ΛΛΛΛ5]]

==== související ====
# [[ΛΛΛΛ7]]

=== přídavné jméno ===
* ''tvrdé''

==== význam ====
# ''nominativ plurálu středního rodu adjektiva [[ΛΛΛΛ2]]''
# ''akuzativ plurálu středního rodu adjektiva [[ΛΛΛΛ2]]''
# ''vokativ plurálu středního rodu adjektiva [[ΛΛΛΛ2]]''

[[Kategorie:Řecká substantiva]]
[[Kategorie:Tvary řeckých adjektiv]]
</pre>
]=]

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

=== etymologie ===
Z [[ΛΛΛΛ2]].

==== varianty ====
* [[ΛΛΛΛ6]]

=== podstatné jméno ===
* ''rod střední''
* ''pomnožné''

==== skloňování ====
{{Substantivum (el)
  | snom = -
  | sgen = -
  | sacc = -
  | svoc = -
  | pnom = ΛΛΛΛ1
  | pgen = ΛΛΛΛ3
  | pacc = ΛΛΛΛ1
  | pvoc = ΛΛΛΛ1
}}

==== význam ====
# [[ΛΛΛΛ4]]

==== související ====
# [[ΛΛΛΛ7]]

=== přídavné jméno ===
* ''tvrdé''

==== význam ====
# ''nominativ plurálu středního rodu adjektiva [[ΛΛΛΛ2]]''
# ''akuzativ plurálu středního rodu adjektiva [[ΛΛΛΛ2]]''
# ''vokativ plurálu středního rodu adjektiva [[ΛΛΛΛ2]]''

[[Kategorie:Řecká substantiva]]
[[Kategorie:Tvary řeckých adjektiv]]
</pre>
]=]

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['související'] = lc['args'][5] 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'] )
			lc['thetext'] = mw.ustring.gsub(lc['thetext'], 'ΛΛΛΛ7', lc['související'] )
			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