Upload app.py
Browse files
app.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Определить словарь соответствий латиница-кириллица
|
| 2 |
+
mapping = {
|
| 3 |
+
'a': 'а', 'b': 'б', 'd': 'д', 'e': 'е', 'f': 'ф',
|
| 4 |
+
'g': 'г', 'h': 'ҳ', 'i': 'и', 'j': 'ж', 'k': 'к',
|
| 5 |
+
'l': 'л', 'm': 'м', 'n': 'н', 'o': 'о', 'p': 'п',
|
| 6 |
+
'q': 'қ', 'r': 'р', 's': 'с', 't': 'т', 'u': 'у',
|
| 7 |
+
'v': 'в', 'x': 'х', 'y': 'й', 'z': 'з', 'ʼ': 'ъ',
|
| 8 |
+
'oʻ': 'ў', 'gʻ': 'ғ', 'sh': 'ш', 'ch': 'ч',
|
| 9 |
+
'yo': 'ё', 'yu': 'ю', 'ya': 'я',
|
| 10 |
+
'A': 'А', 'B': 'Б', 'D': 'Д', 'E': 'Е', 'F': 'Ф',
|
| 11 |
+
'G': 'Г', 'H': 'Ҳ', 'I': 'И', 'J': 'Ж', 'K': 'К',
|
| 12 |
+
'L': 'Л', 'M': 'М', 'N': 'Н', 'O': 'О', 'P': 'П',
|
| 13 |
+
'Q': 'Қ', 'R': 'Р', 'S': 'С', 'T': 'Т', 'U': 'У',
|
| 14 |
+
'V': 'В', 'X': 'Х', 'Y': 'Й', 'Z': 'З', 'ʼ': 'Ъ',
|
| 15 |
+
'Oʻ': 'Ў', 'Gʻ': 'Ғ', 'Sh': 'Ш', 'Ch': 'Ч',
|
| 16 |
+
'Yo': 'Ё', 'Yu': 'Ю', 'Ya': 'Я'
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
# Функция для конвертации латиницы в кириллицу
|
| 21 |
+
def latin_to_cyrillic(text):
|
| 22 |
+
if not text:
|
| 23 |
+
return ""
|
| 24 |
+
|
| 25 |
+
cyrillic = ''
|
| 26 |
+
i = 0
|
| 27 |
+
while i < len(text):
|
| 28 |
+
# Проверка на двухсимвольные сочетания
|
| 29 |
+
if i + 1 < len(text) and text[i:i+2] in mapping:
|
| 30 |
+
cyrillic += mapping[text[i:i+2]]
|
| 31 |
+
i += 2
|
| 32 |
+
# Проверка на 'ye' в начале слова или после гласных
|
| 33 |
+
elif (i == 0 or text[i-1] in 'aeiouoʻ') and text[i:i+2] == 'ye':
|
| 34 |
+
cyrillic += 'е'
|
| 35 |
+
i += 2
|
| 36 |
+
# Проверка на односимвольные сочетания
|
| 37 |
+
elif text[i] in mapping:
|
| 38 |
+
cyrillic += mapping[text[i]]
|
| 39 |
+
i += 1
|
| 40 |
+
# Игнорирование мягкого знака 'ь'
|
| 41 |
+
elif text[i] == 'ь':
|
| 42 |
+
i += 1
|
| 43 |
+
else:
|
| 44 |
+
cyrillic += text[i]
|
| 45 |
+
i += 1
|
| 46 |
+
return cyrillic
|
| 47 |
+
|
| 48 |
+
import gradio as gr
|
| 49 |
+
|
| 50 |
+
demo = gr.Interface(
|
| 51 |
+
fn=latin_to_cyrillic,
|
| 52 |
+
inputs=["textarea"],
|
| 53 |
+
outputs=["textarea"],
|
| 54 |
+
)
|
| 55 |
+
|
| 56 |
+
demo.launch()
|