Module:crdc-translit

From Linguifex
Revision as of 05:15, 6 July 2026 by Nehster9 (talk | contribs) (Created page with "local export = {} local tt = {} tt["Deva"] = { {"क", "k"}, {"ख", "kh"}, {"ग", "g"}, {"ङ", "ng"}, {"ष", "ṣ"}, {"न", "n"}, {"ा", "ā"}, } tt["Latn"] = require("Module:table").invert(tt["Deva"]) function export.tr(text, lang, sc) text = mw.ustring.lower(text) for _, rule in ipairs(tt[sc]) do text = mw.ustring.gsub(text, rule[1], rule[2]) end return text end function export.template_tr(frame) local args = require("Module:parameters")...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This module will transliterate Cerdic 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:crdc-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["Deva"] = {
	{"क", "k"},
	{"ख", "kh"},
	{"ग", "g"},
	{"ङ", "ng"},
	{"ष", "ṣ"},
	{"न", "n"},
	
	{"ा", "ā"},
}

tt["Latn"] = require("Module:table").invert(tt["Deva"])

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

    return text
end

function export.template_tr(frame)
	local args = require("Module:parameters").process(frame.args, {
		[1] = {required = true}, -- text
		[2] = {required = true, default = "hort"},
		["sc"] = {default = require("Module:scripts").findBestScriptWithoutLang(frame.args[1])}
	})
	
	local tr = export.tr(args[1], "hort", args.sc)
	
	return tr or "-"	
end

return export