Spaces:
Running
Running
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") | |