モジュール:zle-ort-translit

出典: フリー多機能辞典『ウィクショナリー日本語版(Wiktionary)』
ナビゲーションに移動 検索に移動

このモジュールについての説明文ページを モジュール: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