Moduł:transliterator-naukowy
Wygląd
Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:transliterator-naukowy/opis
local p = {}
local errcat = '[[Kategoria:Błąd w transliteracji]]'
local commonTransliteration = {
["-"] = "-",
["–"] = "–",
["—"] = "—",
["="] = "=",
[","] = ",",
["."] = ".",
["/"] = "/",
[";"] = ";",
["'"] = "'",
["["] = "[",
["]"] = "]",
["\\"] = "\\",
["`"] = "`",
["~"] = "~",
["!"] = "!",
["@"] = "@",
["#"] = "#",
["$"] = "$",
["%"] = "%",
["^"] = "^",
["&"] = "&",
["*"] = "*",
["("] = "(",
[")"] = ")",
["_"] = "_",
["+"] = "+",
["{"] = "{",
["}"] = "}",
["|"] = "|",
[":"] = ":",
["\""] = "\"",
["<"] = "<",
[">"] = ">",
["?"] = "?" ,
[" "] = " "
}
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",
["Х"] = "X",
["х"] = "x",
["Ц"] = "C",
["ц"] = "c",
["Ч"] = "Č",
["ч"] = "č",
["Ш"] = "Š",
["ш"] = "š",
["Щ"] = "Šč",
["щ"] = "šč",
["Ъ"] = "ʺ",
["ъ"] = "″",
["Ы"] = "Y",
["ы"] = "y",
["Ь"] = "ʹ",
["ь"] = "ʹ",
["Э"] = "È",
["э"] = "è",
["Ю"] = "Ju",
["ю"] = "ju",
["Я"] = "Ja",
["я"] = "ja",
["’"] = "’",
["’"] = "’"
}
local transliterationUk = {
["А"] = "A",
["а"] = "a",
["Б"] = "B",
["б"] = "b",
["В"] = "V",
["в"] = "v",
["Г"] = "H",
["г"] = "h",
["Ґ"] = "G",
["ґ"] = "g",
["Д"] = "D",
["д"] = "d",
["Е"] = "E",
["е"] = "e",
["Є"] = "Je",
["є"] = "je",
["Ж"] = "Ž",
["ж"] = "ž",
["З"] = "Z",
["з"] = "z",
["И"] = "I",
["и"] = "i",
["І"] = "I",
["і"] = "i",
["Ї"] = "Ji",
["ї"] = "ji",
["Й"] = "J",
["й"] = "j",
["К"] = "K",
["к"] = "k",
["Л"] = "L",
["л"] = "l",
["М"] = "M",
["м"] = "m",
["Н"] = "N",
["н"] = "n",
["О"] = "O",
["о"] = "o",
["П"] = "P",
["п"] = "p",
["Р"] = "R",
["р"] = "r",
["С"] = "S",
["с"] = "s",
["Т"] = "T",
["т"] = "t",
["У"] = "U",
["у"] = "u",
["Ф"] = "F",
["ф"] = "f",
["Х"] = "X",
["х"] = "x",
["Ц"] = "C",
["ц"] = "c",
["Ч"] = "Č",
["ч"] = "č",
["Ш"] = "Š",
["ш"] = "š",
["Щ"] = "Šč",
["щ"] = "šč",
["Ь"] = "ʹ",
["ь"] = "ʹ",
["Ю"] = "Ju",
["ю"] = "ju",
["Я"] = "Ja",
["я"] = "ja",
["’"] = "’",
["’"] = "’"
}
local transliterationBe = {
["А"] = "A",
["а"] = "a",
["Б"] = "B",
["б"] = "b",
["В"] = "V",
["в"] = "v",
["Г"] = "H",
["г"] = "h",
["Д"] = "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",
["Ь"] = "ʹ",
["ь"] = "ʹ",
["Э"] = "È",
["э"] = "è",
["Ю"] = "Ju",
["ю"] = "Ju",
["Я"] = "Ja",
["я"] = "ja",
["’"] = "’",
["’"] = "’"
}
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",
["й"] = "j",
["Ф"] = "F",
["ф"] = "f",
["Х"] = "H",
["х"] = "h",
["Ц"] = "C",
["ц"] = "c",
["Ч"] = "Č",
["ч"] = "č",
["Ш"] = "Š",
["ш"] = "š",
["Щ"] = "Št",
["щ"] = "št",
["Ъ"] = "Ǎ",
["ъ"] = "ǎ",
["Ь"] = "J",
["ь"] = "j",
["Ю"] = "Ju",
["ю"] = "ju",
["Я"] = "Ja",
["я"] = "ja"
}
local transliterationSr = {
["А"] = "A",
["а"] = "a",
["Б"] = "B",
["б"] = "b",
["В"] = "V",
["в"] = "v",
["Г"] = "G",
["г"] = "g",
["Д"] = "D",
["д"] = "d",
["Ђ"] = "Đ",
["ђ"] = "đ",
["Е"] = "E",
["е"] = "e",
["Ж"] = "Ž",
["ж"] = "ž",
["Њ"] = "Ň",
["њ"] = "ň",
["О"] = "O",
["о"] = "o",
["П"] = "P",
["п"] = "p",
["Р"] = "R",
["р"] = "r",
["С"] = "S",
["с"] = "s",
["Т"] = "T",
["т"] = "t",
["Ћ"] = "Ć",
["ћ"] = "ć",
["З"] = "Z",
["з"] = "z",
["И"] = "I",
["и"] = "i",
["Ј"] = "J",
["ј"] = "j",
["К"] = "K",
["к"] = "k",
["Л"] = "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",
["Ѐ"] = "È", ["ѐ"] = "è", -- akcent
["Ж"] = "Ž", ["ж"] = "ž",
["З"] = "Z", ["з"] = "z",
["Ѕ"] = "Dz", ["ѕ"] = "dz",
["И"] = "I", ["и"] = "i",
["Ѝ"] = "Ì", ["ѝ"] = "ì", -- akcent
["Ј"] = "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",
["Ч"] = "Č", ["ч"] = "č",
["Џ"] = "Dž", ["џ"] = "dž",
["Ш"] = "Š", ["ш"] = "š"
}
local transliterationCu = {
["А"] = "A",
["а"] = "a",
["Б"] = "B",
["б"] = "b",
["В"] = "V",
["в"] = "v",
["Г"] = "G",
["г"] = "g",
["Д"] = "D",
["д"] = "d",
["Ꙉ"] = "Đ", -- rzadkie
["ꙉ"] = "đ", -- rzadkie
["Ѕ"] = "Dz", -- dz
["ѕ"] = "dz", -- dz
["Ꙃ"] = "Dz", -- dz rzadkie
["ꙃ"] = "dz", -- dz rzadkie
["Ꙅ"] = "Dz", -- dz rzadkie
["ꙅ"] = "dz", -- dz rzadkie
["Е"] = "E", -- e
["е"] = "e", -- e
["Є"] = "E", -- e
["є"] = "e", -- e
["Ж"] = "Ž",
["ж"] = "ž",
["З"] = "Z", -- z
["з"] = "z", -- z
["Ꙁ"] = "Z", -- z rzadkie
["ꙁ"] = "z", -- z rzadkie
["И"] = "I",
["и"] = "i",
["І"] = "I",
["і"] = "i",
["Ї"] = "I",
["ї"] = "i",
["Ӥ"] = "I",
["Ӥ"] = "i",
["К"] = "K",
["к"] = "k",
["Л"] = "L",
["л"] = "l",
["М"] = "M",
["м"] = "m",
["Н"] = "N",
["н"] = "n",
["О"] = "O",
["о"] = "o",
["Ѡ"] = "O", -- o rzadkie?
["ѡ"] = "o", -- o rzadkie?
["Ꙩ"] = "O", -- o rzadkie
["ꙩ"] = "o", -- o rzadkie
["Ꙫ"] = "O", -- o rzadkie
["ꙫ"] = "o", -- o rzadkie
["Ꙭ"] = "O", -- o rzadkie
["ꙭ"] = "o", -- o rzadkie
["Ѻ"] = "O", -- o rzadkie
["ѻ"] = "o", -- o rzadkie
["Ꙍ"] = "O", -- o rzadkie
["ꙍ"] = "o", -- o rzadkie
["ꙮ"] = "o", -- o rzadkie
["Ѿ"] = "Otŭ", -- rzadkie
["ѿ"] = "otŭ", -- rzadkie
["П"] = "P",
["п"] = "p",
["Р"] = "R",
["р"] = "r",
["С"] = "S",
["с"] = "s",
["Т"] = "T",
["т"] = "t",
["У"] = "U", -- nie używać
["у"] = "u", -- nie używać
["Ѹ"] = "U", -- nie używać
["ѹ"] = "u", -- nie używać
["Оу"] = "U",
["оу"] = "u",
["Ф"] = "F",
["ф"] = "f",
["Х"] = "X",
["х"] = "x",
["Ц"] = "C",
["ц"] = "c",
["Ч"] = "Č",
["ч"] = "č",
["Ш"] = "Š",
["ш"] = "š",
["Щ"] = "Št",
["щ"] = "št",
["Ъ"] = "Ŭ",
["ъ"] = "ŭ",
["Ь"] = "Ĭ",
["ь"] = "ĭ",
["Ы"] = "Y", -- nie używać
["ы"] = "y", -- nie używać
["Ꙑ"] = "Y",
["ꙑ"] = "y",
["Ѣ"] = "Ě",
["ѣ"] = "ě",
["Ю"] = "Ju",
["ю"] = "ju",
["Ꙗ"] = "Ja",
["ꙗ"] = "ja",
["Я"] = "Ja", -- nie używać
["Я"] = "ja", -- nie używać
["Ѥ"] = "Je",
["ѥ"] = "je",
["Ѧ"] = "Ę",
["ѧ"] = "ę",
["Ꙙ"] = "Ę",
["ꙙ"] = "Ę",
["Ѩ"] = "Ję",
["ѩ"] = "ję",
["Ꙝ"] = "Ję",
["ꙝ"] = "ję",
["Ѫ"] = "Ǫ",
["ѫ"] = "ǫ",
["Ѭ"] = "Jǫ",
["ѭ"] = "jǫ",
["Ꙓ"] = "Jě",
["ꙓ"] = "jě",
["Ѯ"] = "Ks",
["ѯ"] = "ks",
["Ѱ"] = "Ps",
["ѱ"] = "ps",
["Ѳ"] = "Th",
["ѳ"] = "th",
["Ѵ"] = "Ü",
["ѵ"] = "ü",
["Ѷ"] = "Ü",
["ѷ"] = "ü",
["Ѯ"] = "Ks",
["ѯ"] = "ks",
["Ѯ"] = "Ks",
["ѯ"] = "ks"
}
local transliterations = {
["ru"] = transliterationRu,
["uk"] = transliterationUk,
["be"] = transliterationBe,
["bg"] = transliterationBg,
["sr"] = transliterationSr,
["mk"] = transliterationMk,
["cu"] = transliterationCu,
["orv"] = transliterationOrv
}
local function sanitizeText( text )
local result = text
result = string.gsub( result, "'", "'" )
result = string.gsub( result, """, "\"" )
result = string.gsub( result, "&", "&" )
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
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
result = result .. transliterated
end
end
return result
end
return p