Update app.py
Browse files
app.py
CHANGED
|
@@ -1,24 +1,59 @@
|
|
| 1 |
import gradio as gr
|
| 2 |
from mtranslate import translate
|
| 3 |
|
| 4 |
-
#
|
| 5 |
-
|
| 6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
|
| 8 |
def translate_text(lang, text):
|
|
|
|
|
|
|
|
|
|
| 9 |
# Comprobar si el texto supera el límite de 4000 caracteres.
|
| 10 |
if len(text) > 4000:
|
| 11 |
chunks = [text[i:i + 4000] for i in range(0, len(text), 4000)]
|
| 12 |
-
translated_chunks = [translate(chunk,
|
| 13 |
translated_text = ''.join(translated_chunks)
|
| 14 |
else:
|
| 15 |
-
translated_text = translate(text,
|
| 16 |
return translated_text
|
| 17 |
|
| 18 |
with gr.Blocks(analytics_enabled=False) as app:
|
| 19 |
|
| 20 |
Source = gr.Textbox(label="Source")
|
| 21 |
-
Language = gr.Dropdown(lang_list, label="Language", default="
|
| 22 |
Translate = gr.Button("Translate")
|
| 23 |
Result = gr.Textbox(label="Result")
|
| 24 |
|
|
@@ -30,4 +65,3 @@ with gr.Blocks(analytics_enabled=False) as app:
|
|
| 30 |
)
|
| 31 |
|
| 32 |
app.launch(inline=True)
|
| 33 |
-
# Omitido el bloque.queue ya que no estaba claro su uso en su ejemplo
|
|
|
|
| 1 |
import gradio as gr
|
| 2 |
from mtranslate import translate
|
| 3 |
|
| 4 |
+
# Diccionario de idiomas, sus códigos y emojis de banderas
|
| 5 |
+
lang_dict = {
|
| 6 |
+
'Español 🇪🇸': 'es',
|
| 7 |
+
'English 🇬🇧': 'en',
|
| 8 |
+
'普通话 (Mandarín) 🇨🇳': 'zh',
|
| 9 |
+
'हिंदी (Hindi) 🇮🇳': 'hi',
|
| 10 |
+
'العربية (Árabe) 🇸🇦': 'ar',
|
| 11 |
+
'Português 🇵🇹': 'pt',
|
| 12 |
+
'বাংলা (Bengalí) 🇧🇩': 'bn',
|
| 13 |
+
'Русский (Ruso) 🇷🇺': 'ru',
|
| 14 |
+
'日本語 (Japonés) 🇯🇵': 'ja',
|
| 15 |
+
'ਪੰਜਾਬੀ (Panyabí) 🇮🇳': 'pa',
|
| 16 |
+
'Deutsch 🇩🇪': 'de',
|
| 17 |
+
'Jawa 🇮🇩': 'jw',
|
| 18 |
+
'한국어 (Coreano) 🇰🇷': 'ko',
|
| 19 |
+
'Français 🇫🇷': 'fr',
|
| 20 |
+
'Tiếng Việt 🇻🇳': 'vi',
|
| 21 |
+
'Türkçe 🇹🇷': 'tr',
|
| 22 |
+
'Italiano 🇮🇹': 'it',
|
| 23 |
+
'Українська (Ucraniano) 🇺🇦': 'uk',
|
| 24 |
+
'ไทย (Tailandés) 🇹🇭': 'th',
|
| 25 |
+
'ગુજરાતી (Guyaratí) 🇮🇳': 'gu',
|
| 26 |
+
'Polski 🇵🇱': 'pl',
|
| 27 |
+
'Ελληνικά (Griego) 🇬🇷': 'el',
|
| 28 |
+
'Nederlands 🇳🇱': 'nl',
|
| 29 |
+
'Svenska (Sueco) 🇸🇪': 'sv',
|
| 30 |
+
'Română 🇷🇴': 'ro',
|
| 31 |
+
'Čeština 🇨🇿': 'cs',
|
| 32 |
+
'Magyar (Húngaro) 🇭🇺': 'hu',
|
| 33 |
+
'हैज़ (Hebreo) 🇮🇱': 'he',
|
| 34 |
+
'Bahasa Indonesia 🇮🇩': 'id',
|
| 35 |
+
'नेपाली (Nepalí) 🇳🇵': 'ne'
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
lang_list = list(lang_dict.keys())
|
| 39 |
|
| 40 |
def translate_text(lang, text):
|
| 41 |
+
# Obtener el código del idioma
|
| 42 |
+
lang_code = lang_dict[lang]
|
| 43 |
+
|
| 44 |
# Comprobar si el texto supera el límite de 4000 caracteres.
|
| 45 |
if len(text) > 4000:
|
| 46 |
chunks = [text[i:i + 4000] for i in range(0, len(text), 4000)]
|
| 47 |
+
translated_chunks = [translate(chunk, lang_code) for chunk in chunks]
|
| 48 |
translated_text = ''.join(translated_chunks)
|
| 49 |
else:
|
| 50 |
+
translated_text = translate(text, lang_code)
|
| 51 |
return translated_text
|
| 52 |
|
| 53 |
with gr.Blocks(analytics_enabled=False) as app:
|
| 54 |
|
| 55 |
Source = gr.Textbox(label="Source")
|
| 56 |
+
Language = gr.Dropdown(lang_list, label="Language", default="Español 🇪🇸")
|
| 57 |
Translate = gr.Button("Translate")
|
| 58 |
Result = gr.Textbox(label="Result")
|
| 59 |
|
|
|
|
| 65 |
)
|
| 66 |
|
| 67 |
app.launch(inline=True)
|
|
|