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-Telu-translit/testcases.
tr(text, lang, sc)
text
written in the script specified by the code sc
, and language specified by the code lang
.nil
.local export = {}
local char = {
= "క", = "ఖ", = "గ", = "ఘ", = "ఙ", = "చ", = "ఛ", = "జ", = "ఝ", = "ఞ", = "ట", = "ఠ", = "డ", = "ఢ", = "ణ", = "త", = "థ", = "ద", = "ధ", = "న", = "ప", = "ఫ", = "బ", = "భ", = "మ", = "య", = "ర", = "ల", = "ళ", = "వ", = "శ", = "ష", = "స", = "హ",
= "అ", = "ఆ", = "ఇ", = "ఈ", = "ఉ", = "ఊ", = "ఋ", = "ౠ", = "ఌ", = "ౡ", = "ఎ", = "ఏ", = "ఐ", = "ఒ", = "ఓ", = "ఔ",
= "ా", = "ి", = "ీ", = "ు", = "ూ", = "ృ", = "ౄ", = "ౢ", = "ౣ", = "ె", = "ే", = "ై", = "ొ", = "ో", = "ౌ", = "్",
= "ం", = "ః", = "ఁ", = "఼", = "ఽ", = "౷", = "ఓం",
= "౦", = "౧", = "౨", = "౩", = "౪", = "౫", = "౬", = "౭", = "౮", = "౯"
}
-- Override returns text even if some characters cannot be transliterated.
function export.tr(text, lang, sc, override, nakaaraPollu, archaicLlla, archaicRra)
local UTF8_char = "*"
local Telu = require("Module:scripts").getByCode("Telu")
text = mw.ustring.toNFD(text)
text = string.gsub(text, UTF8_char, char)
-- Nakaara Pollu is used in Sanskrit.
if nakaaraPollu or lang == "sa" then
text = mw.ustring.gsub(text, "న్()", "ౝ%1")
text = mw.ustring.gsub(text, "న్$", "ౝ")
end
if archaicLlla then
text = mw.ustring.gsub(text, "ళ఼", "ఴ")
end
if archaicRra then
text = mw.ustring.gsub(text, "ర఼", "ఱ")
end
text = mw.ustring.toNFC(text)
local reducedText = mw.ustring.gsub(mw.ustring.gsub(text, "<.->", ""), "+", "")
if (mw.ustring.len(reducedText) == Telu:countCharacters(reducedText) and not mw.ustring.find(text, "಼಼")) or override then
return text
else
return nil
end
end
return export