File size: 1,753 Bytes
b020fe4
2b55ffc
 
b020fe4
 
 
 
 
 
 
 
 
 
 
 
 
 
2b55ffc
 
 
 
 
b020fe4
 
2b55ffc
 
 
 
 
 
b020fe4
 
 
2b55ffc
 
b020fe4
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from deep_translator import GoogleTranslator
import gradio as gr

# 100+ tillar ro'yxati
tillar = [
    'uzbek', 'english', 'russian', 'french', 'german', 'arabic', 'turkish', 'spanish', 'italian',
    'japanese', 'korean', 'chinese (simplified)', 'chinese (traditional)', 'hindi', 'portuguese',
    'ukrainian', 'kazakh', 'kyrgyz', 'tajik', 'turkmen', 'polish', 'indonesian', 'malay', 'greek',
    'swedish', 'norwegian', 'finnish', 'dutch', 'czech', 'serbian', 'vietnamese', 'bengali',
    'thai', 'lithuanian', 'latvian', 'estonian', 'romanian', 'gujarati', 'punjabi', 'armenian',
    'hebrew', 'pashto', 'persian', 'urdu', 'somali', 'zulu', 'swahili', 'afrikaans', 'tatar',
    'yoruba', 'kinyarwanda', 'tamil', 'telugu', 'kannada', 'nepali', 'marathi', 'sinhala', 'lao',
    'burmese', 'mongolian', 'haitian creole', 'icelandic', 'irish', 'bosnian', 'croatian',
    'slovak', 'slovenian', 'macedonian', 'albanian', 'georgian', 'welsh', 'luxembourgish',
    'yiddish', 'basque', 'galician', 'maltese', 'maori', 'samoan', 'tongan', 'hausa', 'igbo',
    'amharic', 'azerbaijani', 'kurdish'
]

def tarjima(matn, src_lang, tgt_lang):
    if src_lang == tgt_lang:
        return "⚠️ Manba va tarjima tillari bir xil bo‘lmasligi kerak."
    try:
        result = GoogleTranslator(source=src_lang, target=tgt_lang).translate(matn)
        return result
    except Exception as e:
        return f"❌ Xato: {e}"

gr.Interface(
    fn=tarjima,
    inputs=[
        gr.Textbox(label="✍️ Matn kiriting"),
        gr.Dropdown(choices=tillar, value="uzbek", label="🔤 Qaysi tildan"),
        gr.Dropdown(choices=tillar, value="english", label="🔠 Qaysi tilga")
    ],
    outputs="text",
    title="🌍 O‘zbek Tarjimon — 100+ til"
).launch()