local pd = require("Modulo:Partidisc")
local zh = require("Modulo:Cinese")
local ja = require("Modulo:Giapponese")
local title = mw.title.getCurrentTitle().text
local p = {}

function p.trascrizione(frame)
	lingua = frame.args[1]
	sistema = frame.args[2]
	pardisc = frame.args[3] or ""
	cat2 = "" --categoria aggiuntiva, necessaria per alcune lingue
--se è specificato un terzo parametro, restituisce la parte del discorso corrispondente
        if pardisc == "" then
        	partedisc = "delle parole"
        else
        	partedisc = pd.partidiscprep(pardisc) or error("parte del discorso non riconosciuta")
    	end
--funzioni aggiuntive per lingue specifiche
	---per l'arabo
	    if lingua == "arabo" and sistema == "ISO 233" or sistema == "233" then
	    	sistema = "ISO 233" sistemalink = "[[:w:Trascrizione dall'arabo|ISO 233]]" catsort = title
   ---per il cinese
	    elseif lingua == "cinese" and sistema == "pinyin" or sistema == "pin" then
	    	sistema = "pinyin" sistemalink = "[[Appendice:Pinyin|pinyin]]" catsort = zh.nodiacritic(title)
   --per il giapponese
	    elseif lingua == "giapponese" and sistema == "Hepburn" or sistema == "hepburn" or sistema == "hep" then
	    	sistema = "Hepburn" sistemalink = "[[Hepburn]]" catsort = ja.nodiacritic(title)
   --per il russo e per tutte le lingue che usano il cirillico (trascrizione ISO 9 e scientifica)
	    elseif sistema == "ISO 9:1968" or sistema == "968" then
	    	sistema = "ISO 9:1968" sistemalink = "[[Appendice:Traslitterazione del cirillico|ISO 9:1968]]" catsort = title
	    elseif sistema == "ISO 9:1995" or sistema == "995" then
	    	sistema = "ISO 9:1995" sistemalink = "[[Appendice:Traslitterazione del cirillico|ISO 9:1995]]" catsort = title
	    elseif sistema == "scientifica" then
	    	sistema = "scientifica" sistemalink = "[[Appendice:Traslitterazione del cirillico|scientifica]]" catsort = title
	    elseif sistema == "ISO 9:1968s" or sistema == "968s" then
	    	sistema = "ISO 9:1968" sistemalink = "[[Appendice:Traslitterazione del cirillico|scientifica, ISO 9:1968]]" catsort = title cat2 = "[[Categoria:Trascrizione scientifica delle parole in ".. lingua.. "|".. catsort.. "]][[Categoria:Trascrizione scientifica ".. partedisc.. " in ".. lingua.. "|".. catsort.. "]]"
   --per tutte le altre lingue e sistemi
	    else catsort = title sistemalink = "[[".. sistema.. "]]" end
return "[[trascrizione|Trascrizione]] (".. sistemalink.. ") [[Categoria:Trascrizione ".. sistema.. " delle parole in ".. lingua.. "|".. catsort.. "]][[Categoria:Trascrizione ".. sistema.. " ".. partedisc.. " in ".. lingua.. "|".. catsort.. "]]".. cat2
end
return p