File size: 2,661 Bytes
7061340
 
469df6d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1f5c327
469df6d
 
 
 
7bc28ee
7061340
469df6d
 
 
 
1f5c327
 
 
 
7061340
 
4726787
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
39
40
41
42
43
44
45
46
47
48
49
50
import gradio as gr

# Tifinagh to Latin conversion map
tifinagh_to_latin_map = {
    'ⴰ': 'a', 'ⴱ': 'b', 'ⵛ': 'c', 'ⴷ': 'd', 'ⴻ': 'e', 'ⴼ': 'f', 'ⴳ': 'g', 'ⵀ': 'h', 
    'ⵉ': 'i', 'ⵊ': 'j', 'ⴽ': 'k', 'ⵍ': 'l', 'ⵎ': 'm', 'ⵏ': 'n', 'ⵓ': 'u', 'ⵒ': 'p', 
    'ⵇ': 'q', 'ⵔ': 'r', 'ⵙ': 's', 'ⵜ': 't', 'ⵡ': 'w', 'ⵅ': 'x', 'ⵢ': 'y', 
    'ⵣ': 'z', 'ⴽⵯ': 'kʷ', 'ⵯ': 'ʷ', 'ⵇⵯ': 'qʷ', 'ⵖ': 'ɣ', 'ⵄ': 'ɛ', 'ⵥ': 'ẓ', 
    'ⵕ': 'ṛ', 'ⵚ': 'ṣ', 'ⵃ': 'ḥ', 'ⵟ': 'ṭ', 'ⴹ': 'ḍ'
}

# Latin to Tifinagh conversion map (support for both uppercase and lowercase)
latin_to_tifinagh_map = {
    'A': 'ⴰ', 'B': 'ⴱ', 'C': 'ⵛ', 'D': 'ⴷ', 'E': 'ⴻ', 'F': 'ⴼ', 'G': 'ⴳ', 'H': 'ⵀ', 
    'I': 'ⵉ', 'J': 'ⵊ', 'K': 'ⴽ', 'L': 'ⵍ', 'M': 'ⵎ', 'N': 'ⵏ', 'U': 'ⵓ', 'P': 'ⵒ', 
    'Q': 'ⵇ', 'R': 'ⵔ', 'S': 'ⵙ', 'T': 'ⵜ', 'V': 'ⴼ', 'W': 'ⵡ', 'X': 'ⵅ', 'Y': 'ⵢ', 
    'Z': 'ⵣ', 'kʷ': 'ⴽⵯ', 'ʷ': 'ⵯ', 'qʷ': 'ⵇⵯ', 'ɣ': 'ⵖ', 'ɛ': 'ⵄ', 'ẓ': 'ⵥ', 
    'ṛ': 'ⵕ', 'ṣ': 'ⵚ', 'ḥ': 'ⵃ', 'ṭ': 'ⵟ',
    'a': 'ⴰ', 'b': 'ⴱ', 'c': 'ⵛ', 'd': 'ⴷ', 'e': 'ⴻ', 'f': 'ⴼ', 'g': 'ⴳ', 'h': 'ⵀ', 
    'i': 'ⵉ', 'j': 'ⵊ', 'k': 'ⴽ', 'l': 'ⵍ', 'm': 'ⵎ', 'n': 'ⵏ', 'o': 'ⵓ', 'p': 'ⵒ', 
    'q': 'ⵇ', 'r': 'ⵔ', 's': 'ⵙ', 't': 'ⵜ', 'v': 'ⴼ', 'w': 'ⵡ', 'x': 'ⵅ', 'y': 'ⵢ', 
    'z': 'ⵣ','ḍ':'ⴹ','Ḍ':'ⴹ'
}

def convert_text(input_text, conversion_type):
    if conversion_type == 'Tifinagh to Latin':
        return ''.join(tifinagh_to_latin_map.get(char, char) for char in input_text)
    elif conversion_type == 'Latin to Tifinagh':
        return ''.join(latin_to_tifinagh_map.get(char, char) for char in input_text)
    return input_text

# Gradio Interface with updated theme, centered description, and frame
iface = gr.Interface(
    fn=convert_text,
    inputs=[
        gr.Textbox(label="Enter Text", placeholder="Type text here..."),
        gr.Radio(["Tifinagh to Latin", "Latin to Tifinagh"], label="From")
    ],
    outputs=gr.Textbox(label="Converted Text", interactive=True),
    live=True,
    title="Tifinagh Converter",
    description="<center>Convert text between Tifinagh and Latin scripts.</center>",  # Centering the description
    theme=gr.themes.Glass(),  # Updated theme
    layout="vertical",  # Ensures a clean, vertically stacked layout
    elem_id="main-frame",  # Optional, allows targeting with custom CSS if needed
    css=".gradio-container { border: 2px solid #000; padding: 20px; border-radius: 10px; }"  # Adding a border around the interface
)

iface.launch()