Modulo:Langs

El Vikinovaĵoj, libera retgazeto

Dokumentado por ĉi tiu modulo povas esti kreata ĉe Modulo:Langs/dokumentado

--[[
------------------------------------------
--             Langs
-- Модуль для заполнения в модулях шабона lang. 
------------------------------------------
--]]

local Langs = {}

local Declension = require("Module:Declension")

-- Wrapper for invoke
-- Usage:
-- {{#invoke:Langs|getPrefixByCodeInvoke|code}}
function Langs.getPrefixByCodeInvoke(frame) 
 return Langs.getPrefixByCode(frame.args[1])
end

function Langs.getPrefixByCode(code)
 local l1, l2, l3, l4, l5 = Langs.processCode(code)
 return mw.ustring.lower(l1)
end

-- Wrapper for invoke
-- Usage:
-- {{#invoke:Langs|launch|code|text}}
function Langs.launchInvoke(frame) 
 return Langs.launch(frame.args[1], frame.args[2])
end

function Langs.launch(code, text)
 if(text == nil) then text = "Module:Langs.launch Error: empty text" end
 if(code == nil) then code = "Module:Langs.launch Error: empty code" end
 local l1, l2, l3, l4, l5 = Langs.processCode(code)
 if(l4 == false)  then return "[[" .. l1 ..  " lingvo|" .. l2 ..  "]] ''" .. text .. "''[[Kategorio:Enhavas tekston en " .. l3 .. " lingvo]][[Kategorio:En modulo Langs mankas priskribo de la lingvo]]" 
  elseif (code == "ar") then return "[[" .. l1 ..  " lingvo|" .. l2 ..  "]]" .. " ‏" .. text .. "‎[[Kategorio:Enhavas tekston en " .. l3 .. " lingvo]]" 
  elseif (code == "fa") then return "[[" .. l1 ..  " lingvo|" .. l2 ..  "]]" .. " ‏" .. text .. "‎[[Kategorio:Enhavas tekston en " .. l3 .. " lingvo]]" 
  elseif (code == "he") then return "[[" .. l1 .. "|" .. l2 .. "]]" .. " ''‏" .. text .. "‎''[[Kategorio:Enhavas tekston en " .. l3 .. "]]" 
  elseif (code == "ru") then return "[[" .. l1 .. "|" .. l2 .. "]]" .. " ''‏" .. text .. "‎''[[Kategorio:Enhavas tekston en " .. l3 .. " lingvo]]" 
  elseif (code == "fa") then return "[[" .. l1 .. "|" .. l2 .. "]]" .. " ''‏" .. text .. "‎''[[Kategorio:Enhavas tekston en " .. l3 .. " lingvo]]"   	
  elseif (code == "ps") then return "[[" .. l1 .. "|" .. l2 .. "]]" .. " ''‏" .. text .. "‎''[[Kategorio:Enhavas tekston en " .. l3 .. "]]" 
  elseif (code == "sah") then return "[[lingvo " .. l1 .. "|" .. l2 .. "]]" .. " ''‏" .. text .. "‎''[[Kategorio:Enhavas tekston en lingvo " .. l3 .. "]]" 
  elseif (code == "yi") then return "[[" .. l1 .. "|" .. l2 .. "]]" .. " ''‏" .. text .. "‎''[[Kategorio:Enhavas tekston en " .. l3 .. "]]"  
 end
-- Не добавлять слово "язык" при его названии, например "хинди" - "Содержит текст на хинди".
 if(l5 == false) then return "[[" .. l1 ..  "|" .. l2 ..  "]]" .. " ''" .. text .. "''[[Kategorio:Enhavas tekston en " .. l3 .. "]]"
  else return "[[" .. l1 ..  " lingvo|" .. l2 ..  "]]" .. " ''" .. text .. "''[[Kategorio:Enhavas tekston en " .. l3 .. " lingvo]]"
 end
end

function Langs.processCode(code)
	
 if (code == "ar") then return "Araba", "araba", "araba", true, true
  elseif (code == "az") then return "Azerbajĝana", "azerb.", "azerbajĝana", true, true
  elseif (code == "ba") then return "Baŝkira", "baŝ.", "baŝkira", true, true
  elseif (code == "be") then return "Belorusa", "bel.", "belorusa", true, true
  elseif (code == "bg") then return "Болгарский", "болг.", "болгарском", true, true
  elseif (code == "bn") then return "Бенгальский", "бенг.", "бенгальском", true, true
  elseif (code == "bua") then return "Бурятский", "бур.", "бурятском", true, true
  elseif (code == "ca") then return "Kataluna", "kataluna", "kataluna", true, true
  elseif (code == "ce") then return "Чеченский", "чеч.", "чеченском", true, true
  elseif (code == "cs") then return "Чешский", "чешск.", "чешском", true, true
  elseif (code == "da") then return "Датский", "дат.", "датском", true, true
  elseif (code == "de") then return "Germana", "germana", "germana", true, true
  elseif (code == "el") then return "Греческий", "греч.", "греческом", true, true
  elseif (code == "en") then return "Angla", "angla", "angla", true, true
  elseif (code == "en-gb") then return "Britia angla", "britia angla", "britia angla", true, false
  elseif (code == "en-us") then return "Usona angla", "usona angla", "usona angla", true, false
  elseif (code == "es") then return "Hispana", "hispana", "hispana", true, true
  elseif (code == "eu") then return "Баскский", "баск.", "баскском", true, true
  elseif (code == "et") then return "Эстонский", "эст.", "эстонском", true, true
  elseif (code == "fa") then return "Persa", "persa", "persa", true, true
  elseif (code == "fi") then return "Finna", "finna", "finna", true, true
  elseif (code == "fit") then return "Tornival-finna", "tornival-finna", "tornival-finna", true, true
  elseif (code == "fr") then return "Franca", "franca", "franca", true, true
  elseif (code == "haw") then return "Гавайский", "гав.", "гавайском", true, true
  elseif (code == "he") then return "Иврит", "ивр.", "иврите", true, true
  elseif (code == "hi") then return "Хинди", "хинди", "хинди", true, false
  elseif (code == "hr") then return "Kroata", "kroata", "kroata", true, true
  elseif (code == "hu") then return "Hungara", "hungara", "hungara", true, true
  elseif (code == "hy") then return "Armena", "armena", "armena", true, true
  elseif (code == "id") then return "Индонезийский", "индон.", "индонезийском", true, true
  elseif (code == "inh") then return "Ингушский", "инг.", "ингушском", true, true
  elseif (code == "it") then return "Itala", "itala", "itala", true, true
  elseif (code == "ja") then return "Japana", "japana", "japana", true, true
  elseif (code == "ka") then return "Kartvela", "kartvela", "kartvela", true, true
  elseif (code == "kk") then return "Kazaĥa", "kazaĥa", "kazaĥa", true, true
  elseif (code == "ko") then return "Korea", "korea", "korea", true, true
  elseif (code == "kv") then return "Коми", "коми", "коми", true, true
  elseif (code == "ky") then return "Korgiza", "kirgiza", "kirgiza", true, true
  elseif (code == "la") then return "Латинский", "лат.", "латинском", true, true
  elseif (code == "lez") then return "Лезгинский", "лезг.", "лезгинском", true, true
  elseif (code == "lt") then return "Litova", "litova", "litova", true, true
  elseif (code == "lv") then return "Latva", "latva", "latva", true, true
  elseif (code == "mi") then return "Маори", "маори", "маори", true, false
  elseif (code == "mk") then return "Македонский", "макед.", "македонском", true, true
  elseif (code == "mn") then return "Монгольский", "монг.", "монгольском", true, true
  elseif (code == "ms") then return "Малайский", "малайск.", "малайском", true, true
  elseif (code == "nl") then return "Nederlanda", "nederlanda", "nederlanda", true, true
  elseif (code == "no") then return "Норвежский", "норв.", "норвежском", true, true
  elseif (code == "nor") then return "Норвежский", "норв.", "норвежском", true, true
  elseif (code == "oc") then return "Окситанский", "окс.", "окситанском", true, true
  elseif (code == "ovd") then return "Elfdalia", "elfdalia", "elfdalia", true, true
  elseif (code == "pl") then return "Польский", "польск.", "польском", true, true
  elseif (code == "ps") then return "Пушту", "пушту", "пушту", true, true
  elseif (code == "pt") then return "Португальский", "порт.", "португальском", true, true
  elseif (code == "rm") then return "Романшский", "ромш.", "романшском", true, true
  elseif (code == "ro") then return "Rumana", "rumana", "rumana", true, true
  elseif (code == "rom") then return "Romaa", "romaa", "romaa", true, true
  elseif (code == "ru") then return "Rusa", "rusa", "rusa", true, true
  elseif (code == "sah") then return "Саха", "саха", "саха", true, true
  elseif (code == "sk") then return "Словацкий", "словац.", "словацком", true, true
  elseif (code == "sl") then return "Словенский", "словен.", "словенском", true, true
  elseif (code == "sma") then return "Sud-samea", "sud-samea", "sud-samea", true, true
  elseif (code == "smi") then return "Samea", "samea", "samea", true, true
  elseif (code == "sr") then return "Сербский", "серб.", "сербском", true, true
  elseif (code == "sv") then return "Sveda", "sveda", "sveda", true, true
  elseif (code == "tk") then return "Turkmena", "turkmena", "turkmena", true, true
  elseif (code == "tr") then return "Turka", "turka", "turka", true, true
  elseif (code == "tt") then return "Tatara", "tatara", "tatara", true, true
  elseif (code == "tt-cyrl") then return "Tatara", "tatara", "tatara", true, true
  elseif (code == "uz") then return "Uzbeka", "uzbeka", "uzbeka", true, true
  elseif (code == "uk") then return "Ukraina", "ukraina", "ukraina", true, true
  elseif (code == "vec") then return "Венетский", "вен.", "венетском", true, true
  elseif (code == "vi") then return "Vjetnama", "vjetnama", "vjetnama", true, true
  elseif (code == "vls") then return "Okcidentflandra", "okcidentflandra", "okcidentflandra", true, true
  elseif (code == "yi") then return "Jido", "jido", "jido", true, false
  elseif (code == "zh") then return "Ĉina", "ĉina", "ĉina", true, true 
  elseif (code == "zh-cn") then return "Ĉina", "ĉina", "ĉina", true, true   	
  else return code, code..".", code, false, false
 end
end

return Langs