From d24a3fd7b3947c098415416f04efb37232bac02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:28:39 +0000 Subject: [PATCH 01/74] =?UTF-8?q?Create=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 未完成 --- "\350\200\201\345\234\213\351\237\263.js" | 61 +++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 "\350\200\201\345\234\213\351\237\263.js" diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" new file mode 100644 index 0000000..065d7c4 --- /dev/null +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -0,0 +1,61 @@ +/* 推導老國音 + * + * @author graphemecluster、JwietPuj-Drin + * + * https://zh.wikiversity.org/zh/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9F%BB%E5%B0%8D%E6%AF%94 + * https://syimyuzya.github.io/qieyun-autoderiver/ + * + * 音: +https://github.com/lyczwy/Old-National-Pronunciation/blob/master/Zhauping-ONP +https://github.com/baopaau/rime-bepemefeve/blob/main/bepemefeve.dict.yaml +https://github.com/jacob-us/lau_guoq_in/blob/master/lau_guoq_in.dict.yaml + */ + +/** @type { 音韻地位['屬於'] } */ +const is = (...x) => 音韻地位.屬於(...x); +/** @type { 音韻地位['判斷'] } */ +const when = (...x) => 音韻地位.判斷(...x); + +if (!音韻地位) return [ + ['標調方式', [1, '調號', '調值']], + ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], +]; + +const 聲母規則 = () => when([ + ['幫母', [['C類', 'f'], ['', 'p']]], + ['滂母', [['C類', 'f'], ['', 'pʰ']]], + ['並母', [['C類', 'f'], ['平聲', 'pʰ'], ['', 'p']]], + ['明母', [['微韻', 'v'], ['C類 非 流通攝', 'w'], ['', 'm']]], + + ['端母', 't'], + ['透母', 'tʰ'], + ['定母', [['平聲', 'tʰ'], ['', 't']]], + ['泥孃母', 'n'], + ['來母', 'l'], + + ['精母', 'ts'], + ['清母', 'tsʰ'], + ['從母', [['平聲', 'tsʰ'], ['', 'ts']]], + ['心邪母', 's'], + + ['知莊章母', 'tʂ'], + ['徹初昌母', 'tʂʰ'], + ['澄崇母', [['平聲', 'tʂʰ'], ['', 'tʂ']]], + ['常母', [['平聲 陽聲韻', 'tʂʰ'], ['', 'ʂ']]], + ['生俟書船母', 'ʂ'], + ['日母', [['止攝 開口', ''], ['', 'ɻ']]], + + ['見母', 'k'], + ['溪母', 'kʰ'], + ['羣母', [['平聲', 'kʰ'], ['', 'k']]], + ['疑母', 'ŋ'], + ['影云以母', ''], + ['曉匣母', 'x'], +], '無聲母規則'); + +const 聲調規則 = () => when([ + ['平聲', [['清音', '1'], ['濁音', '2']]], + ['上聲', [['全濁', '4'], ['', '3']]], + ['去聲', '4'], + ['入聲', '5'], +], '無聲調規則'); From 795af1e8a18cd4ebb21767b5108d4e11d54483e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:44:51 +0000 Subject: [PATCH 02/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 30 ++++++++++++++++------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 065d7c4..7fffc88 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -1,11 +1,12 @@ /* 推導老國音 - * - * @author graphemecluster、JwietPuj-Drin - * - * https://zh.wikiversity.org/zh/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9F%BB%E5%B0%8D%E6%AF%94 - * https://syimyuzya.github.io/qieyun-autoderiver/ - * - * 音: + +@author 307587 + +攷: +https://zh.wikiversity.org/zh/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9F%BB%E5%B0%8D%E6%AF%94 +https://syimyuzya.github.io/qieyun-autoderiver/ + +音: https://github.com/lyczwy/Old-National-Pronunciation/blob/master/Zhauping-ONP https://github.com/baopaau/rime-bepemefeve/blob/main/bepemefeve.dict.yaml https://github.com/jacob-us/lau_guoq_in/blob/master/lau_guoq_in.dict.yaml @@ -18,7 +19,7 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ ['標調方式', [1, '調號', '調值']], - ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], + //['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], //待考 ]; const 聲母規則 = () => when([ @@ -41,7 +42,8 @@ const 聲母規則 = () => when([ ['知莊章母', 'tʂ'], ['徹初昌母', 'tʂʰ'], ['澄崇母', [['平聲', 'tʂʰ'], ['', 'tʂ']]], - ['常母', [['平聲 陽聲韻', 'tʂʰ'], ['', 'ʂ']]], + ['常母', 'ʂ'], + //['常母', [['平聲 陽聲韻', 'tʂʰ'], ['', 'ʂ']]], //待考 ['生俟書船母', 'ʂ'], ['日母', [['止攝 開口', ''], ['', 'ɻ']]], @@ -59,3 +61,13 @@ const 聲調規則 = () => when([ ['去聲', '4'], ['入聲', '5'], ], '無聲調規則'); + +if (選項.標調方式 === '調號') return 聲母 + 韻母 + 聲調; +if (選項.標調方式 === '調值') { + if (聲調 === '1') 聲調 = '⁵⁵'; + if (聲調 === '2') 聲調 = '³⁵'; + if (聲調 === '3') 聲調 = '²¹⁴'; + if (聲調 === '4') 聲調 = '⁵¹'; + if (聲調 === '5') 聲調 = '⁵'; +} +return 聲母 + 韻母 + 聲調; From 85fd26f2b6eb82232faa2e938d065e57dabad562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Thu, 10 Oct 2024 14:23:13 +0000 Subject: [PATCH 03/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 7fffc88..46a685a 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -7,9 +7,7 @@ https://zh.wikiversity.org/zh/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9 https://syimyuzya.github.io/qieyun-autoderiver/ 音: -https://github.com/lyczwy/Old-National-Pronunciation/blob/master/Zhauping-ONP https://github.com/baopaau/rime-bepemefeve/blob/main/bepemefeve.dict.yaml -https://github.com/jacob-us/lau_guoq_in/blob/master/lau_guoq_in.dict.yaml */ /** @type { 音韻地位['屬於'] } */ @@ -55,6 +53,10 @@ const 聲母規則 = () => when([ ['曉匣母', 'x'], ], '無聲母規則'); +const 韻母規則 = () => when([ + +], '無韻母規則'); + const 聲調規則 = () => when([ ['平聲', [['清音', '1'], ['濁音', '2']]], ['上聲', [['全濁', '4'], ['', '3']]], From a8af6cc422026afc94c378412d3b2e6f0a52218b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Thu, 10 Oct 2024 14:42:27 +0000 Subject: [PATCH 04/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 46a685a..ef48b5b 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -53,7 +53,11 @@ const 聲母規則 = () => when([ ['曉匣母', 'x'], ], '無聲母規則'); -const 韻母規則 = () => when([ +const 舒聲韻母規則 = () => when([ + +], '無韻母規則'); + +const 入聲韻母規則 = () => when([ ], '無韻母規則'); @@ -64,6 +68,10 @@ const 聲調規則 = () => when([ ['入聲', '5'], ], '無聲調規則'); +let 聲母 = 聲母規則(); +let 韻母 = is`舒聲` ? 舒聲韻母規則() : 入聲韻母規則(); +let 聲調 = 聲調規則(); + if (選項.標調方式 === '調號') return 聲母 + 韻母 + 聲調; if (選項.標調方式 === '調值') { if (聲調 === '1') 聲調 = '⁵⁵'; @@ -72,4 +80,5 @@ if (選項.標調方式 === '調值') { if (聲調 === '4') 聲調 = '⁵¹'; if (聲調 === '5') 聲調 = '⁵'; } + return 聲母 + 韻母 + 聲調; From 17a4ac617357694cd22636595f68c50e925f25d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 18 Oct 2024 10:41:23 +0000 Subject: [PATCH 05/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= =?UTF-8?q?=EF=BC=9A=E6=94=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 27 +++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index ef48b5b..9e18132 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -54,11 +54,34 @@ const 聲母規則 = () => when([ ], '無聲母規則'); const 舒聲韻母規則 = () => when([ - + //果攝 + //假攝 + //遇攝 + //蟹攝 + //止攝 + //效攝 + //流攝 + //咸攝 + //深攝 + //山攝 + //臻攝 + //梗攝 + //曾攝 + //宕攝 + //江攝 + //通攝 ], '無韻母規則'); const 入聲韻母規則 = () => when([ - + //咸攝 + //深攝 + //山攝 + //臻攝 + //梗攝 + //曾攝 + //宕攝 + //江攝 + //通攝 ], '無韻母規則'); const 聲調規則 = () => when([ From 90ea890a88137d14c1702c55b4ebe1c370bb9f9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 18 Oct 2024 11:10:44 +0000 Subject: [PATCH 06/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= =?UTF-8?q?=E3=80=80=E6=9E=9C=E6=94=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 9e18132..151e5e7 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -17,7 +17,7 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ ['標調方式', [1, '調號', '調值']], - //['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], //待考 + //['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], //待考 ]; const 聲母規則 = () => when([ @@ -55,6 +55,9 @@ const 聲母規則 = () => when([ const 舒聲韻母規則 = () => when([ //果攝 + ['歌韻 一等', [['合口 非 疑母', 'uo'], ['', 'o']]], + ['歌韻 三等', [['開口', 'ie'], ['脣音', 'o'], ['', 'ye']]], + //假攝 //遇攝 //蟹攝 From 14775c78528f5612ef856500f9260a6cea7e6475 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:02:25 +0000 Subject: [PATCH 07/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 4 ++++ 1 file changed, 4 insertions(+) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 151e5e7..7af0fcb 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -98,6 +98,10 @@ let 聲母 = 聲母規則(); let 韻母 = is`舒聲` ? 舒聲韻母規則() : 入聲韻母規則(); let 聲調 = 聲調規則(); +if (['i', 'y'].includes(韻母[0])) 聲母 = { + k: 'tɕ', kʰ: 'tɕʰ', x: 'ɕ', +}[聲母] || 聲母; + if (選項.標調方式 === '調號') return 聲母 + 韻母 + 聲調; if (選項.標調方式 === '調值') { if (聲調 === '1') 聲調 = '⁵⁵'; From 08d7b21e524179f8d7e438ceb06a1d3498d89c35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:05:57 +0000 Subject: [PATCH 08/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 3 +++ 1 file changed, 3 insertions(+) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 7af0fcb..afb7e6a 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -63,6 +63,9 @@ const 舒聲韻母規則 = () => when([ //蟹攝 //止攝 //效攝 + ['宵蕭韻 或 肴韻 牙喉音', 'iau'], + ['豪肴韻', 'au'], + //流攝 //咸攝 //深攝 From 7fd735d84d71f6a851c5d30dae52abfd809d1920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 18 Oct 2024 17:36:31 +0000 Subject: [PATCH 09/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 6 ++++++ 1 file changed, 6 insertions(+) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index afb7e6a..58866fb 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -67,8 +67,14 @@ const 舒聲韻母規則 = () => when([ ['豪肴韻', 'au'], //流攝 + ['侯韻', 'əu'], + ['尤韻', [['幫組', 'əu'], ['', 'iəu']]], + ['幽韻', [['幫組', 'iau'], ['', 'iəu']]], + //咸攝 //深攝 + ['侵韻', 'in'], + //山攝 //臻攝 //梗攝 From 83b4b9781e211138b36f2eecfbac53b9ec822e81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 18 Oct 2024 17:55:11 +0000 Subject: [PATCH 10/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 3 +++ 1 file changed, 3 insertions(+) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 58866fb..b6f2e19 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -81,7 +81,10 @@ const 舒聲韻母規則 = () => when([ //曾攝 //宕攝 //江攝 + ['江韻', [['牙喉音', 'iaŋ'], ['', 'uaŋ']]], + //通攝 + ['通攝', [['三等 牙喉音', 'yŋ'], ['', 'uŋ']]], ], '無韻母規則'); const 入聲韻母規則 = () => when([ From ff53d16535e490bd846280a7b18bd96322849358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 18 Oct 2024 19:00:42 +0000 Subject: [PATCH 11/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 6 ++++++ 1 file changed, 6 insertions(+) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index b6f2e19..4aa21e9 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -78,7 +78,13 @@ const 舒聲韻母規則 = () => when([ //山攝 //臻攝 //梗攝 + ['梗攝 二等', [['合口', 'uŋ'], ['', 'əŋ']]], + ['梗攝', [['合口', 'yŋ'], ['', 'iŋ']]], + //曾攝 + ['登韻', [['合口', 'uŋ'], ['', 'əŋ']]], + ['蒸韻', 'iŋ'], + //宕攝 //江攝 ['江韻', [['牙喉音', 'iaŋ'], ['', 'uaŋ']]], From 1af907535761e6132ed41635ab36a7036b56215d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Thu, 24 Oct 2024 11:43:27 +0000 Subject: [PATCH 12/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 26 +++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 4aa21e9..53b21e6 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -24,7 +24,7 @@ const 聲母規則 = () => when([ ['幫母', [['C類', 'f'], ['', 'p']]], ['滂母', [['C類', 'f'], ['', 'pʰ']]], ['並母', [['C類', 'f'], ['平聲', 'pʰ'], ['', 'p']]], - ['明母', [['微韻', 'v'], ['C類 非 流通攝', 'w'], ['', 'm']]], + ['明母', [['微韻', 'v'], ['C類 非 流通攝', ''], ['', 'm']]], ['端母', 't'], ['透母', 'tʰ'], @@ -57,11 +57,20 @@ const 舒聲韻母規則 = () => when([ //果攝 ['歌韻 一等', [['合口 非 疑母', 'uo'], ['', 'o']]], ['歌韻 三等', [['開口', 'ie'], ['脣音', 'o'], ['', 'ye']]], - + //假攝 + ['麻韻 二等', [['合口', 'ua'], ['牙喉音', 'ia'], ['', 'a']]], + ['麻韻 三四等', 'ie'], + //遇攝 + ['模韻', 'u'], + ['魚虞韻', 'y'], + //蟹攝 //止攝 + ['止攝 合口', [['莊組', 'uai'], ['', 'uəi']]], + ['止攝', [['精組', 'ɿ'], ['日母', 'ɚ'], ['', 'i']]], + //效攝 ['宵蕭韻 或 肴韻 牙喉音', 'iau'], ['豪肴韻', 'au'], @@ -72,10 +81,20 @@ const 舒聲韻母規則 = () => when([ ['幽韻', [['幫組', 'iau'], ['', 'iəu']]], //咸攝 + ['鹽添韻 或 嚴咸銜韻 牙喉音', 'ian'], + ['覃談咸銜嚴韻', 'an'], + ['凡韻', 'yan'], + //深攝 ['侵韻', 'in'], //山攝 + ['寒刪山韻 合口', 'uan'], + ['刪山韻 牙喉音', 'ian'], + ['寒刪山韻', 'an'], + ['仙先韻', [['合口', 'yan'], ['', 'ian']]], + ['元韻', [['脣音', 'uan'], ['合口', 'yan'], ['', 'ian']]], + //臻攝 //梗攝 ['梗攝 二等', [['合口', 'uŋ'], ['', 'əŋ']]], @@ -86,6 +105,9 @@ const 舒聲韻母規則 = () => when([ ['蒸韻', 'iŋ'], //宕攝 + ['唐韻', [['合口', 'uaŋ'], ['', 'aŋ']]], + ['陽韻', [['合口 或 幫莊組', 'uaŋ'], ['', 'iaŋ']]], + //江攝 ['江韻', [['牙喉音', 'iaŋ'], ['', 'uaŋ']]], From 95f5bfab4ee332c93d9b1a8ed1595789472e235d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:53:28 +0000 Subject: [PATCH 13/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 32 ++++++++++++++++++----- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 53b21e6..1356586 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -74,12 +74,12 @@ const 舒聲韻母規則 = () => when([ //效攝 ['宵蕭韻 或 肴韻 牙喉音', 'iau'], ['豪肴韻', 'au'], - + //流攝 ['侯韻', 'əu'], ['尤韻', [['幫組', 'əu'], ['', 'iəu']]], ['幽韻', [['幫組', 'iau'], ['', 'iəu']]], - + //咸攝 ['鹽添韻 或 嚴咸銜韻 牙喉音', 'ian'], ['覃談咸銜嚴韻', 'an'], @@ -87,7 +87,7 @@ const 舒聲韻母規則 = () => when([ //深攝 ['侵韻', 'in'], - + //山攝 ['寒刪山韻 合口', 'uan'], ['刪山韻 牙喉音', 'ian'], @@ -99,32 +99,52 @@ const 舒聲韻母規則 = () => when([ //梗攝 ['梗攝 二等', [['合口', 'uŋ'], ['', 'əŋ']]], ['梗攝', [['合口', 'yŋ'], ['', 'iŋ']]], - + //曾攝 ['登韻', [['合口', 'uŋ'], ['', 'əŋ']]], ['蒸韻', 'iŋ'], - + //宕攝 ['唐韻', [['合口', 'uaŋ'], ['', 'aŋ']]], ['陽韻', [['合口 或 幫莊組', 'uaŋ'], ['', 'iaŋ']]], //江攝 ['江韻', [['牙喉音', 'iaŋ'], ['', 'uaŋ']]], - + //通攝 ['通攝', [['三等 牙喉音', 'yŋ'], ['', 'uŋ']]], ], '無韻母規則'); const 入聲韻母規則 = () => when([ //咸攝 + ['覃談韻', [['牙喉音', 'oʔ'], ['', 'aʔ']]], + ['咸銜凡韻', [['牙喉音', 'iaʔ'], ['', 'aʔ']]], + ['嚴鹽添韻', 'ieʔ'], + //深攝 + ['侵韻', [['莊組', 'əʔ'], ['', 'iʔ']]], + //山攝 + ['寒韻', [['合口', 'uoʔ'], ['脣牙喉音', 'oʔ'], ['', 'aʔ']]], //來母uoʔ、yeʔ兩者勢均 + ['刪山韻', [['合口', 'uaʔ'], ['牙喉音', 'iaʔ'], ['', 'aʔ']]], + ['仙先韻', [['合口', 'yeʔ'], ['', 'ieʔ']]], + ['元韻', [['脣音', 'uaʔ'], ['合口', 'yeʔ'], ['', 'ieʔ']]], + //臻攝 //梗攝 + ['梗攝 二等', [['合口', 'uoʔ'], ['', 'əʔ']]], + ['梗攝', [['合口', 'yʔ'], ['', 'iʔ']]], + //曾攝 + ['登韻', [['合口', 'uoʔ'], ['', 'əʔ']]], + ['蒸韻', [['合口', 'yʔ'], ['莊組', 'əʔ'], ['', 'iʔ']]], + //宕攝 //江攝 + ['江韻', [['牙喉音', 'ioʔ'], ['知莊組', 'uoʔ'], ['', 'oʔ']]], + //通攝 + ['通攝', [['三等 牙喉音', 'yʔ'], ['', 'uʔ']]], ], '無韻母規則'); const 聲調規則 = () => when([ From 435bba596a9219be9a7f05bd5b6013ab5a81d1d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Thu, 24 Oct 2024 14:15:38 +0000 Subject: [PATCH 14/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 1356586..8c44048 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -158,10 +158,29 @@ let 聲母 = 聲母規則(); let 韻母 = is`舒聲` ? 舒聲韻母規則() : 入聲韻母規則(); let 聲調 = 聲調規則(); +//顎化 if (['i', 'y'].includes(韻母[0])) 聲母 = { - k: 'tɕ', kʰ: 'tɕʰ', x: 'ɕ', + n: 'ȵ', k: 'tɕ', kʰ: 'tɕʰ', ŋ: 'ȵ', x: 'ɕ', }[聲母] || 聲母; +//脣音 +if (is`脣音` && 韻母[0] === 'y') 韻母 = 'u' + 韻母.slice(1); +if (['p', 'pʰ', 'm', 'f'].includes(聲母) && 韻母[0] === 'u' && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); +if (['f', 'v'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) || 'əi'; + +//捲舌音 +if (['tʂ', 'tʂʰ', 'ʂ', 'ɻ'].includes(聲母)) { + if (['i', 'iʔ'].includes(韻母)) 韻母 = 'ʅ' + 韻母.slice(1); + if (['in', 'iŋ'].includes(韻母)) 韻母 = 'ə' + 韻母.slice(1); + if (韻母[0] === 'i' && 韻母[1]) 韻母 = 韻母.slice(1); + if (韻母 === 'yn') 韻母 = 'uən'; + if (韻母 === 'yeʔ') 韻母 = 'uoʔ'; + if (韻母[0] === 'y') 韻母 = 'u' + 韻母.slice(1); +} + +//疑母 +if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; + if (選項.標調方式 === '調號') return 聲母 + 韻母 + 聲調; if (選項.標調方式 === '調值') { if (聲調 === '1') 聲調 = '⁵⁵'; From 51ec6ce86163944024cbb4ae1c2e273b0ad6506e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Thu, 24 Oct 2024 17:10:44 +0000 Subject: [PATCH 15/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 6 ++++++ 1 file changed, 6 insertions(+) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 8c44048..0ce63de 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -67,6 +67,12 @@ const 舒聲韻母規則 = () => when([ ['魚虞韻', 'y'], //蟹攝 + ['泰韻 合口 疑母', 'uai'], + ['咍灰泰韻', [['開口', 'ai'], ['', 'uəi']]], //泰合韻見組uai、uəi兩者勢均 + ['佳皆夬韻', [['合口', 'uai'], ['牙喉音', 'iai'], ['', 'ai']]], //佳韻牙喉音a、ai兩者勢均 + ['廢韻', [['脣音', 'uəi'], ['開口 舌齒音', 'ai']]], //茝ㄔㄞˇ,昌開三廢上;明廢去無字,當推如合口 + ['祭廢齊韻', [['合口', 'uəi'], ['', 'i']]], + //止攝 ['止攝 合口', [['莊組', 'uai'], ['', 'uəi']]], ['止攝', [['精組', 'ɿ'], ['日母', 'ɚ'], ['', 'i']]], From 68bb61b7a4b963aadac675d9edf5d3af7c969168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 25 Oct 2024 11:41:26 +0000 Subject: [PATCH 16/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 0ce63de..3fc7a64 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -102,6 +102,11 @@ const 舒聲韻母規則 = () => when([ ['元韻', [['脣音', 'uan'], ['合口', 'yan'], ['', 'ian']]], //臻攝 + ['痕韻', 'ən'], + ['魂韻', 'uən'], + ['真臻殷韻', [['合口', 'yn'], ['', 'in']]], //臻韻莊組會推如ən,詳後 + ['文韻', 'yn'], + //梗攝 ['梗攝 二等', [['合口', 'uŋ'], ['', 'əŋ']]], ['梗攝', [['合口', 'yŋ'], ['', 'iŋ']]], @@ -124,8 +129,9 @@ const 舒聲韻母規則 = () => when([ const 入聲韻母規則 = () => when([ //咸攝 ['覃談韻', [['牙喉音', 'oʔ'], ['', 'aʔ']]], - ['咸銜凡韻', [['牙喉音', 'iaʔ'], ['', 'aʔ']]], + ['咸銜韻', [['牙喉音', 'iaʔ'], ['', 'aʔ']]], ['嚴鹽添韻', 'ieʔ'], + ['凡韻', [['脣音', 'uaʔ'], ['', 'yeʔ']]], //明凡入無字 //深攝 ['侵韻', [['莊組', 'əʔ'], ['', 'iʔ']]], @@ -137,6 +143,12 @@ const 入聲韻母規則 = () => when([ ['元韻', [['脣音', 'uaʔ'], ['合口', 'yeʔ'], ['', 'ieʔ']]], //臻攝 + ['痕韻', 'əʔ'], + ['魂韻', [['脣音', 'oʔ'], ['', 'uʔ']]], + ['真韻 合口', [['知莊組', 'uoʔ'], ['', 'yʔ']]], //知莊組uʔ、uoʔ兩者勢均,徹莊母多uʔ + ['真臻殷韻', 'iʔ'], //臻韻莊組əʔ、ʅʔ勢均 + ['文韻', 'yʔ'], //見羣疑母多yeʔ + //梗攝 ['梗攝 二等', [['合口', 'uoʔ'], ['', 'əʔ']]], ['梗攝', [['合口', 'yʔ'], ['', 'iʔ']]], @@ -146,6 +158,9 @@ const 入聲韻母規則 = () => when([ ['蒸韻', [['合口', 'yʔ'], ['莊組', 'əʔ'], ['', 'iʔ']]], //宕攝 + ['唐韻', [['合口', 'uoʔ'], ['', 'oʔ']]], + ['陽韻', [['合口', 'yoʔ'], ['幫知莊章組', 'uoʔ'], ['', 'ioʔ']]], //明陽入無字;知莊章組開口oʔ、uoʔ兩者勢均 + //江攝 ['江韻', [['牙喉音', 'ioʔ'], ['知莊組', 'uoʔ'], ['', 'oʔ']]], From 6cebc27cb83ec7679a1297e1bd2c4529eae6c0af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 25 Oct 2024 11:53:54 +0000 Subject: [PATCH 17/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 3fc7a64..bf38b69 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -3,7 +3,7 @@ @author 307587 攷: -https://zh.wikiversity.org/zh/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9F%BB%E5%B0%8D%E6%AF%94 +https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9F%BB%E5%B0%8D%E6%AF%94 https://syimyuzya.github.io/qieyun-autoderiver/ 音: @@ -56,7 +56,7 @@ const 聲母規則 = () => when([ const 舒聲韻母規則 = () => when([ //果攝 ['歌韻 一等', [['合口 非 疑母', 'uo'], ['', 'o']]], - ['歌韻 三等', [['開口', 'ie'], ['脣音', 'o'], ['', 'ye']]], + ['歌韻 三等', [['脣音', 'o'], ['合口', 'ye'], ['', 'ie']]], //假攝 ['麻韻 二等', [['合口', 'ua'], ['牙喉音', 'ia'], ['', 'a']]], @@ -83,8 +83,8 @@ const 舒聲韻母規則 = () => when([ //流攝 ['侯韻', 'əu'], - ['尤韻', [['幫組', 'əu'], ['', 'iəu']]], - ['幽韻', [['幫組', 'iau'], ['', 'iəu']]], + ['尤韻', [['脣音', 'əu'], ['', 'iəu']]], + ['幽韻', [['脣音', 'iau'], ['', 'iəu']]], //咸攝 ['鹽添韻 或 嚴咸銜韻 牙喉音', 'ian'], @@ -184,21 +184,21 @@ if (['i', 'y'].includes(韻母[0])) 聲母 = { n: 'ȵ', k: 'tɕ', kʰ: 'tɕʰ', ŋ: 'ȵ', x: 'ɕ', }[聲母] || 聲母; -//脣音 -if (is`脣音` && 韻母[0] === 'y') 韻母 = 'u' + 韻母.slice(1); -if (['p', 'pʰ', 'm', 'f'].includes(聲母) && 韻母[0] === 'u' && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); -if (['f', 'v'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) || 'əi'; - //捲舌音 if (['tʂ', 'tʂʰ', 'ʂ', 'ɻ'].includes(聲母)) { if (['i', 'iʔ'].includes(韻母)) 韻母 = 'ʅ' + 韻母.slice(1); if (['in', 'iŋ'].includes(韻母)) 韻母 = 'ə' + 韻母.slice(1); if (韻母[0] === 'i' && 韻母[1]) 韻母 = 韻母.slice(1); - if (韻母 === 'yn') 韻母 = 'uən'; if (韻母 === 'yeʔ') 韻母 = 'uoʔ'; - if (韻母[0] === 'y') 韻母 = 'u' + 韻母.slice(1); + if (韻母[0] === 'y') 韻母 = 'u' + 韻母.slice(1); //un→uən,詳後 } +//脣音 +if (is`脣音` && 韻母[0] === 'y') 韻母 = 'u' + 韻母.slice(1); //un→uən,詳後 +if (韻母 === 'un') 韻母 = 'uən'; //一次過un→uən +if (['p', 'pʰ', 'm', 'f'].includes(聲母) && 韻母[0] === 'u' && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); +if (['f', 'v'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) || 'əi'; + //疑母 if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; @@ -210,5 +210,4 @@ if (選項.標調方式 === '調值') { if (聲調 === '4') 聲調 = '⁵¹'; if (聲調 === '5') 聲調 = '⁵'; } - return 聲母 + 韻母 + 聲調; From 0e5eafe37c27e1c04334eb6598e7f46a2802b9a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 25 Oct 2024 12:03:29 +0000 Subject: [PATCH 18/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 7 +++++++ 1 file changed, 7 insertions(+) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index bf38b69..777753d 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -202,6 +202,13 @@ if (['f', 'v'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) | //疑母 if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; +if (!聲母) { + if (韻母[0] === 'i') 聲母 = 'j'; + if (韻母[0] === 'u') 聲母 = 'w'; + if (韻母[0] === 'y') 聲母 = 'ɥ'; + if (聲母 && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); +} + if (選項.標調方式 === '調號') return 聲母 + 韻母 + 聲調; if (選項.標調方式 === '調值') { if (聲調 === '1') 聲調 = '⁵⁵'; From d564db9b9b3c45a4f663f3d84d45812fde4bf756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 25 Oct 2024 12:07:29 +0000 Subject: [PATCH 19/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 777753d..7938a0c 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -120,7 +120,7 @@ const 舒聲韻母規則 = () => when([ ['陽韻', [['合口 或 幫莊組', 'uaŋ'], ['', 'iaŋ']]], //江攝 - ['江韻', [['牙喉音', 'iaŋ'], ['', 'uaŋ']]], + ['江韻', [['牙喉音', 'iaŋ'], ['知莊組', 'uaŋ'], ['', 'aŋ']]], //通攝 ['通攝', [['三等 牙喉音', 'yŋ'], ['', 'uŋ']]], From 9d9a189fcd30dc5fc002db88ce7e0a1d0600e0b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 25 Oct 2024 13:54:37 +0000 Subject: [PATCH 20/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 7938a0c..ec52b50 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -16,7 +16,7 @@ const is = (...x) => 音韻地位.屬於(...x); const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ - ['標調方式', [1, '調號', '調值']], + ['標調方式', [3, '調號', '調值', '調線']], //['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], //待考 ]; @@ -217,4 +217,11 @@ if (選項.標調方式 === '調值') { if (聲調 === '4') 聲調 = '⁵¹'; if (聲調 === '5') 聲調 = '⁵'; } +if (選項.標調方式 === '調線') { + if (聲調 === '1') 聲調 = '˥'; + if (聲調 === '2') 聲調 = '˧˥'; + if (聲調 === '3') 聲調 = '˨˩˦'; + if (聲調 === '4') 聲調 = '˥˩'; + if (聲調 === '5') 聲調 = '˥'; +} return 聲母 + 韻母 + 聲調; From 6f820a00cd6778d283e3704ae4cc4282c913f715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 25 Oct 2024 14:47:28 +0000 Subject: [PATCH 21/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index ec52b50..09c4fa8 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -17,7 +17,7 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ ['標調方式', [3, '調號', '調值', '調線']], - //['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], //待考 + ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], ]; const 聲母規則 = () => when([ @@ -41,7 +41,7 @@ const 聲母規則 = () => when([ ['徹初昌母', 'tʂʰ'], ['澄崇母', [['平聲', 'tʂʰ'], ['', 'tʂ']]], ['常母', 'ʂ'], - //['常母', [['平聲 陽聲韻', 'tʂʰ'], ['', 'ʂ']]], //待考 + ['常母', [['平聲 陽聲韻', 'tʂʰ'], ['', 'ʂ']]], ['生俟書船母', 'ʂ'], ['日母', [['止攝 開口', ''], ['', 'ɻ']]], @@ -179,6 +179,10 @@ let 聲母 = 聲母規則(); let 韻母 = is`舒聲` ? 舒聲韻母規則() : 入聲韻母規則(); let 聲調 = 聲調規則(); +if (選項.常母平聲陰聲韻聲母和船母平聲聲母) { + if (is`(常母 陰聲韻 或 船母) 平聲`) 聲母 = 選項.常母平聲陰聲韻聲母和船母平聲聲母; +} + //顎化 if (['i', 'y'].includes(韻母[0])) 聲母 = { n: 'ȵ', k: 'tɕ', kʰ: 'tɕʰ', ŋ: 'ȵ', x: 'ɕ', From d8a4f88ce6354c2a603f247fa7542dd3e9d0f07b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Thu, 31 Oct 2024 12:06:20 +0000 Subject: [PATCH 22/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 34 +++++++++++++++++------ 1 file changed, 25 insertions(+), 9 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 09c4fa8..815b97b 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -18,6 +18,12 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ ['標調方式', [3, '調號', '調值', '調線']], ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], + ['介母|以半元音而非元音符號表示介母', false], + ['見泰合|見泰合\n見組泰合韻讀音uai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], + ['莊侵入|莊侵入\n生母侵韻入聲多讀əʔ,如「澀」,\n但莊組其餘多脫翹並讀iʔ', [1, 'əʔ', 'ʅʔ']], + ['莊臻入|莊臻入\n莊組臻韻入聲讀音əʔ、ʅʔ兩者勢均', [2, 'əʔ', 'ʅʔ']], + ['見文入|見文入\n見組文韻入聲讀音預測yʔ但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], + ['匣上|匣上變去\n匣母上聲有很多字不變去聲', true], ]; const 聲母規則 = () => when([ @@ -49,6 +55,7 @@ const 聲母規則 = () => when([ ['溪母', 'kʰ'], ['羣母', [['平聲', 'kʰ'], ['', 'k']]], ['疑母', 'ŋ'], + ['影云以母', ''], ['曉匣母', 'x'], ], '無聲母規則'); @@ -87,7 +94,7 @@ const 舒聲韻母規則 = () => when([ ['幽韻', [['脣音', 'iau'], ['', 'iəu']]], //咸攝 - ['鹽添韻 或 嚴咸銜韻 牙喉音', 'ian'], + ['鹽添韻 或 咸銜嚴韻 牙喉音', 'ian'], ['覃談咸銜嚴韻', 'an'], ['凡韻', 'yan'], @@ -113,7 +120,7 @@ const 舒聲韻母規則 = () => when([ //曾攝 ['登韻', [['合口', 'uŋ'], ['', 'əŋ']]], - ['蒸韻', 'iŋ'], + ['蒸韻', [['合口', 'yŋ'], ['', 'iŋ']]], //蒸合韻無舒聲但照推 //宕攝 ['唐韻', [['合口', 'uaŋ'], ['', 'aŋ']]], @@ -147,7 +154,7 @@ const 入聲韻母規則 = () => when([ ['魂韻', [['脣音', 'oʔ'], ['', 'uʔ']]], ['真韻 合口', [['知莊組', 'uoʔ'], ['', 'yʔ']]], //知莊組uʔ、uoʔ兩者勢均,徹莊母多uʔ ['真臻殷韻', 'iʔ'], //臻韻莊組əʔ、ʅʔ勢均 - ['文韻', 'yʔ'], //見羣疑母多yeʔ + ['文韻', 'yʔ'], //見羣疑母多yeʔ,只有少數如「屈,溪文入」讀yʔ //梗攝 ['梗攝 二等', [['合口', 'uoʔ'], ['', 'əʔ']]], @@ -179,14 +186,23 @@ let 聲母 = 聲母規則(); let 韻母 = is`舒聲` ? 舒聲韻母規則() : 入聲韻母規則(); let 聲調 = 聲調規則(); -if (選項.常母平聲陰聲韻聲母和船母平聲聲母) { - if (is`(常母 陰聲韻 或 船母) 平聲`) 聲母 = 選項.常母平聲陰聲韻聲母和船母平聲聲母; -} +if (選項.常母平聲陰聲韻聲母和船母平聲聲母 && is`(常母 陰聲韻 或 船母) 平聲`) 聲母 = 選項.常母平聲陰聲韻聲母和船母平聲聲母; +if (選項.見泰合 && is`見溪羣母 泰韻 合口`) 韻母 = 選項.見泰合; +if (選項.莊侵入 && is`莊組 侵韻 入聲`) 韻母 = 選項.莊侵入; +if (選項.莊臻入 && is`莊組 臻韻 入聲`) 韻母 = 選項.莊臻入; +if (選項.見文入 && is`見組 文韻 入聲`) 韻母 = 選項.見文入; +if (選項.匣上 === false && is`匣母 上聲`) 聲調 = '3'; -//顎化 +//顎化;疑母齊、撮呼不規則脫鼻 if (['i', 'y'].includes(韻母[0])) 聲母 = { - n: 'ȵ', k: 'tɕ', kʰ: 'tɕʰ', ŋ: 'ȵ', x: 'ɕ', + k: 'tɕ', kʰ: 'tɕʰ', x: 'ɕ', }[聲母] || 聲母; +if (['i', 'y'].includes(韻母[0]) && 聲母 === 'n' && !is`齊之韻 開口`) 聲母 = 'ȵ'; +if (韻母[0] === 'i' && 聲母 === 'ŋ') { + if (is`齊之尤蒸陽韻 開口 或 侵仙先元庚韻 入聲`) 聲母 = 'ȵ'; + else 聲母 = ''; +} +if (韻母[0] === 'y' && 聲母 === 'ŋ') 聲母 = ''; //捲舌音 if (['tʂ', 'tʂʰ', 'ʂ', 'ɻ'].includes(聲母)) { @@ -206,7 +222,7 @@ if (['f', 'v'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) | //疑母 if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; -if (!聲母) { +if (選項.介母 === true && !聲母) { if (韻母[0] === 'i') 聲母 = 'j'; if (韻母[0] === 'u') 聲母 = 'w'; if (韻母[0] === 'y') 聲母 = 'ɥ'; From 3a1f6b5f8e3423b9ebc28b53e264dad125d3ce4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Thu, 31 Oct 2024 12:50:38 +0000 Subject: [PATCH 23/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 815b97b..323e2d9 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -74,8 +74,7 @@ const 舒聲韻母規則 = () => when([ ['魚虞韻', 'y'], //蟹攝 - ['泰韻 合口 疑母', 'uai'], - ['咍灰泰韻', [['開口', 'ai'], ['', 'uəi']]], //泰合韻見組uai、uəi兩者勢均 + ['咍灰泰韻', [['開口', 'ai'], ['泰韻 合口 疑母', 'uai'], ['', 'uəi']]], //泰合韻見組uai、uəi兩者勢均 ['佳皆夬韻', [['合口', 'uai'], ['牙喉音', 'iai'], ['', 'ai']]], //佳韻牙喉音a、ai兩者勢均 ['廢韻', [['脣音', 'uəi'], ['開口 舌齒音', 'ai']]], //茝ㄔㄞˇ,昌開三廢上;明廢去無字,當推如合口 ['祭廢齊韻', [['合口', 'uəi'], ['', 'i']]], From bd5cb90557f753e16e4c9e75a32c5b60cc9237dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Thu, 31 Oct 2024 14:23:17 +0000 Subject: [PATCH 24/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 323e2d9..b0a31d9 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -17,6 +17,7 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ ['標調方式', [3, '調號', '調值', '調線']], + ['聲調在前', false], ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], ['介母|以半元音而非元音符號表示介母', false], ['見泰合|見泰合\n見組泰合韻讀音uai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], @@ -228,7 +229,6 @@ if (選項.介母 === true && !聲母) { if (聲母 && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); } -if (選項.標調方式 === '調號') return 聲母 + 韻母 + 聲調; if (選項.標調方式 === '調值') { if (聲調 === '1') 聲調 = '⁵⁵'; if (聲調 === '2') 聲調 = '³⁵'; @@ -243,4 +243,5 @@ if (選項.標調方式 === '調線') { if (聲調 === '4') 聲調 = '˥˩'; if (聲調 === '5') 聲調 = '˥'; } +if (選項.聲調在前 === true) return 聲調 + 聲母 + 韻母; return 聲母 + 韻母 + 聲調; From 04614718d45f894fb5569b1433abc8deb446dde8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Thu, 31 Oct 2024 14:54:34 +0000 Subject: [PATCH 25/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index b0a31d9..32b8a3b 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -229,19 +229,11 @@ if (選項.介母 === true && !聲母) { if (聲母 && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); } -if (選項.標調方式 === '調值') { - if (聲調 === '1') 聲調 = '⁵⁵'; - if (聲調 === '2') 聲調 = '³⁵'; - if (聲調 === '3') 聲調 = '²¹⁴'; - if (聲調 === '4') 聲調 = '⁵¹'; - if (聲調 === '5') 聲調 = '⁵'; -} -if (選項.標調方式 === '調線') { - if (聲調 === '1') 聲調 = '˥'; - if (聲調 === '2') 聲調 = '˧˥'; - if (聲調 === '3') 聲調 = '˨˩˦'; - if (聲調 === '4') 聲調 = '˥˩'; - if (聲調 === '5') 聲調 = '˥'; -} +if (選項.標調方式 === '調值') 聲調 = { + 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵', +}[聲調] || 聲調; +if (選項.標調方式 === '調線') 聲調 = { //字元數眞對稱w + 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥', +}[聲調] || 聲調; if (選項.聲調在前 === true) return 聲調 + 聲母 + 韻母; return 聲母 + 韻母 + 聲調; From 43eeef0f83ea0ea64af81ca1dccce15408c37850 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 1 Nov 2024 04:28:26 +0000 Subject: [PATCH 26/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 36 ++++++++++++++--------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 32b8a3b..af94925 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -16,14 +16,15 @@ const is = (...x) => 音韻地位.屬於(...x); const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ - ['標調方式', [3, '調號', '調值', '調線']], - ['聲調在前', false], + ['標調方式', [5, '調值', '調線', '調符', '調號', '附標']], + ['聲調在前\n標調方式爲「附標」時無效', false], ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], ['介母|以半元音而非元音符號表示介母', false], ['見泰合|見泰合\n見組泰合韻讀音uai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], + ['見佳合|見佳合\n牙喉音佳合韻應爲/uai/,但有不少/ua/', [2, 'ua', 'uai']], ['莊侵入|莊侵入\n生母侵韻入聲多讀əʔ,如「澀」,\n但莊組其餘多脫翹並讀iʔ', [1, 'əʔ', 'ʅʔ']], ['莊臻入|莊臻入\n莊組臻韻入聲讀音əʔ、ʅʔ兩者勢均', [2, 'əʔ', 'ʅʔ']], - ['見文入|見文入\n見組文韻入聲讀音預測yʔ但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], + ['見文入|見文入\n見組文韻入聲讀音預測yʔ(如「屈」,溪文入)但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], ['匣上|匣上變去\n匣母上聲有很多字不變去聲', true], ]; @@ -64,7 +65,7 @@ const 聲母規則 = () => when([ const 舒聲韻母規則 = () => when([ //果攝 ['歌韻 一等', [['合口 非 疑母', 'uo'], ['', 'o']]], - ['歌韻 三等', [['脣音', 'o'], ['合口', 'ye'], ['', 'ie']]], + ['歌韻 三等', [['脣音', 'uo'], ['合口', 'ye'], ['', 'ie']]], //輕脣? //假攝 ['麻韻 二等', [['合口', 'ua'], ['牙喉音', 'ia'], ['', 'a']]], @@ -76,9 +77,8 @@ const 舒聲韻母規則 = () => when([ //蟹攝 ['咍灰泰韻', [['開口', 'ai'], ['泰韻 合口 疑母', 'uai'], ['', 'uəi']]], //泰合韻見組uai、uəi兩者勢均 - ['佳皆夬韻', [['合口', 'uai'], ['牙喉音', 'iai'], ['', 'ai']]], //佳韻牙喉音a、ai兩者勢均 - ['廢韻', [['脣音', 'uəi'], ['開口 舌齒音', 'ai']]], //茝ㄔㄞˇ,昌開三廢上;明廢去無字,當推如合口 - ['祭廢齊韻', [['合口', 'uəi'], ['', 'i']]], + ['佳皆夬韻', [['合口', 'uai'], ['牙喉音', 'iai'], ['', 'ai']]], //佳合韻牙喉音應爲/uai/,但有不少/ua/ + ['祭廢齊韻', [['廢韻 脣音', 'uəi'], ['廢韻 開口 銳音', 'iai'], ['合口', 'uəi'], ['', 'i']]], //明廢去無字;銳廢開「茝ㄔㄞˇ佁䑂𦚪」 //止攝 ['止攝 合口', [['莊組', 'uai'], ['', 'uəi']]], @@ -106,7 +106,7 @@ const 舒聲韻母規則 = () => when([ ['刪山韻 牙喉音', 'ian'], ['寒刪山韻', 'an'], ['仙先韻', [['合口', 'yan'], ['', 'ian']]], - ['元韻', [['脣音', 'uan'], ['合口', 'yan'], ['', 'ian']]], + ['元韻', [['開口', 'ian'], ['', 'yan']]], //臻攝 ['痕韻', 'ən'], @@ -144,7 +144,7 @@ const 入聲韻母規則 = () => when([ ['侵韻', [['莊組', 'əʔ'], ['', 'iʔ']]], //山攝 - ['寒韻', [['合口', 'uoʔ'], ['脣牙喉音', 'oʔ'], ['', 'aʔ']]], //來母uoʔ、yeʔ兩者勢均 + ['寒韻', [['合口', 'uoʔ'], ['脣牙喉音', 'oʔ'], ['', 'aʔ']]], ['刪山韻', [['合口', 'uaʔ'], ['牙喉音', 'iaʔ'], ['', 'aʔ']]], ['仙先韻', [['合口', 'yeʔ'], ['', 'ieʔ']]], ['元韻', [['脣音', 'uaʔ'], ['合口', 'yeʔ'], ['', 'ieʔ']]], @@ -154,7 +154,7 @@ const 入聲韻母規則 = () => when([ ['魂韻', [['脣音', 'oʔ'], ['', 'uʔ']]], ['真韻 合口', [['知莊組', 'uoʔ'], ['', 'yʔ']]], //知莊組uʔ、uoʔ兩者勢均,徹莊母多uʔ ['真臻殷韻', 'iʔ'], //臻韻莊組əʔ、ʅʔ勢均 - ['文韻', 'yʔ'], //見羣疑母多yeʔ,只有少數如「屈,溪文入」讀yʔ + ['文韻', 'yʔ'], //見組文韻入聲讀音預測yʔ(如「屈ㄑㄩ˙」,溪文入)但見羣疑母多yeʔ //梗攝 ['梗攝 二等', [['合口', 'uoʔ'], ['', 'əʔ']]], @@ -166,7 +166,7 @@ const 入聲韻母規則 = () => when([ //宕攝 ['唐韻', [['合口', 'uoʔ'], ['', 'oʔ']]], - ['陽韻', [['合口', 'yoʔ'], ['幫知莊章組', 'uoʔ'], ['', 'ioʔ']]], //明陽入無字;知莊章組開口oʔ、uoʔ兩者勢均 + ['陽韻', [['合口 或 幫莊組', 'yoʔ'], ['', 'ioʔ']]], //明陽入無字;孃陽入無常用字;莊組開口oʔ、uoʔ兩者勢均,但對應陽聲韻今讀合口呼 //江攝 ['江韻', [['牙喉音', 'ioʔ'], ['知莊組', 'uoʔ'], ['', 'oʔ']]], @@ -188,6 +188,7 @@ let 聲調 = 聲調規則(); if (選項.常母平聲陰聲韻聲母和船母平聲聲母 && is`(常母 陰聲韻 或 船母) 平聲`) 聲母 = 選項.常母平聲陰聲韻聲母和船母平聲聲母; if (選項.見泰合 && is`見溪羣母 泰韻 合口`) 韻母 = 選項.見泰合; +if (選項.見佳合 && is`見影匣母 佳韻 合口`) 韻母 = 選項.見佳合; if (選項.莊侵入 && is`莊組 侵韻 入聲`) 韻母 = 選項.莊侵入; if (選項.莊臻入 && is`莊組 臻韻 入聲`) 韻母 = 選項.莊臻入; if (選項.見文入 && is`見組 文韻 入聲`) 韻母 = 選項.見文入; @@ -199,7 +200,7 @@ if (['i', 'y'].includes(韻母[0])) 聲母 = { }[聲母] || 聲母; if (['i', 'y'].includes(韻母[0]) && 聲母 === 'n' && !is`齊之韻 開口`) 聲母 = 'ȵ'; if (韻母[0] === 'i' && 聲母 === 'ŋ') { - if (is`齊之尤蒸陽韻 開口 或 侵仙先元庚韻 入聲`) 聲母 = 'ȵ'; + if (is`(齊之尤蒸陽韻 非 合口) 或 (侵仙先元庚韻 入聲)`) 聲母 = 'ȵ'; //要不要括著? else 聲母 = ''; } if (韻母[0] === 'y' && 聲母 === 'ŋ') 聲母 = ''; @@ -235,5 +236,12 @@ if (選項.標調方式 === '調值') 聲調 = { if (選項.標調方式 === '調線') 聲調 = { //字元數眞對稱w 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥', }[聲調] || 聲調; -if (選項.聲調在前 === true) return 聲調 + 聲母 + 韻母; -return 聲母 + 韻母 + 聲調; +if (選項.標調方式 === '調符') 聲調 = { + 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙', +}[聲調] || 聲調; +if (選項.標調方式 !== '附標') { + if (選項.聲調在前 === true) return 聲調 + 聲母 + 韻母; + else return 聲母 + 韻母 + 聲調; +} +if (選項.標調方式 === '附標' && is`入聲`) return 聲母 + 韻母; +return 聲母 + (聲調 ? 韻母.replace(/.*[aoəe]|.*[iɿʅuy]/, '$&' + ' ̄́̌̀'[聲調]) : 韻母); From d5edac51dff43ba06e716d36b04fdef9aa40353b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 2 Nov 2024 04:49:48 +0000 Subject: [PATCH 27/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 37 ++++++++++++++++------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index af94925..805f645 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -16,18 +16,25 @@ const is = (...x) => 音韻地位.屬於(...x); const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ - ['標調方式', [5, '調值', '調線', '調符', '調號', '附標']], + ['標調方式', [5, '調值', '調線', '調符', '調號上標', '調號', '附標']], ['聲調在前\n標調方式爲「附標」時無效', false], + ['隔聲韻調\n標調方式爲「附標」時只隔聲和韻', [3, '空格', '定位', '無']], ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], - ['介母|以半元音而非元音符號表示介母', false], - ['見泰合|見泰合\n見組泰合韻讀音uai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], - ['見佳合|見佳合\n牙喉音佳合韻應爲/uai/,但有不少/ua/', [2, 'ua', 'uai']], - ['莊侵入|莊侵入\n生母侵韻入聲多讀əʔ,如「澀」,\n但莊組其餘多脫翹並讀iʔ', [1, 'əʔ', 'ʅʔ']], - ['莊臻入|莊臻入\n莊組臻韻入聲讀音əʔ、ʅʔ兩者勢均', [2, 'əʔ', 'ʅʔ']], - ['見文入|見文入\n見組文韻入聲讀音預測yʔ(如「屈」,溪文入)但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], + ['介母|介母寫成半元音而非元音\n元音:iuy\n半元音:jwɥ', false], + ['見泰合\n見組泰合韻讀音uai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], + ['見佳合\n牙喉音佳合韻應爲/uai/,但有不少/ua/', [2, 'ua', 'uai']], + ['莊侵入\n生母侵韻入聲多讀əʔ,如「澀」,\n但莊組其餘多脫翹並讀iʔ', [1, 'əʔ', 'ʅʔ']], + ['莊臻入\n莊組臻韻入聲讀音əʔ、ʅʔ兩者勢均', [2, 'əʔ', 'ʅʔ']], + ['見文入\n見組文韻入聲讀音預測yʔ(如「屈」,溪文入)但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], ['匣上|匣上變去\n匣母上聲有很多字不變去聲', true], ]; +const 空格 = { + '空格': ' ', +}; +const 定位 = { + '定位': '\t', +}; const 聲母規則 = () => when([ ['幫母', [['C類', 'f'], ['', 'p']]], ['滂母', [['C類', 'f'], ['', 'pʰ']]], @@ -230,6 +237,11 @@ if (選項.介母 === true && !聲母) { if (聲母 && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); } +let 隔位 = 選項.隔聲韻調; +if (選項.隔聲韻調 === '無') 隔位 = ''; +if (選項.隔聲韻調 === '空格') 隔位 = ' '; +if (選項.隔聲韻調 === '定位') 隔位 = '\t'; + if (選項.標調方式 === '調值') 聲調 = { 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵', }[聲調] || 聲調; @@ -239,9 +251,12 @@ if (選項.標調方式 === '調線') 聲調 = { //字元數眞對稱w if (選項.標調方式 === '調符') 聲調 = { 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙', }[聲調] || 聲調; +if (選項.標調方式 === '調號上標') 聲調 = { + 1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵', +}[聲調] || 聲調; if (選項.標調方式 !== '附標') { - if (選項.聲調在前 === true) return 聲調 + 聲母 + 韻母; - else return 聲母 + 韻母 + 聲調; + if (選項.聲調在前 === true) return 聲調 + 隔位 + 聲母 + 隔位 + 韻母; + else return 聲母 + 隔位 + 韻母 + 隔位 + 聲調; } -if (選項.標調方式 === '附標' && is`入聲`) return 聲母 + 韻母; -return 聲母 + (聲調 ? 韻母.replace(/.*[aoəe]|.*[iɿʅuy]/, '$&' + ' ̄́̌̀'[聲調]) : 韻母); +if (選項.標調方式 === '附標' && is`入聲`) return 聲母 + 隔位 + 韻母; +return 聲母 + 隔位 + (聲調 ? 韻母.replace(/.*[aoəe]|.*[iɿʅuy]/, '$&' + ' ̄́̌̀'[聲調]) : 韻母); From bad7031dac46cb90f85d0e99c4ab335a952c530b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 2 Nov 2024 04:59:26 +0000 Subject: [PATCH 28/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 805f645..799ea82 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -6,8 +6,8 @@ https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9F%BB%E5%B0%8D%E6%AF%94 https://syimyuzya.github.io/qieyun-autoderiver/ -音: -https://github.com/baopaau/rime-bepemefeve/blob/main/bepemefeve.dict.yaml +字音來源:https://github.com/baopaau/rime-bepemefeve/blob/main/bepemefeve.dict.yaml +注意「僞老國音」:https://www.bilibili.com/read/cv17377530/ */ /** @type { 音韻地位['屬於'] } */ @@ -16,7 +16,7 @@ const is = (...x) => 音韻地位.屬於(...x); const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ - ['標調方式', [5, '調值', '調線', '調符', '調號上標', '調號', '附標']], + ['標調方式', [6, '調值', '調線', '附標', '調符', '調號上標', '調號']], ['聲調在前\n標調方式爲「附標」時無效', false], ['隔聲韻調\n標調方式爲「附標」時只隔聲和韻', [3, '空格', '定位', '無']], ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], From c317f01ebf1d098a1a8099abf0734083ae08ba88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 2 Nov 2024 05:29:26 +0000 Subject: [PATCH 29/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 799ea82..9e097c9 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -98,7 +98,7 @@ const 舒聲韻母規則 = () => when([ //流攝 ['侯韻', 'əu'], ['尤韻', [['脣音', 'əu'], ['', 'iəu']]], - ['幽韻', [['脣音', 'iau'], ['', 'iəu']]], + ['幽韻', [['幫滂並母', 'iau'], ['', 'iəu']]], //咸攝 ['鹽添韻 或 咸銜嚴韻 牙喉音', 'ian'], From 805c8284a60bc69056727307d72bd8faf7b378d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 2 Nov 2024 05:48:43 +0000 Subject: [PATCH 30/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 9e097c9..7d3d716 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -24,6 +24,7 @@ if (!音韻地位) return [ ['見泰合\n見組泰合韻讀音uai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], ['見佳合\n牙喉音佳合韻應爲/uai/,但有不少/ua/', [2, 'ua', 'uai']], ['莊侵入\n生母侵韻入聲多讀əʔ,如「澀」,\n但莊組其餘多脫翹並讀iʔ', [1, 'əʔ', 'ʅʔ']], + ['知莊真合入\n知莊組uʔ、uoʔ兩者勢均,徹莊母多uʔ', [2, 'uʔ', 'uoʔ']], ['莊臻入\n莊組臻韻入聲讀音əʔ、ʅʔ兩者勢均', [2, 'əʔ', 'ʅʔ']], ['見文入\n見組文韻入聲讀音預測yʔ(如「屈」,溪文入)但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], ['匣上|匣上變去\n匣母上聲有很多字不變去聲', true], @@ -160,7 +161,7 @@ const 入聲韻母規則 = () => when([ ['痕韻', 'əʔ'], ['魂韻', [['脣音', 'oʔ'], ['', 'uʔ']]], ['真韻 合口', [['知莊組', 'uoʔ'], ['', 'yʔ']]], //知莊組uʔ、uoʔ兩者勢均,徹莊母多uʔ - ['真臻殷韻', 'iʔ'], //臻韻莊組əʔ、ʅʔ勢均 + ['真臻殷韻', 'iʔ'], //莊組臻韻難決定取əʔ還是ʅʔ ['文韻', 'yʔ'], //見組文韻入聲讀音預測yʔ(如「屈ㄑㄩ˙」,溪文入)但見羣疑母多yeʔ //梗攝 @@ -197,6 +198,7 @@ if (選項.常母平聲陰聲韻聲母和船母平聲聲母 && is`(常母 陰聲 if (選項.見泰合 && is`見溪羣母 泰韻 合口`) 韻母 = 選項.見泰合; if (選項.見佳合 && is`見影匣母 佳韻 合口`) 韻母 = 選項.見佳合; if (選項.莊侵入 && is`莊組 侵韻 入聲`) 韻母 = 選項.莊侵入; +if (選項.知莊真合入 && is`知莊組 真韻 合口 入聲`) 韻母 = 選項.知莊真合入; if (選項.莊臻入 && is`莊組 臻韻 入聲`) 韻母 = 選項.莊臻入; if (選項.見文入 && is`見組 文韻 入聲`) 韻母 = 選項.見文入; if (選項.匣上 === false && is`匣母 上聲`) 聲調 = '3'; From f16c76267dced2769b33b0b8f27fdfff343a99a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Mon, 11 Nov 2024 08:56:01 +0000 Subject: [PATCH 31/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 47 +++++++++++------------ 1 file changed, 22 insertions(+), 25 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 7d3d716..77398e1 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -3,8 +3,9 @@ @author 307587 攷: +https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E9%9F%B3%E7%B4%A0 https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9F%BB%E5%B0%8D%E6%AF%94 -https://syimyuzya.github.io/qieyun-autoderiver/ +https://nk2028.shn.hk/tshet-uinh-autoderiver/ 字音來源:https://github.com/baopaau/rime-bepemefeve/blob/main/bepemefeve.dict.yaml 注意「僞老國音」:https://www.bilibili.com/read/cv17377530/ @@ -16,26 +17,21 @@ const is = (...x) => 音韻地位.屬於(...x); const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ - ['標調方式', [6, '調值', '調線', '附標', '調符', '調號上標', '調號']], - ['聲調在前\n標調方式爲「附標」時無效', false], - ['隔聲韻調\n標調方式爲「附標」時只隔聲和韻', [3, '空格', '定位', '無']], + ['調式', [6, '調值', '調線', '附標', '調符', '調號上標', '調號']], + ['聲調在前\n調式爲「附標」時無效', false], + ['隔聲韻調\n調式爲「附標」時只隔聲和韻', [3, '空格', '定位', '無']], ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], ['介母|介母寫成半元音而非元音\n元音:iuy\n半元音:jwɥ', false], - ['見泰合\n見組泰合韻讀音uai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], - ['見佳合\n牙喉音佳合韻應爲/uai/,但有不少/ua/', [2, 'ua', 'uai']], - ['莊侵入\n生母侵韻入聲多讀əʔ,如「澀」,\n但莊組其餘多脫翹並讀iʔ', [1, 'əʔ', 'ʅʔ']], - ['知莊真合入\n知莊組uʔ、uoʔ兩者勢均,徹莊母多uʔ', [2, 'uʔ', 'uoʔ']], - ['莊臻入\n莊組臻韻入聲讀音əʔ、ʅʔ兩者勢均', [2, 'əʔ', 'ʅʔ']], - ['見文入\n見組文韻入聲讀音預測yʔ(如「屈」,溪文入)但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], + ['見泰合|見組泰合韻韻母\nuai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], + ['見佳合|牙喉音佳合韻韻母\n預測uai,但有不少ua', [2, 'ua', 'uai']], + ['幫幽|幫滂並母幽韻韻母\n「彪」', [2, 'iau', 'iəu']], + ['莊侵入|莊組侵韻入聲韻母\n生母侵韻入聲多讀əʔ,如「澀」,\n但莊組其餘多脫翹並讀iʔ', [2, 'ʅʔ', 'əʔ']], + ['知莊真合入|知莊組真合韻入聲韻母\nuʔ、uoʔ兩者勢均,徹莊母多uʔ', [2, 'uʔ', 'uoʔ']], + ['莊臻入|莊組臻韻入聲韻母\nəʔ、ʅʔ兩者勢均', [2, 'əʔ', 'ʅʔ']], + ['見文入|見組文韻入聲韻母\n預測yʔ(如「屈」,溪文入)但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], ['匣上|匣上變去\n匣母上聲有很多字不變去聲', true], ]; -const 空格 = { - '空格': ' ', -}; -const 定位 = { - '定位': '\t', -}; const 聲母規則 = () => when([ ['幫母', [['C類', 'f'], ['', 'p']]], ['滂母', [['C類', 'f'], ['', 'pʰ']]], @@ -185,8 +181,8 @@ const 入聲韻母規則 = () => when([ const 聲調規則 = () => when([ ['平聲', [['清音', '1'], ['濁音', '2']]], - ['上聲', [['全濁', '4'], ['', '3']]], - ['去聲', '4'], + ['去聲 或 上聲 全濁', '4'], + ['上聲', '3'], ['入聲', '5'], ], '無聲調規則'); @@ -197,6 +193,7 @@ let 聲調 = 聲調規則(); if (選項.常母平聲陰聲韻聲母和船母平聲聲母 && is`(常母 陰聲韻 或 船母) 平聲`) 聲母 = 選項.常母平聲陰聲韻聲母和船母平聲聲母; if (選項.見泰合 && is`見溪羣母 泰韻 合口`) 韻母 = 選項.見泰合; if (選項.見佳合 && is`見影匣母 佳韻 合口`) 韻母 = 選項.見佳合; +if (選項.幫幽 && is`幫滂並母 幽韻`) 韻母 = 選項.幫幽; if (選項.莊侵入 && is`莊組 侵韻 入聲`) 韻母 = 選項.莊侵入; if (選項.知莊真合入 && is`知莊組 真韻 合口 入聲`) 韻母 = 選項.知莊真合入; if (選項.莊臻入 && is`莊組 臻韻 入聲`) 韻母 = 選項.莊臻入; @@ -244,21 +241,21 @@ if (選項.隔聲韻調 === '無') 隔位 = ''; if (選項.隔聲韻調 === '空格') 隔位 = ' '; if (選項.隔聲韻調 === '定位') 隔位 = '\t'; -if (選項.標調方式 === '調值') 聲調 = { +if (選項.調式 === '調值') 聲調 = { 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵', }[聲調] || 聲調; -if (選項.標調方式 === '調線') 聲調 = { //字元數眞對稱w - 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥', +if (選項.調式 === '調線') 聲調 = { + 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥', //字元數眞對稱w }[聲調] || 聲調; -if (選項.標調方式 === '調符') 聲調 = { +if (選項.調式 === '調符') 聲調 = { 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙', }[聲調] || 聲調; -if (選項.標調方式 === '調號上標') 聲調 = { +if (選項.調式 === '調號上標') 聲調 = { 1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵', }[聲調] || 聲調; -if (選項.標調方式 !== '附標') { +if (選項.調式 !== '附標') { if (選項.聲調在前 === true) return 聲調 + 隔位 + 聲母 + 隔位 + 韻母; else return 聲母 + 隔位 + 韻母 + 隔位 + 聲調; } -if (選項.標調方式 === '附標' && is`入聲`) return 聲母 + 隔位 + 韻母; +if (選項.調式 === '附標' && is`入聲`) return 聲母 + 隔位 + 韻母; return 聲母 + 隔位 + (聲調 ? 韻母.replace(/.*[aoəe]|.*[iɿʅuy]/, '$&' + ' ̄́̌̀'[聲調]) : 韻母); From 9813ac3d728540ba3e66d00575a167db2c5a7c10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Mon, 11 Nov 2024 09:01:39 +0000 Subject: [PATCH 32/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 77398e1..55d5b2f 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -2,11 +2,8 @@ @author 307587 -攷: -https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E9%9F%B3%E7%B4%A0 -https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9F%BB%E5%B0%8D%E6%AF%94 -https://nk2028.shn.hk/tshet-uinh-autoderiver/ - +音系:https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E9%9F%B3%E7%B4%A0 +音變規則:https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9F%BB%E5%B0%8D%E6%AF%94 字音來源:https://github.com/baopaau/rime-bepemefeve/blob/main/bepemefeve.dict.yaml 注意「僞老國音」:https://www.bilibili.com/read/cv17377530/ */ From 5128326c0775ec040956d99730558b5c81e843d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 13 Nov 2024 13:58:07 +0000 Subject: [PATCH 33/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 39 ++++++++++------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 55d5b2f..916d58a 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -1,6 +1,4 @@ -/* 推導老國音 - -@author 307587 +/* 推導老國音,@author 307587 音系:https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E9%9F%B3%E7%B4%A0 音變規則:https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9F%BB%E5%B0%8D%E6%AF%94 @@ -21,43 +19,39 @@ if (!音韻地位) return [ ['介母|介母寫成半元音而非元音\n元音:iuy\n半元音:jwɥ', false], ['見泰合|見組泰合韻韻母\nuai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], ['見佳合|牙喉音佳合韻韻母\n預測uai,但有不少ua', [2, 'ua', 'uai']], - ['幫幽|幫滂並母幽韻韻母\n「彪」', [2, 'iau', 'iəu']], + ['幫幽|幫滂並母幽韻韻母\n多讀iəu,只在幫滂並母讀iau,如「彪」', [2, 'iau', 'iəu']], ['莊侵入|莊組侵韻入聲韻母\n生母侵韻入聲多讀əʔ,如「澀」,\n但莊組其餘多脫翹並讀iʔ', [2, 'ʅʔ', 'əʔ']], ['知莊真合入|知莊組真合韻入聲韻母\nuʔ、uoʔ兩者勢均,徹莊母多uʔ', [2, 'uʔ', 'uoʔ']], ['莊臻入|莊組臻韻入聲韻母\nəʔ、ʅʔ兩者勢均', [2, 'əʔ', 'ʅʔ']], ['見文入|見組文韻入聲韻母\n預測yʔ(如「屈」,溪文入)但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], + ['見梗二開舒|牙喉音梗二開舒韻母\n見開二通常顎化,但梗攝不規則,如見母不顎化', [2, 'iŋ', 'əŋ']], ['匣上|匣上變去\n匣母上聲有很多字不變去聲', true], ]; const 聲母規則 = () => when([ - ['幫母', [['C類', 'f'], ['', 'p']]], - ['滂母', [['C類', 'f'], ['', 'pʰ']]], - ['並母', [['C類', 'f'], ['平聲', 'pʰ'], ['', 'p']]], + ['幫滂並母 C類', 'f'], + ['幫母 或 並母 仄聲', 'p'], + ['滂並母', 'pʰ'], ['明母', [['微韻', 'v'], ['C類 非 流通攝', ''], ['', 'm']]], - ['端母', 't'], - ['透母', 'tʰ'], - ['定母', [['平聲', 'tʰ'], ['', 't']]], + ['端母 或 定母 仄聲', 't'], + ['透定母', 'tʰ'], ['泥孃母', 'n'], ['來母', 'l'], - ['精母', 'ts'], - ['清母', 'tsʰ'], - ['從母', [['平聲', 'tsʰ'], ['', 'ts']]], + ['精母 或 從母 仄聲', 'ts'], + ['清從母', 'tsʰ'], ['心邪母', 's'], - ['知莊章母', 'tʂ'], - ['徹初昌母', 'tʂʰ'], - ['澄崇母', [['平聲', 'tʂʰ'], ['', 'tʂ']]], - ['常母', 'ʂ'], - ['常母', [['平聲 陽聲韻', 'tʂʰ'], ['', 'ʂ']]], + ['知莊章母 或 澄崇母 仄聲', 'tʂ'], + ['徹澄初崇昌母', 'tʂʰ'], ['生俟書船母', 'ʂ'], + ['常母', [['平聲 陽聲韻', 'tʂʰ'], ['', 'ʂ']]], ['日母', [['止攝 開口', ''], ['', 'ɻ']]], - ['見母', 'k'], - ['溪母', 'kʰ'], - ['羣母', [['平聲', 'kʰ'], ['', 'k']]], - ['疑母', 'ŋ'], + ['見母 或 羣母 仄聲', 'k'], + ['溪羣母', 'kʰ'], + ['疑母', 'ŋ'], //細音時脫落,詳後 ['影云以母', ''], ['曉匣母', 'x'], @@ -195,6 +189,7 @@ if (選項.莊侵入 && is`莊組 侵韻 入聲`) 韻母 = 選項.莊侵入; if (選項.知莊真合入 && is`知莊組 真韻 合口 入聲`) 韻母 = 選項.知莊真合入; if (選項.莊臻入 && is`莊組 臻韻 入聲`) 韻母 = 選項.莊臻入; if (選項.見文入 && is`見組 文韻 入聲`) 韻母 = 選項.見文入; +if (選項.見梗二開舒 && is`溪疑影曉匣母 梗攝 二等 開口 舒聲`) 韻母 = 選項.見梗二開舒; if (選項.匣上 === false && is`匣母 上聲`) 聲調 = '3'; //顎化;疑母齊、撮呼不規則脫鼻 From a51de9140f58246ecac130bdf24a56fe975c5925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 13 Nov 2024 14:01:28 +0000 Subject: [PATCH 34/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 916d58a..cc923a3 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -51,7 +51,7 @@ const 聲母規則 = () => when([ ['見母 或 羣母 仄聲', 'k'], ['溪羣母', 'kʰ'], - ['疑母', 'ŋ'], //細音時脫落,詳後 + ['疑母', 'ŋ'], //細音詳後 ['影云以母', ''], ['曉匣母', 'x'], From 193e906dac429738530c4dfcec253d35a546645c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 13 Nov 2024 14:06:55 +0000 Subject: [PATCH 35/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index cc923a3..2d50fb2 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -188,7 +188,7 @@ if (選項.幫幽 && is`幫滂並母 幽韻`) 韻母 = 選項.幫幽; if (選項.莊侵入 && is`莊組 侵韻 入聲`) 韻母 = 選項.莊侵入; if (選項.知莊真合入 && is`知莊組 真韻 合口 入聲`) 韻母 = 選項.知莊真合入; if (選項.莊臻入 && is`莊組 臻韻 入聲`) 韻母 = 選項.莊臻入; -if (選項.見文入 && is`見組 文韻 入聲`) 韻母 = 選項.見文入; +if (選項.見文入 && is`見羣疑母 文韻 入聲`) 韻母 = 選項.見文入; if (選項.見梗二開舒 && is`溪疑影曉匣母 梗攝 二等 開口 舒聲`) 韻母 = 選項.見梗二開舒; if (選項.匣上 === false && is`匣母 上聲`) 聲調 = '3'; From 3192e32942e29558caada3e05295bc66952f39a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 20 Nov 2024 07:36:15 +0000 Subject: [PATCH 36/74] Update README.md ONP --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d08e8cd..301bd53 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ https://nk2028-1305783649.file.myqcloud.com/tshet-uinh-examples/ **現代方言推導音 extrapolated pronunciations of modern dialects** +- 推導老國音 (Extrapolated Old National Pronunciation): `老國音.js` - 推導普通話 (Extrapolated Putonghua): `putonghua.js` - 推導廣州話 (Extrapolated Cantonese): `gwongzau.js` - 推導上海話 (Extrapolated Shanghainese): `zaonhe.js` From 07050b80422a5f005af8d4b2409b2069b9ec19bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 20 Nov 2024 07:49:36 +0000 Subject: [PATCH 37/74] Update main.js --- test/main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/main.js b/test/main.js index 8b581db..59561ff 100644 --- a/test/main.js +++ b/test/main.js @@ -17,6 +17,7 @@ const testCases = [ ["n_song", "ɕjɛ́w"], ["mongol", "ꡮꡠꡓ"], ["zhongyuan", "ʂjɛw³"], + ["老國音", "ʂau3"] //["fanwan", "shiu2"], ["putonghua", "shǎo"], ["gwongzau", "siu2"], From f900ebef32375b9ebc19fc97069c8c30f0f7c906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 20 Nov 2024 10:41:57 +0000 Subject: [PATCH 38/74] Update main.js --- test/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/main.js b/test/main.js index 59561ff..32a05e3 100644 --- a/test/main.js +++ b/test/main.js @@ -17,7 +17,7 @@ const testCases = [ ["n_song", "ɕjɛ́w"], ["mongol", "ꡮꡠꡓ"], ["zhongyuan", "ʂjɛw³"], - ["老國音", "ʂau3"] + ["老國音", "ʂau3"], //["fanwan", "shiu2"], ["putonghua", "shǎo"], ["gwongzau", "siu2"], From f35bdb2ef2a1ea83ecfd806e2ec04696d892562f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 20 Nov 2024 13:25:14 +0000 Subject: [PATCH 39/74] Update main.js --- test/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/main.js b/test/main.js index 32a05e3..0fbd626 100644 --- a/test/main.js +++ b/test/main.js @@ -17,7 +17,7 @@ const testCases = [ ["n_song", "ɕjɛ́w"], ["mongol", "ꡮꡠꡓ"], ["zhongyuan", "ʂjɛw³"], - ["老國音", "ʂau3"], + ["老國音", "ㄕㄠˇ"], //["fanwan", "shiu2"], ["putonghua", "shǎo"], ["gwongzau", "siu2"], From a6abd3ff2e322524f67c316bf83fc78764f08ab3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 20 Nov 2024 13:41:35 +0000 Subject: [PATCH 40/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 50 +++++++++++++++++++---- 1 file changed, 43 insertions(+), 7 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 2d50fb2..6c4c8b3 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -12,11 +12,12 @@ const is = (...x) => 音韻地位.屬於(...x); const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ - ['調式', [6, '調值', '調線', '附標', '調符', '調號上標', '調號']], + ['注音符號\n否的話就用國際音標', true], + ['調式', [8, '調值(趙元任)', '調值(王璞)', '調線(趙元任)', '調線(王璞)', '附標', '調號上標', '調號', '調符']], ['聲調在前\n調式爲「附標」時無效', false], ['隔聲韻調\n調式爲「附標」時只隔聲和韻', [3, '空格', '定位', '無']], ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], - ['介母|介母寫成半元音而非元音\n元音:iuy\n半元音:jwɥ', false], + ['介母|介母寫成半元音而非元音\n元音:iuy\n半元音:jwɥ\n啟用「注音符號」時無效', false], ['見泰合|見組泰合韻韻母\nuai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], ['見佳合|牙喉音佳合韻韻母\n預測uai,但有不少ua', [2, 'ua', 'uai']], ['幫幽|幫滂並母幽韻韻母\n多讀iəu,只在幫滂並母讀iau,如「彪」', [2, 'iau', 'iəu']], @@ -221,7 +222,7 @@ if (['f', 'v'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) | //疑母 if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; -if (選項.介母 === true && !聲母) { +if (選項.介母 === true && 選項.注音符號 === false && !聲母) { if (韻母[0] === 'i') 聲母 = 'j'; if (韻母[0] === 'u') 聲母 = 'w'; if (韻母[0] === 'y') 聲母 = 'ɥ'; @@ -233,11 +234,17 @@ if (選項.隔聲韻調 === '無') 隔位 = ''; if (選項.隔聲韻調 === '空格') 隔位 = ' '; if (選項.隔聲韻調 === '定位') 隔位 = '\t'; -if (選項.調式 === '調值') 聲調 = { - 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵', +if (選項.調式 === '調值(趙元任)') 聲調 = { + 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁴¹', 5: '⁵', }[聲調] || 聲調; -if (選項.調式 === '調線') 聲調 = { - 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥', //字元數眞對稱w +if (選項.調式 === '調值(王璞)') 聲調 = { + 1: '⁴⁴³', 2: '⁴⁵⁵', 3: '³¹³', 4: '⁴¹', 5: '⁴¹', +}[聲調] || 聲調; +if (選項.調式 === '調線(趙元任)') 聲調 = { + 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˦˩', 5: '˥', //字元數眞對稱w +}[聲調] || 聲調; +if (選項.調式 === '調線(王璞)') 聲調 = { + 1: '˦˦˧', 2: '˦˥˥', 3: '˧˩˧', 4: '˦˩', 5: '˦˩', }[聲調] || 聲調; if (選項.調式 === '調符') 聲調 = { 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙', @@ -245,6 +252,35 @@ if (選項.調式 === '調符') 聲調 = { if (選項.調式 === '調號上標') 聲調 = { 1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵', }[聲調] || 聲調; + +if (選項.注音符號 === true) { + 聲母 = { + p: 'ㄅ', pʰ: 'ㄆ', m: 'ㄇ', f: 'ㄈ', v: 'ㄪ', + t: 'ㄉ', tʰ: 'ㄊ', n: 'ㄋ', l: 'ㄌ', + k: 'ㄍ', kʰ: 'ㄎ', ŋ: 'ㄫ', x: 'ㄏ', + tɕ: 'ㄐ', tɕʰ: 'ㄑ', ȵ: 'ㄬ', ɕ: 'ㄒ', + tʂ: 'ㄓ', tʂʰ: 'ㄔ', ʂ: 'ㄕ', ɻ: 'ㄖ', + ts: 'ㄗ', tsʰ: 'ㄘ', s: 'ㄙ', + }[聲母] || 聲母; + 韻母 = { + i: 'ㄧ', u: 'ㄨ', y: 'ㄩ', + a: 'ㄚ', o: 'ㄛ', ə: 'ㄜ', ɚ: 'ㄦ', e: 'ㄝ', + ai: 'ㄞ', əi: 'ㄟ', au: 'ㄠ', əu: 'ㄡ', + an: 'ㄢ', ən: 'ㄣ', aŋ: 'ㄤ', əŋ: 'ㄥ', + ia: 'ㄧㄚ', ie: 'ㄧㄝ', + iai: 'ㄧㄞ', iau: 'ㄧㄠ', iəu: 'ㄧㄡ', + ian: 'ㄧㄢ', in: 'ㄧㄣ', iaŋ: 'ㄧㄤ', iŋ: 'ㄧㄥ', + ua: 'ㄨㄚ', uo: 'ㄨㄛ', uai: 'ㄨㄞ', uəi: 'ㄨㄟ', + uan: 'ㄨㄢ', uən: 'ㄨㄣ', uaŋ: 'ㄨㄤ', uŋ: 'ㄨㄥ', + yo: 'ㄩㄛ', ye: 'ㄩㄝ', yan: 'ㄩㄢ', yn: 'ㄩㄣ', yŋ: 'ㄩㄥ', + iʔ: 'ㄧ', uʔ: 'ㄨ', yʔ: 'ㄩ', + aʔ: 'ㄚ', iaʔ: 'ㄧㄚ', uaʔ: 'ㄨㄚ', + oʔ: 'ㄛ', ioʔ: 'ㄧㄛ', uoʔ: 'ㄨㄛ', yoʔ: 'ㄩㄛ', + əʔ: 'ㄜ', eʔ: 'ㄝ', ieʔ: 'ㄧㄝ', yeʔ: 'ㄩㄝ', + }[韻母] || 韻母; + if (['ɿ', 'ʅ'].includes(韻母[0])) 韻母 = ''; +} + if (選項.調式 !== '附標') { if (選項.聲調在前 === true) return 聲調 + 隔位 + 聲母 + 隔位 + 韻母; else return 聲母 + 隔位 + 韻母 + 隔位 + 聲調; From ba5696d6ab7d29d4f1ef6d036abe794a3c6c8b2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Thu, 21 Nov 2024 12:02:17 +0000 Subject: [PATCH 41/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 61 ++++++++++++----------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 6c4c8b3..ff5d6f8 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -13,6 +13,7 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ ['注音符號\n否的話就用國際音標', true], + ['喉塞|標示入聲喉塞音韻尾\n啟用「注音符號」時無效', true], ['調式', [8, '調值(趙元任)', '調值(王璞)', '調線(趙元任)', '調線(王璞)', '附標', '調號上標', '調號', '調符']], ['聲調在前\n調式爲「附標」時無效', false], ['隔聲韻調\n調式爲「附標」時只隔聲和韻', [3, '空格', '定位', '無']], @@ -33,7 +34,7 @@ const 聲母規則 = () => when([ ['幫滂並母 C類', 'f'], ['幫母 或 並母 仄聲', 'p'], ['滂並母', 'pʰ'], - ['明母', [['微韻', 'v'], ['C類 非 流通攝', ''], ['', 'm']]], + ['明母', [['微韻', 'ʋ'], ['C類 非 流通攝', ''], ['', 'm']]], ['端母 或 定母 仄聲', 't'], ['透定母', 'tʰ'], @@ -197,9 +198,9 @@ if (選項.匣上 === false && is`匣母 上聲`) 聲調 = '3'; if (['i', 'y'].includes(韻母[0])) 聲母 = { k: 'tɕ', kʰ: 'tɕʰ', x: 'ɕ', }[聲母] || 聲母; -if (['i', 'y'].includes(韻母[0]) && 聲母 === 'n' && !is`齊之韻 開口`) 聲母 = 'ȵ'; +if (['i', 'y'].includes(韻母[0]) && 聲母 === 'n' && !is`齊之韻 開口`) 聲母 = 'ɲ'; if (韻母[0] === 'i' && 聲母 === 'ŋ') { - if (is`(齊之尤蒸陽韻 非 合口) 或 (侵仙先元庚韻 入聲)`) 聲母 = 'ȵ'; //要不要括著? + if (is`(齊之尤蒸陽韻 非 合口) 或 (侵仙先元庚韻 入聲)`) 聲母 = 'ɲ'; //要不要括著? else 聲母 = ''; } if (韻母[0] === 'y' && 聲母 === 'ŋ') 聲母 = ''; @@ -217,7 +218,7 @@ if (['tʂ', 'tʂʰ', 'ʂ', 'ɻ'].includes(聲母)) { if (is`脣音` && 韻母[0] === 'y') 韻母 = 'u' + 韻母.slice(1); //un→uən,詳後 if (韻母 === 'un') 韻母 = 'uən'; //一次過un→uən if (['p', 'pʰ', 'm', 'f'].includes(聲母) && 韻母[0] === 'u' && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); -if (['f', 'v'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) || 'əi'; +if (['f', 'ʋ'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) || 'əi'; //疑母 if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; @@ -229,36 +230,14 @@ if (選項.介母 === true && 選項.注音符號 === false && !聲母) { if (聲母 && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); } -let 隔位 = 選項.隔聲韻調; -if (選項.隔聲韻調 === '無') 隔位 = ''; -if (選項.隔聲韻調 === '空格') 隔位 = ' '; -if (選項.隔聲韻調 === '定位') 隔位 = '\t'; - -if (選項.調式 === '調值(趙元任)') 聲調 = { - 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁴¹', 5: '⁵', -}[聲調] || 聲調; -if (選項.調式 === '調值(王璞)') 聲調 = { - 1: '⁴⁴³', 2: '⁴⁵⁵', 3: '³¹³', 4: '⁴¹', 5: '⁴¹', -}[聲調] || 聲調; -if (選項.調式 === '調線(趙元任)') 聲調 = { - 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˦˩', 5: '˥', //字元數眞對稱w -}[聲調] || 聲調; -if (選項.調式 === '調線(王璞)') 聲調 = { - 1: '˦˦˧', 2: '˦˥˥', 3: '˧˩˧', 4: '˦˩', 5: '˦˩', -}[聲調] || 聲調; -if (選項.調式 === '調符') 聲調 = { - 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙', -}[聲調] || 聲調; -if (選項.調式 === '調號上標') 聲調 = { - 1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵', -}[聲調] || 聲調; +if (選項.喉塞 === false && 選項.注音符號 === false && is`入聲`) 韻母 = 韻母.slice(0, -1); if (選項.注音符號 === true) { 聲母 = { - p: 'ㄅ', pʰ: 'ㄆ', m: 'ㄇ', f: 'ㄈ', v: 'ㄪ', + p: 'ㄅ', pʰ: 'ㄆ', m: 'ㄇ', f: 'ㄈ', ʋ: 'ㄪ', t: 'ㄉ', tʰ: 'ㄊ', n: 'ㄋ', l: 'ㄌ', k: 'ㄍ', kʰ: 'ㄎ', ŋ: 'ㄫ', x: 'ㄏ', - tɕ: 'ㄐ', tɕʰ: 'ㄑ', ȵ: 'ㄬ', ɕ: 'ㄒ', + tɕ: 'ㄐ', tɕʰ: 'ㄑ', ɲ: 'ㄬ', ɕ: 'ㄒ', tʂ: 'ㄓ', tʂʰ: 'ㄔ', ʂ: 'ㄕ', ɻ: 'ㄖ', ts: 'ㄗ', tsʰ: 'ㄘ', s: 'ㄙ', }[聲母] || 聲母; @@ -281,6 +260,30 @@ if (選項.注音符號 === true) { if (['ɿ', 'ʅ'].includes(韻母[0])) 韻母 = ''; } +let 隔位 = 選項.隔聲韻調; +if (選項.隔聲韻調 === '無') 隔位 = ''; +if (選項.隔聲韻調 === '空格') 隔位 = ' '; +if (選項.隔聲韻調 === '定位') 隔位 = '\t'; + +if (選項.調式 === '調值(趙元任)') 聲調 = { + 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵', +}[聲調] || 聲調; +if (選項.調式 === '調值(王璞)') 聲調 = { + 1: '⁴⁴', 2: '³⁵⁵', 3: '²¹⁴', 4: '⁴¹', 5: '⁴¹', +}[聲調] || 聲調; +if (選項.調式 === '調線(趙元任)') 聲調 = { + 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥', //字元數眞對稱w +}[聲調] || 聲調; +if (選項.調式 === '調線(王璞)') 聲調 = { + 1: '˦', 2: '˧˥˥', 3: '˨˩˦', 4: '˦˩', 5: '˦˩', +}[聲調] || 聲調; +if (選項.調式 === '調符') 聲調 = { + 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙', +}[聲調] || 聲調; +if (選項.調式 === '調號上標') 聲調 = { + 1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵', +}[聲調] || 聲調; + if (選項.調式 !== '附標') { if (選項.聲調在前 === true) return 聲調 + 隔位 + 聲母 + 隔位 + 韻母; else return 聲母 + 隔位 + 韻母 + 隔位 + 聲調; From bafd589859211fb788b4870daf3b33c37ba37c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 22 Nov 2024 16:52:43 +0000 Subject: [PATCH 42/74] Update README.md Co-authored-by: graphemecluster --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 301bd53..f12b1c7 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ https://nk2028-1305783649.file.myqcloud.com/tshet-uinh-examples/ **現代方言推導音 extrapolated pronunciations of modern dialects** -- 推導老國音 (Extrapolated Old National Pronunciation): `老國音.js` +- 推導老國音 (Extrapolated Old National Pronunciation): `onp.js` - 推導普通話 (Extrapolated Putonghua): `putonghua.js` - 推導廣州話 (Extrapolated Cantonese): `gwongzau.js` - 推導上海話 (Extrapolated Shanghainese): `zaonhe.js` From 8159b4b8aa318e71270d3b717cfc2abb5a11a7bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 22 Nov 2024 16:53:01 +0000 Subject: [PATCH 43/74] Update test/main.js Co-authored-by: graphemecluster --- test/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/main.js b/test/main.js index 0fbd626..e0a69f6 100644 --- a/test/main.js +++ b/test/main.js @@ -17,7 +17,7 @@ const testCases = [ ["n_song", "ɕjɛ́w"], ["mongol", "ꡮꡠꡓ"], ["zhongyuan", "ʂjɛw³"], - ["老國音", "ㄕㄠˇ"], + ["onp", "ㄕㄠˇ"], //["fanwan", "shiu2"], ["putonghua", "shǎo"], ["gwongzau", "siu2"], From bcced3287284fa4f1e642773090a6d6669f68911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 22 Nov 2024 16:53:47 +0000 Subject: [PATCH 44/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: graphemecluster --- "\350\200\201\345\234\213\351\237\263.js" | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index ff5d6f8..88879ba 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -18,7 +18,10 @@ if (!音韻地位) return [ ['聲調在前\n調式爲「附標」時無效', false], ['隔聲韻調\n調式爲「附標」時只隔聲和韻', [3, '空格', '定位', '無']], ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], - ['介母|介母寫成半元音而非元音\n元音:iuy\n半元音:jwɥ\n啟用「注音符號」時無效', false], + ['介母', [1, + { text: '元音:i u y', value: '元音' }, + { text: '半元音:j w ɥ', value: '半元音' }, + ], { hidden: 選項.注音符號 === true }], ['見泰合|見組泰合韻韻母\nuai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], ['見佳合|牙喉音佳合韻韻母\n預測uai,但有不少ua', [2, 'ua', 'uai']], ['幫幽|幫滂並母幽韻韻母\n多讀iəu,只在幫滂並母讀iau,如「彪」', [2, 'iau', 'iəu']], From 8ef0f9e8db783afe441056ca2b2156bd34926f82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 22 Nov 2024 16:55:45 +0000 Subject: [PATCH 45/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: graphemecluster --- "\350\200\201\345\234\213\351\237\263.js" | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 88879ba..fa577f6 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -16,7 +16,12 @@ if (!音韻地位) return [ ['喉塞|標示入聲喉塞音韻尾\n啟用「注音符號」時無效', true], ['調式', [8, '調值(趙元任)', '調值(王璞)', '調線(趙元任)', '調線(王璞)', '附標', '調號上標', '調號', '調符']], ['聲調在前\n調式爲「附標」時無效', false], - ['隔聲韻調\n調式爲「附標」時只隔聲和韻', [3, '空格', '定位', '無']], + ['隔聲韻調 + 調式爲「附標」時只隔聲和韻', [3, + { text: '空格', value: ' ' }, + { text: '定位', value: '\t' }, + { text: '無', value: '' }, + ]], ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], ['介母', [1, { text: '元音:i u y', value: '元音' }, From c4e3562e4e0bfd1f5d7d4ffa6cb7bb020ef46fd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 22 Nov 2024 16:56:17 +0000 Subject: [PATCH 46/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: graphemecluster --- "\350\200\201\345\234\213\351\237\263.js" | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index fa577f6..f227273 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -13,8 +13,11 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ ['注音符號\n否的話就用國際音標', true], - ['喉塞|標示入聲喉塞音韻尾\n啟用「注音符號」時無效', true], - ['調式', [8, '調值(趙元任)', '調值(王璞)', '調線(趙元任)', '調線(王璞)', '附標', '調號上標', '調號', '調符']], + ['喉塞|標示入聲喉塞音韻尾', true, { hidden: 選項.注音符號 !== false }], + ['調式', ['調符', + '調值(趙元任)', '調值(王璞)', '調線(趙元任)', '調線(王璞)', + ...(選項.注音符號 === false ? ['附標'] : []), '調號上標', '調號', '調符', + ]], ['聲調在前\n調式爲「附標」時無效', false], ['隔聲韻調 調式爲「附標」時只隔聲和韻', [3, From a2c90c079255cd7251b3cab15a852d7cad16755a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 22 Nov 2024 17:51:52 +0000 Subject: [PATCH 47/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: graphemecluster --- "\350\200\201\345\234\213\351\237\263.js" | 37 ++++++++--------------- 1 file changed, 13 insertions(+), 24 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index f227273..f0f4ddf 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -276,28 +276,17 @@ if (選項.隔聲韻調 === '無') 隔位 = ''; if (選項.隔聲韻調 === '空格') 隔位 = ' '; if (選項.隔聲韻調 === '定位') 隔位 = '\t'; -if (選項.調式 === '調值(趙元任)') 聲調 = { - 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵', -}[聲調] || 聲調; -if (選項.調式 === '調值(王璞)') 聲調 = { - 1: '⁴⁴', 2: '³⁵⁵', 3: '²¹⁴', 4: '⁴¹', 5: '⁴¹', -}[聲調] || 聲調; -if (選項.調式 === '調線(趙元任)') 聲調 = { - 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥', //字元數眞對稱w -}[聲調] || 聲調; -if (選項.調式 === '調線(王璞)') 聲調 = { - 1: '˦', 2: '˧˥˥', 3: '˨˩˦', 4: '˦˩', 5: '˦˩', -}[聲調] || 聲調; -if (選項.調式 === '調符') 聲調 = { - 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙', -}[聲調] || 聲調; -if (選項.調式 === '調號上標') 聲調 = { - 1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵', -}[聲調] || 聲調; - -if (選項.調式 !== '附標') { - if (選項.聲調在前 === true) return 聲調 + 隔位 + 聲母 + 隔位 + 韻母; - else return 聲母 + 隔位 + 韻母 + 隔位 + 聲調; +if (選項.調式 === '附標' && 選項.注音符號 === false) { + return 聲母 + 隔位 + (is`舒聲` && 聲調 ? 韻母.replace(/.*[aoəe]|.*[iɿʅuy]/, '$&' + ' ̄́̌̀'[聲調]) : 韻母); } -if (選項.調式 === '附標' && is`入聲`) return 聲母 + 隔位 + 韻母; -return 聲母 + 隔位 + (聲調 ? 韻母.replace(/.*[aoəe]|.*[iɿʅuy]/, '$&' + ' ̄́̌̀'[聲調]) : 韻母); + +聲調 = { + '調值(趙元任)': { 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵' }, + '調值(王璞)': { 1: '⁴⁴', 2: '³⁵⁵', 3: '²¹⁴', 4: '⁴¹', 5: '⁴¹' }, + '調線(趙元任)': { 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥' }, + '調線(王璞)': { 1: '˦', 2: '˧˥˥', 3: '˨˩˦', 4: '˦˩', 5: '˦˩' }, + '調符': { 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙' }, + '調號上標': { 1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵' }, +}[選項.調式]?.[聲調] || 聲調; + +return 選項.聲調在前 === true ? 聲調 + 隔位 + 聲母 + 隔位 + 韻母 : 聲母 + 隔位 + 韻母 + 隔位 + 聲調; From edcc2b5f7a878f11e6825c0b1613a4de9d172789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 22 Nov 2024 18:05:55 +0000 Subject: [PATCH 48/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 107 +++++++++++----------- 1 file changed, 53 insertions(+), 54 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index f0f4ddf..ca1b943 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -1,10 +1,11 @@ -/* 推導老國音,@author 307587 +/* 推導老國音 音系:https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E9%9F%B3%E7%B4%A0 音變規則:https://zh.wikiversity.org/zh-hant/%E8%80%81%E5%9C%8B%E9%9F%B3%E8%88%87%E5%BB%A3%E9%9F%BB%E5%B0%8D%E6%AF%94 字音來源:https://github.com/baopaau/rime-bepemefeve/blob/main/bepemefeve.dict.yaml 注意「僞老國音」:https://www.bilibili.com/read/cv17377530/ - */ + +@author 307587 */ /** @type { 音韻地位['屬於'] } */ const is = (...x) => 音韻地位.屬於(...x); @@ -13,23 +14,21 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ ['注音符號\n否的話就用國際音標', true], + ['ㄬㄭ|ㄬ、ㄭ音標\n啟用「注音符號」時無效', [2, 'ȵ、ɿ、ʅ', 'ɲ、ɹ̩、ɻ̍']], + ['介母', [1, + { text: '元音:i u y', value: '元音' }, + { text: '半元音:j w ɥ', value: '半元音' }, + ], { hidden: 選項.注音符號 === true }], + ['ㄚ|ㄚ元音\nㄧㄞ:寬式/iai/、嚴式[iæi]\nㄧ、ㄩ後的ㄢ:寬式/-an/、嚴式[-ɛn]', [2, '嚴式', '寬式']], + ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən']], ['喉塞|標示入聲喉塞音韻尾', true, { hidden: 選項.注音符號 !== false }], ['調式', ['調符', '調值(趙元任)', '調值(王璞)', '調線(趙元任)', '調線(王璞)', ...(選項.注音符號 === false ? ['附標'] : []), '調號上標', '調號', '調符', ]], ['聲調在前\n調式爲「附標」時無效', false], - ['隔聲韻調 - 調式爲「附標」時只隔聲和韻', [3, - { text: '空格', value: ' ' }, - { text: '定位', value: '\t' }, - { text: '無', value: '' }, - ]], + ['隔聲韻調|隔聲韻調\n調式爲「附標」時只隔聲和韻', ''], //待加?留空則爲跳格:(選項.隔聲韻調 || '\t') ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], - ['介母', [1, - { text: '元音:i u y', value: '元音' }, - { text: '半元音:j w ɥ', value: '半元音' }, - ], { hidden: 選項.注音符號 === true }], ['見泰合|見組泰合韻韻母\nuai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], ['見佳合|牙喉音佳合韻韻母\n預測uai,但有不少ua', [2, 'ua', 'uai']], ['幫幽|幫滂並母幽韻韻母\n多讀iəu,只在幫滂並母讀iau,如「彪」', [2, 'iau', 'iəu']], @@ -231,9 +230,11 @@ if (韻母 === 'un') 韻母 = 'uən'; //一次過un→uən if (['p', 'pʰ', 'm', 'f'].includes(聲母) && 韻母[0] === 'u' && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); if (['f', 'ʋ'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) || 'əi'; -//疑母 -if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; +if (選項.注音符號 !== true && 韻母 === 'uən' && ['t', 'tʰ', 'n', 'l', 'ts', 'tsʰ', 's'].includes(聲母)) 韻母 = 選項.ㄨㄣ; //ㄨㄣ元音 + +if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; //疑母合口 +//介母 if (選項.介母 === true && 選項.注音符號 === false && !聲母) { if (韻母[0] === 'i') 聲母 = 'j'; if (韻母[0] === 'u') 聲母 = 'w'; @@ -241,52 +242,50 @@ if (選項.介母 === true && 選項.注音符號 === false && !聲母) { if (聲母 && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); } -if (選項.喉塞 === false && 選項.注音符號 === false && is`入聲`) 韻母 = 韻母.slice(0, -1); - -if (選項.注音符號 === true) { - 聲母 = { - p: 'ㄅ', pʰ: 'ㄆ', m: 'ㄇ', f: 'ㄈ', ʋ: 'ㄪ', - t: 'ㄉ', tʰ: 'ㄊ', n: 'ㄋ', l: 'ㄌ', - k: 'ㄍ', kʰ: 'ㄎ', ŋ: 'ㄫ', x: 'ㄏ', - tɕ: 'ㄐ', tɕʰ: 'ㄑ', ɲ: 'ㄬ', ɕ: 'ㄒ', - tʂ: 'ㄓ', tʂʰ: 'ㄔ', ʂ: 'ㄕ', ɻ: 'ㄖ', - ts: 'ㄗ', tsʰ: 'ㄘ', s: 'ㄙ', - }[聲母] || 聲母; - 韻母 = { - i: 'ㄧ', u: 'ㄨ', y: 'ㄩ', - a: 'ㄚ', o: 'ㄛ', ə: 'ㄜ', ɚ: 'ㄦ', e: 'ㄝ', - ai: 'ㄞ', əi: 'ㄟ', au: 'ㄠ', əu: 'ㄡ', - an: 'ㄢ', ən: 'ㄣ', aŋ: 'ㄤ', əŋ: 'ㄥ', - ia: 'ㄧㄚ', ie: 'ㄧㄝ', - iai: 'ㄧㄞ', iau: 'ㄧㄠ', iəu: 'ㄧㄡ', - ian: 'ㄧㄢ', in: 'ㄧㄣ', iaŋ: 'ㄧㄤ', iŋ: 'ㄧㄥ', - ua: 'ㄨㄚ', uo: 'ㄨㄛ', uai: 'ㄨㄞ', uəi: 'ㄨㄟ', - uan: 'ㄨㄢ', uən: 'ㄨㄣ', uaŋ: 'ㄨㄤ', uŋ: 'ㄨㄥ', - yo: 'ㄩㄛ', ye: 'ㄩㄝ', yan: 'ㄩㄢ', yn: 'ㄩㄣ', yŋ: 'ㄩㄥ', - iʔ: 'ㄧ', uʔ: 'ㄨ', yʔ: 'ㄩ', - aʔ: 'ㄚ', iaʔ: 'ㄧㄚ', uaʔ: 'ㄨㄚ', - oʔ: 'ㄛ', ioʔ: 'ㄧㄛ', uoʔ: 'ㄨㄛ', yoʔ: 'ㄩㄛ', - əʔ: 'ㄜ', eʔ: 'ㄝ', ieʔ: 'ㄧㄝ', yeʔ: 'ㄩㄝ', - }[韻母] || 韻母; - if (['ɿ', 'ʅ'].includes(韻母[0])) 韻母 = ''; -} - -let 隔位 = 選項.隔聲韻調; -if (選項.隔聲韻調 === '無') 隔位 = ''; -if (選項.隔聲韻調 === '空格') 隔位 = ' '; -if (選項.隔聲韻調 === '定位') 隔位 = '\t'; +if (選項.喉塞 === false && 選項.注音符號 === false && is`入聲`) 韻母 = 韻母.slice(0, -1); //喉塞音韻尾 -if (選項.調式 === '附標' && 選項.注音符號 === false) { - return 聲母 + 隔位 + (is`舒聲` && 聲調 ? 韻母.replace(/.*[aoəe]|.*[iɿʅuy]/, '$&' + ' ̄́̌̀'[聲調]) : 韻母); -} +if (選項.注音符號 === true) 聲母 = { + p: 'ㄅ', pʰ: 'ㄆ', m: 'ㄇ', f: 'ㄈ', ʋ: 'ㄪ', + t: 'ㄉ', tʰ: 'ㄊ', n: 'ㄋ', l: 'ㄌ', + k: 'ㄍ', kʰ: 'ㄎ', ŋ: 'ㄫ', x: 'ㄏ', + tɕ: 'ㄐ', tɕʰ: 'ㄑ', ɲ: 'ㄬ', ɕ: 'ㄒ', + tʂ: 'ㄓ', tʂʰ: 'ㄔ', ʂ: 'ㄕ', ɻ: 'ㄖ', + ts: 'ㄗ', tsʰ: 'ㄘ', s: 'ㄙ', +}[聲母] || 聲母; +if (選項.注音符號 === true) 韻母 = { + i: 'ㄧ', u: 'ㄨ', y: 'ㄩ', + a: 'ㄚ', o: 'ㄛ', ə: 'ㄜ', ɚ: 'ㄦ', e: 'ㄝ', + ai: 'ㄞ', əi: 'ㄟ', au: 'ㄠ', əu: 'ㄡ', + an: 'ㄢ', ən: 'ㄣ', aŋ: 'ㄤ', əŋ: 'ㄥ', + ia: 'ㄧㄚ', ie: 'ㄧㄝ', + iai: 'ㄧㄞ', iau: 'ㄧㄠ', iəu: 'ㄧㄡ', + ian: 'ㄧㄢ', in: 'ㄧㄣ', iaŋ: 'ㄧㄤ', iŋ: 'ㄧㄥ', + ua: 'ㄨㄚ', uo: 'ㄨㄛ', uai: 'ㄨㄞ', uəi: 'ㄨㄟ', + uan: 'ㄨㄢ', uən: 'ㄨㄣ', uaŋ: 'ㄨㄤ', uŋ: 'ㄨㄥ', + yo: 'ㄩㄛ', ye: 'ㄩㄝ', yan: 'ㄩㄢ', yn: 'ㄩㄣ', yŋ: 'ㄩㄥ', + iʔ: 'ㄧ', uʔ: 'ㄨ', yʔ: 'ㄩ', + aʔ: 'ㄚ', iaʔ: 'ㄧㄚ', uaʔ: 'ㄨㄚ', + oʔ: 'ㄛ', ioʔ: 'ㄧㄛ', uoʔ: 'ㄨㄛ', yoʔ: 'ㄩㄛ', + əʔ: 'ㄜ', eʔ: 'ㄝ', ieʔ: 'ㄧㄝ', yeʔ: 'ㄩㄝ', +}[韻母] || 韻母; +if (選項.注音符號 === true && ['ɿ', 'ʅ'].includes(韻母[0])) 韻母 = ''; + +//let 隔位 = 選項.隔聲韻調; +//if (選項.隔聲韻調 === '無') 隔位 = ''; +//if (選項.隔聲韻調 === '空格') 隔位 = ' '; +//if (選項.隔聲韻調 === '定位') 隔位 = '\t'; 聲調 = { '調值(趙元任)': { 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵' }, '調值(王璞)': { 1: '⁴⁴', 2: '³⁵⁵', 3: '²¹⁴', 4: '⁴¹', 5: '⁴¹' }, - '調線(趙元任)': { 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥' }, + '調線(趙元任)': { 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥' }, //字元數眞對稱w '調線(王璞)': { 1: '˦', 2: '˧˥˥', 3: '˨˩˦', 4: '˦˩', 5: '˦˩' }, '調符': { 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙' }, '調號上標': { 1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵' }, }[選項.調式]?.[聲調] || 聲調; - -return 選項.聲調在前 === true ? 聲調 + 隔位 + 聲母 + 隔位 + 韻母 : 聲母 + 隔位 + 韻母 + 隔位 + 聲調; +if (選項.調式 !== '附標') { + if (選項.聲調在前 === true) return 聲調 + 選項.隔聲韻調 + 聲母 + 選項.隔聲韻調 + 韻母; + else return 聲母 + 選項.隔聲韻調 + 韻母 + 選項.隔聲韻調 + 聲調; +} +if (選項.調式 === '附標' && is`入聲`) return 聲母 + 選項.隔聲韻調 + 韻母; +return 聲母 + 選項.隔聲韻調 + (聲調 ? 韻母.replace(/.*[aoəe]|.*[iɿʅuy]/, '$&' + ' ̄́̌̀'[聲調]) : 韻母); From 9a8c846a437b26ba215bcacd6865e23b7a9b3f0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 22 Nov 2024 18:15:03 +0000 Subject: [PATCH 49/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index ca1b943..9d266b5 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -235,7 +235,7 @@ if (選項.注音符號 !== true && 韻母 === 'uən' && ['t', 'tʰ', 'n', 'l', if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; //疑母合口 //介母 -if (選項.介母 === true && 選項.注音符號 === false && !聲母) { +if (選項.介母 === '半元音' && 選項.注音符號 === false && !聲母) { if (韻母[0] === 'i') 聲母 = 'j'; if (韻母[0] === 'u') 聲母 = 'w'; if (韻母[0] === 'y') 聲母 = 'ɥ'; From 31aa9da1a17930c3af81778e3cbe3a32d3119800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 23 Nov 2024 09:52:00 +0000 Subject: [PATCH 50/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: unt --- "\350\200\201\345\234\213\351\237\263.js" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 9d266b5..128f303 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -15,9 +15,9 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ ['注音符號\n否的話就用國際音標', true], ['ㄬㄭ|ㄬ、ㄭ音標\n啟用「注音符號」時無效', [2, 'ȵ、ɿ、ʅ', 'ɲ、ɹ̩、ɻ̍']], - ['介母', [1, - { text: '元音:i u y', value: '元音' }, - { text: '半元音:j w ɥ', value: '半元音' }, + ['介母|介音', [1, + { text: 'i u y', value: '元音' }, + { text: 'j w ɥ', value: '半元音' }, ], { hidden: 選項.注音符號 === true }], ['ㄚ|ㄚ元音\nㄧㄞ:寬式/iai/、嚴式[iæi]\nㄧ、ㄩ後的ㄢ:寬式/-an/、嚴式[-ɛn]', [2, '嚴式', '寬式']], ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən']], From be665eeae8a78c0d1e2577c3b703fbde262afccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 23 Nov 2024 09:56:22 +0000 Subject: [PATCH 51/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: unt --- "\350\200\201\345\234\213\351\237\263.js" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 128f303..2ebfb2c 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -19,7 +19,7 @@ if (!音韻地位) return [ { text: 'i u y', value: '元音' }, { text: 'j w ɥ', value: '半元音' }, ], { hidden: 選項.注音符號 === true }], - ['ㄚ|ㄚ元音\nㄧㄞ:寬式/iai/、嚴式[iæi]\nㄧ、ㄩ後的ㄢ:寬式/-an/、嚴式[-ɛn]', [2, '嚴式', '寬式']], + ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [1, 'iai ian yan', 'iæi iɛn yɛn'], { hidden: 選項.注音符號 !== false }], ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən']], ['喉塞|標示入聲喉塞音韻尾', true, { hidden: 選項.注音符號 !== false }], ['調式', ['調符', From 2cf4143822c4c0f93b51634da9c0ab880da538bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 23 Nov 2024 09:59:44 +0000 Subject: [PATCH 52/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 不明覺厲 Co-authored-by: unt --- "\350\200\201\345\234\213\351\237\263.js" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 2ebfb2c..29e94ba 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -14,7 +14,8 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ ['注音符號\n否的話就用國際音標', true], - ['ㄬㄭ|ㄬ、ㄭ音標\n啟用「注音符號」時無效', [2, 'ȵ、ɿ、ʅ', 'ɲ、ɹ̩、ɻ̍']], + 選項.注音符號 === false ? '音標風格' : undefined, + ['ㄬㄭ|ㄬ ㄭ', [1, 'ɲ ɹ̩ ɻ̍', 'ȵ ɿ ʅ'], { hidden: 選項.注音符號 !== false }], ['介母|介音', [1, { text: 'i u y', value: '元音' }, { text: 'j w ɥ', value: '半元音' }, From c319add1c4bd996e5d6691f6d7344cdefb204ec1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 23 Nov 2024 10:01:08 +0000 Subject: [PATCH 53/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: unt --- "\350\200\201\345\234\213\351\237\263.js" | 1 + 1 file changed, 1 insertion(+) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 29e94ba..787c91d 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -29,6 +29,7 @@ if (!音韻地位) return [ ]], ['聲調在前\n調式爲「附標」時無效', false], ['隔聲韻調|隔聲韻調\n調式爲「附標」時只隔聲和韻', ''], //待加?留空則爲跳格:(選項.隔聲韻調 || '\t') + '特殊演變', ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], ['見泰合|見組泰合韻韻母\nuai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], ['見佳合|牙喉音佳合韻韻母\n預測uai,但有不少ua', [2, 'ua', 'uai']], From 954f8920b3babed223cd60ca48d62cebfad23a43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 23 Nov 2024 10:10:18 +0000 Subject: [PATCH 54/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: graphemecluster --- "\350\200\201\345\234\213\351\237\263.js" | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 787c91d..5bb2851 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -211,10 +211,7 @@ if (['i', 'y'].includes(韻母[0])) 聲母 = { k: 'tɕ', kʰ: 'tɕʰ', x: 'ɕ', }[聲母] || 聲母; if (['i', 'y'].includes(韻母[0]) && 聲母 === 'n' && !is`齊之韻 開口`) 聲母 = 'ɲ'; -if (韻母[0] === 'i' && 聲母 === 'ŋ') { - if (is`(齊之尤蒸陽韻 非 合口) 或 (侵仙先元庚韻 入聲)`) 聲母 = 'ɲ'; //要不要括著? - else 聲母 = ''; -} +if (韻母[0] === 'i' && 聲母 === 'ŋ') 聲母 = is`(齊之尤蒸陽韻 非 合口) 或 (侵仙先元庚韻 入聲)` ? 'ɲ' : ''; if (韻母[0] === 'y' && 聲母 === 'ŋ') 聲母 = ''; //捲舌音 From 59344f151ab0dfda38e9e83f572930a8b02a15c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 23 Nov 2024 16:31:16 +0000 Subject: [PATCH 55/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 53 ++++++++++++----------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 5bb2851..654be4b 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -14,21 +14,22 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ ['注音符號\n否的話就用國際音標', true], + ['注音符號省略陰平調號', false, {hidden: 選項.注音符號 !== true}], 選項.注音符號 === false ? '音標風格' : undefined, - ['ㄬㄭ|ㄬ ㄭ', [1, 'ɲ ɹ̩ ɻ̍', 'ȵ ɿ ʅ'], { hidden: 選項.注音符號 !== false }], - ['介母|介音', [1, - { text: 'i u y', value: '元音' }, - { text: 'j w ɥ', value: '半元音' }, - ], { hidden: 選項.注音符號 === true }], - ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [1, 'iai ian yan', 'iæi iɛn yɛn'], { hidden: 選項.注音符號 !== false }], - ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən']], - ['喉塞|標示入聲喉塞音韻尾', true, { hidden: 選項.注音符號 !== false }], + ['ㄬㄭ|ㄬ ㄭ', [2, 'ȵ ɿ ʅ', 'ɲ ɹ̩ ɻ̍'], {hidden: 選項.注音符號 === true}], + ['介音', [1, + {text: 'i u y', value: '元音'}, + {text: 'j w ɥ', value: '半元音'}, + ], {hidden: 選項.注音符號 === true}], + ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [2, 'iæi iɛn yɛn', 'iai ian yan'], {hidden: 選項.注音符號 === true}], + ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən'], {hidden: 選項.注音符號 === true}], + ['喉塞|標示入聲喉塞音韻尾', true, {hidden: 選項.注音符號 === true}], ['調式', ['調符', '調值(趙元任)', '調值(王璞)', '調線(趙元任)', '調線(王璞)', ...(選項.注音符號 === false ? ['附標'] : []), '調號上標', '調號', '調符', ]], - ['聲調在前\n調式爲「附標」時無效', false], - ['隔聲韻調|隔聲韻調\n調式爲「附標」時只隔聲和韻', ''], //待加?留空則爲跳格:(選項.隔聲韻調 || '\t') + ['聲調在前', false, {hidden: 選項.調式 === '附標'}], + ['隔聲韻調|隔聲韻調\n調式爲「附標」時只隔聲和韻', ''], //待加?(選項.隔聲韻調 || '\t') '特殊演變', ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], ['見泰合|見組泰合韻韻母\nuai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], @@ -124,12 +125,12 @@ const 舒聲韻母規則 = () => when([ ['文韻', 'yn'], //梗攝 - ['梗攝 二等', [['合口', 'uŋ'], ['', 'əŋ']]], - ['梗攝', [['合口', 'yŋ'], ['', 'iŋ']]], + ['梗攝 二等', [['合口', 'oŋ'], ['', 'əŋ']]], + ['梗攝', [['合口', 'ioŋ'], ['', 'iŋ']]], //曾攝 - ['登韻', [['合口', 'uŋ'], ['', 'əŋ']]], - ['蒸韻', [['合口', 'yŋ'], ['', 'iŋ']]], //蒸合韻無舒聲但照推 + ['登韻', [['合口', 'oŋ'], ['', 'əŋ']]], + ['蒸韻', [['合口', 'ioŋ'], ['', 'iŋ']]], //蒸合韻無舒聲但照推 //宕攝 ['唐韻', [['合口', 'uaŋ'], ['', 'aŋ']]], @@ -139,7 +140,7 @@ const 舒聲韻母規則 = () => when([ ['江韻', [['牙喉音', 'iaŋ'], ['知莊組', 'uaŋ'], ['', 'aŋ']]], //通攝 - ['通攝', [['三等 牙喉音', 'yŋ'], ['', 'uŋ']]], + ['通攝', [['三等 牙喉音', 'ioŋ'], ['', 'oŋ']]], ], '無韻母規則'); const 入聲韻母規則 = () => when([ @@ -211,7 +212,7 @@ if (['i', 'y'].includes(韻母[0])) 聲母 = { k: 'tɕ', kʰ: 'tɕʰ', x: 'ɕ', }[聲母] || 聲母; if (['i', 'y'].includes(韻母[0]) && 聲母 === 'n' && !is`齊之韻 開口`) 聲母 = 'ɲ'; -if (韻母[0] === 'i' && 聲母 === 'ŋ') 聲母 = is`(齊之尤蒸陽韻 非 合口) 或 (侵仙先元庚韻 入聲)` ? 'ɲ' : ''; +if (韻母[0] === 'i' && 聲母 === 'ŋ') 聲母 = is`(齊之尤蒸陽韻 非 合口) 或 (侵仙先元庚韻 入聲)` ? 'ɲ' : ''; //要不要括著? if (韻母[0] === 'y' && 聲母 === 'ŋ') 聲母 = ''; //捲舌音 @@ -233,8 +234,8 @@ if (選項.注音符號 !== true && 韻母 === 'uən' && ['t', 'tʰ', 'n', 'l', if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; //疑母合口 -//介母 -if (選項.介母 === '半元音' && 選項.注音符號 === false && !聲母) { +//介音 +if (選項.介音 === '半元音' && 選項.注音符號 === false && !聲母) { if (韻母[0] === 'i') 聲母 = 'j'; if (韻母[0] === 'u') 聲母 = 'w'; if (韻母[0] === 'y') 聲母 = 'ɥ'; @@ -260,8 +261,8 @@ if (選項.注音符號 === true) 韻母 = { iai: 'ㄧㄞ', iau: 'ㄧㄠ', iəu: 'ㄧㄡ', ian: 'ㄧㄢ', in: 'ㄧㄣ', iaŋ: 'ㄧㄤ', iŋ: 'ㄧㄥ', ua: 'ㄨㄚ', uo: 'ㄨㄛ', uai: 'ㄨㄞ', uəi: 'ㄨㄟ', - uan: 'ㄨㄢ', uən: 'ㄨㄣ', uaŋ: 'ㄨㄤ', uŋ: 'ㄨㄥ', - yo: 'ㄩㄛ', ye: 'ㄩㄝ', yan: 'ㄩㄢ', yn: 'ㄩㄣ', yŋ: 'ㄩㄥ', + uan: 'ㄨㄢ', uən: 'ㄨㄣ', uaŋ: 'ㄨㄤ', oŋ: 'ㄨㄥ', + yo: 'ㄩㄛ', ye: 'ㄩㄝ', yan: 'ㄩㄢ', yn: 'ㄩㄣ', ioŋ: 'ㄩㄥ', iʔ: 'ㄧ', uʔ: 'ㄨ', yʔ: 'ㄩ', aʔ: 'ㄚ', iaʔ: 'ㄧㄚ', uaʔ: 'ㄨㄚ', oʔ: 'ㄛ', ioʔ: 'ㄧㄛ', uoʔ: 'ㄨㄛ', yoʔ: 'ㄩㄛ', @@ -275,12 +276,12 @@ if (選項.注音符號 === true && ['ɿ', 'ʅ'].includes(韻母[0])) 韻母 = ' //if (選項.隔聲韻調 === '定位') 隔位 = '\t'; 聲調 = { - '調值(趙元任)': { 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵' }, - '調值(王璞)': { 1: '⁴⁴', 2: '³⁵⁵', 3: '²¹⁴', 4: '⁴¹', 5: '⁴¹' }, - '調線(趙元任)': { 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥' }, //字元數眞對稱w - '調線(王璞)': { 1: '˦', 2: '˧˥˥', 3: '˨˩˦', 4: '˦˩', 5: '˦˩' }, - '調符': { 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙' }, - '調號上標': { 1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵' }, + '調值(趙元任)': {1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵'}, + '調值(王璞)': {1: '⁴⁴', 2: '³⁵⁵', 3: '²¹⁴', 4: '⁴¹', 5: '⁴¹'}, + '調線(趙元任)': {1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥'}, //字元數眞對稱w + '調線(王璞)': {1: '˦', 2: '˧˥˥', 3: '˨˩˦', 4: '˦˩', 5: '˦˩'}, + '調符': {1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙'}, + '調號上標': {1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵'}, }[選項.調式]?.[聲調] || 聲調; if (選項.調式 !== '附標') { if (選項.聲調在前 === true) return 聲調 + 選項.隔聲韻調 + 聲母 + 選項.隔聲韻調 + 韻母; From 7a241918f95ca66145f4d6139696c5d4019978b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 23 Nov 2024 16:42:00 +0000 Subject: [PATCH 56/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 654be4b..6e3f439 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -17,10 +17,7 @@ if (!音韻地位) return [ ['注音符號省略陰平調號', false, {hidden: 選項.注音符號 !== true}], 選項.注音符號 === false ? '音標風格' : undefined, ['ㄬㄭ|ㄬ ㄭ', [2, 'ȵ ɿ ʅ', 'ɲ ɹ̩ ɻ̍'], {hidden: 選項.注音符號 === true}], - ['介音', [1, - {text: 'i u y', value: '元音'}, - {text: 'j w ɥ', value: '半元音'}, - ], {hidden: 選項.注音符號 === true}], + ['介音', [1, {text: 'i u y', value: '元音'}, {text: 'j w ɥ', value: '半元音'}], {hidden: 選項.注音符號 === true}], ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [2, 'iæi iɛn yɛn', 'iai ian yan'], {hidden: 選項.注音符號 === true}], ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən'], {hidden: 選項.注音符號 === true}], ['喉塞|標示入聲喉塞音韻尾', true, {hidden: 選項.注音符號 === true}], @@ -283,6 +280,7 @@ if (選項.注音符號 === true && ['ɿ', 'ʅ'].includes(韻母[0])) 韻母 = ' '調符': {1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙'}, '調號上標': {1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵'}, }[選項.調式]?.[聲調] || 聲調; +if (選項.注音符號省略陰平調號 === true && 選項.注音符號 === true && 聲調 === 'ˉ') 聲調 = ''; if (選項.調式 !== '附標') { if (選項.聲調在前 === true) return 聲調 + 選項.隔聲韻調 + 聲母 + 選項.隔聲韻調 + 韻母; else return 聲母 + 選項.隔聲韻調 + 韻母 + 選項.隔聲韻調 + 聲調; From 05a3eab40f00abde3c5e5c725dd7ad902cb856a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sat, 23 Nov 2024 17:09:34 +0000 Subject: [PATCH 57/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 27 ++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 6e3f439..4fb4eb8 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -13,17 +13,17 @@ const is = (...x) => 音韻地位.屬於(...x); const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ - ['注音符號\n否的話就用國際音標', true], - ['注音符號省略陰平調號', false, {hidden: 選項.注音符號 !== true}], - 選項.注音符號 === false ? '音標風格' : undefined, + ['注音符號\n否的話就用國際音標', true], //完 + ['注音符號省略陰平調號', false, {hidden: 選項.注音符號 !== true}], //完 + 選項.注音符號 !== true ? '音標風格' : undefined, ['ㄬㄭ|ㄬ ㄭ', [2, 'ȵ ɿ ʅ', 'ɲ ɹ̩ ɻ̍'], {hidden: 選項.注音符號 === true}], - ['介音', [1, {text: 'i u y', value: '元音'}, {text: 'j w ɥ', value: '半元音'}], {hidden: 選項.注音符號 === true}], - ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [2, 'iæi iɛn yɛn', 'iai ian yan'], {hidden: 選項.注音符號 === true}], + ['介音|介音寫成半元音而非元音\n元音:iuy\n半元音:jwɥ', false, {hidden: 選項.注音符號 === true}], + ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [2, 'iæi iɛn yɛn', 'iai ian yan'], {hidden: 選項.注音符號 === true}], //完 ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən'], {hidden: 選項.注音符號 === true}], - ['喉塞|標示入聲喉塞音韻尾', true, {hidden: 選項.注音符號 === true}], + ['喉塞|標示入聲喉塞音韻尾', true, {hidden: 選項.注音符號 === true}], //完 ['調式', ['調符', '調值(趙元任)', '調值(王璞)', '調線(趙元任)', '調線(王璞)', - ...(選項.注音符號 === false ? ['附標'] : []), '調號上標', '調號', '調符', + ...(選項.注音符號 !== true ? ['附標'] : []), '調號上標', '調號', '調符', ]], ['聲調在前', false, {hidden: 選項.調式 === '附標'}], ['隔聲韻調|隔聲韻調\n調式爲「附標」時只隔聲和韻', ''], //待加?(選項.隔聲韻調 || '\t') @@ -202,7 +202,7 @@ if (選項.知莊真合入 && is`知莊組 真韻 合口 入聲`) 韻母 = 選 if (選項.莊臻入 && is`莊組 臻韻 入聲`) 韻母 = 選項.莊臻入; if (選項.見文入 && is`見羣疑母 文韻 入聲`) 韻母 = 選項.見文入; if (選項.見梗二開舒 && is`溪疑影曉匣母 梗攝 二等 開口 舒聲`) 韻母 = 選項.見梗二開舒; -if (選項.匣上 === false && is`匣母 上聲`) 聲調 = '3'; +if (選項.匣上 !== true && is`匣母 上聲`) 聲調 = '3'; //顎化;疑母齊、撮呼不規則脫鼻 if (['i', 'y'].includes(韻母[0])) 聲母 = { @@ -231,15 +231,22 @@ if (選項.注音符號 !== true && 韻母 === 'uən' && ['t', 'tʰ', 'n', 'l', if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; //疑母合口 +//ㄬㄭ +if (選項.注音符號 !== true && 選項.ㄬㄭ === 'ȵ ɿ ʅ') 聲母 = { +} + //介音 -if (選項.介音 === '半元音' && 選項.注音符號 === false && !聲母) { +if (選項.注音符號 !== true && 選項.介音 === '半元音' && !聲母) { if (韻母[0] === 'i') 聲母 = 'j'; if (韻母[0] === 'u') 聲母 = 'w'; if (韻母[0] === 'y') 聲母 = 'ɥ'; if (聲母 && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); } -if (選項.喉塞 === false && 選項.注音符號 === false && is`入聲`) 韻母 = 韻母.slice(0, -1); //喉塞音韻尾 +if (選項.注音符號 !== true && 選項.ㄚ === 'iæi iɛn yɛn') 韻母 = {iai: 'iæi', ian: 'iɛn', yan: 'yɛn'}[韻母] || 韻母; //ㄚ +} + +if (選項.注音符號 !== true && 選項.喉塞 !== true && is`入聲`) 韻母 = 韻母.slice(0, -1); //喉塞音韻尾 if (選項.注音符號 === true) 聲母 = { p: 'ㄅ', pʰ: 'ㄆ', m: 'ㄇ', f: 'ㄈ', ʋ: 'ㄪ', From 47efd92a0ffcaeca16f5a494e4efc968d7a27498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:06:50 +0000 Subject: [PATCH 58/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 4fb4eb8..081947c 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -13,7 +13,8 @@ const is = (...x) => 音韻地位.屬於(...x); const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ - ['注音符號\n否的話就用國際音標', true], //完 + [`注音符號 + 否的話就用國際音標`, true], //完 ['注音符號省略陰平調號', false, {hidden: 選項.注音符號 !== true}], //完 選項.注音符號 !== true ? '音標風格' : undefined, ['ㄬㄭ|ㄬ ㄭ', [2, 'ȵ ɿ ʅ', 'ɲ ɹ̩ ɻ̍'], {hidden: 選項.注音符號 === true}], @@ -37,7 +38,8 @@ if (!音韻地位) return [ ['莊臻入|莊組臻韻入聲韻母\nəʔ、ʅʔ兩者勢均', [2, 'əʔ', 'ʅʔ']], ['見文入|見組文韻入聲韻母\n預測yʔ(如「屈」,溪文入)但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], ['見梗二開舒|牙喉音梗二開舒韻母\n見開二通常顎化,但梗攝不規則,如見母不顎化', [2, 'iŋ', 'əŋ']], - ['匣上|匣上變去\n匣母上聲有很多字不變去聲', true], + [`匣上|匣上變去 + 匣母上聲有很多字不變去聲`, true], //完 ]; const 聲母規則 = () => when([ From 612d848c14d36cb5fe1e2af776d9056707476797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:09:12 +0000 Subject: [PATCH 59/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 081947c..7c105b8 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -123,13 +123,9 @@ const 舒聲韻母規則 = () => when([ ['真臻殷韻', [['合口', 'yn'], ['', 'in']]], //臻韻莊組會推如ən,詳後 ['文韻', 'yn'], - //梗攝 - ['梗攝 二等', [['合口', 'oŋ'], ['', 'əŋ']]], - ['梗攝', [['合口', 'ioŋ'], ['', 'iŋ']]], - - //曾攝 - ['登韻', [['合口', 'oŋ'], ['', 'əŋ']]], - ['蒸韻', [['合口', 'ioŋ'], ['', 'iŋ']]], //蒸合韻無舒聲但照推 + //梗曾攝 + ['梗曾攝 一二等', [['合口', 'oŋ'], ['', 'əŋ']]], + ['梗曾攝', [['合口', 'ioŋ'], ['', 'iŋ']]], //蒸合韻無舒聲但照推 //宕攝 ['唐韻', [['合口', 'uaŋ'], ['', 'aŋ']]], From eb563c09ee71d27dc3b55dfc527ff9b4f77b3bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:38:58 +0000 Subject: [PATCH 60/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 7c105b8..f430449 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -203,9 +203,7 @@ if (選項.見梗二開舒 && is`溪疑影曉匣母 梗攝 二等 開口 舒聲` if (選項.匣上 !== true && is`匣母 上聲`) 聲調 = '3'; //顎化;疑母齊、撮呼不規則脫鼻 -if (['i', 'y'].includes(韻母[0])) 聲母 = { - k: 'tɕ', kʰ: 'tɕʰ', x: 'ɕ', -}[聲母] || 聲母; +if (['i', 'y'].includes(韻母[0])) 聲母 = {k: 'tɕ', kʰ: 'tɕʰ', x: 'ɕ'}[聲母] || 聲母; if (['i', 'y'].includes(韻母[0]) && 聲母 === 'n' && !is`齊之韻 開口`) 聲母 = 'ɲ'; if (韻母[0] === 'i' && 聲母 === 'ŋ') 聲母 = is`(齊之尤蒸陽韻 非 合口) 或 (侵仙先元庚韻 入聲)` ? 'ɲ' : ''; //要不要括著? if (韻母[0] === 'y' && 聲母 === 'ŋ') 聲母 = ''; From c337fe4d263df1e114eee0387fd15e34e36cb1c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:52:29 +0000 Subject: [PATCH 61/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index f430449..beb8489 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -192,7 +192,7 @@ let 韻母 = is`舒聲` ? 舒聲韻母規則() : 入聲韻母規則(); let 聲調 = 聲調規則(); if (選項.常母平聲陰聲韻聲母和船母平聲聲母 && is`(常母 陰聲韻 或 船母) 平聲`) 聲母 = 選項.常母平聲陰聲韻聲母和船母平聲聲母; -if (選項.見泰合 && is`見溪羣母 泰韻 合口`) 韻母 = 選項.見泰合; +if (選項.見泰合 && is`見母 泰韻 合口`) 韻母 = 選項.見泰合; if (選項.見佳合 && is`見影匣母 佳韻 合口`) 韻母 = 選項.見佳合; if (選項.幫幽 && is`幫滂並母 幽韻`) 韻母 = 選項.幫幽; if (選項.莊侵入 && is`莊組 侵韻 入聲`) 韻母 = 選項.莊侵入; From 8694edacd0775a36112ee5de648929c8402f96ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:10:05 +0000 Subject: [PATCH 62/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index beb8489..010c059 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -30,7 +30,7 @@ if (!音韻地位) return [ ['隔聲韻調|隔聲韻調\n調式爲「附標」時只隔聲和韻', ''], //待加?(選項.隔聲韻調 || '\t') '特殊演變', ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], - ['見泰合|見組泰合韻韻母\nuai、uəi兩者勢均,\n但疑泰合只有「外」且讀uai', [2, 'uai', 'uəi']], + ['見泰合|見母泰合韻韻母\n預測uəi但見母多uai', [2, 'uai', 'uəi']], ['見佳合|牙喉音佳合韻韻母\n預測uai,但有不少ua', [2, 'ua', 'uai']], ['幫幽|幫滂並母幽韻韻母\n多讀iəu,只在幫滂並母讀iau,如「彪」', [2, 'iau', 'iəu']], ['莊侵入|莊組侵韻入聲韻母\n生母侵韻入聲多讀əʔ,如「澀」,\n但莊組其餘多脫翹並讀iʔ', [2, 'ʅʔ', 'əʔ']], @@ -85,7 +85,7 @@ const 舒聲韻母規則 = () => when([ ['魚虞韻', 'y'], //蟹攝 - ['咍灰泰韻', [['開口', 'ai'], ['泰韻 合口 疑母', 'uai'], ['', 'uəi']]], //泰合韻見組uai、uəi兩者勢均 + ['咍灰泰韻', [['開口', 'ai'], ['泰韻 合口 疑母', 'uai'], ['', 'uəi']]], //泰合韻見組預測uəi但見母多uai ['佳皆夬韻', [['合口', 'uai'], ['牙喉音', 'iai'], ['', 'ai']]], //佳合韻牙喉音應爲/uai/,但有不少/ua/ ['祭廢齊韻', [['廢韻 脣音', 'uəi'], ['廢韻 開口 銳音', 'iai'], ['合口', 'uəi'], ['', 'i']]], //明廢去無字;銳廢開「茝ㄔㄞˇ佁䑂𦚪」 From 805a138c3540bdab0a4a4ae46474e3335cf7df68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:28:41 +0000 Subject: [PATCH 63/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 1 - 1 file changed, 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 010c059..9d22298 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -240,7 +240,6 @@ if (選項.注音符號 !== true && 選項.介音 === '半元音' && !聲母) { } if (選項.注音符號 !== true && 選項.ㄚ === 'iæi iɛn yɛn') 韻母 = {iai: 'iæi', ian: 'iɛn', yan: 'yɛn'}[韻母] || 韻母; //ㄚ -} if (選項.注音符號 !== true && 選項.喉塞 !== true && is`入聲`) 韻母 = 韻母.slice(0, -1); //喉塞音韻尾 From 3c2e43cd98cefb708b926aed1fe137a5f2e16d15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 29 Jan 2025 15:26:51 +0000 Subject: [PATCH 64/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 1 + 1 file changed, 1 insertion(+) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 9d22298..6a6bfeb 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -57,6 +57,7 @@ const 聲母規則 = () => when([ ['清從母', 'tsʰ'], ['心邪母', 's'], + ['崇母 之韻 開口', 'ʂ'], //士仕事 ['知莊章母 或 澄崇母 仄聲', 'tʂ'], ['徹澄初崇昌母', 'tʂʰ'], ['生俟書船母', 'ʂ'], From 4f2c214781dc544975df4cf19ccb166782c9f34c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 29 Jan 2025 15:51:38 +0000 Subject: [PATCH 65/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 1 + 1 file changed, 1 insertion(+) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 6a6bfeb..4b5d75f 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -53,6 +53,7 @@ const 聲母規則 = () => when([ ['泥孃母', 'n'], ['來母', 'l'], + ['邪母 之韻 開口 平聲', 'tsʰ'], //詞祠辭 ['精母 或 從母 仄聲', 'ts'], ['清從母', 'tsʰ'], ['心邪母', 's'], From 1b105c3629e12c746f773a9c3b7cb79648795121 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:22:21 +0000 Subject: [PATCH 66/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: unt --- "\350\200\201\345\234\213\351\237\263.js" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 4b5d75f..9bae1cd 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -225,7 +225,7 @@ if (韻母 === 'un') 韻母 = 'uən'; //一次過un→uən if (['p', 'pʰ', 'm', 'f'].includes(聲母) && 韻母[0] === 'u' && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); if (['f', 'ʋ'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) || 'əi'; -if (選項.注音符號 !== true && 韻母 === 'uən' && ['t', 'tʰ', 'n', 'l', 'ts', 'tsʰ', 's'].includes(聲母)) 韻母 = 選項.ㄨㄣ; //ㄨㄣ元音 +if (選項.注音符號 !== true && 韻母 === 'uən') 韻母 = 選項.ㄨㄣ; //ㄨㄣ元音 if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; //疑母合口 From 6ef09fcf7b60a88e0f247541a4ed21e4db8aada0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:56:04 +0000 Subject: [PATCH 67/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 9bae1cd..314ee70 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -225,24 +225,21 @@ if (韻母 === 'un') 韻母 = 'uən'; //一次過un→uən if (['p', 'pʰ', 'm', 'f'].includes(聲母) && 韻母[0] === 'u' && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); if (['f', 'ʋ'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) || 'əi'; -if (選項.注音符號 !== true && 韻母 === 'uən') 韻母 = 選項.ㄨㄣ; //ㄨㄣ元音 - if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; //疑母合口 //ㄬㄭ if (選項.注音符號 !== true && 選項.ㄬㄭ === 'ȵ ɿ ʅ') 聲母 = { } -//介音 -if (選項.注音符號 !== true && 選項.介音 === '半元音' && !聲母) { +//音標風格 +if (選項.注音符號 !== true && 選項.介音 === '半元音' && !聲母) { //介音 if (韻母[0] === 'i') 聲母 = 'j'; if (韻母[0] === 'u') 聲母 = 'w'; if (韻母[0] === 'y') 聲母 = 'ɥ'; if (聲母 && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); } - if (選項.注音符號 !== true && 選項.ㄚ === 'iæi iɛn yɛn') 韻母 = {iai: 'iæi', ian: 'iɛn', yan: 'yɛn'}[韻母] || 韻母; //ㄚ - +if (選項.注音符號 !== true && 韻母 === 'uən') 韻母 = 選項.ㄨㄣ; //ㄨㄣ元音 if (選項.注音符號 !== true && 選項.喉塞 !== true && is`入聲`) 韻母 = 韻母.slice(0, -1); //喉塞音韻尾 if (選項.注音符號 === true) 聲母 = { From 5d7b481f08917c196b3b35f0665ab82bc4b79604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 7 Feb 2025 14:08:55 +0000 Subject: [PATCH 68/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 314ee70..7d2f71f 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -29,7 +29,7 @@ if (!音韻地位) return [ ['聲調在前', false, {hidden: 選項.調式 === '附標'}], ['隔聲韻調|隔聲韻調\n調式爲「附標」時只隔聲和韻', ''], //待加?(選項.隔聲韻調 || '\t') '特殊演變', - ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], + ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], //完 ['見泰合|見母泰合韻韻母\n預測uəi但見母多uai', [2, 'uai', 'uəi']], ['見佳合|牙喉音佳合韻韻母\n預測uai,但有不少ua', [2, 'ua', 'uai']], ['幫幽|幫滂並母幽韻韻母\n多讀iəu,只在幫滂並母讀iau,如「彪」', [2, 'iau', 'iəu']], From 550ea73965a6abb350dbb1702709b2f9cb99d339 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Fri, 7 Feb 2025 14:28:30 +0000 Subject: [PATCH 69/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 30 +++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 7d2f71f..e90db56 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -15,18 +15,18 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ [`注音符號 否的話就用國際音標`, true], //完 - ['注音符號省略陰平調號', false, {hidden: 選項.注音符號 !== true}], //完 + ['注音符號省略陰平調號', false, { hidden: 選項.注音符號 !== true }], //完 選項.注音符號 !== true ? '音標風格' : undefined, - ['ㄬㄭ|ㄬ ㄭ', [2, 'ȵ ɿ ʅ', 'ɲ ɹ̩ ɻ̍'], {hidden: 選項.注音符號 === true}], - ['介音|介音寫成半元音而非元音\n元音:iuy\n半元音:jwɥ', false, {hidden: 選項.注音符號 === true}], - ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [2, 'iæi iɛn yɛn', 'iai ian yan'], {hidden: 選項.注音符號 === true}], //完 - ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən'], {hidden: 選項.注音符號 === true}], - ['喉塞|標示入聲喉塞音韻尾', true, {hidden: 選項.注音符號 === true}], //完 + ['ㄬㄭ|ㄬ ㄭ', [2, 'ȵ ɿ ʅ', 'ɲ ɹ̩ ɻ̍'], { hidden: 選項.注音符號 === true }], + ['介音|介音寫成半元音而非元音\n元音:iuy\n半元音:jwɥ', false, { hidden: 選項.注音符號 === true }], + ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [2, 'iæi iɛn yɛn', 'iai ian yan'], { hidden: 選項.注音符號 === true }], //完 + ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən'], { hidden: 選項.注音符號 === true }], + ['喉塞|標示入聲喉塞音韻尾', true, { hidden: 選項.注音符號 === true }], //完 ['調式', ['調符', '調值(趙元任)', '調值(王璞)', '調線(趙元任)', '調線(王璞)', ...(選項.注音符號 !== true ? ['附標'] : []), '調號上標', '調號', '調符', ]], - ['聲調在前', false, {hidden: 選項.調式 === '附標'}], + ['聲調在前', false, { hidden: 選項.調式 === '附標' }], ['隔聲韻調|隔聲韻調\n調式爲「附標」時只隔聲和韻', ''], //待加?(選項.隔聲韻調 || '\t') '特殊演變', ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], //完 @@ -205,7 +205,7 @@ if (選項.見梗二開舒 && is`溪疑影曉匣母 梗攝 二等 開口 舒聲` if (選項.匣上 !== true && is`匣母 上聲`) 聲調 = '3'; //顎化;疑母齊、撮呼不規則脫鼻 -if (['i', 'y'].includes(韻母[0])) 聲母 = {k: 'tɕ', kʰ: 'tɕʰ', x: 'ɕ'}[聲母] || 聲母; +if (['i', 'y'].includes(韻母[0])) 聲母 = { k: 'tɕ', kʰ: 'tɕʰ', x: 'ɕ' }[聲母] || 聲母; if (['i', 'y'].includes(韻母[0]) && 聲母 === 'n' && !is`齊之韻 開口`) 聲母 = 'ɲ'; if (韻母[0] === 'i' && 聲母 === 'ŋ') 聲母 = is`(齊之尤蒸陽韻 非 合口) 或 (侵仙先元庚韻 入聲)` ? 'ɲ' : ''; //要不要括著? if (韻母[0] === 'y' && 聲母 === 'ŋ') 聲母 = ''; @@ -238,7 +238,7 @@ if (選項.注音符號 !== true && 選項.介音 === '半元音' && !聲母) { if (韻母[0] === 'y') 聲母 = 'ɥ'; if (聲母 && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); } -if (選項.注音符號 !== true && 選項.ㄚ === 'iæi iɛn yɛn') 韻母 = {iai: 'iæi', ian: 'iɛn', yan: 'yɛn'}[韻母] || 韻母; //ㄚ +if (選項.注音符號 !== true && 選項.ㄚ === 'iæi iɛn yɛn') 韻母 = { iai: 'iæi', ian: 'iɛn', yan: 'yɛn' }[韻母] || 韻母; //ㄚ if (選項.注音符號 !== true && 韻母 === 'uən') 韻母 = 選項.ㄨㄣ; //ㄨㄣ元音 if (選項.注音符號 !== true && 選項.喉塞 !== true && is`入聲`) 韻母 = 韻母.slice(0, -1); //喉塞音韻尾 @@ -274,12 +274,12 @@ if (選項.注音符號 === true && ['ɿ', 'ʅ'].includes(韻母[0])) 韻母 = ' //if (選項.隔聲韻調 === '定位') 隔位 = '\t'; 聲調 = { - '調值(趙元任)': {1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵'}, - '調值(王璞)': {1: '⁴⁴', 2: '³⁵⁵', 3: '²¹⁴', 4: '⁴¹', 5: '⁴¹'}, - '調線(趙元任)': {1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥'}, //字元數眞對稱w - '調線(王璞)': {1: '˦', 2: '˧˥˥', 3: '˨˩˦', 4: '˦˩', 5: '˦˩'}, - '調符': {1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙'}, - '調號上標': {1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵'}, + '調值(趙元任)': { 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵' }, + '調值(王璞)': { 1: '⁴⁴', 2: '³⁵⁵', 3: '²¹⁴', 4: '⁴¹', 5: '⁴¹' }, + '調線(趙元任)': { 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥' }, //字元數眞對稱w + '調線(王璞)': { 1: '˦', 2: '˧˥˥', 3: '˨˩˦', 4: '˦˩', 5: '˦˩' }, + '調符': { 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙' }, + '調號上標': { 1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵' }, }[選項.調式]?.[聲調] || 聲調; if (選項.注音符號省略陰平調號 === true && 選項.注音符號 === true && 聲調 === 'ˉ') 聲調 = ''; if (選項.調式 !== '附標') { From 4fb51c2fda1ed28f032f0a862515f80127ca500e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sun, 23 Feb 2025 10:05:37 +0000 Subject: [PATCH 70/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= =?UTF-8?q?=EF=BC=9A=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 128 +++++++++++----------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index e90db56..d93624e 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -14,22 +14,22 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ [`注音符號 - 否的話就用國際音標`, true], //完 - ['注音符號省略陰平調號', false, { hidden: 選項.注音符號 !== true }], //完 + 否的話就用國際音標`, true], // 完 + ['注音符號省略陰平調號', false, { hidden: 選項.注音符號 !== true }], // 完 選項.注音符號 !== true ? '音標風格' : undefined, ['ㄬㄭ|ㄬ ㄭ', [2, 'ȵ ɿ ʅ', 'ɲ ɹ̩ ɻ̍'], { hidden: 選項.注音符號 === true }], ['介音|介音寫成半元音而非元音\n元音:iuy\n半元音:jwɥ', false, { hidden: 選項.注音符號 === true }], - ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [2, 'iæi iɛn yɛn', 'iai ian yan'], { hidden: 選項.注音符號 === true }], //完 + ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [2, 'iæi iɛn yɛn', 'iai ian yan'], { hidden: 選項.注音符號 === true }], // 完 ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən'], { hidden: 選項.注音符號 === true }], - ['喉塞|標示入聲喉塞音韻尾', true, { hidden: 選項.注音符號 === true }], //完 + ['喉塞|標示入聲喉塞音韻尾', true, { hidden: 選項.注音符號 === true }], // 完 ['調式', ['調符', '調值(趙元任)', '調值(王璞)', '調線(趙元任)', '調線(王璞)', ...(選項.注音符號 !== true ? ['附標'] : []), '調號上標', '調號', '調符', ]], ['聲調在前', false, { hidden: 選項.調式 === '附標' }], - ['隔聲韻調|隔聲韻調\n調式爲「附標」時只隔聲和韻', ''], //待加?(選項.隔聲韻調 || '\t') + ['隔聲韻調|隔聲韻調\n調式爲「附標」時只隔聲和韻', ''], // 待加?(選項.隔聲韻調 || '\t') '特殊演變', - ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], //完 + ['常母平聲陰聲韻聲母和船母平聲聲母', [2, 'tʂʰ', 'ʂ']], // 完 ['見泰合|見母泰合韻韻母\n預測uəi但見母多uai', [2, 'uai', 'uəi']], ['見佳合|牙喉音佳合韻韻母\n預測uai,但有不少ua', [2, 'ua', 'uai']], ['幫幽|幫滂並母幽韻韻母\n多讀iəu,只在幫滂並母讀iau,如「彪」', [2, 'iau', 'iəu']], @@ -39,7 +39,7 @@ if (!音韻地位) return [ ['見文入|見組文韻入聲韻母\n預測yʔ(如「屈」,溪文入)但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], ['見梗二開舒|牙喉音梗二開舒韻母\n見開二通常顎化,但梗攝不規則,如見母不顎化', [2, 'iŋ', 'əŋ']], [`匣上|匣上變去 - 匣母上聲有很多字不變去聲`, true], //完 + 匣母上聲有很多字不變去聲`, true], // 完 ]; const 聲母規則 = () => when([ @@ -53,12 +53,12 @@ const 聲母規則 = () => when([ ['泥孃母', 'n'], ['來母', 'l'], - ['邪母 之韻 開口 平聲', 'tsʰ'], //詞祠辭 + ['邪母 之韻 開口 平聲', 'tsʰ'], // 詞祠辭 ['精母 或 從母 仄聲', 'ts'], ['清從母', 'tsʰ'], ['心邪母', 's'], - ['崇母 之韻 開口', 'ʂ'], //士仕事 + ['崇母 之韻 開口', 'ʂ'], // 士仕事 ['知莊章母 或 澄崇母 仄聲', 'tʂ'], ['徹澄初崇昌母', 'tʂʰ'], ['生俟書船母', 'ʂ'], @@ -67,118 +67,118 @@ const 聲母規則 = () => when([ ['見母 或 羣母 仄聲', 'k'], ['溪羣母', 'kʰ'], - ['疑母', 'ŋ'], //細音詳後 + ['疑母', 'ŋ'], // 細音詳後 ['影云以母', ''], ['曉匣母', 'x'], ], '無聲母規則'); const 舒聲韻母規則 = () => when([ - //果攝 + // 果攝 ['歌韻 一等', [['合口 非 疑母', 'uo'], ['', 'o']]], - ['歌韻 三等', [['脣音', 'uo'], ['合口', 'ye'], ['', 'ie']]], //輕脣? + ['歌韻 三等', [['脣音', 'uo'], ['合口', 'ye'], ['', 'ie']]], // 輕脣? - //假攝 + // 假攝 ['麻韻 二等', [['合口', 'ua'], ['牙喉音', 'ia'], ['', 'a']]], ['麻韻 三四等', 'ie'], - //遇攝 + // 遇攝 ['模韻', 'u'], ['魚虞韻', 'y'], - //蟹攝 - ['咍灰泰韻', [['開口', 'ai'], ['泰韻 合口 疑母', 'uai'], ['', 'uəi']]], //泰合韻見組預測uəi但見母多uai - ['佳皆夬韻', [['合口', 'uai'], ['牙喉音', 'iai'], ['', 'ai']]], //佳合韻牙喉音應爲/uai/,但有不少/ua/ - ['祭廢齊韻', [['廢韻 脣音', 'uəi'], ['廢韻 開口 銳音', 'iai'], ['合口', 'uəi'], ['', 'i']]], //明廢去無字;銳廢開「茝ㄔㄞˇ佁䑂𦚪」 + // 蟹攝 + ['咍灰泰韻', [['開口', 'ai'], ['泰韻 合口 疑母', 'uai'], ['', 'uəi']]], // 泰合韻見組預測uəi但見母多uai + ['佳皆夬韻', [['合口', 'uai'], ['牙喉音', 'iai'], ['', 'ai']]], // 佳合韻牙喉音應爲/uai/,但有不少/ua/ + ['祭廢齊韻', [['廢韻 脣音', 'uəi'], ['廢韻 開口 銳音', 'iai'], ['合口', 'uəi'], ['', 'i']]], // 明廢去無字;銳廢開「茝ㄔㄞˇ佁䑂𦚪」 - //止攝 + // 止攝 ['止攝 合口', [['莊組', 'uai'], ['', 'uəi']]], ['止攝', [['精組', 'ɿ'], ['日母', 'ɚ'], ['', 'i']]], - //效攝 + // 效攝 ['宵蕭韻 或 肴韻 牙喉音', 'iau'], ['豪肴韻', 'au'], - //流攝 + // 流攝 ['侯韻', 'əu'], ['尤韻', [['脣音', 'əu'], ['', 'iəu']]], ['幽韻', [['幫滂並母', 'iau'], ['', 'iəu']]], - //咸攝 + // 咸攝 ['鹽添韻 或 咸銜嚴韻 牙喉音', 'ian'], ['覃談咸銜嚴韻', 'an'], ['凡韻', 'yan'], - //深攝 + // 深攝 ['侵韻', 'in'], - //山攝 + // 山攝 ['寒刪山韻 合口', 'uan'], ['刪山韻 牙喉音', 'ian'], ['寒刪山韻', 'an'], ['仙先韻', [['合口', 'yan'], ['', 'ian']]], ['元韻', [['開口', 'ian'], ['', 'yan']]], - //臻攝 + // 臻攝 ['痕韻', 'ən'], ['魂韻', 'uən'], - ['真臻殷韻', [['合口', 'yn'], ['', 'in']]], //臻韻莊組會推如ən,詳後 + ['真臻殷韻', [['合口', 'yn'], ['', 'in']]], // 臻韻莊組會推如ən,詳後 ['文韻', 'yn'], - //梗曾攝 + // 梗曾攝 ['梗曾攝 一二等', [['合口', 'oŋ'], ['', 'əŋ']]], - ['梗曾攝', [['合口', 'ioŋ'], ['', 'iŋ']]], //蒸合韻無舒聲但照推 + ['梗曾攝', [['合口', 'ioŋ'], ['', 'iŋ']]], // 蒸合韻無舒聲但照推 - //宕攝 + // 宕攝 ['唐韻', [['合口', 'uaŋ'], ['', 'aŋ']]], ['陽韻', [['合口 或 幫莊組', 'uaŋ'], ['', 'iaŋ']]], - //江攝 + // 江攝 ['江韻', [['牙喉音', 'iaŋ'], ['知莊組', 'uaŋ'], ['', 'aŋ']]], - //通攝 + // 通攝 ['通攝', [['三等 牙喉音', 'ioŋ'], ['', 'oŋ']]], ], '無韻母規則'); const 入聲韻母規則 = () => when([ - //咸攝 + // 咸攝 ['覃談韻', [['牙喉音', 'oʔ'], ['', 'aʔ']]], ['咸銜韻', [['牙喉音', 'iaʔ'], ['', 'aʔ']]], ['嚴鹽添韻', 'ieʔ'], - ['凡韻', [['脣音', 'uaʔ'], ['', 'yeʔ']]], //明凡入無字 + ['凡韻', [['脣音', 'uaʔ'], ['', 'yeʔ']]], // 明凡入無字 - //深攝 + // 深攝 ['侵韻', [['莊組', 'əʔ'], ['', 'iʔ']]], - //山攝 + // 山攝 ['寒韻', [['合口', 'uoʔ'], ['脣牙喉音', 'oʔ'], ['', 'aʔ']]], ['刪山韻', [['合口', 'uaʔ'], ['牙喉音', 'iaʔ'], ['', 'aʔ']]], ['仙先韻', [['合口', 'yeʔ'], ['', 'ieʔ']]], ['元韻', [['脣音', 'uaʔ'], ['合口', 'yeʔ'], ['', 'ieʔ']]], - //臻攝 + // 臻攝 ['痕韻', 'əʔ'], ['魂韻', [['脣音', 'oʔ'], ['', 'uʔ']]], - ['真韻 合口', [['知莊組', 'uoʔ'], ['', 'yʔ']]], //知莊組uʔ、uoʔ兩者勢均,徹莊母多uʔ - ['真臻殷韻', 'iʔ'], //莊組臻韻難決定取əʔ還是ʅʔ - ['文韻', 'yʔ'], //見組文韻入聲讀音預測yʔ(如「屈ㄑㄩ˙」,溪文入)但見羣疑母多yeʔ + ['真韻 合口', [['知莊組', 'uoʔ'], ['', 'yʔ']]], // 知莊組uʔ、uoʔ兩者勢均,徹莊母多uʔ + ['真臻殷韻', 'iʔ'], // 莊組臻韻難決定取əʔ還是ʅʔ + ['文韻', 'yʔ'], // 見組文韻入聲讀音預測yʔ(如「屈ㄑㄩ˙」,溪文入)但見羣疑母多yeʔ - //梗攝 + // 梗攝 ['梗攝 二等', [['合口', 'uoʔ'], ['', 'əʔ']]], ['梗攝', [['合口', 'yʔ'], ['', 'iʔ']]], - //曾攝 + // 曾攝 ['登韻', [['合口', 'uoʔ'], ['', 'əʔ']]], ['蒸韻', [['合口', 'yʔ'], ['莊組', 'əʔ'], ['', 'iʔ']]], - //宕攝 + // 宕攝 ['唐韻', [['合口', 'uoʔ'], ['', 'oʔ']]], - ['陽韻', [['合口 或 幫莊組', 'yoʔ'], ['', 'ioʔ']]], //明陽入無字;孃陽入無常用字;莊組開口oʔ、uoʔ兩者勢均,但對應陽聲韻今讀合口呼 + ['陽韻', [['合口 或 幫莊組', 'yoʔ'], ['', 'ioʔ']]], // 明陽入無字;孃陽入無常用字;莊組開口oʔ、uoʔ兩者勢均,但對應陽聲韻今讀合口呼 - //江攝 + // 江攝 ['江韻', [['牙喉音', 'ioʔ'], ['知莊組', 'uoʔ'], ['', 'oʔ']]], - //通攝 + // 通攝 ['通攝', [['三等 牙喉音', 'yʔ'], ['', 'uʔ']]], ], '無韻母規則'); @@ -204,43 +204,43 @@ if (選項.見文入 && is`見羣疑母 文韻 入聲`) 韻母 = 選項.見文 if (選項.見梗二開舒 && is`溪疑影曉匣母 梗攝 二等 開口 舒聲`) 韻母 = 選項.見梗二開舒; if (選項.匣上 !== true && is`匣母 上聲`) 聲調 = '3'; -//顎化;疑母齊、撮呼不規則脫鼻 +// 顎化;疑母齊、撮呼不規則脫鼻 if (['i', 'y'].includes(韻母[0])) 聲母 = { k: 'tɕ', kʰ: 'tɕʰ', x: 'ɕ' }[聲母] || 聲母; if (['i', 'y'].includes(韻母[0]) && 聲母 === 'n' && !is`齊之韻 開口`) 聲母 = 'ɲ'; -if (韻母[0] === 'i' && 聲母 === 'ŋ') 聲母 = is`(齊之尤蒸陽韻 非 合口) 或 (侵仙先元庚韻 入聲)` ? 'ɲ' : ''; //要不要括著? +if (韻母[0] === 'i' && 聲母 === 'ŋ') 聲母 = is`(齊之尤蒸陽韻 非 合口) 或 (侵仙先元庚韻 入聲)` ? 'ɲ' : ''; // 要不要括著? if (韻母[0] === 'y' && 聲母 === 'ŋ') 聲母 = ''; -//捲舌音 +// 捲舌音 if (['tʂ', 'tʂʰ', 'ʂ', 'ɻ'].includes(聲母)) { if (['i', 'iʔ'].includes(韻母)) 韻母 = 'ʅ' + 韻母.slice(1); if (['in', 'iŋ'].includes(韻母)) 韻母 = 'ə' + 韻母.slice(1); if (韻母[0] === 'i' && 韻母[1]) 韻母 = 韻母.slice(1); if (韻母 === 'yeʔ') 韻母 = 'uoʔ'; - if (韻母[0] === 'y') 韻母 = 'u' + 韻母.slice(1); //un→uən,詳後 + if (韻母[0] === 'y') 韻母 = 'u' + 韻母.slice(1); // un→uən,詳後 } -//脣音 -if (is`脣音` && 韻母[0] === 'y') 韻母 = 'u' + 韻母.slice(1); //un→uən,詳後 -if (韻母 === 'un') 韻母 = 'uən'; //一次過un→uən +// 脣音 +if (is`脣音` && 韻母[0] === 'y') 韻母 = 'u' + 韻母.slice(1); // un→uən,詳後 +if (韻母 === 'un') 韻母 = 'uən'; // 一次過un→uən if (['p', 'pʰ', 'm', 'f'].includes(聲母) && 韻母[0] === 'u' && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); if (['f', 'ʋ'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) || 'əi'; -if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; //疑母合口 +if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; // 疑母合口 -//ㄬㄭ +// ㄬㄭ if (選項.注音符號 !== true && 選項.ㄬㄭ === 'ȵ ɿ ʅ') 聲母 = { } -//音標風格 -if (選項.注音符號 !== true && 選項.介音 === '半元音' && !聲母) { //介音 +// 音標風格 +if (選項.注音符號 !== true && 選項.介音 === '半元音' && !聲母) { // 介音 if (韻母[0] === 'i') 聲母 = 'j'; if (韻母[0] === 'u') 聲母 = 'w'; if (韻母[0] === 'y') 聲母 = 'ɥ'; if (聲母 && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); } -if (選項.注音符號 !== true && 選項.ㄚ === 'iæi iɛn yɛn') 韻母 = { iai: 'iæi', ian: 'iɛn', yan: 'yɛn' }[韻母] || 韻母; //ㄚ -if (選項.注音符號 !== true && 韻母 === 'uən') 韻母 = 選項.ㄨㄣ; //ㄨㄣ元音 -if (選項.注音符號 !== true && 選項.喉塞 !== true && is`入聲`) 韻母 = 韻母.slice(0, -1); //喉塞音韻尾 +if (選項.注音符號 !== true && 選項.ㄚ === 'iæi iɛn yɛn') 韻母 = { iai: 'iæi', ian: 'iɛn', yan: 'yɛn' }[韻母] || 韻母; // ㄚ +if (選項.注音符號 !== true && 韻母 === 'uən') 韻母 = 選項.ㄨㄣ; // ㄨㄣ元音 +if (選項.注音符號 !== true && 選項.喉塞 !== true && is`入聲`) 韻母 = 韻母.slice(0, -1); // 喉塞音韻尾 if (選項.注音符號 === true) 聲母 = { p: 'ㄅ', pʰ: 'ㄆ', m: 'ㄇ', f: 'ㄈ', ʋ: 'ㄪ', @@ -268,15 +268,15 @@ if (選項.注音符號 === true) 韻母 = { }[韻母] || 韻母; if (選項.注音符號 === true && ['ɿ', 'ʅ'].includes(韻母[0])) 韻母 = ''; -//let 隔位 = 選項.隔聲韻調; -//if (選項.隔聲韻調 === '無') 隔位 = ''; -//if (選項.隔聲韻調 === '空格') 隔位 = ' '; -//if (選項.隔聲韻調 === '定位') 隔位 = '\t'; +// let 隔位 = 選項.隔聲韻調; +// if (選項.隔聲韻調 === '無') 隔位 = ''; +// if (選項.隔聲韻調 === '空格') 隔位 = ' '; +// if (選項.隔聲韻調 === '定位') 隔位 = '\t'; 聲調 = { '調值(趙元任)': { 1: '⁵⁵', 2: '³⁵', 3: '²¹⁴', 4: '⁵¹', 5: '⁵' }, '調值(王璞)': { 1: '⁴⁴', 2: '³⁵⁵', 3: '²¹⁴', 4: '⁴¹', 5: '⁴¹' }, - '調線(趙元任)': { 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥' }, //字元數眞對稱w + '調線(趙元任)': { 1: '˥', 2: '˧˥', 3: '˨˩˦', 4: '˥˩', 5: '˥' }, // 字元數眞對稱w '調線(王璞)': { 1: '˦', 2: '˧˥˥', 3: '˨˩˦', 4: '˦˩', 5: '˦˩' }, '調符': { 1: 'ˉ', 2: 'ˊ', 3: 'ˇ', 4: 'ˋ', 5: '˙' }, '調號上標': { 1: '¹', 2: '²', 3: '³', 4: '⁴', 5: '⁵' }, From 230d57eac9e2988c944bd30489247a323b2b4f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sun, 23 Feb 2025 14:16:45 +0000 Subject: [PATCH 71/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= =?UTF-8?q?=20=E9=81=B8=E9=A0=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index d93624e..176212f 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -15,13 +15,16 @@ const when = (...x) => 音韻地位.判斷(...x); if (!音韻地位) return [ [`注音符號 否的話就用國際音標`, true], // 完 - ['注音符號省略陰平調號', false, { hidden: 選項.注音符號 !== true }], // 完 - 選項.注音符號 !== true ? '音標風格' : undefined, - ['ㄬㄭ|ㄬ ㄭ', [2, 'ȵ ɿ ʅ', 'ɲ ɹ̩ ɻ̍'], { hidden: 選項.注音符號 === true }], - ['介音|介音寫成半元音而非元音\n元音:iuy\n半元音:jwɥ', false, { hidden: 選項.注音符號 === true }], - ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [2, 'iæi iɛn yɛn', 'iai ian yan'], { hidden: 選項.注音符號 === true }], // 完 - ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən'], { hidden: 選項.注音符號 === true }], - ['喉塞|標示入聲喉塞音韻尾', true, { hidden: 選項.注音符號 === true }], // 完 + ...(選項.注音符號 !== false ? [ + ['注音符號省略陰平調號', false], // 完 + ] : [ + 選項.注音符號 !== true ? '音標風格' : undefined, + ['ㄬㄭ|ㄬ ㄭ', [2, 'ȵ ɿ ʅ', 'ɲ ɹ̩ ɻ̍']], + ['介音|介音寫成半元音而非元音\n元音:iuy\n半元音:jwɥ', false], + ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [2, 'iæi iɛn yɛn', 'iai ian yan']], // 完 + ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən']], + ['喉塞|標示入聲喉塞音韻尾', true], // 完 + ]), ['調式', ['調符', '調值(趙元任)', '調值(王璞)', '調線(趙元任)', '調線(王璞)', ...(選項.注音符號 !== true ? ['附標'] : []), '調號上標', '調號', '調符', From 4b8f211c30e17355a94eb18787693412d00e5432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sun, 23 Feb 2025 14:39:31 +0000 Subject: [PATCH 72/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 176212f..1baa38d 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -36,9 +36,9 @@ if (!音韻地位) return [ ['見泰合|見母泰合韻韻母\n預測uəi但見母多uai', [2, 'uai', 'uəi']], ['見佳合|牙喉音佳合韻韻母\n預測uai,但有不少ua', [2, 'ua', 'uai']], ['幫幽|幫滂並母幽韻韻母\n多讀iəu,只在幫滂並母讀iau,如「彪」', [2, 'iau', 'iəu']], - ['莊侵入|莊組侵韻入聲韻母\n生母侵韻入聲多讀əʔ,如「澀」,\n但莊組其餘多脫翹並讀iʔ', [2, 'ʅʔ', 'əʔ']], + ['莊侵入|莊組侵韻入聲韻母\n生母侵韻入聲多讀əʔ,如「澀」,\n但莊組其餘多脫翹並讀iʔ', [2, 'ɻ̍ʔ', 'əʔ']], ['知莊真合入|知莊組真合韻入聲韻母\nuʔ、uoʔ兩者勢均,徹莊母多uʔ', [2, 'uʔ', 'uoʔ']], - ['莊臻入|莊組臻韻入聲韻母\nəʔ、ʅʔ兩者勢均', [2, 'əʔ', 'ʅʔ']], + ['莊臻入|莊組臻韻入聲韻母\nəʔ、ɻ̍ʔ兩者勢均', [2, 'əʔ', 'ɻ̍ʔ']], ['見文入|見組文韻入聲韻母\n預測yʔ(如「屈」,溪文入)但見羣疑母多yeʔ', [2, 'yeʔ', 'yʔ']], ['見梗二開舒|牙喉音梗二開舒韻母\n見開二通常顎化,但梗攝不規則,如見母不顎化', [2, 'iŋ', 'əŋ']], [`匣上|匣上變去 @@ -96,7 +96,7 @@ const 舒聲韻母規則 = () => when([ // 止攝 ['止攝 合口', [['莊組', 'uai'], ['', 'uəi']]], - ['止攝', [['精組', 'ɿ'], ['日母', 'ɚ'], ['', 'i']]], + ['止攝', [['精組', 'ɹ̩'], ['日母', 'ɚ'], ['', 'i']]], // 效攝 ['宵蕭韻 或 肴韻 牙喉音', 'iau'], @@ -163,7 +163,7 @@ const 入聲韻母規則 = () => when([ ['痕韻', 'əʔ'], ['魂韻', [['脣音', 'oʔ'], ['', 'uʔ']]], ['真韻 合口', [['知莊組', 'uoʔ'], ['', 'yʔ']]], // 知莊組uʔ、uoʔ兩者勢均,徹莊母多uʔ - ['真臻殷韻', 'iʔ'], // 莊組臻韻難決定取əʔ還是ʅʔ + ['真臻殷韻', 'iʔ'], // 莊組臻韻難決定取əʔ還是ɻ̍ʔ ['文韻', 'yʔ'], // 見組文韻入聲讀音預測yʔ(如「屈ㄑㄩ˙」,溪文入)但見羣疑母多yeʔ // 梗攝 @@ -215,7 +215,7 @@ if (韻母[0] === 'y' && 聲母 === 'ŋ') 聲母 = ''; // 捲舌音 if (['tʂ', 'tʂʰ', 'ʂ', 'ɻ'].includes(聲母)) { - if (['i', 'iʔ'].includes(韻母)) 韻母 = 'ʅ' + 韻母.slice(1); + if (['i', 'iʔ'].includes(韻母)) 韻母 = 'ɻ̍' + 韻母.slice(1); if (['in', 'iŋ'].includes(韻母)) 韻母 = 'ə' + 韻母.slice(1); if (韻母[0] === 'i' && 韻母[1]) 韻母 = 韻母.slice(1); if (韻母 === 'yeʔ') 韻母 = 'uoʔ'; @@ -254,7 +254,7 @@ if (選項.注音符號 === true) 聲母 = { ts: 'ㄗ', tsʰ: 'ㄘ', s: 'ㄙ', }[聲母] || 聲母; if (選項.注音符號 === true) 韻母 = { - i: 'ㄧ', u: 'ㄨ', y: 'ㄩ', + i: 'ㄧ', u: 'ㄨ', y: 'ㄩ', ɹ̩: 'ㄭ', ɻ̍: 'ㄭ', a: 'ㄚ', o: 'ㄛ', ə: 'ㄜ', ɚ: 'ㄦ', e: 'ㄝ', ai: 'ㄞ', əi: 'ㄟ', au: 'ㄠ', əu: 'ㄡ', an: 'ㄢ', ən: 'ㄣ', aŋ: 'ㄤ', əŋ: 'ㄥ', @@ -264,7 +264,7 @@ if (選項.注音符號 === true) 韻母 = { ua: 'ㄨㄚ', uo: 'ㄨㄛ', uai: 'ㄨㄞ', uəi: 'ㄨㄟ', uan: 'ㄨㄢ', uən: 'ㄨㄣ', uaŋ: 'ㄨㄤ', oŋ: 'ㄨㄥ', yo: 'ㄩㄛ', ye: 'ㄩㄝ', yan: 'ㄩㄢ', yn: 'ㄩㄣ', ioŋ: 'ㄩㄥ', - iʔ: 'ㄧ', uʔ: 'ㄨ', yʔ: 'ㄩ', + iʔ: 'ㄧ', uʔ: 'ㄨ', yʔ: 'ㄩ', ɻ̍ʔ: 'ㄭ', aʔ: 'ㄚ', iaʔ: 'ㄧㄚ', uaʔ: 'ㄨㄚ', oʔ: 'ㄛ', ioʔ: 'ㄧㄛ', uoʔ: 'ㄨㄛ', yoʔ: 'ㄩㄛ', əʔ: 'ㄜ', eʔ: 'ㄝ', ieʔ: 'ㄧㄝ', yeʔ: 'ㄩㄝ', From 4e7181a1c3d8ed478b6c54e269ad18b9bbc2a3e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sun, 23 Feb 2025 15:18:51 +0000 Subject: [PATCH 73/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 1baa38d..502b477 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -231,7 +231,10 @@ if (['f', 'ʋ'].includes(聲母) && 韻母[0] === 'i') 韻母 = 韻母.slice(1) if (聲母 === 'ŋ' && 韻母[0] === 'u') 聲母 = ''; // 疑母合口 // ㄬㄭ -if (選項.注音符號 !== true && 選項.ㄬㄭ === 'ȵ ɿ ʅ') 聲母 = { +if (選項.注音符號 !== true && 選項.ㄬㄭ === 'ȵ ɿ ʅ') { + if (聲母 === 'ɲ') 聲母 = 'ȵ'; + if (韻母 === 'ɹ̩') 韻母 = 'ɿ'; + if (韻母[0] === 'ɻ') 韻母 = 'ʅ' + 韻母.slice(2); } // 音標風格 @@ -254,7 +257,7 @@ if (選項.注音符號 === true) 聲母 = { ts: 'ㄗ', tsʰ: 'ㄘ', s: 'ㄙ', }[聲母] || 聲母; if (選項.注音符號 === true) 韻母 = { - i: 'ㄧ', u: 'ㄨ', y: 'ㄩ', ɹ̩: 'ㄭ', ɻ̍: 'ㄭ', + i: 'ㄧ', u: 'ㄨ', y: 'ㄩ', a: 'ㄚ', o: 'ㄛ', ə: 'ㄜ', ɚ: 'ㄦ', e: 'ㄝ', ai: 'ㄞ', əi: 'ㄟ', au: 'ㄠ', əu: 'ㄡ', an: 'ㄢ', ən: 'ㄣ', aŋ: 'ㄤ', əŋ: 'ㄥ', @@ -264,12 +267,12 @@ if (選項.注音符號 === true) 韻母 = { ua: 'ㄨㄚ', uo: 'ㄨㄛ', uai: 'ㄨㄞ', uəi: 'ㄨㄟ', uan: 'ㄨㄢ', uən: 'ㄨㄣ', uaŋ: 'ㄨㄤ', oŋ: 'ㄨㄥ', yo: 'ㄩㄛ', ye: 'ㄩㄝ', yan: 'ㄩㄢ', yn: 'ㄩㄣ', ioŋ: 'ㄩㄥ', - iʔ: 'ㄧ', uʔ: 'ㄨ', yʔ: 'ㄩ', ɻ̍ʔ: 'ㄭ', + iʔ: 'ㄧ', uʔ: 'ㄨ', yʔ: 'ㄩ', aʔ: 'ㄚ', iaʔ: 'ㄧㄚ', uaʔ: 'ㄨㄚ', oʔ: 'ㄛ', ioʔ: 'ㄧㄛ', uoʔ: 'ㄨㄛ', yoʔ: 'ㄩㄛ', əʔ: 'ㄜ', eʔ: 'ㄝ', ieʔ: 'ㄧㄝ', yeʔ: 'ㄩㄝ', }[韻母] || 韻母; -if (選項.注音符號 === true && ['ɿ', 'ʅ'].includes(韻母[0])) 韻母 = ''; +if (選項.注音符號 === true && ['ɹ', 'ɻ'].includes(韻母[0])) 韻母 = ''; // let 隔位 = 選項.隔聲韻調; // if (選項.隔聲韻調 === '無') 隔位 = ''; From e16b01ffe4c543e7452d01eb43fb8058dc9b625e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E3=80=87=E4=B8=83=E4=BA=94=E5=85=AB=E4=B8=83?= <146841109+307587@users.noreply.github.com> Date: Sun, 23 Feb 2025 17:05:36 +0000 Subject: [PATCH 74/74] =?UTF-8?q?Update=20=E8=80=81=E5=9C=8B=E9=9F=B3.js?= =?UTF-8?q?=E3=80=80=E4=BB=8B=E9=9F=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\350\200\201\345\234\213\351\237\263.js" | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git "a/\350\200\201\345\234\213\351\237\263.js" "b/\350\200\201\345\234\213\351\237\263.js" index 502b477..d095332 100644 --- "a/\350\200\201\345\234\213\351\237\263.js" +++ "b/\350\200\201\345\234\213\351\237\263.js" @@ -20,7 +20,7 @@ if (!音韻地位) return [ ] : [ 選項.注音符號 !== true ? '音標風格' : undefined, ['ㄬㄭ|ㄬ ㄭ', [2, 'ȵ ɿ ʅ', 'ɲ ɹ̩ ɻ̍']], - ['介音|介音寫成半元音而非元音\n元音:iuy\n半元音:jwɥ', false], + ['介音', [1, {text: 'i u y', value: '元音' }, {text: 'j w ɥ', value: '半元音' }]], ['ㄚ|ㄧㄞ ㄧㄢ ㄩㄢ', [2, 'iæi iɛn yɛn', 'iai ian yan']], // 完 ['ㄨㄣ|舌冠聲母後的ㄨㄣ讀音\n趙元任《國音新詩韻》:「ㄨㄣ」也可以一律照樣拼念作「ㄨㄜㄋ」,但是在「ㄉ,ㄊ,ㄋ,ㄌ;ㄗ,ㄘ,ㄙ」七個聲母後頭可以省去「ㄜ」音念「ㄨㄋ」', [2, 'un', 'uən']], ['喉塞|標示入聲喉塞音韻尾', true], // 完 @@ -238,15 +238,15 @@ if (選項.注音符號 !== true && 選項.ㄬㄭ === 'ȵ ɿ ʅ') { } // 音標風格 +if (選項.注音符號 !== true && 選項.ㄚ === 'iæi iɛn yɛn') 韻母 = { iai: 'iæi', ian: 'iɛn', yan: 'yɛn' }[韻母] || 韻母; // ㄚ +if (選項.注音符號 !== true && 韻母 === 'uən') 韻母 = 選項.ㄨㄣ; // ㄨㄣ元音 +if (選項.注音符號 !== true && 選項.喉塞 !== true && is`入聲`) 韻母 = 韻母.slice(0, -1); // 喉塞音韻尾 if (選項.注音符號 !== true && 選項.介音 === '半元音' && !聲母) { // 介音 if (韻母[0] === 'i') 聲母 = 'j'; if (韻母[0] === 'u') 聲母 = 'w'; if (韻母[0] === 'y') 聲母 = 'ɥ'; if (聲母 && 韻母[1] && !['n', 'ŋ', 'ʔ'].includes(韻母[1])) 韻母 = 韻母.slice(1); } -if (選項.注音符號 !== true && 選項.ㄚ === 'iæi iɛn yɛn') 韻母 = { iai: 'iæi', ian: 'iɛn', yan: 'yɛn' }[韻母] || 韻母; // ㄚ -if (選項.注音符號 !== true && 韻母 === 'uən') 韻母 = 選項.ㄨㄣ; // ㄨㄣ元音 -if (選項.注音符號 !== true && 選項.喉塞 !== true && is`入聲`) 韻母 = 韻母.slice(0, -1); // 喉塞音韻尾 if (選項.注音符號 === true) 聲母 = { p: 'ㄅ', pʰ: 'ㄆ', m: 'ㄇ', f: 'ㄈ', ʋ: 'ㄪ',