import warnings warnings.filterwarnings("ignore") import gradio as gr from tabs.leaderboard_v1_kr import create_leaderboard_v2_interface as leaderboard_kr from tabs.leaderboard_v1_en import create_leaderboard_v2_interface as leaderboard_en # 다크 모드 텍스트 색상 보정 FIX_DARK_TEXT_CSS = """ html.dark .gr-prose, html.dark .gr-prose p, html.dark .gr-prose strong, html.dark .gr-prose code, html.dark .gr-markdown, html.dark .gr-markdown * { color: #ffffff !important; } """ def create_app(): theme = gr.themes.Default() with gr.Blocks(theme=theme, css=FIX_DARK_TEXT_CSS) as app: # 🔹 왼쪽 상단에 언어 전환 버튼 with gr.Row(): lang_btn = gr.Button("🌍 English", scale=0, elem_id="lang-toggle-btn") # 🔹 기본은 한국어 UI with gr.Column(visible=True) as kr_view: leaderboard_kr() # 🔹 영어 UI는 숨김 with gr.Column(visible=False) as en_view: leaderboard_en() # 🔹 버튼 클릭 시 토글 def toggle_language(current_label): if "English" in current_label: return "🇰🇷 Korean", gr.update(visible=False), gr.update(visible=True) else: return "🌍 English", gr.update(visible=True), gr.update(visible=False) lang_btn.click( toggle_language, inputs=[lang_btn], outputs=[lang_btn, kr_view, en_view], ) return app demo = create_app() demo.launch(ssr_mode=False)