penut85420's picture
Update app.py
6ac8a12 verified
raw
history blame contribute delete
No virus
1.35 kB
import json
import gradio as gr
from opencc import OpenCC
with open("config.json", "rt", encoding="UTF-8") as fp:
config: dict = json.load(fp)
rev_config = {f"{v} ({k})": OpenCC(k) for k, v in config.items()}
rev_config_keys = list(rev_config.keys())
title = "簡繁轉換小工具 OpenCC Converter"
font = gr.themes.GoogleFont("Noto Sans Mono")
theme = gr.themes.Soft(font=font)
with gr.Blocks(title=title, theme=theme) as app:
gr.Markdown("# 簡繁轉換小工具 OpenCC Converter")
with gr.Row():
with gr.Column():
inn_text = gr.TextArea(label="輸入文字", show_copy_button=True)
with gr.Column():
out_text = gr.TextArea(label="輸出文字", show_copy_button=True)
options = gr.Dropdown(rev_config_keys, value=rev_config_keys[0], label="轉換選項")
with gr.Row():
conv_btn = gr.Button("轉換")
clear = gr.ClearButton([inn_text, out_text], value="清除")
gr.Markdown("Powered By [OpenCC](https://github.com/BYVoid/OpenCC)")
def convert(inn, opt):
return rev_config[opt].convert(inn)
args = (convert, [inn_text, options], [out_text])
kwargs = {"show_progress": "hidden", "queue": False}
inn_text.change(*args, **kwargs)
options.change(*args, **kwargs)
conv_btn.click(*args, **kwargs)
app.launch(favicon_path="icon.png")