├── tutorials
├── amazon-tutorial.html
├── phonepe-tutorial.html
└── whatsapp-tutorial.html
├── images
├── preview.png
├── send-money-phonepe
│ ├── home.png
│ ├── pay.png
│ ├── send-money.png
│ ├── search-contact.png
│ └── select-contact.png
└── video-call-whatsapp
│ ├── chat.png
│ └── home.png
├── LICENSE
├── README.md
├── about.html
├── styles.css
├── index.html
└── js
└── localization.js
/tutorials/amazon-tutorial.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Pankajtanwarbanna/teach-your-parents-smartphone/HEAD/images/preview.png
--------------------------------------------------------------------------------
/images/send-money-phonepe/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Pankajtanwarbanna/teach-your-parents-smartphone/HEAD/images/send-money-phonepe/home.png
--------------------------------------------------------------------------------
/images/send-money-phonepe/pay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Pankajtanwarbanna/teach-your-parents-smartphone/HEAD/images/send-money-phonepe/pay.png
--------------------------------------------------------------------------------
/images/video-call-whatsapp/chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Pankajtanwarbanna/teach-your-parents-smartphone/HEAD/images/video-call-whatsapp/chat.png
--------------------------------------------------------------------------------
/images/video-call-whatsapp/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Pankajtanwarbanna/teach-your-parents-smartphone/HEAD/images/video-call-whatsapp/home.png
--------------------------------------------------------------------------------
/images/send-money-phonepe/send-money.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Pankajtanwarbanna/teach-your-parents-smartphone/HEAD/images/send-money-phonepe/send-money.png
--------------------------------------------------------------------------------
/images/send-money-phonepe/search-contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Pankajtanwarbanna/teach-your-parents-smartphone/HEAD/images/send-money-phonepe/search-contact.png
--------------------------------------------------------------------------------
/images/send-money-phonepe/select-contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Pankajtanwarbanna/teach-your-parents-smartphone/HEAD/images/send-money-phonepe/select-contact.png
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 Pankaj Tanwar
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Teach Your Parents Smartphone 📱
2 |
3 | A simple application with step-by-step practice guide to help parents learn essential mobile apps.
4 |
5 | ## Why I Created This
6 |
7 | I recently visited my parents. Everything was fine until one morning my mom started blaming me for "doing something" to their phone. [PhonePe](https://www.phonepe.com/) had updated its design overnight, and both of them were confused. I spent an hour patiently teaching them the new interface step by step. That trip, I also ended up showing them how to make a video call on WhatsApp.
8 |
9 | After I returned to Bangalore, it hit me: I won’t always be around to sit next to them and help. And honestly, explaining things over a phone call never really works. It wasn’t just them. I’ve seen this happen with my friends’ parents too. We teach them, but since they don’t get to practice, they forget and then feel frustrated or even embarrassed to ask again.
10 |
11 | That’s when I decided to build this tool.
12 |
13 | It's simple. It lets my parents (or anyone, really), practice using apps like PhonePe, WhatsApp through step-by-step tutorials on their own. It can be practiced as many times as needed, without anyone rushing or judging them. Whether it’s a complex flow or a basic feature, they can revisit it anytime. It’s even helpful for me. I can teach them features they’ve never used before, like downloading bank statements, sending a voice note or adjust WhatsApp settings, from miles away.
14 |
15 | I built this so my parents can feel a little more confident, a little more independent, and a little less scared of technology. Because sometimes, all they need is a safe space to practice.
16 |
17 | ## Features
18 |
19 | - Simple, clear step-by-step instructions
20 | - Localization Support available in English and Hindi with easy extensibility for additional languages
21 | - Visual guides with highlighted clickable areas
22 | - Interactive Practice mode
23 | - Works for various essential apps (PhonePe, WhatsApp, etc.)
24 |
25 | ## How To Use
26 |
27 | - Choose a tutorial from the home page
28 | - Follow the step-by-step instructions
29 | - Practice in a safe environment
30 | - Learn at your own pace
31 |
32 | ## Technologies Used
33 |
34 | - HTML/CSS/JavaScript
35 | - No frameworks or dependencies
36 | - Works in any modern browser
37 |
38 | ## Built with ❤️ by
39 |
40 | [Pankaj Tanwar](https://twitter.com/the2ndfloorguy), and checkout his [other side-hustles](https://pankajtanwar.in/side-hustles)
41 |
42 | ## Contributing
43 |
44 | I welcome contributions to the `teach-your-parents-smartphone` project! Whether it's a bug fix, a feature request, or improving documentation, your contributions are appreciated.
--------------------------------------------------------------------------------
/about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
The story behind building this tiny tool for my parents
77 |
78 |
Why I Built This
79 |
I recently visited my parents. Everything was fine until one morning my mom started blaming me for "doing something" to their phone. PhonePe had updated its design overnight, and both of them were confused. I spent an hour patiently teaching them the new interface step by step. That trip, I also ended up showing them how to make a video call on WhatsApp.
80 |
81 |
After I returned to Bangalore, it hit me: I won't always be around to sit next to them and help. And honestly, explaining things over a phone call never really works. It wasn't just them. I've seen this happen with my friends' parents too. We teach them, but since they don't get to practice, they forget and then feel frustrated or even embarrassed to ask again.
82 |
83 |
That's when I decided to build this tool.
84 |
85 |
It's simple. It lets my parents (or anyone, really), practice using apps like PhonePe, WhatsApp through step-by-step tutorials on their own. It can be practiced as many times as needed, without anyone rushing or judging them. Whether it's a complex flow or a basic feature, they can revisit it anytime. It's even helpful for me. I can teach them features they've never used before, like downloading bank statements, sending a voice note or adjust WhatsApp settings, from miles away.
86 |
87 |
I built this so my parents can feel a little more confident, a little more independent, and a little less scared of technology. Because sometimes, all they need is a safe space to practice.
88 |
89 |
Who Am I?
90 |
My name is Pankaj Tanwar. I build simple tools to solve everyday problems.
145 | Step 1: This is the PhonePe home screen. To send money to someone, tap on the "To mobile
146 | number" option under Money Transfers. This lets you send money to any phone number in India.
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
163 |
164 |
165 |
166 |
167 |
168 |
169 | Good job! Now you'll see the Send Money screen.
170 |
171 |
172 |
173 |
174 |
175 |
176 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 | Perfect! You've selected New Payment. Now you'll see contact numbers.
188 |
189 |
190 |
191 |
192 |
193 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 | Great! You've selected to enter the contact number.
204 |
205 |
206 |
207 |
208 |
209 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 | Great! You've selected the contact number to make a new payment.
220 |
221 |
222 |
223 |
224 |
225 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 | Awesome! Post this, just enter UPI PIN to complete the payment.
236 |
237 |
238 |
239 |
240 |
241 |
243 |
245 | ✓
246 |
247 |
Payment Successful!
248 |
249 |
₹1 sent
250 | to Ashish
251 |
252 |
253 |
254 |
255 |
256 |
257 | Congratulations! You've successfully learned how to send money to a
258 | mobile number using PhonePe.
259 |
273 |
274 |
275 |
276 |
277 |
545 |
546 |
547 |
--------------------------------------------------------------------------------
/js/localization.js:
--------------------------------------------------------------------------------
1 | // Available languages
2 | const LANGUAGES = {
3 | en: {
4 | name: 'English',
5 | nativeName: 'English',
6 | dir: 'ltr'
7 | },
8 | hi: {
9 | name: 'Hindi',
10 | nativeName: 'हिंदी',
11 | dir: 'ltr'
12 | }
13 | // Add more languages here as needed
14 | };
15 |
16 | const DEFAULT_LANGUAGE = 'en';
17 | let currentLanguage = DEFAULT_LANGUAGE;
18 |
19 | const TRANSLATIONS = {
20 | // ENGLISH TRANSLATIONS
21 | "en": {
22 | // Common translations (used across all pages)
23 | "common": {
24 | "nav.home": "Home",
25 | "nav.about": "About",
26 | "footer.built": "Built with ❤️ by",
27 | "footer.about": "About This Project",
28 | "footer.github": "GitHub",
29 | "button.startTutorial": "Start Tutorial",
30 | "button.comingSoon": "Coming Soon",
31 | "button.tryAgain": "Try Again",
32 | "button.back": "Back to Home",
33 | "button.previous": "Previous Step",
34 | "button.hint": "Show Hint",
35 | "button.reset": "Start Over",
36 | "button.debug": "Show Clickable Areas",
37 | "button.hideDebug": "Hide Clickable Areas"
38 | },
39 |
40 | // Home page translations
41 | "home": {
42 | "page.title": "Teach your parents smartphone - Simple App Learning Guide",
43 | "meta.description": "Easy step-by-step practice guide to help parents and seniors learn essential smartphone apps like PhonePe, WhatsApp, Google Maps, and more.",
44 |
45 | "home.title": "Teach your parents smartphone",
46 | "home.why": "Why I built this?",
47 | "home.subheading": "Learn how to use popular apps with step-by-step practice guide.",
48 |
49 | "card.phonepe.title": "Send Money on PhonePe",
50 | "card.phonepe.description": "Learn how to send money to a mobile number using PhonePe app.",
51 |
52 | "card.whatsapp.title": "Use WhatsApp Video Call",
53 | "card.whatsapp.description": "Learn how to make video calls to family and friends.",
54 |
55 | "card.electricity.title": "Pay Electricity Bill",
56 | "card.electricity.description": "Learn how to pay your electricity bill using PhonePe or BBPS.",
57 |
58 | "card.ride.title": "Book an Ola/Uber Ride",
59 | "card.ride.description": "Learn how to book a cab and track your driver.",
60 |
61 | "card.maps.title": "Navigate with Google Maps",
62 | "card.maps.description": "Learn how to find directions and navigate to new places.",
63 |
64 | "card.train.title": "Book Train Tickets",
65 | "card.train.description": "Learn how to book train tickets using the IRCTC app."
66 | },
67 |
68 | // About page translations
69 | "about": {
70 | "page.title": "About - Teach Your Parents Smartphone",
71 | "about.title": "About",
72 | "about.subheading": "The story behind building this tiny tool for my parents",
73 | "about.whyBuilt.title": "Why I Built This",
74 | "about.whyBuilt.p1": "I recently visited my parents. Everything was fine until one morning my mom started blaming me for \"doing something\" to their phone. PhonePe had updated its design overnight, and both of them were confused. I spent an hour patiently teaching them the new interface step by step. That trip, I also ended up showing them how to make a video call on WhatsApp.",
75 | "about.whyBuilt.p2": "After I returned to Bangalore, it hit me: I won't always be around to sit next to them and help. And honestly, explaining things over a phone call never really works. It wasn't just them. I've seen this happen with my friends' parents too. We teach them, but since they don't get to practice, they forget and then feel frustrated or even embarrassed to ask again.",
76 | "about.whyBuilt.p3": "That's when I decided to build this tool.",
77 | "about.whyBuilt.p4": "It's simple. It lets my parents (or anyone, really), practice using apps like PhonePe, WhatsApp through step-by-step tutorials on their own. It can be practiced as many times as needed, without anyone rushing or judging them. Whether it's a complex flow or a basic feature, they can revisit it anytime. It's even helpful for me. I can teach them features they've never used before, like downloading bank statements, sending a voice note or adjust WhatsApp settings, from miles away.",
78 | "about.whyBuilt.p5": "I built this so my parents can feel a little more confident, a little more independent, and a little less scared of technology. Because sometimes, all they need is a safe space to practice.",
79 | "about.whoAmI.title": "Who Am I?",
80 | "about.whoAmI.p1": "My name is Pankaj Tanwar. I build simple tools to solve everyday problems.",
81 | "about.whoAmI.p2": "You can find me on Twitter or check out my other projects.",
82 | "about.feedback.title": "Feedback",
83 | "about.feedback.p1": "If you have suggestions or feedback, I'd love to hear them.",
84 | "about.feedback.p2": "This project is open-sourced on GitHub. Please reach out to me on Twitter or raise on GitHub."
85 | },
86 |
87 | // PhonePe tutorial translations
88 | "phonepe": {
89 | "page.title": "PhonePe Money Transfer Tutorial - Teach your parents smartphone",
90 |
91 | "tutorial.title": "Sending Money on PhonePe",
92 | "tutorial.completion": "Congratulations! You've successfully learned how to send money to a mobile number using PhonePe.",
93 |
94 | "step1.instruction": "Step 1: This is the PhonePe home screen. To send money to someone, tap on the \"To mobile number\" option under Money Transfers. This lets you send money to any phone number in India.",
95 | "step2.instruction": "Step 2: You're now in the Send Money screen. Here you can see your recent payments. To make a new payment, tap on the purple \"New Payment\" button at the bottom of your screen.",
96 | "step3.instruction": "Step 3: Now you can select a contact. Tap on the search box at the top to enter a phone number or search for a contact.",
97 | "step4.instruction": "Step 4: Type the phone number or select a contact from the list. Tap on the contact you want to send money to.",
98 | "step5.instruction": "Step 5: Now enter the amount you want to send. Then tap \"Pay\" to proceed. After this, you'll need to enter your UPI PIN to complete the transaction.",
99 |
100 | "feedback.home": "Good job! Now you'll see the Send Money screen.",
101 | "feedback.sendmoney": "Perfect! You've selected New Payment. Now you'll see contact numbers.",
102 | "feedback.selectcontact": "Great! You've selected to enter the contact number.",
103 | "feedback.searchcontact": "Great! You've selected the contact number to make a new payment.",
104 | "feedback.pay": "Awesome! Post this, just enter UPI PIN to complete the payment.",
105 |
106 | "completion.success": "Payment Successful!",
107 | "completion.message": "₹1 sent to Ashish"
108 | },
109 |
110 | // WhatsApp tutorial translations
111 | "whatsapp": {
112 | "page.title": "WhatsApp Video Call Tutorial - Teach your parents smartphone",
113 |
114 | "tutorial.title": "Making a Video Call on WhatsApp",
115 | "tutorial.completion": "Congratulations! You've successfully learned how to make a video call on WhatsApp.",
116 |
117 | "step1.instruction": "Step 1: This is your WhatsApp chats list. All your conversations appear here. To make a video call, first tap on the contact you want to call. In this example, tap on \"Random Aunty\".",
118 | "step2.instruction": "Step 2: Now you're in the chat screen where you can see your messages with this contact. Look at the top right corner of the screen. Tap on the video camera icon to start a video call.",
119 | "step3.instruction": "Step 3: Your video call is now connected! You can see the other person in the main screen and yourself in the small window at the top right. When you want to end the call, tap the red button with an X in the middle at the bottom of the screen.",
120 |
121 | "feedback.home": "Good job! Now you'll see the chat screen for this contact.",
122 | "feedback.chat": "Perfect! You've clicked the video call button. Your call is connecting.",
123 | "feedback.call": "Well done! You've ended the call by pressing the red button.",
124 |
125 | "completion.success": "Call Completed!",
126 | "completion.message": "You've successfully made a WhatsApp video call"
127 | }
128 | },
129 |
130 | // HINDI TRANSLATIONS
131 | "hi": {
132 | // Common translations
133 | "common": {
134 | "nav.home": "मुख्य पृष्ठ",
135 | "nav.about": "परिचय",
136 | "footer.built": "❤️ के साथ बनाया गया",
137 | "footer.about": "इस प्रोजेक्ट के बारे में",
138 | "footer.github": "गिटहब",
139 | "button.startTutorial": "ट्यूटोरियल शुरू करें",
140 | "button.comingSoon": "जल्द आ रहा है",
141 | "button.tryAgain": "फिर से प्रयास करें",
142 | "button.back": "मुख्य पृष्ठ पर वापस जाएं",
143 | "button.previous": "पिछला चरण",
144 | "button.hint": "संकेत दिखाएं",
145 | "button.reset": "फिर से शुरू करें",
146 | "button.debug": "क्लिक करने योग्य क्षेत्र दिखाएं",
147 | "button.hideDebug": "क्लिक करने योग्य क्षेत्र छिपाएं"
148 | },
149 |
150 | // Home page translations
151 | "home": {
152 | "page.title": "अपने माता-पिता को स्मार्टफोन सिखाएं - सरल ऐप शिक्षण गाइड",
153 | "meta.description": "माता-पिता और बुजुर्गों को PhonePe, WhatsApp, गूगल मैप्स जैसे आवश्यक स्मार्टफोन ऐप्स सीखने में मदद करने के लिए आसान चरण-दर-चरण अभ्यास गाइड।",
154 |
155 | "home.title": "अपने माता-पिता को स्मार्टफोन सिखाएं",
156 | "home.why": "मैंने इसे क्यों बनाया?",
157 | "home.subheading": "चरण-दर-चरण अभ्यास गाइड के साथ लोकप्रिय ऐप्स का उपयोग करना सीखें।",
158 |
159 | "card.phonepe.title": "PhonePe पर पैसे भेजें",
160 | "card.phonepe.description": "PhonePe का उपयोग करके मोबाइल नंबर पर पैसे भेजना सीखें।",
161 |
162 | "card.whatsapp.title": "WhatsApp वीडियो कॉल का उपयोग करें",
163 | "card.whatsapp.description": "परिवार और दोस्तों को वीडियो कॉल करना सीखें।",
164 |
165 | "card.electricity.title": "बिजली बिल का भुगतान करें",
166 | "card.electricity.description": "PhonePe या BBPS का उपयोग करके अपना बिजली बिल कैसे भुगतान करें यह सीखें।",
167 |
168 | "card.ride.title": "ओला/उबर राइड बुक करें",
169 | "card.ride.description": "कैब बुक करना और अपने ड्राइवर को ट्रैक करना सीखें।",
170 |
171 | "card.maps.title": "गूगल मैप्स के साथ नेविगेट करें",
172 | "card.maps.description": "दिशाएँ खोजना और नए स्थानों पर जाना सीखें।",
173 |
174 | "card.train.title": "ट्रेन टिकट बुक करें",
175 | "card.train.description": "IRCTC ऐप का उपयोग करके ट्रेन टिकट बुक करना सीखें।"
176 | },
177 |
178 | // About page translations (complete)
179 | "about": {
180 | "page.title": "परिचय - अपने माता-पिता को स्मार्टफोन सिखाएं",
181 | "about.title": "परिचय",
182 | "about.subheading": "अपने माता-पिता के लिए इस छोटे उपकरण को बनाने के पीछे की कहानी",
183 | "about.whyBuilt.title": "मैंने इसे क्यों बनाया",
184 | "about.whyBuilt.p1": "मैं हाल ही में अपने माता-पिता से मिलने गया था। सब कुछ ठीक था जब तक एक सुबह मेरी माँ ने मुझे उनके फोन के साथ \"कुछ करने\" का आरोप लगाना शुरू नहीं किया। PhonePe ने रातोंरात अपना डिज़ाइन अपडेट कर दिया था, और वे दोनों भ्रमित थे। मैंने धैर्यपूर्वक एक घंटे तक उन्हें नए इंटरफेस को चरण-दर-चरण सिखाया। उस यात्रा में, मैंने उन्हें WhatsApp पर वीडियो कॉल करना भी सिखाया।",
185 | "about.whyBuilt.p2": "बैंगलोर लौटने के बाद, मुझे एहसास हुआ: मैं हमेशा उनके पास बैठकर मदद करने के लिए नहीं रहूंगा। और सच कहूं तो, फोन कॉल पर चीजों को समझाना कभी भी वास्तव में काम नहीं करता। यह सिर्फ वे ही नहीं थे। मैंने अपने दोस्तों के माता-पिता के साथ भी ऐसा होते देखा है। हम उन्हें सिखाते हैं, लेकिन चूंकि उन्हें अभ्यास करने का मौका नहीं मिलता, वे भूल जाते हैं और फिर निराश महसूस करते हैं या फिर से पूछने में शर्म महसूस करते हैं।",
186 | "about.whyBuilt.p3": "तभी मैंने इस टूल को बनाने का फैसला किया।",
187 | "about.whyBuilt.p4": "यह सरल है। यह मेरे माता-पिता (या वास्तव में, किसी को भी) PhonePe, WhatsApp जैसे ऐप्स का उपयोग अपने आप चरण-दर-चरण ट्यूटोरियल के माध्यम से अभ्यास करने देता है। इसका अभ्यास जितनी बार चाहें किया जा सकता है, बिना किसी के जल्दबाजी या उनका आकलन किए। चाहे वह एक जटिल प्रवाह हो या एक बुनियादी सुविधा, वे किसी भी समय इसे फिर से देख सकते हैं। यह मेरे लिए भी मददगार है। मैं उन्हें ऐसी सुविधाएं सिखा सकता हूं जिनका उन्होंने पहले कभी उपयोग नहीं किया है, जैसे बैंक स्टेटमेंट डाउनलोड करना, वॉइस नोट भेजना या WhatsApp सेटिंग्स को समायोजित करना, वह भी कई मील दूर से।",
188 | "about.whyBuilt.p5": "मैंने इसे इसलिए बनाया ताकि मेरे माता-पिता थोड़ा अधिक आत्मविश्वास, थोड़ा अधिक स्वतंत्र, और तकनीक से थोड़ा कम डरें महसूस कर सकें। क्योंकि कभी-कभी, उन्हें अभ्यास करने के लिए बस एक सुरक्षित जगह की जरूरत होती है।",
189 | "about.whoAmI.title": "मैं कौन हूँ?",
190 | "about.whoAmI.p1": "मेरा नाम पंकज तंवर है। मैं रोजमर्रा की समस्याओं को हल करने के लिए सरल उपकरण बनाता हूँ।",
191 | "about.whoAmI.p2": "आप मुझे ट्विटर पर पा सकते हैं या मेरे अन्य प्रोजेक्ट्स देख सकते हैं।",
192 | "about.feedback.title": "प्रतिक्रिया",
193 | "about.feedback.p1": "यदि आपके पास सुझाव या प्रतिक्रिया है, तो मुझे सुनना अच्छा लगेगा।",
194 | "about.feedback.p2": "यह प्रोजेक्ट गिटहब पर ओपन-सोर्स है। कृपया मुझसे ट्विटर पर संपर्क करें या गिटहब पर मुद्दा उठाएं।"
195 | },
196 |
197 | // PhonePe tutorial translations
198 | "phonepe": {
199 | "page.title": "PhonePe मनी ट्रांसफर ट्यूटोरियल - अपने माता-पिता को स्मार्टफोन सिखाएं",
200 |
201 | "tutorial.title": "PhonePe पर पैसे भेजना",
202 | "tutorial.completion": "बधाई हो! आपने PhonePe का उपयोग करके मोबाइल नंबर पर पैसे भेजना सफलतापूर्वक सीख लिया है।",
203 |
204 | "step1.instruction": "चरण 1: यह PhonePe होम स्क्रीन है। किसी को पैसे भेजने के लिए, मनी ट्रांसफर के अंतर्गत \"मोबाइल नंबर पर\" विकल्प पर टैप करें। यह आपको भारत में किसी भी फोन नंबर पर पैसे भेजने देता है।",
205 | "step2.instruction": "चरण 2: अब आप सेंड मनी स्क्रीन पर हैं। यहां आप अपने हाल के भुगतान देख सकते हैं। एक नया भुगतान करने के लिए, अपनी स्क्रीन के नीचे बैंगनी \"न्यू पेमेंट\" बटन पर टैप करें।",
206 | "step3.instruction": "चरण 3: अब आप एक संपर्क चुन सकते हैं। फोन नंबर दर्ज करने या किसी संपर्क को खोजने के लिए ऊपर दिए गए सर्च बॉक्स पर टैप करें।",
207 | "step4.instruction": "चरण 4: फोन नंबर टाइप करें या सूची से किसी संपर्क का चयन करें। जिस संपर्क को आप पैसे भेजना चाहते हैं, उस पर टैप करें।",
208 | "step5.instruction": "चरण 5: अब वह राशि दर्ज करें जो आप भेजना चाहते हैं। फिर आगे बढ़ने के लिए \"पे\" पर टैप करें। इसके बाद, लेनदेन को पूरा करने के लिए आपको अपना यूपीआई पिन दर्ज करना होगा।",
209 |
210 | "feedback.home": "अच्छा काम! अब आप सेंड मनी स्क्रीन देखेंगे।",
211 | "feedback.sendmoney": "बढ़िया! आपने न्यू पेमेंट का चयन किया है। अब आप संपर्क नंबर देखेंगे।",
212 | "feedback.selectcontact": "बढ़िया! आपने संपर्क नंबर दर्ज करने का विकल्प चुना है।",
213 | "feedback.searchcontact": "बढ़िया! नया भुगतान करने के लिए आपने संपर्क नंबर का चयन किया है।",
214 | "feedback.pay": "शानदार! इसके बाद, भुगतान पूरा करने के लिए बस अपना यूपीआई पिन दर्ज करें।",
215 |
216 | "completion.success": "भुगतान सफल!",
217 | "completion.message": "₹1 आशीष को भेजा गया"
218 | },
219 |
220 | // WhatsApp tutorial translations
221 | "whatsapp": {
222 | "page.title": "WhatsApp वीडियो कॉल ट्यूटोरियल - अपने माता-पिता को स्मार्टफोन सिखाएं",
223 |
224 | "tutorial.title": "WhatsApp पर वीडियो कॉल करना",
225 | "tutorial.completion": "बधाई हो! आपने WhatsApp पर वीडियो कॉल करना सफलतापूर्वक सीख लिया है।",
226 |
227 | "step1.instruction": "चरण 1: यह आपकी WhatsApp चैट्स सूची है। यहां आपकी सभी बातचीत दिखाई देती है। वीडियो कॉल करने के लिए, पहले उस संपर्क पर टैप करें जिसे आप कॉल करना चाहते हैं। इस उदाहरण में, \"रैंडम आंटी\" पर टैप करें।",
228 | "step2.instruction": "चरण 2: अब आप चैट स्क्रीन पर हैं जहां आप इस संपर्क के साथ अपने संदेश देख सकते हैं। स्क्रीन के ऊपरी दाएं कोने को देखें। वीडियो कॉल शुरू करने के लिए वीडियो कैमरा आइकन पर टैप करें।",
229 | "step3.instruction": "चरण 3: आपका वीडियो कॉल अब कनेक्ट हो गया है! आप मुख्य स्क्रीन पर दूसरे व्यक्ति को और ऊपरी दाएं छोटी विंडो में खुद को देख सकते हैं। जब आप कॉल समाप्त करना चाहते हैं, तो स्क्रीन के निचले हिस्से में बीच में X वाले लाल बटन पर टैप करें।",
230 |
231 | "feedback.home": "अच्छा काम! अब आप इस संपर्क के लिए चैट स्क्रीन देखेंगे।",
232 | "feedback.chat": "बढ़िया! आपने वीडियो कॉल बटन पर क्लिक किया है। आपका कॉल कनेक्ट हो रहा है।",
233 | "feedback.call": "बहुत अच्छे! आपने लाल बटन दबाकर कॉल समाप्त कर दिया है।",
234 |
235 | "completion.success": "कॉल पूरा हुआ!",
236 | "completion.message": "आपने सफलतापूर्वक WhatsApp वीडियो कॉल किया है"
237 | }
238 | }
239 |
240 | // Add more languages here as needed
241 | };
242 |
243 | // Cache for loaded translation files
244 | const translationCache = {};
245 |
246 | // Initialize localization
247 | function initLocalization() {
248 | // Try to get language from localStorage
249 | const savedLanguage = localStorage.getItem('language');
250 |
251 | // If not in localStorage, try to detect from browser
252 | if (!savedLanguage) {
253 | const browserLang = navigator.language.split('-')[0];
254 | // Only use browser language if it's one we support
255 | if (LANGUAGES[browserLang]) {
256 | currentLanguage = browserLang;
257 | }
258 | } else {
259 | currentLanguage = savedLanguage;
260 | }
261 |
262 | // Set HTML lang attribute
263 | document.documentElement.lang = currentLanguage;
264 | document.documentElement.dir = LANGUAGES[currentLanguage].dir;
265 |
266 | // Create language selector if it doesn't exist
267 | if (!document.querySelector('.language-selector')) {
268 | createLanguageSelector();
269 | }
270 |
271 | // Load page-specific translations
272 | const pageName = getPageName();
273 | loadTranslations(pageName);
274 | }
275 |
276 | // Get current page name (for loading the right translation file)
277 | function getPageName() {
278 | const path = window.location.pathname;
279 | const filename = path.split('/').pop().replace('.html', '') || 'home';
280 |
281 | if (filename === 'index' || filename === '') {
282 | return 'home';
283 | }
284 |
285 | // Handle tutorial pages
286 | if (filename === 'phonepe-tutorial') {
287 | return 'phonepe';
288 | }
289 | if (filename === 'whatsapp-tutorial') {
290 | return 'whatsapp';
291 | }
292 |
293 | return filename;
294 | }
295 |
296 | // Create the language selector dropdown
297 | function createLanguageSelector() {
298 | const selectorContainer = document.createElement('div');
299 | selectorContainer.className = 'language-selector';
300 |
301 | const select = document.createElement('select');
302 | select.id = 'language-select';
303 |
304 | // Create options for each language
305 | Object.keys(LANGUAGES).forEach(langCode => {
306 | const option = document.createElement('option');
307 | option.value = langCode;
308 | option.textContent = LANGUAGES[langCode].nativeName;
309 | option.selected = langCode === currentLanguage;
310 | select.appendChild(option);
311 | });
312 |
313 | // Add event listener for language change
314 | select.addEventListener('change', (e) => {
315 | changeLanguage(e.target.value);
316 | });
317 |
318 | selectorContainer.appendChild(select);
319 |
320 | // Add to the page header
321 | const header = document.querySelector('.container');
322 | if (header) {
323 | header.insertBefore(selectorContainer, header.firstChild);
324 | }
325 | }
326 |
327 | // Change the current language
328 | function changeLanguage(lang) {
329 | if (LANGUAGES[lang] && lang !== currentLanguage) {
330 | currentLanguage = lang;
331 | localStorage.setItem('language', lang);
332 |
333 | // Update HTML lang attribute
334 | document.documentElement.lang = lang;
335 | document.documentElement.dir = LANGUAGES[lang].dir;
336 |
337 | // Load translations and update the page
338 | const pageName = getPageName();
339 | loadTranslations(pageName);
340 | }
341 | }
342 |
343 | // Load translations for the current page
344 | function loadTranslations(pageName) {
345 | try {
346 | // Get translations from embedded object instead of fetch
347 | const commonTranslations = TRANSLATIONS[currentLanguage]["common"];
348 | const pageTranslations = TRANSLATIONS[currentLanguage][pageName];
349 |
350 | // Cache the translations
351 | translationCache[`${currentLanguage}_common`] = commonTranslations;
352 | translationCache[`${currentLanguage}_${pageName}`] = pageTranslations;
353 |
354 | // Combine common and page translations
355 | const translations = {
356 | ...commonTranslations,
357 | ...pageTranslations
358 | };
359 |
360 | // Update all elements with data-i18n attribute
361 | updatePageTranslations(translations);
362 |
363 | } catch (error) {
364 | console.error('Error loading translations:', error);
365 | }
366 | }
367 |
368 | // Update all translatable elements on the page
369 | function updatePageTranslations(translations) {
370 | // Find all elements with data-i18n attribute
371 | const elements = document.querySelectorAll('[data-i18n]');
372 |
373 | elements.forEach(element => {
374 | const key = element.getAttribute('data-i18n');
375 |
376 | if (translations[key]) {
377 | // Handle different element types
378 | if (element.tagName === 'INPUT' && element.type === 'placeholder') {
379 | element.placeholder = translations[key];
380 | } else if (element.tagName === 'IMG') {
381 | element.alt = translations[key];
382 | } else {
383 | element.innerHTML = translations[key];
384 | }
385 | }
386 | });
387 |
388 | // Handle elements with data-i18n-attr (for translating attributes)
389 | const attrElements = document.querySelectorAll('[data-i18n-attr]');
390 | attrElements.forEach(element => {
391 | const attrSpec = element.getAttribute('data-i18n-attr');
392 | const [attrName, keyName] = attrSpec.split('=');
393 |
394 | if (attrName && keyName && translations[keyName]) {
395 | element.setAttribute(attrName, translations[keyName]);
396 | }
397 | });
398 |
399 | // Update the page title
400 | if (translations['page.title']) {
401 | document.title = translations['page.title'];
402 | }
403 | }
404 |
405 | // Get translations for the current language and page
406 | function getTranslations() {
407 | const pageName = getPageName();
408 | return {
409 | ...translationCache[`${currentLanguage}_common`] || {},
410 | ...translationCache[`${currentLanguage}_${pageName}`] || {}
411 | };
412 | }
413 |
414 | // Initialize when DOM is loaded
415 | document.addEventListener('DOMContentLoaded', initLocalization);
416 |
417 | // Export functions for use in other scripts
418 | window.localization = {
419 | changeLanguage,
420 | getCurrentLanguage: () => currentLanguage,
421 | getAvailableLanguages: () => LANGUAGES,
422 | getTranslations: getTranslations
423 | };
--------------------------------------------------------------------------------
/tutorials/whatsapp-tutorial.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | WhatsApp Video Call Tutorial - Teach your parents smartphone
8 |
9 |
225 |
226 |
227 |
228 |
229 |
Making a Video Call on WhatsApp
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 | Step 1: This is your WhatsApp chats list. All your conversations appear here. To make a
239 | video call, first tap on the contact you want to call. In this example, tap on "Random Aunty".
240 |
241 |
242 |
243 |
244 |
245 |
246 |
248 |
249 |
250 |
251 |
252 |
253 | Good job! Now you'll see the chat screen for this contact.
254 |
255 |
256 |
257 |
258 |
259 |
260 |
262 |
263 |
264 |
265 |
266 |
267 |
268 | Perfect! You've clicked the video call button. Your call is connecting.
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
👤
280 |
Random Aunty
281 |
Call connected
282 |
283 |
284 |
285 |
286 |
You
287 |
288 |
289 |
290 |
🔇
291 |
✕
293 |
🔄
294 |
295 |
296 |
297 |
298 | Well done! You've ended the call by pressing the red button.
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 | ✓
307 |
308 |
Call Completed!
309 |
You've successfully made a WhatsApp
310 | video call
311 |
313 |
314 |
315 |
316 |
317 |
318 | Congratulations! You've successfully learned how to make a video call
319 | on WhatsApp.
320 |