Module:Deva-Brah-translit
Jump to navigation
Jump to search
- The following documentation is generated by Module:documentation/functions/translit. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
This module will transliterate text in the Devanagari script.
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:Deva-Brah-translit/testcases.
Functions
tr(text, lang, sc)
- Transliterates a given piece of
text
written in the script specified by the codesc
, and language specified by the codelang
. - When the transliteration fails, returns
nil
.
local export = {}
local char = {
["क"] = "𑀓", ["ख"] = "𑀔", ["ग"] = "𑀕", ["घ"] = "𑀖", ["ङ"] = "𑀗", ["च"] = "𑀘", ["छ"] = "𑀙", ["ज"] = "𑀚", ["झ"] = "𑀛", ["ञ"] = "𑀜", ["ट"] = "𑀝", ["ठ"] = "𑀞", ["ड"] = "𑀟", ["ढ"] = "𑀠", ["ण"] = "𑀡", ["त"] = "𑀢", ["थ"] = "𑀣", ["द"] = "𑀤", ["ध"] = "𑀥", ["न"] = "𑀦", ["ऩ"] = "𑀷", ["प"] = "𑀧", ["फ"] = "𑀨", ["ब"] = "𑀩", ["भ"] = "𑀪", ["म"] = "𑀫", ["य"] = "𑀬", ["र"] = "𑀭", ["ऱ"] = "𑀶", ["ल"] = "𑀮", ["ळ"] = "𑀴", ["ऴ"] = "𑀵", ["व"] = "𑀯", ["श"] = "𑀰", ["ष"] = "𑀱", ["स"] = "𑀲", ["ह"] = "𑀳",
["अ"] = "𑀅", ["आ"] = "𑀆", ["इ"] = "𑀇", ["ई"] = "𑀈", ["उ"] = "𑀉", ["ऊ"] = "𑀊", ["ऋ"] = "𑀋", ["ॠ"] = "𑀌", ["ऌ"] = "𑀍", ["ॡ"] = "𑀎", ["ऎ"] = "𑁱", ["ए"] = "𑀏", ["ऐ"] = "𑀐", ["ऒ"] = "𑁲", ["ओ"] = "𑀑", ["औ"] = "𑀒",
["ा"] = "𑀸", ["ि"] = "𑀺", ["ी"] = "𑀻", ["ु"] = "𑀼", ["ू"] = "𑀽", ["ृ"] = "𑀾", ["ॄ"] = "𑀿", ["ॢ"] = "𑁀", ["ॣ"] = "𑁁", ["ॆ"] = "𑁳", ["े"] = "𑁂", ["ै"] = "𑁃", ["ॊ"] = "𑁴", ["ो"] = "𑁄", ["ौ"] = "𑁅", ["्"] = "𑁆",
["ं"] = "𑀁", ["ः"] = "𑀂", ["ँ"] = "𑀀", ["ᳵ"] = "𑀃", ["ᳶ"] = "𑀄", ["ऽ"] = "", ["ॐ"] = "𑀑𑀁", ["।"] = "𑁇", ["॥"] = "𑁈",
["०"] = "𑁦", ["१"] = "𑁧", ["२"] = "𑁨", ["३"] = "𑁩", ["४"] = "𑁪", ["५"] = "𑁫", ["६"] = "𑁬", ["७"] = "𑁭", ["८"] = "𑁮", ["९"] = "𑁯"
}
-- Override returns text even if some characters cannot be transliterated.
function export.tr(text, lang, sc, override)
local UTF8_char = "[%z\1-\127\194-\244][\128-\191]*"
local Brah = require("Module:scripts").getByCode("Brah")
text = string.gsub(text, UTF8_char, char)
local reducedText = mw.ustring.gsub(mw.ustring.gsub(text, "<.->", ""), "[%s%p\n]+", "")
if mw.ustring.len(reducedText) == Brah:countCharacters(reducedText) or override then
return text
else
return nil
end
end
return export