Update app.py
Browse files
app.py
CHANGED
|
@@ -1,54 +1,31 @@
|
|
| 1 |
-
import
|
| 2 |
-
from deep_translator import GoogleTranslator
|
| 3 |
|
| 4 |
-
|
| 5 |
-
LANGUAGES = {
|
| 6 |
-
"English": "en",
|
| 7 |
-
"Japanese": "ja",
|
| 8 |
-
"French": "fr",
|
| 9 |
-
"Spanish": "es",
|
| 10 |
-
"German": "de",
|
| 11 |
-
"Chinese (Simplified)": "zh-CN",
|
| 12 |
-
}
|
| 13 |
|
| 14 |
# 翻訳関数
|
| 15 |
-
def
|
| 16 |
try:
|
| 17 |
-
|
| 18 |
-
|
|
|
|
| 19 |
except Exception as e:
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
|
|
|
|
|
|
| 30 |
|
| 31 |
-
#
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
gr.Markdown("このアプリはGoogle TranslatorとMyMemory Translatorを使用してテキストを翻訳します。")
|
| 35 |
-
|
| 36 |
-
with gr.Row():
|
| 37 |
-
input_text = gr.Textbox(label="Text to Translate", placeholder="Enter text here...")
|
| 38 |
-
target_language = gr.Dropdown(choices=list(LANGUAGES.keys()), label="Target Language")
|
| 39 |
-
|
| 40 |
-
with gr.Row():
|
| 41 |
-
google_translation = gr.Textbox(label="Google Translator Result", interactive=False)
|
| 42 |
-
mymemory_translation = gr.Textbox(label="MyMemory Translator Result", interactive=False)
|
| 43 |
-
|
| 44 |
-
translate_button = gr.Button("Translate")
|
| 45 |
-
|
| 46 |
-
# 翻訳ボタンの動作を設定
|
| 47 |
-
translate_button.click(
|
| 48 |
-
fn=lambda text, lang: translate_with_multiple_ais(text, LANGUAGES[lang]),
|
| 49 |
-
inputs=[input_text, target_language],
|
| 50 |
-
outputs=[google_translation, mymemory_translation]
|
| 51 |
-
)
|
| 52 |
|
| 53 |
-
|
| 54 |
-
|
|
|
|
| 1 |
+
from flask import Flask, request, jsonify
|
| 2 |
+
from deep_translator import GoogleTranslator
|
| 3 |
|
| 4 |
+
app = Flask(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
|
| 6 |
# 翻訳関数
|
| 7 |
+
def translate_text(text, target_language):
|
| 8 |
try:
|
| 9 |
+
translator = GoogleTranslator(source='auto', target=target_language)
|
| 10 |
+
translated_text = translator.translate(text)
|
| 11 |
+
return {"translated_text": translated_text}
|
| 12 |
except Exception as e:
|
| 13 |
+
return {"error": str(e)}
|
| 14 |
+
|
| 15 |
+
# エンドポイント "/"
|
| 16 |
+
@app.route("/", methods=["POST"])
|
| 17 |
+
def translate():
|
| 18 |
+
data = request.json
|
| 19 |
+
# 必須フィールドのチェック
|
| 20 |
+
if not data or "text" not in data or "target_language" not in data:
|
| 21 |
+
return jsonify({"error": "Invalid request. 'text' and 'target_language' fields are required."}), 400
|
| 22 |
+
|
| 23 |
+
text = data["text"]
|
| 24 |
+
target_language = data["target_language"]
|
| 25 |
|
| 26 |
+
# 翻訳処理
|
| 27 |
+
result = translate_text(text, target_language)
|
| 28 |
+
return jsonify(result)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
|
| 30 |
+
if __name__ == "__main__":
|
| 31 |
+
app.run(host="0.0.0.0", port=7860)
|