daswer123 commited on
Commit
5bdc509
1 Parent(s): f42a3e1

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +56 -0
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()