Files
AI-Video/web/components/header.py
2025-11-17 20:44:17 +08:00

53 lines
1.7 KiB
Python

# 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()