Update app.py
Browse files
app.py
CHANGED
@@ -52,7 +52,7 @@ def main():
|
|
52 |
def handle_input(text, translation, lang_detect, audio_processor):
|
53 |
# Auto-detect source language with options
|
54 |
if len(text) < 10: # Minimum length for reliable detection
|
55 |
-
detected_options = [("English", 1.0)]
|
56 |
else:
|
57 |
detected_options = lang_detect.detect_language(text)
|
58 |
st.session_state.detected_options = detected_options
|
@@ -60,18 +60,36 @@ def handle_input(text, translation, lang_detect, audio_processor):
|
|
60 |
# Set initial source language to the top detected option
|
61 |
st.session_state.source_lang = detected_options[0][0] if detected_options else "English"
|
62 |
|
63 |
-
#
|
64 |
-
|
65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
if override_lang != "Auto":
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
|
|
70 |
|
71 |
-
st.info(f"Selected Source Language: {st.session_state.source_lang}")
|
72 |
|
73 |
-
# Target language selection
|
74 |
-
|
|
|
|
|
|
|
75 |
|
76 |
# Translate button
|
77 |
if st.button("Translate", key="translate_button"):
|
|
|
52 |
def handle_input(text, translation, lang_detect, audio_processor):
|
53 |
# Auto-detect source language with options
|
54 |
if len(text) < 10: # Minimum length for reliable detection
|
55 |
+
detected_options = [("English", 1.0, "English")]
|
56 |
else:
|
57 |
detected_options = lang_detect.detect_language(text)
|
58 |
st.session_state.detected_options = detected_options
|
|
|
60 |
# Set initial source language to the top detected option
|
61 |
st.session_state.source_lang = detected_options[0][0] if detected_options else "English"
|
62 |
|
63 |
+
# Display native language names for detected options
|
64 |
+
native_lang_map = {
|
65 |
+
"English": "English",
|
66 |
+
"French": "Français",
|
67 |
+
"Spanish": "Español",
|
68 |
+
"German": "Deutsch",
|
69 |
+
"Hindi": "हिन्दी",
|
70 |
+
"Chinese": "中文",
|
71 |
+
"Arabic": "العربية",
|
72 |
+
"Russian": "Русский",
|
73 |
+
"Japanese": "日本語",
|
74 |
+
}
|
75 |
+
display_options = ["Auto"] + [f"{native_lang_map.get(lang, lang)} ({conf:.2f})" for lang, conf, _ in detected_options] + list(translation.LANGUAGES.keys())
|
76 |
+
override_lang = st.selectbox("Override Detected Language", display_options, index=0, key="override_lang")
|
77 |
+
|
78 |
+
# Map override selection to supported language
|
79 |
if override_lang != "Auto":
|
80 |
+
selected_lang = next((lang for lang, _, _ in detected_options if native_lang_map.get(lang, lang) in override_lang), override_lang)
|
81 |
+
st.session_state.source_lang = selected_lang
|
82 |
+
if selected_lang not in translation.LANGUAGES:
|
83 |
+
st.session_state.source_lang = "English"
|
84 |
+
st.warning(f"{native_lang_map.get(selected_lang, selected_lang)} is not supported by the translation model. Using English instead.")
|
85 |
|
86 |
+
st.info(f"Selected Source Language: {native_lang_map.get(st.session_state.source_lang, st.session_state.source_lang)}")
|
87 |
|
88 |
+
# Target language selection with native names
|
89 |
+
target_options = {lang: native_lang_map.get(lang, lang) for lang in translation.LANGUAGES}
|
90 |
+
target_lang = st.selectbox("Target Language", [target_options[lang] for lang in translation.LANGUAGES],
|
91 |
+
index=1, key="target_lang", format_func=lambda x: x)
|
92 |
+
target_lang = next(key for key, value in target_options.items() if value == target_lang)
|
93 |
|
94 |
# Translate button
|
95 |
if st.button("Translate", key="translate_button"):
|