มอดูล:Guru-translit
- The following documentation is located at มอดูล:Guru-translit/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
This module will transliterate text in the อักษรคุรมุขี. It is used to transliterate ปัญจาบเก่า, ปัญจาบ, Pahari-Potwari, and Sindhi Bhil.
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:Guru-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 gsub = mw.ustring.gsub
local u = mw.ustring.char
local letter_with_mark = "(.["..u(0x0300).."-"..u(0x036F).."]?)"
local tt = {
-- consonants
["ਕ"] = "ก", ["ਖ"] = "ข", ["ਗ"] = "ค", ["ਘ"] = "ฆ", ["ਙ"] = "ง",
["ਚ"] = "จ", ["ਛ"] = "ฉ", ["ਜ"] = "ช", ["ਝ"] = "ฌ", ["ਞ"] = "ญ",
["ਟ"] = "ฏ", ["ਠ"] = "ฐ", ["ਡ"] = "ฑ", ["ਢ"] = "ฒ", ["ਣ"] = "ณ",
["ਤ"] = "ต", ["ਥ"] = "ถ", ["ਦ"] = "ท", ["ਧ"] = "ธ", ["ਨ"] = "น",
["ਪ"] = "ป", ["ਫ"] = "ผ", ["ਬ"] = "พ", ["ਭ"] = "ภ", ["ਮ"] = "ม",
["ਯ"] = "ย", ["ਰ"] = "ร", ["ਲ"] = "ล", [u(0x0A33)] = "ล̱", ["ਵ"] = "ว",
[u(0x0A36)] = "ศ", ["ਸ"] = "ส", ["ਹ"] = "ห",
[u(0x0A59)] = "ฃ", [u(0x0A5A)] = "ฅ",
[u(0x0A5B)] = "ซ", ["ੜ"] = "ฬ", [u(0x0A5E)] = "ฝ",
-- independent vowels
["ਅ"] = "อ", ["ਆ"] = "อา", ["ਇ"] = "อิ", ["ਈ"] = "อี", ["ਉ"] = "อุ", ["ਊ"] = "อู",
["ਏ"] = "เอ", ["ਐ"] = "ไอ", ["ਓ"] = "โอ", ["ਔ"] = "เอา",
["ੲ"] = "อ", ["ੳ"] = "อ", -- bases of ʼi and ʼu
-- dependent vowels and diacritics (excluding front type)
["ਾ"] = "า", ["ਿ"] = "ิ", ["ੀ"] = "ี", ["ੁ"] = "ุ", ["ੂ"] = "ู",
["ਂ"] = "ํ", ["ੰ"] = "ํ", ["ਃ"] = "ะ", ["੍"] = "ฺ", ["ੵ"] = "ฺย",
["਼"] = u(0x0331), -- macron below
["ਁ"] = "ํ์", -- candrabindu
["ੑ"] = u(0x0301), -- acute accent
-- numerals
["੦"] = "0", ["੧"] = "1", ["੨"] = "2", ["੩"] = "3", ["੪"] = "4",
["੫"] = "5", ["੬"] = "6", ["੭"] = "7", ["੮"] = "8", ["੯"] = "9",
-- zero-width space (display it if it hides in a word)
[u(0x200B)] = "‼",
}
local adjust0 = {
-- for convenience
["ਲ".."਼"] = u(0x0A33), ["ਸ".."਼"] = u(0x0A36),
["ਖ".."਼"] = u(0x0A59), ["ਗ".."਼"] = u(0x0A5A),
["ਜ".."਼"] = u(0x0A5B), ["ਫ".."਼"] = u(0x0A5E),
["ੴ"] = "ਇੱਕ ਓਅੰਕਾਰ",
}
local adjust1 = {
-- dependent vowels (front type)
["ੇ"] = "เ%1", ["ੈ"] = "ไ%1", ["ੋ"] = "โ%1", ["ੌ"] = "เ%1า",
}
function export.tr(text, lang, sc, debug_mode)
if type(text) == "table" then -- called directly from a template
text = text.args[1]
end
for k, v in pairs(adjust0) do
text = gsub(text, k, v)
end
-- addak rule to double subsequent consonant
text = gsub(text, "ੱ([ਕ-ਹ"..u(0x0A59).."-"..u(0x0A5E).."])", "%1੍%1")
text = gsub(text, ".", tt)
for k, v in pairs(adjust1) do
text = gsub(text, letter_with_mark..k, v)
end
text = gsub(text, "([เแไโ])อฺ", "อฺ%1")
-- ย้ายสัญลักษณ์ขึ้นบน เมื่อมีสระล่าง (ยกเว้นตัวที่ไม่มี)
text = gsub(text, u(0x0331).."([ุ-ฺ])", u(0x0304).."%1") -- macron below > macron above
-- ย้ายสัญลักษณ์ลงล่าง เมื่อมีสระบน (ยกเว้นตัวที่ไม่มี)
text = gsub(text, u(0x0301).."([ัิ-ื็-๎])", u(0x0317).."%1") -- acute accent > acute accent below
return text
end
return export