Module:fa-translit
- The following documentation is located at Module:fa-translit/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
Generates both the Classical romanization and the Iranian romanization, from the classical vocalization, using module:fa-cls-translit as a backend. Still a work-in-progress. To transliterate Classical Persian and Iranian Persian text independently use their independent transliteration modules listed below:
Override Iranian romanization
[edit]The outputted Iranian romanization can be overwritten by vocalizing the word twice (using classical vocalization) with both vocalizations separated by //
. This will cause the text to the left of the //
to be the outputted classical romanization and the text on the right to be the outputted Iranian romanization. Be aware that, due to how MediaWiki processes bidirectional text, the vocalizations may appear to switch sides when viewed from the Wikitext editor.
- Example 1
- Input:
نَمیدَانَم//نِمیدَانَم
- Output: namē-dānam/nemi-dânam
- Example 2
- Input:
خَانَگِی//خَانِگِی
- Output: xānagī/xânegi
- Example 3
- Input:
موز//مَوْز
- Output: mōz/mowz
Tests
[edit]All tests passed. (refresh)
Text | Expected | Actual | |
---|---|---|---|
گویَا کِه | gōyā ki/guyâ ke | gōyā ki/guyâ ke | |
حُقُوق | huqūq/hoğuğ | huqūq/hoğuğ | |
دَقِیقَه | daqīqa/dağiğe | daqīqa/dağiğe | |
خْوَرَاسَان | xwarāsān/xorâsân | xwarāsān/xorâsân | |
خْویش | xwēš/xiš | xwēš/xiš | |
روز | rōz/ruz | rōz/ruz | |
وَلیکِن | walēkin/valiken | walēkin/valiken | |
شُویْ | šūy/šuy | šūy/šuy | |
شویْ | šōy/šuy | šōy/šuy | |
شِیر | šīr/šir | šīr/šir | |
شیر | šēr/šir | šēr/šir | |
شَوْهَر | šawhar/šowhar | šawhar/šowhar | |
کَسی | kasē/kasi | kasē/kasi | |
گویِش | gōyiš/guyeš | gōyiš/guyeš | |
بَیْنُالمِلَلِی | baynu-l-milalī/beyno-l-melali | baynu-l-milalī/beyno-l-melali | |
شَوِی | šawī/šavi | šawī/šavi | |
شِوِی | šiwī/ševi | šiwī/ševi | |
شُوی | šuwē/šovi | šuwē/šovi | |
خْوَدْرَو | xwadraw/xodrow | xwadraw/xodrow | |
حقوق | (nil) | (nil) | |
عشق | (nil) | (nil) | |
نَمیدَانَم/نِمیدَانَم | namē-dānam/nemi-dânam | namē-dānam/nemi-dânam | |
خَانَگِی/خَانِگِی | xānagī/xânegi | xānagī/xânegi | |
موز/مَوْز | mōz/mowz | mōz/mowz |
local export = {}
local m_str_utils = require("Module:string utilities")
local gsub = m_str_utils.gsub
local EOW = "([" .. "%s" .. "\n" .. "%p" .. "%x" .. "])"
local POW = "([" .. "%S" .. "]+)"
local hyphen = "<span class=\"Zsym mention\" style=\"font-size:85%;\">/</span>"
local function basetr(text, lang, sc)
return require("Module:fa-cls-translit").tr(text, lang, sc)
end
function export.CLS_tr(text)
-- if // is present, ignore // and everything AFTER
text = gsub(text, "(//)" .. ".*", "")
text = basetr(text, lang, sc)
if text == nil then
return nil
end
return text
end
function export.IRA_tr(text)
-- if // is present, ignore // and everything BEFORE
text = gsub(text, "^" .. ".*" .. "(//)", "")
text = basetr(text, lang, sc)
if text == nil then
return nil
end
text = require('Module:fa-IPA').romanize_ira(text)
return text
end
function export.tr(text)
if export.CLS_tr(text) == nil or export.IRA_tr(text) == nil then
return nil
else
text = export.CLS_tr(text) .. hyphen .. export.IRA_tr(text)
end
return text
end
-- for other modules
function export.frame_xlit(text1, text2)
text = text1 .. hyphen .. text2
return text
end
return export