Huæjzw jyi͡an. Lohanži sangə nyzʼ Næhur i͡u jigə lohan li͡an lopər. / Tamu žuali sangə nyzʼ. Ni zæ bə xi͡o Ni zæ bə xi͡o, Və bu xin, ni zæ bə hun! / Ni zæ bə sʼ, huli͡užin, vədi ni͡an xin! / Və zæ bu na řə xin huan nidi lʼn xi͡o, / Və čin ni huan ho xinči. Zæ bə zo və! | IPA(key): (Standard Gansu Dungan) /
-xuɛi-tsu- -jүян-. -lɔ-xæ̃-tɕi- -sæ̃-kə- -ny-tsɿ- -nɛ-xou儿- -iou- -ji-kə- -lɔ-xæ̃- -liæ̃- -lɔ-pʰə儿-. / -tʰa-mou- -tʂua-li- -sæ̃-kə- -ny-tsɿ-. -ni- -tsɛ- -pə- -ɕiɔ- -ni- -tsɛ- -pə- -ɕiɔ-, -və- -pou- -ɕiŋ-, -ni- -tsɛ- -pə- -xuŋ-! / -ni- -tsɛ- -pə- -sɿ-, -xou-liou-tɕiŋ-, -və-ti- -niæ̃- -ɕiŋ-! / -və- -tsɛ- -pou- -na- -ʐə- -ɕiŋ- -xuæ̃- -ni-ti- -ləŋ- -ɕiɔ-, / -və- -tɕʰiŋ- -ni- -xuæ̃- -xɔ- -ɕiŋ-tɕʰi-. -tsɛ- -pə- -tsɔ- -və-! / |
Næhur i͡u jigə lodolæ, Tasʼ jigə mʼntulæ, Lodo zæ bazaršon žuan, Ta ba i͡udi za hua kan. / Jigə Balda do mi͡anči͡an, Bu žʼ ta von nani žuan, Ta gi lodo fədi ho: "Visa ni žir či͡ədi zo, Ni zæ žʼtar ba sa zo?" Bʼj hwti͡ər Tæjon žošon, bʼj hwti͡ər, / Ni tæ goxin. / Ni li͡an žin guon fadini, / Čidi čun fʼn. / Jisʼr ni do ti͡anšonli, / Zuxi͡on bʼj i͡un. / Jisʼr zu do huajyanli. / Ba xi͡an huar vʼn. / Ži͡ar huardini, və kandi, / Nidi xin go. / Dusʼ nidi da huajyan, / Ni i͡uxir luə. / Ni li͡an hun huar fadini, / Tæi͡onjiban. / Dʼn nidini mo žyhuar. / Xyəbʼj modan... / Nisʼ čunti͡an, guon zodi / Huar kædi von. / Zun luəbudo, hwti͡ər-a, / Žin fui͡əršon. | IPA(key): (Standard Gansu Dungan) /
-nɛ-xou儿- -iou- -ji-kə- -lɔ-tɔ-lɛ-, -tʰa-sɿ- -ji-kə- -məŋ-tʰou-lɛ-, -lɔ-tɔ- -tsɛ- -pa-tsa儿-ʂɑŋ- -tʂuæ̃-, -tʰa- -pa- -iou-ti- -tsa- -xua- -kʰæ̃-. / -ji-kə- -pa-ta- -tɔ- -miæ̃-tɕʰiæ̃-, -pou- -tʂʅ- -tʰa- -vɑŋ- -næ̃-i- -tʂuæ̃-, -tʰa- -ki- -lɔ-tɔ- -fə-ti- -xɔ-: "-vi-sa- -ni- -tɕi儿- -tɕʰiə-ti- -tsɔ-, -ni- -tsɛ- -tʂʅ-tʰa儿- -pa- -sa- -tsɔ-?" -pei- -xu-tʰiə儿- -tʰэй-ɑŋ- -tʂɔ-ʂɑŋ-, -pei- -xu-tʰiə儿-, / -ni- -tʰɛ- -kɔ-ɕiŋ-. / -ni- -liæ̃- -tɕiŋ- -kuɑŋ- -fa-tiŋ-i-, / -tɕʰi-ti- -tʂʰuŋ- -fəŋ-. / -ji-sɿ儿- -ni- -tɔ- -tʰiæ̃-ʂɑŋ-li-, / -tsou-ɕiɑŋ- -pei- -юн-. / -ji-sɿ儿- -tsou- -tɔ- -xуай-yæ̃-li-. / -pa- -ɕiæ̃- -xua儿- -vəŋ-. / -tɕia儿- -xua儿-tiŋ-i-, -və- -kʰæ̃-ti-, / -ni-ti- -ɕiŋ- -kɔ-. / -tou-sɿ- -ni-ti- -ta- -xуай-yæ̃-, / -ni- -iou-ɕi儿- -luə-. / -ni- -liæ̃- -xuŋ- -xua儿- -fa-tiŋ-i-, / -tʰɛ-iɑŋ-ji-pæ̃-. / -təŋ- -ni-tiŋ-i- -mɔ- -tɕy-xua儿-. / -ɕyə-pei- -mɔ-tæ̃-... / -ni-sɿ- -tʂʰuŋ-tʰiæ̃-, -kuɑŋ- -tsɔ-ti- / -xua儿- -kʰɛ-ti- -vɑŋ-. / -tsuŋ- -luə-pou-tɔ-, -xu-tʰiə儿---a-, / -tɕiŋ- -fуе儿-ʂɑŋ-. / |
Vəmwsʼ minda šoni͡an / Sovi͡ət guonjinšondi, / Zæ kæhuardi gujtwni / li͡an huar jii͡on žonni / (I͡a. Xivaza) bazaršon; Sovi͡ət Li͡anbon; Tohma | IPA(key): (Standard Gansu Dungan) /
-və-mu-sɿ- -miŋ-ta- -ʂɑŋ-iæ̃- / -sɔ-viə- -kuɑŋ-jiŋ-ʂɑŋ-ti-, / -tsɛ- -kʰɛ-xua儿-ti- -kuei-tʰўн-i- / -liæ̃- -xua儿- -ji-iɑŋ- -tʂɑŋ-ni- / (-ia-. -ɕi-va-tsa-) -pa-tsa儿-ʂɑŋ-; -sɔ-viə- -liæ̃-pɑŋ-; -tʰɔ-ma- / |
--[[
* https://ru.wikipedia.orghttps://dictious.com/en/Дунганская_письменность
* http://www.eki.ee/knab/lat/kbldng.pdf
* 林涛《东干语论稿》
* 林涛《中亚东干语研究》
ا ب پ ت ث
ج چ ح خ د
ذ ر ز ژ س
ش ص ض ڞ ط
ظ ع غ ف ق
ک گ ڴ ل م
ن و ۋ ه ى
]]
local export = {}
local gsub = mw.ustring.gsub
local gmatch = mw.ustring.gmatch
local match = mw.ustring.match
-- Cyrl to Latn, baseless nonsense by yours truly
local tt_custom = {
= 'B', = 'P', = 'M', = 'F', = 'V',
= 'D', = 'T', = 'N', = 'L',
= 'Z', = 'C', = 'S',
= 'Ž', = 'Č', = 'Š', = 'Ř',
--] --] = 'X',
= 'G', = 'K', = 'Ŋ', = 'H',
= 'R',
= 'ʼ', = 'J', = 'W', = 'Y',
--]
= 'A', = 'I͡a',
= 'Ə', = 'I͡ə',
= 'Æ',
= 'O', = 'I͡o',
= 'U', = 'I͡u',
= 'I',
= 'b', = 'p', = 'm', = 'f', = 'v',
= 'd', = 't', = 'n', = 'l',
= 'z', = 'c', = 's',
= 'ž', = 'č', = 'š', = 'ř',
--] --] = 'x',
= 'g', = 'k', = 'ŋ', = 'h',
= 'r',
= 'ʼ', = 'j', = 'w', = 'y',
--]
= 'a', = 'i͡a',
= 'ə', = 'i͡ə',
= 'æ',
= 'o', = 'i͡o',
= 'u', = 'i͡u',
= 'i',
}
-- Cyrl to Latn, modified from the old Dungan Latin alphabet
local tt_classic = {
= 'B', = 'P', = 'M', = 'F', = 'V',
= 'D', = 'T', = 'N', = 'L',
= 'Z', = 'C', = 'S',
= 'Ž', = 'Č', = 'Š', = 'Ƶ',
--] --] = 'X',
= 'G', = 'K', = 'Ŋ', = 'H',
= 'R',
= 'Ь', = 'J', = 'W', = 'Y',
--]
= 'A', = 'I͡a',
= 'Ə', = 'I͡ə',
= 'E',
= 'O', = 'I͡o',
= 'U', = 'I͡u',
= 'I',
= 'b', = 'p', = 'm', = 'f', = 'v',
= 'd', = 't', = 'n', = 'l',
= 'z', = 'c', = 's',
= 'ž', = 'č', = 'š', = 'ƶ',
--] --] = 'x',
= 'g', = 'k', = 'ŋ', = 'h',
= 'r',
= 'ь', = 'j', = 'w', = 'y',
--]
= 'a', = 'i͡a',
= 'ə', = 'i͡ə',
= 'e',
= 'o', = 'i͡o',
= 'u', = 'i͡u',
= 'i',
}
local conv = {}
conv = {
= {
= 'p', = 'pʰ', = 'm', = 'f', = 'v',
= 't', = 'tʰ', = 'n', = 'l',
= 'ts', = 'tsʰ', = 's',
= 'tʂ', = 'tʂʰ', = 'ʂ', = 'ʐ',
--] --] = 'ɕ',
= 'k', = 'kʰ', = 'ŋ', = 'x',
= 'ɾ',
-- ]
= 'j',
},
= {
= {
= 'ɿ', = 'i', = 'u', = 'y',
--]
= 'a', = 'ia', --]
= 'ə', = 'iə', --] --]
= 'ɛ', --]
= 'ɔ', = 'iɔ', --]
--] --]
= 'ou', = 'iou',
= 'i',
},
= {
= 'ua',
= 'uə', = 'yə',
= 'uɛ',
--]
= 'ei', = 'uei',
= 'æ̃', = 'iæ̃', --] --]
= 'ɑŋ', = 'iɑŋ', --]
= 'əŋ', = 'iŋ', = 'uŋ', = 'yŋ',
},
= {
= 'uɛi',
= 'uæ̃', = 'yæ̃',
= 'uɑŋ',
},
},
= {
= "²⁴", = "⁵¹", = "⁴⁴",
= "⁰",
},
}
conv = {
= {
= 'b', = 'p', = 'm', = 'f', = 'v',
= 'd', = 't', = 'n', = 'l',
= 'z', = 'c', = 's',
= 'ž', = 'č', = 'š', = 'ř',
--] --] = 'š',
= 'g', = 'k', = 'ŋ', = 'x',
= 'r',
-- ]
= 'j',
},
= {
= {
= 'ʼ', = 'i', = 'uu', = 'y',
--]
= 'a', = 'ia', --]
= 'o', = 'io', --] --]
= 'ai', --]
= 'ao', = 'iao', --]
--] --]
= 'u', = 'iu',
= 'i',
},
= {
= 'ua',
= 'uo', = 'yo',
= 'uai',
--]
= 'ei', = 'uei',
= 'an', = 'ian', --] --]
= 'aŋ', = 'iaŋ', --]
= 'en', = 'in', = 'un', = 'yn',
},
= {
= 'uei',
= 'uan', = 'yan',
= 'uaŋ',
},
},
= {
= "²⁴", = "⁵¹", = "⁴⁴",
= "⁰",
},
}
local tt = tt_custom
function export.tr(text, lang, sc)
if (sc == 'Arab') then
text = gsub(text, '.', tt_arab)
end
text = gsub(text, '()', '<mark>%1</mark>') -- highlight pre-existing Latn characters
text = gsub(text, '.', tt)
text = gsub(text, '()', '<mark>%1</mark>') -- highlight remaining Cyrl characters
return text
end
function export.ipa(text, lang, sc)
local m_IPA = require('Module:IPA')
local lang = require('Module:languages').getByCode('dng')
local conv = conv
local ret = {}
text = mw.ustring.lower(text)
local extraA = match(text, '^(*)')
table.insert(ret, extraA)
for word, extraB in gmatch(text, '(+)(*)') do
mw.log(word)
for initial, rime, erhua in gmatch(word, '(?)(??)(р?)') do
mw.log('\t', initial, rime, erhua)
initial = (conv.intials or '<mark>' .. initial .. '</mark>')
rime = (conv.finals or '<mark>' .. rime .. '</mark>')
erhua = (erhua ~= '' and '<sub>儿</sub>' or '')
if (initial == 'tʂ' and match(rime, '^')) then
initial = 'tɕ'
elseif (initial == 'tʂʰ' and match(rime, '^')) then
initial = 'tɕʰ'
elseif (match(initial, '') and rime == 'ɿ') then
rime = 'ʅ'
end
-- TODO(? is this a good idea anyway?):
-- * tones?
-- * erhua? (is it really just /ɾ/?)
-- * non-sinitic words?
table.insert(ret, initial .. rime .. erhua)
end
table.insert(ret, extraB)
end
text = '/' .. table.concat(ret, '-') .. '/'
return m_IPA.format_IPA_full { lang = lang, items = {{ pron = text, a = { "Standard Gansu Dungan" } }} }
end
function export.foobar(frame)
local a = {
'<table class="wikitable">',
'<tr>',
'<td>' .. export.tr(frame.args) .. '</td>',
'<td>' .. gsub(export.ipa(frame.args), '<span class="previewonly.+', '') .. '</td>',
'</tr>',
'</table>',
}
return table.concat(a)
end
return export