EduTechTeam commited on
Commit
77230c0
·
verified ·
1 Parent(s): a6ffaa2

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +68 -0
app.py ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from deep_translator import GoogleTranslator
3
+
4
+ # 使用 deep-translator 官方支援的語言清單
5
+ SUPPORTED_LANGUAGES = {
6
+ 'en': '英文',
7
+ 'es': '西班牙語',
8
+ 'fr': '法語',
9
+ 'de': '德語',
10
+ 'zh-CN': '中文(簡體)',
11
+ 'zh-TW': '中文(繁體)',
12
+ 'it': '義大利語',
13
+ 'ja': '日語',
14
+ 'ko': '韓語',
15
+ 'ru': '俄語',
16
+ 'pt': '葡萄牙語',
17
+ 'ar': '阿拉伯語'
18
+ }
19
+
20
+ # 提供選擇語言的下拉選單選項
21
+ LANGUAGE_CHOICES = [(code, name) for code, name in SUPPORTED_LANGUAGES.items()]
22
+
23
+ def translate_text(text, target_language_full):
24
+ """將輸入文字翻譯成指定語言"""
25
+ try:
26
+ # 提取語言代碼
27
+ target_language = target_language_full.split(":")[0].strip()
28
+ if target_language not in SUPPORTED_LANGUAGES:
29
+ raise ValueError("所選語言不支援")
30
+
31
+ # 翻譯文字
32
+ translator = GoogleTranslator(source='auto', target=target_language)
33
+ return translator.translate(text)
34
+ except Exception as e:
35
+ # 回傳友善的錯誤提示
36
+ return f"翻譯失敗:{str(e)}\n請確認所選語言是否正確。"
37
+
38
+ # Gradio UI
39
+ with gr.Blocks() as demo:
40
+ gr.Markdown("## 🌍 多國語言翻譯機 ")
41
+ gr.Markdown(" 輸入文字並選擇翻譯後的語言,點擊 **執行翻譯** 以查看結果。")
42
+
43
+ # 文字輸入框(支援段落)
44
+ text_input = gr.TextArea(label="輸入文字", placeholder="請輸入要翻譯的文字...")
45
+
46
+ # 語言下拉選單
47
+ language_dropdown = gr.Dropdown(
48
+ choices=[f"{code}: {name}" for code, name in LANGUAGE_CHOICES],
49
+ label="選擇翻譯後的語言",
50
+ value='en: 英文', # 預設翻譯到英文
51
+ interactive=True
52
+ )
53
+
54
+ # 翻譯按鈕
55
+ translate_button = gr.Button("執行翻譯")
56
+
57
+ # 翻譯結果顯示框
58
+ output_text = gr.Textbox(label="翻譯結果", interactive=False)
59
+
60
+ # 配置按鈕的點擊事件
61
+ translate_button.click(
62
+ fn=translate_text,
63
+ inputs=[text_input, language_dropdown],
64
+ outputs=output_text
65
+ )
66
+
67
+ # 啟動 Gradio 應用
68
+ demo.launch()