Created
September 5, 2023 20:33
-
-
Save niskala5570/1c890c2c911e6ff9ec7a0e25e94ca603 to your computer and use it in GitHub Desktop.
Penterjemah Rumi ke Jawi menggunakan eJawiMakmur
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Kod oleh CGpt dikeranakan aku ini seorang yang pemalas | |
import requests | |
# URL penterjemah Rumi ke Jawi | |
converter_url = "https://ebayt.muip.gov.my/jawi/libjawi.php?rumi=" | |
# Fungsi untuk menanggalkan aksara khas dari teks Rumi dan menyimpan posisi mereka | |
def tanggalkan_aksara_khas(teks_rumi): | |
aksara_khas = {} | |
teks_rumi_tanpa_aksara = "" | |
for i, aksara in enumerate(teks_rumi): | |
if aksara.isalnum() or aksara.isspace(): | |
teks_rumi_tanpa_aksara += aksara | |
else: | |
aksara_khas[i] = aksara | |
return teks_rumi_tanpa_aksara, aksara_khas | |
# Fungsi untuk menukar teks Rumi ke Jawi | |
def tukar_rumi_ke_jawi(teks_rumi): | |
try: | |
teks_rumi_tanpa_aksara, aksara_khas = tanggalkan_aksara_khas(teks_rumi) | |
# Kodkan teks Rumi yang telah ditanggalkan aksara untuk keselamatan URL | |
teks_rumi_kod = requests.utils.quote(teks_rumi_tanpa_aksara) | |
return teks_rumi_kod, aksara_khas | |
except Exception as e: | |
return None, None | |
# Fungsi untuk menggantikan koma dan koma Arab dengan ⹁ dalam teks | |
def gantikan_aksara_khas(teks): | |
return teks.replace(',', '⹁').replace('٫', '⹁').replace('٬', '⹁') | |
# Fungsi untuk mendapatkan teks Jawi daripada respons yang telah ditukar | |
def dapatkan_teks_jawi(teks_rumi_kod): | |
respons = requests.get(converter_url + teks_rumi_kod) | |
if respons.status_code == 200: | |
respons_json = respons.json() | |
return respons_json.get("jawi", "") | |
return None | |
# Fungsi utama | |
def main(): | |
teks_rumi = input("Masukkan teks Rumi: ") | |
teks_rumi_kod, aksara_khas = tukar_rumi_ke_jawi(teks_rumi) | |
if teks_rumi_kod is not None: | |
teks_jawi = dapatkan_teks_jawi(teks_rumi_kod) | |
if teks_jawi is not None: | |
# Sisipkan aksara khas kembali ke dalam teks Jawi yang telah diterjemahkan | |
for pos, aksara in aksara_khas.items(): | |
teks_jawi = teks_jawi[:pos] + aksara + teks_jawi[pos:] | |
# Gantikan koma dan koma Arab dengan ⹁ | |
teks_jawi = gantikan_aksara_khas(teks_jawi) | |
print("Jawi:", teks_jawi) | |
else: | |
print("Tiada teks Jawi dalam respons.") | |
else: | |
print("Ralat semasa penukaran Rumi ke Jawi.") | |
if __name__ == "__main__": | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment