Módulo:Diferencias de traducción

De WikiMinecraft
Revisión del 12:30 8 nov 2026 de importado>ImportMC (Actualización: página nueva)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

La documentación para este módulo puede ser creada en Módulo:Diferencias de traducción/doc

local p = {}

local lang_to_flag = {
	java_ar = "Bandera de Argentina.svg" ,
	java_cl = "Bandera de Chile.svg" ,
	java_ec = "Bandera de Ecuador.svg" ,
	java_mx = "Bandera de México.svg" ,
	java_uy = "Bandera de Uruguay.svg" ,
	java_ve = "Bandera de Venezuela.svg" ,
	bedrock_es = "Bandera de España.svg" ,
	bedrock_mx = "Bandera de México.svg"
}

local translations = require('Módulo:Diferencias de traducción/traducciones')

-- TODO Implement translations comparison table.

function p.getTranslation(frame)
    local java_es, translation = frame.args[1], frame.args[2]
    return translations[java_es] and translations[java_es][translation] or java_es
end

function p.getTranslations(frame)
    local java_es = frame.args[1]
    local data = translations[java_es] or {}
    local result = {}
    for _, lang in ipairs({ "java_ar", "java_cl", "java_ec", "java_mx", "java_uy", "java_ve", "bedrock_es", "bedrock_mx" }) do
        table.insert(result, data[lang])
    end
    return table.concat(result, "§")
end

function p.otherNames(frame)
    local data = translations[frame.args[1]] or {}
    local other_names = {}
    local text = ""
    
    for i, lang in ipairs({ "java_ar", "java_cl", "java_ec", "java_mx", "java_uy", "java_ve", "bedrock_es", "bedrock_mx" }) do
    	local name = frame.args[i + 1] ~= "" and frame.args[i + 1] or data[lang]
    		
    	if name ~= nil and name ~= "" then
	    	if other_names[name] == nil then
	    		other_names[name] = {}
	    	end
	    	table.insert(other_names[name], lang)
    	end
    end
    
    local sorted_names = {}
	for name in pairs(other_names) do
	    table.insert(sorted_names, name)
	end
	table.sort(sorted_names)
    
    for _, name in ipairs(sorted_names) do
    	local langs = other_names[name]
    	local java_langs = ""
    	local bedrock_langs = ""
    	for _, lang in ipairs(langs) do
    		if string.find(lang, "java") then
    			java_langs = java_langs .. " [[Archivo:" .. lang_to_flag[lang] .. "|14px|link=|alt=Ícono de " .. lang_to_flag[lang] .. "]]"
    		else
    			bedrock_langs = bedrock_langs .. " [[Archivo:" .. lang_to_flag[lang] .. "|14px|link=|alt=Ícono de " .. lang_to_flag[lang] .. "]]"
    		end
    	end
    	
    	text = text .. "<div><p>" .. name .. "</p><ul><li>"
    	if java_langs ~= "" then
    		text = text .. "[[Java Edition|JE]]:" .. java_langs
    	end
    	if java_langs ~= "" and bedrock_langs ~= "" then
    		text = text .. "</li><li>"
    	end
    	if bedrock_langs ~= "" then
    		text = text .. "[[Bedrock Edition|BE]]:" .. bedrock_langs
    	end
    	text = text .. "</li></ul></div>"
    end
    
    return text
end

return p