Module:inc-ohi-translit: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m 1 revision imported |
(No difference)
| |
Latest revision as of 12:46, 21 April 2026
Documentation for this module may be created at Module:inc-ohi-translit/doc
local m_str_utils = require("Module:string utilities")
local U = m_str_utils.char
local gsub = m_str_utils.gsub
local export = {}
-- uncommon diacritics
local fatHataan = U(0x64B) -- فَتْحَۃً diacritic
local highhmz = U(0x654) -- ہَمزَہ diacritic
local zwnj = U(0x200C) -- ZWNJ (zero-width non-joiner)
local ghunna = U(0x658) -- نُونِ غُنَّہ diacritic
local dagger_alif = U(0x670) -- اَلِف خَنْجَرِیَّۃ diacritic
-- common diacritics
local zabar = U(0x64E) -- زَبَر diacritic
local zer = U(0x650) -- زیر diacritic
local pesh = U(0x64F) -- پیش diacritic
local tashdid = U(0x651) -- تَشْدِيد, also called شَدَّۃ
local jazm = "ْ" -- diacritic also سُکُون
local tt = {
-- ا
["آ"] = "ā", -- الِف مَدَّه
["أ"] = "a", -- اَلِف ہَمزَہ
["ا"] = "a", -- اَلِف
-- ٮ
["ب"] = "b", -- بے
["ٻ"] = "ḇ", -- ٻے (Sindhi/Saraiki implosive)
["ڀ"] = "bh", -- ڀے (Sindhi aspirate)
["پ"] = "p", -- پے
["ت"] = "t", -- تے
["ٹ"] = "ṭ", -- ٹے (modern retroflex)
["ٿ"] = "ṭ", -- ٿے (old retroflex)
["ث"] = "s̱", -- ثے
-- ح
["ج"] = "j", -- جِيم
["چ"] = "c", -- چے
["ڇ"] = "ch", -- ڇے (Sindhi aspirate)
["ڄ"] = "c", -- ڄے (Sindhi/Saraiki implosive)
["ڃ"] = "ñ", -- ڃے (Sindhi nasal)
["ح"] = "ḥ", -- بَڑِی حے
["خ"] = "x", -- خے
--د
["د"] = "d", -- دال
["ݙ"] = "ḏ", -- ݙال (Saraiki implosive)
["ڈ"] = "ḍ", -- ڈال (modern retroflex)
["ڐ"] = "ḍ", -- ڐال (old retroflex)
["ڌ"] = "ḍh", -- ڌال (Sindhi retroflex aspirate)
["ڏ"] = "ḏ", -- ڏال (Sindhi implosive)
["ڊ"] = "ḍ", -- ڊال (Sindhi retroflex)
["ڍ"] = "dh", -- ڍال (Sindhi aspirate)
["ذ"] = "ẕ", -- ذال
-- ر
["ر"] = "r", -- رے
["ڑ"] = "ṛ", -- ڑے (modern retroflex)
["ڙ"] = "ṛ", -- ڙے (old retroflex)
["ز"] = "z", -- زے
["ژ"] = "ž", -- ژے
-- س
["س"] = "s", -- سِین
["ش"] = "ś", -- شِین
-- ص
["ص"] = "ṣ", -- صاد
["ض"] = "ẓ", -- ضاد
-- ط
["ط"] = "t̤", -- طوے
["ظ"] = "z̤", -- ظوے
-- ع ء
["ع"] = "'", -- عَین
["ء"] = "'", -- ہَمزَہ
["غ"] = "ġ", -- غَین
-- ف ق
["ف"] = "f", -- فے
["ڦ"] = "ph", -- ڦے (Sindhi aspirate)
["ق"] = "q", -- قاف
-- ک
["ک"] = "k", -- کاف
["ك"] = "k", -- كاف (Arabic variant)
["ڪ"] = "k", -- ڪاف (Sindhi Kufic variant)
["گ"] = "g", -- گاف
["ڳ"] = "g̠", -- ڳاف (Sindhi/Saraiki implosive)
["ڱ"] = "ṅ", -- ڱاف (Sindhi nasal)
-- ل م
["لؕ"] = "ḷ", -- اڑلام (Punjabi retroflex)
["ل"] = "l", -- لام
["م"] = "m", -- مِیم
-- ں
["ں"] = "ṉ", -- نُون غُنَّہ
["ن"] = "n", -- نُون
["ڻ"] = "ṇ", -- ڻُون (Sindhi retroflex)
["ݨ"] = "ṇ", -- اڑنون (Punjabi retroflex)
-- و
["و"] = "v", -- واؤ
["ؤ"] = "v", -- واوِ مَہْمُوز
-- ہ
["ہ"] = "h", -- چھوٹِی ہے
["ه"] = "h", -- چھوٹِی هے (Persian/Arabic variant)
["ۀ"] = "h", -- ہے یے) بَڑِی یے مَہْمُوز) (in izafat)
["ة"] = "h", -- تاء مَرْبُوطَة
["ۃ"] = "h", -- تاء مَرْبُوطَۃ
["ھ"] = "h", -- دو چَشْمِی ہے
-- ی
["ی"] = "y", -- یے
["ى"] = "y", -- اَلِف مَقْصُورَۃ (Arabic)
["ي"] = "y", -- يے (Arabic variant)
["ئ"] = "y", -- يے ہَمزَہ
["ے"] = "e", -- بَڑِی یے
["ۓ"] = "e", -- بَڑِی یے مَہْمُوز
-- common diacritics
[zabar] = "", -- زَبَر diacritic
[zer] = "", -- زیر diacritic
[pesh] = "", -- پیش diacritic
[tashdid] = "", -- تَشْدِيد, also called شَدَّۃ
[jazm] = "", -- also سُکُون - no vowel
-- uncommon diacritics
[zwnj] = "-", -- ZWNJ (zero-width non-joiner)
[highhmz] = "", -- ہَمزَہ diacritic
[fatHataan] = "", -- فَتْحَۃً diacritic
[ghunna] = "", -- نُونِ غُنَّہ diacritic
[dagger_alif] = "", -- اَلِف خَنْجَرِیَّۃ diacritic
-- ligatures
["ﻻ"] = "la",
["ﷲ"] = "alah",
-- kashida
["ـ"] = "-", -- کَشِیدَہ, no sound
-- numerals
["۱"] = "1", ["۲"] = "2", ["۳"] = "3", ["۴"] = "4", ["۵"] = "5",
["۶"] = "6", ["۷"] = "7", ["۸"] = "8", ["۹"] = "9", ["۰"] = "0",
-- punctuation (leave on separate lines)
["؟"] = "?", -- question mark
["،"] = ",", -- comma
["؛"] = ";", -- semicolon
["«"] = '“', -- quotation mark
["»"] = '”', -- quotation mark
["٪"] = "%", -- percent
["؉"] = "‰", -- per mille
["٫"] = ".", -- decimals
["٬"] = ",", -- thousand
}
function export.tr(text, lang, sc)
-- If the script is not ur-Arab, do not transliterate
if sc ~= "ur-Arab" then
return
end
-- Transliterate characters
text = gsub(text, '.', tt)
return text
end
return export