モジュール:zle-ort-translit
ナビゲーションに移動
検索に移動
このモジュールについての説明文ページを モジュール:zle-ort-translit/doc に作成できます
local export = {}
local letters = {}
local digraphs = {}
local double_grave = mw.ustring.char(0x30F)
letters["Cyrs"] = {
["А"]='A', ["а"]='a',
["Б"]='B', ["б"]='b',
["В"]='V', ["в"]='v',
["Г"]='H', ["г"]='h',
["Д"]='D', ["д"]='d',
["Е"]='E', ["е"]='e',
["Ж"]='Ž', ["ж"]='ž',
["Ѕ"]='Z', ["ѕ"]='z', ["Ꙃ"]='Z', ["ꙃ"]='z',
["З"]='Z', ["з"]='z', ["Ꙁ"]='Z', ["ꙁ"]='z',
["Ї"]='I', ["ї"]='i', ["І"]='I', ["і"]='i',
["И"]='I', ["и"]='i',
["Й"]='J', ["й"]='j',
["К"]='K', ["к"]='k',
["Л"]='L', ["л"]='l',
["М"]='M', ["м"]='m',
["Н"]='N', ["н"]='n',
["О"]='O', ["о"]='o',
["П"]='P', ["п"]='p',
["Р"]='R', ["р"]='r',
["С"]='S', ["с"]='s',
["Т"]='T', ["т"]='t',
["Ꙋ"]='U', ["ꙋ"]='u',
["У"]='U', ["у"]='u',
["Ф"]='F', ["ф"]='f',
["Х"]='X', ["х"]='x',
["Ѡ"]='Ô', ["ѡ"]='ô',
["Ѿ"]='Ot', ["ѿ"]='ot',
["Ц"]='C', ["ц"]='c',
["Ч"]='Č', ["ч"]='č',
["Ш"]='Š', ["ш"]='š',
["Щ"]='Šč', ["щ"]='šč',
["Ъ"]='', ["ъ"]='', ["ⸯ"]='',
["Ы"]='Y', ["ы"]='y', ["Ꙑ"]='Y', ["ꙑ"]='y',
["Ь"]='ʹ', ["ь"]='ʹ',
["Ѣ"]='Ě', ["ѣ"]='ě',
["Є"]='Je', ["є"]='je', ["Ѥ"]='Je', ["ѥ"]='je',
["Ю"]='Ju', ["ю"]='ju',
["Ꙗ"]='Ja', ["ꙗ"]='ja',
["Ѧ"]='Ja', ["ѧ"]='ja', ["Ѩ"]='Jа', ["ѩ"]='jа',
["Ѫ"]='U', ["ѫ"]='u', ["Ѭ"]='Ju', ["ѭ"]='ju',
["Ѯ"]='Ks', ["ѯ"]='ks',
["Ѱ"]='Ps', ["ѱ"]='ps',
["Ѳ"]='F', ["ѳ"]='f',
["Ѵ"]='I', ["ѵ"]='i',
-- newer letters
["Ґ"]='G', ["ґ"]='g',
["Э"]='E', ["э"]='e',
["Я"]='Ja', ["я"]='ja',
}
digraphs["Cyrs"] = {
["О[УѴуѵ]"]="U", ["о[уѵ]"]="u",
["Г[ГКгк]"]="G", ["г[гк]"]="g", ["К[Гг]"]="G", ["кг"]="g",
["[їіи]а"]="ija",
["аа"]="aja",
["[їіи]и"]="ij", ["[ыꙑ]и"]="yj", ["[еэ]и"]="ej",
["[їіи]ⸯ"]="ij", ["[ыꙑ]ⸯ"]="yj", ["[еэ]ⸯ"]="ej",
-- titlo
["гр҃"]="hro",
}
letters["Glag"] = {
}
digraphs["Glag"] = {
}
function export.tr(text, lang, sc)
if not sc then
sc = require("モジュール:scripts").findBestScript(text,
require("モジュール:languages").getByCode(lang)):getCode()
end
-- Transliterate the kamora as prime
text = string.gsub(text, "\210\132", "ʹ")
if sc == "Cyrs" or sc == "Glag" then
for key, repl in pairs(digraphs[sc]) do
text = mw.ustring.gsub(text, key, repl)
end
-- pattern for one non-ASCII character
text = string.gsub(text, '[\194-\244][\128-\191]+', letters[sc])
else
-- error("This module can only transliterate Old Cyrillic (Cyrs) and Glagolitic (Glag).")
end
return text
end
return export