Module:Phli-translit
- 下列说明文档由Module:documentation/functions/translit所生成。[编辑]
- 相关链接:子页面列表 • 链入 • 嵌入包含 • 测试用例 • 沙盒
这个模组会将碑刻巴列维文文字转写为拉丁字母。
最好不要直接从模板或其他模组调用此模组。要从模板中使用它,请以{{xlit}}
做为替代;若要在模组中使用,则以Module:languages#Language:transliterate替代。
关于测试用例,请参阅Module:Phli-translit/testcases。
函数
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, returnsnil
.
local export = {}
local tt = {
["𐭠"] = "ʾ", -- aleph
["𐭡"] = "b", -- beth
["𐭢"] = "g", -- gimil
["𐭣"] = "d", -- daleth
["𐭤"] = "h", -- he
["𐭥"] = "ʿ", -- waw-ayin-resh
["𐭦"] = "z", -- zayin
["𐭧"] = "ḥ", -- heth
["𐭨"] = "ṭ", -- teth
["𐭩"] = "y", -- yodh
["𐭪"] = "k", -- kaph
["𐭫"] = "l", -- lamedh
["𐭬"] = "m", -- mem-qoph
["𐭭"] = "n", -- nun
["𐭮"] = "s", -- samekh
["𐭯"] = "p", -- pe
["𐭰"] = "c", -- sadhe
["𐭱"] = "š", -- shin
["𐭲"] = "t", -- taw
}
local numbers = {
["𐭸"] = 1,
["𐭹"] = 2,
["𐭺"] = 3,
["𐭻"] = 4,
["𐭼"] = 10,
["𐭽"] = 20,
["𐭾"] = 100,
["𐭿"] = 1000,
}
function export.convert_numbers(numeric_str)
local total = 0
for c in mw.ustring.gmatch(numeric_str, ".") do
total = total + numbers[c]
end
return total
end
function export.tr(text, lang, sc)
-- If the script is not Phli, do not transliterate
if sc ~= "Phli" then
return
end
-- Category to catch automatic transcriptions of waw-ayin-resh and mem-qoph
-- [[Category:Automatic Inscriptional Pahlavi transliterations containing ambiguous characters]]
local ambig_note = ""
if mw.ustring.match(text, "[𐭬𐭥]") then
ambig_note = "[[Category:Automatic Inscriptional Pahlavi transliterations containing ambiguous characters]]"
end
if mw.ustring.match(text, "[𐭠-𐭿]") then
text = mw.ustring.gsub(text, "[𐭸-𐭿]+", export.convert_numbers)
end
-- Transliterate characters
text = mw.ustring.gsub(text, ".", tt)
return text .. ambig_note
end
return export