Модул:Langs

От Уикиновини

Документация за този модул може да бъде създадена на Модул:Langs/doc

--[[
------------------------------------------
--             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 ..  " язык|" .. l2 ..  "]] ''" .. text .. "''[[Категория:Содержат текст на " .. l3 .. " языке]][[Категория:В модуле Langs отсутствует описание языка]]" 
  elseif (code == "ar") then return "[[" .. l1 ..  " язык|" .. l2 ..  "]]" .. " ‏" .. text .. "‎[[Категория:Содержат текст на " .. l3 .. " языке]]" 
  elseif (code == "he") then return "[[" .. l1 .. "|" .. l2 .. "]]" .. " ''‏" .. text .. "‎''[[Категория:Содержат текст на " .. l3 .. "]]" 
  elseif (code == "ps") then return "[[" .. l1 .. "|" .. l2 .. "]]" .. " ''‏" .. text .. "‎''[[Категория:Содержат текст на " .. l3 .. "]]" 
  elseif (code == "yi") then return "[[" .. l1 .. "|" .. l2 .. "]]" .. " ''‏" .. text .. "‎''[[Категория:Содержат текст на " .. l3 .. "]]"  
 end
-- Не добавлять слово "язык" при его названии, например "хинди" - "Содержит текст на хинди".
 if(l5 == false) then return "[[" .. l1 ..  "|" .. l2 ..  "]]" .. " ''" .. text .. "''[[Категория:Содержат текст на " .. l3 .. "]]"
  else return "[[" .. l1 ..  " язык|" .. l2 ..  "]]" .. " ''" .. text .. "''[[Категория:Содержат текст на " .. l3 .. " языке]]"
 end
end

function Langs.processCode(code)
 if (code == "ar") then return "Арабски", "араб.", "арабски", true, true
  elseif (code == "az") then return "Азърбайджански", "азърб.", "азърбайджански", true, true
  elseif (code == "ba") then return "Башкирски", "баш.", "башкирски", true, true
  elseif (code == "be") then return "Белоруски", "бел.", "белоруски", true, true
  elseif (code == "bg") then return "Български", "бълг.", "български", true, true
  elseif (code == "bn") then return "Бенгалски", "бенг.", "бенгалски", true, true
  elseif (code == "ca") then return "Каталански", "кат.", "каталански", 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 "Немски", "нем.", "немски", true, true
  elseif (code == "el") then return "Гръцки", "гръц.", "гръцки", true, true
  elseif (code == "en") then return "Английски", "англ.", "английски", true, true
  elseif (code == "en-gb") then return "Британски вариант на английския език", "брит. англ.", "британски вариант та английския език", true, false
  elseif (code == "en-us") then return "Американски вариант на английския език", "амер. англ.", "американски вариант на английския език", true, false
  elseif (code == "es") then return "Испански", "исп.", "испански", true, true
  elseif (code == "et") then return "Естонски", "ест.", "естонски", true, true
  elseif (code == "fa") then return "Персийски", "перс.", "персийски", true, true
  elseif (code == "fi") then return "Фински", "фин.", "фински", true, true
  elseif (code == "fr") then return "Френски", "фр.", "френски", 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 "Хърватски", "хърв.", "хърватски", true, true
  elseif (code == "hu") then return "Унгарски", "унг.", "унгарски", true, true
  elseif (code == "hy") then return "Арменски", "арм.", "арменски", true, true
  elseif (code == "id") then return "Индонезийски", "индон.", "индонезийски", true, true
  elseif (code == "inh") then return "Ингушски", "инг.", "ингушски", true, true
  elseif (code == "it") then return "Италиански", "итал.", "италиански", true, true
  elseif (code == "ja") then return "Японски", "яп.", "японски", true, true
  elseif (code == "ka") then return "Грузински", "груз.", "грузински", true, true
  elseif (code == "kk") then return "Казахски", "каз.", "казахски", true, true
  elseif (code == "ko") then return "Корейски", "кор.", "корейски", true, true
  elseif (code == "kv") then return "Коми", "коми", "коми", true, true
  elseif (code == "ky") then return "Киргизски", "кирг.", "киргизски", true, true
  elseif (code == "la") then return "Латински", "лат.", "латинском", true, true
  elseif (code == "lt") then return "Литовски", "лит.", "литовском", true, true
  elseif (code == "lv") then return "Латвийски", "латв.", "латвийски", true, true
  elseif (code == "mi") then return "Маори", "маори", "маори", true, false
  elseif (code == "mk") then return "Македонски", "макед.", "македонски", true, true
  elseif (code == "ms") then return "Малайски", "малайск.", "малайски", true, true
  elseif (code == "nl") then return "Нидерландски", "нидерл.", "нидерландски", true, true
  elseif (code == "oc") then return "Окситански", "окс.", "окситански", 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 "Румънски", "рум.", "румънски", true, true
  elseif (code == "ru") then return "Руски", "рус.", "руски", true, true
  elseif (code == "sk") then return "Словашки", "словаш.", "словашки", true, true
  elseif (code == "sl") then return "Словенски", "словен.", "словенски", true, true	
  elseif (code == "sr") then return "Сръбски", "сръб.", "сръбски", true, true
  elseif (code == "sv") then return "Шведски", "швед.", "шведски", true, true
  elseif (code == "tr") then return "Турски", "тур.", "турски", true, true
  elseif (code == "tt") then return "Татарски", "тат.", "татарски", true, true
  elseif (code == "uk") then return "Украински", "укр.", "украински", true, true
  elseif (code == "vec") then return "Венетски", "вен.", "венетски", true, true
  elseif (code == "vi") then return "Виетнамски", "виетн.", "виетнамски", true, true
  elseif (code == "yi") then return "Идиш", "идиш", "идише", true, false
  elseif (code == "zh") then return "Китайски", "кит.", "китайски", true, true 
  else return code, code..".", code, false, false
 end
end

return Langs