diff --git a/README.md b/README.md
index 7b2de03..3060dcd 100644
--- a/README.md
+++ b/README.md
@@ -1,50 +1,50 @@
-# 30 Days Of Streamlit đ
+# ā§Šā§Ļ āĻĻāĻŋāĻ¨ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ đ
-This is the official repo of `#30DaysOfStreamlit` â a 30-day social challenge for you to learn, build and deploy [Streamlit](https://streamlit.io) apps.
+āĻāĻāĻŋ āĻšāĻ˛ #30DaysOfStreamlit-āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ°ā§āĻĒā§ â āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻ
ā§āĻ¯āĻžāĻĒāĻā§āĻ˛āĻŋ āĻļāĻŋāĻāĻ¤ā§, āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ 30-āĻĻāĻŋāĻ¨ā§āĻ° āĻ¸āĻžāĻŽāĻžāĻāĻŋāĻ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§ˇ
-## How to participate
+## āĻāĻŋāĻāĻžāĻŦā§ āĻ
āĻāĻļāĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻŦā§āĻ¨
-All you need to participate is a computer, a basic understanding of Python, and your curiosity. đ§
+āĻ
āĻāĻļāĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻž āĻĻāĻ°āĻāĻžāĻ° āĻ¤āĻž āĻšāĻ˛ āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ°, āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ§āĻžāĻ°āĻŖāĻž āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ¤ā§āĻšāĻ˛āĨ¤ đ§
-A new challenge is released daily via Streamlit's [Twitter](https://twitter.com/streamlit) and [LinkedIn](https://www.linkedin.com/company/streamlit/posts/?feedView=all) accounts as well as the [`#30DaysOfStreamlit` app](https://share.streamlit.io/streamlit/30days/).
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§āĻ° [āĻā§āĻāĻāĻžāĻ°](https://twitter.com/streamlit) āĻāĻŦāĻ [āĻ˛āĻŋāĻā§āĻāĻĄāĻāĻ¨](https://www.linkedin.com/company/streamlit/posts/?feedView=all) āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§āĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ [`#30DaysOfStreamlit` app](https://share.streamlit.io/streamlit/30days/) āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻ¤āĻŋāĻĻāĻŋāĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/streamlit/30days/)
-Complete the daily challenges, share your solutions with us on Twitter or LinkedIn, and get rewarded with cool Streamlit swag! đ
+āĻĒā§āĻ°āĻ¤āĻŋāĻĻāĻŋāĻ¨ā§āĻ° āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻ°ā§āĻ¨, āĻā§āĻāĻāĻžāĻ° āĻŦāĻž āĻ˛āĻŋāĻā§āĻāĻĄāĻāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻžāĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¸ā§āĻā§āĻ¤ āĻšā§āĻ¨! đ
-## What are the daily challenges?
+## āĻĻā§āĻ¨āĻ¨ā§āĻĻāĻŋāĻ¨ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ āĻāĻŋ?
-Find out more about the specific challenges by participating! The 30-day challenges are divided by 3 levels of difficulty to appeal to participants of all skill levels:
+āĻ
āĻāĻļāĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻāĻžāĻ¨ā§āĻ¨! ā§Šā§Ļ-āĻĻāĻŋāĻ¨ā§āĻ° āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĻāĻā§āĻˇāĻ¤āĻž āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ
āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻŦā§āĻĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ ā§Š āĻ¸ā§āĻ¤āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻāĻā§āĻ¤:
-| Beginner (Days 1-7) | Intermediate (Days 8-23) | Advanced (Days 24-30) |
+| āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ (āĻĻāĻŋāĻ¨ ā§§-ā§) | āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ (āĻĻāĻŋāĻ¨ ā§Ž-ā§¨ā§Š) | āĻāĻ¨ā§āĻ¨āĻ¤ (āĻĻāĻŋāĻ¨ ā§¨ā§Ē-ā§Šā§Ļ) |
| :--- | :---- | :--- |
-| Set up your local and cloud coding environments, install Streamlit, and build your first Streamlit app.| Learn about a new [Streamlit command](https://docs.streamlit.io/library/api-reference) each day and use it to create and deploy a simple Streamlit app. | Learn about important topics such as session state, efficient data and memory management via caching, complex layouts, and much more.
+| āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻāĻĄ āĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§āĻ¨, āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤ | āĻĒā§āĻ°āĻ¤āĻŋāĻĻāĻŋāĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ [āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§](https://docs.streamlit.io/library/api-reference) āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻžāĻ¨ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤ | āĻ¸ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ, āĻĻāĻā§āĻˇ āĻĄā§āĻāĻž āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻļāĻŋāĻ, āĻāĻāĻŋāĻ˛ āĻ¨āĻāĻļāĻž āĻāĻŦāĻ āĻāĻ°āĻ āĻ
āĻ¨ā§āĻ āĻāĻŋāĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŽā§āĻŽāĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¤ā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻžāĻ¨ā§āĻ¨āĨ¤
-## Prizes
+## āĻĒā§āĻ°āĻ¸ā§āĻāĻžāĻ°
-If getting up to speed with the fastest and easiest way to build data apps isn't already the best summer gift, you can also win Streamlit goodies!
+āĻĄā§āĻāĻž āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋāĻ° āĻĻā§āĻ°ā§āĻ¤āĻ¤āĻŽ āĻāĻŦāĻ āĻ¸āĻšāĻāĻ¤āĻŽ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ¤āĻŋāĻ¤ā§ āĻāĻ āĻž āĻ¯āĻĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ¸ā§āĻ°āĻž āĻā§āĻ°ā§āĻˇā§āĻŽāĻāĻžāĻ˛ā§āĻ¨ āĻāĻĒāĻšāĻžāĻ° āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻā§āĻĄāĻŋāĻ āĻāĻŋāĻ¤āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨!
-Complete the daily challenges, share your solutions with us on [Twitter](https://twitter.com/streamlit) or [LinkedIn](https://www.linkedin.com/company/streamlit/posts/?feedView=all), and get rewarded with cool Streamlit swag! đ
+āĻĒā§āĻ°āĻ¤āĻŋāĻĻāĻŋāĻ¨ā§āĻ° āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻ°ā§āĻ¨, [āĻā§āĻāĻāĻžāĻ°](https://twitter.com/streamlit) āĻŦāĻž [āĻ˛āĻŋāĻā§āĻāĻĄāĻāĻ¨](https://www.linkedin.com/company/streamlit/posts/?feedView=all) āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻžāĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ¸ā§āĻ¯āĻŧāĻžāĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ¸ā§āĻā§āĻ¤ āĻšā§āĻ¨!
-## Resources
+## āĻ¸āĻŽā§āĻĒāĻĻ
-- The official [`#30DaysOfStreamlit` app](https://share.streamlit.io/streamlit/30days/) where daily challenges are posted
-- Our [Twitter](https://twitter.com/streamlit) and [LinkedIn](https://www.linkedin.com/company/streamlit/posts/?feedView=all) feeds for daily updates
-- Streamlit [documentation](https://docs.streamlit.io/) and [cheat sheet](https://docs.streamlit.io/library/cheatsheet) for a thorough reference of Streamlit commands
-- Our awesome [Gallery](https://streamlit.io/gallery) for inspiration, templates, and community apps
-- Our [blog](https://blog.streamlit.io/how-to-master-streamlit-for-data-science/) for tips and the latest Streamlit info
+- āĻ
āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ [`#30DaysOfStreamlit` app](https://share.streamlit.io/streamlit/30days/) āĻ
ā§āĻ¯āĻžāĻĒ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻĻāĻŋāĻ¨ā§āĻ° āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ āĻĒā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
+- āĻĒā§āĻ°āĻ¤āĻŋāĻĻāĻŋāĻ¨ā§āĻ° āĻāĻĒāĻĄā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° [āĻā§āĻāĻāĻžāĻ°](https://twitter.com/streamlit) āĻāĻŦāĻ [āĻ˛āĻŋāĻā§āĻāĻĄāĻāĻ¨](https://www.linkedin.com/company/streamlit/posts/?feedView=all) āĻĢāĻŋāĻĄ
+- āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻĒā§āĻā§āĻāĻžāĻ¨ā§āĻĒā§āĻā§āĻ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ [āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨](https://docs.streamlit.io/) āĻāĻŦāĻ [āĻāĻŋāĻ āĻļā§āĻ](https://docs.streamlit.io/library/cheatsheet)
+- āĻ
āĻ¨ā§āĻĒā§āĻ°ā§āĻ°āĻŖāĻž, āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§āĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ [āĻā§āĻ¯āĻžāĻ˛āĻžāĻ°āĻŋ](https://streamlit.io/gallery)
+- āĻāĻŋāĻĒāĻ¸ āĻāĻŦāĻ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° [āĻŦā§āĻ˛āĻ](https://blog.streamlit.io/how-to-master-streamlit-for-data-science/)
+
+## āĻ
āĻ¨ā§āĻŦāĻžāĻĻ
-## Translations
+#30DaysOfStreamlit āĻāĻ° āĻ¨āĻžāĻāĻžāĻ˛ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻāĻŦāĻ āĻāĻāĻ°ā§āĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻāĻžāĻˇāĻž āĻ¨āĻ¯āĻŧ? āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻ
āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¨ā§āĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻ˛āĻŋāĻā§āĻ āĻāĻ°ā§āĻ¨!
-Want to help us expand the reach of `#30DaysOfStreamlit` and English isn't your primary language? Translate the challenges into your preferred language and link to them below!
-
-- [English](https://github.com/streamlit/30days) (Official): [![30 Days of Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days.streamlit.app)
-- [Chinese](https://github.com/TeddyHuang-00/30days-Chinese) (by [Nan Huang](https://github.com/TeddyHuang-00)): [![30 夊åĻ Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days-chinese.streamlit.app)
-- [EspaÃąol](https://github.com/streamlit/30days-spanish/) (by [Emiliano Rosso](https://github.com/arraydude)): [![30 Dias de Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days-in-spanish.streamlit.app/)
-- [French](https://github.com/streamlit/30days-French) (by [Charly Wargnier](https://github.com/charlyWargnier/)): [![30 Days of Streamlit en Français!](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days-in-french.streamlit.app/)
-- [Polish](https://github.com/streamlit/30days-polish) (by [MichaÅ Nowotka](https://github.com/sfc-gh-mnowotka)): [![Streamlit w 30 dni po Polsku](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://w30dni.streamlit.app/)
-- [Portuguese](https://github.com/franciscoed/30days) (by [Francisco Edilton](https://github.com/franciscoed)): [![30 Dias de Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30dias.streamlit.app/)
-- [Russian](https://github.com/kseniaanske/30days) (by [Ksenia Anske](https://github.com/kseniaanske)): [![30 ĐĐŊĐĩĐš Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days-in-russian.streamlit.app/)
-- [Hindi](https://github.com/streamlit/30days-Hindi): [![Streamlit ā¤āĨ 30 ā¤Ļā¤ŋā¤¨](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days-in-hindi.streamlit.app/)
+- [āĻāĻāĻ°ā§āĻāĻŋ](https://github.com/streamlit/30days) (āĻāĻ§āĻŋāĻāĻžāĻ°āĻŋāĻ): [![30 Days of Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days.streamlit.app)
+- [āĻāĻžāĻāĻ¨āĻŋāĻ](https://github.com/TeddyHuang-00/30days-Chinese) ([āĻ¨āĻžāĻ¨ āĻšā§ā§āĻžāĻ](https://github.com/TeddyHuang-00)) āĻĻā§āĻŦāĻžāĻ°āĻž: [![30 夊åĻ Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days-chinese.streamlit.app)
+- [āĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨āĻŋāĻļ](https://github.com/streamlit/30days-spanish/) ([āĻāĻŽāĻŋāĻ˛āĻŋā§āĻžāĻ¨ā§ āĻ°ā§āĻ¸ā§](https://github.com/arraydude)) āĻĻā§āĻŦāĻžāĻ°āĻž: [![30 Dias de Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days-in-spanish.streamlit.app/)
+- [āĻĢāĻ°āĻžāĻ¸āĻŋ](https://github.com/streamlit/30days-French) ([āĻāĻžāĻ°ā§āĻ˛āĻŋ āĻā§āĻžāĻ°ā§āĻāĻŋāĻ¨āĻžāĻ°](https://github.com/charlyWargnier/)) āĻĻā§āĻŦāĻžāĻ°āĻž: [![30 Days of Streamlit en Français!](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days-in-french.streamlit.app/)
+- [āĻĒā§āĻ˛āĻŋāĻļ](https://github.com/streamlit/30days-polish) ([āĻŽāĻžāĻāĻā§āĻ˛ āĻ¨ā§āĻŦāĻāĻāĻž](https://github.com/sfc-gh-mnowotka)) āĻĻā§āĻŦāĻžāĻ°āĻž: [![Streamlit w 30 dni po Polsku](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://w30dni.streamlit.app/)
+- [āĻĒāĻ°ā§āĻ¤ā§āĻā§āĻ](https://github.com/franciscoed/30days) ([āĻĢā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŋāĻ¸ā§āĻā§ āĻāĻĄāĻŋāĻ˛ā§āĻāĻ¨](https://github.com/franciscoed)) āĻĻā§āĻŦāĻžāĻ°āĻž: [![30 Dias de Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30dias.streamlit.app/)
+- [āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨](https://github.com/kseniaanske/30days) ([āĻā§āĻ¸āĻŋāĻ¨āĻŋāĻ¯āĻŧāĻž āĻāĻ¨āĻ¸āĻā§](https://github.com/kseniaanske)) āĻĻā§āĻŦāĻžāĻ°āĻž: [![30 ĐĐŊĐĩĐš Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days-in-russian.streamlit.app/)
+- [āĻšāĻŋāĻ¨ā§āĻĻāĻŋ](https://github.com/streamlit/30days-Hindi): [![Streamlit ā¤āĨ 30 ā¤Ļā¤ŋā¤¨](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://30days-in-hindi.streamlit.app/)
diff --git a/content/Day1.md b/content/Day1.md
index 1bd1d16..5264ddf 100644
--- a/content/Day1.md
+++ b/content/Day1.md
@@ -1,40 +1,41 @@
-# Setting up a local development environment
+# āĻāĻāĻāĻŋ āĻ˛ā§āĻāĻžāĻ˛ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨
-Before we can actually start building Streamlit apps, we will first have to setup a development environment.
+āĻāĻ¸āĻ˛ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽā§ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¸ā§āĻāĻāĻĒ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
-Let's start by installing and setting up a conda environment.
+āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻāĻ¨āĻĄāĻž āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻŦāĻ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŋāĨ¤
-## **Install conda**
-- Install `conda` by going to https://docs.conda.io/en/latest/miniconda.html and choose your operating system (Windows, Mac or Linux).
-- Download and run the installer to install `conda`.
+## **āĻāĻ¨āĻĄāĻž āĻāĻ¨āĻ¸ā§āĻāĻ˛**
+- `conda` āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻāĻžāĻ¨ā§ https://docs.conda.io/en/latest/miniconda.html. āĻāĻĒāĻ¨āĻŋ āĻ
āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¨ (āĻāĻāĻ¨ā§āĻĄā§āĻ¸, āĻŽā§āĻ¯āĻžāĻ āĻŦāĻž āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸).
+- āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻ¸ā§āĻāĻ˛āĻžāĻ°āĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ `conda` āĻāĻžāĻ˛āĻžāĻ¨āĨ¤
-## **Create a new conda environment**
-Now that you have conda installed, let's create a conda environment for managing all the Python library dependencies.
+## **āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻ¨āĻĄāĻž āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨**
-To create a new environment with Python 3.9, enter the following:
+āĻāĻāĻ¨ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻ¨āĻĄāĻž āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻā§āĻ¨, āĻāĻ¸ā§āĻ¨ āĻĒāĻžāĻāĻĨāĻ¨ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ¨āĻĄāĻž āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋāĨ¤
+
+āĻĒāĻžāĻāĻĨāĻ¨ ā§Š.ā§¯ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻāĻŋ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻžāĻ¨:
```bash
conda create -n stenv python=3.9
```
-where `create -n stenv` will create a conda environment named `stenv` and `python=3.9` will setup the conda environment with Python version 3.9.
+āĻ¯ā§āĻāĻžāĻ¨ā§ `create -n stenv` āĻāĻāĻāĻŋ āĻāĻ¨āĻĄāĻž āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§ āĻ¯āĻžāĻ° āĻ¨āĻžāĻŽ `stenv` āĻāĻŦāĻ `python=3.9` āĻ¸ā§āĻāĻāĻĒ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻŦā§ āĻ¯āĻžāĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ ā§Š.ā§¯āĨ¤
-## **Activate the conda environment**
+## **āĻāĻ¨āĻĄāĻž āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§āĻ¨**
-To use a conda environment that we had just created that is named `stenv`, enter the following into the command line:
+āĻ¤ā§āĻ°ā§ āĻāĻ°āĻž āĻāĻ¨āĻĄāĻž āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¯āĻžāĻ° āĻ¨āĻžāĻŽ `stenv`, āĻā§āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ā§ āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨:
```bash
conda activate stenv
```
-## **Install the Streamlit library**
+## **āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨**
-It's now time to install the `streamlit` library:
+āĻāĻāĻ¨āĻŋ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§:
```bash
pip install streamlit
```
-## **Launching the Streamlit demo app**
-To launch the Streamlit demo app (Figure 1) type:
+## **āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž**
+āĻ
ā§āĻ¯āĻžāĻĒ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§:
```bash
streamlit hello
```
diff --git a/content/Day10.md b/content/Day10.md
index 40fd3be..f2f4968 100644
--- a/content/Day10.md
+++ b/content/Day10.md
@@ -1,22 +1,22 @@
# st.selectbox
-`st.selectbox` allows the display of a select widget.
+`st.selectbox` āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻāĻāĻā§āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
-## What we're building?
+## āĻāĻŋ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻāĻŋ āĻāĻŽāĻ°āĻž?
-A simple app that asks the user what their favorite color is.
+āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ°āĻ āĻā§āĨ¤
-Flow of the app:
-1. User selects a color
-2. App prints out the selected color
+āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻĒā§āĻ°āĻŦāĻžāĻš:
+1. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ°āĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§
+2. āĻ
ā§āĻ¯āĻžāĻĒ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻ°āĻ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§
-## Demo app
-The deployed Streamlit app should look something like the one shown in the below link:
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
+āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻ¨ā§āĻā§āĻ° āĻ˛āĻŋāĻā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻŽāĻ¤ā§ āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§:
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.selectbox/)
-## Code
-Here's the code to implement the above mentioned app:
+## āĻā§āĻĄ
+āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻĄ āĻāĻāĻžāĻ¨ā§:
```python
import streamlit as st
@@ -29,35 +29,35 @@ option = st.selectbox(
st.write('Your favorite color is ', option)
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž:
```python
import streamlit as st
```
-This is followed by creating a header text for the app:
+āĻ
ā§āĻ¯āĻžāĻĒ āĻšā§āĻĄāĻžāĻ° āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯:
```python
st.header('st.selectbox')
```
-Next, we will create a variable called `option` that will accept user input in the form of a **select** input widget via the `st.selectbox()` command.
+āĻ¤āĻžāĻ°āĻĒāĻ° `option` āĻ¨āĻžāĻŽā§āĻ° āĻā§āĻ¯āĻžāĻ°āĻŋā§ā§āĻŦāĻ˛ āĻ¤ā§āĻ°ā§ āĻāĻ°ā§āĻ¨ āĻ¯ā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻĨā§āĻā§ āĻāĻ¨āĻĒā§āĻ āĻ¨ā§āĻŦā§ **select** āĻāĻ¨āĻĒā§āĻ āĻāĻāĻā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž `st.selectbox()` āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§āĨ¤
```python
option = st.selectbox(
'What is your favorite color?',
('Blue', 'Red', 'Green'))
```
-As we can see from the above code box, the `st.selectbox()` command accepts 2 input arguments:
-1. The text that goes above the select widget, i.e. `'What is your favorite color?'`
-2. The possible values to select from `('Blue', 'Red', 'Green')`
+āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ āĻ¯ā§ `st.selectbox()` āĻāĻŽāĻžāĻ¨ā§āĻĄ ā§¨āĻāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻŖā§āĻ āĻ¨āĻŋāĻā§āĻā§:
+1. āĻ¯ā§ āĻā§āĻā§āĻ¸āĻāĻāĻŋ āĻ¸āĻŋāĻ˛ā§āĻā§āĻ āĻāĻāĻā§āĻā§āĻ° āĻāĻĒāĻ°ā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ¯āĻž āĻ¨āĻžāĻāĻŋ `'āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ°āĻ āĻāĻŋ?'`
+2. āĻāĻ āĻ
āĻĒā§āĻļāĻ¨ āĻā§āĻ˛āĻŋ āĻŦāĻžāĻāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ `('āĻ¨ā§āĻ˛', 'āĻ˛āĻžāĻ˛', 'āĻ¸āĻŦā§āĻ')`
-Finally, we'll print out the selected color as follows:
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻ°āĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻāĻ āĻāĻ°āĻŦ:
```python
st.write('Your favorite color is ', option)
```
-## Next steps
-Now that you have created the Streamlit app locally, it's time to deploy it to [Streamlit Community Cloud](https://streamlit.io/cloud).
+## āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻĻāĻā§āĻˇā§āĻĒ
+āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§āĻ¨, āĻāĻāĻŋ āĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ [Streamlit Community Cloud](https://streamlit.io/cloud).
-## References
-More about [`st.selectbox`](https://docs.streamlit.io/library/api-reference/widgets/st.selectbox)
+## āĻ¤āĻĨā§āĻ¯āĻ¸ā§āĻ¤ā§āĻ°
+āĻāĻ°ā§ āĻĻā§āĻā§āĻ¨ [`st.selectbox`](https://docs.streamlit.io/library/api-reference/widgets/st.selectbox)
diff --git a/content/Day11.md b/content/Day11.md
index 86c5b63..8edecd4 100644
--- a/content/Day11.md
+++ b/content/Day11.md
@@ -1,13 +1,13 @@
# st.multiselect
-`st.multiselect` displays a multiselect widget.
+`st.multiselect` āĻāĻāĻāĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻ¸āĻŋāĻ˛ā§āĻā§āĻ āĻāĻāĻā§āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.multiselect/)
-## Code
-Here's how to use `st.multiselect`:
+## āĻā§āĻĄ
+āĻāĻŋāĻ¨ā§āĻ¤āĻžāĻ° āĻāĻžāĻ°āĻŖ āĻ¨ā§āĻāĨ¤ āĻāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ `st.multiselect`:
```python
import streamlit as st
@@ -21,18 +21,18 @@ options = st.multiselect(
st.write('You selected:', options)
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
```
-This is followed by creating a header text for the app:
+āĻ¤āĻžāĻ°āĻĒāĻ° āĻšā§āĻĄāĻžāĻ° āĻ¤ā§āĻ°ā§ āĻāĻ°āĻ¤ā§:
```python
st.header('st.multiselect')
```
-Next, we're going to use the `st.multiselect` widget to accept input where users will be able to select one or more colors of there choice.
+āĻ¤āĻžāĻ°āĻĒāĻ° `st.multiselect` āĻāĻāĻā§āĻ āĻ¯āĻž āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ
āĻĒā§āĻļāĻ¨ āĻĻā§āĻāĻžāĻŦā§, āĻ¤āĻžāĻ° āĻā§āĻĄ āĻāĻāĻŋāĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¤āĻŋāĻ¨āĻāĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻ°āĻ āĻŦā§āĻā§ āĻ¨ā§āĻŦā§āĨ¤
```python
options = st.multiselect(
@@ -41,10 +41,10 @@ options = st.multiselect(
['Yellow', 'Red'])
```
-Finally, we'll write out the selected colors:
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻ°āĻ āĻ˛āĻŋāĻāĻŦ:
```python
st.write('You selected:', options)
```
-## Further reading
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
- [`st.multiselect`](https://docs.streamlit.io/library/api-reference/widgets/st.multiselect)
diff --git a/content/Day12.md b/content/Day12.md
index bf5962b..36dee3e 100644
--- a/content/Day12.md
+++ b/content/Day12.md
@@ -1,13 +1,13 @@
# st.checkbox
-`st.checkbox` displays a checkbox widget.
+`st.checkbox` āĻā§āĻāĻŦāĻā§āĻ¸ āĻāĻāĻā§āĻ āĻĻā§āĻāĻžā§āĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.checkbox/)
-## Code
-Here's how to use `st.checkbox`:
+## āĻā§āĻĄ
+`st.checkbox` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯:
```python
import streamlit as st
@@ -29,30 +29,30 @@ if cola:
st.write("Here you go đĨ¤")
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
```
-This is followed by creating a header text for the app:
+āĻ¤āĻžāĻ°āĻĒāĻ° āĻšā§āĻĄāĻžāĻ° āĻ¤ā§āĻ°ā§ āĻāĻ°āĻ¤ā§:
```python
st.header('st.checkbox')
```
-Next, we're going to ask a question via `st.write':
+āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°ā§āĻ¨ `st.write' āĻĻā§āĻŦāĻžāĻ°āĻž:
```python
st.write ('What would you like to order?')
```
-We're then going to provide some menu items to tick on:
+āĻāĻŽāĻ°āĻž āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŋāĻ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻŽā§āĻ¨ā§ āĻāĻāĻā§āĻŽ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻā§āĻāĻŋ:
```python
icecream = st.checkbox('Ice cream')
coffee = st.checkbox('Coffee')
cola = st.checkbox('Cola')
```
-Finally, we're going to print custom text depending on which checkbox was ticked on:
+āĻ
āĻŦāĻļā§āĻˇā§, āĻā§āĻ¨ āĻā§āĻāĻŦāĻā§āĻ¸ā§ āĻāĻŋāĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻžāĻ¸ā§āĻāĻŽ āĻā§āĻā§āĻ¸āĻ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻā§āĻāĻŋ:
```python
if icecream:
st.write("Great! Here's some more đĻ")
@@ -64,5 +64,5 @@ if cola:
st.write("Here you go đĨ¤")
```
-## Further reading
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
- [`st.checkbox`](https://docs.streamlit.io/library/api-reference/widgets/st.checkbox)
diff --git a/content/Day13.md b/content/Day13.md
index 525b3bc..b814af6 100644
--- a/content/Day13.md
+++ b/content/Day13.md
@@ -1,12 +1,13 @@
-# Spin up a cloud development environment
+# āĻā§āĻ˛āĻžāĻāĻĄ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻŦāĻžāĻ¨āĻžāĻ¨
### GitPod
-To spin up a development environment on the cloud, we can use [GitPod](https://www.gitpod.io/) and this can be done simply by clicking on the following link:
-- Try it đ https://gitpod.io/#/https://github.com/dataprofessor/streamlit101/
+āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻŦāĻžāĻ¨āĻžāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ [GitPod](https://www.gitpod.io/):
+- āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§ āĻĻā§āĻā§āĻ¨ đ https://gitpod.io/#/https://github.com/dataprofessor/streamlit101/
-As you can see from the URL above, a GitHub repo URL is appended after `https://gitpod.io/#/` which essentially allow GitPod to spin up a development environment using instructions contained within the GitHub repo URL (namely in the `requirements.txt` file that specifically lists the Python libraries to install).
-> Note: There are other similar cloud development environment such as:
+āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻļā§āĻāĻ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨ āĻāĻŋāĻāĻšāĻžāĻŦ āĻ°ā§āĻĒā§ `https://gitpod.io/#/` āĻ˛āĻŋāĻā§āĻāĻāĻŋāĻ° āĻĒāĻ° āĻ˛āĻžāĻāĻžāĻ¨ā§ āĻāĻā§āĨ¤ āĻ¤āĻž āĻāĻ°ā§ GitPod āĻāĻāĻāĻŋ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻāĻ¨āĻāĻžā§āĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻŦā§ āĻāĻŋāĻāĻšāĻžāĻŦ āĻ°ā§āĻĒā§ āĻĨā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ (`requirements.txt` āĻĢāĻžāĻāĻ˛ā§ āĻā§āĻ¨ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻā§āĻ˛ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§)āĨ¤
+
+> āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯: āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ
āĻ¨ā§āĻ°ā§āĻĒ āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§āĻŽāĻ¨:
> - [GitHub Codespaces](https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/setting-up-your-python-project-for-codespaces)
> - [Replit](https://replit.com/)
> - [Cloud9](https://aws.amazon.com/cloud9/)
diff --git a/content/Day14.md b/content/Day14.md
index e6a9128..fcf6f27 100644
--- a/content/Day14.md
+++ b/content/Day14.md
@@ -1,31 +1,31 @@
# Streamlit Components
-Components are third-party Python modules that extend what's possible with Streamlit [[1](https://docs.streamlit.io/library/components)].
+āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻšāĻ˛ āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻĒāĻā§āĻˇā§āĻ° āĻĒāĻžāĻāĻĨāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯āĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¤āĻž āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°ā§ [[1](https://docs.streamlit.io/library/components)]āĨ¤
-## What Streamlit components are available?
+## āĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ?
-There are several dozens of Streamlit components featured on Streamlit's website [[2](https://streamlit.io/components)].
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§āĻ° āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻ āĻĄāĻāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§ [[2](https://streamlit.io/components)].
-Fanilo (a Streamlit Creator) curated an amazing list of Streamlit components on a wiki post [[3](https://discuss.streamlit.io/t/streamlit-components-community-tracker/4634)] that lists about 85 Streamlit components as of April 2022.
+āĻĢā§āĻ¯āĻžāĻ¨āĻŋāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻžā§ ā§Žā§ĢāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻā§ [[3](https://discuss.streamlit.io/t/streamlit-components-community-tracker/4634)]āĨ¤
-## How to use?
+## āĻāĻŋāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§?
-Streamlit components are just a pip-install away.
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻŦāĻ˛ āĻāĻāĻāĻŋ āĻĒāĻŋāĻĒ-āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻĻā§āĻ°ā§āĨ¤
-In this tutorial, let's get you started in using the `streamlit_pandas_profiling` component [[4](https://share.streamlit.io/okld/streamlit-gallery/main?p=pandas-profiling)].
+āĻāĻ āĻāĻŋāĻāĻā§āĻ°āĻŋā§āĻžāĻ˛ā§ `streamlit_pandas_profiling` āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ [[4](https://share.streamlit.io/okld/streamlit-gallery/main?p=pandas-profiling)].
-#### Install the component
+#### āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨
```bash
pip install streamlit_pandas_profiling
```
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/streamlit-components/)
-## Code
-Here's how to build a Streamlit app using a component:
+## āĻā§āĻĄ
+āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻā§āĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻž āĻāĻāĻžāĻ¨ā§:
```python
import streamlit as st
import pandas as pd
@@ -40,8 +40,8 @@ pr = df.profile_report()
st_profile_report(pr)
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` as well as other libraries used in the app like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¨āĻžāĻ¨ā§āĻ¯ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
import pandas as pd
@@ -49,35 +49,35 @@ import pandas_profiling
from streamlit_pandas_profiling import st_profile_report
```
-This is followed by creating a header text for the app:
+āĻ¤āĻžāĻ°āĻĒāĻ° āĻšā§āĻĄāĻžāĻ° āĻā§āĻā§āĻ¸āĻ āĻŦāĻžāĻ¨āĻžāĻ¨:
```python
st.header('`streamlit_pandas_profiling`')
```
-Next, we load in the Penguins dataset using the `read_csv` command of `pandas`.
+āĻšā§āĻĄāĻžāĻ° āĻŦāĻžāĻ¨āĻžāĻ¨ā§āĻ° āĻĒāĻ° āĻĒā§āĻā§āĻā§āĻāĻ¨āĻ¸ āĻĄāĻžāĻāĻžāĻ¸ā§āĻ āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨ `read_csv` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯āĻž `pandas` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ¤ā§ āĻĒāĻžāĻā§āĻž āĻ¯āĻžā§āĨ¤ .
```python
df = pd.read_csv('https://raw.githubusercontent.com/dataprofessor/data/master/penguins_cleaned.csv')
```
-Finally, the pandas profiling report is generated via the `profile_report()` command and displayed using `st_profile_report`:
+āĻĒāĻžāĻ¨ā§āĻĄāĻžāĻ° `profile_report()` āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋā§ā§ āĻĒā§āĻ°ā§āĻĢāĻžāĻāĻ˛ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻ¤ā§āĻ°ā§ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ `st_profile_report`:
```python
pr = df.profile_report()
st_profile_report(pr)
```
-## Making your own Components
+## āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¤ā§āĻ°āĻŋ
-If you're interested in making your own component, please check out the following resources:
+āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¨āĻŋāĻā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¨, āĻ
āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĻā§āĻā§āĻ¨:
- [Create a Component](https://docs.streamlit.io/library/components/create)
- [Publish a Component](https://docs.streamlit.io/library/components/publish)
- [Components API](https://docs.streamlit.io/library/components/components-api)
- [Blog post on Components](https://blog.streamlit.io/introducing-streamlit-components/)
-Alternatively, if you prefer to learn using videos, our engineer Tim Conkling has put together some amazing tutorials:
+āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻžāĻŦā§, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŋāĻĄāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻļāĻŋāĻāĻ¤ā§ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°ā§āĻ¨, āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻā§āĻļāĻ˛ā§ āĻāĻŋāĻŽ āĻāĻ¨āĻā§āĻ˛āĻŋāĻ āĻāĻŋāĻā§ āĻāĻļā§āĻāĻ°ā§āĻ¯āĻāĻ¨āĻ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻāĻāĻ¤ā§āĻ° āĻāĻ°ā§āĻā§āĻ¨:
- [How to build a Streamlit component | Part 1: Setup and Architecture](https://youtu.be/BuD3gILJW-Q)
- [How to build a Streamlit component | Part 2: Part 2: Make a Slider Widget](https://youtu.be/QjccJl_7Jco)
-## Further reading about Components
+## āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
1. [Streamlit Components - API Documentation](https://docs.streamlit.io/library/components)
2. [Featured Streamlit Components](https://streamlit.io/components)
3. [Streamlit Components - Community Tracker](https://discuss.streamlit.io/t/streamlit-components-community-tracker/4634)
diff --git a/content/Day15.md b/content/Day15.md
index 62f3cd1..657bfcd 100644
--- a/content/Day15.md
+++ b/content/Day15.md
@@ -1,16 +1,16 @@
# st.latex
-`st.latex` display mathematical expressions formatted as LaTeX.
+`st.latex` āĻ
āĻāĻā§āĻ° āĻĢāĻ°ā§āĻŽā§āĻ˛āĻž āĻ˛ā§āĻ¯āĻžāĻā§āĻā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĻā§āĻāĻžā§āĨ¤
-## What we're building?
+## āĻāĻŋ āĻŦāĻžāĻ¨āĻžāĻā§āĻāĻŋ āĻāĻŽāĻ°āĻž?
-A simple app that displays a mathematical equation using LaTeX syntax via the `st.latex` command.
+āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¯āĻž LaTeX āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻžāĻŖāĻŋāĻ¤āĻŋāĻ āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ `st.latex` āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤.
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.latex/)
-## Code
-Here's how to use `st.latex`:
+## āĻā§āĻĄ
+āĻāĻŋāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ `st.latex`:
```python
import streamlit as st
@@ -23,18 +23,18 @@ st.latex(r'''
''')
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
```
-This is followed by creating a header text for the app:
+āĻ¤āĻžāĻ°āĻĒāĻ° āĻšā§āĻĄāĻžāĻ° āĻ¤ā§āĻ°ā§ āĻāĻ°āĻ¤ā§:
```python
st.header('st.latex')
```
-Next, we're displaying the mathematical equation via `st.latex`:
+āĻ
āĻāĻā§āĻ° āĻĢāĻ°ā§āĻŽā§āĻ˛āĻž `st.latex` āĻĻāĻŋā§ā§ āĻĻā§āĻāĻžāĻ¨:
```python
st.latex(r'''
a + ar + a r^2 + a r^3 + \cdots + a r^{n-1} =
@@ -43,5 +43,5 @@ st.latex(r'''
''')
```
-## References
-- Read more about [`st.latex`](https://docs.streamlit.io/library/api-reference/text/st.latex) in the Streamlit API Documentation.
+## āĻ¤āĻĨā§āĻ¯āĻ¸ā§āĻ¤ā§āĻ°
+- āĻāĻ°ā§ āĻĒā§ā§āĻ¨ [`st.latex`](https://docs.streamlit.io/library/api-reference/text/st.latex) āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ API āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§āĨ¤
diff --git a/content/Day16.md b/content/Day16.md
index 1353f2a..ae70730 100644
--- a/content/Day16.md
+++ b/content/Day16.md
@@ -1,17 +1,17 @@
-# Customizing the theme of Streamlit apps
+# āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻĨāĻŋāĻŽ āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻ āĻāĻ°āĻž
We can customize the theme by adjusting parameters in `config.toml`, which is a configuration file stored in the same folder as the app in the `.streamlit` folder.
-## What we're building?
+## āĻāĻŋ āĻŦāĻžāĻ¨āĻžāĻā§āĻāĻŋ āĻāĻŽāĻ°āĻž?
-A simple app that shows the result of our theme customization. This is made possible by customizing the HTML HEX code inside the [`.streamlit/config.toml`](https://github.com/dataprofessor/streamlit-custom-theme/blob/master/.streamlit/config.toml) file.
+āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¯āĻž āĻĨāĻŋāĻŽ āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻ āĻāĻ°ā§āĨ¤ This is made possible by customizing the code inside the [`.streamlit/config.toml`](https://github.com/dataprofessor/streamlit-custom-theme/blob/master/.streamlit/config.toml) āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ° āĻā§āĻ¤āĻ°ā§ HTML HEX āĻā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŖ āĻāĻ°ā§ āĻ¤āĻž āĻ¸āĻŽā§āĻāĻŦ.
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/streamlit-custom-theme/)
-## Code
-Here's the code to the [`streamlit_app.py`](https://github.com/dataprofessor/streamlit-custom-theme/blob/master/streamlit_app.py) file:
+## āĻā§āĻĄ
+āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻā§āĻĄ āĻāĻāĻāĻžāĻ¨ā§ [`streamlit_app.py`](https://github.com/dataprofessor/streamlit-custom-theme/blob/master/streamlit_app.py):
```python
import streamlit as st
@@ -32,7 +32,7 @@ number = st.sidebar.slider('Select a number:', 0, 10, 5)
st.write('Selected number from slider widget is:', number)
```
-Here's the code to the [`.streamlit/config.toml`](https://github.com/dataprofessor/streamlit-custom-theme/blob/master/.streamlit/config.toml) file:
+āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻā§āĻĄ āĻāĻāĻāĻžāĻ¨ā§ [`.streamlit/config.toml`](https://github.com/dataprofessor/streamlit-custom-theme/blob/master/.streamlit/config.toml):
```python
[theme]
primaryColor="#F39C12"
@@ -42,18 +42,18 @@ textColor="#FFFFFF"
font="monospace"
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
```
-This is followed by creating a title text for the app:
+āĻ¤āĻžāĻ°āĻĒāĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻāĻā§āĻ˛ āĻā§āĻā§āĻ¸āĻ āĻŦāĻžāĻ¨āĻžāĻ¨:
```python
st.title('Theming with config.toml')
```
-Next, we're going to show the contents of the `.streamlit/config.toml` file which we'll first display a note of this via `st.write` followed by the actual code via `st.code`:
+āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ `.streamlit/config.toml` āĻ¤āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ `st.write` āĻĻāĻŋā§ā§ āĻĻā§āĻāĻžāĻ¨ āĻāĻŦāĻ āĻāĻ¸āĻ˛ āĻā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ `st.code` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨:
```python
st.write('Contents of the ./streamlit/config.toml file of this app')
@@ -67,20 +67,20 @@ font="monospace"
""")
```
-Finally, we're creating a slider widget in the sidebar followed by displaying the selected number:
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻ¨āĻŽā§āĻŦāĻ° āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ āĻ¸āĻžāĻāĻĄāĻŦāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ° āĻāĻāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻāĻŋ:
```python
number = st.sidebar.slider('Select a number:', 0, 10, 5)
st.write('Selected number from slider widget is:', number)
```
-Let's now take a look at the custom colors that we've used in this app, which is specified in the `.streamlit/config.toml` file:
-- `primaryColor="#F39C12"` - This sets the primary color to orange. Notice the orange colors in the slider widget.
-- `backgroundColor="#2E86C1"` - This sets the background color to blue. Notice the main panel has a blue background color.
-- `secondaryBackgroundColor="#AED6F1"` - This sets the secondary background color to dark gray. Notice the gray background color of the sidebar and the background color of the code box in the main panel.
-- `textColor="#FFFFFF"` - The text color is set to white.
-- `font="monospace"` - This sets the font to monospace.
+āĻāĻ¸ā§āĻ¨ āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋ āĻāĻŽāĻ¨ āĻāĻžāĻ¸ā§āĻāĻŽ āĻ°āĻāĻā§āĻ˛āĻŋ āĻĻā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ `.streamlit/config.toml` āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ā§:
+- `primaryColor="#F39C12"` - āĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ°āĻ āĻāĻŽāĻ˛āĻž āĻ¸ā§āĻ āĻāĻ°ā§āĨ¤ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ° āĻāĻāĻā§āĻā§ āĻāĻŽāĻ˛āĻž āĻ°āĻāĻā§āĻ˛āĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨āĨ¤
+- `backgroundColor="#2E86C1"` - āĻāĻāĻŋ āĻĒāĻāĻā§āĻŽāĻŋāĻ° āĻ°āĻāĻā§ āĻ¨ā§āĻ˛ā§ āĻ¸ā§āĻ āĻāĻ°ā§āĨ¤ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻŽā§āĻ˛ āĻĒā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻ˛ āĻĒāĻāĻā§āĻŽāĻŋāĻ° āĻ°āĻ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
+- `secondaryBackgroundColor="#AED6F1"` - āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄāĻžāĻ°āĻŋ āĻĒāĻāĻā§āĻŽāĻŋāĻ° āĻ°āĻāĻā§ āĻāĻžāĻĸāĻŧ āĻ§ā§āĻ¸āĻ°ā§ āĻ¸ā§āĻ āĻāĻ°ā§āĨ¤ āĻ¸āĻžāĻāĻĄāĻŦāĻžāĻ°ā§āĻ° āĻ§ā§āĻ¸āĻ° āĻĒāĻāĻā§āĻŽāĻŋāĻ° āĻ°āĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§ āĻā§āĻĄ āĻŦāĻā§āĻ¸ā§āĻ° āĻĒāĻāĻā§āĻŽāĻŋāĻ° āĻ°āĻ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨āĨ¤
+- `textColor="#FFFFFF"` - āĻĒāĻžāĻ ā§āĻ¯ā§āĻ° āĻ°āĻ āĻ¸āĻžāĻĻāĻžāĻ¤ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
+- `font="monospace"` - āĻāĻāĻŋ āĻĢāĻ¨ā§āĻāĻāĻŋāĻā§ āĻŽāĻ¨ā§āĻ¸ā§āĻĒā§āĻ¸ā§ āĻ¸ā§āĻ āĻāĻ°ā§āĨ¤
-## Further reading
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
- [Theming](https://docs.streamlit.io/library/advanced-features/theming)
-- [HTML Color Codes](https://htmlcolorcodes.com/) is a great tool for selecting colors of interest.
+- [HTML Color Codes](https://htmlcolorcodes.com/) āĻāĻā§āĻ°āĻšā§āĻ° āĻ°āĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻšāĻžāĻ¤āĻŋāĻ¯āĻŧāĻžāĻ°āĨ¤
diff --git a/content/Day17.md b/content/Day17.md
index f5c2cc9..de91012 100644
--- a/content/Day17.md
+++ b/content/Day17.md
@@ -1,13 +1,13 @@
# st.secrets
-`st.secrets` allows you to store confidential information such as API keys, database passwords or other credentials.
+`st.secrets` āĻā§āĻĒāĻ¨ā§ā§ āĻ¤āĻĨā§āĻ¯ āĻ¯ā§āĻŽāĻ¨ API keys, database passwords āĻŦāĻž āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¤āĻĨā§āĻ¯āĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.secrets/)
-## Code
-Here's how to use `st.secrets`:
+## āĻā§āĻĄ
+āĻāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ `st.secrets`:
```python
import streamlit as st
@@ -16,26 +16,26 @@ st.title('st.secrets')
st.write(st.secrets['message'])
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
```
-This is followed by creating a title text for the app:
+āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻžāĻāĻā§āĻ˛ āĻā§āĻā§āĻ¸āĻ āĻŦāĻžāĻ¨āĻžāĻ¨:
```python
st.title('st.secrets')
```
-Finally, we'll be displaying the stored secrets:
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻ¸āĻā§āĻāĻŋāĻ¤ āĻā§āĻĒāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŦ:
```python
st.write(st.secrets['message'])
```
-It should be noted that, secrets can be stored in Streamlit Community Cloud as shown in the screenshots shown below.
+āĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§, āĻ¨ā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻŽāĻŋāĻāĻ¨āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄā§ āĻā§āĻĒāĻ¨ā§āĻ¯āĻŧāĻ¤āĻžāĻā§āĻ˛āĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
-If working locally, they can be stored in `.streamlit/secrets.toml`, but make sure to avoid uploading this to a GitHub repo when deploying the app.
+āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ˛ā§ āĻ¤āĻĨā§āĻ¯āĻā§āĻ˛ā§ `.streamlit/secrets.toml` āĻāĻāĻāĻžāĻ¨ā§ āĻ°āĻžāĻā§āĻ¨ , āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻŋāĻāĻšāĻžāĻŦ āĻ°ā§āĻĒā§āĻ¤ā§ āĻĄāĻŋāĻĒā§āĻ˛ā§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤
-## Further reading
-- [Add secrets to your Streamlit apps](https://blog.streamlit.io/secrets-in-sharing-apps/)
-- [Secrets management](https://docs.streamlit.io/streamlit-cloud/get-started/deploy-an-app/connect-to-data-sources/secrets-management)
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
+- [āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒā§ āĻā§āĻĒāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨](https://blog.streamlit.io/secrets-in-sharing-apps/)
+- [āĻā§āĻĒāĻ¨ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž](https://docs.streamlit.io/streamlit-cloud/get-started/deploy-an-app/connect-to-data-sources/secrets-management)
diff --git a/content/Day18.md b/content/Day18.md
index 0f86239..33d2336 100644
--- a/content/Day18.md
+++ b/content/Day18.md
@@ -1,15 +1,15 @@
# st.file_uploader
-`st.file_uploader` displays a file uploader widget [[1](https://docs.streamlit.io/library/api-reference/widgets/st.file_uploader)].
+`st.file_uploader` āĻĢāĻžāĻāĻ˛ āĻĻā§āĻāĻžā§ āĻāĻĒā§āĻ˛ā§āĻĄāĻžāĻ° āĻāĻāĻā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻžāĨ¤ [[1](https://docs.streamlit.io/library/api-reference/widgets/st.file_uploader)].
-By default, uploaded files are limited to 200MB. You can configure this using the server.maxUploadSize config option. For more info on how to set config options, see [[2](https://docs.streamlit.io/library/advanced-features/configuration#set-configuration-options)].
+āĻāĻ¤āĻžāĻ¨ā§āĻāĻ¤āĻŋāĻ āĻāĻžāĻŦā§ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻž āĻĢāĻžāĻāĻ˛ ā§¨ā§Ļā§Ļ MB āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĨ¤ āĻāĻĒāĻ¨āĻŋ server.maxUploadSize āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻ
āĻĒāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°āĻŦā§āĻ¨ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĻā§āĻā§āĻ¨āĨ¤ [[2](https://docs.streamlit.io/library/advanced-features/configuration#set-configuration-options)].
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.file_uploader/)
-## Code
-Here's how to use `st.file_uploader`:
+## āĻā§āĻĄ
+āĻāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ `st.file_uploader`:
```python
import streamlit as st
import pandas as pd
@@ -29,25 +29,25 @@ else:
st.info('âī¸ Upload a CSV file')
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` and other prerequisite library like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¨āĻžāĻ¨ā§āĻ¯ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
import pandas as pd
```
-This is followed by creating a title text for the app:
+āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻžāĻāĻā§āĻ˛ āĻā§āĻā§āĻ¸āĻ āĻŦāĻžāĻ¨āĻžāĻ¨:
```python
st.title('st.file_uploader')
```
-Next, we'll use `st.file_uploader` to display a file uploader widget for accepting user input file:
+āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§ `st.file_uploader` āĻĢāĻžāĻāĻ˛ āĻāĻĒāĻ˛ā§āĻĄāĻžāĻ° āĻāĻāĻā§āĻ āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻž āĻ¨āĻžāĻāĻŋ āĻāĻāĻ¸āĻžāĻ° āĻāĻ¨āĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻ¨ā§ā§:
```python
st.subheader('Input CSV')
uploaded_file = st.file_uploader("Choose a file")
```
-Finally, we define conditional statements for initially displaying a welcome message inviting users to upload their file (as implemented in the `else` condition). Upon file upload, the `if` statements are activated and the CSV file is read by the `pandas` library and displayed via the `st.write` command.
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¤āĻžāĻĻā§āĻ° āĻĢāĻžāĻāĻ˛ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻžāĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻžāĻāĻ¤ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§āĻā§āĻˇ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŋ (`else` āĻāĻ¨ā§āĻĄāĻŋāĻļāĻ¨ā§ āĻŦāĻ˛āĻž āĻāĻā§). āĻĢāĻžāĻāĻ˛ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻĒāĻ° `if` āĻ¸ā§āĻā§āĻāĻŽā§āĻ¨ā§āĻāĻ¸āĻā§āĻ˛ā§ āĻāĻžāĻ˛ā§ āĻšā§ āĻāĻŦāĻ CSV āĻĢāĻžāĻāĻ˛ `pandas` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĻāĻŋā§ā§ āĻĒā§ā§ `st.write` āĻĻāĻŋā§ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšā§āĨ¤
```python
if uploaded_file is not None:
df = pd.read_csv(uploaded_file)
@@ -59,6 +59,6 @@ else:
st.info('âī¸ Upload a CSV file')
```
-## Further reading
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
1. [`st.file_uploader`](https://docs.streamlit.io/library/api-reference/widgets/st.file_uploader)
-2. [Set configuration options](https://docs.streamlit.io/library/advanced-features/configuration#set-configuration-options)
+2. [āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨](https://docs.streamlit.io/library/advanced-features/configuration#set-configuration-options)
diff --git a/content/Day19.md b/content/Day19.md
index 4c045f2..b80a31f 100644
--- a/content/Day19.md
+++ b/content/Day19.md
@@ -1,17 +1,17 @@
-# How to layout your Streamlit app
+# āĻāĻŋāĻāĻžāĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻŦā§āĻ¨
-In this tutorial, we're going to use the following commands to layout our Streamlit app:
-- `st.set_page_config(layout="wide")` - Displays the contents of the app in wide mode (otherwise by default, the contents are encapsulated in a fixed width box.
-- `st.sidebar` - Places the widgets or text/image displays in the sidebar.
-- `st.expander` - Places text/image displays inside a collapsible container box.
-- `st.columns` - Creates a tabular space (or column) within which contents can be placed inside.
+āĻāĻ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ˛ā§āĻāĻāĻ āĻāĻ°āĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻā§āĻāĻŋ:
+- `st.set_page_config(layout="wide")` - āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻļāĻ¸ā§āĻ¤ āĻŽā§āĻĄā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ (āĻ
āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻāĻ¤āĻžāĻ¨ā§āĻāĻ¤āĻŋāĻāĻāĻžāĻŦā§ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻĨā§āĻ° āĻŦāĻžāĻā§āĻ¸ā§ āĻāĻ¨āĻā§āĻ¯āĻžāĻĒāĻ¸ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤)
+- `st.sidebar` - āĻ¸āĻžāĻāĻĄāĻŦāĻžāĻ°ā§ āĻāĻāĻā§āĻ āĻŦāĻž āĻā§āĻā§āĻ¸āĻ/āĻāĻŽā§āĻ āĻĄāĻŋāĻ¸āĻĒā§āĻ˛ā§ āĻ°āĻžāĻā§āĨ¤
+- `st.expander` - āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻāĻ¨āĻ¯ā§āĻā§āĻ¯ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻŦāĻžāĻā§āĻ¸ā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻĒāĻžāĻ ā§āĻ¯/āĻāĻŋāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤
+- `st.columns` - āĻāĻāĻāĻŋ āĻā§āĻŦā§āĻ˛āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨ (āĻŦāĻž āĻāĻ˛āĻžāĻŽ) āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻāĻŋāĻ¤āĻ°ā§ āĻ°āĻžāĻāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/streamlit-layout/)
## Code
-Here's how to customize the layout of your Streamlit app:
+āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻ˛ā§āĻāĻāĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻ āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻž āĻāĻāĻžāĻ¨ā§:
```python
import streamlit as st
@@ -51,30 +51,30 @@ with col3:
st.write('đ Please choose your favorite **food**!')
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
```
-We'll start by first defining the page layout to be displayed in the `wide` mode, which allows the page content to expand to the browser's width.
+āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§ āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸āĻāĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŦ āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§ `wide` āĻŽā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¯āĻž āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻā§ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ¸ā§āĻĨā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤
```python
st.set_page_config(layout="wide")
```
-Next, we'll give the Streamlit app a title.
+āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻžāĻāĻā§āĻ˛ āĻā§āĻā§āĻ¸āĻ āĻŦāĻžāĻ¨āĻžāĻ¨:
```python
st.title('How to layout your Streamlit app')
```
-An expandable box titled `About this app` is placed under the app title. Upon expansion, we'll see additional details inside.
+āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻŦāĻžāĻā§āĻ¸ `About this app` āĻāĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽā§āĻ° āĻ
āĻ§ā§āĻ¨ā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖā§āĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻŋāĻ¤āĻ°ā§ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦāĨ¤
```python
with st.expander('About this app'):
st.write('This app shows the various ways on how you can layout your Streamlit app.')
st.image('https://streamlit.io/images/brand/streamlit-logo-secondary-colormark-darktext.png', width=250)
```
-Input widgets for accepting user input is placed in the sidebar as specified by using the `st.sidebar` command before the Streamlit commands `text_input` and `selectbox`. Input values entered or selected by the user are assigned and stored in the `user_name`, `user_emoji` and `user_food` variables.
+āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻĒā§āĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻĒā§āĻ āĻāĻāĻā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻžāĻāĻĄāĻŦāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ `st.sidebar` āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻ¸ `text_input` and `selectbox` āĻāĻā§āĻ˛ā§āĻ° āĻāĻā§āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻŦāĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻāĻ¨āĻĒā§āĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§ˇ `user_name`, `user_emoji` āĻāĻŦāĻ `user_food` āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻžāĨ¤
```python
st.sidebar.header('Input')
user_name = st.sidebar.text_input('What is your name?')
@@ -82,7 +82,8 @@ user_emoji = st.sidebar.selectbox('Choose an emoji', ['', 'đ', 'đ', 'đ'
user_food = st.sidebar.selectbox('What is your favorite food?', ['', 'Tom Yum Kung', 'Burrito', 'Lasagna', 'Hamburger', 'Pizza'])
```
-Finally, we'll create 3 columns using the `st.columns` command which corresponds to `col1`, `col2` and `col3`. Then, we assign contents to each of the column by creating individual code blocks starting with the `with` statement. Underneath this, we create conditional statements that display 1 of 2 alternative text depending on whether the user had provided their input data (specified in the sidebar) or not. By default, the page displays text under the `else` statement. Upon providing user input, the corresponding information that the user gives to the app is displayed under the `Output` header text.
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ ā§ŠāĻāĻŋ āĻāĻ˛āĻžāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ `st.columns` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ `col1`, `col2` āĻāĻŦāĻ `col3`āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ˛āĻžāĻŽā§ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻŋ āĻāĻ˛āĻžāĻĻāĻž āĻāĻ˛āĻžāĻĻāĻž āĻā§āĻĄ āĻŦā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ `with` āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§āĨ¤ āĻāĻ° āĻ¨ā§āĻā§, āĻāĻŽāĻ°āĻž āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§āĻā§āĻˇ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨āĻĒā§āĻ āĻĄā§āĻāĻž (āĻ¸āĻžāĻāĻĄāĻŦāĻžāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ) āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĻā§ āĻāĻŋ āĻ¨āĻž āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ ā§¨āĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĒāĻžāĻ ā§āĻ¯ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ ā§§āĻāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻĒā§āĻˇā§āĻ āĻžāĻāĻŋ `else` āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĻ° āĻ
āĻ§ā§āĻ¨ā§ āĻĒāĻžāĻ ā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻĒā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ
ā§āĻ¯āĻžāĻĒā§ āĻ¯ā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ¤āĻĨā§āĻ¯ āĻĻā§āĻ¯āĻŧ āĻ¤āĻž `Output` āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽā§āĻ° āĻĒāĻžāĻ ā§āĻ¯ā§āĻ° āĻ
āĻ§ā§āĻ¨ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
+
```python
st.header('Output')
@@ -108,5 +109,5 @@ with col3:
```
It is also worthy to note that `f` strings were used to combine pre-canned text together with the user provided values.
-## Further reading
-- [Layouts and Containers](https://docs.streamlit.io/library/api-reference/layout)
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
+- [āĻ˛ā§āĻāĻāĻ āĻāĻŦāĻ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°](https://docs.streamlit.io/library/api-reference/layout)
diff --git a/content/Day2.md b/content/Day2.md
index 4673080..2411622 100644
--- a/content/Day2.md
+++ b/content/Day2.md
@@ -1,14 +1,14 @@
-# Building your first Streamlit app
+# āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻŦāĻžāĻ¨āĻžāĻ¨ā§āĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ
-## Fire up your IDE
+## āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻĄāĻŋāĻ(IDE) āĻŦāĻž āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻā§āĻĄ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻāĻ¨āĻāĻžā§āĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨
-Fire up your IDE whether it be Atom, VS Code or even a cloud IDE such as GitPod or GitHub.dev.
+āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻĄāĻŋāĻ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻāĻž āĻāĻāĻŽ, āĻāĻŋāĻāĻ¸ āĻā§āĻĄ āĻŦāĻž āĻāĻŽāĻ¨āĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻāĻĄāĻŋāĻ āĻ¯ā§āĻŽāĻ¨ āĻāĻŋāĻā§āĻĒāĻĄ āĻŦāĻž āĻāĻŋāĻāĻšāĻžāĻŦ.āĻĄā§āĻā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
-Create a file called `streamlit_app.py`
+āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°ā§ āĻāĻ°ā§āĻ¨ āĻ¯āĻžāĻ° āĻ¨āĻžāĻŽ `streamlit_app.py`
-## Entering your first lines of code
+## āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻĄā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ˛āĻžāĻāĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻžāĻ¨ā§ āĻšāĻā§āĻā§
-To the newly created file, enter the following lines of code:
+āĻ¸āĻĻā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ¤ā§, āĻā§āĻĄā§āĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ˛āĻžāĻāĻ¨āĻā§āĻ˛āĻŋ āĻ˛āĻŋāĻā§āĻ¨:
```
import streamlit as st
@@ -16,16 +16,17 @@ import streamlit as st
st.write('Hello world!')
```
-Save the file.
+āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨āĨ¤
-## Fire up the command line terminal
+## āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨
-To the terminal, enter the following:
+āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ˛āĻžāĻāĻ¨āĻā§āĻ˛āĻŋ āĻ˛āĻŋāĻā§āĻ¨:
```
streamlit run streamlit_app.py
```
-A browser window should pop-up showing the newly created Streamlit app.
+āĻāĻāĻāĻŋ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻāĻāĻ¨ā§āĻĄā§ āĻĒāĻĒ-āĻāĻĒ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤ āĻ¸āĻĻā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻĻā§āĻāĻžāĻ¯āĻŧāĨ¤
+
+**āĻ
āĻāĻŋāĻ¨āĻ¨ā§āĻĻāĻ¨!** āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§āĻ¨!
-**Congratulations!** You have just created your first Streamlit app!
diff --git a/content/Day20.md b/content/Day20.md
index 24921ac..0cac9cf 100644
--- a/content/Day20.md
+++ b/content/Day20.md
@@ -1,6 +1,6 @@
-# Tech Twitter Space on What is Streamlit?
-## (Hosted by Francesco Ciulla)
+# āĻā§āĻ āĻā§āĻāĻāĻžāĻ° āĻ¸ā§āĻĒā§āĻ¸ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻŋ?
+## (āĻĢā§āĻ°āĻžāĻ¨ā§āĻ¸ā§āĻ¸āĻā§ āĻ¸āĻŋāĻāĻ˛āĻž āĻšā§āĻ¸ā§āĻ āĻāĻ°ā§āĻā§āĻ¨)
-Join us for a discussion about Streamlit with our host [Francesco Ciulla](https://twitter.com/FrancescoCiull4).
+āĻāĻŽāĻžāĻĻā§āĻ° āĻšā§āĻ¸ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ˛ā§āĻāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻ āĻĻāĻŋāĻ¨ [āĻĢā§āĻ°āĻžāĻ¨ā§āĻ¸ā§āĻ¸āĻā§ āĻ¸āĻŋāĻāĻ˛āĻž](https://twitter.com/FrancescoCiull4).
đ Link: https://twitter.com/i/spaces/1dRJZlbglXMKB
diff --git a/content/Day21.md b/content/Day21.md
index 2ad6838..ce93c1e 100644
--- a/content/Day21.md
+++ b/content/Day21.md
@@ -1,13 +1,13 @@
# st.progress
-`st.progress` displays a progress bar that updates graphically as the iteration progresses.
+`st.progress` āĻāĻāĻāĻŋ āĻ
āĻā§āĻ°āĻāĻ¤āĻŋ āĻŦāĻžāĻ° āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻ
āĻā§āĻ°āĻāĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻā§āĻ°āĻžāĻĢāĻŋāĻāĻāĻžāĻŦā§ āĻāĻĒāĻĄā§āĻ āĻšāĻ¯āĻŧāĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.progress/)
## Code
-Here's how to use `st.progress`:
+āĻāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ `st.progress`:
```python
import streamlit as st
import time
@@ -26,25 +26,26 @@ for percent_complete in range(100):
st.balloons()
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` along with the `time` library like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻžāĨ¤ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ `time` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻšā§ā§āĻā§:
```python
import streamlit as st
import time
```
-Next, we create a title text for the app:
+āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻĒāĻžāĻ ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ:
```python
st.title('st.progress')
```
-An **About box** is created using `st.expander` and description is displayed via `st.write`:
+āĻāĻāĻāĻŋ **āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻžāĻā§āĻ¸** āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ `st.expander` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻŦāĻŋāĻŦāĻ°āĻŖ `st.write` āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ:
```python
with st.expander('About this app'):
st.write('You can now display the progress of your calculations in a Streamlit app with the `st.progress` command.')
```
-Finally, we define a progress bar and instantiate it with a starting value of `0`. Then, a `for` loop will iterate from `0` until `100` is reached. In each iteration, we use `time.sleep(0.05)` to allow the app to wait for `0.05` before adding a value of `1` to the `my_bar` progress bar and in doing so the graphical display of the bar increases with each iteration.
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ
āĻā§āĻ°āĻāĻ¤āĻŋ āĻŦāĻžāĻ° āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ `0` āĻāĻ° āĻĒā§āĻ°āĻžāĻ°āĻŽā§āĻāĻŋāĻ āĻŽāĻžāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°āĻŋāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°, āĻāĻāĻāĻŋ `for` āĻ˛ā§āĻĒ `0` āĻĨā§āĻā§ `100` āĻ āĻĒā§āĻāĻāĻžāĻ¨ā§ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻŦā§āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ¤ā§, āĻāĻŽāĻ°āĻž `time.sleep(0.05)` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ āĻ¯āĻžāĻ¤ā§ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋāĻā§ `my_bar` āĻĒā§āĻ°āĻā§āĻ°ā§āĻ¸ āĻŦāĻžāĻ°ā§ `1` āĻāĻ° āĻŽāĻžāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻā§ `0.05` āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ āĻŦāĻžāĻ°ā§āĻ° āĻā§āĻ°āĻžāĻĢāĻŋāĻāĻžāĻ˛ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§āĨ¤
+
```python
my_bar = st.progress(0)
@@ -55,5 +56,5 @@ for percent_complete in range(100):
st.balloons()
```
-## Further reading
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
- [`st.progress`](https://docs.streamlit.io/library/api-reference/status/st.progress)
diff --git a/content/Day22.md b/content/Day22.md
index 045aafc..e0d86e8 100644
--- a/content/Day22.md
+++ b/content/Day22.md
@@ -1,26 +1,26 @@
# st.form
-`st.form` creates a form that batches elements together with a "Submit" button.
+`st.form` āĻāĻāĻāĻŋ āĻĢāĻ°ā§āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻāĻŋ "Submit" āĻŦāĻžāĻāĻ¨ āĻĻāĻŋā§ā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻŦā§āĻ¯āĻžāĻ āĻāĻ°ā§āĨ¤
-Typically, whenever a user interacts with a widget, the Streamlit app is rerun.
+āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻ¯āĻāĻ¨āĻ āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻāĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ
ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°ā§, āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻšāĻ¯āĻŧāĨ¤
-A form is a container that visually groups other elements and widgets together, and contains a Submit button. Herein, a user can interacts with one or more widgets for as many times as they like without causing a rerun. Finally, when the form's Submit button is pressed, all widget values inside the form will be sent to Streamlit in a single batch.
+āĻāĻāĻāĻŋ āĻĢāĻ°ā§āĻŽ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻ¯āĻž āĻĻā§āĻļā§āĻ¯āĻ¤ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻŦāĻ āĻāĻāĻā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻ¤ā§āĻ°ā§ āĻā§āĻˇā§āĻ ā§āĻŦāĻĻā§āĻ§ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻŽāĻž āĻŦā§āĻ¤āĻžāĻŽ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§ā§ˇ āĻāĻāĻžāĻ¨ā§, āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻĒā§āĻ¨āĻāĻ°āĻžāĻ¨ āĻ¨āĻž āĻāĻāĻŋāĻ¯āĻŧā§ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻāĻāĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯āĻ¤āĻŦāĻžāĻ° āĻā§āĻļāĻŋ āĻ¤āĻ¤āĻŦāĻžāĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻ
ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ
āĻŦāĻļā§āĻˇā§, āĻ¯āĻāĻ¨ āĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻŽāĻž āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻŦā§āĻ¤āĻžāĻŽāĻāĻŋ āĻāĻžāĻĒāĻž āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻŋāĻ¤āĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻāĻā§āĻ āĻŽāĻžāĻ¨ āĻāĻāĻ āĻŦā§āĻ¯āĻžāĻā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻŦā§āĨ¤
-To add elements to a form object, you can use the `with` notation (preferred) or you could use it as an object notation by just calling methods directly on the form (by first assigning it to a variable and subsequently applying Streamlit methods on it). See in the example app.
+āĻāĻāĻāĻŋ āĻĢāĻ°ā§āĻŽ āĻ
āĻŦāĻā§āĻā§āĻā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ `āĻ¸āĻš` āĻ¸ā§āĻŦāĻ°āĻ˛āĻŋāĻĒāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ (āĻĒāĻāĻ¨ā§āĻĻā§āĻ°) āĻ
āĻĨāĻŦāĻž āĻāĻĒāĻ¨āĻŋ āĻĢāĻ°ā§āĻŽā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻāĻ˛ āĻāĻ°ā§ āĻāĻāĻŋāĻā§ āĻ
āĻŦāĻā§āĻā§āĻ āĻ¨ā§āĻā§āĻļāĻ¨ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ (āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§ āĻāĻāĻž)āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ
ā§āĻ¯āĻžāĻĒā§ āĻĻā§āĻā§āĻ¨āĨ¤
-Forms have a few constraints:
-- Every form must contain a `st.form_submit_button`.
-- `st.button` and `st.download_button` cannot be added to a form.
-- Forms can appear anywhere in your app (sidebar, columns, etc), but they cannot be embedded inside other forms.
+āĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻŋāĻā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻāĻā§:
+- āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĢāĻ°ā§āĻŽā§ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ `st.form_submit_button` āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤
+- `st.button` āĻāĻŦāĻ `st.download_button` āĻā§āĻ¨ā§ āĻĢāĻ°ā§āĻŽā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻžāĨ¤
+- āĻĢāĻ°ā§āĻŽāĻā§āĻ˛āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻ¯ā§ āĻā§āĻ¨āĻ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ (āĻ¸āĻžāĻāĻĄāĻŦāĻžāĻ°, āĻāĻ˛āĻžāĻŽ, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¤āĻŦā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ
āĻ¨ā§āĻ¯ āĻĢāĻ°ā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽā§āĻŦā§āĻĄ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻžā§ˇ
-For more information about forms, check out our [blog post](https://blog.streamlit.io/introducing-submit-button-and-forms/).
+āĻĢāĻ°ā§āĻŽ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻā§āĻ¨ [āĻŦā§āĻ˛āĻ āĻĒā§āĻ¸ā§āĻ](https://blog.streamlit.io/introducing-submit-button-and-forms/).
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.form/)
-## Code
-Here's how to use `st.form`:
+## āĻā§āĻĄ
+āĻāĻāĻžāĻ¨ā§ āĻāĻŋāĻāĻžāĻŦā§ `st.form` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨:
```python
import streamlit as st
@@ -68,19 +68,19 @@ form.form_submit_button('Submit')
st.write('Selected value: ', selected_val)
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
```
-This is followed by creating a title text for the app:
+āĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻžāĻāĻā§āĻ˛ āĻĒāĻžāĻ ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
```python
st.title('st.form')
```
-### First example
-Let's start with the first example, here we'll apply the `st.form` command via the `with` notation. Inside the form, we'll start with writing a subheader `Order your coffee` then create several input widgets (`st.selectbox`, `st.select_slider` and `st.checkbox`) to collect information about the coffee order. Finally, a submit button is created via the `st.form_submit_button` command, which when clicked on will send all user input as a single batch of information to the app for processing.
+### āĻĒā§āĻ°āĻĨāĻŽ āĻāĻĻāĻžāĻšāĻ°āĻŖ
+āĻĒā§āĻ°āĻĨāĻŽ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ, āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž `st.form` āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ `with` āĻ¨ā§āĻā§āĻļāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻŦāĨ¤ āĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻŋāĻ¤āĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻĒāĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ˛āĻŋāĻāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŦ `āĻāĻĒāĻ¨āĻžāĻ° āĻāĻĢāĻŋ āĻ
āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°ā§āĻ¨` āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻĢāĻŋāĻ° āĻ
āĻ°ā§āĻĄāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ āĻŦā§āĻļ āĻāĻŋāĻā§ āĻāĻ¨āĻĒā§āĻ āĻāĻāĻā§āĻ (`st.selectbox`, `st.select_slider` āĻāĻŦāĻ `st.checkbox`) āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻ
āĻŦāĻļā§āĻˇā§, `st.form_submit_button` āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŦāĻŽāĻŋāĻ āĻŦā§āĻ¤āĻžāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§āĻāĻŋāĻ¤ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻž āĻšāĻ˛ā§ āĻ¤āĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
ā§āĻ¯āĻžāĻĒā§ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻāĻ āĻŦā§āĻ¯āĻžāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻĒā§āĻ āĻĒāĻžāĻ āĻžāĻŦā§āĨ¤
```python
# Full example of using the with notation
st.header('1. Example of using `with` notation')
@@ -101,7 +101,8 @@ with st.form('my_form'):
submitted = st.form_submit_button('Submit')
```
-Next, we'll add the logic of what happen's after the submit button is clicked on. By default, whenever the Streamlit app is loaded the `else` statement will be run and we see a message `âī¸ Place your order!`. Whereas upon clicking on the submit button, all user provided input via the various widgets are stored in several variables (e.g. `coffee_bean_val`, `coffee_roast_val`, etc.) and printed out via the `st.markdown` command with the help of f-string.
+āĻāĻ°āĻĒāĻ°ā§, āĻ¸āĻžāĻŦāĻŽāĻŋāĻ āĻŦā§āĻ¤āĻžāĻŽā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ° āĻā§ āĻāĻāĻŦā§ āĻ¤āĻžāĻ° āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¯ā§āĻ āĻāĻ°āĻŦāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻ¯āĻāĻ¨āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻ˛ā§āĻĄ āĻšāĻŦā§ āĻ¤āĻāĻ¨āĻ `āĻ
āĻ¨ā§āĻ¯` āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦ `âī¸ āĻāĻĒāĻ¨āĻžāĻ° āĻ
āĻ°ā§āĻĄāĻžāĻ° āĻĻāĻŋāĻ¨!`ā§ˇ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻžāĻŦāĻŽāĻŋāĻ āĻŦā§āĻ¤āĻžāĻŽā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻāĻā§āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻ¨āĻĒā§āĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻ¯ā§āĻŽāĻ¨ `coffee_bean_val`, `coffee_roast_val` āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻāĻŦāĻ f āĻāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ `st.markdown` āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ f-string āĻĻāĻŋā§ā§āĨ¤
+
```python
if submitted:
st.markdown(f'''
@@ -118,8 +119,8 @@ else:
```
-### Second example
-Let's now proceed to the second example on using the `st.form` as an object notation. Here, the `st.form` command is assigned to the `form` variable. Subsequently, various Streamlit commands such as `slider` or `form_submit_button` is applied on the `form` variable.
+### āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻĻāĻžāĻšāĻ°āĻŖ
+āĻāĻāĻ¨ āĻ
āĻŦāĻā§āĻā§āĻ āĻ¨ā§āĻā§āĻļāĻ¨ āĻšāĻŋāĻ¸ā§āĻŦā§ `st.form` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻāĨ¤ āĻāĻāĻžāĻ¨ā§, `st.form` āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ `form` āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻāĻžāĻ˛ā§, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ Streamlit āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¯ā§āĻŽāĻ¨ `slider` āĻŦāĻž `form_submit_button` `form` āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
```python
# Short example of using an object notation
st.header('2. Example of object notation')
@@ -131,6 +132,6 @@ form.form_submit_button('Submit')
st.write('Selected value: ', selected_val)
```
-## Further reading
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
- [`st.form`](https://docs.streamlit.io/library/api-reference/control-flow/st.form)
-- [Introducing Submit button and Forms](https://blog.streamlit.io/introducing-submit-button-and-forms/)
+- [āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻŦāĻžāĻāĻ¨ āĻāĻŦāĻ āĻĢāĻ°ā§āĻŽ](https://blog.streamlit.io/introducing-submit-button-and-forms/)
diff --git a/content/Day23.md b/content/Day23.md
index 75884af..fdcffdc 100644
--- a/content/Day23.md
+++ b/content/Day23.md
@@ -1,19 +1,19 @@
# st.experimental_get_query_params
-`st.experimental_get_query_params` allows the retrieval of query parameters directly from the URL of the user's browser.
+`st.experimental_get_query_params` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻ° URL āĻĨā§āĻā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻā§āĻ¯āĻŧā§āĻ°āĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ°ā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
-1. The following link loads the demo app with no query parameters (notice the error message):
+ā§§. āĻ¨āĻŋāĻā§āĻ° āĻ˛āĻŋāĻā§āĻāĻāĻŋ āĻā§āĻ¨ āĻā§āĻ¯āĻŧā§āĻ°āĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻāĻžāĻĄāĻŧāĻžāĻ āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ āĻ˛ā§āĻĄ āĻāĻ°ā§ (āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨):
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.experimental_get_query_params/)
-2. The following link loads the demo app with query parameters (no error message here):
+ā§¨. āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ˛āĻŋāĻā§āĻāĻāĻŋ āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋāĻā§ āĻā§āĻ¯āĻŧā§āĻ°āĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¸āĻš āĻ˛ā§āĻĄ āĻāĻ°ā§ (āĻāĻāĻžāĻ¨ā§ āĻā§āĻ¨āĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¨ā§āĻ):
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](http://share.streamlit.io/dataprofessor/st.experimental_get_query_params/?firstname=Jack&surname=Beanstalk)
-## Code
-Here's how to use `st.experimental_get_query_params`:
+## āĻā§āĻĄ
+āĻāĻāĻžāĻ¨ā§ āĻāĻŋāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ `st.experimental_get_query_params`:
```python
import streamlit as st
@@ -47,24 +47,24 @@ surname = st.experimental_get_query_params()['surname'][0]
st.write(f'Hello **{firstname} {surname}**, how are you?')
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
```
-Next, we'll give the app a title:
+āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻĻā§āĻŦ:
```python
st.title('st.experimental_get_query_params')
```
-Let's also add an About drop-down box:
+āĻāĻ° āĻāĻāĻāĻŋ āĻĄā§āĻ°āĻĒ-āĻĄāĻžāĻāĻ¨ āĻŦāĻā§āĻ¸āĻ āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ:
```python
with st.expander('About this app'):
st.write("`st.experimental_get_query_params` allows the retrieval of query parameters directly from the URL of the user's browser.")
```
-Then, we'll provide instructions to visitors of the app on how they can pass query parameters directly to the URL:
+āĻ¤āĻžāĻ°āĻĒāĻ°, āĻāĻŽāĻ°āĻž āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻĻāĻ°ā§āĻļāĻāĻĻā§āĻ° āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ URL-āĻ āĻā§āĻ¯āĻŧā§āĻ°āĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ¨āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŦ:
```python
# 1. Instructions
st.header('1. Instructions')
@@ -77,14 +77,14 @@ such that it becomes
''')
```
-Subsequently, we'll display the contents of the `st.experimental_get_query_params` command.
+āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻāĻžāĻ˛ā§, āĻāĻŽāĻ°āĻž `st.experimental_get_query_params` āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŦāĨ¤
```python
# 2. Contents of st.experimental_get_query_params
st.header('2. Contents of st.experimental_get_query_params')
st.write(st.experimental_get_query_params())
```
-Finally, we'll select and display selective information from the URL's query parameter:
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž URL āĻāĻ° āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻĨā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ā§ āĻ¤āĻĨā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻŦ āĻāĻŦāĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŦ:
```python
# 3. Retrieving and displaying information from the URL
st.header('3. Retrieving and displaying information from the URL')
@@ -95,5 +95,5 @@ surname = st.experimental_get_query_params()['surname'][0]
st.write(f'Hello **{firstname} {surname}**, how are you?')
```
-## Further reading
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
- [`st.experimental_get_query_params`](https://docs.streamlit.io/library/api-reference/utilities/st.experimental_get_query_params)
diff --git a/content/Day24.md b/content/Day24.md
index fc12a46..a0c9853 100644
--- a/content/Day24.md
+++ b/content/Day24.md
@@ -1,32 +1,32 @@
# st.cache
-`st.cache` allows you to optimize the performance of your Streamlit app.
+`st.cache` āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° Streamlit āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤
-Streamlit provides a caching mechanism that allows your app to stay performant even when loading data from the web, manipulating large datasets, or performing expensive computations. This is done with the `@st.cache` decorator.
+Streamlit āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻļāĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻāĻ¯āĻŧā§āĻŦ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻŦāĻĄāĻŧ āĻĄā§āĻāĻžāĻ¸ā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻŦāĻž āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋāĻā§ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ āĻĨāĻžāĻāĻ¤ā§ āĻĻā§āĻ¯āĻŧā§ˇ āĻāĻāĻŋ `@st.cache` āĻĄā§āĻā§āĻ°ā§āĻāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
-When you mark a function with the @st.cache decorator, it tells Streamlit that whenever the function is called it needs to check a few things:
+āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ `@st.cache` āĻĄā§āĻā§āĻ°ā§āĻāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°ā§āĻ¨, āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻāĻā§ āĻŦāĻ˛ā§ āĻ¯ā§ āĻ¯āĻāĻ¨āĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
-1. The input parameters that you called the function with
-2. The value of any external variable used in the function
-3. The body of the function
-4. The body of any function used inside the cached function
+ā§§. āĻāĻ¨āĻĒā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¯āĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻĒāĻ¨āĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°ā§āĻā§āĻ¨
+ā§¨. āĻĢāĻžāĻāĻļāĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¯ā§āĻā§āĻ¨ā§ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻāĻ˛āĻā§āĻ° āĻŽāĻžāĻ¨
+ā§Š. āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻŽā§āĻ˛ āĻ
āĻāĻļ
+ā§Ē. āĻā§āĻ¯āĻžāĻļāĻĄ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¯ā§āĻā§āĻ¨ā§ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻŦāĻĄāĻŋ
-If this is the first time Streamlit has seen these four components with these exact values and in this exact combination and order, it runs the function and stores the result in a local cache. Then, next time the cached function is called, if none of these components changed, Streamlit will just skip executing the function altogether and, instead, return the output previously stored in the cache.
+āĻ¯āĻĻāĻŋ āĻāĻ āĻĒā§āĻ°āĻĨāĻŽāĻŦāĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻ āĻāĻžāĻ°āĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§ āĻāĻ āĻ¸āĻ āĻŋāĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻĻā§āĻā§ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻ āĻ¸āĻ āĻŋāĻ āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖ āĻāĻŦāĻ āĻā§āĻ°āĻŽā§, āĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻā§āĻ¯āĻžāĻļā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§, āĻĒāĻ°ā§āĻ° āĻŦāĻžāĻ° āĻā§āĻ¯āĻžāĻļā§ āĻāĻ°āĻž āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻ˛ āĻāĻ°āĻž āĻšāĻ˛ā§, āĻ¯āĻĻāĻŋ āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻā§āĻ¨ā§āĻāĻŋāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻā§āĻ¯āĻžāĻļā§ āĻĒā§āĻ°ā§āĻŦā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻāĻāĻāĻĒā§āĻāĻāĻŋ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§āĨ¤
-The way Streamlit keeps track of changes in these components is through hashing. Think of the cache as an in-memory key-value store, where the key is a hash of all of the above and the value is the actual output object passed by reference.
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ¯ā§āĻāĻžāĻŦā§ āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻ°āĻžāĻā§ āĻ¤āĻž āĻšāĻ˛ āĻšā§āĻ¯āĻžāĻļāĻŋāĻāĻ¯āĻŧā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ā§ˇ āĻā§āĻ¯āĻžāĻļā§āĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻāĻ¨-āĻŽā§āĻŽāĻ°āĻŋ āĻā§-āĻā§āĻ¯āĻžāĻ˛ā§ āĻ¸ā§āĻā§āĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻŦā§āĻ¨, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻāĻŋ āĻāĻĒāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤āĻāĻŋāĻ° āĻāĻāĻāĻŋ āĻšā§āĻ¯āĻžāĻļ āĻāĻŦāĻ āĻŽāĻžāĻ¨āĻāĻŋ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻĒā§āĻ°āĻā§āĻ¤ āĻāĻāĻāĻĒā§āĻ āĻ
āĻŦāĻā§āĻā§āĻāĨ¤
-Finally, `@st.cache` supports arguments to configure the cache's behavior. You can find more information on those in our API reference.
+āĻ
āĻŦāĻļā§āĻˇā§, `@st.cache` āĻā§āĻ¯āĻžāĻļā§āĻ° āĻāĻāĻ°āĻŖ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻĻā§āĻ° API āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
-## How to use?
+## āĻāĻŋāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§?
-You can simply add `st.cache` decorator on the preceding line of a custom function that you define in your Streamlit app. See the example below.
+āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° Streamlit āĻ
ā§āĻ¯āĻžāĻĒā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻŽ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ˛āĻžāĻāĻ¨ā§ āĻ¸āĻšāĻāĻāĻžāĻŦā§ `st.cache` āĻĄā§āĻā§āĻ°ā§āĻāĻ° āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻ¨ā§āĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻā§āĻ¨āĨ¤
## Demo app
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.cache/)
-## Code
-Here's how to use `st.cache`:
+## āĻā§āĻĄ
+āĻāĻāĻžāĻ¨ā§ āĻāĻŋāĻāĻžāĻŦā§ `st.cache` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨:
```python
import streamlit as st
import numpy as np
@@ -68,8 +68,8 @@ b1 = time()
st.info(b1-b0)
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` as well as other libraries used in the app like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¨āĻžāĻ¨ā§āĻ¯ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
import numpy as np
@@ -77,12 +77,12 @@ import pandas as pd
from time import time
```
-This is followed by creating a title text for the app:
+āĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻĒāĻžāĻ ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
```python
st.title('Streamlit Cache')
```
-Next, we'll define 2 custom functions for generating a large DataFrame where the first one makes use of the `st.cache` decorator while the second does not:
+āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻĄā§āĻāĻžāĻĢā§āĻ°ā§āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ 2āĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻŽ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŦ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋ `st.cache` āĻĄā§āĻā§āĻ°ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯āĻāĻ¨ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻāĻ°ā§ āĻ¨āĻž:
```python
@st.cache(suppress_st_warning=True)
def load_data_a():
@@ -100,7 +100,7 @@ def load_data_b():
return df
```
-Finally, we run the custom function while also timing the run time using the `time()` command.
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻāĻžāĻ¸ā§āĻāĻŽ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻ āĻ¯āĻāĻ¨ `time()` āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ°āĻžāĻ¨ āĻāĻžāĻāĻŽ āĻāĻžāĻāĻŽāĻŋāĻ āĻāĻ°āĻŋāĨ¤
```python
# Using cache
a0 = time()
@@ -123,11 +123,11 @@ b1 = time()
st.info(b1-b0)
```
-Notice how the first run may provide roughly similar run time. Reload the app and notice how the run time changes when using the `st.cache` decorator. Did you observe any speed increase?
+āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻāĻŋāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻĨāĻŽ āĻ°āĻžāĻ¨ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ
āĻ¨ā§āĻ°ā§āĻĒ āĻ°āĻžāĻ¨ āĻāĻžāĻāĻŽ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ `st.cache` āĻĄā§āĻā§āĻ°ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻāĻžāĻŦā§ āĻ°āĻžāĻ¨ āĻāĻžāĻāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻŋ āĻā§āĻ¨ āĻāĻ¤āĻŋ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻā§āĻ¨?
## Further reading
-- [`st.cache` API Documentation](https://docs.streamlit.io/library/api-reference/performance/st.cache)
-- [Optimize performance with `st.cache`](https://docs.streamlit.io/library/advanced-features/caching)
-- [Experimental cache primitives](https://docs.streamlit.io/library/advanced-features/experimental-cache-primitives)
+- [`st.cache` API āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨](https://docs.streamlit.io/library/api-reference/performance/st.cache)
+- [āĻ¸āĻā§āĻā§ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°ā§āĻ¨ `st.cache`āĻĻāĻŋā§ā§](https://docs.streamlit.io/library/advanced-features/caching)
+- [āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻā§āĻ¯āĻžāĻļā§](https://docs.streamlit.io/library/advanced-features/experimental-cache-primitives)
- [`st.experimental_memo`](https://docs.streamlit.io/library/api-reference/performance/st.experimental_memo)
- [`st.experimental_singleton`](https://docs.streamlit.io/library/api-reference/performance/st.experimental_singleton)
diff --git a/content/Day25.md b/content/Day25.md
index 26efc1c..fbcb369 100644
--- a/content/Day25.md
+++ b/content/Day25.md
@@ -1,19 +1,19 @@
# st.session_state
-We define access to a Streamlit app in a browser tab as a session. For each browser tab that connects to the Streamlit server, a new session is created. Streamlit reruns your script from top to bottom every time you interact with your app. Each reruns takes place in a blank slate: no variables are shared between runs.
+āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ
āĻ§āĻŋāĻŦā§āĻļāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻā§āĻ¯āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻŦā§āĨ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻā§āĻ¯āĻžāĻŦā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ
ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°ā§āĻ¨ āĻ¤āĻāĻ¨āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻĒāĻ°ā§ āĻĨā§āĻā§ āĻ¨ā§āĻā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛āĻžāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ¨āĻāĻ°āĻžāĻ¨ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻāĻž āĻ¸ā§āĻ˛ā§āĻā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ: āĻ°āĻžāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
-Session State is a way to share variables between reruns, for each user session. In addition to the ability to store and persist state, Streamlit also exposes the ability to manipulate state using Callbacks.
+āĻ¸ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ āĻšāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻŋāĻ°āĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧāĨ¤ āĻ¸ā§āĻā§āĻ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻžāĻĄāĻŧāĻžāĻ, āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻžāĻ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĨ¤
-In this tutorial, we will illustrate the usage of Session State and Callbacks as we build a weight conversion app.
+āĻāĻ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻāĻ¨ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ āĻāĻŦāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻŦāĨ¤
-`st.session_state` allows the implementation of session state in a Streamlit app.
+`st.session_state` āĻāĻāĻāĻŋ Streamlit āĻ
ā§āĻ¯āĻžāĻĒā§ āĻ¸ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.session_state/)
-## Code
-Here's how to use `st.session_state`:
+## āĻā§āĻĄ
+āĻāĻāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ `st.session_state`:
```python
import streamlit as st
@@ -35,18 +35,18 @@ st.header('Output')
st.write("st.session_state object:", st.session_state)
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
```
-Firstly, we'll start by creating the title of the app:
+āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŽāĻ°āĻž āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋāĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŦ:
```python
st.title('st.session_state')
```
-Next, we define custom functions for the weight conversion from lbs to kg and vice versa:
+āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻĒāĻžāĻāĻ¨ā§āĻĄ āĻĨā§āĻā§ āĻā§āĻāĻŋ āĻāĻāĻ¨ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°ā§āĻ° āĻŦāĻž āĻ¤āĻžāĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ¸ā§āĻāĻŽ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŋ:
```python
def lbs_to_kg():
st.session_state.kg = st.session_state.lbs/2.2046
@@ -54,7 +54,7 @@ def kg_to_lbs():
st.session_state.lbs = st.session_state.kg*2.2046
```
-Here, we use `st.number_input` to accept numerical inputs of the weight values:
+āĻāĻāĻžāĻ¨ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻ¨ āĻŽāĻžāĻ¨ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĻ¸ā§āĻāĻ āĻāĻ¨āĻĒā§āĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻ¤ā§ `st.number_input` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ:
```python
st.header('Input')
col1, spacer, col2 = st.columns([2,1,2])
@@ -63,16 +63,18 @@ with col1:
with col2:
kilogram = st.number_input("Kilograms:", key = "kg", on_change = kg_to_lbs)
```
-The above 2 custom functions will be called upon as soon as a numerical value is entered into the number box created using the `st.number_input` command. Notice how the `on_change` option specifies the 2 custom functions `lbs_to_kg` and `kg_to_lbs`).
-In a nutshell, upon entering a number into the `st.number_input` box the number is converted by these custom functions.
+āĻāĻĒāĻ°ā§āĻ° 2āĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻŽ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻā§ 'st.number_input` āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¨āĻŽā§āĻŦāĻ° āĻŦāĻžāĻā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻžāĻ¸ā§āĻāĻ āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻžāĻ¨ā§ āĻšāĻŦā§āĨ¤ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻāĻŋāĻāĻžāĻŦā§ `on_change` āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ 2āĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻŽ āĻĢāĻžāĻāĻļāĻ¨ `lbs_to_kg` āĻāĻŦāĻ `kg_to_lbs` āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĨ¤
-Finally, the weight values in `kg` and `lbs` units as stored in the session state as `st.session_state.kg` and `st.session_state.lbs` will be printed out via `st.write`:
+āĻ¸āĻāĻā§āĻˇā§āĻĒā§, `st.number_input` āĻŦāĻžāĻā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻžāĻ˛ā§ āĻ¸āĻāĻā§āĻ¯āĻžāĻāĻŋ āĻāĻ āĻāĻžāĻ¸ā§āĻāĻŽ āĻĢāĻžāĻāĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
+
+āĻĒāĻ°āĻŋāĻļā§āĻˇā§, `kg` āĻāĻŦāĻ `lbs` āĻāĻāĻ¨āĻŋāĻā§āĻ° āĻāĻāĻ¨ā§āĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¸ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻā§ `st.session_state.kg` āĻāĻŦāĻ `st.session_state.lbs` āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§
+`st.write`:
```python
st.header('Output')
st.write("st.session_state object:", st.session_state)
```
-## Further reading
-- [Session State](https://docs.streamlit.io/library/api-reference/session-state)
-- [Add statefulness to apps](https://docs.streamlit.io/library/advanced-features/session-state)
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
+- [āĻ¸ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ](https://docs.streamlit.io/library/api-reference/session-state)
+- [āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¸ā§āĻā§āĻ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨](https://docs.streamlit.io/library/advanced-features/session-state)
diff --git a/content/Day26.md b/content/Day26.md
index 46deee9..582d980 100644
--- a/content/Day26.md
+++ b/content/Day26.md
@@ -1,15 +1,15 @@
-# How to use API by building the Bored API app
+# āĻŦā§āĻ°ā§āĻĄ āĻāĻĒāĻŋāĻāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻā§āĻāĻžāĻŦā§ API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨
-The Bored API app suggests fun things for you to do when you are bored!
+āĻŦā§āĻ°ā§āĻĄ API āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻāĻžāĻĻāĻžāĻ° āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻāĻ°ā§ āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻšāĻ¨!
-Technically, it also demonstrates the usage of APIs from within a Streamlit app.
+āĻā§āĻāĻ¨āĻŋāĻā§āĻ¯āĻžāĻ˛āĻŋ, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĨā§āĻā§ API-āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ āĻĻā§āĻāĻžāĻ¯āĻŧāĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
-[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/bored-api-app/)
+[![āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/bored-api-app/)
-## Code
-Here's how to implement the Bored-API app:
+## āĻā§āĻĄ
+āĻŦā§āĻ°ā§-API āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻž āĻāĻāĻžāĻ¨ā§:
```python
import streamlit as st
import requests
@@ -43,32 +43,34 @@ with col3:
st.metric(label='Price', value=suggested_activity['price'], delta='')
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` and the `requests` library like so:
+
+
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ `requests` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
import requests
```
-The app's title is displayed via `st.title`:
+āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽāĻāĻŋ `st.title` āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ:
```python
st.title('đ Bored API app')
```
-Next, we'll accept user input on the **activity type** by means of the `st.selectbox` command:
+āĻāĻ°āĻĒāĻ°, āĻāĻŽāĻ°āĻž `st.selectbox` āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ **āĻ
ā§āĻ¯āĻžāĻā§āĻāĻŋāĻāĻŋāĻāĻŋ āĻāĻžāĻāĻĒ**-āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻĒā§āĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻŦ:
```python
st.sidebar.header('Input')
selected_type = st.sidebar.selectbox('Select an activity type', ["education", "recreational", "social", "diy", "charity", "cooking", "relaxation", "music", "busywork"])
```
-The selected activity mentioned above is then appended to the URL via an f-string, which is then used to retrieve the resulting JSON data:
+āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻāĻžāĻ°ā§āĻ¯āĻāĻ˛āĻžāĻĒ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻāĻŋ f-āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ URL āĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻ¤āĻžāĻ°āĻĒāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ JSON āĻĄā§āĻāĻž āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ:
```python
suggested_activity_url = f'http://www.boredapi.com/api/activity?type={selected_type}'
json_data = requests.get(suggested_activity_url)
suggested_activity = json_data.json()
```
-Here, we'll display information about the app and the JSON data via the `st.expander` command.
+āĻāĻāĻžāĻ¨ā§, āĻāĻŽāĻ°āĻž `st.expander` āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ āĻāĻŦāĻ JSON āĻĄā§āĻāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŦāĨ¤
```python
c1, c2 = st.columns(2)
with c1:
@@ -79,13 +81,13 @@ with c2:
st.write(suggested_activity)
```
-We'll then display a suggested activity like so:
+āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻāĻžāĻ°ā§āĻ¯āĻāĻ˛āĻžāĻĒ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŦ āĻ¯ā§āĻŽāĻ¨:
```python
st.header('Suggested activity')
st.info(suggested_activity['activity'])
```
-Finally, we'll also display the accompanying information of the suggested activity such as the `Number of Participants`, `Type of Activity` and `Price`.
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒā§āĻ° āĻ¸āĻšāĻāĻžāĻŽā§ āĻ¤āĻĨā§āĻ¯ āĻ¯ā§āĻŽāĻ¨ `āĻ
āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž`, `āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ°` āĻāĻŦāĻ `āĻŽā§āĻ˛ā§āĻ¯` āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŦāĨ¤
```python
col1, col2, col3 = st.columns(3)
with col1:
@@ -96,5 +98,5 @@ with col3:
st.metric(label='Price', value=suggested_activity['price'], delta='')
```
-## Further reading
-- [Bored API](http://www.boredapi.com/)
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
+- [āĻŦā§āĻ°ā§āĻĄ API](http://www.boredapi.com/)
diff --git a/content/Day27.md b/content/Day27.md
index f9b791e..e8c618c 100644
--- a/content/Day27.md
+++ b/content/Day27.md
@@ -1,38 +1,38 @@
-# Build a draggable and resizable dashboard with Streamlit Elements
+# āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻ˛āĻŋāĻŽā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻā§āĻ¨ā§ āĻāĻ¨āĻ¤ā§ āĻ¯ā§āĻā§āĻ¯ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ¯ā§āĻā§āĻ¯ āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
-Streamlit Elements is a third-party component made by [okld](https://github.com/okld) that gives you the tools to compose beautiful applications and dashboards with Material UI widgets, Monaco editor (Visual Studio Code), Nivo charts, and more.
+Streamlit Elements āĻšāĻ˛ [okld](https://github.com/okld) āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻāĻāĻŋ āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ-āĻĒāĻā§āĻˇā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨ UI āĻāĻāĻā§āĻ, āĻŽā§āĻ¨āĻžāĻā§ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ (āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛ āĻ¸ā§āĻā§āĻĄāĻŋāĻ āĻā§āĻĄ), āĻ¨āĻŋāĻā§ āĻāĻžāĻ°ā§āĻ āĻ¸āĻš āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄ āĻ°āĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻāĻŦāĻ āĻāĻ°ā§ āĻ
āĻ¨ā§āĻ āĻāĻŋāĻā§ āĻĻā§ā§āĨ¤
-## How to use?
+## āĻāĻŋāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§?
-### Installation
+### āĻ¸ā§āĻĨāĻžāĻĒāĻ¨
-The first step is to install Streamlit Elements in your environment:
+āĻĒā§āĻ°āĻĨāĻŽ āĻ§āĻžāĻĒ āĻšāĻ˛ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž:
```bash
pip install streamlit-elements==0.1.*
```
-It is recommended to pin the version to `0.1.*`, as future versions might introduce breaking API changes.
+āĻāĻžāĻ°ā§āĻ¸āĻ¨āĻāĻŋāĻā§ `ā§Ļ.ā§§ .*`-āĻ āĻĒāĻŋāĻ¨ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻā§āĻā§, āĻāĻžāĻ°āĻŖ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ āĻāĻžāĻ°ā§āĻ¸āĻ¨āĻā§āĻ˛āĻŋ āĻŦā§āĻ°ā§āĻāĻŋāĻ API āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ¨āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
-### Usage
+### āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°
-You can refer to [Streamlit Elements README](https://github.com/okld/streamlit-elements#getting-started) for an in-depth usage guide.
+āĻāĻĒāĻ¨āĻŋ āĻāĻā§āĻ°āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻžāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ [āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻ˛āĻŋāĻŽā§āĻ¨ā§āĻāĻ¸ āĻ°āĻŋāĻĄāĻŽāĻŋ ](https://github.com/okld/streamlit-elements#getting-started) āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
-## What are we building?
+## āĻāĻŽāĻ°āĻž āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻāĻŋ?
-The goal of today's challenge is to create a dashboard composed of three Material UI cards:
+āĻāĻāĻā§āĻ° āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻšāĻ˛ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻŽā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ UI āĻāĻžāĻ°ā§āĻĄā§āĻ° āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž:
-- A first card with a Monaco code editor to input some data ;
-- A second card to display that data in a Nivo Bump chart ;
-- A third card to show a YouTube video URL defined with a `st.text_input`.
+- āĻāĻŋāĻā§ āĻĄā§āĻāĻž āĻāĻ¨āĻĒā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŽā§āĻ¨āĻžāĻā§ āĻā§āĻĄ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ āĻ¸āĻš āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻ°ā§āĻĄ;
+- āĻāĻāĻāĻŋ āĻ¨āĻŋāĻā§ āĻŦāĻžāĻŽā§āĻĒ āĻāĻžāĻ°ā§āĻā§ āĻ¸ā§āĻ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻ°ā§āĻĄ;
+- āĻāĻāĻāĻŋ 'st.text_input' āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻāĻāĻāĻŋāĻāĻŦ āĻāĻŋāĻĄāĻŋāĻ URL āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻ°ā§āĻĄā§ˇ
-You can use data generated from Nivo Bump demo there, in 'data' tab: https://nivo.rocks/bump/.
+āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¨āĻŋāĻā§ āĻŦāĻžāĻŽā§āĻĒ āĻĄā§āĻŽā§ āĻĨā§āĻā§ āĻā§āĻĒāĻ¨ā§āĻ¨ āĻĄā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, 'āĻĄā§āĻāĻž' āĻā§āĻ¯āĻžāĻŦā§: https://nivo.rocks/bump/āĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/okld/streamlit-elements-demo/main)
-## Code with line-by-line explanation
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻ¸āĻš āĻā§āĻĄ
```python
# First, we will need the following imports for our application.
@@ -264,6 +264,6 @@ with elements("demo"):
```
-## Any question?
+## āĻā§āĻ¨ āĻĒā§āĻ°āĻļā§āĻ¨?
-Feel free to ask any question regarding Streamlit Elements or this challenge there: [Streamlit Elements Topic](https://discuss.streamlit.io/t/streamlit-elements-build-draggable-and-resizable-dashboards-with-material-ui-nivo-charts-and-more/24616)
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻ˛āĻŋāĻŽā§āĻ¨ā§āĻāĻ¸ āĻŦāĻž āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¯ā§āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻļā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻŦāĻŋāĻ§āĻžāĻ¯āĻŧ āĻāĻ°ā§āĻ¨: [āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻ˛āĻŋāĻŽā§āĻ¨ā§āĻāĻ¸ āĻŦāĻŋāĻˇāĻ¯āĻŧ](https://discuss.streamlit.io/t/streamlit-elements-build-draggable-and-resizable-dashboards-with-material-ui-nivo-charts-and-more/24616)
diff --git a/content/Day28.md b/content/Day28.md
index 02d68d1..dc34737 100644
--- a/content/Day28.md
+++ b/content/Day28.md
@@ -1,24 +1,24 @@
# streamlit-shap
-[`streamlit-shap`](https://github.com/snehankekre/streamlit-shap) is a Streamlit component that provides a wrapper to display [SHAP](https://github.com/slundberg/shap) plots in [Streamlit](https://streamlit.io/).
+[`streamlit-shap`](https://github.com/snehankekre/streamlit-shap) āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ¯āĻž [SHAP](https://github.com/slundberg/shap) āĻĒā§āĻ˛āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŽā§āĻĄāĻŧāĻ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§ [āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ](https://streamlit.io/)āĨ¤
-The library is developed by our in-house staff [Snehan Kekre](https://github.com/snehankekre) who also maintains the [Streamlit Documentation](https://docs.streamlit.io/) website.
+āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨-āĻšāĻžāĻāĻ¸ āĻ¸ā§āĻāĻžāĻĢ [āĻ¸ā§āĻ¨ā§āĻšāĻžāĻ¨ āĻā§āĻāĻ°ā§](https://github.com/snehankekre) āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻŋāĻ¨āĻŋ [āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨](https://docs.streamlit.io/) āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻāĻ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨āĨ¤
-Firstly, install Streamlit (of course!) then pip install the `streamlit-shap` library:
+āĻĒā§āĻ°āĻĨāĻŽā§, āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨ (āĻ
āĻŦāĻļā§āĻ¯āĻ!) āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒāĻŋāĻĒ āĻāĻ¨ā§āĻ¸āĻāĻ˛ āĻāĻ°ā§āĻ¨ `streamlit-shap` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ:
```bash
pip install streamlit
pip install streamlit-shap
```
-There are also other prerequisite libraries to install (e.g. `matplotlib`, `pandas`, `scikit-learn` and `xgboost`) if you haven't yet done so.
+āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻŦāĻļāĻ°ā§āĻ¤ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ°āĻ¯āĻŧā§āĻā§ (āĻ¯ā§āĻŽāĻ¨ `matplotlib`, `pandas`, `scikit-learn` āĻāĻŦāĻ `xgboost`) āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ¨āĻ āĻ¤āĻž āĻ¨āĻž āĻāĻ°ā§ āĻĨāĻžāĻā§āĻ¨āĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
-[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/streamlit-shap/)
+[![āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/streamlit-shap/)
-## Code
-Here's how to use `streamlit-shap`:
+## āĻā§āĻĄ
+āĻāĻāĻžāĻ¨ā§ āĻāĻŋāĻāĻžāĻŦā§ `āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ-āĻļā§āĻĒ` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨:
```python
import streamlit as st
from streamlit_shap import st_shap
@@ -104,19 +104,20 @@ import numpy as np
import pandas as pd
```
-Next, we'll set the page layout to be wide such that contents in the Streamlit app can spread the full page width.
+āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸āĻāĻŋāĻā§ āĻāĻŽāĻ¨āĻāĻžāĻŦā§ āĻĒā§āĻ°āĻļāĻ¸ā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻ¸ā§āĻ āĻāĻ°āĻŦ āĻ¯āĻžāĻ¤ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĒā§āĻ°ā§ āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻĒā§āĻ°āĻ¸ā§āĻĨāĻā§ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
```python
st.set_page_config(layout="wide")
```
-Then, we'll load in a dataset from the `shap` library:
+āĻ¤āĻžāĻ°āĻĒāĻ°, āĻāĻŽāĻ°āĻž `shap` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĄā§āĻāĻžāĻ¸ā§āĻā§ āĻ˛ā§āĻĄ āĻāĻ°āĻŦ:
```python
@st.experimental_memo
def load_data():
return shap.datasets.adult()
```
-Subsequently, we'll definite a function called `load_model` for taking in the `X, y` matrix pair as input, perform data splitting to train/test sets, constructing a `DMatrix` and build an XGBoost model.
+
+āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻāĻžāĻ˛ā§, āĻāĻŽāĻ°āĻž āĻāĻ¨āĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ `X, y` āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ āĻā§āĻĄāĻŧāĻž āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ `load_model` āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻŦ, āĻā§āĻ°ā§āĻ¨/āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻā§ āĻĄā§āĻāĻž āĻŦāĻŋāĻāĻžāĻāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻŦ, āĻāĻāĻāĻŋ `DMatrix` āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻŦ āĻāĻŦāĻ āĻāĻāĻāĻŋ XGBoost āĻŽāĻĄā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤
```python
@st.experimental_memo
def load_model(X, y):
@@ -135,12 +136,12 @@ def load_model(X, y):
return model
```
-The title of the Streamlit app is then displayed:
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽāĻāĻŋ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ:
```python
st.title("`streamlit-shap` for displaying SHAP plots in a Streamlit app")
```
-An about expander box is implemented to provide details of the app:
+āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋāĻ° āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖāĻāĻžāĻ°ā§ āĻŦāĻžāĻā§āĻ¸ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
```python
with st.expander('About the app'):
st.markdown('''[`streamlit-shap`](https://github.com/snehankekre/streamlit-shap) is a Streamlit component that provides a wrapper to display [SHAP](https://github.com/slundberg/shap) plots in [Streamlit](https://streamlit.io/).
@@ -148,7 +149,7 @@ with st.expander('About the app'):
''')
```
-Here, we'll display the header text along with expander box of the `X` and `y` variables of the Input data:
+āĻāĻāĻžāĻ¨ā§, āĻāĻŽāĻ°āĻž āĻāĻ¨āĻĒā§āĻ āĻĄā§āĻāĻžāĻ° `X` āĻāĻŦāĻ `y` āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻā§āĻ¸āĻĒā§āĻ¨ā§āĻĄāĻžāĻ° āĻŦāĻā§āĻ¸ āĻ¸āĻš āĻšā§āĻĄāĻžāĻ° āĻā§āĻā§āĻ¸āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŦ:
```python
st.header('Input data')
X,y = load_data()
@@ -162,12 +163,13 @@ with st.expander('y'):
st.dataframe(y)
```
-Here, we'll display the header text for the forthcoming SHAP output:
+āĻāĻāĻžāĻ¨ā§, āĻāĻŽāĻ°āĻž āĻāĻ¸āĻ¨ā§āĻ¨ SHAP āĻāĻāĻāĻĒā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻšā§āĻĄāĻžāĻ° āĻā§āĻā§āĻ¸āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŦ:
```python
st.header('SHAP output')
```
-The XGBoost model is then built by using the `load_model` function that was just implemented above. Finally,
+
+XGBoost āĻŽāĻĄā§āĻ˛āĻāĻŋ 'load_model' āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻĒāĻ°ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ
āĻŦāĻļā§āĻˇā§,
```python
# train XGBoost model
X,y = load_data()
@@ -176,7 +178,7 @@ X_display,y_display = shap.datasets.adult(display=True)
model = load_model(X, y)
```
-Here, we'll compute the SHAP values, which are then used to create the Waterfall and Beeswarm plots.
+āĻāĻāĻžāĻ¨ā§, āĻāĻŽāĻ°āĻž SHAP āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻŦ, āĻ¯āĻž āĻā§āĻžāĻāĻžāĻ°āĻĢāĻ˛ āĻāĻŦāĻ āĻŦāĻŋāĻ¸ā§āĻŦāĻžāĻ°ā§āĻŽ āĻĒā§āĻ˛āĻāĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
```python
# compute SHAP values
explainer = shap.Explainer(model, X)
@@ -188,7 +190,7 @@ with st.expander('Beeswarm plot'):
st_shap(shap.plots.beeswarm(shap_values), height=300)
```
-Finally, the Tree SHAP algorithms is used to explain the output of ensemble tree models via the `shap.TreeExplainer` command and visualized via the `shap.force_plot` command:
+āĻ
āĻŦāĻļā§āĻˇā§, Tree SHAP āĻ
ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽāĻā§āĻ˛āĻŋ `shap.TreeExplainer` āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ¨āĻ¸ā§āĻŽā§āĻŦāĻ˛ āĻā§āĻ°āĻŋ āĻŽāĻĄā§āĻ˛ā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ `shap.force_plot` āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
```python
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
@@ -200,6 +202,6 @@ with st.expander('Force plot'):
st_shap(shap.force_plot(explainer.expected_value, shap_values[:1000,:], X_display.iloc[:1000,:]), height=400, width=1000)
```
-## Further reading
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
- [`streamlit-shap`](https://github.com/snehankekre/streamlit-shap)
- [SHAP](https://github.com/slundberg/shap)
diff --git a/content/Day29.md b/content/Day29.md
index 294c71a..cd11aa4 100644
--- a/content/Day29.md
+++ b/content/Day29.md
@@ -1,32 +1,32 @@
-# How to make a zero-shot learning text classifier using Hugging Face and Streamlit
+# āĻšāĻžāĻāĻŋāĻāĻĢā§āĻ¸ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ°ā§-āĻļāĻ āĻ˛āĻžāĻ°ā§āĻ¨āĻŋāĻ āĻā§āĻā§āĻ¸āĻ āĻā§āĻ˛āĻžāĻ¸āĻŋāĻĢāĻžāĻ¯āĻŧāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĻ¨
-In today's challenge, [Charly Wargnier](https://twitter.com/DataChaz) will walk us through the process of developing a zero-shot learning text classifier using Hugging Face and Streamlit.
+āĻāĻāĻā§āĻ° āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§, [āĻāĻžāĻ°ā§āĻ˛āĻŋ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°](https://twitter.com/DataChaz) āĻāĻŽāĻžāĻĻā§āĻ°āĻā§ āĻšāĻžāĻāĻŋāĻ āĻĢā§āĻ¸ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻļā§āĻ¨ā§āĻ¯-āĻļāĻ āĻļā§āĻāĻžāĻ° āĻĒāĻžāĻ ā§āĻ¯ āĻļā§āĻ°ā§āĻŖāĻŋāĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻ¤ā§āĻ°āĻŋāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§āĨ¤
-## Introduction
+## āĻā§āĻŽāĻŋāĻāĻž
-Hey Streamliters!
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻāĻžāĻ°āĻ°āĻž!
-Today I'm excited to have the opportunity to contribute to the 30DaysofStreamlit challenge via this hands-on tutorial! đ
+āĻāĻ āĻāĻŽāĻŋ āĻāĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ¸-āĻ
āĻ¨ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ 30DaysofStreamlit āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§ āĻ
āĻŦāĻĻāĻžāĻ¨ āĻ°āĻžāĻāĻžāĻ° āĻ¸ā§āĻ¯ā§āĻ āĻĒā§āĻ¯āĻŧā§ āĻāĻ¤ā§āĻ¤ā§āĻāĻŋāĻ¤! đ
-## What are we building?
+## āĻāĻŽāĻ°āĻž āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻāĻŋ?
-We will create a zero-shot learning text classifier using Hugging Face's API inference and Distilbart!
+āĻāĻŽāĻ°āĻž āĻšāĻžāĻāĻŋāĻāĻĢā§āĻ¸ āĻāĻ° API āĻ
āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻĄāĻŋāĻ¸ā§āĻāĻŋāĻ˛āĻŦāĻžāĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ°ā§-āĻļāĻ āĻ˛āĻžāĻ°ā§āĻ¨āĻŋāĻ āĻā§āĻā§āĻ¸āĻ āĻā§āĻ˛āĻžāĻ¸āĻŋāĻĢāĻžāĻ¯āĻŧāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ!
-You will have the mighty power to classify keyphrases on-the-fly, fast, and without pre ML training!
+āĻāĻĄāĻŧāĻ¨ā§āĻ¤, āĻĻā§āĻ°ā§āĻ¤, āĻāĻŦāĻ āĻĒā§āĻ°āĻŋ-āĻāĻŽāĻāĻ˛ āĻĒā§āĻ°āĻļāĻŋāĻā§āĻˇāĻŖ āĻāĻžāĻĄāĻŧāĻžāĻ āĻŽā§āĻ˛ āĻŦāĻžāĻā§āĻ¯āĻžāĻāĻļāĻā§āĻ˛āĻŋāĻā§ āĻļā§āĻ°ā§āĻŖā§āĻŦāĻĻā§āĻ§ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻŦāĻ˛ āĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻĨāĻžāĻāĻŦā§!
-Create classifying labels, paste your keyphrases, and you're off!
+āĻļā§āĻ°ā§āĻŖā§āĻŦāĻĻā§āĻ§ āĻ˛ā§āĻŦā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨, āĻāĻĒāĻ¨āĻžāĻ° āĻŽā§āĻ˛ āĻŦāĻžāĻā§āĻ¯āĻžāĻāĻļ āĻĒā§āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻŦāĻ¨ā§āĻ§!
-You can set these labels anything, e.g.:
+āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻ˛ā§āĻŦā§āĻ˛āĻā§āĻ˛āĻŋ āĻ¯ā§āĻā§āĻ¨ā§ āĻāĻŋāĻā§ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯ā§āĻŽāĻ¨:
-- Positive, Negative and Neutral for sentiment analysis
-- Angry, Happy, Emotional for emotion analysis
-- Navigational, Transactional, Informational for intent classification purposes
-- Your product range (bags, shoes, boots etc.)
+- āĻ
āĻ¨ā§āĻā§āĻ¤āĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤āĻŋāĻŦāĻžāĻāĻ, āĻ¨ā§āĻ¤āĻŋāĻŦāĻžāĻāĻ āĻāĻŦāĻ āĻ¨āĻŋāĻ°āĻĒā§āĻā§āĻˇ
+- āĻāĻŦā§āĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻžāĻāĻžāĻ¨ā§āĻŦāĻŋāĻ¤, āĻā§āĻļāĻŋ, āĻāĻŦā§āĻāĻĒā§āĻ°āĻŦāĻŖ
+- āĻ¨ā§āĻāĻŋāĻā§āĻļāĻ¨āĻžāĻ˛, āĻ˛ā§āĻ¨āĻĻā§āĻ¨āĻŽā§āĻ˛āĻ, āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻļā§āĻ°ā§āĻŖā§āĻŦāĻŋāĻāĻžāĻā§āĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻ¤āĻĨā§āĻ¯āĻāĻ¤
+- āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻŖā§āĻ¯ āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž (āĻŦā§āĻ¯āĻžāĻ, āĻā§āĻ¤āĻž, āĻŦā§āĻ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)
-You decide!
+āĻ¤ā§āĻŽāĻŋ āĻ āĻŋāĻ āĻāĻ°!
-Excited? Let's dive in!
+āĻāĻ¤ā§āĻ¤ā§āĻāĻŋāĻ¤? āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĄā§āĻŦ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ!
-## Read the full blog
-đ [Read the full blog](https://www.charlywargnier.com/post/how-to-create-a-zero-shot-learning-text-classifier-using-hugging-face-and-streamlit)
+## āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŦā§āĻ˛āĻ āĻĒāĻĄāĻŧā§āĻ¨
+đ [āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŦā§āĻ˛āĻ āĻĒāĻĄāĻŧā§āĻ¨](https://www.charlywargnier.com/post/how-to-create-a-zero-shot-learning-text-classifier-using-hugging-face-and-streamlit)
diff --git a/content/Day3.md b/content/Day3.md
index d24dcce..657b41a 100644
--- a/content/Day3.md
+++ b/content/Day3.md
@@ -1,25 +1,25 @@
# st.button
-`st.button` allows the display of a button widget.
+`st.button` āĻāĻāĻāĻŋ āĻŦā§āĻ¤āĻžāĻŽ āĻāĻāĻā§āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
-## What we're building?
+## āĻāĻŽāĻ°āĻž āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻāĻŋ?
-A simple app that performs conditionally prints out alternative messages depending on whether the button was pressed or not.
+āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¯āĻž āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§āĻā§āĻˇā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻ°ā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻāĻ āĻāĻ°ā§ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻŦā§āĻ¤āĻžāĻŽāĻāĻŋ āĻāĻžāĻĒāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŋ āĻ¨āĻžāĨ¤
-Flow of the app:
+āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻĒā§āĻ°āĻŦāĻžāĻš:
-1. By default, the app prints `Goodbye`
-2. Upon clicking on the button, the app displays the alternative message `Why hello there`
+1. āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ `āĻā§āĻĄāĻŦāĻžāĻ` āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§
+2. āĻŦāĻžāĻāĻ¨ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ 'āĻā§āĻ¨ āĻšā§āĻ¯āĻžāĻ˛ā§ āĻ¸ā§āĻāĻžāĻ¨ā§' āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
-The deployed Streamlit app should look something like the one shown in the below link:
+āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻ¨ā§āĻā§āĻ° āĻ˛āĻŋāĻā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻŽāĻ¤ā§ āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§:
-[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.button/)
+[![āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.button/)
-## Code
+## āĻā§āĻĄ
-Here's the code to implement the above mentioned app:
+āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻĄ āĻāĻāĻžāĻ¨ā§:
```python
import streamlit as st
@@ -32,21 +32,21 @@ else:
st.write('Goodbye')
```
-## Line-by-line explanation
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨āĻŋāĻ¸āĻāĻŋ āĻšāĻ˛ā§ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
```
-This is followed by creating a header text for the app:
+āĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻĒāĻžāĻ ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
```python
st.header('st.button')
```
-Next, we will use conditional statements `if` and `else` for printing alternative messages.
+āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§āĻā§āĻˇ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ `if` āĻāĻŦāĻ `else`āĨ¤
```python
if st.button('Say hello'):
@@ -55,33 +55,34 @@ else:
st.write('Goodbye')
```
-As we can see from the above code box, the `st.button()` command accepts the `label` input argument of `Say hello`, which is the text that the button displays.
+āĻāĻŽāĻ°āĻž āĻāĻĒāĻ°ā§āĻ° āĻā§āĻĄ āĻŦāĻā§āĻ¸ āĻĨā§āĻā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ, `st.button()` āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ `āĻ¸ā§ āĻšā§āĻ¯āĻžāĻ˛ā§` āĻāĻ° `āĻ˛ā§āĻŦā§āĻ˛` āĻāĻ¨āĻĒā§āĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§, āĻ¯āĻž āĻŦā§āĻ¤āĻžāĻŽāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻĒāĻžāĻ ā§āĻ¯āĨ¤
-The `st.write` command is used to print text messages of either `Why hello there` or `Goodbye` depending on whether the button was clicked or not, which is implemented via:
+`st.write` āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ `āĻā§āĻ¨ āĻšā§āĻ¯āĻžāĻ˛ā§ āĻ¸ā§āĻāĻžāĻ¨ā§` āĻŦāĻž `āĻā§āĻĄāĻŦāĻžāĻ` āĻāĻ° āĻā§āĻā§āĻ¸āĻ āĻŽā§āĻ¸ā§āĻ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻŦā§āĻ¤āĻžāĻŽāĻāĻŋ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŋ āĻ¨āĻž āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, āĻ¯āĻž āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
```python
st.write('Why hello there')
```
-and
+āĻāĻŦāĻ
```python
st.write('Goodbye')
```
-It is important to note that the above `st.write` statements are placed under the `if` and `else` conditions in order to perform the above mentioned process of alternative displaying of messages
+āĻāĻāĻŋ āĻ˛āĻā§āĻˇ āĻāĻ°āĻž āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¯ā§ āĻāĻĒāĻ°ā§āĻ° `st.write` āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻā§ `if` āĻāĻŦāĻ `else` āĻļāĻ°ā§āĻ¤ā§āĻ° āĻ
āĻ§ā§āĻ¨ā§ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
-## Next steps
+## āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻĻāĻā§āĻˇā§āĻĒ
-Now that you have created the Streamlit app locally, it's time to deploy it to [Streamlit Community Cloud](https://streamlit.io/cloud) as will be explained soon in an upcoming challenge.
+āĻāĻāĻ¨ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§āĻ¨, āĻāĻāĻŋāĻā§ [āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻŽāĻŋāĻāĻ¨āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ](https://streamlit.io/cloud) āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¸ā§āĻā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻ¸āĻ¨ā§āĻ¨ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§ āĻļā§āĻā§āĻ°āĻ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
-Because this is the first week of your challenge, we provide the full code (as shown in the code box above) and solution (the demo app) right inside this webpage.
+āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻĒā§āĻ¤āĻžāĻš, āĻāĻŽāĻ°āĻž āĻāĻ āĻāĻ¯āĻŧā§āĻŦāĻĒā§āĻˇā§āĻ āĻžāĻ° āĻāĻŋāĻ¤āĻ°ā§āĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻā§āĻĄ (āĻāĻĒāĻ°ā§āĻ° āĻā§āĻĄ āĻŦāĻā§āĻ¸ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§) āĻāĻŦāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ (āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ) āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŋāĨ¤
-Moving forward in the next challenges, it is recommended that you first try implementing the Streamlit app yourself.
+āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻā§āĻā§āĨ¤
-Don't worry if you get stuck, you can always take a peek at the solution.
+āĻāĻĒāĻ¨āĻŋ āĻāĻāĻā§ āĻā§āĻ˛ā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
-## References
+## āĻ¤āĻĨā§āĻ¯āĻ¸ā§āĻ¤ā§āĻ°
+
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ API āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ [`st.button`](https://docs.streamlit.io/library/api-reference/widgets/st.button) āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻĒāĻĄāĻŧā§āĻ¨āĨ¤
-Read about [`st.button`](https://docs.streamlit.io/library/api-reference/widgets/st.button) in the Streamlit API Documentation.
diff --git a/content/Day30.md b/content/Day30.md
index 3bc0dbe..e2ae2d6 100644
--- a/content/Day30.md
+++ b/content/Day30.md
@@ -1,35 +1,35 @@
-# The Art of Creating Streamlit Apps
+# āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋāĻ° āĻļāĻŋāĻ˛ā§āĻĒ
-Today's Day 30 of the *#30DaysOfStreamlit* challenge. Congratulations on making this far in the challenge.
+*#30DaysOfStreamlit* āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§āĻ° āĻāĻāĻā§āĻ° āĻĻāĻŋāĻ¨ ā§Šā§ĻāĨ¤ āĻ
āĻāĻŋāĻ¨āĻ¨ā§āĻĻāĻ¨ āĻāĻ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§ āĻāĻ¤āĻĻā§āĻ° āĻāĻĄāĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
-In this tutorial, we're going to put our newfound knowledge from this learning challenge to create Streamlit apps to solve real-world problem.
+āĻāĻ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§, āĻāĻŽāĻ°āĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ-āĻŦāĻŋāĻļā§āĻŦā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻļā§āĻāĻžāĻ° āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ āĻĨā§āĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻāĻžāĻ¨ āĻ°āĻžāĻāĻ¤ā§ āĻ¯āĻžāĻā§āĻāĻŋāĨ¤
-## Real-world problem
+## āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻŦāĻŋāĻļā§āĻŦā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž
-As a content creator, having access to thumbnail images from YouTube videos are useful resources for social promotion and content creation.
+āĻāĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻāĻāĻŋāĻāĻŦ āĻāĻŋāĻĄāĻŋāĻ āĻĨā§āĻā§ āĻĨāĻžāĻŽā§āĻŦāĻ¨ā§āĻāĻ˛ āĻāĻŋāĻ¤ā§āĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĨāĻžāĻāĻž āĻ¸āĻžāĻŽāĻžāĻāĻŋāĻ āĻĒā§āĻ°āĻāĻžāĻ° āĻāĻŦāĻ āĻ¸āĻžāĻŽāĻā§āĻ°ā§ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĨ¤
-Let's figure out how we're going to tackle this problem and build a Streamlit app.
+āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻ°āĻž āĻā§āĻāĻžāĻŦā§ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻŽā§āĻāĻžāĻŦā§āĻ˛āĻž āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
-## Solution
+## āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨
-Today, we're going to build `yt-img-app`, which is a Streamlit app that can extract thumbnail images from YouTube videos.
+āĻāĻ, āĻāĻŽāĻ°āĻž `yt-img-app` āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻā§āĻāĻŋ, āĻ¯ā§āĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¯āĻž āĻāĻāĻāĻŋāĻāĻŦ āĻāĻŋāĻĄāĻŋāĻ āĻĨā§āĻā§ āĻĨāĻžāĻŽā§āĻŦāĻ¨ā§āĻāĻ˛ āĻāĻŦāĻŋ āĻŦā§āĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
-In a nutshell, here's the 3 simple steps that we want the Streamlit app to do:
+āĻ¸āĻāĻā§āĻˇā§āĻĒā§, āĻāĻāĻžāĻ¨ā§ ā§ŠāĻāĻŋ āĻ¸āĻšāĻ āĻĒāĻĻāĻā§āĻˇā§āĻĒ āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ:
-1. Accept a YouTube URL as input from users
-2. Perform text processing of the URL to extract the unique YouTube video ID
-3. Use the YouTube video ID as an input to a custom function that retrieves and displays the thumbnail image from YouTube videos
+ā§§. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻ¨āĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāĻāĻāĻŋāĻāĻŦ URL āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĻ¨ā§ˇ
+ā§¨. āĻāĻāĻ¨āĻŋāĻ āĻāĻāĻāĻŋāĻāĻŦ āĻāĻŋāĻĄāĻŋāĻ āĻāĻāĻĄāĻŋ āĻāĻā§āĻ¸āĻā§āĻ°ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻ¤ā§ URL-āĻāĻ° āĻā§āĻā§āĻ¸āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻŋāĻ āĻāĻ°ā§āĻ¨
+ā§Š. āĻāĻāĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻŽ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻāĻ¨āĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋāĻāĻŦ āĻāĻŋāĻĄāĻŋāĻ āĻāĻāĻĄāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¯āĻž āĻāĻāĻāĻŋāĻāĻŦ āĻāĻŋāĻĄāĻŋāĻāĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻĨāĻžāĻŽā§āĻŦāĻ¨ā§āĻāĻ˛ āĻāĻŋāĻ¤ā§āĻ° āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§
-## Instructions
+## āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ¨āĻž
-To get started in using the Streamlit app, copy and paste a YouTube URL into the input text box.
+āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§, āĻāĻ¨āĻĒā§āĻ āĻā§āĻā§āĻ¸āĻ āĻŦāĻā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻāĻāĻāĻŋāĻāĻŦ URL āĻāĻĒāĻŋ āĻāĻ°ā§ āĻĒā§āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
-[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/yt-img-app/)
+[![āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/yt-img-app/)
-## Code
-Here's how to build the `yt-img-app` Streamlit app:
+## āĻā§āĻĄ
+āĻāĻāĻžāĻ¨ā§ āĻāĻŋāĻāĻžāĻŦā§ `yt-img-app` Streamlit āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĻ¨:
```python
import streamlit as st
@@ -65,18 +65,18 @@ else:
st.write('âī¸ Enter URL to continue ...')
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻĨāĻŽā§āĻ āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻā§ `st` āĻāĻ° āĻŽāĻ¤ā§ āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž:
```python
import streamlit as st
```
-Next, we display the app's title and accompanying header:
+āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻ¸āĻšāĻāĻžāĻ°ā§ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŋ:
```python
st.title('đŧī¸ yt-img-app')
st.header('YouTube Thumbnail Image Extractor App')
```
-While we're at it, we'll might as well throw in an About expandable box.
+āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻ¤ā§ āĻĨāĻžāĻāĻžāĻāĻžāĻ˛ā§āĻ¨, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖāĻ¯ā§āĻā§āĻ¯ āĻŦāĻžāĻā§āĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§āĻ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
```python
with st.expander('About this app'):
st.write('This app retrieves the thumbnail image from a YouTube video.')
@@ -90,12 +90,12 @@ selected_img_quality = st.sidebar.selectbox('Select image quality', ['Max', 'Hig
img_quality = img_dict[selected_img_quality]
```
-An input text box is displayed to accept user input on the YouTube video URL to use for extracting the image from.
+āĻāĻāĻāĻŋāĻāĻŦ āĻāĻŋāĻĄāĻŋāĻ URL-āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻĒā§āĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ¨āĻĒā§āĻ āĻā§āĻā§āĻ¸āĻ āĻŦāĻā§āĻ¸ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻĨā§āĻā§ āĻāĻŦāĻŋāĻāĻŋ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
```python
yt_url = st.text_input('Paste YouTube URL', 'https://youtu.be/JwSS70SZdyM')
```
-A custom function for performing text processing of the input URL.
+āĻāĻ¨āĻĒā§āĻ URL-āĻāĻ° āĻĒāĻžāĻ ā§āĻ¯ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻŽ āĻĢāĻžāĻāĻļāĻ¨āĨ¤
```python
def get_ytid(input_url):
if 'youtu.be' in input_url:
@@ -105,7 +105,7 @@ def get_ytid(input_url):
return ytid
```
-Finally, we use flow control to determine whether to display a reminder to enter the URL (i.e. as in the `else` statement) or to display the YouTube thumbnail image (i.e. as in the `if` statement).
+āĻ
āĻŦāĻļā§āĻˇā§, URL āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ
āĻ¨ā§āĻ¸ā§āĻŽāĻžāĻ°āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻž āĻšāĻŦā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ (āĻ¯ā§āĻŽāĻ¨ `else` āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĻ¤ā§) āĻ
āĻĨāĻŦāĻž āĻāĻāĻāĻŋāĻāĻŦ āĻĨāĻžāĻŽā§āĻŦāĻ¨ā§āĻāĻ˛ āĻāĻŋāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ (āĻ¯ā§āĻŽāĻ¨ `if` āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĻ¤ā§)āĨ¤
```python
# Display YouTube thumbnail image
if yt_url != '':
@@ -118,10 +118,10 @@ else:
st.write('âī¸ Enter URL to continue ...')
```
-## Summary
+## āĻ¸āĻžāĻ°āĻ¸āĻāĻā§āĻˇā§āĻĒ
-In summary, we have seen that in the creation of any Streamlit app, we normally start by first identifying and defining the problem. Next, we devise a solution to tackle the problem by breaking it down into the granular steps, which we implement in the Streamlit app.
+āĻ¸āĻāĻā§āĻˇā§āĻĒā§, āĻāĻŽāĻ°āĻž āĻĻā§āĻā§āĻāĻŋ āĻ¯ā§ āĻā§āĻ¨āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻŽāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻŦāĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŋāĨ¤ āĻāĻ°āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻŋ āĻāĻŽāĻ¨ āĻĻāĻžāĻ¨āĻžāĻĻāĻžāĻ° āĻ§āĻžāĻĒā§ āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻŽā§āĻāĻžāĻŦā§āĻ˛āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋāĨ¤
-Here, we also have to determine which data or information that we need as input from users, the approach and method to use in processing the user input in order to produce the final desired output.
+āĻāĻāĻžāĻ¨ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻ¨āĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ¨ āĻĄā§āĻāĻž āĻŦāĻž āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻāĻāĻāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻĒā§āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŦāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
-Hope you enjoyed this tutorial, Happy Streamlit-ing!
+āĻāĻļāĻž āĻāĻ°āĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻāĻŋ āĻāĻĒāĻā§āĻ āĻāĻ°ā§āĻā§āĻ¨, āĻšā§āĻ¯āĻžāĻĒāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻāĻŋāĻ!
diff --git a/content/Day4.md b/content/Day4.md
index f9461e6..50adc63 100644
--- a/content/Day4.md
+++ b/content/Day4.md
@@ -1,7 +1,7 @@
-# Building Streamlit apps with Ken Jee
+# āĻā§āĻ¨ āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
-## Watch Ken's video
+## āĻā§āĻ¨ā§āĻ° āĻāĻŋāĻĄāĻŋāĻ āĻĻā§āĻā§āĻ¨
-Let's follow along and watch how [Ken Jee](https://www.youtube.com/c/KenJee1) builds a Streamlit app in this video:
+āĻāĻ¸ā§āĻ¨ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻ āĻāĻŋāĻĄāĻŋāĻāĻ¤ā§ āĻā§āĻāĻžāĻŦā§ [āĻā§āĻ¨ āĻā§](https://www.youtube.com/c/KenJee1) āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻĻā§āĻā§āĻ¨:
-[![Data Science Portfolio Project from Scratch](https://img.youtube.com/vi/Yk-unX4KnV4/0.jpg)]()]
+[![ āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻ¸āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ¸ āĻĒā§āĻ°ā§āĻāĻĢā§āĻ˛āĻŋāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ](https://img.youtube.com/vi/Yk-unX4KnV4/0.jpg)]()]
diff --git a/content/Day5.md b/content/Day5.md
index d3356d0..26a06bd 100644
--- a/content/Day5.md
+++ b/content/Day5.md
@@ -1,29 +1,29 @@
# st.write
-`st.write` allows writing text and arguments to the Streamlit app.
+`st.write` āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒā§ āĻā§āĻā§āĻ¸āĻ āĻāĻŦāĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ˛ā§āĻāĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
-In addition to being able to display text, the following can also be displayed via the `st.write()` command:
+āĻĒāĻžāĻ ā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ `st.write()` āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§:
-- Prints strings; works like `st.markdown()`
-- Displays a Python `dict`
-- Displays `pandas` DataFrame can be displayed as a table
-- Plots/graphs/figures from `matplotlib`, `plotly`, `altair`, `graphviz`, `bokeh`
-- And more (see [st.write on API docs](https://docs.streamlit.io/library/api-reference/write-magic/st.write))
+- āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ; `st.markdown()` āĻāĻ° āĻŽāĻ¤ā§ āĻāĻžāĻ āĻāĻ°ā§
+- āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ `dict` āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§
+- āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ `pandas` āĻĄā§āĻāĻžāĻĢā§āĻ°ā§āĻŽāĻā§ āĻā§āĻŦāĻŋāĻ˛ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
+- `matplotlib`, `plotly`, `altair`, `graphviz`, `bokeh` āĻĨā§āĻā§ āĻĒā§āĻ˛āĻ/āĻā§āĻ°āĻžāĻĢ/āĻāĻŋāĻ¤ā§āĻ°
+- āĻāĻŦāĻ āĻāĻ°āĻ (āĻĻā§āĻā§āĻ¨ [āĻāĻĒāĻŋāĻāĻ āĻĄāĻā§āĻ¸ā§ st.write](https://docs.streamlit.io/library/api-reference/write-magic/st.write))
-## What we're building?
+## āĻāĻŽāĻ°āĻž āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻāĻŋ?
-A simple app showing the various ways on how to use the `st.write()` command for displaying text, numbers, DataFrames and plots.
+āĻĒāĻžāĻ ā§āĻ¯, āĻ¸āĻāĻā§āĻ¯āĻž, āĻĄā§āĻāĻžāĻĢā§āĻ°ā§āĻŽ āĻāĻŦāĻ āĻĒā§āĻ˛āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ `st.write()` āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻĻā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ
ā§āĻ¯āĻžāĻĒāĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
-The deployed Streamlit app should look something like the one shown in the below link:
+āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻ¨ā§āĻā§āĻ° āĻ˛āĻŋāĻā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻŽāĻ¤ā§ āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§:
-[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.write/)
+[![āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.write/)
-## Code
+## āĻā§āĻĄ
-Here's how to use st.write:
+āĻāĻāĻžāĻ¨ā§ āĻāĻŋāĻāĻžāĻŦā§ st.write āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨:
```python
import numpy as np
@@ -63,36 +63,36 @@ c = alt.Chart(df2).mark_circle().encode(
st.write(c)
```
-## Line-by-line explanation
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻĨāĻŽā§āĻ āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ `streamlit` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻā§ `st` āĻāĻ° āĻŽāĻ¤ā§ āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž:
```python
import streamlit as st
```
-This is followed by creating a header text for the app:
+āĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻĒāĻžāĻ ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
```python
st.header('st.write')
```
-**Example 1**
-Its basic use case is to display text and Markdown-formatted text:
+**āĻāĻĻāĻžāĻšāĻ°āĻŖ 1**
+āĻāĻ° āĻŽā§āĻ˛āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĒāĻžāĻ ā§āĻ¯ āĻāĻŦāĻ āĻŽāĻžāĻ°ā§āĻāĻĄāĻžāĻāĻ¨-āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻĒāĻžāĻ ā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
```python
st.write('Hello, *World!* :sunglasses:')
```
-**Example 2**
-As mentioned above, it can also be used to display other data formats such as numbers:
+**āĻāĻĻāĻžāĻšāĻ°āĻŖ 2**
+āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻāĻŋ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻ¯ā§āĻŽāĻ¨ āĻ¸āĻāĻā§āĻ¯āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
```python
st.write(1234)
```
-**Example 3**
-DataFrames can also be displayed as follows:
+**āĻāĻĻāĻžāĻšāĻ°āĻŖ ā§Š**
+āĻĄāĻžāĻāĻžāĻĢā§āĻ°ā§āĻŽ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§:
```python
df = pd.DataFrame({
@@ -102,15 +102,15 @@ df = pd.DataFrame({
st.write(df)
```
-**Example 4**
-You can pass in multiple arguments:
+**āĻāĻĻāĻžāĻšāĻ°āĻŖ ā§Ē**
+āĻāĻĒāĻ¨āĻŋ āĻāĻāĻžāĻ§āĻŋāĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
```python
st.write('Below is a DataFrame:', df, 'Above is a dataframe.')
```
-**Example 5**
-Finally, you can also display plots as well by passing it to a variable as follows:
+**āĻāĻĻāĻžāĻšāĻ°āĻŖ ā§Ģ**
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻāĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻĒāĻžāĻ¸ āĻāĻ°ā§ āĻĒā§āĻ˛āĻāĻā§āĻ˛āĻŋāĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
```python
df2 = pd.DataFrame(
@@ -121,25 +121,25 @@ c = alt.Chart(df2).mark_circle().encode(
st.write(c)
```
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
-The deployed Streamlit app should look something like the one shown in the below link:
+āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻ¨ā§āĻā§āĻ° āĻ˛āĻŋāĻā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻŽāĻ¤ā§ āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§:
-[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.write/)
+[![āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.write/)
-## Next steps
+## āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻĻāĻā§āĻˇā§āĻĒ
-Now that you have created the Streamlit app locally, it's time to deploy it to [Streamlit Community Cloud](https://streamlit.io/cloud) as will be explained soon in an upcoming challenge.
+āĻāĻāĻ¨ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§āĻ¨, āĻāĻāĻŋāĻā§ [āĻ¸ā§āĻā§āĻ°ā§āĻŽāĻ˛āĻŋāĻ āĻāĻŽāĻŋāĻāĻ¨āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ](https://streamlit.io/cloud) āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¸ā§āĻā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻ¸āĻ¨ā§āĻ¨ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§ āĻļā§āĻā§āĻ°āĻ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
-Because this is the first week of your challenge, we provide the full code (as shown in the code box above) and solution (the demo app) right inside this webpage.
+āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻĒā§āĻ¤āĻžāĻš, āĻāĻŽāĻ°āĻž āĻāĻ āĻāĻ¯āĻŧā§āĻŦāĻĒā§āĻˇā§āĻ āĻžāĻ° āĻāĻŋāĻ¤āĻ°ā§āĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻā§āĻĄ (āĻāĻĒāĻ°ā§āĻ° āĻā§āĻĄ āĻŦāĻā§āĻ¸ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§) āĻāĻŦāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ (āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ) āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŋāĨ¤
-Moving forward in the next challenges, it is recommended that you first try implementing the Streamlit app yourself.
+āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻĨāĻŽā§ Streamlit āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻā§āĻā§āĨ¤
-Don't worry if you get stuck, you can always take a peek at the solution.
+āĻāĻĒāĻ¨āĻŋ āĻāĻāĻā§ āĻā§āĻ˛ā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
-## Further reading
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
-In addition to [`st.write`](https://docs.streamlit.io/library/api-reference/write-magic/st.write), you can explore the other ways of displaying text:
+[`st.write`](https://docs.streamlit.io/library/api-reference/write-magic/st.write) āĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻĒāĻ¨āĻŋ āĻĒāĻžāĻ ā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĒāĻžāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻ
āĻ¨ā§āĻŦā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
- [`st.markdown`](https://docs.streamlit.io/library/api-reference/text/st.markdown)
- [`st.header`](https://docs.streamlit.io/library/api-reference/text/st.header)
diff --git a/content/Day6.md b/content/Day6.md
index 818e779..f40c17b 100644
--- a/content/Day6.md
+++ b/content/Day6.md
@@ -1,34 +1,35 @@
-# Uploading your Streamlit app to GitHub
+# # āĻāĻŋāĻāĻšāĻžāĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻāĻĒāĻ˛ā§āĻĄ
-## GitHub
-Git is a software for keeping track of all changes made to code (i.e. version control). GitHub is a Git repository hosting service that makes data and code publicly available on the web, which allows team collaboration and allow others to contribute to the repo.
+## āĻāĻŋāĻāĻšāĻžāĻŦ
-Housing your Streamlit app in a GitHub repository will allow apps to be deployed to the cloud (the next challenge).
+āĻāĻŋāĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¯āĻž āĻā§āĻĄā§ āĻāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻ°āĻžāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ (āĻ¯ā§āĻŽāĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ)āĨ¤ āĻāĻŋāĻāĻšāĻžāĻŦ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻšā§āĻ¸ā§āĻāĻŋāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¯āĻž āĻāĻ¯āĻŧā§āĻŦā§ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻĄā§āĻāĻž āĻāĻŦāĻ āĻā§āĻĄ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻ°ā§, āĻ¯āĻž āĻāĻŋāĻŽ āĻ¸āĻšāĻ¯ā§āĻāĻŋāĻ¤āĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¯āĻĻā§āĻ° āĻ°ā§āĻĒā§āĻ¤ā§ āĻ
āĻŦāĻĻāĻžāĻ¨ āĻ°āĻžāĻāĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
-## Sign up for GitHub
+āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻāĻŋāĻāĻšāĻžāĻŦ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§ āĻ°āĻžāĻāĻž āĻ
ā§āĻ¯āĻžāĻĒāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ˛āĻžāĻāĻĄā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§ (āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ)āĨ¤
-Firstly, sign up for a [GitHub](https://github.com/) account.
+## āĻāĻŋāĻāĻšāĻžāĻŦ-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻāĻ¨ āĻāĻĒ āĻāĻ°ā§āĻ¨
-## Create a GitHub repository
+āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻāĻāĻŋ [āĻāĻŋāĻāĻšāĻžāĻŦ](https://github.com/) āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻāĻ¨ āĻāĻĒ āĻāĻ°ā§āĻ¨āĨ¤
-Follow the following steps to create a GitHub repository:
-- In the top right hand corner, click on the **"+"** icon which should reveal a drop-down menu, then click on **"New repository"** (*Figure 1*).
+## āĻāĻāĻāĻŋ āĻāĻŋāĻāĻšāĻžāĻŦ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
-- This should bring to a new webpage called **"Create a new repository"**. Under the **"Repository name"** field, enter a name for your repository, for example, `helloworld` (***Figure 2***).
+āĻāĻāĻāĻŋ āĻāĻŋāĻāĻšāĻžāĻŦ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻā§āĻ˛āĻŋ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§āĻ¨:
+- āĻāĻĒāĻ°ā§āĻ° āĻĄāĻžāĻ¨āĻĻāĻŋāĻā§āĻ° āĻā§āĻŖāĻžāĻ¯āĻŧ, **"+"** āĻāĻāĻāĻ¨ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨ āĻ¯āĻž āĻāĻāĻāĻŋ āĻĄā§āĻ°āĻĒ-āĻĄāĻžāĻāĻ¨ āĻŽā§āĻ¨ā§ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻŦā§, āĻ¤āĻžāĻ°āĻĒāĻ°ā§ **"āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛"** (*āĻāĻŋāĻ¤ā§āĻ° 1*) āĻ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨āĨ¤
-- Under the **"Initialize this repository with:"** field, tick on **"Add a README file"**.
+- āĻāĻāĻŋ **"āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨"** āĻ¨āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻ¯āĻŧā§āĻŦāĻĒā§āĻā§ āĻāĻ¨āĻ¤ā§ āĻšāĻŦā§āĨ¤ **"āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻ¨āĻžāĻŽ"** āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻ
āĻ§ā§āĻ¨ā§, āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨āĻžāĻŽ āĻ˛āĻŋāĻā§āĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, `āĻšā§āĻ¯āĻžāĻ˛ā§āĻāĻ¯āĻŧāĻžāĻ°ā§āĻ˛ā§āĻĄ` (***āĻāĻŋāĻ¤ā§āĻ° 2***)āĨ¤
-- Finally, click on **"Create repository"** (Figure 3).
+- **"āĻāĻ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨:"** āĻĢāĻŋāĻ˛ā§āĻĄā§āĻ° āĻ
āĻ§ā§āĻ¨ā§, **"āĻāĻāĻāĻŋ āĻ°āĻŋāĻĄāĻŽāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨"** āĻ āĻāĻŋāĻ āĻĻāĻŋāĻ¨āĨ¤
-Your newly created repository will be available at `https://github.com/dataprofessor/helloworld` where `dataprofessor` is the username and `helloworld` is the repository name.
+- āĻ
āĻŦāĻļā§āĻˇā§, **"āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨"** (āĻāĻŋāĻ¤ā§āĻ° ā§Š) āĻ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨āĨ¤
-Below is the screenshot of the newly created repo (Figure 4):
+āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ `https://github.com/dataprofessor/helloworld`-āĻ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻŦā§ āĻ¯ā§āĻāĻžāĻ¨ā§ `dataprofessor` āĻšāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ `helloworld` āĻšāĻ˛ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§āĻ° āĻ¨āĻžāĻŽāĨ¤
-## Upload files to the GitHub repo
+āĻ¨ā§āĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻ¤ā§āĻ°āĻŋ āĻ°ā§āĻĒā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ (āĻāĻŋāĻ¤ā§āĻ° ā§Ē):
-Slightly above the file table and adjacent to the green **Code** button, click on **Add file** > **Upload files** (Figure 5).
+## āĻāĻŋāĻāĻšāĻžāĻŦ āĻ°ā§āĻĒā§āĻ¤ā§ āĻĢāĻžāĻāĻ˛ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨
-This will bring you to a new webpage where the central box says ***Drag files here to add them to your repository*** and **choose your files**, which you can either drag-and-drop files into this box or click on the **choose your files** link to choose files from your local computer.
+āĻĢāĻžāĻāĻ˛ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻāĻĒāĻ°ā§ āĻāĻŦāĻ āĻ¸āĻŦā§āĻ **āĻā§āĻĄ** āĻŦā§āĻ¤āĻžāĻŽā§āĻ° āĻĒāĻžāĻļā§, **āĻĢāĻžāĻāĻ˛ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨** > **āĻĢāĻžāĻāĻ˛ āĻāĻĒāĻ˛ā§āĻĄ** (āĻāĻŋāĻ¤ā§āĻ° 5) āĻ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨āĨ¤
-Click on **Commit changes** to proceed further (Figure 6).
+āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻ¯āĻŧā§āĻŦāĻĒā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸āĻŦā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻ¨ā§āĻĻā§āĻ°ā§āĻ¯āĻŧ āĻŦāĻžāĻā§āĻ¸ā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§ ***Drag files here to add them to your repository*** āĻāĻŦāĻ **āĻāĻĒāĻ¨āĻžāĻ° āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻ¨**, āĻ¯ā§āĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻŦāĻžāĻā§āĻ¸ā§ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ¨ā§-āĻāĻ¨ā§āĻĄ-āĻĄā§āĻ°āĻĒ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ
āĻĨāĻŦāĻž āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻĨā§āĻā§ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ **choose your files** āĻ˛āĻŋāĻā§āĻāĻāĻŋāĻ¤ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨ā§ˇ
+
+āĻāĻ°āĻ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§ **Commit changes**-āĻ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨ (āĻāĻŋāĻ¤ā§āĻ° 6)āĨ¤
diff --git a/content/Day7.md b/content/Day7.md
index 8322582..fe18604 100644
--- a/content/Day7.md
+++ b/content/Day7.md
@@ -1,18 +1,19 @@
-# Deploying your Streamlit app with Streamlit Community Cloud
+# āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻŽāĻŋāĻāĻ¨āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§
-## Streamlit Community Cloud
+## āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻŽāĻŋāĻāĻ¨āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ
-[Streamlit Community Cloud](https://streamlit.io/cloud) is a hosting service for easily deploying Streamlit apps.
+[āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻŽāĻŋāĻāĻ¨āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ](https://streamlit.io/cloud) āĻšāĻ˛ āĻāĻāĻāĻŋ āĻšā§āĻ¸ā§āĻāĻŋāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¯āĻžāĻ¤ā§ āĻ¸āĻšāĻā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒāĻā§āĻ˛āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
-## Sign up for Streamlit Community Cloud
+## āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻŽāĻŋāĻāĻ¨āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻāĻ¨ āĻāĻĒ āĻāĻ°ā§āĻ¨
-You can easily sign up for [Streamlit Community Cloud](https://streamlit.io/cloud) by simply logging in with Google or GitHub account.
+āĻāĻĒāĻ¨āĻŋ āĻā§āĻāĻ˛ āĻŦāĻž āĻāĻŋāĻāĻšāĻžāĻŦ āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻ˛āĻ āĻāĻ¨ āĻāĻ°ā§ āĻ¸āĻšāĻā§āĻ [āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻŽāĻŋāĻāĻ¨āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ](https://streamlit.io/cloud) āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻāĻ¨ āĻāĻĒ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
-## Deploy a Streamlit app
+## āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻ¨
-To deploy a Streamlit app, do the following:
-1. Sign in with GitHub or Gmail credentials
-2. Pick a repo, branch and file
-3. Click Deploy
+āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻāĻ°ā§āĻ¨:
+1. āĻāĻŋāĻāĻšāĻžāĻŦ āĻŦāĻž āĻāĻŋāĻŽā§āĻāĻ˛ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻžāĻāĻ¨ āĻāĻ¨ āĻāĻ°ā§āĻ¨ā§ˇ
+2. āĻāĻāĻāĻŋ āĻ°ā§āĻĒā§, āĻļāĻžāĻāĻž āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛ āĻāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻ¨
+3. āĻĄāĻŋāĻĒā§āĻ˛ā§ āĻ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨
+
+āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨āĻ āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻĒā§āĻļ āĻāĻ°āĻŦā§āĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻĒ āĻ
āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻĒāĻĄā§āĻ āĻšāĻŦā§āĨ¤
-Then any time you do a git push your app will update immediately.
diff --git a/content/Day8.md b/content/Day8.md
index 2753c9b..5ba04de 100644
--- a/content/Day8.md
+++ b/content/Day8.md
@@ -1,24 +1,24 @@
# st.slider
-`st.slider` allows the display of a slider input widget.
+`st.slider` āĻāĻāĻāĻŋ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ° āĻāĻ¨āĻĒā§āĻ āĻāĻāĻā§āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
-The following data types are supported: int, float, date, time, and datetime.
+āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤: int, float, date, time, āĻāĻŦāĻ datetime.
-## What we're building?
+## āĻāĻŽāĻ°āĻž āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻāĻŋ?
-A simple app that shows the various ways on how to accept user input by adjusting the slider widget.
+āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¯āĻž āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ° āĻāĻāĻā§āĻ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯ āĻāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻĒā§āĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻĻā§āĻāĻžāĻ¯āĻŧāĨ¤
-Flow of the app:
-1. User selects value by adjusting the slider widget
-2. App prints out the selected value
+āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻĒā§āĻ°āĻŦāĻžāĻš:
+1. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ° āĻāĻāĻā§āĻ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯ āĻāĻ°ā§ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§
+2. āĻ
ā§āĻ¯āĻžāĻĒ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
-[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.slider/)
+[![āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.slider/)
-## Code
-Here's how to use st.slider:
+## āĻā§āĻĄ
+āĻāĻāĻžāĻ¨ā§ āĻāĻŋāĻāĻžāĻŦā§ st.slider āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨:
```python
import streamlit as st
@@ -63,21 +63,21 @@ st.write("Start time:", start_time)
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻĨāĻŽā§āĻ āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ `āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻā§ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
from datetime import time, datetime
```
-This is followed by creating a header text for the app:
+āĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻĒāĻžāĻ ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
```python
st.header('st.slider')
```
-**Example 1**
+**āĻāĻĻāĻžāĻšāĻ°āĻŖ 1**
-Slider:
+āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ°:
```python
st.subheader('Slider')
@@ -86,16 +86,16 @@ age = st.slider('How old are you?', 0, 130, 25)
st.write("I'm ", age, 'years old')
```
-As we can see, the `st.slider()` command
-is used to collect user input about the age of users.
+āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ, `st.slider()` āĻāĻŽāĻžāĻ¨ā§āĻĄ
+āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻŦāĻ¯āĻŧāĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻĒā§āĻ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
-The first input argument displays the text just above the **slider** widget asking `'How old are you?'`.
+āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¨āĻĒā§āĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻāĻāĻŋ **āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ°** āĻāĻāĻā§āĻā§āĻ° āĻ āĻŋāĻ āĻāĻĒāĻ°ā§ āĻ˛ā§āĻāĻžāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻāĻŋāĻā§āĻā§āĻ¸ āĻāĻ°ā§ `'āĻāĻĒāĻ¨āĻžāĻ° āĻŦāĻ¯āĻŧāĻ¸ āĻāĻ¤?'`āĨ¤
-The following three integers `0, 130, 25` represents the minimum, maximum and default values, respectively.
+āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž `ā§Ļ, ā§§ā§Šā§Ļ, ā§¨ā§Ģ` āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§ āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨, āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻāĻŦāĻ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĨ¤
-**Example 2**
+**āĻāĻĻāĻžāĻšāĻ°āĻŖ ā§¨**
-Range slider:
+āĻ°ā§āĻā§āĻ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ°:
```python
st.subheader('Range slider')
@@ -106,15 +106,15 @@ values = st.slider(
st.write('Values:', values)
```
-The range slider allow selection of a lower and upper bound value pair.
+āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ°ā§āĻ° āĻāĻŦāĻĻā§āĻ§ āĻŽāĻžāĻ¨ āĻā§āĻĄāĻŧāĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
-The first input argument displays the text just above the **range slider** widget asking `'Select a range of values'`.
+āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¨āĻĒā§āĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻāĻāĻŋ **āĻ°ā§āĻā§āĻ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ°** āĻāĻāĻā§āĻā§āĻ° āĻ āĻŋāĻ āĻāĻĒāĻ°ā§ āĻ˛ā§āĻāĻžāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°ā§ `'āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻ¸āĻ° āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨'`āĨ¤
-The following three arguments `0.0, 100.0, (25.0, 75.0)` represents the minimum and maximum values while the last tuple denotes the default values to use as the selected lower (25.0) and upper (75.0) bound values.
+āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ `ā§Ļ.ā§Ļ , ā§§ā§Ļā§Ļ.ā§Ļ , (ā§¨ā§Ģ.ā§Ļ , ā§ā§Ģ.ā§Ļ)` āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻāĻŦāĻ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§ āĻ¯āĻāĻ¨ āĻļā§āĻˇ āĻāĻŋāĻĒāĻ˛āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻ¨āĻŋāĻŽā§āĻ¨ (25.0) āĻāĻŦāĻ āĻāĻĒāĻ°ā§āĻ° (75.0) āĻāĻŦāĻĻā§āĻ§ āĻŽāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ā§ˇ
-**Example 3**
+**āĻāĻĻāĻžāĻšāĻ°āĻŖ ā§Š**
-Range time slider:
+āĻĒāĻ°āĻŋāĻ¸ā§āĻŽāĻž āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ°:
```python
st.subheader('Range time slider')
@@ -125,15 +125,15 @@ appointment = st.slider(
st.write("You're scheduled for:", appointment)
```
-The range time slider allows selection of a lower and upper bound value pair of datetime.
+āĻ°ā§āĻā§āĻ āĻāĻžāĻāĻŽ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ° āĻĄā§āĻāĻāĻžāĻāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ°ā§āĻ° āĻāĻŦāĻĻā§āĻ§ āĻŽāĻžāĻ¨ āĻā§āĻĄāĻŧāĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
-The first input argument displays the text just above the **range time slider** widget asking `'Schedule your appointment:`.
+āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¨āĻĒā§āĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ **āĻ°ā§āĻā§āĻ āĻāĻžāĻāĻŽ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ°** āĻāĻāĻā§āĻā§āĻ° āĻ āĻŋāĻ āĻāĻĒāĻ°ā§ āĻā§āĻā§āĻ¸āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻāĻŋāĻā§āĻā§āĻ¸ āĻāĻ°ā§ `'āĻāĻĒāĻ¨āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĻ¨:'āĨ¤
-The default values for the lower and upper bound value pairs of datetime are set to 11:30 and 12:45, respectively.
+āĻĄā§āĻāĻāĻžāĻāĻŽā§āĻ° āĻ¨āĻŋāĻŽā§āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ°ā§āĻ° āĻāĻŦāĻĻā§āĻ§ āĻŽāĻžāĻ¨ āĻā§āĻĄāĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŽāĻžāĻ¨ āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§ ā§§ā§§:ā§Šā§Ļ āĻāĻŦāĻ ā§§ā§¨:ā§Ēā§Ģ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
-**Example 4**
+**āĻāĻĻāĻžāĻšāĻ°āĻŖ ā§Ē**
-Datetime slider:
+āĻ¤āĻžāĻ°āĻŋāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ°:
```python
st.subheader('Datetime slider')
@@ -145,12 +145,13 @@ start_time = st.slider(
st.write("Start time:", start_time)
```
-The datetime slider allows selection of a datetime.
+āĻ¤āĻžāĻ°āĻŋāĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ°āĻŋāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
-The first input argument displays the text just above the **datetime** slider widget asking `'When do you start?'`.
+āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¨āĻĒā§āĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ **datetime** āĻ¸ā§āĻ˛āĻžāĻāĻĄāĻžāĻ° āĻāĻāĻā§āĻā§āĻ° āĻ āĻŋāĻ āĻāĻĒāĻ°ā§ āĻĒāĻžāĻ ā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§ āĻ¯āĻž āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°ā§ `'āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ¨ āĻļā§āĻ°ā§ āĻāĻ°āĻŦā§āĻ¨?'`āĨ¤
-The default value for the datetime was set using the `value` option to be January 1, 2020 at 9:30
+āĻ¤āĻžāĻ°āĻŋāĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻ `āĻŽāĻžāĻ¨` āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ ā§§ āĻāĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ°ā§, ā§¨ā§Ļā§¨ā§Ļ ā§¯:ā§Šā§Ļ āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
-## Further reading
-You can also explore the following related widget:
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
+āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻāĻā§āĻ āĻ
āĻ¨ā§āĻŦā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
- [`st.select_slider`](https://docs.streamlit.io/library/api-reference/widgets/st.select_slider)
+
diff --git a/content/Day9.md b/content/Day9.md
index 931bb21..861cb77 100644
--- a/content/Day9.md
+++ b/content/Day9.md
@@ -1,25 +1,25 @@
# st.line_chart
-`st.line_chart` displays a line chart.
+`st.line_chart` āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻāĻžāĻ°ā§āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĨ¤
-This is syntax-sugar around `st.altair_chart`. The main difference is this command uses the data's own column and indices to figure out the chart's spec. As a result this is easier to use for many "just plot this" scenarios, while being less customizable.
+āĻāĻāĻŋ `st.altair_chart` āĻāĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻŦāĻžāĻ¨āĻžāĻ¨ā§āĨ¤ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻšāĻ˛ āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻŦā§āĻ° āĻāĻ°āĻ¤ā§ āĻĄā§āĻāĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻāĻ˛āĻžāĻŽ āĻāĻŦāĻ āĻ¸ā§āĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻāĻāĻŋ āĻ
āĻ¨ā§āĻ "āĻļā§āĻ§ā§ āĻāĻ āĻĒā§āĻ˛āĻ" āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻšāĻ, āĻ¯āĻĻāĻŋāĻ āĻāĻŽ āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻāĻ¯ā§āĻā§āĻ¯āĨ¤
-If `st.line_chart` does not guess the data specification correctly, try specifying your desired chart using st.altair_chart.
+āĻ¯āĻĻāĻŋ `st.line_chart` āĻĄā§āĻāĻž āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ
āĻ¨ā§āĻŽāĻžāĻ¨ āĻ¨āĻž āĻāĻ°ā§, āĻ¤āĻžāĻšāĻ˛ā§ st.altair_chart āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§āĻāĻŋāĻ¤ āĻāĻžāĻ°ā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨āĨ¤
-## What we're building?
+## āĻāĻŽāĻ°āĻž āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻāĻŋ?
-A simple app for displaying a line chart.
+āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻāĻžāĻ°ā§āĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻ
ā§āĻ¯āĻžāĻĒāĨ¤
-Flow of the app:
-1. Create a `Pandas` DataFrame from numbers randomly generated via `NumPy`.
-2. Create and display the line chart via `st.line_chart()` command.
+āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻĒā§āĻ°āĻŦāĻžāĻš:
+ā§§. 'NumPy' āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻšāĻāĻ¯āĻŧāĻž āĻ¸āĻāĻā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ 'Pandas' āĻĄā§āĻāĻžāĻĢā§āĻ°ā§āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ā§ˇ
+ā§¨. `st.line_chart()` āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ˛āĻžāĻāĻ¨ āĻāĻžāĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĻ¨āĨ¤
-## Demo app
+## āĻĄā§āĻŽā§ āĻ
ā§āĻ¯āĻžāĻĒ
-[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.line_chart/)
+[![āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/dataprofessor/st.line_chart/)
-## Code
-Here's how to use [`st.line_chart`](https://docs.streamlit.io/library/api-reference/charts/st.line_chart):
+## āĻā§āĻĄ
+āĻāĻāĻžāĻ¨ā§ āĻāĻŋāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨ [`st.line_chart`](https://docs.streamlit.io/library/api-reference/charts/st.line_chart):
```python
import streamlit as st
import pandas as pd
@@ -35,31 +35,32 @@ st.line_chart(chart_data)
```
-## Line-by-line explanation
-The very first thing to do when creating a Streamlit app is to start by importing the `streamlit` library as `st` as well as other libraries like so:
+## āĻ˛āĻžāĻāĻ¨-āĻŦāĻžāĻ-āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
+āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻĨāĻŽā§āĻ āĻ¯ā§ āĻāĻžāĻāĻāĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ `āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ` āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻā§ `st` āĻšāĻŋāĻ¸ā§āĻŦā§ āĻ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻŽā§āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž:
```python
import streamlit as st
import pandas as pd
import numpy as np
```
-Next, we create a header text for the app:
+āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻĒāĻžāĻ ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ:
```python
st.header('Line chart')
```
-Then, we create a DataFrame of randomly generated numbers that contains 3 columns.
+āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻ°āĻž āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¸āĻāĻā§āĻ¯āĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻĄā§āĻāĻžāĻĢā§āĻ°ā§āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ āĻ¯āĻžāĻ¤ā§ ā§ŠāĻāĻŋ āĻāĻ˛āĻžāĻŽ āĻĨāĻžāĻā§āĨ¤
```python
chart_data = pd.DataFrame(
np.random.randn(20, 3),
columns=['a', 'b', 'c'])
```
-Finally, a line chart is created by using `st.line_chart()` with the DataFrame stored in the `chart_data` variable as the input data:
+
+āĻ
āĻŦāĻļā§āĻˇā§, āĻāĻ¨āĻĒā§āĻ āĻĄā§āĻāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ `chart_data` āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻĄā§āĻāĻžāĻĢā§āĻ°ā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ `st.line_chart()` āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻāĻžāĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
```python
st.line_chart(chart_data)
```
-## Further reading
-Read more about the following related Streamlit command from which [`st.line_chart`](https://docs.streamlit.io/library/api-reference/charts/st.line_chart) is based on:
+## āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž
+āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻĒāĻĄāĻŧā§āĻ¨ āĻ¯ā§āĻāĻŋ āĻĨā§āĻā§ [`st.line_chart`](https://docs.streamlit.io/library/api-reference/charts/st.line_chart) āĻāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§:
- [`st.altair_chart`](https://docs.streamlit.io/library/api-reference/charts/st.altair_chart)
diff --git a/content/images/readme.md b/content/images/readme.md
index 4148b2f..59bfea4 100644
--- a/content/images/readme.md
+++ b/content/images/readme.md
@@ -1 +1 @@
-# images
+# āĻāĻŦāĻŋ
diff --git a/streamlit_app.py b/streamlit_app.py
index e18e771..a550c54 100644
--- a/streamlit_app.py
+++ b/streamlit_app.py
@@ -20,7 +20,7 @@ def update_params():
col1, col2, col3 = st.columns((1, 4, 1))
with col2:
st.image(Image.open("streamlit-logo-secondary-colormark-darktext.png"))
-st.markdown("# 30 Days of Streamlit")
+st.markdown("# ā§Šā§Ļ āĻĻāĻŋāĻ¨ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ ")
days_list = [f"Day {x}" for x in md_files]
@@ -33,40 +33,40 @@ def update_params():
st.session_state.day = days_list[0]
selected_day = st.selectbox(
- "Start the Challenge đ", days_list, key="day", on_change=update_params
+ "āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨ đ", days_list, key="day", on_change=update_params
)
-with st.expander("About the #30DaysOfStreamlit"):
+with st.expander("#30DaysOfStreamlit āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤"):
st.markdown(
"""
- The **#30DaysOfStreamlit** is a coding challenge designed to help you get started in building Streamlit apps.
+ **#30DaysOfStreamlit** āĻšāĻ˛ āĻāĻāĻāĻŋ āĻā§āĻĄāĻŋāĻ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ Streamlit āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- Particularly, you'll be able to:
- - Set up a coding environment for building Streamlit apps
- - Build your first Streamlit app
- - Learn about all the awesome input/output widgets to use for your Streamlit app
+ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§āĻ¨:
+ - āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻ
ā§āĻ¯āĻžāĻĒāĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻā§āĻĄāĻŋāĻ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§āĻ¨
+ - āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
+ - āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻāĻ¨āĻĒā§āĻ/āĻāĻāĻāĻĒā§āĻ āĻāĻāĻā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻžāĻ¨ā§āĻ¨
"""
)
# Sidebar
st.sidebar.header("About")
st.sidebar.markdown(
- "[Streamlit](https://streamlit.io) is a Python library that allows the creation of interactive, data-driven web applications in Python."
+ "[āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§](https://streamlit.io) āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¯āĻž āĻĒāĻžāĻāĻĨāĻ¨ā§ āĻāĻ¨ā§āĻāĻžāĻ°ā§āĻā§āĻāĻŋāĻ, āĻĄā§āĻāĻž-āĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻ¯āĻŧā§āĻŦ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ"
)
st.sidebar.header("Resources")
st.sidebar.markdown(
"""
-- [Streamlit Documentation](https://docs.streamlit.io/)
-- [Cheat sheet](https://docs.streamlit.io/library/cheatsheet)
-- [Book](https://www.amazon.com/dp/180056550X) (Getting Started with Streamlit for Data Science)
-- [Blog](https://blog.streamlit.io/how-to-master-streamlit-for-data-science/) (How to master Streamlit for data science)
+- [āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨](https://docs.streamlit.io/)
+- [āĻāĻŋāĻ āĻļā§āĻ](https://docs.streamlit.io/library/cheatsheet)
+- [āĻŦāĻ](https://www.amazon.com/dp/180056550X) (āĻĄā§āĻāĻž āĻ¸āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž)
+- [āĻŦā§āĻ˛āĻ](https://blog.streamlit.io/how-to-master-streamlit-for-data-science/) (āĻĄā§āĻāĻž āĻ¸āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻāĻžāĻŦā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻāĻ¯āĻŧāĻ¤ā§āĻ¤ āĻāĻ°āĻŦā§āĻ¨)
"""
)
st.sidebar.header("Deploy")
st.sidebar.markdown(
- "You can quickly deploy Streamlit apps using [Streamlit Community Cloud](https://streamlit.io/cloud) in just a few clicks."
+ "āĻāĻĒāĻ¨āĻŋ āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻā§āĻ˛āĻŋāĻā§ [āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻāĻŽāĻŋāĻāĻ¨āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ](https://streamlit.io/cloud) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻ˛āĻŋāĻā§ āĻ
ā§āĻ¯āĻžāĻĒ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤"
)
# Display content