fouziar's picture
Create app.py
5a26e1e verified
Raw
History Blame Contribute Delete
2.86 kB
import streamlit as st
from datetime import date
import random
# Vocabulary Data (Sample only)
vocabulary = {
"Greetings": {
"Hello": "Hei",
"Good morning": "God morgen",
"Good night": "God natt",
"Goodbye": "Ha det",
"Thank you": "Takk"
},
"Numbers": {
"One": "En",
"Two": "To",
"Three": "Tre",
"Four": "Fire",
"Five": "Fem"
},
"Colors": {
"Red": "Rød",
"Blue": "Blå",
"Green": "Grønn",
"Yellow": "Gul",
"Black": "Svart"
},
"Food": {
"Bread": "Brød",
"Milk": "Melk",
"Apple": "Eple",
"Water": "Vann",
"Cheese": "Ost"
}
}
daily_phrases = [
("How are you?", "Hvordan har du det?"),
("My name is...", "Jeg heter..."),
("I am learning Norwegian", "Jeg lærer norsk"),
("What time is it?", "Hva er klokka?"),
("I like Norway", "Jeg liker Norge")
]
st.set_page_config(page_title="Learn Norwegian", page_icon="🇳🇴", layout="centered")
st.title("Learn Norwegian 🇳🇴")
st.markdown("Welcome! This app helps you learn basic Norwegian vocabulary and phrases interactively.")
# Sidebar Menu
menu = st.sidebar.radio("Choose a section:", ["Vocabulary", "Flashcards", "Quiz", "Daily Phrase"])
# Vocabulary Section
if menu == "Vocabulary":
st.header("📖 Vocabulary")
category = st.selectbox("Choose a category:", list(vocabulary.keys()))
st.subheader(f"{category} Words")
for eng, nor in vocabulary[category].items():
st.write(f"🔹 {eng}{nor}")
# Flashcards
elif menu == "Flashcards":
st.header("📝 Flashcards")
cat = st.selectbox("Select a category:", list(vocabulary.keys()))
words = list(vocabulary[cat].items())
word = random.choice(words)
show = st.button("Show Answer")
st.write(f"What is the Norwegian word for: ")
st.subheader(f"🟦 {word[0]}")
if show:
st.success(f"✅ {word[1]}")
# Quiz Section
elif menu == "Quiz":
st.header("🎯 Vocabulary Quiz")
cat = st.selectbox("Choose a category:", list(vocabulary.keys()))
question_word, correct_answer = random.choice(list(vocabulary[cat].items()))
options = random.sample(list(vocabulary[cat].values()), k=3)
if correct_answer not in options:
options[random.randint(0, 2)] = correct_answer
st.write(f"What is the Norwegian word for: {question_word}?")
choice = st.radio("Options:", options)
if st.button("Submit Answer"):
if choice == correct_answer:
st.success("Correct! 🎉")
else:
st.error(f"Wrong! The correct answer is {correct_answer}.")
# Daily Phrase
elif menu == "Daily Phrase":
st.header("🔹 Daily Norwegian Phrase")
phrase = random.choice(daily_phrases)
st.info(f"💬 {phrase[0]} → 🇳🇴 {phrase[1]}")