|
|
|
mapping = { |
|
'a': 'а', 'b': 'б', 'd': 'д', 'e': 'е', 'f': 'ф', |
|
'g': 'г', 'h': 'ҳ', 'i': 'и', 'j': 'ж', 'k': 'к', |
|
'l': 'л', 'm': 'м', 'n': 'н', 'o': 'о', 'p': 'п', |
|
'q': 'қ', 'r': 'р', 's': 'с', 't': 'т', 'u': 'у', |
|
'v': 'в', 'x': 'х', 'y': 'й', 'z': 'з', 'ʼ': 'ъ', |
|
'oʻ': 'ў', 'gʻ': 'ғ', 'sh': 'ш', 'ch': 'ч', |
|
'yo': 'ё', 'yu': 'ю', 'ya': 'я', |
|
'A': 'А', 'B': 'Б', 'D': 'Д', 'E': 'Е', 'F': 'Ф', |
|
'G': 'Г', 'H': 'Ҳ', 'I': 'И', 'J': 'Ж', 'K': 'К', |
|
'L': 'Л', 'M': 'М', 'N': 'Н', 'O': 'О', 'P': 'П', |
|
'Q': 'Қ', 'R': 'Р', 'S': 'С', 'T': 'Т', 'U': 'У', |
|
'V': 'В', 'X': 'Х', 'Y': 'Й', 'Z': 'З', 'ʼ': 'Ъ', |
|
'Oʻ': 'Ў', 'Gʻ': 'Ғ', 'Sh': 'Ш', 'Ch': 'Ч', |
|
'Yo': 'Ё', 'Yu': 'Ю', 'Ya': 'Я' |
|
} |
|
|
|
|
|
|
|
def latin_to_cyrillic(text): |
|
if not text: |
|
return "" |
|
|
|
cyrillic = '' |
|
i = 0 |
|
while i < len(text): |
|
|
|
if i + 1 < len(text) and text[i:i+2] in mapping: |
|
cyrillic += mapping[text[i:i+2]] |
|
i += 2 |
|
|
|
elif (i == 0 or text[i-1] in 'aeiouoʻ') and text[i:i+2] == 'ye': |
|
cyrillic += 'е' |
|
i += 2 |
|
|
|
elif text[i] in mapping: |
|
cyrillic += mapping[text[i]] |
|
i += 1 |
|
|
|
elif text[i] == 'ь': |
|
i += 1 |
|
else: |
|
cyrillic += text[i] |
|
i += 1 |
|
return cyrillic |
|
|
|
import gradio as gr |
|
|
|
demo = gr.Interface( |
|
fn=latin_to_cyrillic, |
|
inputs=["textarea"], |
|
outputs=["textarea"], |
|
) |
|
|
|
demo.launch() |