├── .gitignore ├── latintojavanese.pyc ├── Pipfile ├── ABRMS-License.md ├── README.md ├── listlink.json ├── terjemah.txt ├── kamus.json ├── Pipfile.lock ├── sengkalan.py └── latintojavanese.py /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /latintojavanese.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lantip/sengkalan/HEAD/latintojavanese.pyc -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | url = "https://pypi.org/simple" 3 | verify_ssl = true 4 | name = "pypi" 5 | 6 | [packages] 7 | requests = "*" 8 | polyglot = "*" 9 | ipython = "*" 10 | convertdate = "*" 11 | 12 | [dev-packages] 13 | 14 | [requires] 15 | python_version = "3.8.9" 16 | -------------------------------------------------------------------------------- /ABRMS-License.md: -------------------------------------------------------------------------------- 1 | The "Anyone But Richard M Stallman" License 2 | =========================================== 3 | 4 | This software is licensed under the "Anyone But Richard M Stallman" 5 | (ABRMS) license, described below. No other licenses may apply. 6 | 7 | Do anything you want with this program, with the exceptions listed 8 | below under "EXCEPTIONS". 9 | 10 | >THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTY OF ANY KIND. 11 | 12 | In the unlikely event that you happen to make a zillion bucks off of 13 | this, then good for you; consider buying a homeless person a meal. 14 | 15 | 16 | >**Exception** 17 | > 18 | >Richard M Stallman (the guy behind GNU, etc.) may not make use of or 19 | redistribute this program or any of its derivatives. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Sengkalan Generator 2 | === 3 | Sengkalan atau Candra Sengkala adalah cara orang Jawa "menyembunyikan" atau mengubah angka tahun menjadi kalimat. 4 | Contohnya adalah tahun runtuhnya kerajaan Majapahit, didapat dari candra sengkala "Sirna Ilang Kertaning Bumi". 5 | 6 | 7 | Bagaimana Cara Kerjanya? 8 | --- 9 | Untuk menyusun Candra Sengkala, langkah yang harus dilakukan adalah: 10 | 1. Membalik urutan angka tahun. Jadi, semisal tahun 2019, maka dibalik menjadi 9102 11 | 2. Menggganti masing-masing angka dengan kata yang memiliki watak angka tersebut. 12 | 3. Menggabungkan kembali kata-kata tadi, sehingga didapat kalimat yang memiliki makna tersendiri. 13 | 14 | Requirements 15 | --- 16 | - Python 3 17 | 18 | Installation 19 | --- 20 | - `git clone https://github.com/lantip/sengkalan.git` 21 | - `cd sengkalan` 22 | - If you have `pipenv` in your python package, simply run `pipenv install` 23 | - If you don't have `pipenv`, just use the script rightaway. 24 | 25 | Usage 26 | --- 27 | 28 | Untuk membuat sengkalan, masukkan angka tahun. Hasilnya akan didapat 3 pilihan kalimat. 29 | $ python sengkalan.py -t 2019 30 | 31 | Thanks To 32 | --- 33 | - Mas Bekel Setya Amrih Prasaja -- atas requestnya hehe 34 | 35 | TO DO 36 | --- 37 | - memakai word embeddings Bahasa Jawa untuk mendapatkan nearest neighbor tiap kata. -------------------------------------------------------------------------------- /listlink.json: -------------------------------------------------------------------------------- 1 | ["https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/781-bausastra-jawa-poerwadarminta-1939-75-bagian-01-a", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/782-bausastra-jawa-poerwadarminta-1939-75-bagian-02-b", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/783-bausastra-jawa-poerwadarminta-1939-75-bagian-03-kh", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/784-bausastra-jawa-poerwadarminta-1939-75-bagian-04-d", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/785-bausastra-jawa-poerwadarminta-1939-75-bagian-05-j", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/786-bausastra-jawa-poerwadarminta-1939-75-bagian-06-dh", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/787-bausastra-jawa-poerwadarminta-1939-75-bagian-07-e", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/788-bausastra-jawa-poerwadarminta-1939-75-bagian-08-e", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/789-bausastra-jawa-poerwadarminta-1939-75-bagian-09-g", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/790-bausastra-jawa-poerwadarminta-1939-75-bagian-10-h", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/791-bausastra-jawa-poerwadarminta-1939-75-bagian-11-i", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/792-bausastra-jawa-poerwadarminta-1939-75-bagian-12-y", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/793-bausastra-jawa-poerwadarminta-1939-75-bagian-13-k", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/794-bausastra-jawa-poerwadarminta-1939-75-bagian-14-l", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/795-bausastra-jawa-poerwadarminta-1939-75-bagian-15-m", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/796-bausastra-jawa-poerwadarminta-1939-75-bagian-16-n", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/797-bausastra-jawa-poerwadarminta-1939-75-bagian-17-ny", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/798-bausastra-jawa-poerwadarminta-1939-75-bagian-18-ng", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/799-bausastra-jawa-poerwadarminta-1939-75-bagian-19-u", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/800-bausastra-jawa-poerwadarminta-1939-75-bagian-20-o", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/801-bausastra-jawa-poerwadarminta-1939-75-bagian-21-p", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/802-bausastra-jawa-poerwadarminta-1939-75-bagian-22-r", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/803-bausastra-jawa-poerwadarminta-1939-75-bagian-23-s", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/804-bausastra-jawa-poerwadarminta-1939-75-bagian-24-t", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/805-bausastra-jawa-poerwadarminta-1939-75-bagian-25-c", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/806-bausastra-jawa-poerwadarminta-1939-75-bagian-26-th", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/807-bausastra-jawa-poerwadarminta-1939-75-bagian-27-w", "https://www.sastra.org/bahasa-dan-budaya/kamus-dan-leksikon/808-bausastra-jawa-poerwadarminta-1939-75-bagian-28-z"] -------------------------------------------------------------------------------- /terjemah.txt: -------------------------------------------------------------------------------- 1 | Tunggal : Berkumpul, Satu 2 | Gusti : Raja, Ratu, Allah 3 | Sujanma : orang baik, manusia terpelajar 4 | Semedi : bertapa, berkhalwat 5 | Badan : raga 6 | Nabi : nabiyullah, pusar 7 | Rupa : jenis 8 | Maha : lebih, sangat,sengaja 9 | Budha : sang Budha Gautama, Budi 10 | Niyata : nyata, benar-benar 11 | Luwih : lebih, luar biasa 12 | Pamase : raja 13 | Wong : orang, manusia 14 | Buweng : bulatan, lingkaran 15 | Rat : dunia, alam semesta 16 | Lek : hari pertama, bulan 17 | Iku : itu, ekor 18 | Surya : matahari 19 | Candra : bulan 20 | Kartika : bintang 21 | Urip : hidup 22 | Ron : daun 23 | Eka : Satu 24 | Prabu : raja, bertanggungjawab, pantas 25 | Kenya : gadis 26 | Nekung : bertapa 27 | Raja : raja 28 | Putra : anak 29 | Sasa : bintang, cepat 30 | Dhara : bintang, gadis, perut. 31 | Peksi : burung 32 | Dara : merpati, perut 33 | Tyas : hati, perasaan 34 | Wungkul : utuh, lengkap 35 | Sudira : berani 36 | Wani : mau, berani 37 | Hyang : dewa, Allah, Tuhan 38 | Budi : pikiran, pemikiran 39 | Jagat : alam semesta, dunia, bumi 40 | Nata : raja. 41 | Asta : tangan, memegang 42 | Kalih, ro : dua 43 | Nembah : menyembah 44 | Ngabekti : berbakti 45 | Netra : mata 46 | Kembar : sama sepasang, rangkap 47 | Myat, : melihat 48 | Mandeng : memandang, menatap, mulat 49 | Nayana : air muka, mata 50 | Swiwi : sayap 51 | Lar : bulu, sayap 52 | Sikara : pengacauan, tangan, campur tangan. 53 | Dresthi : alis, khianat, ingkar janji 54 | Dwi : dua 55 | Kanthi : dengan, rangkai, teman 56 | Buja : makanan 57 | Bujana : hidangan, suguhan. 58 | Gandheng : rangkai, sambung 59 | Paksa : harus 60 | Apasang : memasang, sepasang 61 | Sungu : tandhuk 62 | Athi-athi : bulu/rambut pada pelipis 63 | Talingan : telinga 64 | Bahni : api 65 | Ujwala : sinar, nyala, cahaya 66 | Kaeksi : tampak, kelihatan,terlihat 67 | Katon : tampak, kelihatan,terlihat 68 | Murub : berkobar 69 | Dahana : api 70 | Payudan : peperangan 71 | Katingalan : tampak, kelihatan 72 | Kaya : seperti, penghasilan 73 | Benter : panas 74 | Nala : hati, api 75 | Uninga : mengetahui, obor 76 | Kawruh : pengetahuan 77 | Lir : seperti 78 | Wrin : mengetahui 79 | Weda : pegangan pokok, ajaran,ilmu 80 | Naut : menyahut, menjawab 81 | Nauti : cacing, menjawab, mengulangi 82 | Teken : tongkat 83 | Siking : upet ( pematik ), tongkat 84 | Pawaka : api 85 | Kukus : asap, uap 86 | Api : api 87 | Apyu : api 88 | Brama : api 89 | Rana : perang, tirai, penyekat, perempuan 90 | Rananggana : peperangan, medan perang 91 | Utawaka : api 92 | Uta : lintah 93 | Ujel : belut 94 | Kobar : terbakar, menyala 95 | Agni : api 96 | Wignya : dapat, pandai 97 | Guna : luar biasa, dapat, manfaat, tipu. 98 | Tri : tiga 99 | Jatha : rambut lengket, taring, wadah. 100 | Catur : bicara, pembicaraan, empat 101 | Warna : gubahan puisi, syair, air, bangsa, 102 | Wahana : kendaraan, uraian, arti, makna 103 | Pat : empat 104 | Warih : air 105 | Waudadi : laut 106 | Dadya : menjadi, jadi, jadilah 107 | Keblat : kiblat, penjuru mata angin. 108 | Papat : empat 109 | Toya : air 110 | Suci : bersih, suci, jernih 111 | Udaka : air 112 | We : air 113 | Woh : buah, hujan 114 | Nadi : sungai, laut 115 | Jaladri : laut 116 | Sindu : air 117 | Yoga : anak, sebaiknya, jaman 118 | Gawe : buat, membuat, perbuatan. 119 | Tlaga : danau, telaga 120 | Her : air 121 | Wening : jernih 122 | Udan : hujan 123 | Bun : embun, kabut tipis 124 | Tirta : air 125 | Marta : jernih, dingin 126 | Karya : membuat, perbuatan, buatan 127 | Sumber : sumur, mata air, asal sesuatu 128 | Sumur : sumur, perigi 129 | Masuh : membasuh 130 | Marna : berkata, menggubah puisi 131 | Karti : membuat, perbuatan, buatan 132 | Karta : makmur, sejahtera, kecukupan. 133 | Jalanidhi : laut 134 | Samodra : samudera 135 | Udaya : laut 136 | Tasik : bedak, laut 137 | Tawa : tawar, tawar terhadap bisa, menawarkan 138 | Segara : laut 139 | Wedang : air yang telah mendidih. 140 | Pandhawa : anak-anak Pandudewanata 141 | Lima : lima 142 | Wisikan : bisikan, sebutan, terbaring 143 | Gati : aturan, keperluan, perbuatan, ulah 144 | Indri : angin yang bertiup lembut. 145 | Indriya : hati, perasaan, pancaindera. 146 | Warastra : barang tajam, panah 147 | Wrayang : panah 148 | Astra : senjata, panah. 149 | Lungid : tajam, runcing 150 | Sara : senjata, panah 151 | Sare : tidur 152 | Guling : tidur, berguling 153 | Raseksa : raksasa 154 | Diyu : diyu 155 | Buta : raksasa 156 | Galak : galak, ganas 157 | Wil : anak raksasa 158 | Yaksa : raksasa 159 | Yaksi : raksasa betina 160 | Saya : makin, tipuan, alat, perkakas 161 | Bana : hutan, panah 162 | Jemparing : panah 163 | Cakra : panah bermata roda, renung 164 | Hru : panah 165 | Tata : atur, angin, cara 166 | Nata : mengatur, memuat 167 | Bayu : urat, otot, angin. 168 | Bajra : senjata, angin 169 | Samirana : angin 170 | Pawaka : angin 171 | Maruta : angin 172 | Angin : angin 173 | Panca : lima 174 | Marga : jalan 175 | Margana : panah, Arjuna. 176 | Rasa : rasa, perasaan 177 | Nenem : enam 178 | Rinaras : mapantas-pantaskan, dirasakan, diselaraskan 179 | Artati : manis, syair lagu Dandanggula. 180 | Lona : pedhas 181 | Tikta : pahit 182 | Madura : manis 183 | Sarkara : gula, manis. 184 | Amla : masam 185 | Kayasa : rasa sepet 186 | Karaseng : terasa oleh ( terasa pada ) 187 | Hoyag : bergerak, gerak, goyang 188 | Obah : bergerak 189 | Nem : enam 190 | Kayu : kayu, batang pohon. 191 | Wreksa : kayu, batang kayu, pohon. 192 | Glinggang : tebangan pohon 193 | Prabatang : kayu rebah, pohon tumbang 194 | Oyig : bergerak, bergoyang 195 | Sad : enam 196 | Anggas : belalang, tebangan pohon 197 | Anggang-anggang: serangga mengapung di atas air. 198 | Mangsa : waktu, makan ( untuk binatang buas ) 199 | Naya : air muka, musim keenam. 200 | Retu : pahit, huru-hara, kekacauan 201 | Wayang : wayang, bergerak, gerak 202 | Winayang : digerakkan 203 | Anggana : sendiri, lebah 204 | Ilat : lidah 205 | Kilatan : kilat 206 | Lidhah : lidah, kilat 207 | Lindhu : gempa 208 | Carem : puas, senggama 209 | Manis : manis, bagus, baik, perempuan 210 | Tahen : kayu, menahan, menderita 211 | Osik : bergerak, tergerak hatinya 212 | Karengnya : terdengar, didengarkan 213 | Sapta : tujuh 214 | Prawata : gunung 215 | Acala : gunung 216 | Giri : gunung, luar biasa, sangat 217 | Ardi : gunung 218 | Gora : lebah, gunung 219 | Prabata : gunung 220 | Himawan : gunung 221 | Pandhita : pendeta, pertapa 222 | Pitu : tujuh 223 | Kaswareng : terkenal, tersebut 224 | Resi : pendeta, orang suci 225 | Sogata : hidangan, guru, pendeta 226 | Wiku : pendeta 227 | Yogi : sebaiknya, baik, pendeta. 228 | Swara : suara, bunyi 229 | Dwija : guru, pendeta 230 | Suyati : pendeta sakti, pendeta pandai 231 | Wulang : nasihat, petunjuk, pelajaran 232 | Weling : pesan 233 | Wasita : nasihat, petunjuk, pelajaran 234 | Tunggang : naik, menaiki, menunggang 235 | Turangga : kuda 236 | Gung : besar 237 | Swa : kuda 238 | Aswa : kuda 239 | Titihan : kuda, kendaraan, tunggangan 240 | Kuda : kuda 241 | Ajar : pendeta, pelajaran, ajaran 242 | Arga : gunung, harga 243 | Sabda : berbicara, suara, bersabda 244 | Nabda : berbicara, bersuara, bertitah 245 | Angsa : angsa, keturunan, terlanjur 246 | Muni : berbunyi, berbicara, pendeta 247 | Suka : Gembira, memberi 248 | Biksu : sapi, pendeta 249 | Biksuka : sapi, pendeta 250 | Astha : delapan 251 | Basu : kokek, ular, delapan dewa 252 | Anggusti : membicarakan, merundingkan 253 | Basuki : selamat, raja ular 254 | Slira : tubuh 255 | Murti : sangat 256 | Bujangga : pujangga, ular besar 257 | Manggala : pemuka, pemimpin, pembesar, gajah. 258 | Taksaka : ular besar, naga 259 | Menyawak : biawak 260 | Tekek : tokek 261 | Dwipa : gajah 262 | Dwipangga : gajah 263 | Bajul : buaya 264 | Gajah : gajah 265 | Liman : gajah 266 | Dwirada : gajah 267 | Dirada : gajah 268 | Esthi : gajah, pemikiran, kehendak, perasaan 269 | Estha : kehendak 270 | Matengga : menunggu, menantikan, gajah 271 | Brahma : api, brahmana 272 | Brahmana : brahmana 273 | Wewolu : delapan, sebanyak delapan 274 | Baya : halangan, buaya, barangkali, janji 275 | Bebaya : halangan, bahaya 276 | Kunjara : penjara, gajah 277 | Tanu : bunglon 278 | Sarpa : ular 279 | Samaja : gajah 280 | Madya : tengah, sedang,cukup, pinggang 281 | Mangesti : berniat, memikirkan, merenungkan 282 | Panagan : sarang naga, hitungan jalan naga 283 | Ula : ular 284 | Naga : ular besar. 285 | Bolong : berlubang, tembus 286 | Nawa : sembilan, menawar 287 | Dwara : pintu, gerbang 288 | Pintu : pintu 289 | Kori : pintu 290 | Bedah : terbelah 291 | Lawang : pintu 292 | Wiwara : liang, pintu 293 | Gapura : gerbang 294 | Rong : berlubang, liang sarang binatang, rongga 295 | Song : lubang, liang sarang binatang 296 | Wilasita : liang, liang kumbang 297 | Angleng : jelas pada pendengaran, masuk liang. 298 | Trustha : gembira, puas, berlubang tembus 299 | Trusthi : berlubang tembus 300 | Trus : terpenuhi, bocor, langsung tembus 301 | Butul : berlubang, tembus 302 | Dewa : dewa 303 | Sanga : sembilan 304 | Wadana : muka, wajah 305 | Jawata : dewa-dewa 306 | Manjing : masuk 307 | Arum : harum, cantik, perempuan 308 | Ganda : bau 309 | Kusuma : bunga, perempuan, terhormat 310 | Muka : wajah, depan 311 | Rudra : galak, marah 312 | Masuk : memasuki 313 | Rago : gua, halangan 314 | Angrong : masuk ke dalam liang 315 | Guwa : gua 316 | Menga : terbuka 317 | Babahan : lubang, galian jalan pencuri 318 | Leng : liang 319 | Ambuka : membuka, menyingkap 320 | Gatra : macam, warna, gambar, tiruan 321 | Anggangsir : membuat lubang untuk mencuri. 322 | Nanda : bicara, bersuara, musim kesembilan 323 | Wangi : harum 324 | Byoma : langit 325 | Musna : hilang, lenyap 326 | Nis : hilang, pergi 327 | Mletik : terpercik, meloncat, melesat 328 | Langit : langit 329 | Sirna : hilang, habis 330 | Ilang : hilang 331 | Kombul : terangkat, terapung, terkenal 332 | Awang-awang : angkasa 333 | Mesat : pergi, menghindar, melesat 334 | Muluk : melambung, terangkat, naik 335 | Gegana : angkasa, langit 336 | Ngles : menghindar, pergi menjauh 337 | Tumenga : menengadah, melihat ke atas 338 | Nenga : menengadah, melihat ke atas 339 | Luhur : tinggi, di atas, agung, mulia 340 | Suwung : kosong 341 | Sonya : sepi, pertapaan 342 | Muksa : moksa, hilang, menghilang 343 | Doh : jauh 344 | Tebih : jauh 345 | Swarga : surga, kahyangan 346 | Tanpa : tanpa 347 | Barakan : ternak curian, berkata, sebaya 348 | Tan : tidak 349 | Rusak : rusak 350 | Brastha : rusak, lenyap, lebur, hancur 351 | Swuh : rusak, lenyap, lebur, hancur, sepi 352 | Walang : belalang, khawatir 353 | Kos : angkasa, bersinar 354 | Pejah : mati 355 | Akasa : langit, angkasa 356 | Tawang : langit, angkasa 357 | Wiyat : langit, angkasa 358 | Oncat : pergi, naik, menghindar, lari 359 | Windu : basi, sangat, hitungan delapan tahu 360 | Widik-widik : langit, angkasa, segan-segan 361 | Nir : hilang, rusak, habis, tiada 362 | Wuk : rusak, busuk, tak jadi, urung 363 | Sat : kering, kering air 364 | Surud : berkurang, tinggal, meninggal 365 | Sempal : terbabat, patah 366 | -------------------------------------------------------------------------------- /kamus.json: -------------------------------------------------------------------------------- 1 | { 2 | "tunggal": "Berkumpul, Satu", 3 | "gusti": "Raja, Ratu, Allah", 4 | "sujanma": "orang baik, manusia terpelajar", 5 | "semedi": "bertapa, berkhalwat", 6 | "badan": "raga", 7 | "nabi": "nabiyullah, pusar", 8 | "rupa": "jenis", 9 | "maha": "lebih, sangat,sengaja", 10 | "budha": "sang Budha Gautama, Budi", 11 | "niyata": "nyata, benar-benar", 12 | "luwih": "lebih, luar biasa", 13 | "pamase": "raja", 14 | "wong": "orang, manusia", 15 | "buweng": "bulatan, lingkaran", 16 | "rat": "dunia, alam semesta", 17 | "lek": "hari pertama, bulan", 18 | "iku": "itu, ekor", 19 | "surya": "matahari", 20 | "candra": "bulan", 21 | "kartika": "bintang", 22 | "urip": "hidup", 23 | "ron": "daun", 24 | "eka": "Satu", 25 | "prabu": "raja, bertanggungjawab, pantas", 26 | "kenya": "gadis", 27 | "nekung": "bertapa", 28 | "raja": "raja", 29 | "putra": "anak", 30 | "sasa": "bintang, cepat", 31 | "dhara": "bintang, gadis, perut.", 32 | "peksi": "burung", 33 | "dara": "merpati, perut", 34 | "tyas": "hati, perasaan", 35 | "wungkul": "utuh, lengkap", 36 | "sudira": "berani", 37 | "wani": "mau, berani", 38 | "hyang": "dewa, Allah, Tuhan", 39 | "budi": "pikiran, pemikiran", 40 | "jagat": "alam semesta, dunia, bumi", 41 | "nata": "mengatur, memuat", 42 | "asta": "tangan, memegang", 43 | "kalih, ro": "dua", 44 | "nembah": "menyembah", 45 | "ngabekti": "berbakti", 46 | "netra": "mata", 47 | "kembar": "sama sepasang, rangkap", 48 | "myat,": "melihat", 49 | "mandeng": "memandang, menatap, mulat", 50 | "nayana": "air muka, mata", 51 | "swiwi": "sayap", 52 | "lar": "bulu, sayap", 53 | "sikara": "pengacauan, tangan, campur tangan.", 54 | "dresthi": "alis, khianat, ingkar janji", 55 | "dwi": "dua", 56 | "kanthi": "dengan, rangkai, teman", 57 | "buja": "makanan", 58 | "bujana": "hidangan, suguhan.", 59 | "gandheng": "rangkai, sambung", 60 | "paksa": "harus", 61 | "apasang": "memasang, sepasang", 62 | "sungu": "tandhuk", 63 | "athi-athi": "bulu/rambut pada pelipis", 64 | "talingan": "telinga", 65 | "bahni": "api", 66 | "ujwala": "sinar, nyala, cahaya", 67 | "kaeksi": "tampak, kelihatan,terlihat", 68 | "katon": "tampak, kelihatan,terlihat", 69 | "murub": "berkobar", 70 | "dahana": "api", 71 | "payudan": "peperangan", 72 | "katingalan": "tampak, kelihatan", 73 | "kaya": "seperti, penghasilan", 74 | "benter": "panas", 75 | "nala": "hati, api", 76 | "uninga": "mengetahui, obor", 77 | "kawruh": "pengetahuan", 78 | "lir": "seperti", 79 | "wrin": "mengetahui", 80 | "weda": "pegangan pokok, ajaran,ilmu", 81 | "naut": "menyahut, menjawab", 82 | "nauti": "cacing, menjawab, mengulangi", 83 | "teken": "tongkat", 84 | "siking": "upet ( pematik ), tongkat", 85 | "pawaka": "angin", 86 | "kukus": "asap, uap", 87 | "api": "api", 88 | "apyu": "api", 89 | "brama": "api", 90 | "rana": "perang, tirai, penyekat, perempuan", 91 | "rananggana": "peperangan, medan perang", 92 | "utawaka": "api", 93 | "uta": "lintah", 94 | "ujel": "belut", 95 | "kobar": "terbakar, menyala", 96 | "agni": "api", 97 | "wignya": "dapat, pandai", 98 | "guna": "luar biasa, dapat, manfaat, tipu.", 99 | "tri": "tiga", 100 | "jatha": "rambut lengket, taring, wadah.", 101 | "catur": "bicara, pembicaraan, empat", 102 | "warna": "gubahan puisi, syair, air, bangsa,", 103 | "wahana": "kendaraan, uraian, arti, makna", 104 | "pat": "empat", 105 | "warih": "air", 106 | "waudadi": "laut", 107 | "dadya": "menjadi, jadi, jadilah", 108 | "keblat": "kiblat, penjuru mata angin.", 109 | "papat": "empat", 110 | "toya": "air", 111 | "suci": "bersih, suci, jernih", 112 | "udaka": "air", 113 | "we": "air", 114 | "woh": "buah, hujan", 115 | "nadi": "sungai, laut", 116 | "jaladri": "laut", 117 | "sindu": "air", 118 | "yoga": "anak, sebaiknya, jaman", 119 | "gawe": "buat, membuat, perbuatan.", 120 | "tlaga": "danau, telaga", 121 | "her": "air", 122 | "wening": "jernih", 123 | "udan": "hujan", 124 | "bun": "embun, kabut tipis", 125 | "tirta": "air", 126 | "marta": "jernih, dingin", 127 | "karya": "membuat, perbuatan, buatan", 128 | "sumber": "sumur, mata air, asal sesuatu", 129 | "sumur": "sumur, perigi", 130 | "masuh": "membasuh", 131 | "marna": "berkata, menggubah puisi", 132 | "karti": "membuat, perbuatan, buatan", 133 | "karta": "makmur, sejahtera, kecukupan.", 134 | "jalanidhi": "laut", 135 | "samodra": "samudera", 136 | "udaya": "laut", 137 | "tasik": "bedak, laut", 138 | "tawa": "tawar, tawar terhadap bisa, menawarkan", 139 | "segara": "laut", 140 | "wedang": "air yang telah mendidih.", 141 | "pandhawa": "anak-anak Pandudewanata", 142 | "lima": "lima", 143 | "wisikan": "bisikan, sebutan, terbaring", 144 | "gati": "aturan, keperluan, perbuatan, ulah", 145 | "indri": "angin yang bertiup lembut.", 146 | "indriya": "hati, perasaan, pancaindera.", 147 | "warastra": "barang tajam, panah", 148 | "wrayang": "panah", 149 | "astra": "senjata, panah.", 150 | "lungid": "tajam, runcing", 151 | "sara": "senjata, panah", 152 | "sare": "tidur", 153 | "guling": "tidur, berguling", 154 | "raseksa": "raksasa", 155 | "diyu": "diyu", 156 | "buta": "raksasa", 157 | "galak": "galak, ganas", 158 | "wil": "anak raksasa", 159 | "yaksa": "raksasa", 160 | "yaksi": "raksasa betina", 161 | "saya": "makin, tipuan, alat, perkakas", 162 | "bana": "hutan, panah", 163 | "jemparing": "panah", 164 | "cakra": "panah bermata roda, renung", 165 | "hru": "panah", 166 | "tata": "atur, angin, cara", 167 | "bayu": "urat, otot, angin.", 168 | "bajra": "senjata, angin", 169 | "samirana": "angin", 170 | "maruta": "angin", 171 | "angin": "angin", 172 | "panca": "lima", 173 | "marga": "jalan", 174 | "margana": "panah, Arjuna.", 175 | "rasa": "rasa, perasaan", 176 | "nenem": "enam", 177 | "rinaras": "mapantas-pantaskan, dirasakan, diselaraskan", 178 | "artati": "manis, syair lagu Dandanggula.", 179 | "lona": "pedhas", 180 | "tikta": "pahit", 181 | "madura": "manis", 182 | "sarkara": "gula, manis.", 183 | "amla": "masam", 184 | "kayasa": "rasa sepet", 185 | "karaseng": "terasa oleh ( terasa pada )", 186 | "hoyag": "bergerak, gerak, goyang", 187 | "obah": "bergerak", 188 | "nem": "enam", 189 | "kayu": "kayu, batang pohon.", 190 | "wreksa": "kayu, batang kayu, pohon.", 191 | "glinggang": "tebangan pohon", 192 | "prabatang": "kayu rebah, pohon tumbang", 193 | "oyig": "bergerak, bergoyang", 194 | "sad": "enam", 195 | "anggas": "belalang, tebangan pohon", 196 | "anggang-anggang": "serangga mengapung di atas air.", 197 | "mangsa": "waktu, makan ( untuk binatang buas )", 198 | "naya": "air muka, musim keenam.", 199 | "retu": "pahit, huru-hara, kekacauan", 200 | "wayang": "wayang, bergerak, gerak", 201 | "winayang": "digerakkan", 202 | "anggana": "sendiri, lebah", 203 | "ilat": "lidah", 204 | "kilatan": "kilat", 205 | "lidhah": "lidah, kilat", 206 | "lindhu": "gempa", 207 | "carem": "puas, senggama", 208 | "manis": "manis, bagus, baik, perempuan", 209 | "tahen": "kayu, menahan, menderita", 210 | "osik": "bergerak, tergerak hatinya", 211 | "karengnya": "terdengar, didengarkan", 212 | "sapta": "tujuh", 213 | "prawata": "gunung", 214 | "acala": "gunung", 215 | "giri": "gunung, luar biasa, sangat", 216 | "ardi": "gunung", 217 | "gora": "lebah, gunung", 218 | "prabata": "gunung", 219 | "himawan": "gunung", 220 | "pandhita": "pendeta, pertapa", 221 | "pitu": "tujuh", 222 | "kaswareng": "terkenal, tersebut", 223 | "resi": "pendeta, orang suci", 224 | "sogata": "hidangan, guru, pendeta", 225 | "wiku": "pendeta", 226 | "yogi": "sebaiknya, baik, pendeta.", 227 | "swara": "suara, bunyi", 228 | "dwija": "guru, pendeta", 229 | "suyati": "pendeta sakti, pendeta pandai", 230 | "wulang": "nasihat, petunjuk, pelajaran", 231 | "weling": "pesan", 232 | "wasita": "nasihat, petunjuk, pelajaran", 233 | "tunggang": "naik, menaiki, menunggang", 234 | "turangga": "kuda", 235 | "gung": "besar", 236 | "swa": "kuda", 237 | "aswa": "kuda", 238 | "titihan": "kuda, kendaraan, tunggangan", 239 | "kuda": "kuda", 240 | "ajar": "pendeta, pelajaran, ajaran", 241 | "arga": "gunung, harga", 242 | "sabda": "berbicara, suara, bersabda", 243 | "nabda": "berbicara, bersuara, bertitah", 244 | "angsa": "angsa, keturunan, terlanjur", 245 | "muni": "berbunyi, berbicara, pendeta", 246 | "suka": "Gembira, memberi", 247 | "biksu": "sapi, pendeta", 248 | "biksuka": "sapi, pendeta", 249 | "astha": "delapan", 250 | "basu": "kokek, ular, delapan dewa", 251 | "anggusti": "membicarakan, merundingkan", 252 | "basuki": "selamat, raja ular", 253 | "slira": "tubuh", 254 | "murti": "sangat", 255 | "bujangga": "pujangga, ular besar", 256 | "manggala": "pemuka, pemimpin, pembesar, gajah.", 257 | "taksaka": "ular besar, naga", 258 | "menyawak": "biawak", 259 | "tekek": "tokek", 260 | "dwipa": "gajah", 261 | "dwipangga": "gajah", 262 | "bajul": "buaya", 263 | "gajah": "gajah", 264 | "liman": "gajah", 265 | "dwirada": "gajah", 266 | "dirada": "gajah", 267 | "esthi": "gajah, pemikiran, kehendak, perasaan", 268 | "estha": "kehendak", 269 | "matengga": "menunggu, menantikan, gajah", 270 | "brahma": "api, brahmana", 271 | "brahmana": "brahmana", 272 | "wewolu": "delapan, sebanyak delapan", 273 | "baya": "halangan, buaya, barangkali, janji", 274 | "bebaya": "halangan, bahaya", 275 | "kunjara": "penjara, gajah", 276 | "tanu": "bunglon", 277 | "sarpa": "ular", 278 | "samaja": "gajah", 279 | "madya": "tengah, sedang,cukup, pinggang", 280 | "mangesti": "berniat, memikirkan, merenungkan", 281 | "panagan": "sarang naga, hitungan jalan naga", 282 | "ula": "ular", 283 | "naga": "ular besar.", 284 | "bolong": "berlubang, tembus", 285 | "nawa": "sembilan, menawar", 286 | "dwara": "pintu, gerbang", 287 | "pintu": "pintu", 288 | "kori": "pintu", 289 | "bedah": "terbelah", 290 | "lawang": "pintu", 291 | "wiwara": "liang, pintu", 292 | "gapura": "gerbang", 293 | "rong": "berlubang, liang sarang binatang, rongga", 294 | "song": "lubang, liang sarang binatang", 295 | "wilasita": "liang, liang kumbang", 296 | "angleng": "jelas pada pendengaran, masuk liang.", 297 | "trustha": "gembira, puas, berlubang tembus", 298 | "trusthi": "berlubang tembus", 299 | "trus": "terpenuhi, bocor, langsung tembus", 300 | "butul": "berlubang, tembus", 301 | "dewa": "dewa", 302 | "sanga": "sembilan", 303 | "wadana": "muka, wajah", 304 | "jawata": "dewa-dewa", 305 | "manjing": "masuk", 306 | "arum": "harum, cantik, perempuan", 307 | "ganda": "bau", 308 | "kusuma": "bunga, perempuan, terhormat", 309 | "muka": "wajah, depan", 310 | "rudra": "galak, marah", 311 | "masuk": "memasuki", 312 | "rago": "gua, halangan", 313 | "angrong": "masuk ke dalam liang", 314 | "guwa": "gua", 315 | "menga": "terbuka", 316 | "babahan": "lubang, galian jalan pencuri", 317 | "leng": "liang", 318 | "ambuka": "membuka, menyingkap", 319 | "gatra": "macam, warna, gambar, tiruan", 320 | "anggangsir": "membuat lubang untuk mencuri.", 321 | "nanda": "bicara, bersuara, musim kesembilan", 322 | "wangi": "harum", 323 | "byoma": "langit", 324 | "musna": "hilang, lenyap", 325 | "nis": "hilang, pergi", 326 | "mletik": "terpercik, meloncat, melesat", 327 | "langit": "langit", 328 | "sirna": "hilang, habis", 329 | "ilang": "hilang", 330 | "kombul": "terangkat, terapung, terkenal", 331 | "awang-awang": "angkasa", 332 | "mesat": "pergi, menghindar, melesat", 333 | "muluk": "melambung, terangkat, naik", 334 | "gegana": "angkasa, langit", 335 | "ngles": "menghindar, pergi menjauh", 336 | "tumenga": "menengadah, melihat ke atas", 337 | "nenga": "menengadah, melihat ke atas", 338 | "luhur": "tinggi, di atas, agung, mulia", 339 | "suwung": "kosong", 340 | "sonya": "sepi, pertapaan", 341 | "muksa": "moksa, hilang, menghilang", 342 | "doh": "jauh", 343 | "tebih": "jauh", 344 | "swarga": "surga, kahyangan", 345 | "tanpa": "tanpa", 346 | "barakan": "ternak curian, berkata, sebaya", 347 | "tan": "tidak", 348 | "rusak": "rusak", 349 | "brastha": "rusak, lenyap, lebur, hancur", 350 | "swuh": "rusak, lenyap, lebur, hancur, sepi", 351 | "walang": "belalang, khawatir", 352 | "kos": "angkasa, bersinar", 353 | "pejah": "mati", 354 | "akasa": "langit, angkasa", 355 | "tawang": "langit, angkasa", 356 | "wiyat": "langit, angkasa", 357 | "oncat": "pergi, naik, menghindar, lari", 358 | "windu": "basi, sangat, hitungan delapan tahu", 359 | "widik-widik": "langit, angkasa, segan-segan", 360 | "nir": "hilang, rusak, habis, tiada", 361 | "wuk": "rusak, busuk, tak jadi, urung", 362 | "sat": "kering, kering air", 363 | "surud": "berkurang, tinggal, meninggal", 364 | "sempal": "terbabat, patah" 365 | } -------------------------------------------------------------------------------- /Pipfile.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_meta": { 3 | "hash": { 4 | "sha256": "03a78e203e1afed09dbc14acc805ae5078841989de7466b8b30e172e568c567c" 5 | }, 6 | "pipfile-spec": 6, 7 | "requires": { 8 | "python_version": "3.8.9" 9 | }, 10 | "sources": [ 11 | { 12 | "name": "pypi", 13 | "url": "https://pypi.org/simple", 14 | "verify_ssl": true 15 | } 16 | ] 17 | }, 18 | "default": { 19 | "appnope": { 20 | "hashes": [ 21 | "sha256:93aa393e9d6c54c5cd570ccadd8edad61ea0c4b9ea7a01409020c9aa019eb442", 22 | "sha256:dd83cd4b5b460958838f6eb3000c660b1f9caf2a5b1de4264e941512f603258a" 23 | ], 24 | "markers": "sys_platform == 'darwin'", 25 | "version": "==0.1.2" 26 | }, 27 | "asttokens": { 28 | "hashes": [ 29 | "sha256:0844691e88552595a6f4a4281a9f7f79b8dd45ca4ccea82e5e05b4bbdb76705c", 30 | "sha256:9a54c114f02c7a9480d56550932546a3f1fe71d8a02f1bc7ccd0ee3ee35cf4d5" 31 | ], 32 | "version": "==2.0.5" 33 | }, 34 | "backcall": { 35 | "hashes": [ 36 | "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e", 37 | "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255" 38 | ], 39 | "version": "==0.2.0" 40 | }, 41 | "black": { 42 | "hashes": [ 43 | "sha256:07e5c049442d7ca1a2fc273c79d1aecbbf1bc858f62e8184abe1ad175c4f7cc2", 44 | "sha256:0e21e1f1efa65a50e3960edd068b6ae6d64ad6235bd8bfea116a03b21836af71", 45 | "sha256:1297c63b9e1b96a3d0da2d85d11cd9bf8664251fd69ddac068b98dc4f34f73b6", 46 | "sha256:228b5ae2c8e3d6227e4bde5920d2fc66cc3400fde7bcc74f480cb07ef0b570d5", 47 | "sha256:2d6f331c02f0f40aa51a22e479c8209d37fcd520c77721c034517d44eecf5912", 48 | "sha256:2ff96450d3ad9ea499fc4c60e425a1439c2120cbbc1ab959ff20f7c76ec7e866", 49 | "sha256:3524739d76b6b3ed1132422bf9d82123cd1705086723bc3e235ca39fd21c667d", 50 | "sha256:35944b7100af4a985abfcaa860b06af15590deb1f392f06c8683b4381e8eeaf0", 51 | "sha256:373922fc66676133ddc3e754e4509196a8c392fec3f5ca4486673e685a421321", 52 | "sha256:5fa1db02410b1924b6749c245ab38d30621564e658297484952f3d8a39fce7e8", 53 | "sha256:6f2f01381f91c1efb1451998bd65a129b3ed6f64f79663a55fe0e9b74a5f81fd", 54 | "sha256:742ce9af3086e5bd07e58c8feb09dbb2b047b7f566eb5f5bc63fd455814979f3", 55 | "sha256:7835fee5238fc0a0baf6c9268fb816b5f5cd9b8793423a75e8cd663c48d073ba", 56 | "sha256:8871fcb4b447206904932b54b567923e5be802b9b19b744fdff092bd2f3118d0", 57 | "sha256:a7c0192d35635f6fc1174be575cb7915e92e5dd629ee79fdaf0dcfa41a80afb5", 58 | "sha256:b1a5ed73ab4c482208d20434f700d514f66ffe2840f63a6252ecc43a9bc77e8a", 59 | "sha256:c8226f50b8c34a14608b848dc23a46e5d08397d009446353dad45e04af0c8e28", 60 | "sha256:ccad888050f5393f0d6029deea2a33e5ae371fd182a697313bdbd835d3edaf9c", 61 | "sha256:dae63f2dbf82882fa3b2a3c49c32bffe144970a573cd68d247af6560fc493ae1", 62 | "sha256:e2f69158a7d120fd641d1fa9a921d898e20d52e44a74a6fbbcc570a62a6bc8ab", 63 | "sha256:efbadd9b52c060a8fc3b9658744091cb33c31f830b3f074422ed27bad2b18e8f", 64 | "sha256:f5660feab44c2e3cb24b2419b998846cbb01c23c7fe645fee45087efa3da2d61", 65 | "sha256:fdb8754b453fb15fad3f72cd9cad3e16776f0964d67cf30ebcbf10327a3777a3" 66 | ], 67 | "markers": "python_full_version >= '3.6.2'", 68 | "version": "==22.1.0" 69 | }, 70 | "certifi": { 71 | "hashes": [ 72 | "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", 73 | "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" 74 | ], 75 | "version": "==2021.10.8" 76 | }, 77 | "charset-normalizer": { 78 | "hashes": [ 79 | "sha256:2842d8f5e82a1f6aa437380934d5e1cd4fcf2003b06fed6940769c164a480a45", 80 | "sha256:98398a9d69ee80548c762ba991a4728bfc3836768ed226b3945908d1a688371c" 81 | ], 82 | "markers": "python_version >= '3'", 83 | "version": "==2.0.11" 84 | }, 85 | "click": { 86 | "hashes": [ 87 | "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3", 88 | "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b" 89 | ], 90 | "markers": "python_version >= '3.6'", 91 | "version": "==8.0.3" 92 | }, 93 | "convertdate": { 94 | "hashes": [ 95 | "sha256:770c6b2195544d3e451e230b3f1c9b121ed02680b877f896306a04cf6f26b48f", 96 | "sha256:fcffe3a67522172648cf03b0c3757cfd079726fe5ae04ce29989ad3958039e4e" 97 | ], 98 | "index": "pypi", 99 | "version": "==2.4.0" 100 | }, 101 | "decorator": { 102 | "hashes": [ 103 | "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", 104 | "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186" 105 | ], 106 | "markers": "python_version >= '3.5'", 107 | "version": "==5.1.1" 108 | }, 109 | "executing": { 110 | "hashes": [ 111 | "sha256:32fc6077b103bd19e6494a72682d66d5763cf20a106d5aa7c5ccbea4e47b0df7", 112 | "sha256:c23bf42e9a7b9b212f185b1b2c3c91feb895963378887bb10e64a2e612ec0023" 113 | ], 114 | "version": "==0.8.2" 115 | }, 116 | "idna": { 117 | "hashes": [ 118 | "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", 119 | "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" 120 | ], 121 | "markers": "python_version >= '3'", 122 | "version": "==3.3" 123 | }, 124 | "ipython": { 125 | "hashes": [ 126 | "sha256:ab564d4521ea8ceaac26c3a2c6e5ddbca15c8848fd5a5cc325f960da88d42974", 127 | "sha256:c503a0dd6ccac9c8c260b211f2dd4479c042b49636b097cc9a0d55fe62dff64c" 128 | ], 129 | "index": "pypi", 130 | "version": "==8.0.1" 131 | }, 132 | "jedi": { 133 | "hashes": [ 134 | "sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d", 135 | "sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab" 136 | ], 137 | "markers": "python_version >= '3.6'", 138 | "version": "==0.18.1" 139 | }, 140 | "matplotlib-inline": { 141 | "hashes": [ 142 | "sha256:a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee", 143 | "sha256:aed605ba3b72462d64d475a21a9296f400a19c4f74a31b59103d2a99ffd5aa5c" 144 | ], 145 | "markers": "python_version >= '3.5'", 146 | "version": "==0.1.3" 147 | }, 148 | "mypy-extensions": { 149 | "hashes": [ 150 | "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", 151 | "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" 152 | ], 153 | "version": "==0.4.3" 154 | }, 155 | "parso": { 156 | "hashes": [ 157 | "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0", 158 | "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75" 159 | ], 160 | "markers": "python_version >= '3.6'", 161 | "version": "==0.8.3" 162 | }, 163 | "pathspec": { 164 | "hashes": [ 165 | "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", 166 | "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" 167 | ], 168 | "version": "==0.9.0" 169 | }, 170 | "pexpect": { 171 | "hashes": [ 172 | "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937", 173 | "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c" 174 | ], 175 | "markers": "sys_platform != 'win32'", 176 | "version": "==4.8.0" 177 | }, 178 | "pickleshare": { 179 | "hashes": [ 180 | "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", 181 | "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56" 182 | ], 183 | "version": "==0.7.5" 184 | }, 185 | "platformdirs": { 186 | "hashes": [ 187 | "sha256:1d7385c7db91728b83efd0ca99a5afb296cab9d0ed8313a45ed8ba17967ecfca", 188 | "sha256:440633ddfebcc36264232365d7840a970e75e1018d15b4327d11f91909045fda" 189 | ], 190 | "markers": "python_version >= '3.7'", 191 | "version": "==2.4.1" 192 | }, 193 | "polyglot": { 194 | "hashes": [ 195 | "sha256:f7d9cca9a212622548e9416fb89f1238b994b8860ef49e03b7c82c67f9b6269b" 196 | ], 197 | "index": "pypi", 198 | "version": "==16.7.4" 199 | }, 200 | "prompt-toolkit": { 201 | "hashes": [ 202 | "sha256:4bcf119be2200c17ed0d518872ef922f1de336eb6d1ddbd1e089ceb6447d97c6", 203 | "sha256:a51d41a6a45fd9def54365bca8f0402c8f182f2b6f7e29c74d55faeb9fb38ac4" 204 | ], 205 | "markers": "python_full_version >= '3.6.2'", 206 | "version": "==3.0.26" 207 | }, 208 | "ptyprocess": { 209 | "hashes": [ 210 | "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", 211 | "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220" 212 | ], 213 | "version": "==0.7.0" 214 | }, 215 | "pure-eval": { 216 | "hashes": [ 217 | "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350", 218 | "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3" 219 | ], 220 | "version": "==0.2.2" 221 | }, 222 | "pygments": { 223 | "hashes": [ 224 | "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65", 225 | "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a" 226 | ], 227 | "markers": "python_version >= '3.5'", 228 | "version": "==2.11.2" 229 | }, 230 | "pymeeus": { 231 | "hashes": [ 232 | "sha256:bb9d670818d8b0594317b48a7dadea02a0594e5344263bf2054e1a011c8fed55" 233 | ], 234 | "version": "==0.5.11" 235 | }, 236 | "requests": { 237 | "hashes": [ 238 | "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61", 239 | "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d" 240 | ], 241 | "index": "pypi", 242 | "version": "==2.27.1" 243 | }, 244 | "setuptools": { 245 | "hashes": [ 246 | "sha256:4f783948909b28124388eef286572e9e69c228b6866d44ac7475bd82e94b6503", 247 | "sha256:5d7a302d3c3ae24d3bbaaecf5c4544056b2dd44b3e6690014dc096d64f12d672" 248 | ], 249 | "markers": "python_version >= '3.7'", 250 | "version": "==60.8.0" 251 | }, 252 | "six": { 253 | "hashes": [ 254 | "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", 255 | "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" 256 | ], 257 | "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", 258 | "version": "==1.16.0" 259 | }, 260 | "stack-data": { 261 | "hashes": [ 262 | "sha256:02cc0683cbc445ae4ca8c4e3a0e58cb1df59f252efb0aa016b34804a707cf9bc", 263 | "sha256:7769ed2482ce0030e00175dd1bf4ef1e873603b6ab61cd3da443b410e64e9477" 264 | ], 265 | "version": "==0.1.4" 266 | }, 267 | "tomli": { 268 | "hashes": [ 269 | "sha256:b5bde28da1fed24b9bd1d4d2b8cba62300bfb4ec9a6187a957e8ddb9434c5224", 270 | "sha256:c292c34f58502a1eb2bbb9f5bbc9a5ebc37bee10ffb8c2d6bbdfa8eb13cc14e1" 271 | ], 272 | "markers": "python_version >= '3.7'", 273 | "version": "==2.0.0" 274 | }, 275 | "traitlets": { 276 | "hashes": [ 277 | "sha256:059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7", 278 | "sha256:2d313cc50a42cd6c277e7d7dc8d4d7fedd06a2c215f78766ae7b1a66277e0033" 279 | ], 280 | "markers": "python_version >= '3.7'", 281 | "version": "==5.1.1" 282 | }, 283 | "typing-extensions": { 284 | "hashes": [ 285 | "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e", 286 | "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b" 287 | ], 288 | "markers": "python_version < '3.10'", 289 | "version": "==4.0.1" 290 | }, 291 | "urllib3": { 292 | "hashes": [ 293 | "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed", 294 | "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c" 295 | ], 296 | "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", 297 | "version": "==1.26.8" 298 | }, 299 | "wcwidth": { 300 | "hashes": [ 301 | "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784", 302 | "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" 303 | ], 304 | "version": "==0.2.5" 305 | } 306 | }, 307 | "develop": {} 308 | } 309 | -------------------------------------------------------------------------------- /sengkalan.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | #-*- coding: utf-8 -*- 3 | 4 | """ 5 | __version__ = "0.0.1" 6 | __author__ = "@lantip" 7 | __date__ = "2019/03/31" 8 | __description__ = "Sengkalan Generator" 9 | """ 10 | 11 | import random 12 | import argparse 13 | import datetime 14 | import json 15 | from latintojavanese import dotransliterate 16 | from convertdate import islamic 17 | import os 18 | dir_path = os.path.dirname(os.path.realpath(__file__)) 19 | 20 | def watak(angka): 21 | if angka == 0: 22 | choices = [ 23 | ['byoma', 'musna', 'nis', 'mlethik', 'langit'], 24 | ['sirna', 'ilang', 'kombul', 'awang-awang'], 25 | ['mesat', 'muluk', 'gegana', 'nglès'], 26 | ['tumenga', 'nenga', 'luhur'], 27 | ['suwung', 'sonya', 'muksa', 'doh', 'tebih'], 28 | ['swarga', 'tanpa', 'barakan'], 29 | ['tan', 'rusak', 'brastha', 'swuh'], 30 | ['walang', 'kos', 'pejah', 'akasa'], 31 | ['tawang', 'wiyat', 'oncat','windu','widik-widik'], 32 | ['nir', 'wuk', 'sat', 'surud', 'sempal'] 33 | ] 34 | elif angka == 1: 35 | choices = [ 36 | ['tunggal', 'gusti', 'sujanma', 'semedi'], 37 | ['badan', 'nabi', 'rupa', 'maha', 'buddha'], 38 | ['niyata', 'luwih', 'pamasé'], 39 | ['wong', 'buweng','rat', 'lèk', 'iku'], 40 | ['surya', 'candra', 'kartika', 'bumi'], 41 | ['wiji', 'urip', 'ron', 'éka'], 42 | ['prabu', 'kenya', 'nekung'], 43 | ['raja','putra', 'sasa', 'dhara'], 44 | ['peksi', 'dara', 'tyas', 'wungkul', 'sudira', 'budi'], 45 | ['wani', 'hyang', 'jagad', 'nata'] 46 | ] 47 | elif angka == 2: 48 | choices = [ 49 | ['asta', 'kalih', 'ro', 'nembah', 'ngabekti'], 50 | ['nétra', 'kembar', 'myat', 'mandeng', 'nayana'], 51 | ['swiwi', 'lar', 'sikara', 'gandhèng'], 52 | ['paksa', 'apasang', 'sungu'], 53 | ['athi-athi', 'talingan', 'dresthi'], 54 | ['carana', 'tangan', 'karna'], 55 | ['bau', 'suku', 'caksuh'], 56 | ['mata', 'paningal', 'locana'], 57 | ['ama', 'nebah', 'karnan', 'ngrengga', 'pengantèn', 'dwi'], 58 | ['kanthi', 'buja','bujana'] 59 | ] 60 | elif angka == 3: 61 | choices = [ 62 | ['bahni', 'tiga','ujwala', 'kaèksi'], 63 | ['katon','murub', 'dahana', 'payudah'], 64 | ['katingalan', 'kaya', 'bentèr'], 65 | ['nala', 'uninga', 'kawruh'], 66 | ['lir', 'wrin', 'wéda', 'naut', 'nauti'], 67 | ['teken', 'siking', 'pawaka'], 68 | ['kukus', 'api', 'apyu'], 69 | ['brama', 'rana', 'rananggana'], 70 | ['utawaka', 'uta', 'ujel', 'kobar', 'agni'], 71 | ['wignya', 'guna', 'tri', 'jatha'] 72 | ] 73 | elif angka == 4: 74 | choices = [ 75 | ['catur', 'warna', 'wahana', 'pat', 'warih'], 76 | ['waudadi', 'dadya', 'keblat', 'papat'], 77 | ['toya', 'suci', 'udaka', 'we'], 78 | ['woh', 'nadi', 'jladri', 'sindu'], 79 | ['yoga', 'gawé', 'tlaga', 'hèr', 'wening'], 80 | ['udan', 'bun', 'tirta', 'marta'], 81 | ['karya', 'sumber', 'sumur'], 82 | ['masuh', 'marna', 'karti', 'karta'], 83 | ['jalaniddhi', 'samodra', 'udaya', 'tasik'], 84 | ['tawa', 'segara', 'wédang'] 85 | ] 86 | elif angka == 5: 87 | choices = [ 88 | ['pandhawa', 'lima', 'wisikan', 'gati'], 89 | ['indri', 'indriya', 'warastra', 'wrayang'], 90 | ['astra', 'lungid', 'sara', 'saré'], 91 | ['guling', 'raseksa', 'diyu'], 92 | ['buta', 'galak', 'wil','yaksa', 'yaksi'], 93 | ['saya', 'wisaya', 'bana'], 94 | ['jemparing', 'cakra', 'hru'], 95 | ['tata', 'hanata', 'bayu', 'bajra'], 96 | ['samirana', 'pawaka', 'maruta', 'angin'], 97 | ['panca', 'marga', 'margana'] 98 | ] 99 | elif angka == 6: 100 | choices = [ 101 | ['rasa', 'nenem', 'rinaras', 'artati'], 102 | ['lona','tikta', 'madura', 'sarkara'], 103 | ['amla', 'kayasa', 'karaséng'], 104 | ['oyag', 'obah', 'nem', 'kayu'], 105 | ['wreksa', 'glinggang', 'prabatang', 'oyig'], 106 | ['sad', 'anggas', 'anggang-anggang'], 107 | ['mangsa', 'naya', 'retu'], 108 | ['wayang', 'winayang', 'anggana'], 109 | ['ilat', 'kilat', 'lidhah', 'lindhu', 'carem','manis'], 110 | ['tahen', 'osik', 'karengya'] 111 | ] 112 | elif angka == 7: 113 | choices = [ 114 | ['sapta', 'prawata', 'acala', 'giri'], 115 | ['ardi', 'gora', 'prabata', 'himawan'], 116 | ['pandhita', 'pitu', 'kaswarèng'], 117 | ['resi', 'sogata', 'wiku'], 118 | ['yogi', 'swara', 'dwija', 'suyati'], 119 | ['wulang', 'weling', 'wasita'], 120 | ['tunggang', 'turangga', 'gung'], 121 | ['swa', 'aswa', 'titihan', 'kuda'], 122 | ['ajar', 'arga', 'sabda', 'nabda', 'angsa', 'muni'], 123 | ['suka', 'biksu', 'biskuka'] 124 | ] 125 | 126 | elif angka == 8: 127 | choices = [ 128 | ['astha', 'basu', 'anggusthi', 'basuki'], 129 | ['slira', 'murti', 'bujangga', 'manggala'], 130 | ['taksaka', 'menyawak', 'tekèk'], 131 | ['dwipa', 'dwipangga', 'bajul'], 132 | ['gajah', 'liman', 'dwirada', 'èsthi'], 133 | ['éstha', 'matengga', 'brahma'], 134 | ['brahmana', 'wewolu'], 135 | ['baya', 'bebaya', 'kunjara'], 136 | ['tanu', 'sarpa', 'samaja', 'madya', 'mangèsthi'], 137 | ['panagan', 'ula', 'naga'] 138 | ] 139 | elif angka == 9: 140 | choices = [ 141 | ['bolong', 'nawa', 'dwara', 'pintu', 'kori'], 142 | ['bedhah', 'lawang', 'wiwara', 'gapura'], 143 | ['rong','song', 'wilasita', 'anglèng'], 144 | ['trustha', 'trusthi', 'trus', 'butul'], 145 | ['déwa', 'sanga', 'jawata', 'manjing'], 146 | ['arum', 'ganda', 'kusuma'], 147 | ['muka', 'rudra', 'masuk'], 148 | ['rago', 'angrong', 'guwa', 'menga'], 149 | ['babahan', 'lèng', 'ambuka', 'gatra', 'anggangsir'], 150 | ['nanda', 'wangi', 'wadana'] 151 | ] 152 | else: 153 | choices = [] 154 | 155 | return random.choice(choices[random.choice(range(len(choices)))]) 156 | 157 | 158 | def generate_sengkalan(angka): 159 | lst = [a for a in str(angka)] 160 | lst.reverse() 161 | hsl = [] 162 | for ls in lst: 163 | hsl.append(str(watak(int(ls))).capitalize()) 164 | 165 | return ' '.join(hsl) 166 | 167 | 168 | def dosengkalan(year, jumlah): 169 | kamus = json.loads(open(dir_path+'/kamus.json','r').read()) 170 | kamusjawa = json.loads(open(dir_path+'/kamus-poerwadarminta.json','r').read()) 171 | islamicyear, month, day = islamic.from_gregorian(int(year),1,1) 172 | javaneseyear = islamicyear + 512 173 | 174 | hasil = [] 175 | for i in range(jumlah): 176 | hsl = generate_sengkalan(year) 177 | rsl = generate_sengkalan(javaneseyear) 178 | results = hsl.split() 179 | translate = [] 180 | for hs in results: 181 | ada = False 182 | if hs.lower().strip() in kamus.keys(): 183 | ada = True 184 | if not ada: 185 | newhs = hs.lower().strip().replace('e','\u00e9') 186 | if newhs in kamus.keys(): 187 | ada = True 188 | hs = newhs 189 | if not ada: 190 | newhs = hs.lower().strip().replace('e','\u00e8') 191 | if newhs in kamus.keys(): 192 | ada = True 193 | hs = newhs 194 | if not ada: 195 | newhs = hs.lower().strip().replace('e','\u00ea') 196 | if newhs in kamus.keys(): 197 | ada = True 198 | hs = newhs 199 | if not ada: 200 | newhs = hs.lower().strip().replace('e','é') 201 | if newhs in kamus.keys(): 202 | ada = True 203 | hs = newhs 204 | if not ada: 205 | newhs = hs.lower().strip().replace('e','è') 206 | if newhs in kamus.keys(): 207 | ada = True 208 | hs = newhs 209 | if not ada: 210 | newhs = hs.lower().strip().replace('e','ê') 211 | if newhs in kamus.keys(): 212 | ada = True 213 | hs = newhs 214 | if not ada: 215 | newhs = hs.lower()[:-2] 216 | if newhs in kamus.keys(): 217 | ada = True 218 | hs = newhs 219 | if ada: 220 | translate.append(hs+" :"+kamus[hs.lower().strip()]) 221 | else: 222 | if hs.lower().strip() in kamusjawa.keys(): 223 | ada = True 224 | if not ada: 225 | newhs = hs.lower().strip().replace('e','\u00e9') 226 | if newhs in kamusjawa.keys(): 227 | ada = True 228 | hs = newhs 229 | if not ada: 230 | newhs = hs.lower().strip().replace('e','\u00e8') 231 | if newhs in kamusjawa.keys(): 232 | ada = True 233 | hs = newhs 234 | if not ada: 235 | newhs = hs.lower().strip().replace('e','\u00ea') 236 | if newhs in kamusjawa.keys(): 237 | ada = True 238 | hs = newhs 239 | if not ada: 240 | newhs = hs.lower().strip().replace('e','é') 241 | if newhs in kamusjawa.keys(): 242 | ada = True 243 | hs = newhs 244 | if not ada: 245 | newhs = hs.lower().strip().replace('e','è') 246 | if newhs in kamusjawa.keys(): 247 | ada = True 248 | hs = newhs 249 | if not ada: 250 | newhs = hs.lower().strip().replace('e','ê') 251 | if newhs in kamusjawa.keys(): 252 | ada = True 253 | hs = newhs 254 | if not ada: 255 | newhs = hs.lower()[:-2] 256 | if newhs in kamusjawa.keys(): 257 | ada = True 258 | hs = newhs 259 | if ada: 260 | translate.append(hs+": "+kamusjawa[hs.lower().strip()]) 261 | transl = dotransliterate(hsl.lower()) 262 | 263 | rsl = generate_sengkalan(javaneseyear) 264 | results = rsl.split() 265 | translatejw = [] 266 | for hs in results: 267 | ada = False 268 | if hs.lower().strip() in kamus.keys(): 269 | ada = True 270 | if not ada: 271 | newhs = hs.lower().strip().replace('e','\u00e9') 272 | if newhs in kamus.keys(): 273 | ada = True 274 | hs = newhs 275 | if not ada: 276 | newhs = hs.lower().strip().replace('e','\u00e8') 277 | if newhs in kamus.keys(): 278 | ada = True 279 | hs = newhs 280 | if not ada: 281 | newhs = hs.lower().strip().replace('e','\u00ea') 282 | if newhs in kamus.keys(): 283 | ada = True 284 | hs = newhs 285 | if not ada: 286 | newhs = hs.lower().strip().replace('e','é') 287 | if newhs in kamus.keys(): 288 | ada = True 289 | hs = newhs 290 | if not ada: 291 | newhs = hs.lower().strip().replace('e','è') 292 | if newhs in kamus.keys(): 293 | ada = True 294 | hs = newhs 295 | if not ada: 296 | newhs = hs.lower().strip().replace('e','ê') 297 | if newhs in kamus.keys(): 298 | ada = True 299 | hs = newhs 300 | if not ada: 301 | newhs = hs.lower()[:-2] 302 | if newhs in kamus.keys(): 303 | ada = True 304 | hs = newhs 305 | if ada: 306 | translatejw.append(hs+" :"+kamus[hs.lower().strip()]) 307 | else: 308 | if hs.lower().strip() in kamusjawa.keys(): 309 | ada = True 310 | if not ada: 311 | newhs = hs.lower().strip().replace('e','\u00e9') 312 | if newhs in kamusjawa.keys(): 313 | ada = True 314 | hs = newhs 315 | if not ada: 316 | newhs = hs.lower().strip().replace('e','\u00e8') 317 | if newhs in kamusjawa.keys(): 318 | ada = True 319 | hs = newhs 320 | if not ada: 321 | newhs = hs.lower().strip().replace('e','\u00ea') 322 | if newhs in kamusjawa.keys(): 323 | ada = True 324 | hs = newhs 325 | if not ada: 326 | newhs = hs.lower().strip().replace('e','é') 327 | if newhs in kamusjawa.keys(): 328 | ada = True 329 | hs = newhs 330 | if not ada: 331 | newhs = hs.lower().strip().replace('e','è') 332 | if newhs in kamusjawa.keys(): 333 | ada = True 334 | hs = newhs 335 | if not ada: 336 | newhs = hs.lower().strip().replace('e','ê') 337 | if newhs in kamusjawa.keys(): 338 | ada = True 339 | hs = newhs 340 | if not ada: 341 | newhs = hs.lower()[:-2] 342 | if newhs in kamusjawa.keys(): 343 | ada = True 344 | hs = newhs 345 | if ada: 346 | translatejw.append(hs+": "+kamusjawa[hs.lower().strip()]) 347 | transljw = dotransliterate(rsl.lower()) 348 | result = { 349 | 'tahun': year, 350 | 'tahunjawa': javaneseyear, 351 | 'sengkalan': hsl, 352 | 'sengkalanjawa': rsl, 353 | 'translatejawa': translatejw, 354 | 'translate': translate, 355 | 'aksara': transl, 356 | 'aksarajawa': transljw 357 | } 358 | hasil.append(result) 359 | return hasil 360 | 361 | def main(): 362 | parser = argparse.ArgumentParser(formatter_class=argparse.MetavarTypeHelpFormatter) 363 | parser.add_argument('-t', '--tahun', type=int, default=int(datetime.datetime.now().year), help="Masukkan angka Tahun (Input year)", required=True) 364 | parser.add_argument('-n', '--jumlah', type=int, default=1, help="Jumlah sengkalan yang ingin digenerate", required=False) 365 | args = parser.parse_args() 366 | 367 | year = args.tahun 368 | jumlah = args.jumlah 369 | 370 | hasil = dosengkalan(year, jumlah) 371 | for hsl in hasil: 372 | for key, value in hsl.items(): 373 | if isinstance(value,list): 374 | print('\n'.join(value)) 375 | else: 376 | print(value) 377 | 378 | 379 | if __name__ == '__main__': 380 | main() 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | -------------------------------------------------------------------------------- /latintojavanese.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | #-*- coding: utf-8 -*- 3 | 4 | """ 5 | __version__ = "0.0.1" 6 | __author__ = "@lantip" 7 | __date__ = "2019/04/02" 8 | __description__ = "Latin to Javanese Transliterator" 9 | """ 10 | 11 | import sys 12 | 13 | HURUF = { 14 | 'h': 'ꦲ', 15 | 'n': 'ꦤ', 16 | 'c': 'ꦕ', 17 | 'r': 'ꦫ', 18 | 'k': 'ꦏ', 19 | 'd': 'ꦢ', 20 | 't': 'ꦠ', 21 | 's': 'ꦱ', 22 | 'w': 'ꦮ', 23 | 'l': 'ꦭ', 24 | 'p': 'ꦥ', 25 | 'dh': 'ꦝ', 26 | 'j': 'ꦗ', 27 | 'y': 'ꦪ', 28 | 'ny': 'ꦚ', 29 | 'm': 'ꦩ', 30 | 'g': 'ꦒ', 31 | 'b': 'ꦧ', 32 | 'th': 'ꦛ', 33 | 'ng': 'ꦔ', 34 | ',': '꧈', 35 | '.': '꧉' 36 | } 37 | 38 | PASANGAN = { 39 | 'h': '꧀ꦲ', 40 | 'n': '꧀ꦤ', 41 | 'c': '꧀ꦕ', 42 | 'r': '꧀ꦫ', 43 | 'k': '꧀ꦏ', 44 | 'd': '꧀ꦢ', 45 | 't': '꧀ꦠ', 46 | 's': '꧀ꦱ', 47 | 'w': '꧀ꦮ', 48 | 'l': '꧀ꦭ', 49 | 'p': '꧀ꦥ', 50 | 'dh': '꧀ꦓ', 51 | 'j': '꧀ꦗ', 52 | 'y': '꧀ꦪ', 53 | 'ny': '꧀ꦚ', 54 | 'm': '꧀ꦩ', 55 | 'g': '꧀ꦒ', 56 | 'b': '꧀ꦧ', 57 | 'th': '꧀ꦛ', 58 | 'ng': '꧀ꦔ' 59 | } 60 | 61 | SANDHANGAN = { 62 | 'wulu': 'ꦶ', 63 | 'suku': 'ꦸ', 64 | 'pepet': 'ꦼ', 65 | 'taling': 'ꦺ', 66 | 'taling-tarung': 'ꦺꦴ', 67 | 'cecak': 'ꦁ', 68 | 'wignyan': 'ꦃ', 69 | 'layar': 'ꦂ', 70 | 'cakra': 'ꦿ', 71 | 'keret': 'ꦽ', 72 | 'pengkal': 'ꦾ', 73 | 'pangkon': '꧀' 74 | } 75 | 76 | def transliterate(hrf, isend, prv, nxt): 77 | ltr = '' 78 | dobel = ['th', 'dh', 'ny'] 79 | iskeret = False 80 | if hrf.find('ng') == 0: 81 | if len(hrf) == 2: 82 | ltr += SANDHANGAN['cecak'] 83 | else: 84 | ltr += HURUF['ng'] 85 | if len(hrf) > 3: 86 | if hrf[2] == 'l': 87 | ltr += PASANGAN['l'] 88 | elif hrf[2] == 'y': 89 | ltr += SANDHANGAN['pengkal'] 90 | elif hrf[2] == 'r': 91 | if hrf[3] == 'e': 92 | ltr += SANDHANGAN['keret'] 93 | iskeret = True 94 | else: 95 | ltr += SANDHANGAN['cakra'] 96 | elif hrf.find('ny') == 0: 97 | if prv: 98 | if len(prv) == 1: 99 | ltr += PASANGAN['ny'] 100 | else: 101 | ltr += HURUF['ny'] 102 | else: 103 | ltr += HURUF['ny'] 104 | if len(hrf) > 3: 105 | if hrf[2] == 'l': 106 | ltr += PASANGAN['l'] 107 | elif hrf[2] == 'y': 108 | ltr += SANDHANGAN['pengkal'] 109 | elif hrf[2] == 'r': 110 | if hrf[3] == 'e': 111 | ltr += SANDHANGAN['keret'] 112 | iskeret = True 113 | else: 114 | ltr += SANDHANGAN['cakra'] 115 | elif hrf.find('th') == 0: 116 | if prv: 117 | if len(prv) == 1: 118 | ltr += PASANGAN['th'] 119 | else: 120 | ltr += HURUF['th'] 121 | else: 122 | ltr += HURUF['th'] 123 | if len(hrf) > 3: 124 | if hrf[2] == 'l': 125 | ltr += PASANGAN['l'] 126 | elif hrf[2] == 'y': 127 | ltr += SANDHANGAN['pengkal'] 128 | elif hrf[2] == 'r': 129 | if hrf[3] == 'e': 130 | ltr += SANDHANGAN['keret'] 131 | iskeret = True 132 | else: 133 | ltr += SANDHANGAN['cakra'] 134 | elif hrf.find('dh') == 0: 135 | if prv: 136 | if len(prv) == 1: 137 | ltr += PASANGAN['dh'] 138 | else: 139 | ltr += HURUF['dh'] 140 | else: 141 | ltr += HURUF['dh'] 142 | if len(hrf) > 3: 143 | if hrf[2] == 'l': 144 | ltr += PASANGAN['l'] 145 | elif hrf[2] == 'y': 146 | ltr += SANDHANGAN['pengkal'] 147 | elif hrf[2] == 'r': 148 | if hrf[4] == 'e': 149 | ltr += SANDHANGAN['keret'] 150 | iskeret = True 151 | else: 152 | ltr += SANDHANGAN['cakra'] 153 | if len(hrf) == 2: 154 | if hrf == 'ng': 155 | ltr += SANDHANGAN['cecak'] 156 | else: 157 | if prv: 158 | if len(prv) == 1: 159 | if prv not in ['h', 'r', 'y']: 160 | ltr += PASANGAN[hrf[0]] 161 | else: 162 | ltr += HURUF[hrf[0]] 163 | else: 164 | ltr += HURUF[hrf[0]] 165 | else: 166 | ltr += HURUF[hrf[0]] 167 | elif len(hrf) == 1: 168 | if hrf[0] not in [',', '.']: 169 | if hrf == 'r': 170 | ltr += SANDHANGAN['layar'] 171 | elif hrf == 'h': 172 | ltr += SANDHANGAN['wignyan'] 173 | elif hrf == ',': 174 | pass 175 | else: 176 | if isend: 177 | ltr += HURUF[hrf[0]] 178 | ltr += SANDHANGAN['pangkon'] 179 | else: 180 | ltr += HURUF[hrf[0]] 181 | 182 | elif len(hrf) > 2: 183 | if hrf[1] == 'l': 184 | ltr += HURUF[hrf[0]] 185 | ltr += PASANGAN['l'] 186 | elif hrf[1] == 'y' and hrf[0] != 'n': 187 | ltr += HURUF[hrf[0]] 188 | ltr += SANDHANGAN['pengkal'] 189 | elif hrf[1] == 'r': 190 | if prv: 191 | if len(prv) == 1: 192 | if prv not in ['h', 'r', 'y']: 193 | ltr += PASANGAN[hrf[0]] 194 | ltr += SANDHANGAN['cakra'] 195 | else: 196 | ltr += HURUF[hrf[0]] 197 | ltr += SANDHANGAN['cakra'] 198 | else: 199 | ltr += HURUF[hrf[0]] 200 | ltr += SANDHANGAN['cakra'] 201 | else: 202 | ltr += HURUF[hrf[0]] 203 | ltr += SANDHANGAN['cakra'] 204 | if hrf.find('u') == (len(hrf) - 1): 205 | ltr += SANDHANGAN['suku'] 206 | 207 | if 'é' in hrf or 'è' in hrf: 208 | if prv: 209 | ltr += SANDHANGAN['taling'] 210 | else: 211 | ltr += SANDHANGAN['taling'] 212 | if hrf.find('e') == (len(hrf) - 1): 213 | if not iskeret: 214 | ltr += SANDHANGAN['pepet'] 215 | if hrf.find('i') == (len(hrf) - 1): 216 | ltr += SANDHANGAN['wulu'] 217 | if 'o' in hrf: 218 | ltr += SANDHANGAN['taling-tarung'] 219 | if nxt == '.': 220 | ltr += HURUF[nxt] 221 | return ltr 222 | 223 | 224 | def translate(word): 225 | ltr = [] 226 | start = 0 227 | consonant = ['c','k','s','w','l','p','j','m','b'] 228 | specials = ['t','d'] 229 | dobel = ['th', 'dh', 'ny', 'ng'] 230 | insrt = [ 'h','y','g','n'] 231 | vowels = "AaEeÈèÉéIiOoUuÊêĚěĔĕṚṛXxôâāīūō" 232 | for dob in dobel: 233 | if word.find(dob) == 0: 234 | if len(word) >= 3: 235 | if word[2] in vowels: 236 | ltr.append(dob+word[2]) 237 | start = 3 238 | elif len(word) >= 4: 239 | if word[2] == 'r': 240 | if word[3] in vowels: 241 | ltr.append(dob+'r'+word[3]) 242 | start = 4 243 | for ins in insrt: 244 | if word.find(ins) == 0: 245 | if len(word) >=2: 246 | if word[1] in vowels: 247 | ltr.append(ins+word[1]) 248 | start = 2 249 | elif word[1] in ['l', 'r', 'y']: 250 | if word[2] in vowels: 251 | ltr.append(ins+word[1]+word[2]) 252 | start = 3 253 | if word[0] in vowels: 254 | ltr.append('h'+word[0]) 255 | start = 1 256 | for i in range(start,len(word)): 257 | if word[i] in consonant: 258 | try: 259 | if len(word[i:]) > 1: 260 | if word[i+1] in vowels and word[i] != 'l': 261 | ltr.append(word[i]+word[i+1]) 262 | i = i + 2 263 | else: 264 | if word[i+1] in ['l', 'r','y']: 265 | if len(word[i:]) > 2: 266 | if word[i+2] in vowels: 267 | ltr.append(word[i]+word[i+1]+word[i+2]) 268 | i = i + 3 269 | else: 270 | ltr.append(word[i]+word[i+1]) 271 | i = i + 2 272 | else: 273 | if (i-2) >= 0: 274 | if len(word[i:]) > 1: 275 | if word[i] not in word[i-2]+word[i-1]: 276 | ltr.append(word[i]+word[i+1]) 277 | i = i + 2 278 | else: 279 | if word[i] != 'l': 280 | ltr.append(word[i]) 281 | i = i + 1 282 | else: 283 | if len(word[i:]) > 1: 284 | if word[i+1] in vowels: 285 | if len(ltr) > 0: 286 | if not word[i]+word[i+1] in ltr[len(ltr)-1]: 287 | ltr.append(word[i]+word[i+1]) 288 | i = i + 2 289 | else: 290 | ltr.append(word[i]+word[i+1]) 291 | i = i + 2 292 | else: 293 | ltr.append(word[i]) 294 | i = i + 1 295 | except: 296 | ltr.append(word[i]) 297 | i = i + 1 298 | elif word[i] in specials: 299 | try: 300 | if len(word[i:]) >=2: 301 | if word[i+1] == 'h' and word[i+2] in vowels: 302 | ltr.append(word[i]+word[i+1]+word[i+2]) 303 | i = i + 3 304 | elif word[i+1] in ['l', 'r']: 305 | if len(word[i:]) > 2: 306 | if word[i+2] in vowels: 307 | ltr.append(word[i]+word[i+1]+word[i+2]) 308 | i = i + 3 309 | else: 310 | ltr.append(word[i]+word[i+1]) 311 | i = i + 2 312 | else: 313 | ltr.append(word[i]+word[i+1]) 314 | i = i + 2 315 | elif word[i+1] in vowels: 316 | ltr.append(word[i]+word[i+1]) 317 | i = i + 2 318 | elif len(word[i:]) == 1: 319 | if word[i+1] == 'h': 320 | ltr.append(word[i]+word[i+1]) 321 | i = i + 2 322 | elif word[i+1] in vowels: 323 | ltr.append(word[i]+word[i+1]) 324 | i = i + 2 325 | except: 326 | ltr.append(word[i]) 327 | i = i + 1 328 | elif word[i] == 'n': 329 | if len(word[i:]) > 2: 330 | if word[i+1] in ['g','y'] and word[i+2] in vowels: 331 | ltr.append(word[i]+word[i+1]+word[i+2]) 332 | i = i + 3 333 | elif word[i+1] in ['g','y'] and word[i+2] not in vowels: 334 | ltr.append(word[i]+word[i+1]) 335 | i = i + 2 336 | else: 337 | if word[i+1] in vowels: 338 | ltr.append(word[i]+word[i+1]) 339 | i = i + 2 340 | else: 341 | ltr.append(word[i]) 342 | i = i + 1 343 | else: 344 | try: 345 | nxt = word[i+1] 346 | except: 347 | nxt = None 348 | if nxt: 349 | if nxt in vowels: 350 | ltr.append(word[i]+nxt) 351 | i = i + 2 352 | elif nxt == 'g': 353 | ltr.append(word[i]+nxt) 354 | i = i + 2 355 | else: 356 | ltr.append(word[i]) 357 | i = i + 1 358 | else: 359 | ltr.append(word[i]) 360 | i = i + 1 361 | elif word[i] in ['r','y']: 362 | if i == 0: 363 | if len(word[i:]) > 1: 364 | if word[i+1] in vowels: 365 | ltr.append(word[i]+word[i+1]) 366 | i = i + 2 367 | else: 368 | if len(word[i:]) > 1: 369 | if word[i+1] in vowels: 370 | if word[i-1] not in vowels: 371 | if (i-2) >=0: 372 | if (word[i-2]+word[i-1]) in dobel: 373 | ltr.append(word[i-2]+word[i-1]+word[i]+word[i+1]) 374 | i = i + 2 375 | else: 376 | if not (word[i]+word[i+1]) in ltr[len(ltr)-1]: 377 | ltr[len(ltr)-1] = ltr[len(ltr)-1] + word[i] + word[i+1] 378 | i = i + 1 379 | else: 380 | ltr.append(word[i]+word[i+1]) 381 | i = i + 2 382 | else: 383 | ltr.append(word[i]) 384 | i = i + 1 385 | else: 386 | ltr.append(word[i]) 387 | i = i + 1 388 | elif word[i] == 'g': 389 | if 'g' in ltr[len(ltr)-1] and len(ltr[len(ltr)-1]) >= 2: 390 | pass 391 | else: 392 | if len(word[i:]) > 1: 393 | if word[i+1] in vowels: 394 | ltr.append(word[i]+word[i+1]) 395 | i = i + 2 396 | else: 397 | if (i-2) > 0: 398 | if (word[i-2]+word[i-1]) == 'ng': 399 | pass 400 | else: 401 | if ltr[len(ltr) - 1] != 'ng': 402 | ltr.append(word[i]) 403 | i = i + 1 404 | else: 405 | i = i + 1 406 | else: 407 | if (i-2) > 0: 408 | if (word[i-2] + word[i-1]) == 'ng': 409 | pass 410 | elif (word[i-1] + word[i]) == 'ng': 411 | pass 412 | else: 413 | ltr.append(word[i]) 414 | i = i + 1 415 | else: 416 | ltr.append(word[i]) 417 | i = i + 1 418 | elif word[i] == 'h': 419 | if 'h' in ltr[len(ltr)-1] and len(ltr[len(ltr)-1]) > 2: 420 | pass 421 | else: 422 | if len(word[i:]) > 1: 423 | if word[i+1] in vowels: 424 | ltr.append(word[i]+word[i+1]) 425 | i = i + 2 426 | else: 427 | ltr.append(word[i]) 428 | i = i + 1 429 | else: 430 | ltr.append(word[i]) 431 | i = i + 1 432 | return ltr 433 | 434 | 435 | def translatethis(text): 436 | if ',' in text: 437 | trslt = translate(text.replace(',','')) + [','] 438 | elif '.' in text: 439 | trslt = translate(text.replace(',','')) + ['.'] 440 | else: 441 | trslt = translate(text) 442 | return trslt 443 | 444 | def dotranslate(word): 445 | trslt = [] 446 | for wrds in word.split(): 447 | if '-' in wrds: 448 | for wrd in wrds.split('-'): 449 | trslt = trslt + translatethis(wrd.lower()) 450 | else: 451 | trslt = trslt + translatethis(wrds.lower()) 452 | 453 | return trslt 454 | 455 | 456 | def dotransliterate(word): 457 | litr = '' 458 | if '.' in word: 459 | for ijk,wrd in enumerate(word.split('.')): 460 | if ',' in wrd: 461 | for idx,wr in enumerate(wrd.split(',')): 462 | ltr = dotranslate(wr) 463 | isend = False 464 | for index, lt in enumerate(ltr): 465 | if index == len(ltr) - 1: 466 | isend = True 467 | nxt = None 468 | else: 469 | nxt = ltr[index+1] 470 | if (index - 1) >= 0: 471 | prv = ltr[index-1] 472 | else: 473 | prv = None 474 | 475 | litr += transliterate(lt, isend, prv, nxt) 476 | if idx < (len(wrd.split(',')) - 1): 477 | litr += HURUF[','] 478 | else: 479 | ltr = dotranslate(wrd) 480 | isend = False 481 | for index, lt in enumerate(ltr): 482 | if index == len(ltr) - 1: 483 | isend = True 484 | nxt = None 485 | else: 486 | nxt = ltr[index+1] 487 | if (index - 1) >= 0: 488 | prv = ltr[index-1] 489 | else: 490 | prv = None 491 | 492 | litr += transliterate(lt, isend, prv, nxt) 493 | if ijk < (len(word.split('.')) - 1): 494 | litr += HURUF['.'] 495 | else: 496 | ltr = dotranslate(word) 497 | isend = False 498 | for index, lt in enumerate(ltr): 499 | if index == len(ltr) - 1: 500 | isend = True 501 | nxt = None 502 | else: 503 | nxt = ltr[index+1] 504 | if (index - 1) >= 0: 505 | prv = ltr[index-1] 506 | else: 507 | prv = None 508 | 509 | litr += transliterate(lt, isend, prv, nxt) 510 | 511 | return litr 512 | 513 | if __name__ == '__main__': 514 | question = input('> ') 515 | while (question != 'quit'): 516 | try: 517 | print (dotransliterate(question).lower()) 518 | question = input('> ') 519 | except: 520 | sys.exit(1) --------------------------------------------------------------------------------