admin
replace
a29d530
raw
history blame
1.88 kB
import json
import requests
import gradio as gr
from utils import API_TRANS, KEY_TRANS, EN_US
ZH2EN = {
"输入文本区域": "Input text area",
"在这里输入文本...": "Type the text here...",
"模式": "Mode",
"翻译结果": "Translation results",
"状态栏": "Status",
}
def _L(zh_txt: str):
return ZH2EN[zh_txt] if EN_US else zh_txt
def infer(source, direction):
status = "Success"
result = None
try:
if not source or not direction:
raise ValueError("请输入有效文本!")
response = requests.request(
"POST",
API_TRANS,
data=json.dumps(
{
"source": source,
"trans_type": direction,
"request_id": "demo",
"detect": True,
}
),
headers={
"content-type": "application/json",
"x-authorization": f"token {KEY_TRANS}",
},
)
result = json.loads(response.text)["target"]
except Exception as e:
status = f"{e}"
return status, result
def translator():
return gr.Interface(
fn=infer,
inputs=[
gr.TextArea(label=_L("输入文本区域"), placeholder=_L("在这里输入文本...")),
gr.Textbox(label=_L("模式"), value="auto2en"),
],
outputs=[
gr.Textbox(label=_L("状态栏"), show_copy_button=True),
gr.TextArea(label=_L("翻译结果"), show_copy_button=True),
],
flagging_mode="never",
examples=[
["这是最好的翻译服务。", "auto2ja"],
["これは最高の翻訳サービスです。", "auto2en"],
["This is the best translation service.", "auto2zh"],
],
cache_examples=False,
)