Module:sish-translit: Difference between revisions

From Linguifex
Jump to navigation Jump to search
Melinoë (talk | contribs)
No edit summary
Melinoë (talk | contribs)
No edit summary
Line 1: Line 1:
local export = {}
local export = {}
local gsub = require("Module:string utilities").gsub


local tt = {}
local tt = {}
tt["Armn"] = {
tt["Armn"] = {
["ա"]="a", ["բ"]="b", ["գ"]="g", ["դ"]="d", ["ե"]="e", ["զ"]="z",["է"]="ē", ["ը"]="ë",
["Ա"]='A', ["ա"]='a',
["թ"]="tʻ", ["ժ"]="ž", ["ի"]="i", ["լ"]="l", ["խ"]="x", ["ծ"]="c", ["կ"]="k", ["հ"]="h",
["Բ"]='B', ["բ"]='b',
["ձ"]="j", ["ղ"]="ġ", ["ճ"]="č", ["մ"]="m", ["յ"]="y", ["ն"]="n", ["շ"]="š", ["ո"]="o",
["Վ"]='V', ["վ"]='v',
["չ"]="čʻ", ["պ"]="p", ["ջ"]="ǰ", ["ռ"]="ṙ", ["ս"]="s", ["վ"]="v", ["տ"]="t", ["ր"]="r",
["Գ"]='G', ["գ"]='g',
["ց"]="cʻ", ["ւ"]="w", ["փ"]="pʻ", ["ք"]="kʻ", ["և"]="ew", ["օ"]="ō", ["ֆ"]="f",
["Դ"]='D', ["ֆ"]='d',
["Ա"]="A", ["Բ"]="B", ["Գ"]="G", ["Դ"]="D", ["Ե"]="E", ["Զ"]="Z", ["Է"]="Ē", ["Ը"]="Ë",
["Ե"]='E', ["ե"]='e',
["Թ"]="Tʻ", ["Ժ"]="Ž", ["Ի"]="I", ["Լ"]="L", ["Խ"]="X", ["Ծ"]="C", ["Կ"]="K", ["Հ"]="H",
["Է"]='Ē', ["է"]='ē',
["Ձ"]="J", ["Ղ"]="Ġ", ["Ճ"]="Č", ["Մ"]="M", ["Յ"]="Y", ["Ն"]="N", ["Շ"]="Š", ["Ո"]="O",
["Ժ"]='Ž', ["ժ"]='ž',
["Չ"]="Čʻ", ["Պ"]="P", ["Ջ"]="", ["Ռ"]="", ["Ս"]="S", ["Վ"]="V", ["Տ"]="T", ["Ր"]="R",
["Զ"]='Z', ["զ"]='z',
["Ց"]="", ["Ւ"]="W", ["Փ"]="Pʻ", ["Ք"]="", ["Օ"]="Ō", ["Ֆ"]="F", ["ﬓ"]="mn", ["ﬔ"]="me",
["Ի"]='I', ["ի"]='i',
[""]="mi", [""]="vn", ["ﬗ"]="mx", ["ՠ"]="ä", ["ֈ"]="hª",
["Ձ"]='J', ["ձ"]='j',
-- punctuation
["Կ"]='K', ["կ"]='k',
["՝"]=",", ["։"]=".", ["․"]=";", ["՛"]="́", ["՜"]="<sup>!</sup>", ["՞"]="<sup>?</sup>",
["Լ"]='L', ["լ"]='l',
["՟"]=".", ["֊"]="-", ["՚"]="’", ['«']='“', ['»']='”', ['ՙ']='ʻ'
["Մ"]='M', ["մ"]='m',
["Ն"]='N', ["ն"]='n',
['Ո']='O', ['ո']='o',
['Օ']='Ō', ['օ']='ō',
["Պ"]='P', ["պ"]='p',
["Ր"]='R', ["ր"]='r',
["Ս"]='S', ["ս"]='s',
["Տ"]='T', ["տ"]='t',
["Ու"]='U', ["ու"]='u',
["Ֆ"]='F', ["ֆ"]='f',
["Հ"]='H', ["հ"]='h',
["Ծ"]='C', ["ծ"]='c',
["Ճ"]='Č', ["ճ"]='č',
["Ջ"]='J̌', ["ջ"]='ǰ',
["Շ"]='Š', ["շ"]='š',
["Յ"]="Y", ["յ"]="y",
["Խ"]="X", ["խ"]="x",
["Ղ"]="Ġ", ["ղ"]="ġ",
["Ը"]="Ə", ["ը"]="ə",
["Ռ"]="", ["ռ"]="",
["Փ"]="Pʻ", ["փ"]="",
["Թ"]="", ["թ"]="",
["Ք"]="", ["ք"]="",
["Ց"]="", ["ց"]="",
["Չ"]="Čʻ", ["չ"]="čʻ",
};
};


tt["Geor"] = {
tt["Latn"] = {
[""]="a", [""]="b", [""]="g", [""]="d", [""]="e", [""]="v", [""]="z", [""]="ē",
--Digraphs
[""]="t", [""]="i", [""]="", [""]="l", [""]="m", [""]="n", [""]="y", [""]="o",
["U"]='Ու', ["u"]='ու',
[""]="", [""]="ž", [""]="r", [""]="s", [""]="", [""]="wi", [""]="u", [""]="p",
 
[""]="k", [""]="ɣ", [""]="", [""]="š", [""]="č", [""]="c",
["A"]='Ա', ["a"]='ա',
[""]="ʒ", [""]="", [""]="č̣", [""]="x", [""]="q", [""]="ǯ", [""]="h", [""]="'", [""]="f", [""]="ë", [""]="ʾ", [""]="ʿ", ["ʻ"]="ˢ",
["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"]='ծ',
["Č"]='Ճ', ["č"]='ճ',
[""]='Ջ', ["ǰ"]='ջ',
["Š"]='Շ', ["š"]='շ',
["Y"]="Յ", ["y"]="յ",
["X"]="Խ", ["x"]="խ",
["Ġ"]="Ղ", ["ġ"]="ղ",
["Ə"]="Ը", ["ə"]="ը",
[""]="Ռ", [""]="ռ",
[""]="Փ", [""]="փ",
[""]="Թ", [""]="թ",
[""]="Ք", [""]="ք",
[""]="Ց", [""]="ց",
["Čʻ"]="Չ", ["čʻ"]="չ",
};
};


function export.tr(text, lang, sc)
function export.tr(text, lang, sc)
if (sc == "Latn") then
text = mw.ustring.gsub(text, '[dDnNlL][jž]', tt[sc])
end
     return mw.ustring.toNFC(mw.ustring.gsub(text, '.', tt[sc]))
     return mw.ustring.toNFC(mw.ustring.gsub(text, '.', tt[sc]))
end
end


return export
return export

Revision as of 05:36, 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"] = {
	["Ա"]='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',
	["Ճ"]='Č', ["ճ"]='č',
	["Ջ"]='J̌', ["ջ"]='ǰ',
	["Շ"]='Š', ["շ"]='š',
	["Յ"]="Y", ["յ"]="y",
	["Խ"]="X", ["խ"]="x",
	["Ղ"]="Ġ", ["ղ"]="ġ",
	["Ը"]="Ə", ["ը"]="ə",
	["Ռ"]="Ṙ", ["ռ"]="ṙ",
	["Փ"]="Pʻ", ["փ"]="pʻ",
	["Թ"]="Tʻ", ["թ"]="tʻ",
	["Ք"]="Kʻ", ["ք"]="kʻ",
	["Ց"]="Cʻ", ["ց"]="cʻ",
	["Չ"]="Čʻ", ["չ"]="čʻ",
};

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ʻ"]="ց",
	["Čʻ"]="Չ", ["čʻ"]="չ",
};

function export.tr(text, lang, sc)
	if (sc == "Latn") then
		text = mw.ustring.gsub(text, '[dDnNlL][jž]', tt[sc])
	end
    return mw.ustring.toNFC(mw.ustring.gsub(text, '.', tt[sc]))
end

return export