prpm-dbp 0.11.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SKILL.md +4 -1
- package/package.json +1 -1
- package/src/pedoman.js +15 -0
- package/src/tukar.js +6 -0
package/SKILL.md
CHANGED
|
@@ -176,6 +176,7 @@ Ia mati secara lalai kerana ketepatannya diukur, bukan diandaikan. Diuji terhada
|
|
|
176
176
|
| `di-` | 2,435 | 92% |
|
|
177
177
|
| `se-` | 1,605 | 90% |
|
|
178
178
|
| `ke-` | 976 | 88% |
|
|
179
|
+
| `-kan` | 3,046 | 92% |
|
|
179
180
|
|
|
180
181
|
Sebahagian kegagalan itu artifak ukuran (`tamu` bukan `ta`+`mu`), jadi ketepatan sebenar lebih tinggi. Walaupun begitu, 98% tidak cukup untuk menjana ejaan secara senyap dalam alat yang seluruh tujuannya menghalang Jawi yang nampak betul tetapi salah.
|
|
181
182
|
|
|
@@ -187,7 +188,9 @@ $ npx prpm-dbp jawi nota.txt --pedoman
|
|
|
187
188
|
dijana ikut Pedoman, BELUM disahkan DBP (1): Abadinya=اباديڽ [Pedoman DBP §15.1]
|
|
188
189
|
```
|
|
189
190
|
|
|
190
|
-
Peraturan yang dilaksanakan: §13.5-13.7 (awalan `di-`, `se-`, `ke-`), §13.10 (tiga cara akhiran `-an`), §13.11 (tiga cara akhiran `-i`), §15.1 (kata ganti singkat `ku`, `mu`, `nya`).
|
|
191
|
+
Peraturan yang dilaksanakan: §13.5-13.7 (awalan `di-`, `se-`, `ke-`), §13.9 (akhiran `-kan`), §13.10 (tiga cara akhiran `-an`), §13.11 (tiga cara akhiran `-i`), §15.1 (kata ganti singkat `ku`, `mu`, `nya`).
|
|
192
|
+
|
|
193
|
+
**Awas terhadap nota panduan tidak rasmi.** Nota sekolah sering menyatakan "huruf alif ditambah semula apabila menerima imbuhan" sebagai peraturan menyeluruh. Diuji terhadap data sebenar, itu tidak benar: `suka` سوک menjadi `sukakan` سوککن dan `lukanya` لوکڽ, kedua-duanya tanpa alif. Penambahan alif berlaku bagi `-an` dan `-i` sahaja, menurut Catatan §13.10(ii) dan §13.11(i).
|
|
191
194
|
|
|
192
195
|
**Kodpoint setiap imbuhan disahkan empirik daripada dataset, bukan dibaca daripada peraturan.** Hamzah dalam akhiran ialah `ء` U+0621 berdiri sendiri, manakala dalam awalan ia `أ` U+0623 di atas alif. Peraturan bertulis tidak membezakan dua itu.
|
|
193
196
|
|
package/package.json
CHANGED
package/src/pedoman.js
CHANGED
|
@@ -185,6 +185,21 @@ export function imbuhAkhiranI(jawiDasar, rumiDasar) {
|
|
|
185
185
|
return { jawi: jawiDasar + YA, rujukan: 'Pedoman DBP §13.11(iii)' }
|
|
186
186
|
}
|
|
187
187
|
|
|
188
|
+
/**
|
|
189
|
+
* §13.9 — Akhiran -kan ditulis kaf-nun, dilekatkan terus tanpa perubahan
|
|
190
|
+
* pada kata dasar.
|
|
191
|
+
*
|
|
192
|
+
* Nota panduan sekolah sering menyatakan "huruf alif ditambah semula apabila
|
|
193
|
+
* menerima imbuhan". Itu terlalu menyeluruh: diuji terhadap data sebenar,
|
|
194
|
+
* suka سوک menjadi sukakan سوککن dan lukanya لوکڽ, tanpa alif. Penambahan
|
|
195
|
+
* alif berlaku bagi -an dan -i sahaja, menurut Catatan §13.10(ii) dan
|
|
196
|
+
* §13.11(i).
|
|
197
|
+
*/
|
|
198
|
+
export function imbuhAkhiranKan(jawiDasar) {
|
|
199
|
+
if (!jawiDasar) return null
|
|
200
|
+
return { jawi: jawiDasar + 'کن', rujukan: 'Pedoman DBP §13.9' }
|
|
201
|
+
}
|
|
202
|
+
|
|
188
203
|
/**
|
|
189
204
|
* §15.1 — Kata ganti singkat ditulis serangkai dengan kata di depannya.
|
|
190
205
|
* ku -> kaf-wau mu -> mim-wau nya -> nya
|
package/src/tukar.js
CHANGED
|
@@ -14,6 +14,7 @@ import { cariDataset, muatDataset } from './dataset.js'
|
|
|
14
14
|
import { cariNama, mungkinAkronim, mungkinNamaKhas } from './nama.js'
|
|
15
15
|
import {
|
|
16
16
|
imbuhAkhiranAn,
|
|
17
|
+
imbuhAkhiranKan,
|
|
17
18
|
imbuhAkhiranI,
|
|
18
19
|
imbuhAwalan,
|
|
19
20
|
imbuhGanti,
|
|
@@ -113,6 +114,11 @@ async function janaIkutPedoman(kata, cache, opts, gunaDataset) {
|
|
|
113
114
|
if (hasil) return hasil
|
|
114
115
|
}
|
|
115
116
|
|
|
117
|
+
if (kata.endsWith('kan') && kata.length > 5) {
|
|
118
|
+
const hasil = imbuhAkhiranKan(await ejaan(kata.slice(0, -3)))
|
|
119
|
+
if (hasil) return hasil
|
|
120
|
+
}
|
|
121
|
+
|
|
116
122
|
if (kata.endsWith('an') && kata.length > 4) {
|
|
117
123
|
const dasar = kata.slice(0, -2)
|
|
118
124
|
const hasil = imbuhAkhiranAn(await ejaan(dasar), dasar)
|