import streamlit as st import pandas as pd from st_pages import show_pages_from_config, add_indentation def base(page): st.set_page_config( page_title="GarganTools | " + page, page_icon="img/isc-pif_logo.png", ) st.markdown( f''' ''', unsafe_allow_html=True) # Load Banner image st.image('img/gargantool_banner.jpg') # Reduce size on border st.markdown(""" """, unsafe_allow_html=True) # Load the language file def load_bundle(lang): df = pd.read_csv("lang/text_" + page + ".csv") df = df.query(f"locale == '{lang}'") tmp = {} for i in range(len(df)): tmp[df.key.to_list()[i]] = df.value.to_list()[i] return tmp # Load the language file def update_lang(lang): st.session_state.general_text_dict = load_bundle(lang) st.session_state.general_language = lang # Test if it's first connection on page or else if the last page was this one if 'general_session_page' not in st.session_state.keys(): st.session_state.general_text_dict = load_bundle('fr') st.session_state.general_language = 'fr' st.session_state.general_session_page = page show_pages_from_config() elif st.session_state.general_session_page != page: st.session_state.general_text_dict = load_bundle( st.session_state.general_language) st.session_state.general_session_page = page show_pages_from_config() # Delete every key who aren't fron this file for key in st.session_state.keys(): if 'general_' not in key: del st.session_state[key] add_indentation() # select the lang coltitle, col = st.columns([4, 1]) with coltitle: st.write(st.session_state.general_text_dict['title']) with col: _, col1, col2 = st.columns([1, 1, 1]) with col1: st.button(':fr:', on_click=update_lang, args=('fr',)) with col2: st.button(':us:', on_click=update_lang, args=('en',))