重构webui的页面代码
This commit is contained in:
52
web/components/header.py
Normal file
52
web/components/header.py
Normal file
@@ -0,0 +1,52 @@
|
||||
# Copyright (C) 2025 AIDC-AI
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
"""
|
||||
Header components for web UI
|
||||
"""
|
||||
|
||||
import streamlit as st
|
||||
|
||||
from web.i18n import tr, get_available_languages, set_language
|
||||
from web.utils.streamlit_helpers import safe_rerun
|
||||
|
||||
|
||||
def render_header():
|
||||
"""Render page header with title and language selector"""
|
||||
col1, col2 = st.columns([4, 1])
|
||||
with col1:
|
||||
st.markdown(f"<h3>{tr('app.title')}</h3>", unsafe_allow_html=True)
|
||||
with col2:
|
||||
render_language_selector()
|
||||
|
||||
|
||||
def render_language_selector():
|
||||
"""Render language selector at the top"""
|
||||
languages = get_available_languages()
|
||||
lang_options = [f"{code} - {name}" for code, name in languages.items()]
|
||||
|
||||
current_lang = st.session_state.get("language", "zh_CN")
|
||||
current_index = list(languages.keys()).index(current_lang) if current_lang in languages else 0
|
||||
|
||||
selected = st.selectbox(
|
||||
tr("language.select"),
|
||||
options=lang_options,
|
||||
index=current_index,
|
||||
label_visibility="collapsed"
|
||||
)
|
||||
|
||||
selected_code = selected.split(" - ")[0]
|
||||
if selected_code != current_lang:
|
||||
st.session_state.language = selected_code
|
||||
set_language(selected_code)
|
||||
safe_rerun()
|
||||
|
||||
Reference in New Issue
Block a user