translate / app.py
soiz's picture
Update app.py
b4285a3 verified
raw
history blame
1.95 kB
import gradio as gr
from deep_translator import GoogleTranslator, MyMemoryTranslator
# 言語のリストを定義(例: Google翻訳がサポートする言語)
LANGUAGES = {
"English": "en",
"Japanese": "ja",
"French": "fr",
"Spanish": "es",
"German": "de",
"Chinese (Simplified)": "zh-CN",
}
# 翻訳関数
def translate_with_multiple_ais(text, target_language):
try:
# GoogleTranslatorを使用
google_translated = GoogleTranslator(source='auto', target=target_language).translate(text)
except Exception as e:
google_translated = f"Error: {str(e)}"
try:
# MyMemoryTranslatorを使用
mymemory_translated = MyMemoryTranslator(source='auto', target=target_language).translate(text)
except Exception as e:
mymemory_translated = f"Error: {str(e)}"
# 2つの翻訳結果を返す
return google_translated, mymemory_translated
# Gradioインターフェースの設定
with gr.Blocks() as demo:
gr.Markdown("# Multi-AI Translator")
gr.Markdown("このアプリはGoogle TranslatorとMyMemory Translatorを使用してテキストを翻訳します。")
with gr.Row():
input_text = gr.Textbox(label="Text to Translate", placeholder="Enter text here...")
target_language = gr.Dropdown(choices=list(LANGUAGES.keys()), label="Target Language")
with gr.Row():
google_translation = gr.Textbox(label="Google Translator Result", interactive=False)
mymemory_translation = gr.Textbox(label="MyMemory Translator Result", interactive=False)
translate_button = gr.Button("Translate")
# 翻訳ボタンの動作を設定
translate_button.click(
fn=lambda text, lang: translate_with_multiple_ais(text, LANGUAGES[lang]),
inputs=[input_text, target_language],
outputs=[google_translation, mymemory_translation]
)
# アプリを実行
demo.launch()