Modulo:Lingvonomo/dok

El Vikipedio, la libera enciklopedio
Salti al navigilo Salti al serĉilo
Dokumentado Dokumentado


Ŝablona programado Diskutoj Lua Testoj Subpaĝoj
Modulo Esperanto English Deutsch

Modulo: Dokumentado


Se vi havas demandon pri ĉi tiu Lua-modulo, tiam vi povas demandi en la diskutejo pri Lua-moduloj. La Intervikiaj ligiloj estu metataj al Vikidatumoj. (Vidu Helpopaĝon pri tio.)
-- modulo por dokumentado de ŝablonoj aranĝataj per la modulo Lingvonomo, 2019-11-10

-- helpaj funkcioj
-- por ŝablonvokado

function shablono (nomo)
			local frame = mw.getCurrentFrame()
			local r = frame:expandTemplate {
				title="Ŝ",
				args = {
					nomo
				}
			}
			return r	
end	

function lang (shablono, teksto, transskribo)
			local frame = mw.getCurrentFrame()
			local r = frame:expandTemplate {
				title=shablono,
				args = {
					teksto,
					t=transskribo
				}
			}
			return r	
end	

function lang2 (shablono, teksto, koloro, fono, grando, pezo, kursiva)
			local frame = mw.getCurrentFrame()
			local r = frame:expandTemplate {
				title=shablono,
				args = {
					teksto,
					koloro=koloro,
					fono=fono,
					grando=grando,
					pezo=pezo,
					kursiva= kursiva
				}
			}
			return r	
end	


function lang3 (shablono, teksto, koloro, fono, grando, pezo, kursiva, ligilo)
			local frame = mw.getCurrentFrame()
			local r = frame:expandTemplate {
				title=shablono,
				args = {
					teksto,
					koloro=koloro,
					fono=fono,
					grando=grando,
					pezo=pezo,
					kursiva= kursiva,
					ligilo = ligilo
				}
			}
			return r	
end	

-- |koloro=green|fono=yellow|grando=150%|pezo=bold
function flag (shablono, koloro, fono, grando, pezo)
			local frame = mw.getCurrentFrame()
			local r = frame:expandTemplate {
				title=shablono,
				args = {
					koloro=koloro,
					fono=fono,
					grando=grando,
					pezo=pezo,
				}
			}
			return r	
end

-- |koloro=green|fono=yellow|grando=150%|pezo=bold|akuzativo=jes
function noflag (shablono, koloro, fono, grando, pezo, akuzativo)
			local frame = mw.getCurrentFrame()
			local r = frame:expandTemplate {
				title=shablono,
				args = {
					koloro=koloro,
					fono=fono,
					grando=grando,
					pezo=pezo,
					akuzativo=akuzativo
				}
			}
			return r	
end


local p = {}



-- por {{Lingva adverbo}}


function p.adverbuzado (frame)
		local ekzemplo = frame.args['ekzemplo']
		local tekzemplo = frame.args['t-ekzemplo'] or ""		
		local ekzemplo2 = frame.args['ekzemplo2'] or ""	
		local a1 = frame.args['a1']
		local a2 = frame.args['a2']
		local titolo = frame:preprocess("{{PAGENAME}}")
		local prefix = mw.ustring.sub(titolo,1,5)
		local l = mw.ustring.sub(titolo,6)
		
		-- helpaj parametroj
		local r = ""
		
		-- parto pri uzado
		if prefix == "Lang-" then
			local transliteracio = ""			
			if (l == "arc" or l == "dv" or l == "he") and tekzemplo ~= "" and tekzemplo ~= nil then
				r = ':<code>{{' .. titolo .. '|' .. ekzemplo .. '|t=' .. tekzemplo .. '}}</code> fariĝos\n'
				r = r .. ':' .. lang (titolo,ekzemplo,tekzemplo) .. '\n'
				transliteracio = " Translitaracio estu nur metata en la nedevigan parametron <code>t</code>!"
			else	
				r = ':<code>{{' .. titolo .. '|' .. ekzemplo .. '}}</code> fariĝos\n'
				r = r .. ':' .. lang (titolo,ekzemplo) .. '\n'
			end
			-- por lingvoj, kiuj uzas pli ol unu alfabeton kaj tial ricevu pli ol unu ekzemplon
			if l == "sr" then
			r = r .. ':<code>{{' .. titolo .. '|' .. ekzemplo2 .. '}}</code> fariĝos\n'
			r = r .. ':' .. lang (titolo,ekzemplo2) .. '\n'
			end
			r = r .. 'Bonvolu atenti, ke la metita frazo aŭ vorto ĉiam estu en la menciita lingvo, ĉar ja ne nur aperas videbla teksto en la lingvo, '
			r = r .. 'sed la lingva informo ankaŭ kaŝe estas metata en nevideblan atributon de la ĉirkaŭa &lt;span&gt;-etikedo. Tion uzas legantaj'
			r = r .. ' foliumiloj, ĉefe de blindaj uzantoj, por ĝuste kaj laŭlingve voĉlegi la tekston.' .. transliteracio ..  '\n'
			r = r .. "==Alidirektiloj==\n"	
			r = r .. "*" .. shablono(a1) .. "\n"
			r = r .. "*" .. shablono(a2) .. "\n"
			-- por informo pri similaj lingvoj aŭ antaŭŝtupoj
			if l == "el" or l == "ell" then
				r = r .. '==Atentigo==\n'	
				r = r .. 'Por malnova greka ekzistas: ' .. shablono(prefix .. "grc")
			elseif l == "grc" then	
				r = r .. '==Atentigo==\n'
				r = r .. 'Por nova greka ekzistas:\n\n'
				r = r .. '* ' .. shablono(prefix .. "el") .. ' (sen aparta indiko)\n' 
				r = r .. '* ' .. shablono(prefix .. "ell") .. ' (kun aparta indiko)\n'
			elseif l == "frr" then
				r = r .. '==Atentigo==\n'
				r = r .. 'Por la aliaj frisaj lingvoj ekzistas: \n\n'
				r = r .. '* ' .. shablono(prefix .. "fy") .. " por la [[okcidentfrisa lingvo]]\n"
				r = r .. '* ' .. shablono(prefix .. "stq") .. " por la [[saterfrisa lingvo|saterfrisa]], la sola vivanta formo de la [[orientfrisa lingvo]].\n"				
			elseif l == "fy" then
				r = r .. '==Atentigo==\n'
				r = r .. 'Por la aliaj frisaj lingvoj ekzistas: \n\n'
				r = r .. '* ' .. shablono(prefix .. "frr") .. " por la [[nordfrisa lingvo]]\n"
				r = r .. '* ' .. shablono(prefix .. "stq") .. " por la [[saterfrisa lingvo|saterfrisa]], la sola vivanta formo de la [[orientfrisa lingvo]].\n"	
			elseif l == "stq" then
				r = r .. '==Atentigo==\n'
				r = r .. 'Por la aliaj frisaj lingvoj ekzistas: \n\n'
				r = r .. '* ' .. shablono(prefix .. "frr") .. " por la [[nordfrisa lingvo]]\n"
				r = r .. '* ' .. shablono(prefix .. "fy") .. " por la [[okcidentfrisa lingvo]].\n"	
			elseif l == "ko" then
				r = r .. '== Laŭlandaj ŝablonoj ==\n\n'
				r = r .. 'Krome ekzistas du laŭlandaj ŝablonoj, nome:\n\n'
				r = r .. '* ' .. shablono(prefix .. "ko-kp") .. " por la lingvo en [[Norda Koreio]]\n"
				r = r .. '* ' .. shablono(prefix .. "ko-kr") .. " por la lingvo en [[Sud-Koreio]]\n"
			elseif l == "nb" then
				r = r .. '== Komparu ==\n\n'
				r = r .. '* ' .. shablono(prefix .. "nn") .. ' por la [[novnorvega lingvo]]\n'
				r = r .. '* ' .. shablono(prefix .. "no") .. ' por la [[norvega lingvo]]\n'					
				r = r .. '* ' .. shablono(prefix .. "non") .. ' por la [[norena lingvo]]\n' 				
			elseif l == "nn" then
				r = r .. '== Komparu ==\n\n'
				r = r .. '* ' .. shablono(prefix .. "nb") .. ' por la [[bukmola lingvo]]\n' 				
				r = r .. '* ' .. shablono(prefix .. "no") .. ' por la [[norvega lingvo]]\n' 
				r = r .. '* ' .. shablono(prefix .. "non") .. ' por la [[norena lingvo]]\n' 					
			elseif l == "no" then
				r = r .. '== Komparu ==\n\n'
				r = r .. '* ' .. shablono(prefix .. "nb") .. ' por la [[bukmola lingvo]]\n' 
				r = r .. '* ' .. shablono(prefix .. "nn") .. ' por la [[novnorvega lingvo]]\n' 				
				r = r .. '* ' .. shablono(prefix .. "non") .. ' por la [[norena lingvo]]\n' 
			elseif l == "non" then
				r = r .. '== Komparu ==\n\n'
				r = r .. '* ' .. shablono(prefix .. "nb") .. ' por la [[bukmola lingvo]]\n' 
				r = r .. '* ' .. shablono(prefix .. "nn") .. ' por la [[novnorvega lingvo]]\n' 					
				r = r .. '* ' .. shablono(prefix .. "no") .. ' por la [[norvega lingvo]]\n' 
			elseif l == "sa" then
				r = r .. "== Vidu ankaŭ ==\n\n"
				r = r .. '* ' .. shablono(prefix .. "san") .. ' trilitere por [[sanskrito]]\n'
				r = r .. '* ' .. shablono("L-san") .. ' alidirektilo por [[sanskrito]]\n'

			end
		else
			-- ĉe {{Ar}} ĝis {{Zh}} kaj {{Flag-}}
			r = ";Simpla varianto\n"
			r = r .. '<code>{{' .. titolo .. '}}</code>\n'
			r = r .. ';Kompleta varianto\n'
			
			if prefix == "Flag-" then
				r = r .. '<code>{{' .. titolo .. '|koloro=|fono=|grando=|pezo=}}</code>\n'
			else
				r = r .. '<code>{{' .. titolo .. '|koloro=|fono=|grando=|pezo=|akuzativo=}}</code>\n'
			end	
			-- finfine uzabla por {{el}} 
			if titolo == "El" then
				r = r .. '==Atentigo==\n'	
				r = r .. 'Por malnova greka ekzistas: ' .. shablono("grc")	
			elseif titolo == "Grc" then	
				r = r .. '==Atentigo==\n'
				r = r .. 'Por nova greka ekzistas:\n\n'
				r = r .. '* ' .. shablono("el") .. ' (sen aparta indiko)\n' 
				-- r = r .. '* ' .. shablono("ell") .. ' (kun aparta indiko)\n'				 -- post kreo de la ŝablono denove malkaŝenda
			end	
			
		end	
		return r
end	
	

function p.adverbparam (frame)
		local titolo = frame:preprocess("{{PAGENAME}}")
		local prefix = mw.ustring.sub(titolo,1,5)
		local l = mw.ustring.sub(titolo,6)
		
		-- helpaj parametroj
		local r = ""	
		
		r = '* <code>koloro</code> - difinas la tekstan koloron.'
		if prefix ~= "Flag-" and prefix ~= "Lang-" then
			r = r .. ' Unu el la valoroj <code>defaŭlta</code> kaj <code>normala</code> aperigas la defaŭltan koloron de la ligilo.\n'
		else
			r = r .. '\n'
		end	
		r = r .. '* <code>fono</code> - difinas la fonan koloron malantaŭ la teksto.\n'
		r = r .. '* <code>grando</code> - difinas la grandon de la teksto, uzante la valorojn por <code>font-size</code>.\n'
		r = r .. '* <code>pezo</code> - difinas la skriban "pezon", uzante la valorojn por <code>font-weight</code>. Nevalidaj valoroj aŭtomate estas ŝanĝataj al <code>normal</code>.\n'
		if prefix ~= "Flag-" and prefix ~= "Lang-" then		
			r = r .. '* <code>akuzativo</code> - aperigas per la valoro <code>jes</code> la akuzativan formon de la lingva nomo.\n'
		elseif prefix == "Lang-" then
			-- se la lingva kodo ne estas unu el la esceptaj, metu ion pri la parametro "kursiva", alie nenion
			if l ~= "am" and l ~= "ar" and l ~= "arc" and l ~= "bal" and l ~= "bn" and l ~= "bo" and l ~="dv" and l ~= "dz" and l ~= "egy" and l ~= "fa" and l ~= "gu" and l ~= "he" and l ~= "hi" and l ~= "hy"
			and l ~= "ja" and l ~= "ka" and l ~= "km" and l ~= "kn" and l ~= "ko" and l ~= "lo" and l ~= "ml" and l ~= "mnc" and  l ~= "mni" and l ~= "mr" and l ~= "my" and l ~= "ne" and l ~= "pa" and l ~= "pi" 
			and l ~= "ps" and l ~= "sa" and l ~= "san" and l ~= "sd" and l ~= "si" and l ~= "ta" and l ~= "te" and l ~= "th" and l ~= "ur" and l ~= "yi" and l ~= "zh" then
				r = r .. '* <code>kursiva</code> - kun la valoro <code>ne</code> malaperigas la defaŭltan kursivecon, se tio ne jam estas difinita en la koncerna ŝablono.\n'
			end
			r = r .. '* <code>ligilo</code> - kun la valoro <code>ne</code> malaperigas la ligilon ĉe la lingvo. '
			r = r .. 'Tio estas utila, se tiu ŝablono estas uzata en la artikolo pri la koncerna lingvo. '
			r = r .. 'Alie ja nur aperus grasa teksto sen ligilo, pro la trajto de la vikia programaro.\n'
			if l == "zh" then
				r = r .. "== Pliaj parametroj ==\n\n"
				r = r .. "* <code>p</code> aŭ <code>pinjino</code> por transskribo en [[pinjino]]\n"
				r = r .. "* <code>t</code> por alia tranksskribo\n"
			elseif l == "ja" then
				r = r .. "== Pliaj parametroj ==\n\n"
				r = r .. "* <code>h</code> por transskribo laŭ [[hepburn-sistemo]]\n"
				r = r .. "* <code>t</code> por alia varianto de transskribo\n"
			elseif l == "ko" then
				r = r .. "== Plia parametro ==\n\n"
				r = r .. "* <code>r</code> aŭ <code>t</code> por transskribo laŭ [[Reviziita transskribo de la korea lingvo|reviziita transskribo]]\n"				
			elseif l == "am" or l == "ar" or l == "arc" or l == "bal" or l == "bn" or l == "bo" or l =="dv" or l == "dz" or l == "egy" or l == "fa" or l == "gu" or l == "he" or l == "hi" or l == "hy"
			or l == "ka" or l == "km" or l == "kn" or l == "lo" or l == "ml" or l == "mnc" or l == "mni" or l == "mr" or l == "my" or l == "ne" or l == "pa" or l == "pi" or l == "ps" 
			or l == "sa" or l == "san" or l == "sd" or l == "si" or l == "ta" or l == "te" or l == "th" or l == "ur"  or l == "yi" then
				r = r .. "== Plia parametro ==\n\n"
				r = r .. "* <code>t</code> por transskribo\n"				
			end
		end	
		
		return r
end	


function p.adverbekzemploj (frame)
		local ekzemplo = frame.args['ekzemplo']
		local a1 = frame.args['a1']
		local a2 = frame.args['a2']
		local titolo = frame:preprocess("{{PAGENAME}}")
		local prefix = mw.ustring.sub(titolo,1,5)
		local l = mw.ustring.sub(titolo,6)
		
		-- helpaj parametroj
		local r = ""
		
		if prefix == "Lang-" then
			-- lang2 (shablono, teksto, koloro, fono, grando, pezo, kursiva)
			r = '<code>* {{' .. titolo .. '|' .. ekzemplo .. '|koloro=green|fono=yellow|grando=150%|pezo=bold}}</code>\n'
			r = r .. "redonas\n"
			r = r .. '* ' .. lang2( titolo, ekzemplo, "green", "yellow", "150%", "bold") .. '\n'
			-- se la lingva kodo ne estas unu el la esceptaj, metu ion pri la parametro "kursiva", alie nenion			
			if l ~= "am" and l ~= "ar" and l ~= "bal" and l ~= "bn" and l ~= "bo" and l ~= "dv" and l ~= "dz" and l ~= "egy" and l ~= "fa" and l~= "gu" and l ~= "he" and l ~= "hi" and l ~= "hy"
			and l ~= "ja" and l ~= "ka" and l ~= "km" and l ~= "kn" and l ~= "ko" and l ~= "lo" and l ~= "ml" and l ~= "mnc" and l ~= "mni" and l ~= "mr" and l ~= "my" and l ~= "ne" and l ~= "pa" and l~= "pi" 
			and l~= "ps" and l ~= "sa" and l ~= "san" and l ~= "sd" and l ~= "si" and l~= "ta" and l ~= "te" and l ~= "th" and l ~= "ur" and l ~= "yi"  and l ~= "zh" then			
				r = r .. 'Se vi volas malaperigi la kursivecon de la teksto, tio facile eblas:\n\n'
				r = r .. '<code>* {{' .. titolo .. '|' .. ekzemplo .. '|kursiva=ne}}</code>\n'
				r = r .. "redonas\n"	
				r = r .. '* ' .. lang2(titolo, ekzemplo, "", "", "", "", "ne" ) .. '\n'
				r = r .. 'Tio funkcias eĉ kun koloroj, ekzemple:\n\n'
				r = r .. '<code>* {{' .. titolo .. '|' .. ekzemplo .. '|koloro=green|fono=yellow|kursiva=ne}}</code>\n'
				r = r .. "redonas\n"			
				r = r .. '* ' .. lang2(titolo, ekzemplo, "green", "yellow", "", "", "ne") .. '\n'
			end
			-- ekzemploj sen ligilo ĉe la lingvo
			r = r .. '<code>* {{' .. titolo .. '|ligilo=ne}}</code>\n' 
			r = r .. "redonas\n"	
			r = r .. '* ' .. lang3(titolo, ekzemplo, "", "", "", "", "", "ne") .. '\n'			
			r = r .. 'Tio estas eĉ kombinebla kun aliaj parametroj jene:\n\n'
			r = r .. '<code>* {{' .. titolo .. '|' .. ekzemplo .. '|koloro=green|fono=yellow|grando=150%|pezo=bold|ligilo=ne}}</code>\n'
			r = r .. "redonas\n"				
			r = r .. '* ' .. lang3(titolo, ekzemplo, "green", "yellow", "150%", "bold", "ne", "ne") .. '\n'			
		else
			-- flag (shablono, teksto, koloro, fono, grando, pezo)
			r = '<code>* {{' .. titolo .. '|koloro=green|fono=yellow|grando=150%|pezo=bold}}</code>\n'
			r = r .. 'redonas\n'
			r = r .. '* ' .. flag(titolo,"green","yellow","150%","bold") .. '\n'
			if prefix ~= "Flag-" then
				r = r .. '<code>* {{' .. titolo .. '|koloro=green|fono=yellow|grando=150%|pezo=bold|akuzativo=jes}}</code>\n'
				r = r .. 'redonas\n'				
				r = r .. '* ' .. noflag(titolo, "green","yellow","150%","bold","jes") .. '\n'
			end	
			r = r .. 'Se vi volas aperigi la defaŭltan koloron de ligilo, tio facile eblas:\n\n'
			r = r .. '<code>* {{' .. titolo .. '|koloro=defaŭlta}}</code>\n'
			r = r .. 'redonas\n'	
			r = r .. '* ' .. flag(titolo, "defaŭlta") .. '\n'
			r = r .. 'Tio funkcias eĉ kun fona koloro, ekzemple:\n\n'
			r = r .. '<code>* {{' .. titolo .. '|koloro=defaŭlta|fono=yellow}}</code>\n'
			r = r .. 'redonas\n'			
			r = r .. '* ' .. flag(titolo, "defaŭlta","yellow") .. '\n'
		end	
		
		
		return r
end	






return p