File size: 4,325 Bytes
8f42dbc
86fc274
 
 
3a45642
86fc274
 
 
85eb15f
 
868a628
 
 
 
 
 
 
 
6c1337e
 
 
 
 
85eb15f
 
868a628
ece2403
0d0cc20
ece2403
768b959
add6b49
75b31de
 
768b959
3d9bc3d
768b959
6c1337e
768b959
ece2403
 
8f42dbc
37dc90d
0d0cc20
8f42dbc
 
 
 
 
 
0d0cc20
add6b49
3d9bc3d
0d0cc20
ece2403
 
 
 
 
85eb15f
0d0cc20
3d9bc3d
0d0cc20
 
 
 
 
add6b49
 
 
 
 
 
 
 
 
0d0cc20
8f42dbc
 
0d0cc20
8f42dbc
0d0cc20
 
 
 
 
8f42dbc
0d0cc20
8f42dbc
0d0cc20
 
 
 
 
 
 
 
8f42dbc
37dc90d
0d0cc20
3d9bc3d
 
 
 
 
 
 
 
8f42dbc
37dc90d
 
 
 
 
8f42dbc
37dc90d
 
 
 
 
 
3d9bc3d
 
868a628
85eb15f
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import gradio as gr 
from transformers import MarianMTModel, MarianTokenizer

# Charger le modèle et le tokenizer depuis Hugging Face
model_name = "MrFrijo/LiAPI"  # Nom du modèle sur Hugging Face

model = MarianMTModel.from_pretrained(model_name)
tokenizer = MarianTokenizer.from_pretrained(model_name)

def translate_text(text, src_lang, target_lang):
    # Préparer les entrées pour le modèle
    tokenized_text = tokenizer(text, return_tensors="pt")

    # Effectuer la traduction
    translated = model.generate(**tokenized_text)

    # Convertir et retourner le texte traduit
    translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
    translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
    texte = translated_text.replace('â', 'á').replace('ô', 'ó')
    # Remplacement spécifique de "bongó" par "bongô"
    translated_text = texte.replace('mbonte', 'mbónte')
    translated_text = texte.replace('bongó', 'bongô')
    return translated_text

# Créer l'interface Gradio
with gr.Blocks() as interface:
    # Titre et description avec du texte en italique et en gras en lingala
    gr.Markdown("""
    <meta name="google-site-verification" content="V5N6E-KOxVg6Krzh1FygjzD-InlZAhihLYsAr2Wt6hc" />
    <div class="contenant">
        <h2 style=" width:100%;">Traduction automatique Lingala-Français</h2>
        <div style=" width:100%;">Ceci est la version d'essai et nous comptons sur vous pour améliorer les performances du modèle pour notre langue Lingala.</div>
        <div style=" width:100%;"><strong><em>Si vous voulez contribuer ou nous soutenir pour ce projet veuillez nous envoyer un message en cliquant sur le lien ci-bas</em></strong></p>
    </div>
    
    <div style=" width:100%;"><a>Contactez-nous : [email protected]</a> Ou au : <a>+243810239619</a></p>
    
    """)

    # Créer une colonne
    with gr.Column():
        text_input = gr.Textbox(label="Entrez le texte à traduire", placeholder="Entrez le texte à traduire ici...", lines=3)
        
        # Utilisation d'un Row pour mettre les deux Dropdown sur la même ligne
        with gr.Row():
            source_lang = gr.Dropdown(choices=["fr", "li"], label="Langue Source")
            target_lang = gr.Dropdown(choices=["li", "fr"], label="Langue Cible")
        
        translation_output = gr.Textbox(label="Traduction", placeholder="Le texte traduit s'affichera ici...")
        translate_button = gr.Button("Traduire")

    # Lier le bouton au processus de traduction
    translate_button.click(
        translate_text, 
        inputs=[text_input, source_lang, target_lang], 
        outputs=translation_output
    )

# Personnalisation CSS pour la boîte et les textes
interface.css = """
    /* Police personnalisée pour rendre l'interface plus attrayante */
    @import url('https://fonts.googleapis.com/css2?family=Lobster&display=swap');
    
    .gradio-container {
        font-family: 'Arial', sans-serif;
    }
      .contenant {
       text-align: center;
       font-family: Ghisha;
       width:100%;
       display: flex; 
       justify-content: center; 
       width:100%;
       flex-wrap: wrap;
    }
    
    /* Bouton avec couleur orangée */
    .gradio-button {
        background-color: #FFA500;
        color: white;
        border-radius: 5px;
        border: none;
    }
    .gradio-button:hover {
        background-color: #FF7F00;
    }

    .gr-markdown {
        font-family: 'Lobster', sans-serif;
        font-size: 24px;
        font-weight: bold;
    }
    .gradio-row {
        margin-top: 10px;
    }
    
    /* Centrer la colonne et ajouter un style à la zone de texte */
    .gr-column {
        width: 50%;
        margin: auto;
        padding: 20px;
        border: 2px solid #ddd;
        border-radius: 10px;
        background-color: #f9f9f9;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    }

    /* Appliquer un style pour le texte d'entrée */
    .gr-textbox {
        font-size: 16px;
        padding: 10px;
    }

    /* Appliquer un style pour la sortie de traduction */
    .gr-textbox[placeholder='Le texte traduit s\'affichera ici...'] {
        font-size: 16px;
        font-weight: bold;
        color: #2E8B57; /* Couleur verte pour l'output */
    }
"""

# Lancer l'interface
interface.launch()