{{translit}}


local p = {}

local errcat = '[[Kategoria:Błąd w transliteracji]]'

local commonTransliteration = {
    ["-"] = "-",
    ["–"] = "–",
    ["—"] = "—",
    ["="] = "=",
    [","] = ",",
    ["."] = ".",
    ["/"] = "/",
    [";"] = ";",
    ["'"] = "'",
    ["["] = "[",
    ["]"] = "]",
    ["\\"] = "\\",
    ["`"] = "`",
    ["~"] = "~",
    ["!"] = "!",
    ["@"] = "@",
    ["#"] = "#",
    ["$"] = "$",
    ["%"] = "%",
    ["^"] = "^",
    ["&"] = "&",
    ["*"] = "*",
    ["("] = "(",
    [")"] = ")",
    ["_"] = "_",
    ["+"] = "+",
    ["{"] = "{",
    ["}"] = "}",
    ["|"] = "|",
    [":"] = ":",
    ["\""] = "\"",
    ["<"] = "<",
    [">"] = ">",
    ["?"] = "?" ,
    [" "] = " "
}

local transliterationAr = {
    ["ء"] = "ʾ",
    ["ا"] = "ā",
    ["ب"] = "b",
    ["ت"] = "t",
    ["ث"] = "ṯ",
    ["ج"] = "ǧ",
    ["ح"] = "ḥ",
    ["خ"] = "ḫ",
    ["د"] = "d",
    ["ذ"] = "ḏ",
    ["ر"] = "r",
    ["ز"] = "z",
    ["س"] = "s",
    ["ش"] = "š",
    ["ص"] = "ṣ",
    ["ض"] = "ḍ",
    ["ط"] = "ṭ",
    ["ظ"] = "ẓ",
    ["ع"] = "ʿ",
    ["غ"] = "ġ",
    ["ف"] = "f",
    ["ق"] = "q",
    ["ك"] = "k",
    ["ل"] = "l",
    ["م"] = "m",
    ["ن"] = "n",
    ["ه"] = "h",
    ["و"] = "w",
    ["ى"] = "y",
    ["ي"] = "ī"
}

local transliterationEl = {
    ["Α"] = "A",
    ["α"] = "a",
    ["Β"] = "B",
    ["β"] = "b",
    ["Γ"] = "G",
    ["γ"] = "g",
    ["Δ"] = "D",
    ["δ"] = "d",
    ["Ε"] = "E",
    ["ε"] = "e",
    ["Ζ"] = "Z",
    ["ζ"] = "z",
    ["Η"] = "E",
    ["η"] = "e",
    ["Θ"] = "TH",
    ["θ"] = "th",
    ["Ι"] = "I",
    ["ι"] = "i",
    ["Κ"] = "C",
    ["κ"] = "c",
    ["Λ"] = "L",
    ["λ"] = "l",
    ["Μ"] = "M",
    ["μ"] = "m",
    ["Ν"] = "N",
    ["ν"] = "n",
    ["Ξ"] = "X",
    ["ξ"] = "x",
    ["Ο"] = "O",
    ["ο"] = "o",
    ["Π"] = "P",
    ["π"] = "p",
    ["Ρ"] = "R",
    ["ρ"] = "r",
    ["Σ"] = "S",
    ["σ"] = "s",
    ["ς"] = "s",
    ["Τ"] = "T",
    ["τ"] = "t",
    ["Υ"] = "Y",
    ["υ"] = "y",
    ["Φ"] = "PH",
    ["φ"] = "ph",
    ["Χ"] = "CH",
    ["χ"] = "ch",
    ["Ψ"] = "PS",
    ["ψ"] = "ps",
    ["Ω"] = "O",
    ["ω"] = "o"
}

local transliterationHi = {
    ["अ"] = "a",
    ["आ"] = "ā",
    ["इ"] = "i",
    ["ई"] = "ī",
    ["उ"] = "u",
    ["ऊ"] = "ū",
    ["ऋ"] = "ṛ",
    ["ॠ"] = "ṝ",
    ["ऌ"] = "ḷ",
    ["ॡ"] = "ḹ",
    ["ए"] = "e",
    ["ऐ"] = "ai",
    ["ओ"] = "o",
    ["औ"] = "au",
    ["अं"] = "ṃ",
    ["अः"] = "ḥ",
    ["क"] = "k",
    ["च"] = "c",
    ["ट"] = "ṭ",
    ["त"] = "t",
    ["प"] = "p",
    ["ख"] = "kh",
    ["छ"] = "ch",
    ["ठ"] = "ṭh",
    ["थ"] = "th",
    ["फ"] = "ph",
    ["ग"] = "g",
    ["ज"] = "j",
    ["ड"] = "ḍ",
    ["द"] = "d",
    ["ब"] = "b",
    ["घ"] = "gh",
    ["झ"] = "jh",
    ["ढ"] = "ḍh",
    ["ध"] = "dh",
    ["भ"] = "bh",
    ["ङ"] = "ṅ",
    ["ञ"] = "ñ",
    ["ण"] = "ṇ",
    ["न"] = "n",
    ["म"] = "m",
    ["य"] = "y",
    ["र"] = "r",
    ["ल"] = "l",
    ["व"] = "v",
    ["श"] = "ś",
    ["ष"] = "ṣ",
    ["स"] = "s",
    ["ह"] = "h"
}

local transliterationHy = {
    ["Ա"] = "A",
    ["ա"] = "a",
    ["Բ"] = "B",
    ["բ"] = "b",
    ["Գ"] = "G",
    ["գ"] = "g",
    ["Դ"] = "D",
    ["դ"] = "d",
    ["Ե"] = "E",
    ["ե"] = "e",
    ["Զ"] = "Z",
    ["զ"] = "z",
    ["Է"] = "Ē",
    ["է"] = "ē",
    ["Ը"] = "Ë",
    ["ը"] = "ë",
    ["Թ"] = "T’",
    ["թ"] = "t’",
    ["Ժ"] = "Ž",
    ["ժ"] = "ž",
    ["Ի"] = "I",
    ["ի"] = "i",
    ["Լ"] = "L",
    ["լ"] = "l",
    ["Խ"] = "X",
    ["խ"] = "x",
    ["Ծ"] = "Ç",
    ["ծ"] = "ç",
    ["Կ"] = "K",
    ["կ"] = "k",
    ["Հ"] = "H",
    ["հ"] = "h",
    ["Ձ"] = "J",
    ["ձ"] = "j",
    ["Ղ"] = "Ġ",
    ["ղ"] = "ġ",
    ["Ճ"] = "Č̣",
    ["ճ"] = "č̣",
    ["Մ"] = "M",
    ["մ"] = "m",
    ["Յ"] = "Y",
    ["յ"] = "y",
    ["Ն"] = "N",
    ["ն"] = "n",
    ["Շ"] = "Š",
    ["շ"] = "š",
    ["Ո"] = "O",
    ["ո"] = "o",
    ["Չ"] = "Č",
    ["չ"] = "č",
    ["Պ"] = "P",
    ["պ"] = "p",
    ["Ջ"] = "J̌",
    ["ջ"] = "ǰ",
    ["Ռ"] = "Ṙ",
    ["ռ"] = "ṙ",
    ["Ս"] = "S",
    ["ս"] = "s",
    ["Վ"] = "V",
    ["վ"] = "v",
    ["Տ"] = "T",
    ["տ"] = "t",
    ["Ր"] = "R",
    ["ր"] = "r",
    ["Ց"] = "c’",
    ["ց"] = "c’",
    ["Ւ"] = "W",
    ["ւ"] = "w",
    ["ՈՒ"] = "OW",
    ["ու"] = "ow",
    ["Փ"] = "P’",
    ["փ"] = "p’",
    ["Ք"] = "K’",
    ["ք"] = "k’",
    ["ԵՒ"] = "EW",
    ["և"] = "ew",
    ["Օ"] = "Ò",
    ["օ"] = "ò",
    ["Ֆ"] = "F",
    ["ֆ"] = "f"
}

local transliterationRu = {
    ["А"] = "A",
    ["а"] = "a",
    ["Б"] = "B",
    ["б"] = "b",
    ["В"] = "V",
    ["в"] = "v",
    ["Г"] = "G",
    ["г"] = "g",
    ["Д"] = "D",
    ["д"] = "d",
    ["Е"] = "E",
    ["е"] = "e",
    ["Ё"] = "Ё",
    ["ё"] = "ё",
    ["Ж"] = "Ž",
    ["ж"] = "ž",
    ["З"] = "Z",
    ["з"] = "z",
    ["И"] = "I",
    ["и"] = "i",
    ["Й"] = "J",
    ["й"] = "j",
    ["К"] = "K",
    ["к"] = "k",
    ["Л"] = "L",
    ["л"] = "l",
    ["М"] = "M",
    ["м"] = "m",
    ["Н"] = "N",
    ["н"] = "n",
    ["О"] = "O",
    ["о"] = "o",
    ["П"] = "P",
    ["п"] = "p",
    ["Р"] = "R",
    ["р"] = "r",
    ["С"] = "S",
    ["с"] = "s",
    ["Т"] = "T",
    ["т"] = "t",
    ["У"] = "U",
    ["у"] = "u",
    ["Ф"] = "F",
    ["ф"] = "f",
    ["Х"] = "H",
    ["х"] = "h",
    ["Ц"] = "C",
    ["ц"] = "c",
    ["Ч"] = "Č",
    ["ч"] = "č",
    ["Ш"] = "Š",
    ["ш"] = "š",
    ["Щ"] = "Ŝ",
    ["щ"] = "ŝ",
    ["Ъ"] = "<i>″</i>",
    ["ъ"] = "<i>″</i>",
    ["Ы"] = "Y",
    ["ы"] = "y",
    ["Ь"] = "ʹ",
    ["ь"] = "ʹ",
    ["Э"] = "È",
    ["э"] = "è",
    ["Ю"] = "Û",
    ["ю"] = "û",
    ["Я"] = "Â",
    ["я"] = "â",
    ["’"] = "’",
    ["’"] = "’"
}

local transliterationUk = {
    ["А"] = "A",
    ["а"] = "a",
    ["Б"] = "B",
    ["б"] = "b",
    ["В"] = "V",
    ["в"] = "v",
    ["Г"] = "G",
    ["г"] = "g",
    ["Ґ"] = "G̀",
    ["ґ"] = "g̀",
    ["Д"] = "D",
    ["д"] = "d",
    ["Е"] = "E",
    ["е"] = "e",
    ["Є"] = "Ê",
    ["є"] = "ê",
    ["Ж"] = "Ž",
    ["ж"] = "ž",
    ["З"] = "Z",
    ["з"] = "z",
    ["И"] = "I",
    ["и"] = "i",
    ["І"] = "Ì",
    ["і"] = "ì",
    ["Ї"] = "Ї",
    ["ї"] = "ї",
    ["Й"] = "J",
    ["й"] = "j",
    ["К"] = "K",
    ["к"] = "k",
    ["Л"] = "L",
    ["л"] = "l",
    ["М"] = "M",
    ["м"] = "m",
    ["Н"] = "N",
    ["н"] = "n",
    ["О"] = "O",
    ["о"] = "o",
    ["П"] = "P",
    ["п"] = "p",
    ["Р"] = "R",
    ["р"] = "r",
    ["С"] = "S",
    ["с"] = "s",
    ["Т"] = "T",
    ["т"] = "t",
    ["У"] = "U",
    ["у"] = "u",
    ["Ф"] = "F",
    ["ф"] = "f",
    ["Х"] = "H",
    ["х"] = "h",
    ["Ц"] = "C",
    ["ц"] = "c",
    ["Ч"] = "Č",
    ["ч"] = "č",
    ["Ш"] = "Š",
    ["ш"] = "š",
    ["Щ"] = "Ŝ",
    ["щ"] = "ŝ",
    ["Ь"] = "ʹ",
    ["ь"] = "ʹ",
    ["Ю"] = "Û",
    ["ю"] = "û",
    ["Я"] = "Â",
    ["я"] = "â",
    ["’"] = "’",
    ["’"] = "’"
}

local transliterationBe = {
    ["А"] = "A",
    ["а"] = "a",
    ["Б"] = "B",
    ["б"] = "b",
    ["В"] = "V",
    ["в"] = "v",
    ["Г"] = "G",
    ["г"] = "g",
    ["Д"] = "D",
    ["д"] = "d",
    ["Е"] = "E",
    ["е"] = "e",
    ["Ё"] = "Ё",
    ["ё"] = "ё",
    ["Ж"] = "Ž",
    ["ж"] = "ž",
    ["З"] = "Z",
    ["з"] = "z",
    ["І"] = "Ì",
    ["і"] = "ì",
    ["Й"] = "J",
    ["й"] = "j",
    ["К"] = "K",
    ["к"] = "k",
    ["Л"] = "L",
    ["л"] = "l",
    ["М"] = "M",
    ["м"] = "m",
    ["Н"] = "N",
    ["н"] = "n",
    ["О"] = "O",
    ["о"] = "o",
    ["П"] = "P",
    ["п"] = "p",
    ["Р"] = "R",
    ["р"] = "r",
    ["С"] = "S",
    ["с"] = "s",
    ["Т"] = "T",
    ["т"] = "t",
    ["У"] = "U",
    ["у"] = "u",
    ["Ў"] = "Ŭ",
    ["ў"] = "ŭ",
    ["Ф"] = "F",
    ["ф"] = "f",
    ["Х"] = "H",
    ["х"] = "h",
    ["Ц"] = "C",
    ["ц"] = "c",
    ["Ч"] = "Č",
    ["ч"] = "č",
    ["Ш"] = "Š",
    ["ш"] = "š",
    ["Ы"] = "Y",
    ["ы"] = "y",
    ["Ь"] = "ʹ",
    ["ь"] = "ʹ",
    ["Э"] = "È",
    ["э"] = "è",
    ["Ю"] = "Û",
    ["ю"] = "û",
    ["Я"] = "Â",
    ["я"] = "â",
    ["’"] = "’",
    ["’"] = "’"
}

local transliterationBg = {
    ["А"] = "A",
    ["а"] = "a",
    ["Б"] = "B",
    ["б"] = "b",
    ["В"] = "V",
    ["в"] = "v",
    ["Г"] = "G",
    ["г"] = "g",
    ["Д"] = "D",
    ["д"] = "d",
    ["К"] = "K",
    ["к"] = "k",
    ["Л"] = "L",
    ["л"] = "l",
    ["М"] = "M",
    ["м"] = "m",
    ["Н"] = "N",
    ["н"] = "n",
    ["О"] = "O",
    ["о"] = "o",
    ["П"] = "P",
    ["п"] = "p",
    ["Р"] = "R",
    ["р"] = "r",
    ["С"] = "S",
    ["с"] = "s",
    ["Т"] = "T",
    ["т"] = "t",
    ["У"] = "U",
    ["у"] = "u",
    ["Е"] = "E",
    ["е"] = "e",
    ["Ѐ"] = "È",
    ["ѐ"] = "è",
    ["Ж"] = "Ž",
    ["ж"] = "ž",
    ["З"] = "Z",
    ["з"] = "z",
    ["И"] = "I",
    ["и"] = "i",
    ["Ѝ"] = "Ì",
    ["ѝ"] = "ì",
    ["Й"] = "J",
    ["й"] = "i",
    ["Ф"] = "F",
    ["ф"] = "f",
    ["Х"] = "H",
    ["х"] = "h",
    ["Ц"] = "C",
    ["ц"] = "c",
    ["Ч"] = "Č",
    ["ч"] = "č",
    ["Ш"] = "Š",
    ["ш"] = "š",
    ["Щ"] = "Ŝ",
    ["щ"] = "ŝ",
    ["Ъ"] = "<i>″</i>",
    ["ъ"] = "<i>″</i>",
    ["Ь"] = "<i>´</i>",
    ["ь"] = "<i>´</i>",
    ["Ю"] = "Û",
    ["ю"] = "û",
    ["Я"] = "Â",
    ["я"] = "â"
}

local transliterationSr = {
    ["А"] = "A",
    ["а"] = "a",
    ["Б"] = "B",
    ["б"] = "b",
    ["В"] = "V",
    ["в"] = "v",
    ["Г"] = "G",
    ["г"] = "g",
    ["Д"] = "D",
    ["д"] = "d",
    ["Ђ"] = "Đ",
    ["ђ"] = "đ",
    ["Е"] = "E",
    ["е"] = "e",
    ["Ж"] = "Ž",
    ["ж"] = "ž",
    ["Њ"] = "N̂",
    ["њ"] = "n̂",
    ["О"] = "O",
    ["о"] = "o",
    ["П"] = "P",
    ["п"] = "p",
    ["Р"] = "R",
    ["р"] = "r",
    ["С"] = "S",
    ["с"] = "s",
    ["Т"] = "T",
    ["т"] = "t",
    ["Ћ"] = "Ć",
    ["ћ"] = "ć",
    ["З"] = "Z",
    ["з"] = "z",
    ["И"] = "I",
    ["и"] = "i",
    ["Ј"] = "J̌",
    ["ј"] = "ǰ",
    ["К"] = "K",
    ["к"] = "k",
    ["Л"] = "L",
    ["л"] = "l",
    ["Љ"] = "L̂",
    ["љ"] = "l̂",
    ["М"] = "M",
    ["м"] = "m",
    ["Н"] = "N",
    ["н"] = "n",
    ["У"] = "U",
    ["у"] = "u",
    ["Ф"] = "F",
    ["ф"] = "f",
    ["Х"] = "H",
    ["х"] = "h",
    ["Ц"] = "C",
    ["ц"] = "c",
    ["Ч"] = "Č",
    ["ч"] = "č",
    ["Џ"] = "D̂",
    ["џ"] = "d̂",
    ["Ш"] = "Š",
    ["ш"] = "š"
}

local transliterationMk = {
    ["А"] = "A",
    ["а"] = "a",
    ["Б"] = "B",
    ["б"] = "b",
    ["В"] = "V",
    ["в"] = "v",
    ["Г"] = "G",
    ["г"] = "g",
    ["Ѓ"] = "Ǵ",
    ["ѓ"] = "ǵ",
    ["Д"] = "D",
    ["д"] = "d",
    ["Е"] = "E",
    ["е"] = "e",
    ["Ѐ"] = "È",
    ["ѐ"] = "è",
    ["Ж"] = "Ž",
    ["ж"] = "ž",
    ["З"] = "Z",
    ["з"] = "z",
    ["Ѕ"] = "Ẑ",
    ["ѕ"] = "ẑ",
    ["И"] = "I",
    ["и"] = "i",
    ["Ѝ"] = "Ì",
    ["ѝ"] = "ì",
    ["Ј"] = "J̌",
    ["ј"] = "ǰ",
    ["К"] = "K",
    ["к"] = "k",
    ["Л"] = "L",
    ["л"] = "l",
    ["Љ"] = "L̂",
    ["љ"] = "l̂",
    ["М"] = "M",
    ["м"] = "m",
    ["Н"] = "N",
    ["н"] = "n",
    ["Њ"] = "N̂",
    ["њ"] = "n̂",
    ["О"] = "O",
    ["о"] = "o",
    ["П"] = "P",
    ["п"] = "p",
    ["Р"] = "R",
    ["р"] = "r",
    ["С"] = "S",
    ["с"] = "s",
    ["Т"] = "T",
    ["т"] = "t",
    ["Ќ"] = "Ḱ",
    ["ќ"] = "ḱ",
    ["У"] = "U",
    ["у"] = "u",
    ["Ф"] = "F",
    ["ф"] = "f",
    ["Х"] = "H",
    ["х"] = "h",
    ["Ц"] = "C",
    ["ц"] = "c",
    ["Ч"] = "Č",
    ["ч"] = "č",
    ["Џ"] = "D̂",
    ["џ"] = "d̂",
    ["Ш"] = "Š",
    ["ш"] = "š"
}

local transliterationKk = {
    ["А"] = "A",
    ["а"] = "a",
    ["Ә"] = "Ä",
    ["ә"] = "ä",
    ["Б"] = "B",
    ["б"] = "b",
    ["В"] = "V",
    ["в"] = "v",
    ["Г"] = "G",
    ["г"] = "g",
    ["Ғ"] = "Ğ",
    ["ғ"] = "ğ",
    ["Д"] = "D",
    ["д"] = "d",
    ["Е"] = "E",
    ["е"] = "e",
    ["Ё"] = "Yo",
    ["ё"] = "yo",
    ["Ж"] = "J",
    ["ж"] = "j",
    ["З"] = "Z",
    ["з"] = "z",
    ["И"] = "Ï",
    ["и"] = "ï",
    ["Й"] = "Y",
    ["й"] = "y",
    ["К"] = "K",
    ["к"] = "k",
    ["Қ"] = "Q",
    ["қ"] = "q",
    ["Л"] = "L",
    ["л"] = "l",
    ["М"] = "M",
    ["м"] = "m",
    ["Н"] = "N",
    ["н"] = "n",
    ["Ң"] = "Ñ",
    ["ң"] = "ñ",
    ["О"] = "O",
    ["о"] = "o",
    ["Ө"] = "Ö",
    ["ө"] = "ö",
    ["П"] = "P",
    ["п"] = "p",
    ["Р"] = "R",
    ["р"] = "r",
    ["С"] = "S",
    ["с"] = "s",
    ["Т"] = "T",
    ["т"] = "t",
    ["У"] = "W",
    ["у"] = "w",
    ["Ұ"] = "U",
    ["ұ"] = "u",
    ["Ү"] = "Ü",
    ["ү"] = "ü",
    ["Ф"] = "F",
    ["ф"] = "f",
    ["Х"] = "X",
    ["х"] = "x",
    ["Һ"] = "H",
    ["һ"] = "h",
    ["Ц"] = "C",
    ["ц"] = "c",
    ["Ч"] = "Ç",
    ["ч"] = "ç",
    ["Ш"] = "Ș",
    ["ш"] = "ş",
    ["Щ"] = "Șş",
    ["щ"] = "şş",
    ["Ъ"] = "",
    ["ъ"] = "",
    ["Ы"] = "I",
    ["ы"] = "ı",
    ["І"] = "İ",
    ["і"] = "i",
    ["Ь"] = "",
    ["ь"] = "",
    ["Э"] = "E",
    ["э"] = "e",
    ["Ю"] = "Yu",
    ["ю"] = "yu",
    ["Я"] = "Ya",
    ["я"] = "ya"
}

local transliterationChm = {
    ["А"] = "A",
    ["а"] = "a",
    ["Ӓ"] = "Ä",
    ["ӓ"] = "ä",
    ["Б"] = "B",
    ["б"] = "b",
    ["В"] = "V",
    ["в"] = "v",
    ["Г"] = "G",
    ["г"] = "g",
    ["Д"] = "D",
    ["д"] = "d",
    ["Е"] = "E",
    ["е"] = "e",
    ["Ё"] = "Ë",
    ["ё"] = "ë",
    ["Ж"] = "Ž",
    ["ж"] = "ž",
    ["З"] = "Z",
    ["з"] = "z",
    ["И"] = "I",
    ["и"] = "i",
    ["Й"] = "J",
    ["й"] = "j",
    ["К"] = "K",
    ["к"] = "k",
    ["Л"] = "L",
    ["л"] = "l",
    ["М"] = "M",
    ["м"] = "m",
    ["Н"] = "N",
    ["н"] = "n",
    ["Ҥ"] = "Ṅ",
    ["ҥ"] = "ṅ",
    ["О"] = "O",
    ["о"] = "o",
    ["Ӧ"] = "Ö",
    ["ӧ"] = "ö",
    ["П"] = "P",
    ["п"] = "p",
    ["Р"] = "R",
    ["р"] = "r",
    ["С"] = "S",
    ["с"] = "s",
    ["Т"] = "T",
    ["т"] = "t",
    ["У"] = "U",
    ["у"] = "u",
    ["Ӱ"] = "Ü",
    ["ӱ"] = "ü",
    ["Ф"] = "F",
    ["ф"] = "f",
    ["Х"] = "H",
    ["х"] = "h",
    ["Ц"] = "C",
    ["ц"] = "c",
    ["Ч"] = "Č",
    ["ч"] = "č",
    ["Ш"] = "Š",
    ["ш"] = "š",
    ["Щ"] = "Ŝ",
    ["щ"] = "ŝ",
    ["Ъ"] = "ʺ",
    ["ъ"] = "ʺ",
    ["Ы"] = "Y",
    ["ы"] = "y",
    ["Ӹ"] = "Ÿ",
    ["ӹ"] = "ÿ",
    ["Ь"] = "ʹ",
    ["ь"] = "ʹ",
    ["Э"] = "È",
    ["э"] = "è",
    ["Ю"] = "Û",
    ["ю"] = "û",
    ["Я"] = "Â",
    ["я"] = "â"
}

local transliterationBnAs = {
    ["অ"] = "a",
    ["আ"] = "ā",
    ["ই"] = "i",
    ["ঈ"] = "ī",
    ["উ"] = "u",
    ["ঊ"] = "ū",
    ["ঋ"] = "r̥",
    ["ৠ"] = "r̥̄",
    ["ঌ"] = "l̥",
    ["ৡ"] = "l̥̄",
    ["এ"] = "ē",
    ["ঐ"] = "ai",
    ["ও"] = "ō",
    ["ঔ"] = "au",
    ["ং"] = "ṁ",
    ["ঁ"] = "m̐",
    ["ঃ"] = "ḥ",
    ["ক"] = "k",
    ["খ"] = "kh",
    ["গ"] = "g",
    ["ঘ"] = "gh",
    ["ঙ"] = "ṅ",
    ["চ"] = "c",
    ["ছ"] = "ch",
    ["জ"] = "j",
    ["ঝ"] = "jh",
    ["ঞ"] = "ñ",
    ["ট"] = "ṭ",
    ["ঠ"] = "ṭh",
    ["ড"] = "ḍ",
    ["ঢ"] = "ḍh",
    ["ড়"] = "ṛ",
    ["ঢ়"] = "ṛh",
    ["ণ"] = "ṇ",
    ["ত"] = "t",
    ["থ"] = "th",
    ["দ"] = "d",
    ["ধ"] = "dh",
    ["ন"] = "n",
    ["প"] = "p",
    ["ফ"] = "ph",
    ["ব"] = "b",
    ["ভ"] = "bh",
    ["ম"] = "m",
    ["য"] = "y",
    ["য়"] = "ẏ",
    ["র"] = "r",
    ["ৰ"] = "r",
    ["ল"] = "l",
    ["ৱ"] = "v",
    ["শ"] = "ś",
    ["ষ"] = "ṣ",
    ["স"] = "s",
    ["হ"] = "h",
    ["ঽ"] = "ʼ",
    ["ক়"] = "q",
    ["খ়"] = "k͟h",
    ["গ়"] = "ġ",
    ["জ়"] = "z",
    ["ফ়"] = "f",
}

local transliterationGu = {
    ["અ"] = "a",
    ["આ"] = "ā",
    ["ઇ"] = "i",
    ["ઈ"] = "ī",
    ["ઉ"] = "u",
    ["ઊ"] = "ū",
    ["ઋ"] = "r̥",
    ["ૠ"] = "r̥̄",
    ["ઌ"] = "l̥",
    ["ૡ"] = "l̥̄",
    ["એ"] = "ē",
    ["ઍ"] = "ê",
    ["ઐ"] = "ai",
    ["ઓ"] = "ō",
    ["ઑ"] = "ô",
    ["ઔ"] = "au",
    ["ં"] = "ṁ",
    ["ઁ"] = "m̐",
    ["ઃ"] = "ḥ",
    ["ક"] = "k",
    ["ખ"] = "kh",
    ["ગ"] = "g",
    ["ઘ"] = "gh",
    ["ઙ"] = "ṅ",
    ["ચ"] = "c",
    ["છ"] = "ch",
    ["જ"] = "j",
    ["ઝ"] = "jh",
    ["ઞ"] = "ñ",
    ["ટ"] = "ṭ",
    ["ઠ"] = "ṭh",
    ["ડ"] = "ḍ",
    ["ઢ"] = "ḍh",
    ["ણ"] = "ṇ",
    ["ત"] = "t",
    ["થ"] = "th",
    ["દ"] = "d",
    ["ધ"] = "dh",
    ["ન"] = "n",
    ["પ"] = "p",
    ["ફ"] = "ph",
    ["બ"] = "b",
    ["ભ"] = "bh",
    ["મ"] = "m",
    ["ય"] = "y",
    ["ર"] = "r",
    ["લ"] = "l",
    ["ળ"] = "ḷ",
    ["વ"] = "v",
    ["શ"] = "ś",
    ["ષ"] = "ṣ",
    ["સ"] = "s",
    ["હ"] = "h",
    ["ઽ"] = "ʼ",
    ["ક઼"] = "q",
    ["ખ઼"] = "k͟h",
    ["ગ઼"] = "ġ",
    ["જ઼"] = "z",
    ["ફ઼"] = "f"
}

local transliterationPa = {
    ["ਅ"] = "a",
    ["ਆ"] = "ā",
    ["ਇ"] = "i",
    ["ਈ"] = "ī",
    ["ਉ"] = "u",
    ["ਊ"] = "ū",
    ["ਏ"] = "ē",
    ["ਐ"] = "ai",
    ["ਓ"] = "ō",
    ["ਔ"] = "au",
    ["ਂ"] = "ṁ",
    ["ੰ"] = "ṃ",
    ["ਁ"] = "m̐",
    ["ਃ"] = "ḥ",
    ["ਕ"] = "k",
    ["ਖ"] = "kh",
    ["ਗ"] = "g",
    ["ਘ"] = "gh",
    ["ਙ"] = "ṅ",
    ["ਚ"] = "c",
    ["ਛ"] = "ch",
    ["ਜ"] = "j",
    ["ਝ"] = "jh",
    ["ਞ"] = "ñ",
    ["ਟ"] = "ṭ",
    ["ਠ"] = "ṭh",
    ["ਡ"] = "ḍ",
    ["ਢ"] = "ḍh",
    ["ੜ"] = "ṛ",
    ["ਣ"] = "ṇ",
    ["ਤ"] = "t",
    ["ਥ"] = "th",
    ["ਦ"] = "d",
    ["ਧ"] = "dh",
    ["ਨ"] = "n",
    ["ਪ"] = "p",
    ["ਫ"] = "ph",
    ["ਬ"] = "b",
    ["ਭ"] = "bh",
    ["ਮ"] = "m",
    ["ਯ"] = "y",
    ["ਰ"] = "r",
    ["ਲ"] = "l",
    ["ਲ਼"] = "ḷ",
    ["ਵ"] = "v",
    ["ਸ਼"] = "ś",
    ["ਸ"] = "s",
    ["ਹ"] = "h",
    ["ਕ਼"] = "q",
    ["ਖ਼"] = "k͟h",
    ["ਗ਼"] = "ġ",
    ["ਜ਼"] = "z",
    ["ਫ਼"] = "f"
}

local transliterationKn = {
    ["ಅ"] = "a",
    ["ಆ"] = "ā",
    ["ಇ"] = "i",
    ["ಈ"] = "ī",
    ["ಉ"] = "u",
    ["ಊ"] = "ū",
    ["ಋ"] = "r̥",
    ["ೠ"] = "r̥̄",
    ["ಌ"] = "l̥",
    ["ೡ"] = "l̥̄",
    ["ಎ"] = "e",
    ["ಏ"] = "ē",
    ["ಐ"] = "ai",
    ["ಒ"] = "o",
    ["ಓ"] = "ō",
    ["ಔ"] = "au",
    ["ಂ"] = "ṁ",
    ["ಃ"] = "ḥ",
    ["ೱ"] = "ẖ",
    ["ೲ"] = "ḫ",
    ["ಕ"] = "k",
    ["ಖ"] = "kh",
    ["ಗ"] = "g",
    ["ಘ"] = "gh",
    ["ಙ"] = "ṅ",
    ["ಚ"] = "c",
    ["ಛ"] = "ch",
    ["ಜ"] = "j",
    ["ಝ"] = "jh",
    ["ಞ"] = "ñ",
    ["ಟ"] = "ṭ",
    ["ಠ"] = "ṭh",
    ["ಡ"] = "ḍ",
    ["ಢ"] = "ḍh",
    ["ಣ"] = "ṇ",
    ["ತ"] = "t",
    ["ಥ"] = "th",
    ["ದ"] = "d",
    ["ಧ"] = "dh",
    ["ನ"] = "n",
    ["ಪ"] = "p",
    ["ಫ"] = "ph",
    ["ಬ"] = "b",
    ["ಭ"] = "bh",
    ["ಮ"] = "m",
    ["ಱ"] = "ṟ",
    ["ೞ"] = "ḻ",
    ["ಯ"] = "y",
    ["ರ"] = "r",
    ["ಲ"] = "l",
    ["ಳ"] = "ḷ",
    ["ವ"] = "v",
    ["ಶ"] = "ś",
    ["ಷ"] = "ṣ",
    ["ಸ"] = "s",
    ["ಹ"] = "h",
    ["ಽ"] = "ʼ",
    ["ಜ಼"] = "z",
    ["ಫ಼"] = "f",
}

local transliterationMl = {
    ["അ"] = "a",
    ["ആ"] = "ā",
    ["ഇ"] = "i",
    ["ഈ"] = "ī",
    ["ഉ"] = "u",
    ["ഊ"] = "ū",
    ["്"] = "ŭ",
    ["ഋ"] = "r̥",
    ["ൠ"] = "r̥̄",
    ["ഌ"] = "l̥",
    ["ൡ"] = "l̥̄",
    ["എ"] = "e",
    ["ഏ"] = "ē",
    ["ഐ"] = "ai",
    ["ഒ"] = "o",
    ["ഓ"] = "ō",
    ["ഔ"] = "au",
    ["ം"] = "ṁ",
    ["ഃ"] = "ḥ",
    ["ക"] = "k",
    ["ഖ"] = "kh",
    ["ഗ"] = "g",
    ["ഘ"] = "gh",
    ["ങ"] = "ṅ",
    ["ച"] = "c",
    ["ഛ"] = "ch",
    ["ജ"] = "j",
    ["ഝ"] = "jh",
    ["ഞ"] = "ñ",
    ["ട"] = "ṭ",
    ["ഠ"] = "ṭh",
    ["ഡ"] = "ḍ",
    ["ഢ"] = "ḍh",
    ["ണ"] = "ṇ",
    ["ത"] = "t",
    ["ഥ"] = "th",
    ["ദ"] = "d",
    ["ധ"] = "dh",
    ["ന"] = "n",
    ["പ"] = "p",
    ["ഫ"] = "ph",
    ["ബ"] = "b",
    ["ഭ"] = "bh",
    ["മ"] = "m",
    ["റ"] = "ṟ",
    ["ഺ"] = "ṯ",
    ["ഩ"] = "ṉ",
    ["ഴ"] = "ḻ",
    ["യ"] = "y",
    ["ര"] = "r",
    ["ല"] = "l",
    ["ള"] = "ḷ",
    ["വ"] = "v",
    ["ശ"] = "ś",
    ["ഷ"] = "ṣ",
    ["സ"] = "s",
    ["ഹ"] = "h",
    ["ഽ"] = "ʼ",
}

local transliterationUr = {
    ["اَ"] = "a",
    ["آ"] = "ā",
    ["اِ"] = "i",
    ["اِی"] = "ī",
    ["اُ"] = "u",
    ["اُو"] = "ū",
    ["اے"] = "ē",
    ["اَے"] = "ai",
    ["او"] = "ō",
    ["اَو"] = "au",
    ["ں"] = "ṁ",
    ["ں"] = "m̐",
    ["ہ"] = "ḥ",
    ["ک"] = "k",
    ["کھ"] = "kh",
    ["گ"] = "g",
    ["گھ"] = "gh",
    ["ن٘"] = "ṅ",
    ["چ"] = "c",
    ["چھ"] = "ch",
    ["ج"] = "j",
    ["جھ"] = "jh",
    ["ڃ"] = "ñ",
    ["ٹ"] = "ṭ",
    ["ٹھ"] = "ṭh",
    ["ڈ"] = "ḍ",
    ["ڈھ"] = "ḍh",
    ["ڑ"] = "ṛ",
    ["ڑھ"] = "ṛh",
    ["ݨ"] = "ṇ",
    ["ت"] = "t",
    ["تھ"] = "th",
    ["د"] = "d",
    ["دھ"] = "dh",
    ["ن"] = "n",
    ["پ"] = "p",
    ["پھ"] = "ph",
    ["ب"] = "b",
    ["بھ"] = "bh",
    ["م"] = "m",
    ["ی"] = "y",
    ["ر"] = "r",
    ["ل"] = "l",
    ["و"] = "v",
    ["ش"] = "ś",
    ["س"] = "s",
    ["ہ"] = "h",
    ["ق"] = "q",
    ["خ"] = "k͟h",
    ["غ"] = "ġ",
    ["ز"] = "z",
    ["ف"] = "f",
    ["ث"] = "s̱",
    ["ص"] = "s̤",
    ["ح"] = "h̤",
    ["ط"] = "t̤",
    ["ع"] = "ʻ",
    ["و"] = "w",
    ["ژ"] = "ž",
    ["ذ"] = "ẕ",
    ["ض"] = "ż",
    ["ظ"] = "ẓ",
}

local transliterationOr = {
    ["ଅ"] = "a",
    ["ଆ"] = "ā",
    ["ଇ"] = "i",
    ["ଈ"] = "ī",
    ["ଉ"] = "u",
    ["ଊ"] = "ū",
    ["ଋ"] = "r̥",
    ["ୠ"] = "r̥̄",
    ["ଌ"] = "l̥",
    ["ୡ"] = "l̥̄",
    ["ଏ"] = "ē",
    ["ଐ"] = "ai",
    ["ଓ"] = "ō",
    ["ଔ"] = "au",
    ["ଂ"] = "ṁ",
    ["ଁ"] = "m̐",
    ["ଃ"] = "ḥ",
    ["କ"] = "k",
    ["ଖ"] = "kh",
    ["ଗ"] = "g",
    ["ଘ"] = "gh",
    ["ଙ"] = "ṅ",
    ["ଚ"] = "c",
    ["ଛ"] = "ch",
    ["ଜ"] = "j",
    ["ଝ"] = "jh",
    ["ଞ"] = "ñ",
    ["ଟ"] = "ṭ",
    ["ଠ"] = "ṭh",
    ["ଡ"] = "ḍ",
    ["ଢ"] = "ḍh",
    ["ଡ଼"] = "ṛ",
    ["ଢ଼"] = "ṛh",
    ["ଣ"] = "ṇ",
    ["ତ"] = "t",
    ["ଥ"] = "th",
    ["ଦ"] = "d",
    ["ଧ"] = "dh",
    ["ନ"] = "n",
    ["ପ"] = "p",
    ["ଫ"] = "ph",
    ["ବ"] = "b",
    ["ଭ"] = "bh",
    ["ମ"] = "m",
    ["ଯ"] = "y",
    ["ୟ"] = "ẏ",
    ["ର"] = "r",
    ["ଲ"] = "l",
    ["ଳ"] = "ḷ",
    ["ଵ"] = "v",
    ["ଶ"] = "ś",
    ["ଷ"] = "ṣ",
    ["ସ"] = "s",
    ["ହ"] = "h",
    ["ଽ"] = "ʼ",
    ["ୱ"] = "w",
}

local transliterationSi = {
    ["අ"] = "a",
    ["ආ"] = "ā",
    ["ඇ"] = "æ",
    ["ඈ"] = "ǣ",
    ["ඉ"] = "i",
    ["ඊ"] = "ī",
    ["උ"] = "u",
    ["ඌ"] = "ū",
    ["ඍ"] = "r̥",
    ["ඎ"] = "r̥̄",
    ["ඏ"] = "l̥",
    ["ඐ"] = "l̥̄",
    ["එ"] = "e",
    ["ඒ"] = "ē",
    ["ඓ"] = "ai",
    ["ඔ"] = "o",
    ["ඕ"] = "ō",
    ["ඖ"] = "au",
    ["ං"] = "ṁ",
    ["ඃ"] = "ḥ",
    ["ක"] = "k",
    ["ඛ"] = "kh",
    ["ග"] = "g",
    ["ඝ"] = "gh",
    ["ඞ"] = "ṅ",
    ["ඟ"] = "n̆g",
    ["ච"] = "c",
    ["ඡ"] = "ch",
    ["ජ"] = "j",
    ["ඣ"] = "jh",
    ["ඤ"] = "ñ",
    ["ඦ"] = "n̆j",
    ["ට"] = "ṭ",
    ["ඨ"] = "ṭh",
    ["ඩ"] = "ḍ",
    ["ඪ"] = "ḍh",
    ["ණ"] = "ṇ",
    ["ඬ"] = "n̆ḍ",
    ["ත"] = "t",
    ["ථ"] = "th",
    ["ද"] = "d",
    ["ධ"] = "dh",
    ["න"] = "n",
    ["ඳ"] = "n̆d",
    ["ප"] = "p",
    ["ඵ"] = "ph",
    ["බ"] = "b",
    ["භ"] = "bh",
    ["ම"] = "m",
    ["ඹ"] = "m̆b",
    ["ය"] = "y",
    ["ර"] = "r",
    ["ල"] = "l",
    ["ළ"] = "ḷ",
    ["ව"] = "v",
    ["ශ"] = "ś",
    ["ෂ"] = "ṣ",
    ["ස"] = "s",
    ["හ"] = "h",
    ["ෆ"] = "f",
}

local transliterationTm = {
    ["அ"] = "a",
    ["ஆ"] = "ā",
    ["இ"] = "i",
    ["ஈ"] = "ī",
    ["உ"] = "u",
    ["ஊ"] = "ū",
    ["எ"] = "e",
    ["ஏ"] = "ē",
    ["ஐ"] = "ai",
    ["ஒ"] = "o",
    ["ஓ"] = "ō",
    ["ஔ"] = "au",
    ["ஂ"] = "ṁ",
    ["ஃ"] = "ḵ",
    ["க"] = "kA",
    ["ங"] = "ṅA",
    ["ச"] = "cA",
    ["ஜ"] = "jA",
    ["ஞ"] = "ñA",
    ["ட"] = "ṭA",
    ["ண"] = "ṇA",
    ["த"] = "tA",
    ["ந"] = "nA",
    ["ப"] = "pA",
    ["ம"] = "mA",
    ["ற"] = "ṟA",
    ["ன"] = "ṉA",
    ["ழ"] = "ḻA",
    ["ய"] = "yA",
    ["ர"] = "rA",
    ["ல"] = "lA",
    ["ள"] = "ḷA",
    ["வ"] = "vA",
    ["ஶ"] = "śA",
    ["ஷ"] = "ṣA",
    ["ஸ"] = "sA",
    ["ஹ"] = "hA",
    ["க்ஷ"] = "kṣA",
    ["ா"] = "ā",
    ["ி"] = "i",
    ["ீ"] = "ī",
    ["ு"] = "u",
    ["ூ"] = "ū",
    ["ெ"] = "e",
    ["ே"] = "ē",
    ["ை"] = "ai",
    ["ொ"] = "o",
    ["ோ"] = "ō",
    ["ௌ"] = "au",
}

local transliterationTe = {
    ["అ"] = "a",
    ["ఆ"] = "ā",
    ["ఇ"] = "i",
    ["ఈ"] = "ī",
    ["ఉ"] = "u",
    ["ఊ"] = "ū",
    ["ఋ"] = "r̥",
    ["ౠ"] = "r̥̄",
    ["ఌ"] = "l̥",
    ["ౡ"] = "l̥̄",
    ["ఎ"] = "e",
    ["ఏ"] = "ē",
    ["ఐ"] = "ai",
    ["ఒ"] = "o",
    ["ఓ"] = "ō",
    ["ఔ"] = "au",
    ["ం"] = "ṁ",
    ["ఀ"] = "m̐",
    ["ఁ"] = "n̆",
    ["ః"] = "ḥ",
    ["క"] = "k",
    ["ఖ"] = "kh",
    ["గ"] = "g",
    ["ఘ"] = "gh",
    ["ఙ"] = "ṅ",
    ["చ"] = "c",
    ["ౘ"] = "ĉ",
    ["ఛ"] = "ch",
    ["జ"] = "j",
    ["ఝ"] = "jh",
    ["ఞ"] = "ñ",
    ["ట"] = "ṭ",
    ["ఠ"] = "ṭh",
    ["డ"] = "ḍ",
    ["ఢ"] = "ḍh",
    ["ణ"] = "ṇ",
    ["త"] = "t",
    ["థ"] = "th",
    ["ద"] = "d",
    ["ధ"] = "dh",
    ["న"] = "n",
    ["ప"] = "p",
    ["ఫ"] = "ph",
    ["బ"] = "b",
    ["భ"] = "bh",
    ["మ"] = "m",
    ["ఱ"] = "ṟ",
    ["ఴ"] = "ḻ",
    ["య"] = "y",
    ["ర"] = "r",
    ["ల"] = "l",
    ["ళ"] = "ḷ",
    ["వ"] = "v",
    ["శ"] = "ś",
    ["ష"] = "ṣ",
    ["స"] = "s",
    ["హ"] = "h",
    ["ఽ"] = "ʼ",
    ["ౙ"] = "z",
}

local transliterations = {
    ["ru"] = transliterationRu,
    ["uk"] = transliterationUk,
    ["be"] = transliterationBe,
    ["by"] = transliterationBe,
    ["bg"] = transliterationBg,
    ["sr"] = transliterationSr,
    ["mk"] = transliterationMk,
    ["kk"] = transliterationKk,
    ["ar"] = transliterationAr,
    ["hi"] = transliterationHi,
    ["el"] = transliterationEl,
    ["hy"] = transliterationHy,
    ["chm"] = transliterationChm,
    ["bn"] = transliterationBnAs,
    ["as"] = transliterationBnAs,
    ["gu"] = transliterationGu,
    ["pa"] = transliterationPa,
    ["kn"] = transliterationKn,
    ["ml"] = transliterationMl,
    ["ur"] = transliterationUr,
    ["or"] = transliterationOr,
    ["si"] = transliterationSi,
    ["tm"] = transliterationTm,
    ["te"] = transliterationTe
}

local function sanitizeText( text )
    local result = text
    result = string.gsub( result, "&#39;", "'" )
    result = string.gsub( result, "&quot;", "\"" )
    result = string.gsub( result, "&amp;", "&" )
    return result
end

function p.transliterate( frame )
        local language = frame.args[1]
        local text = sanitizeText( frame.args[2] )
        local transliteration = transliterations[ language ]
        
        if transliteration == nil then
            return "Błędny kod języka: " .. language
        end
        
        local result = ''
        
        for codepoint in mw.ustring.gcodepoint( text ) do
            if codepoint == 0xbcd then
    	        if result:len() > 0 and result:sub(-1) == 'A' then
    	        	result = result:sub(0, result:len() - 1)
    	        end	
            else	
	            local untransliterated = mw.ustring.char( codepoint )
	            local transliterated = commonTransliteration[ untransliterated ]
            
            	if transliterated == nil then
	                transliterated = transliteration[ untransliterated ]
            	end
            
            	if transliterated == nil then
                	return "Nieprawidłowy znak " .. untransliterated .. " dla języka o kodzie " .. language .. "." .. (
                			mw.title.getCurrentTitle():inNamespace( 0 ) and errcat or ''
                		)
            	else
	    	        if language == 'tm' and transliterated:sub(-1) ~= 'A' and transliterated ~= ' ' and result:len() > 0 and result:sub(-1) == 'A' then
	    	        	result = result:sub(0, result:len() - 1)
	    	        end	
                	result = result .. transliterated
            	end
            end	
        end
        
        if language == 'tm' then
        	result = result:gsub('A', 'a'):gsub('ḵs', 'x'):gsub('ḵp', 'f'):gsub('ḵj', 'z')
        end
        return result
end

return p