local export = {}
local m_baxter = require("Module:ltc-pron/baxter")
local data = mw.loadData("Module:ltc-pron/data")
local people = {
Baxter = {"B", "[[w:Baxter%27s_transcription_for_Middle_Chinese|Baxter]]"},
Karlgren = {"K", "[[w:Bernhard Karlgren|Bernard Karlgren]]"},
Shao = {"S", "[[w:zh:邵荣芬|Shao Rongfen]]"},
Wang = {"W", "[[w:Wang Li (linguist)|Wang Li]]"},
Pulleyblank = {"Pb", "[[w:Edwin G. Pulleyblank|Edwin Pulleyblank]]"},
Zhengzhang = {"Zz", "[[w:Zhengzhang Shangfang|Zhengzhang Shangfang]]"},
Li = {"Li", "[[w:Li Rong (linguist)|Li Rong]]"},
Pan = {"Pan", "[[w:Pan Wuyun|Pan Wuyun]]"}
}
local function show(N,info,prons)
local reconstructions = {}
for key,val in pairs(prons) do
table.insert(reconstructions,key)
for i=1,N do
info[i].pron[key] = val[i]
end
end
local res = '(Keys: '
for key,val in pairs(people) do
res = res .. val[1] .. '=' .. val[2] .. ', '
end
res = res:sub(1,-3)
res = res .. ')\n {| class="wikitable" \n' ..
'! scope=col | # \n' ..
'! scope=col | Name \n' ..
'! scope=col | B \n'
for _,person in ipairs(reconstructions) do
res = res .. ' ! scope=col | ' .. people[person][1] .. '\n'
end
res = res .. '\n'
local ncol = #reconstructions + 3
for i=1,N do
if info[i].caption then
res = res .. '|-\n'
res = res .. '| colspan=' .. ncol .. ' align=center | ' ..
info[i].caption .. '\n'
end
res = res .. '|-\n'
res = res .. '! scope=row | ' .. i .. '\n'
res = res .. '|' .. table.concat(info[i].names,'/') .. '\n'
res = res .. '|' .. info[i].baxter .. '\n'
for _,person in ipairs(reconstructions) do
res = res .. '|' .. info[i].pron[person] .. '\n'
end
end
res = res .. '|}'
return res
end
function export.init(frame)
local N = 38
local inits = {}
for i=1,N do
inits[i] = {names={}, pron={}}
inits[i].baxter = m_baxter.baxter_initial[i]
end
for key,val in pairs(data.init_type) do
table.insert(inits[val].names,key)
end
inits[1].caption = "脣音 / bilabial"
inits[5].caption = "舌頭音 / alveolar"
inits[9].caption = "舌上音 / retroflex"
inits[13].caption = "齒頭音 / dental"
inits[18].caption = "正齒音 / retroflex?"
inits[23].caption = "正齒音 / post-alveolar"
inits[28].caption = "? / velar"
inits[32].caption = "喉音 / glottal"
inits[36].caption = "miscellaneous"
return show(N,inits,data.initialConv)
end
function export.final(frame)
local N = 160
local finals = {}
for i=1,N do
finals[i] = {names={}, pron={}}
finals[i].baxter = m_baxter.baxter_final[i]
end
local sources = {
data.fin_type,
data.fin_type_open,
data.fin_type_deng_open,
data.final_deng,
data.final_openness
}
for _,s in ipairs(sources) do
for key,val in pairs(s) do
table.insert(finals[val].names,key)
end
end
finals[1].caption = "通攝 ung"
finals[9].caption = "江攝 ong"
finals[11].caption = "止攝 i"
finals[22].caption = "遇攝 o"
finals[25].caption = "蟹攝 ai"
finals[43].caption = "臻攝 en"
finals[61].caption = "山攝 an"
finals[89].caption = "效攝 au"
finals[94].caption = "果攝 ar"
finals[98].caption = "假攝 a"
finals[101].caption = "宕攝 ang"
finals[109].caption = "梗攝 eng"
finals[133].caption = "曾攝 erng"
finals[136].caption = "流攝 eu"
finals[139].caption = "深攝 em"
finals[143].caption = "咸攝 am"
return show(N,finals,data.finalConv)
end
return export