Modül:translit-redirect

Vikisözlük sitesinden
Gezinti kısmına atla Arama kısmına atla
[Düzenle] [Tazele] Template-info.svg Modül belgelemesi


local export = {}

function export.tr(text, lang, sc, debug_mode)
	local translit
		
	if not sc then
		sc = require("Modül:alfabeler").bulEnIyiAlfabe(text, require("Modül:diller").getirKodaGore(lang)):getirKod()
	end
	
	local language_data = mw.loadData("Modül:translit-redirect/data")[lang]
	
	if language_data then
		script_data = language_data[sc]
		
		if script_data then
			if script_data.module then
				local success, translit_module = pcall(require, "Modül:" .. script_data.module)
			
				if success then
					translit = translit_module.tr(text, lang, sc, debug_mode)
				else
					error(translit_module)
				end
			else
				return nil
			end
		else
			if language_data.noError then
				require("Modül:debug").track{
					"translit-redirect/incorrect-script/" .. lang,
					"translit-redirect/incorrect-script/" .. lang .. "/" .. sc,
				}
				mw.log("incorrect script code (" .. sc .. ") for language code " .. lang .. "; text: " .. text)
			else
				local err = language_data.error
				if not err then
					local canonical_names = mw.loadData("Modül:diller/code to canonical name")
					local script_names = mw.loadData("Modül:alfabeler/code to canonical name")
					
					err = script_names[sc] .. " isimli alfabe " .. canonical_names[lang] .. " dili için geçersizdir."
				end
				
				error(err)
			end
		end
	end

	return translit
end

return export