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") | |