junaid17 commited on
Commit
1efef93
Β·
verified Β·
1 Parent(s): 9a6fb49

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +49 -3
main.py CHANGED
@@ -8,7 +8,7 @@ st.set_page_config(page_title="Kurdish Translator", layout="wide")
8
 
9
  # Initialize session state
10
  if "theme" not in st.session_state:
11
- st.session_state.theme = "light"
12
  if "src_lang" not in st.session_state:
13
  st.session_state.src_lang = "English"
14
  if "tgt_lang" not in st.session_state:
@@ -65,6 +65,35 @@ h1, h2, h3, p, label {{
65
  from {{ transform: translateY(0); }}
66
  to {{ transform: translateY(-12px); }}
67
  }}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  .output-box {{
69
  padding: 20px;
70
  border-radius: 12px;
@@ -85,7 +114,24 @@ h1, h2, h3, p, label {{
85
  def get_model():
86
  return load_model()
87
 
88
- model = get_model()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
 
90
  # -----------------------------
91
  # CALLBACK FUNCTIONS
@@ -171,4 +217,4 @@ if st.session_state.output_text:
171
 
172
  # Copy section
173
  st.code(st.session_state.output_text, language=None)
174
- st.caption("πŸ‘† Select and copy the text above")
 
8
 
9
  # Initialize session state
10
  if "theme" not in st.session_state:
11
+ st.session_state.theme = "dark"
12
  if "src_lang" not in st.session_state:
13
  st.session_state.src_lang = "English"
14
  if "tgt_lang" not in st.session_state:
 
65
  from {{ transform: translateY(0); }}
66
  to {{ transform: translateY(-12px); }}
67
  }}
68
+ .model-loader {{
69
+ display: flex;
70
+ flex-direction: column;
71
+ justify-content: center;
72
+ align-items: center;
73
+ height: 60vh;
74
+ }}
75
+ .spinner {{
76
+ width: 60px;
77
+ height: 60px;
78
+ border: 4px solid {card_bg};
79
+ border-top: 4px solid #4A90E2;
80
+ border-radius: 50%;
81
+ animation: spin 1s linear infinite;
82
+ }}
83
+ @keyframes spin {{
84
+ 0% {{ transform: rotate(0deg); }}
85
+ 100% {{ transform: rotate(360deg); }}
86
+ }}
87
+ .loading-text {{
88
+ margin-top: 20px;
89
+ font-size: 18px;
90
+ color: #4A90E2;
91
+ animation: pulse 1.5s ease-in-out infinite;
92
+ }}
93
+ @keyframes pulse {{
94
+ 0%, 100% {{ opacity: 1; }}
95
+ 50% {{ opacity: 0.5; }}
96
+ }}
97
  .output-box {{
98
  padding: 20px;
99
  border-radius: 12px;
 
114
  def get_model():
115
  return load_model()
116
 
117
+ # Show custom loader while model is loading
118
+ if "model_loaded" not in st.session_state:
119
+ loader_container = st.empty()
120
+ loader_container.markdown(
121
+ """
122
+ <div class='model-loader'>
123
+ <div class='spinner'></div>
124
+ <div class='loading-text'>Loading translation model...</div>
125
+ </div>
126
+ """,
127
+ unsafe_allow_html=True
128
+ )
129
+ model = get_model()
130
+ st.session_state.model_loaded = True
131
+ loader_container.empty()
132
+ st.rerun()
133
+ else:
134
+ model = get_model()
135
 
136
  # -----------------------------
137
  # CALLBACK FUNCTIONS
 
217
 
218
  # Copy section
219
  st.code(st.session_state.output_text, language=None)
220
+ st.caption("πŸ‘† Select and copy the text above (Ctrl+C / Cmd+C)")