Module:sish-translit: Difference between revisions

From Linguifex
Jump to navigation Jump to search
Melinoë (talk | contribs)
No edit summary
No edit summary
 
(7 intermediate revisions by 2 users not shown)
Line 3: Line 3:
local tt = {}
local tt = {}
tt["Armn"] = {
tt["Armn"] = {
["Ա"]='A', ["ա"]='a',
{"Ու", "U"}, {"ու", "u"},
["Բ"]='B', ["բ"]='b',
["Վ"]='V', ["վ"]='v',
{"Ա", "A"}, {"ա", "a"},
["Գ"]='G', ["գ"]='g',
{"Բ", "B"}, {"բ", "b"},
["Դ"]='D', ["ֆ"]='d',
{"Վ", "V"}, {"վ", "v"},
["Ե"]='E', ["ե"]='e',
{"Գ", "G"}, {"գ", "g"},
["Է"]='Ē', ["է"]='ē',
{"Դ", "D"}, {"դ", "d"},
["Ժ"]='Ž', ["ժ"]='ž',
{"Ե", "E"}, {"ե", "e"},
["Զ"]='Z', ["զ"]='z',
{"Է", "Ē"}, {"է", "ē"},
["Ի"]='I', ["ի"]='i',
{"Ժ", "Ž"}, {"ժ", "ž"},
["Ձ"]='J', ["ձ"]='j',
{"Զ", "Z"}, {"զ", "z"},
["Կ"]='K', ["կ"]='k',
{"Ի", "I"}, {"ի", "i"},
["Լ"]='L', ["լ"]='l',
{"Ձ", "J"}, {"ձ", "j"},
["Մ"]='M', ["մ"]='m',
{"Կ", "K"}, {"կ", "k"},
["Ն"]='N', ["ն"]='n',
{"Լ", "L"}, {"լ", "l"},
['Ո']='O', ['ո']='o',
{"Մ", "M"}, {"մ", "m"},
['Օ']='Ō', ['օ']='ō',
{"Ն", "N"}, {"ն", "n"},
["Պ"]='P', ["պ"]='p',
{"Ո", "O"}, {"ո", "o"},
["Ր"]='R', ["ր"]='r',
{"Օ", "Ō"}, {"օ", "ō"},
["Ս"]='S', ["ս"]='s',
{"Պ", "P"}, {"պ", "p"},
["Տ"]='T', ["տ"]='t',
{"Ր", "R"}, {"ր", "r"},
["Ու"]='U', ["ու"]='u',
{"Ս", "S"}, {"ս", "s"},
["Ֆ"]='F', ["ֆ"]='f',
{"Տ", "T"}, {"տ", "t"},
["Հ"]='H', ["հ"]='h',
{"Ֆ", "F"}, {"ֆ", "f"},
["Ծ"]='C', ["ծ"]='c',
{"Հ", "H"}, {"հ", "h"},
["Ճ"]='Č', ["ճ"]='č',
{"Ծ", "C"}, {"ծ", "c"},
["Ջ"]='', ["ջ"]='ǰ',
{"Ճ", "Č"}, {"ճ", "č"},
["Շ"]='Š', ["շ"]='š',
{"Ջ", ""}, {"ջ", "ǰ"},
["Յ"]="Y", ["յ"]="y",
{"Շ", "Š"}, {"շ", "š"},
["Խ"]="X", ["խ"]="x",
{"Յ", "Y"}, {"յ", "y"},
["Ղ"]="Ġ", ["ղ"]="ġ",
{"Խ", "X"}, {"խ", "x"},
["Ը"]="Ə", ["ը"]="ə",
{"Ղ", "Ġ"}, {"ղ", "ġ"},
["Ռ"]="Ṙ", ["ռ"]="ṙ",
{"Ը", "Ə"}, {"ը", "ə"},
["Փ"]="Pʻ", ["փ"]="pʻ",
{"Ռ", "Ṙ"}, {"ռ", "ṙ"},
["Թ"]="Tʻ", ["թ"]="tʻ",
{"Փ", "Pʻ"}, {"փ", "pʻ"},
["Ք"]="Kʻ", ["ք"]="kʻ",
{"Թ", "Tʻ"}, {"թ", "tʻ"},
["Ց"]="Cʻ", ["ց"]="cʻ",
{"Ք", "Kʻ"}, {"ք", "kʻ"},
["Չ"]="Čʻ", ["չ"]="čʻ",
{"Ց", "Cʻ"}, {"ց", "cʻ"},
{"Չ", "Čʻ"}, {"չ", "čʻ"},
{"ւ", "w"},
{"՝", ","}, {"։", "."}, {"․", ";"}, {"՛", "́"}, {"՜", "<sup>!</sup>"}, {"՞", "<sup>?</sup>"},
{"՟", "."}, {"֊", "-"}, {"՚", "’"}, {"«", "“"}, {"»", "”"}, {"ՙ", "ʻ"}
 
};
};


tt["Latn"] = {
tt["Latn"] = {
--Digraphs
--Digraphs
["U"]='Ու', ["u"]='ու',
{"U", "Ու"}, {"u", "ու"},


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


function export.tr(text, lang, sc)
function export.tr(text, lang, sc)
    return mw.ustring.toNFC(mw.ustring.gsub(text, '.', tt[sc]))
for _, rule in ipairs(tt[sc]) do
text = mw.ustring.gsub(text, rule[1], rule[2])
end
 
    return text
end
end


return export
return export

Latest revision as of 19:47, 12 June 2026


This module will transliterate Ossamic language text. The module should preferably not be called directly from templates or other modules. To use it from a template, use {{xlit}}. Within a module, use Module:languages#Language:transliterate.

For testcases, see Module:sish-translit/testcases.

Functions

tr(text, lang, sc)
Transliterates a given piece of text written in the script specified by the code sc, and language specified by the code lang.
When the transliteration fails, returns nil.

local export = {}

local tt = {}
tt["Armn"] = {
	{"Ու", "U"}, {"ու", "u"},
	
	{"Ա", "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"},
	{"Ֆ", "F"}, {"ֆ", "f"},
	{"Հ", "H"}, {"հ", "h"},
	{"Ծ", "C"}, {"ծ", "c"},
	{"Ճ", "Č"}, {"ճ", "č"},
	{"Ջ", "J̌"}, {"ջ", "ǰ"},
	{"Շ", "Š"}, {"շ", "š"},
	{"Յ", "Y"}, {"յ", "y"},
	{"Խ", "X"}, {"խ", "x"},
	{"Ղ", "Ġ"}, {"ղ", "ġ"},
	{"Ը", "Ə"}, {"ը", "ə"},
	{"Ռ", "Ṙ"}, {"ռ", "ṙ"},
	{"Փ", "Pʻ"}, {"փ", "pʻ"},
	{"Թ", "Tʻ"}, {"թ", "tʻ"},
	{"Ք", "Kʻ"}, {"ք", "kʻ"},
	{"Ց", "Cʻ"}, {"ց", "cʻ"},
	{"Չ", "Čʻ"}, {"չ", "čʻ"},
	{"ւ", "w"},
	{"՝", ","}, {"։", "."}, {"․", ";"}, {"՛", "́"}, {"՜", "<sup>!</sup>"}, {"՞", "<sup>?</sup>"},
	{"՟", "."}, {"֊", "-"}, {"՚", "’"}, {"«", "“"}, {"»", "”"}, {"ՙ", "ʻ"}

};

tt["Latn"] = {
	--Digraphs
	{"U", "Ու"}, {"u", "ու"},

	{"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", "տ"},
	{"F", "Ֆ"}, {"f", "ֆ"},
	{"H", "Հ"}, {"h", "հ"},
	{"C", "Ծ"}, {"c", "ծ"},
	{"Č", "Ճ"}, {"č", "ճ"},
	{"J̌", "Ջ"}, {"ǰ", "ջ"},
	{"Š", "Շ"}, {"š", "շ"},
	{"Y", "Յ"}, {"y", "յ"},
	{"X", "Խ"}, {"x", "խ"},
	{"Ġ", "Ղ"}, {"ġ", "ղ"},
	{"Ə", "Ը"}, {"ə", "ը"},
	{"Ṙ", "Ռ"}, {"ṙ", "ռ"},
	{"Pʻ", "Փ"}, {"pʻ", "փ"},
	{"Tʻ", "Թ"}, {"tʻ", "թ"},
	{"Kʻ", "Ք"}, {"kʻ", "ք"},
	{"Cʻ", "Ց"}, {"cʻ", "ց"},
	{"Čʻ", "Չ"}, {"čʻ", "չ"},
	{"w", "ւ"},
	{"%-", "֊"}
};

function export.tr(text, lang, sc)
	for _, rule in ipairs(tt[sc]) do
		text = mw.ustring.gsub(text, rule[1], rule[2])
	end

    return text
end

return export