import gradio as gr import time from deep_translator import GoogleTranslator def tarjim(text, choice, progress = gr.Progress()): progress(0, desc="Tarjima qilish boshlandi. Iltimos ozgina vaqt kuting...") try: if text and choice: support_languages = GoogleTranslator().get_supported_languages(as_dict=True) for i in progress.tqdm(range(100)): time.sleep(0.01) return GoogleTranslator(source='auto',target=support_languages[choice]).translate(text.replace('\n', ' ')) else: return gr.Info("Kiritish maydoni bo'sh bo'lmasligi kerak %s" % text) except Exception as e: return gr.Error("Xatolik nomi: %s" % e) with gr.Blocks() as demo: gr.Markdown( """ # Tezkor tarjima! Ma'lumotlarni tezkor tajima qilish uchun kiritish maydonini bo'sh qoldirmang. """) with gr.Row(): with gr.Column(): tanlash = gr.Dropdown(label='Tilni tanlang', choices=GoogleTranslator().get_supported_languages(), value='uzbek') inp = gr.Textbox(label='kirish qismi', placeholder="Tarjima mantnini kiriting..." ,autofocus=True) with gr.Column(): out = gr.Textbox(label='Natija', show_copy_button=True) theme=gr.themes.Base() inp.change(tarjim, [inp, tanlash], out) if __name__ == "__main__": demo.launch()