Spaces:
Sleeping
Sleeping
import streamlit as st | |
import requests | |
import csv | |
from io import StringIO | |
def load_dictionary_from_csv(file_path): | |
dictionary = {} | |
with open(file_path, newline='', encoding='utf-8') as csvfile: | |
reader = csv.reader(csvfile, delimiter=';') | |
for row in reader: | |
lampung_word = row[0] | |
indonesian_translations = row[1].split(',') | |
dictionary[lampung_word] = indonesian_translations | |
return dictionary | |
def load_dictionary_from_url(url): | |
response = requests.get(url) | |
data = response.text | |
csvfile = StringIO(data) | |
dictionary = {} | |
reader = csv.reader(csvfile, delimiter=';') | |
for row in reader: | |
lampung_word = row[0] | |
indonesian_translations = row[1].split(',') | |
dictionary[lampung_word] = indonesian_translations | |
return dictionary | |
def check_missing_words(text, dictionary): | |
words = text.split() | |
missing_words = [] | |
for word in words: | |
if word not in dictionary: | |
missing_words.append(word) | |
return missing_words | |
# Fungsi untuk menerjemahkan teks dari bahasa Lampung ke bahasa Indonesia | |
def translate_indonesia_to_lampung(text, dictionary): | |
words = text.split() | |
translated_words = [] | |
for word in words: | |
possible_translations = dictionary.get(word, [word]) # Gunakan kata asli jika tidak ditemukan di kamus | |
best_translation = min(possible_translations, key=len) # Pilih terjemahan terpendek | |
translated_words.append(best_translation) | |
translated_text = ' '.join(translated_words) | |
return translated_text | |
# Fungsi untuk menerjemahkan teks dari bahasa Indonesia ke bahasa Lampung | |
def translate_lampung_to_indonesia(text, dictionary): | |
words = text.split() | |
translated_words = [] | |
for word in words: | |
lampung_word = None | |
for key, translations in dictionary.items(): | |
if word in translations: | |
lampung_word = key | |
break | |
translated_words.append(lampung_word if lampung_word else word) | |
translated_text = ' '.join(translated_words) | |
return translated_text | |
# Memuat kamus dari URL berkas CSV | |
csv_url = 'https://raw.githubusercontent.com/meizano/lampung/master/db/parser/Indonesia-Lampung.csv' | |
dictionary = load_dictionary_from_url(csv_url) | |
# Judul dan deskripsi | |
st.set_theme('default') | |
st.title("Penerjemah Indonesia - Lampung") | |
st.write("Masukkan teks dalam bahasa Indonesia di bawah dan klik tombol 'Terjemahkan'.") | |
# Sidebar untuk tombol navigasi | |
menu_selection = st.sidebar.radio("Pilih Arah Terjemahan", ("Lampung ke Indonesia", "Indonesia ke Lampung")) | |
# Widget untuk memasukkan teks | |
input_text = st.text_area("Masukkan Teks", "") | |
# Tombol untuk memicu penerjemahan | |
if st.button("Terjemahkan"): | |
if input_text: | |
if menu_selection == "Lampung ke Indonesia": | |
translated_text = translate_lampung_to_indonesian(input_text, dictionary) | |
elif menu_selection == "Indonesia ke Lampung": | |
translated_text = translate_indonesian_to_lampung(input_text, dictionary) | |
st.write("Hasil Terjemahan:") | |
st.write(translated_text) | |
else: | |
st.write("Silakan masukkan teks terlebih dahulu.") | |