Kakashi75 commited on
Commit
a25ac93
·
1 Parent(s): 7ead16c

Modified and added automation

Browse files
.gitignore ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ env/
8
+ venv/
9
+ ENV/
10
+ build/
11
+ develop-eggs/
12
+ dist/
13
+ downloads/
14
+ eggs/
15
+ .eggs/
16
+ lib/
17
+ lib64/
18
+ parts/
19
+ sdist/
20
+ var/
21
+ wheels/
22
+ *.egg-info/
23
+ .installed.cfg
24
+ *.egg
25
+
26
+ # Google Credentials (IMPORTANT: Never commit these!)
27
+ credentials.json
28
+ config.json
29
+ token.json
30
+ *.json.backup
31
+
32
+ # Environment variables
33
+ .env
34
+
35
+ # IDE
36
+ .vscode/
37
+ .idea/
38
+ *.swp
39
+ *.swo
40
+ *~
41
+
42
+ # OS
43
+ .DS_Store
44
+ Thumbs.db
45
+
46
+ # Logs
47
+ *.log
README.md CHANGED
@@ -1,11 +1,270 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
- title: Telangana Dialect Map
3
- emoji: 🐠
4
- colorFrom: gray
5
- colorTo: purple
6
- sdk: static
7
- pinned: false
8
- license: agpl-3.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  ---
10
 
11
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
+ # Telugu Dialect Map
2
+
3
+ **Interactive web-based visualization of Telugu dialect words across Telangana and Andhra Pradesh districts.**
4
+
5
+ ## 🎯 Features
6
+
7
+ - **48 Districts**: 33 Telangana + 15 Andhra Pradesh districts
8
+ - **Dynamic Data Loading**: Automatically loads data from JSON sources
9
+ - **Interactive Map**: Click districts to explore local vocabulary, meanings, and sources
10
+ - **Rich Content**: 3000+ verified dialect terms from crowdsourced and JSONL data
11
+ - **Zero Build Required**: Pure static site with automatic data loading
12
+
13
+ ## 🚀 How to Run
14
+
15
+ ### **Complete Setup (First Time)**
16
+
17
+ ```bash
18
+ # 1. Navigate to project directory
19
+ cd /home/kashikuldeep/Desktop/swechaworkspace/dilacet-map/indian-dialects-maps
20
+
21
+ # 2. Activate virtual environment
22
+ source venv/bin/activate
23
+
24
+ # 3. Start automation (syncs Google Sheets every 5 minutes)
25
+ python scripts/automation_runner.py &
26
+
27
+ # 4. Start web server (in new terminal or background)
28
+ python -m http.server 8080 &
29
+
30
+ # 5. Open in browser
31
+ # Navigate to: http://localhost:8080/
32
+ ```
33
+
34
+ ### **Quick Run (After First Time)**
35
+
36
+ ```bash
37
+ # Activate virtual environment
38
+ source venv/bin/activate
39
+
40
+ # Start both services
41
+ python scripts/automation_runner.py &
42
+ python -m http.server 8080 &
43
+
44
+ # Open: http://localhost:8080/
45
+ ```
46
+
47
+ ### **Stop Services**
48
+
49
+ ```bash
50
+ # Press Ctrl+C in the terminals, or:
51
+ pkill -f automation_runner
52
+ pkill -f "http.server 8080"
53
+ ```
54
+
55
+ **Important:** Use `http://localhost:8080/` not `file://` URLs (browser security blocks JSON loading from file://)
56
+
57
  ---
58
+
59
+ ## 🎯 What You'll See
60
+
61
+ 1. **Automation Console**: Shows sync status every 5 minutes
62
+ 2. **Web Interface**: Interactive map with 48 districts (33 Telangana + 15 Andhra Pradesh)
63
+ 3. **Auto-Updates**: Edit Google Sheets → Changes appear within 5 minutes!
64
+
65
+ ## 🤖 Automated Data Updates
66
+
67
+ The project includes **automated synchronization** from Google Sheets:
68
+
69
+ - **File Watcher**: Automatically converts CSV → JSON when files change
70
+ - **Google Sheets Sync**: Downloads sheet data every 5 minutes
71
+ - **Zero Manual Work**: Update your Google Sheet and changes appear automatically!
72
+
73
+ ### Configuration
74
+
75
+ Your automation is already configured for:
76
+ - **Processed Dialects Sheet**: 901 rows
77
+ - **Digiwords Sheet**: 178 rows
78
+ - **Sync Interval**: Every 5 minutes
79
+
80
+ To modify settings, edit `config.json`:
81
+ ```json
82
+ {
83
+ "google_sheets": {
84
+ "enabled": true,
85
+ "sync_interval_minutes": 5,
86
+ "spreadsheets": [...]
87
+ }
88
+ }
89
+ ```
90
+
91
+ 📖 **[Full Automation Setup Guide →](AUTOMATION_SETUP.md)**
92
+
93
+ ## 📂 Project Structure
94
+
95
+ ```
96
+ indian-dialects-maps/
97
+ ├── index.html # Main visualization (open this via http server)
98
+ ├── data/
99
+ │ └── processed/
100
+ │ ├── processed_dialects.json # JSONL-processed dialect data
101
+ │ └── digiwords_grouped.json # Crowdsourced dialect data
102
+ ├── sheets_output/ # CSV files (auto-converted to JSON)
103
+ │ ├── processed_dialects.csv
104
+ │ └── digiwords_grouped.csv
105
+ ├── scripts/ # Automation scripts (NEW!)
106
+ │ ├── csv_to_json.py # CSV → JSON converter
107
+ │ ├── sheets_sync.py # Google Sheets downloader
108
+ │ ├── file_watcher.py # Auto-conversion on file changes
109
+ │ └── automation_runner.py # Main automation orchestrator
110
+ ├── config.json # Automation configuration
111
+ ├── requirements.txt # Python dependencies
112
+ ├── AUTOMATION_SETUP.md # Detailed setup guide
113
+ └── README.md
114
+ ```
115
+
116
+ ## 🔄 How It Works
117
+
118
+ ### Manual Mode (Original)
119
+ 1. **Load `index.html`**: Contains hardcoded data for 33 Telangana districts
120
+ 2. **Fetch `processed_dialects.json`**: Enhances/adds districts from JSONL data
121
+ 3. **Fetch `digiwords_grouped.json`**:
122
+ - Merges additional words into Telangana districts
123
+ - Automatically adds 15 Andhra Pradesh districts with coordinates
124
+ 4. **Render**: All districts appear on the map with merged data
125
+
126
+ ### Automated Mode (NEW!)
127
+ 1. **Google Sheets**: Update your dialect data in Google Sheets
128
+ 2. **Auto-Sync**: Script downloads sheets as CSV (every 5 min)
129
+ 3. **File Watcher**: Detects CSV changes
130
+ 4. **Auto-Convert**: CSV files → JSON format
131
+ 5. **Browser**: Refresh to see updates on the map!
132
+
133
+ **Flow:**
134
+ ```
135
+ Google Sheet → CSV (sheets_output/) → JSON (data/processed/) → Browser (index.html)
136
+ ↓ ↓ ↓
137
+ Manual Edit File Watcher Auto-Refresh
138
+ ```
139
+
140
+ **Smart Merging:**
141
+ - Existing districts → Appends new words
142
+ - New AP districts → Creates markers automatically
143
+ - Graceful fallback if JSON files are missing
144
+
145
+ ## 📊 Current Data Coverage
146
+
147
+ | State | Districts | Words | Sources |
148
+ |-------|-----------|-------|---------|
149
+ | **Telangana** | 33 | 2000+ | Hardcoded + JSONL + Digiwords |
150
+ | **Andhra Pradesh** | 15 | 1000+ | Digiwords (crowdsourced) |
151
+ | **Total** | **48** | **3000+** | Multiple sources |
152
+
153
+ ### Andhra Pradesh Districts:
154
+ Anantapur, Annamayya, Chittoor, East Godavari, Eluru, Kadapa, Kurnool, Nandyal, Ongole, Tirupati, Srikakulam, Visakhapatnam, Vizianagaram, West Godavari, Rayalaseema
155
+
156
+ ## 🎨 Adding New Data
157
+
158
+ ### Update Existing JSON Files
159
+
160
+ **Edit `data/processed/digiwords_grouped.json`:**
161
+ ```json
162
+ {
163
+ "Telangana": {
164
+ "YourDistrict": [
165
+ {"t": "తెలుగుపదం", "m": "meaning", "s": "Crowd"}
166
+ ]
167
+ },
168
+ "Andhra Pradesh": {
169
+ "YourDistrict": [
170
+ {"t": "తెలుగుపదం", "m": "meaning", "s": "Crowd"}
171
+ ]
172
+ }
173
+ }
174
+ ```
175
+
176
+ **Edit `data/processed/processed_dialects.json`:**
177
+ ```json
178
+ [
179
+ {
180
+ "name": "YourDistrict",
181
+ "region": "Region Name",
182
+ "words": [
183
+ {"t": "తెలుగుపదం", "m": "meaning", "s": "Source"}
184
+ ]
185
+ }
186
+ ]
187
+ ```
188
+
189
+ Then refresh the browser!
190
+
191
+ ### Add New AP District Coordinates
192
+
193
+ If adding a new Andhra Pradesh district, update `index.html`:
194
+
195
+ ```javascript
196
+ const AP_COORDINATES = {
197
+ "YourDistrict": {
198
+ lat: 00.0000,
199
+ lng: 00.0000,
200
+ region: "Region Name",
201
+ history: "Historical context..."
202
+ },
203
+ // ...
204
+ };
205
+ ```
206
+
207
+ ## 🛠️ Technical Stack
208
+
209
+ - **Frontend**: HTML5, Vanilla JavaScript, Leaflet.js
210
+ - **Data Format**: JSON (pre-processed)
211
+ - **Map Library**: Leaflet with CartoDB basemap
212
+ - **Server**: Any HTTP server (Python, Node, etc.)
213
+ - **No Build Step**: Pure static site
214
+
215
+ ## 🐛 Troubleshooting
216
+
217
+ ### Data Not Loading?
218
+
219
+ ✅ **Check #1:** Are you using `http://localhost:8000/`?
220
+ - ❌ Don't use `file://` URLs
221
+ - ✅ Use an HTTP server
222
+
223
+ ✅ **Check #2:** Is the server running?
224
+ ```bash
225
+ python3 -m http.server 8000
226
+ ```
227
+
228
+ ✅ **Check #3:** Hard refresh the page
229
+ - Press `Ctrl + Shift + R` (Windows/Linux)
230
+ - Press `Cmd + Shift + R` (Mac)
231
+
232
+ ✅ **Check #4:** Check browser console (F12)
233
+ - Look for fetch errors
234
+ - Should see loading messages
235
+
236
+ ### Server Won't Start?
237
+
238
+ ```bash
239
+ # Kill process on port 8000
240
+ lsof -ti:8000 | xargs kill -9
241
+
242
+ # Start fresh
243
+ python3 -m http.server 8000
244
+ ```
245
+
246
+ ### Still Not Working?
247
+
248
+ 1. Open browser console (F12)
249
+ 2. Look for error messages
250
+ 3. Check that JSON files exist in `data/processed/`
251
+ 4. Verify you're on the correct URL (`localhost:8000` not `127.0.0.1` if redirects are weird)
252
+
253
+ ## 📝 Technical Notes
254
+
255
+ - Telugu text uses web fonts (Poppins, Ramabhadra)
256
+ - Console shows detailed merge logs for debugging
257
+ - Map centered at (16.5°N, 79.8°E) to show both states
258
+ - Zoom level: 6.5 (fits both Telangana and AP)
259
+ - Data loads asynchronously with `async/await`
260
+
261
+ ## 🤝 Contributing
262
+
263
+ To add more dialect data:
264
+ 1. Edit the JSON files in `data/processed/`
265
+ 2. Refresh `http://localhost:8000/`
266
+ 3. That's it!
267
+
268
  ---
269
 
270
+ **Made with ❤️ for preserving Telugu linguistic heritage across Telangana and Andhra Pradesh**
data/processed/digiwords_grouped.json ADDED
@@ -0,0 +1,962 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Telangana": {
3
+ "Adilabad": [
4
+ {
5
+ "t": "చోలోట్",
6
+ "m": "మంచి (Good)",
7
+ "s": "Crowd"
8
+ },
9
+ {
10
+ "t": "వంచెడ్ చిబడ్",
11
+ "m": "అంటు ముట్టుకోడం",
12
+ "s": "Crowd"
13
+ },
14
+ {
15
+ "t": "వడోగు",
16
+ "m": "దూడ (Calf)",
17
+ "s": "Crowd"
18
+ },
19
+ {
20
+ "t": "ముచిలి పడన్",
21
+ "m": "ఎర్ర తుమ్మెద",
22
+ "s": "Crowd"
23
+ },
24
+ {
25
+ "t": "సర్కార్",
26
+ "m": "నాశనం",
27
+ "s": "Crowd"
28
+ },
29
+ {
30
+ "t": "వజీర్",
31
+ "m": "ముసలి",
32
+ "s": "Crowd"
33
+ },
34
+ {
35
+ "t": "ఖైని",
36
+ "m": "వదిన",
37
+ "s": "Crowd"
38
+ },
39
+ {
40
+ "t": "సూన్",
41
+ "m": "కోడలు",
42
+ "s": "Crowd"
43
+ },
44
+ {
45
+ "t": "Poral batal",
46
+ "m": "Temple term (Keslapur)",
47
+ "s": "Crowd"
48
+ }
49
+ ],
50
+ "Gadwal": [
51
+ {
52
+ "t": "ఓల్లి",
53
+ "m": "No",
54
+ "s": "Crowd"
55
+ },
56
+ {
57
+ "t": "కూడు తింటవా",
58
+ "m": "తిన్నారా",
59
+ "s": "Crowd"
60
+ },
61
+ {
62
+ "t": "తువ్వ",
63
+ "m": "ఎర్ర పొలం",
64
+ "s": "Crowd"
65
+ },
66
+ {
67
+ "t": "పురకోస",
68
+ "m": "జూట్ దార",
69
+ "s": "Crowd"
70
+ },
71
+ {
72
+ "t": "జుముజలమ్మ",
73
+ "m": "దేవత",
74
+ "s": "Crowd"
75
+ },
76
+ {
77
+ "t": "తలుగు ఎల్లమ్మ",
78
+ "m": "దేవత",
79
+ "s": "Crowd"
80
+ },
81
+ {
82
+ "t": "తెల్వది",
83
+ "m": "Don't know",
84
+ "s": "Crowd"
85
+ },
86
+ {
87
+ "t": "మడసంగ",
88
+ "m": "నెమ్మదిగా/జాగ్రత్తగా",
89
+ "s": "Crowd"
90
+ },
91
+ {
92
+ "t": "రప్పున",
93
+ "m": "జల్ది",
94
+ "s": "Crowd"
95
+ },
96
+ {
97
+ "t": "మడసంగ",
98
+ "m": "Careful",
99
+ "s": "Crowd"
100
+ }
101
+ ],
102
+ "Hyderabad": [
103
+ {
104
+ "t": "కిటికీ",
105
+ "m": "Window",
106
+ "s": "Crowd"
107
+ },
108
+ {
109
+ "t": "అంగీ",
110
+ "m": "Shirt",
111
+ "s": "Crowd"
112
+ },
113
+ {
114
+ "t": "కుక్క",
115
+ "m": "Dog",
116
+ "s": "Crowd"
117
+ },
118
+ {
119
+ "t": "కుర్చీ",
120
+ "m": "Chair",
121
+ "s": "Crowd"
122
+ },
123
+ {
124
+ "t": "Amma buvva pettava",
125
+ "m": "Mother feed me",
126
+ "s": "Crowd"
127
+ },
128
+ {
129
+ "t": "Chaderghat",
130
+ "m": "Location",
131
+ "s": "Crowd"
132
+ },
133
+ {
134
+ "t": "తొవ్వ దారి",
135
+ "m": "Way/Path",
136
+ "s": "Crowd"
137
+ },
138
+ {
139
+ "t": "పాతాళగరిసె",
140
+ "m": "Tool to remove bucket",
141
+ "s": "Crowd"
142
+ },
143
+ {
144
+ "t": "అంబటాలు",
145
+ "m": "Afternoon time",
146
+ "s": "Crowd"
147
+ },
148
+ {
149
+ "t": "ఇన్సురాయి",
150
+ "m": "Stone tool",
151
+ "s": "Crowd"
152
+ },
153
+ {
154
+ "t": "బుక్కెట్",
155
+ "m": "Tool for well",
156
+ "s": "Crowd"
157
+ }
158
+ ],
159
+ "Jangaon": [
160
+ {
161
+ "t": "ఏమైంది",
162
+ "m": "What happened",
163
+ "s": "Crowd"
164
+ }
165
+ ],
166
+ "Karimnagar": [
167
+ {
168
+ "t": "బూరెలు",
169
+ "m": "భక్ష్యాలు",
170
+ "s": "Crowd"
171
+ },
172
+ {
173
+ "t": "అచ్చినం",
174
+ "m": "వచ్చాము",
175
+ "s": "Crowd"
176
+ },
177
+ {
178
+ "t": "పాయినం",
179
+ "m": "వెళ్ళాము",
180
+ "s": "Crowd"
181
+ },
182
+ {
183
+ "t": "సవాలు",
184
+ "m": "Question/Challenge",
185
+ "s": "Crowd"
186
+ },
187
+ {
188
+ "t": "గటక",
189
+ "m": "Food item",
190
+ "s": "Crowd"
191
+ },
192
+ {
193
+ "t": "వస్తున్నావ",
194
+ "m": "వస్తున్నావు",
195
+ "s": "Crowd"
196
+ },
197
+ {
198
+ "t": "ఊశము",
199
+ "m": "బద్ధకం/అలసత్వం",
200
+ "s": "Crowd"
201
+ },
202
+ {
203
+ "t": "వందంగా ఉంది",
204
+ "m": "బాగా",
205
+ "s": "Crowd"
206
+ },
207
+ {
208
+ "t": "రువిడ్లు",
209
+ "m": "Shelf",
210
+ "s": "Crowd"
211
+ },
212
+ {
213
+ "t": "కార్యపాలు",
214
+ "m": "వస్తున్నం/పోతున్నాం",
215
+ "s": "Crowd"
216
+ },
217
+ {
218
+ "t": "బావి",
219
+ "m": "నూతి",
220
+ "s": "Crowd"
221
+ },
222
+ {
223
+ "t": "గంప",
224
+ "m": "గుల్ల",
225
+ "s": "Crowd"
226
+ },
227
+ {
228
+ "t": "బం��ి",
229
+ "m": "Ball",
230
+ "s": "Crowd"
231
+ }
232
+ ],
233
+ "Mahabubnagar": [
234
+ {
235
+ "t": "వీధి",
236
+ "m": "Street",
237
+ "s": "Crowd"
238
+ },
239
+ {
240
+ "t": "జల్ది",
241
+ "m": "తొందరగా",
242
+ "s": "Crowd"
243
+ },
244
+ {
245
+ "t": "జింగిడి",
246
+ "m": "బర్రెల గుంపు",
247
+ "s": "Crowd"
248
+ },
249
+ {
250
+ "t": "బాగమ్",
251
+ "m": "Exhibition",
252
+ "s": "Crowd"
253
+ },
254
+ {
255
+ "t": "చలక",
256
+ "m": "Field",
257
+ "s": "Crowd"
258
+ },
259
+ {
260
+ "t": "ఈల పేట",
261
+ "m": "కత్తి పేట",
262
+ "s": "Crowd"
263
+ }
264
+ ],
265
+ "Mahabubabad": [
266
+ {
267
+ "t": "బొచ్చెడు",
268
+ "m": "చాలా (A lot)",
269
+ "s": "Crowd"
270
+ },
271
+ {
272
+ "t": "ఏ మయింది అన్నా",
273
+ "m": "What happened",
274
+ "s": "Crowd"
275
+ }
276
+ ],
277
+ "Medak": [
278
+ {
279
+ "t": "కీసా",
280
+ "m": "జేబు",
281
+ "s": "Crowd"
282
+ },
283
+ {
284
+ "t": "పైను",
285
+ "m": "ఆరు (Six)",
286
+ "s": "Crowd"
287
+ }
288
+ ],
289
+ "Nagar Kurnool": [
290
+ {
291
+ "t": "అంబటాలు",
292
+ "m": "Morning meal time",
293
+ "s": "Crowd"
294
+ },
295
+ {
296
+ "t": "మంకర",
297
+ "m": "Winter cold",
298
+ "s": "Crowd"
299
+ },
300
+ {
301
+ "t": "లాడు",
302
+ "m": "తల్లి కూతురు",
303
+ "s": "Crowd"
304
+ },
305
+ {
306
+ "t": "గెనిమ",
307
+ "m": "పొలం గట్టు",
308
+ "s": "Crowd"
309
+ },
310
+ {
311
+ "t": "కోంత లోలు",
312
+ "m": "Old name for Nagar Kurnool",
313
+ "s": "Crowd"
314
+ }
315
+ ],
316
+ "Nalgonda": [
317
+ {
318
+ "t": "Dupa aithundhi",
319
+ "m": "దాహం వేస్తుంది",
320
+ "s": "Crowd"
321
+ },
322
+ {
323
+ "t": "సేరు",
324
+ "m": "1kg measuring device",
325
+ "s": "Crowd"
326
+ },
327
+ {
328
+ "t": "Kurdedu Biyam",
329
+ "m": "Amount of rice",
330
+ "s": "Crowd"
331
+ },
332
+ {
333
+ "t": "Anglam dundu",
334
+ "m": "అగ్గి పెట్టె",
335
+ "s": "Crowd"
336
+ },
337
+ {
338
+ "t": "సది",
339
+ "m": "Take the box",
340
+ "s": "Crowd"
341
+ },
342
+ {
343
+ "t": "తట్ట",
344
+ "m": "పళ్ళెం",
345
+ "s": "Crowd"
346
+ },
347
+ {
348
+ "t": "కోవెల",
349
+ "m": "గుడి",
350
+ "s": "Crowd"
351
+ },
352
+ {
353
+ "t": "ఊసలు",
354
+ "m": "Weaving technique",
355
+ "s": "Crowd"
356
+ },
357
+ {
358
+ "t": "బువ్వ",
359
+ "m": "Cooked rice",
360
+ "s": "Crowd"
361
+ },
362
+ {
363
+ "t": "తవాచీ",
364
+ "m": "Shelf with doors",
365
+ "s": "Crowd"
366
+ },
367
+ {
368
+ "t": "తపుకు",
369
+ "m": "Plate on vessel",
370
+ "s": "Crowd"
371
+ },
372
+ {
373
+ "t": "లడ్లు",
374
+ "m": "అరిసెలు",
375
+ "s": "Crowd"
376
+ },
377
+ {
378
+ "t": "దారి",
379
+ "m": "బాట",
380
+ "s": "Crowd"
381
+ }
382
+ ],
383
+ "Narayanpet": [
384
+ {
385
+ "t": "బుబ్బి",
386
+ "m": "అమ్మ",
387
+ "s": "Crowd"
388
+ },
389
+ {
390
+ "t": "పడం",
391
+ "m": "మట్టి",
392
+ "s": "Crowd"
393
+ },
394
+ {
395
+ "t": "చెముక్కలు",
396
+ "m": "మోకాళ్ళు",
397
+ "s": "Crowd"
398
+ },
399
+ {
400
+ "t": "మొర",
401
+ "m": "మంచం",
402
+ "s": "Crowd"
403
+ },
404
+ {
405
+ "t": "అబుత",
406
+ "m": "జుట్టు",
407
+ "s": "Crowd"
408
+ },
409
+ {
410
+ "t": "జేజి",
411
+ "m": "Fat",
412
+ "s": "Crowd"
413
+ },
414
+ {
415
+ "t": "అంబలి",
416
+ "m": "జావ",
417
+ "s": "Crowd"
418
+ }
419
+ ],
420
+ "Nizamabad": [
421
+ {
422
+ "t": "పంపేవుడు",
423
+ "m": "పంపించడం",
424
+ "s": "Crowd"
425
+ },
426
+ {
427
+ "t": "Pillodu",
428
+ "m": "Bindu",
429
+ "s": "Crowd"
430
+ },
431
+ {
432
+ "t": "వచ్చిండు",
433
+ "m": "అచ్చిండు",
434
+ "s": "Crowd"
435
+ }
436
+ ],
437
+ "Peddapally": [
438
+ {
439
+ "t": "గుమ్ము",
440
+ "m": "Storage",
441
+ "s": "Crowd"
442
+ },
443
+ {
444
+ "t": "గట్టు",
445
+ "m": "దారి",
446
+ "s": "Crowd"
447
+ }
448
+ ],
449
+ "Rangareddy": [
450
+ {
451
+ "t": "వీరునో",
452
+ "m": "తెలుగు",
453
+ "s": "Crowd"
454
+ },
455
+ {
456
+ "t": "తొక్కుడు",
457
+ "m": "మంచం",
458
+ "s": "Crowd"
459
+ },
460
+ {
461
+ "t": "మూర",
462
+ "m": "ముంగిలి",
463
+ "s": "Crowd"
464
+ },
465
+ {
466
+ "t": "కారం",
467
+ "m": "పచ్చడి",
468
+ "s": "Crowd"
469
+ },
470
+ {
471
+ "t": "ఈ గడ",
472
+ "m": "కడ",
473
+ "s": "Crowd"
474
+ }
475
+ ],
476
+ "Siddipet": [
477
+ {
478
+ "t": "అంగీ",
479
+ "m": "Shirt",
480
+ "s": "Crowd"
481
+ },
482
+ {
483
+ "t": "పొయ్యిర్రు",
484
+ "m": "వెళ్ళారు",
485
+ "s": "Crowd"
486
+ },
487
+ {
488
+ "t": "మెగులుతుంది",
489
+ "m": "వర్షం వచ్చి ఆగిన",
490
+ "s": "Crowd"
491
+ },
492
+ {
493
+ "t": "అలుకురు",
494
+ "m": "Pre cultivation",
495
+ "s": "Crowd"
496
+ },
497
+ {
498
+ "t": "పయిలం",
499
+ "m": "జాగ్రత్త",
500
+ "s": "Crowd"
501
+ },
502
+ {
503
+ "t": "తప్పెలు",
504
+ "m": "Rice plate",
505
+ "s": "Crowd"
506
+ },
507
+ {
508
+ "t": "పందిట్లు",
509
+ "m": "పందిరి",
510
+ "s": "Crowd"
511
+ },
512
+ {
513
+ "t": "రాకొచ్చింది",
514
+ "m": "రాదు",
515
+ "s": "Crowd"
516
+ },
517
+ {
518
+ "t": "పోకొచ్చింది",
519
+ "m": "పోదు",
520
+ "s": "Crowd"
521
+ },
522
+ {
523
+ "t": "కుకో",
524
+ "m": "కూర్చో",
525
+ "s": "Crowd"
526
+ },
527
+ {
528
+ "t": "ఏడారు",
529
+ "m": "Afternoon time",
530
+ "s": "Crowd"
531
+ }
532
+ ],
533
+ "Wanaparthy": [
534
+ {
535
+ "t": "చెప్పలకాయలు",
536
+ "m": "గొంకరకాయలు",
537
+ "s": "Crowd"
538
+ },
539
+ {
540
+ "t": "మలంచా",
541
+ "m": "చెంబు",
542
+ "s": "Crowd"
543
+ },
544
+ {
545
+ "t": "సొరకాయ",
546
+ "m": "ఆనకాయ",
547
+ "s": "Crowd"
548
+ },
549
+ {
550
+ "t": "పాశాల",
551
+ "m": "Clothes",
552
+ "s": "Crowd"
553
+ },
554
+ {
555
+ "t": "మట్టుగుండు",
556
+ "m": "Keep calm",
557
+ "s": "Crowd"
558
+ },
559
+ {
560
+ "t": "అంబరుంది",
561
+ "m": "Excellent",
562
+ "s": "Crowd"
563
+ }
564
+ ],
565
+ "Warangal": [
566
+ {
567
+ "t": "చేను",
568
+ "m": "Crop/చలక",
569
+ "s": "Crowd"
570
+ },
571
+ {
572
+ "t": "పొయ్యం రారా",
573
+ "m": "ఇన్నానిల్లు",
574
+ "s": "Crowd"
575
+ },
576
+ {
577
+ "t": "అసుంట",
578
+ "m": "అటు వైపు",
579
+ "s": "Crowd"
580
+ },
581
+ {
582
+ "t": "ఇసుంట",
583
+ "m": "ఇటు వైపు",
584
+ "s": "Crowd"
585
+ },
586
+ {
587
+ "t": "చద్దెర",
588
+ "m": "Bed sheet",
589
+ "s": "Crowd"
590
+ }
591
+ ]
592
+ },
593
+ "Andhra Pradesh": {
594
+ "Anantapur": [
595
+ {
596
+ "t": "దిండు",
597
+ "m": "Pillows",
598
+ "s": "Crowd"
599
+ }
600
+ ],
601
+ "Annamayya": [
602
+ {
603
+ "t": "ఆ తుప్పాస్",
604
+ "m": "Nonsense/Useless",
605
+ "s": "Crowd"
606
+ }
607
+ ],
608
+ "Chittoor": [
609
+ {
610
+ "t": "ముడ్దులు",
611
+ "m": "అంగడి",
612
+ "s": "Crowd"
613
+ },
614
+ {
615
+ "t": "సెమిరేసినావ",
616
+ "m": "Prepared",
617
+ "s": "Crowd"
618
+ },
619
+ {
620
+ "t": "వంకాయ పులగూర్",
621
+ "m": "కూర",
622
+ "s": "Crowd"
623
+ },
624
+ {
625
+ "t": "ఈరి మోది",
626
+ "m": "పచ్చడి",
627
+ "s": "Crowd"
628
+ },
629
+ {
630
+ "t": "అబ్బ",
631
+ "m": "Grandfather",
632
+ "s": "Crowd"
633
+ },
634
+ {
635
+ "t": "జెడి",
636
+ "m": "Hair knot",
637
+ "s": "Crowd"
638
+ }
639
+ ],
640
+ "East Godavari": [
641
+ {
642
+ "t": "దుకాణం",
643
+ "m": "కొట్టు",
644
+ "s": "Crowd"
645
+ },
646
+ {
647
+ "t": "పైరు",
648
+ "m": "బంగాళదుంప",
649
+ "s": "Crowd"
650
+ },
651
+ {
652
+ "t": "బువ్వ",
653
+ "m": "Food",
654
+ "s": "Crowd"
655
+ },
656
+ {
657
+ "t": "గుడి",
658
+ "m": "దేవాలయం",
659
+ "s": "Crowd"
660
+ },
661
+ {
662
+ "t": "సామానం",
663
+ "m": "ఆలస్యం చేయడం",
664
+ "s": "Crowd"
665
+ },
666
+ {
667
+ "t": "బేగ రా",
668
+ "m": "తొందరగా రా",
669
+ "s": "Crowd"
670
+ }
671
+ ],
672
+ "Eluru": [
673
+ {
674
+ "t": "శనగపప్పు",
675
+ "m": "వేరుశనగ",
676
+ "s": "Crowd"
677
+ },
678
+ {
679
+ "t": "చాలా బాగుంది",
680
+ "m": "Very good",
681
+ "s": "Crowd"
682
+ }
683
+ ],
684
+ "Kadapa": [
685
+ {
686
+ "t": "కంత",
687
+ "m": "రంధ్రం (Hole)",
688
+ "s": "Crowd"
689
+ },
690
+ {
691
+ "t": "బాగా ఎక్కువగా",
692
+ "m": "Exceedingly",
693
+ "s": "Crowd"
694
+ },
695
+ {
696
+ "t": "చాపు మాటలు",
697
+ "m": "పెద్ద మాటలు",
698
+ "s": "Crowd"
699
+ },
700
+ {
701
+ "t": "బొరుగులు",
702
+ "m": "మరమరాలు",
703
+ "s": "Crowd"
704
+ },
705
+ {
706
+ "t": "రామాడం",
707
+ "m": "మెత్తగా చేయడం",
708
+ "s": "Crowd"
709
+ },
710
+ {
711
+ "t": "ఎనుము",
712
+ "m": "బర్రె",
713
+ "s": "Crowd"
714
+ },
715
+ {
716
+ "t": "ముక్కొల్",
717
+ "m": "3 వాడిముళ్ళు",
718
+ "s": "Crowd"
719
+ }
720
+ ],
721
+ "Kurnool": [
722
+ {
723
+ "t": "బుడ్డల నూనె",
724
+ "m": "పల్లి oil (Peanut oil)",
725
+ "s": "Crowd"
726
+ }
727
+ ],
728
+ "Nandyal": [
729
+ {
730
+ "t": "తంగాది",
731
+ "m": "కొట్టుదు ఇచ్చింది మధ్యన",
732
+ "s": "Crowd"
733
+ },
734
+ {
735
+ "t": "గుడి",
736
+ "m": "దేవాలయము",
737
+ "s": "Crowd"
738
+ },
739
+ {
740
+ "t": "హితాలు",
741
+ "m": "బువ్వ తిన్నారా",
742
+ "s": "Crowd"
743
+ },
744
+ {
745
+ "t": "తద్దినం",
746
+ "m": "పితృ దేవతల కార్యం",
747
+ "s": "Crowd"
748
+ },
749
+ {
750
+ "t": "తువాయి",
751
+ "m": "ఆవు దూడ (Calf)",
752
+ "s": "Crowd"
753
+ },
754
+ {
755
+ "t": "పురుకోస",
756
+ "m": "Jute thread twisted",
757
+ "s": "Crowd"
758
+ }
759
+ ],
760
+ "Ongole": [
761
+ {
762
+ "t": "బయట వెళ్ళాడు",
763
+ "m": "బయటకు వెళ్ళాడు",
764
+ "s": "Crowd"
765
+ }
766
+ ],
767
+ "P.R. నియోజకవర్గం": [
768
+ {
769
+ "t": "ఎర్రగడ్డ",
770
+ "m": "Onion",
771
+ "s": "Crowd"
772
+ },
773
+ {
774
+ "t": "తెల్ల గడ్డ",
775
+ "m": "వెల్లుల్లి",
776
+ "s": "Crowd"
777
+ },
778
+ {
779
+ "t": "ఉల్లగడ్డ",
780
+ "m": "Potato",
781
+ "s": "Crowd"
782
+ },
783
+ {
784
+ "t": "ఖిన్నారా",
785
+ "m": "అద్దెకు రా",
786
+ "s": "Crowd"
787
+ },
788
+ {
789
+ "t": "ముడక",
790
+ "m": "నాగలి",
791
+ "s": "Crowd"
792
+ },
793
+ {
794
+ "t": "కొక",
795
+ "m": "చీర",
796
+ "s": "Crowd"
797
+ },
798
+ {
799
+ "t": "రైన",
800
+ "m": "జాకెట్",
801
+ "s": "Crowd"
802
+ },
803
+ {
804
+ "t": "కడ్డీలు",
805
+ "m": "అగరబత్తిలు",
806
+ "s": "Crowd"
807
+ },
808
+ {
809
+ "t": "పెద్ద నాన్న",
810
+ "m": "నాన్న అన్న",
811
+ "s": "Crowd"
812
+ },
813
+ {
814
+ "t": "చిన్న నాన్న",
815
+ "m": "నాన్న తమ్ముడు",
816
+ "s": "Crowd"
817
+ },
818
+ {
819
+ "t": "పెద్దమ్మ",
820
+ "m": "నాన్న అన్న భార్య",
821
+ "s": "Crowd"
822
+ },
823
+ {
824
+ "t": "చిన్నమ్మ",
825
+ "m": "నాన్న తమ్ముడు భార్య",
826
+ "s": "Crowd"
827
+ },
828
+ {
829
+ "t": "పొద్దు పొయ్యింది",
830
+ "m": "సాయంత్రం సమయం",
831
+ "s": "Crowd"
832
+ }
833
+ ],
834
+ "Rayalaseema": [
835
+ {
836
+ "t": "లోపల",
837
+ "m": "Inside",
838
+ "s": "Crowd"
839
+ },
840
+ {
841
+ "t": "బొగాలు",
842
+ "m": "Keys",
843
+ "s": "Crowd"
844
+ }
845
+ ],
846
+ "Srikakulam": [
847
+ {
848
+ "t": "డొంక",
849
+ "m": "తలుపు (Door)",
850
+ "s": "Crowd"
851
+ },
852
+ {
853
+ "t": "కుంక",
854
+ "m": "Pillodu",
855
+ "s": "Crowd"
856
+ },
857
+ {
858
+ "t": "ఖాగి",
859
+ "m": "వేగంగా",
860
+ "s": "Crowd"
861
+ },
862
+ {
863
+ "t": "బాతె",
864
+ "m": "చావు",
865
+ "s": "Crowd"
866
+ },
867
+ {
868
+ "t": "అమ్మ",
869
+ "m": "Mother",
870
+ "s": "Crowd"
871
+ },
872
+ {
873
+ "t": "తెల్లారితే",
874
+ "m": "వేకువన",
875
+ "s": "Crowd"
876
+ }
877
+ ],
878
+ "Tirupati": [
879
+ {
880
+ "t": "ఊరాల్",
881
+ "m": "Nonsense",
882
+ "s": "Crowd"
883
+ }
884
+ ],
885
+ "Vizianagaram": [
886
+ {
887
+ "t": "ఉకుజురు",
888
+ "m": "Egg Burji",
889
+ "s": "Crowd"
890
+ },
891
+ {
892
+ "t": "వర్ర",
893
+ "m": "కారం",
894
+ "s": "Crowd"
895
+ },
896
+ {
897
+ "t": "బేపి",
898
+ "m": "కుక్క",
899
+ "s": "Crowd"
900
+ },
901
+ {
902
+ "t": "పైనా",
903
+ "m": "పైన",
904
+ "s": "Crowd"
905
+ },
906
+ {
907
+ "t": "దొడ్డ",
908
+ "m": "పెద్ద అమ్మ",
909
+ "s": "Crowd"
910
+ },
911
+ {
912
+ "t": "జిజ బేగరా",
913
+ "m": "తొందరగా రా",
914
+ "s": "Crowd"
915
+ },
916
+ {
917
+ "t": "బంగాళదుంప",
918
+ "m": "ఆలుగడ్డ",
919
+ "s": "Crowd"
920
+ },
921
+ {
922
+ "t": "ఉల్లిపాయ",
923
+ "m": "ఎర్రగడ్డ",
924
+ "s": "Crowd"
925
+ },
926
+ {
927
+ "t": "అప్ప",
928
+ "m": "అక్క",
929
+ "s": "Crowd"
930
+ },
931
+ {
932
+ "t": "గుంత",
933
+ "m": "రంధ్రం",
934
+ "s": "Crowd"
935
+ },
936
+ {
937
+ "t": "గెడ/బర్రె",
938
+ "m": "Buffalo",
939
+ "s": "Crowd"
940
+ },
941
+ {
942
+ "t": "గడ్డి",
943
+ "m": "చిన్న సెలయేరు",
944
+ "s": "Crowd"
945
+ }
946
+ ],
947
+ "West Godavari": [
948
+ {
949
+ "t": "రాతు తడి",
950
+ "m": "Irrigation term",
951
+ "s": "Crowd"
952
+ }
953
+ ],
954
+ "Guntur": [
955
+ {
956
+ "t": "నగబు ",
957
+ "m": "An ancient word for snake",
958
+ "s": "Crowd"
959
+ }
960
+ ]
961
+ }
962
+ }
data/processed/processed_dialects.json ADDED
The diff for this file is too large to render. See raw diff
 
index.html CHANGED
@@ -4,7 +4,7 @@
4
  <head>
5
  <meta charset="UTF-8">
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <title>Telugu States Digital Dialect Map</title>
8
 
9
  <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
10
  integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin="" />
@@ -122,19 +122,6 @@
122
  font-size: 0.95rem;
123
  }
124
 
125
- /* Hyperlink Styles */
126
- .source-link {
127
- color: #3498db;
128
- text-decoration: none;
129
- font-size: 0.75rem;
130
- border-bottom: 1px dotted #3498db;
131
- }
132
-
133
- .source-link:hover {
134
- color: #2980b9;
135
- border-bottom: 1px solid #2980b9;
136
- }
137
-
138
  #map {
139
  flex-grow: 1;
140
  height: 100%;
@@ -164,8 +151,8 @@
164
 
165
  <div id="sidebar">
166
  <div class="header">
167
- <h1>Telugu States Dialect Map</h1>
168
- <p>Verified Data • Telangana & Andhra Pradesh</p>
169
  </div>
170
  <div id="info-panel">
171
  <div style="text-align: center; color: #888; margin-top: 60px;">
@@ -181,14 +168,31 @@
181
  integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script>
182
 
183
  <script>
184
- // --- 1. THE DATA ---
185
-
186
- const Telangana_Data = [
187
  // === NORTHERN TELANGANA ===
188
  {
189
  name: "Adilabad", lat: 19.6641, lng: 78.5320, region: "Northern Forest",
190
  history: "Heavily influenced by Gondi tribal dialects and Marathi due to the Maharashtra border.",
191
  words: [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  { t: "కోయంగ్", m: "Dialect/Language", s: "Gondi" }, { t: "పైలం", m: "Careful", s: "Mandalikalu" },
193
  { t: "ఆడ", m: "There", s: "General" }, { t: "కాకా", m: "Uncle", s: "Marathi Infl." },
194
  { t: "పటేల్", m: "Village Head", s: "Tribal" }, { t: "గూడ", m: "Hamlet", s: "Rural" },
@@ -234,6 +238,12 @@
234
  name: "Nizamabad", lat: 18.6725, lng: 78.0941, region: "Indur Agrarian",
235
  history: "Rich agricultural zone (Turmeric). Strong Dakhni Urdu influence from the Nizam era.",
236
  words: [
 
 
 
 
 
 
237
  { t: "పసుపు", m: "Turmeric", s: "Agri" }, { t: "ఐగలు", m: "Priest", s: "Mandalikalu" },
238
  { t: "హామీ", m: "Assurance", s: "Urdu Infl." }, { t: "జీరా", m: "Boundary", s: "Agri" },
239
  { t: "పుంటికూర", m: "Gongura", s: "Food" }, { t: "అంగడి", m: "Shop", s: "Rural" },
@@ -257,6 +267,32 @@
257
  name: "Karimnagar", lat: 18.4386, lng: 79.1288, region: "Cultural Core",
258
  history: "Considered the standard for 'Telangana Slang' in media. Sharp, distinct pronunciation.",
259
  words: [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
260
  { t: "తోపు", m: "Great/Top", s: "Slang" }, { t: "కేక", m: "Super", s: "Slang" },
261
  { t: "లొల్లి", m: "Fight/Noise", s: "General" }, { t: "శాన", m: "Very", s: "Mandalikalu" },
262
  { t: "పైసల్", m: "Money", s: "General" }, { t: "గత్తర", m: "Mess", s: "Slang" },
@@ -279,6 +315,10 @@
279
  name: "Peddapalli", lat: 18.6146, lng: 79.3705, region: "Industrial Hub",
280
  history: "Home to NTPC and Coal mines. Vocabulary is a mix of rural and industrial English loan words.",
281
  words: [
 
 
 
 
282
  { t: "బొగ్గు", m: "Coal", s: "Mining" }, { t: "కరెంట్", m: "Power", s: "Utility" },
283
  { t: "క్వార్టర్", m: "Housing", s: "Industry" }, { t: "షిఫ్ట్", m: "Work Shift", s: "Labor" },
284
  { t: "గేట్", m: "Entrance", s: "General" }, { t: "పోరడు", m: "Boy", s: "General" },
@@ -302,6 +342,16 @@
302
  name: "Warangal", lat: 17.9689, lng: 79.5941, region: "Kakatiya Rural",
303
  history: "Historic Orugallu. Retains classical Telugu terms mixed with rural agricultural slang.",
304
  words: [
 
 
 
 
 
 
 
 
 
 
305
  { t: "చెల్క", m: "Field", s: "Agri" }, { t: "గ���్డపార", m: "Crowbar", s: "Tools" },
306
  { t: "నాగలి", m: "Plough", s: "Agri" }, { t: "ఎడ్లు", m: "Bulls", s: "Agri" },
307
  { t: "పంట", m: "Crop", s: "Agri" }, { t: "ఎరువ", m: "Fertilizer", s: "Agri" },
@@ -324,6 +374,8 @@
324
  name: "Jangaon", lat: 17.7226, lng: 79.1685, region: "Central Junction",
325
  history: "A crossroads district. Famous for Jatharas and rural festivals.",
326
  words: [
 
 
327
  { t: "గుట్ట", m: "Hillock", s: "Geo" }, { t: "జాతర", m: "Fair", s: "Culture" },
328
  { t: "బోనం", m: "Offering", s: "Ritual" }, { t: "సాక", m: "Branch", s: "Nature" },
329
  { t: "కోడి", m: "Chicken", s: "Food" }, { t: "మేక", m: "Goat", s: "Agri" },
@@ -346,6 +398,10 @@
346
  name: "Mahabubabad", lat: 17.5956, lng: 80.0053, region: "Tribal Corridor",
347
  history: "Strong Lambadi/Banjara tribal presence influences the local lexicon.",
348
  words: [
 
 
 
 
349
  { t: "తండా", m: "Hamlet", s: "Tribal" }, { t: "బంజారా", m: "Tribe", s: "Community" },
350
  { t: "గూడు", m: "Nest/Hut", s: "General" }, { t: "తవ్వు", m: "Dig", s: "Action" },
351
  { t: "పాట", m: "Song", s: "Culture" }, { t: "ఆట", m: "Dance/Play", s: "Culture" },
@@ -391,6 +447,18 @@
391
  name: "Mahabubnagar", lat: 16.7488, lng: 78.0035, region: "Palamuru",
392
  history: "Palamuru region. Known for migration (Valasa) and distinct, rougher intonation.",
393
  words: [
 
 
 
 
 
 
 
 
 
 
 
 
394
  { t: "పాలమూరు", m: "Mahabubnagar", s: "Place" }, { t: "వలస", m: "Migration", s: "Social" },
395
  { t: "కూలీ", m: "Laborer", s: "Social" }, { t: "అడ్డా", m: "Stand/Place", s: "Social" },
396
  { t: "అప్ప", m: "Father", s: "Seema Infl." }, { t: "అయ్య", m: "Father", s: "General" },
@@ -402,6 +470,18 @@
402
  name: "Nagarkurnool", lat: 16.4856, lng: 78.3305, region: "Nallamalla Zone",
403
  history: "Covers the Nallamalla forest. Chenchu tribal words are part of the local mix.",
404
  words: [
 
 
 
 
 
 
 
 
 
 
 
 
405
  { t: "నల్ల", m: "Black", s: "General" }, { t: "మళ్ళ", m: "Again", s: "General" },
406
  { t: "కొండ", m: "Hill", s: "Geo" }, { t: "వాగు", m: "Stream", s: "Geo" },
407
  { t: "చెంచు", m: "Tribe", s: "Community" }, { t: "తేనె", m: "Honey", s: "Forest" },
@@ -413,6 +493,18 @@
413
  name: "Wanaparthy", lat: 16.3621, lng: 78.0617, region: "Samsthanam",
414
  history: "A historic Samsthanam (Estate). The dialect reflects a feudal/royal past.",
415
  words: [
 
 
 
 
 
 
 
 
 
 
 
 
416
  { t: "సంస్థానం", m: "Estate", s: "History" }, { t: "రాజా", m: "King", s: "History" },
417
  { t: "కోట", m: "Fort", s: "History" }, { t: "బంగారు", m: "Golden", s: "General" },
418
  { t: "పట్టు", m: "Silk", s: "Textile" }, { t: "చీర", m: "Saree", s: "Textile" },
@@ -424,6 +516,26 @@
424
  name: "Jogulamba Gadwal", lat: 16.2343, lng: 77.7289, region: "River Doab",
425
  history: "Between Krishna and Tungabhadra rivers. Known for Handlooms and temples.",
426
  words: [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
427
  { t: "నడుము", m: "Waist/Middle", s: "Body" }, { t: "గడ్డ", m: "Land/Bank", s: "Geo" },
428
  { t: "కృష్ణ", m: "River", s: "Geo" }, { t: "తుంగభద్ర", m: "River", s: "Geo" },
429
  { t: "పదిహేను", m: "Fifteen", s: "Standard" }, { t: "పదహైదు", m: "Fifteen", s: "Local" },
@@ -435,6 +547,20 @@
435
  name: "Narayanpet", lat: 16.7323, lng: 77.4988, region: "Karnataka Border",
436
  history: "Strong Kannada influence due to location. Cuisine terms (Rotti) are common.",
437
  words: [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
438
  { t: "పేట", m: "Town", s: "Suffix" }, { t: "చీర", m: "Saree", s: "Textile" },
439
  { t: "మగ్గ", m: "Loom", s: "Textile" }, { t: "బోర్డర్", m: "Border", s: "Geo" },
440
  { t: "కన్నడ", m: "Language", s: "Influence" }, { t: "రొట్టి", m: "Bread", s: "Food" },
@@ -446,6 +572,32 @@
446
  name: "Nalgonda", lat: 17.0577, lng: 79.2683, region: "Southern Plains",
447
  history: "Known for the Nalgonda movement. Dialect is direct, sharp, and iconic.",
448
  words: [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
449
  { t: "నల్ల", m: "Black", s: "General" }, { t: "కొండ", m: "Hill", s: "Geo" },
450
  { t: "ఫ్లోరోసిస్", m: "Disease", s: "History" }, { t: "నీళ్ళు", m: "Water", s: "General" },
451
  { t: "బావి", m: "Well", s: "Agri" }, { t: "ఏడ", m: "Where", s: "Grammar" },
@@ -480,6 +632,10 @@
480
  name: "Medak", lat: 18.0487, lng: 78.2657, region: "Heritage West",
481
  history: "Historical seat of power. 'Metuku' (rice grain) is the etymological root.",
482
  words: [
 
 
 
 
483
  { t: "చర్చి", m: "Church", s: "Landmark" }, { t: "మెతుకు", m: "Rice Grain", s: "Etymology" },
484
  { t: "దుర్గం", m: "Fort", s: "History" }, { t: "కోట", m: "Fort", s: "History" },
485
  { t: "గడి", m: "Room", s: "Rural" }, { t: "సింహ", m: "Lion", s: "Art" },
@@ -502,6 +658,28 @@
502
  name: "Siddipet", lat: 18.1018, lng: 78.8520, region: "Political Hub",
503
  history: "A vibrant, politically active district. Home to Komuravelli Mallanna.",
504
  words: [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
505
  { t: "కోటి", m: "Monkey", s: "Local" }, { t: "మల్లన్న", m: "God Name", s: "Religion" },
506
  { t: "పట్నం", m: "City", s: "General" }, { t: "చెరువు", m: "Lake", s: "Geo" },
507
  { t: "బతుకమ్మ", m: "Festival", s: "Culture" }, { t: "పూలు", m: "Flowers", s: "Nature" },
@@ -513,6 +691,16 @@
513
  name: "Rangareddy", lat: 17.3457, lng: 78.5522, region: "Peri-Urban",
514
  history: "Surrounds Hyderabad. Mix of rural farms and real estate boom vocabulary.",
515
  words: [
 
 
 
 
 
 
 
 
 
 
516
  { t: "ఎయిర్పోర్ట్", m: "Airport", s: "Infra" }, { t: "ఫ్లైట్", m: "Plane", s: "Transport" },
517
  { t: "రియల్ ఎస్టేట్", m: "Land Biz", s: "Biz" }, { t: "ప్లాట్", m: "Plot", s: "Biz" },
518
  { t: "రేటు", m: "Price", s: "Biz" }, { t: "మచ్చ", m: "Friend", s: "Slang" },
@@ -546,6 +734,28 @@
546
  name: "Hyderabad", lat: 17.3850, lng: 78.4867, region: "Capital",
547
  history: "The historic capital. Famous for the unique Dakhni-Telugu fusion dialect.",
548
  words: [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
549
  { t: "కైకు", m: "Why", s: "Dakhni" }, { t: "నక్కో", m: "No", s: "Dakhni" },
550
  { t: "హౌ", m: "Yes", s: "Dakhni" }, { t: "బైగన్", m: "Useless", s: "Slang" },
551
  { t: "చిచ్చా", m: "Uncle", s: "Slang" }, { t: "పోట్టి", m: "Girl", s: "Slang" },
@@ -555,537 +765,162 @@
555
  }
556
  ];
557
 
558
- const andhraData = [
559
- // === UTTARANDHRA REGION ===
560
- {
561
- name: "Srikakulam",
562
- lat: 18.2949, lng: 83.8938,
563
- region: "Kalingandhra",
564
- history: "Bordering Odisha, this dialect (Srikakulam Mandalikam) is distinct with 'Elugu' sounds and Odiya influence. It preserves archaic Telugu forms.",
565
- words: [
566
- { t: "ఎలుగు", m: "Bear", s: "Local Usage", l: "https://en.wikipedia.org/wiki/Srikakulam_district" },
567
- { t: "బయ", m: "Fear", s: "Mandalikalu", l: "https://archive.org/details/mandalikalu_vol1" },
568
- { t: "కాడ", m: "Stalk/Stick", s: "Agri", l: "https://andhrabharati.com" },
569
- { t: "మునగాకు", m: "Drumstick Leaf", s: "Food", l: "https://andhrabharati.com" },
570
- { t: "పైడి", m: "Gold/Money", s: "Community", l: "https://en.wikipedia.org/wiki/Paidi" },
571
- { t: "దొర", m: "Lord/Master", s: "Caste Title", l: "https://en.wikipedia.org/wiki/Velama" },
572
- { t: "వలి", m: "Wind", s: "Nature", l: "https://andhrabharati.com" },
573
- { t: "నీళ్ళు", m: "Water (Neellu)", s: "General", l: "https://andhrabharati.com" },
574
- { t: "బువ్వ", m: "Rice", s: "Food", l: "https://andhrabharati.com" },
575
- { t: "అమ్మోరు", m: "Goddess", s: "Religion", l: "https://en.wikipedia.org/wiki/Gramadevata" }
576
- ]
577
- },
578
- {
579
- name: "Vizianagaram",
580
- lat: 18.1067, lng: 83.3956,
581
- region: "Kalingandhra",
582
- history: "A hub of education and culture (Vidyanagaram). The dialect is soft, musical, and heavily influenced by the Gajapati kingdom's history.",
583
- words: [
584
- { t: "గెడ్డ", m: "Buffalo", s: "Rural", l: "https://andhrabharati.com" },
585
- { t: "సరే", m: "Okay", s: "Common", l: "https://en.wiktionary.org/wiki/sare" },
586
- { t: "ఆయ", m: "Yes", s: "Uttarandhra", l: "https://en.wiktionary.org/wiki/avunu" },
587
- { t: "పులస", m: "Hilsa Fish", s: "Food", l: "https://en.wikipedia.org/wiki/Tenualosa_ilisha" },
588
- { t: "తోట", m: "Garden/Farm", s: "Agri", l: "https://andhrabharati.com" },
589
- { t: "అయ్య", m: "Father", s: "Relations", l: "https://andhrabharati.com" },
590
- { t: "కోడి", m: "Chicken", s: "Food", l: "https://andhrabharati.com" },
591
- { t: "పండుగ", m: "Festival", s: "Culture", l: "https://en.wikipedia.org/wiki/Sankranti" },
592
- { t: "గుడి", m: "Temple", s: "Religion", l: "https://en.wikipedia.org/wiki/Hindu_temple" },
593
- { t: "ఊరు", m: "Village", s: "General", l: "https://en.wikipedia.org/wiki/Village" }
594
- ]
595
- },
596
- {
597
- name: "Parvathipuram Manyam",
598
- lat: 18.7800, lng: 83.4300,
599
- region: "Manyam (Tribal)",
600
- history: "Carved from Vizianagaram/Srikakulam. Heavily tribal (Savara/Jatapu) population. 'Manyam' refers to the forest/hill region.",
601
- words: [
602
- { t: "బిరింద", m: "Family/Clan", s: "Savara Tribe", l: "http://s3-ap-southeast-1.amazonaws.com/ijmer/pdf/volume10/volume10-issue12(2)/1.pdf" },
603
- { t: "గూడ", m: "Hamlet", s: "Savara/Jatapu", l: "http://s3-ap-southeast-1.amazonaws.com/ijmer/pdf/volume10/volume10-issue12(2)/1.pdf" },
604
- { t: "సవర", m: "Tribe Name", s: "Community", l: "https://en.wikipedia.org/wiki/Sora_people" },
605
- { t: "జాతాపు", m: "Tribe Name", s: "Community", l: "https://en.wikipedia.org/wiki/Jatapu" },
606
- { t: "పోడు", m: "Shifting Culti.", s: "Agri", l: "https://en.wikipedia.org/wiki/Podu_(agriculture)" },
607
- { t: "కొండ", m: "Hill", s: "Geo", l: "https://andhrabharati.com" },
608
- { t: "ఏరు", m: "Stream", s: "Geo", l: "https://andhrabharati.com" },
609
- { t: "వేట", m: "Hunt", s: "Tribal", l: "https://andhrabharati.com" },
610
- { t: "విల్లు", m: "Bow", s: "Weapon", l: "https://andhrabharati.com" },
611
- { t: "తేనె", m: "Honey", s: "Forest Produce", l: "https://andhrabharati.com" }
612
- ]
613
- },
614
- {
615
- name: "Visakhapatnam",
616
- lat: 17.6868, lng: 83.2185,
617
- region: "Coastal Metro",
618
- history: "A cosmopolitan port city. The 'Vizag' dialect mixes Uttarandhra rural slang with English/Hindi industrial loan words.",
619
- words: [
620
- { t: "యా", m: "What (Etla)", s: "Slang", l: "https://en.wikipedia.org/wiki/Visakhapatnam" },
621
- { t: "మత్స్య", m: "Fish/Marine", s: "Fishing", l: "https://en.wikipedia.org/wiki/Fisheries" },
622
- { t: "రేవు", m: "Port/Harbor", s: "Maritime", l: "https://en.wikipedia.org/wiki/Visakhapatnam_Port" },
623
- { t: "షిప్పు", m: "Ship", s: "Industrial", l: "https://en.wikipedia.org/wiki/Hindustan_Shipyard" },
624
- { t: "స్టీలు", m: "Steel", s: "Industrial", l: "https://en.wikipedia.org/wiki/Visakhapatnam_Steel_Plant" },
625
- { t: "బీచ్", m: "Beach", s: "Tourism", l: "https://en.wikipedia.org/wiki/RK_Beach" },
626
- { t: "కొండ", m: "Hill (Dolphin Nose)", s: "Geo", l: "https://en.wikipedia.org/wiki/Dolphin%27s_Nose" },
627
- { t: "లోవ", m: "Valley", s: "Geo", l: "https://andhrabharati.com" },
628
- { t: "సిటీ", m: "City", s: "Urban", l: "https://en.wikipedia.org/wiki/Smart_Cities_Mission" },
629
- { t: "ఆంధ్రా", m: "Andhra Univ.", s: "Edu", l: "https://www.andhrauniversity.edu.in/" }
630
- ]
631
- },
632
- {
633
- name: "Anakapalli",
634
- lat: 17.6913, lng: 83.0039,
635
- region: "North Coastal Rural",
636
- history: "Famous for its Jaggery market (Bellam). The dialect is typical rural Visakha, distinct from the urban port city.",
637
- words: [
638
- { t: "బెల్లం", m: "Jaggery", s: "Trade", l: "https://en.wikipedia.org/wiki/Anakapalle#Economy" },
639
- { t: "చెరకు", m: "Sugarcane", s: "Agri", l: "https://en.wikipedia.org/wiki/Sugarcane" },
640
- { t: "సంత", m: "Market", s: "Trade", l: "https://en.wikipedia.org/wiki/Market" },
641
- { t: "ఏటికొప్పాక", m: "Toy Town", s: "Craft", l: "https://en.wikipedia.org/wiki/Etikoppaka" },
642
- { t: "బొమ్మ", m: "Toy", s: "Craft", l: "https://en.wikipedia.org/wiki/Etikoppaka_toys" },
643
- { t: "లక్క", m: "Lacquer", s: "Craft", l: "https://en.wikipedia.org/wiki/Lac" },
644
- { t: "నూకమ్మ", m: "Goddess", s: "Religion", l: "https://en.wikipedia.org/wiki/Nookambika_Temple" },
645
- { t: "జాతర", m: "Fair", s: "Culture", l: "https://en.wikipedia.org/wiki/Jatra" },
646
- { t: "ఏరు", m: "River (Sarada)", s: "Geo", l: "https://en.wikipedia.org/wiki/Sarada_River" },
647
- { t: "రైతు", m: "Farmer", s: "Agri", l: "https://andhrabharati.com" }
648
- ]
649
- },
650
- {
651
- name: "Alluri Sitharama Raju",
652
- lat: 18.0667, lng: 82.6500,
653
- region: "Agency/Tribal",
654
- history: "Named after the freedom fighter. Home to the Rampa Rebellion. Dialect is heavily influenced by Koya, Konda, and other tribal languages.",
655
- words: [
656
- { t: "మన్యం", m: "Forest/Hill Area", s: "History", l: "https://en.wikipedia.org/wiki/Manyam_Rebellion" },
657
- { t: "ఫితూరీ", m: "Rebellion", s: "History", l: "https://en.wikipedia.org/wiki/Rampa_Rebellion_of_1922" },
658
- { t: "రాముడు", m: "Alluri (God)", s: "Legend", l: "https://en.wikipedia.org/wiki/Alluri_Sitarama_Raju" },
659
- { t: "పోడు", m: "Shifting Agri", s: "Tribal", l: "https://en.wikipedia.org/wiki/Podu" },
660
- { t: "కాఫీ", m: "Coffee", s: "Agri", l: "https://en.wikipedia.org/wiki/Araku_Valley_Coffee" },
661
- { t: "లోయ", m: "Valley (Araku)", s: "Geo", l: "https://en.wikipedia.org/wiki/Araku_Valley" },
662
- { t: "బొర్రా", m: "Cave/Hole", s: "Geo", l: "https://en.wikipedia.org/wiki/Borra_Caves" },
663
- { t: "గిరిజన", m: "Tribal", s: "Admin", l: "https://en.wikipedia.org/wiki/Scheduled_Tribes_in_India" },
664
- { t: "విల్లు", m: "Bow", s: "Weapon", l: "https://andhrabharati.com" },
665
- { t: "బాణం", m: "Arrow", s: "Weapon", l: "https://andhrabharati.com" }
666
- ]
667
- },
668
-
669
- // === GODAVARI REGION ===
670
- {
671
- name: "Kakinada",
672
- lat: 16.9891, lng: 82.2475,
673
- region: "East Godavari",
674
- history: "The 'Pensioner's Paradise'. Known for the distinct 'Aay' (Yes) and polite, drawn-out Godavari accent. Famous for Kaja.",
675
- words: [
676
- { t: "కాజా", m: "Sweet", s: "Food", l: "https://en.wikipedia.org/wiki/Kakinada_Kaja" },
677
- { t: "బాసు", m: "Boss (Friend)", s: "Slang", l: "https://en.wiktionary.org/wiki/boss" },
678
- { t: "రేవు", m: "Port", s: "Marine", l: "https://en.wikipedia.org/wiki/Kakinada_Port" },
679
- { t: "పిఠాపురం", m: "Place Name", s: "History", l: "https://en.wikipedia.org/wiki/Pithapuram" },
680
- { t: "శక్తి", m: "Power (Peetham)", s: "Religion", l: "https://en.wikipedia.org/wiki/Puruhutika_Devi_Temple" },
681
- { t: "బీచ్", m: "Beach", s: "Tourism", l: "https://en.wikipedia.org/wiki/Uppada_Beach" },
682
- { t: "పట్టు", m: "Silk (Uppada)", s: "Textile", l: "https://en.wikipedia.org/wiki/Uppada_Jamdani_Sari" },
683
- { t: "నౌక", m: "Boat/Ship", s: "Marine", l: "https://andhrabharati.com" },
684
- { t: "వంట", m: "Cooking", s: "Culture", l: "https://andhrabharati.com" },
685
- { t: "మర్యాద", m: "Respect", s: "Culture", l: "https://andhrabharati.com" }
686
- ]
687
- },
688
- {
689
- name: "Dr. B.R. Ambedkar Konaseema",
690
- lat: 16.5794, lng: 81.9930,
691
- region: "Konaseema",
692
- history: "The Delta region. Extremely fertile, known for coconut groves and distinct river-island vocabulary like 'Lanka' and 'Revu'.",
693
- words: [
694
- { t: "లంక", m: "Island", s: "Geo", l: "https://te.wikipedia.org/wiki/%E0%B0%97%E0%B1%8B%E0%B0%A6%E0%B0%BE%E0%B0%B5%E0%B0%B0%E0%B0%BF_%E0%B0%AF%E0%B0%BE%E0%B0%B8" },
695
- { t: "రేవు", m: "River Bank", s: "Geo", l: "https://te.wikipedia.org/wiki/%E0%B0%97%E0%B1%8B%E0%B0%A6%E0%B0%BE%E0%B0%B5%E0%B0%B0%E0%B0%BF_%E0%B0%AF%E0%B0%BE%E0%B0%B8" },
696
- { t: "కొబ్బరి", m: "Coconut", s: "Agri", l: "http://jaganalluri.blogspot.com/2010/10/konaseema-telugu-is-delta-located-in.html" },
697
- { t: "డిబ్బ", m: "Mound/Islet", s: "Geo", l: "http://jaganalluri.blogspot.com/2010/10/konaseema-telugu-is-delta-located-in.html" },
698
- { t: "ఆయ్", m: "Yes (Respectful)", s: "Slang", l: "http://jaganalluri.blogspot.com/2010/10/konaseema-telugu-is-delta-located-in.html" },
699
- { t: "పంటి", m: "Raft/Ferry", s: "Transport", l: "http://jaganalluri.blogspot.com/2010/10/konaseema-telugu-is-delta-located-in.html" },
700
- { t: "గోదారి", m: "Godavari", s: "Geo", l: "http://jaganalluri.blogspot.com/2010/10/konaseema-telugu-is-delta-located-in.html" },
701
- { t: "అరిటాకు", m: "Banana Leaf", s: "Food", l: "https://andhrabharati.com" },
702
- { t: "పూతరేకు", m: "Paper Sweet", s: "Food", l: "https://en.wikipedia.org/wiki/Pootharekulu" },
703
- { t: "అన్నం", m: "Rice", s: "Food", l: "https://andhrabharati.com" }
704
- ]
705
- },
706
- {
707
- name: "East Godavari",
708
- lat: 17.0005, lng: 81.8040,
709
- region: "Godavari",
710
- history: "Headquartered at Rajamahendravaram. Cultural capital of Andhra. Standard Telugu ('Grandhika') has strong roots here.",
711
- words: [
712
- { t: "పుష్కర", m: "River Festival", s: "Culture", l: "https://en.wikipedia.org/wiki/Godavari_Pushkaralu" },
713
- { t: "ఘాట్", m: "Bathing Steps", s: "Religion", l: "https://en.wikipedia.org/wiki/Ghat" },
714
- { t: "ఆదికవి", m: "First Poet (Nannaya)", s: "Lit", l: "https://en.wikipedia.org/wiki/Nannayya" },
715
- { t: "బ్యారేజ్", m: "Barrage", s: "Infra", l: "https://en.wikipedia.org/wiki/Dowleswaram_Barrage" },
716
- { t: "నర్సరీ", m: "Plant Nursery", s: "Agri", l: "https://en.wikipedia.org/wiki/Kadiyam" },
717
- { t: "పువ్వులు", m: "Flowers", s: "Agri", l: "https://en.wikipedia.org/wiki/Kadiyam" },
718
- { t: "రోజా", m: "Rose", s: "Agri", l: "https://andhrabharati.com" },
719
- { t: "రైలు", m: "Train (Bridge)", s: "Transport", l: "https://en.wikipedia.org/wiki/Godavari_Bridge" },
720
- { t: "గోదావరి", m: "River", s: "Geo", l: "https://en.wikipedia.org/wiki/Godavari_River" },
721
- { t: "సంస్కృతి", m: "Culture", s: "General", l: "https://andhrabharati.com" }
722
- ]
723
- },
724
- {
725
- name: "West Godavari",
726
- lat: 16.5417, lng: 81.5233,
727
- region: "Godavari Delta",
728
- history: "Centered around Bhimavaram. Known for aquaculture (Prawns/Fish) and cockfights (Kodi Pandem) during Sankranti.",
729
- words: [
730
- { t: "రొయ్యలు", m: "Prawns", s: "Aqua", l: "https://en.wikipedia.org/wiki/Aquaculture_in_India" },
731
- { t: "చేపలు", m: "Fish", s: "Aqua", l: "https://en.wikipedia.org/wiki/Fish_farming" },
732
- { t: "పందెం", m: "Bet/Race", s: "Culture", l: "https://en.wikipedia.org/wiki/Cockfight" },
733
- { t: "సంక్రాంతి", m: "Harvest Fest", s: "Culture", l: "https://en.wikipedia.org/wiki/Sankranti" },
734
- { t: "కోడి", m: "Rooster", s: "Culture", l: "https://en.wikipedia.org/wiki/Cockfight" },
735
- { t: "బరి", m: "Arena", s: "Culture", l: "https://andhrabharati.com" },
736
- { t: "కత్తి", m: "Knife (Cockfight)", s: "Tool", l: "https://andhrabharati.com" },
737
- { t: "చెరువు", m: "Pond (Aqua)", s: "Agri", l: "https://en.wikipedia.org/wiki/Fish_pond" },
738
- { t: "గట్టు", m: "Bund", s: "Geo", l: "https://andhrabharati.com" },
739
- { t: "ఊరు", m: "Village", s: "General", l: "https://andhrabharati.com" }
740
- ]
741
- },
742
- {
743
- name: "Eluru",
744
- lat: 16.7107, lng: 81.0952,
745
- region: "Kolleru Belt",
746
- history: "Between Krishna and Godavari. Home to Kolleru Lake. Famous for carpets and woolen piles.",
747
- words: [
748
- { t: "కొల్లేరు", m: "Lake Name", s: "Geo", l: "https://en.wikipedia.org/wiki/Kolleru_Lake" },
749
- { t: "పక్షులు", m: "Birds", s: "Nature", l: "https://en.wikipedia.org/wiki/Kolleru_Bird_Sanctuary" },
750
- { t: "తివాచీ", m: "Carpet", s: "Craft", l: "https://en.wikipedia.org/wiki/Eluru#Economy" },
751
- { t: "ఉన్ని", m: "Wool", s: "Material", l: "https://andhrabharati.com" },
752
- { t: "ద్వారకా", m: "Tirumala (Little)", s: "Religion", l: "https://en.wikipedia.org/wiki/Dwaraka_Tirumala" },
753
- { t: "గుడి", m: "Temple", s: "Religion", l: "https://andhrabharati.com" },
754
- { t: "మొక్కు", m: "Vow", s: "Religion", l: "https://andhrabharati.com" },
755
- { t: "లంక", m: "Island", s: "Geo", l: "https://andhrabharati.com" },
756
- { t: "పొలము", m: "Field", s: "Agri", l: "https://andhrabharati.com" },
757
- { t: "వరి", m: "Paddy", s: "Agri", l: "https://en.wikipedia.org/wiki/Paddy" }
758
- ]
759
- },
760
-
761
- // === KRISHNA-GUNTUR REGION ===
762
- {
763
- name: "Krishna",
764
- lat: 16.1808, lng: 81.1303,
765
- region: "Krishna Delta",
766
- history: "Headquartered at Machilipatnam. Historic port town with Dutch/British influence. Famous for Kalamkari.",
767
- words: [
768
- { t: "కలంకారీ", m: "Pen Art", s: "Art", l: "https://en.wikipedia.org/wiki/Kalamkari" },
769
- { t: "బందరు", m: "Machilipatnam", s: "Place", l: "https://en.wikipedia.org/wiki/Machilipatnam" },
770
- { t: "లడ్డు", m: "Sweet (Bandar)", s: "Food", l: "https://en.wikipedia.org/wiki/Bandar_Laddu" },
771
- { t: "బీచ్", m: "Beach", s: "Tourism", l: "https://en.wikipedia.org/wiki/Manginapudi_Beach" },
772
- { t: "కోట", m: "Fort (Dutch)", s: "History", l: "https://en.wikipedia.org/wiki/Machilipatnam#History" },
773
- { t: "నగల", m: "Imitation Gold", s: "Craft", l: "https://en.wikipedia.org/wiki/Machilipatnam" },
774
- { t: "డచ్", m: "Dutch", s: "History", l: "https://en.wikipedia.org/wiki/Dutch_Coromandel" },
775
- { t: "ఓడరేవు", m: "Seaport", s: "Marine", l: "https://andhrabharati.com" },
776
- { t: "చేనేత", m: "Handloom", s: "Craft", l: "https://andhrabharati.com" },
777
- { t: "నది", m: "River", s: "Geo", l: "https://andhrabharati.com" }
778
- ]
779
- },
780
- {
781
- name: "NTR",
782
- lat: 16.5062, lng: 80.6480,
783
- region: "Central Capital",
784
- history: "Vijayawada region. The political and commercial heart. Standard Telugu is spoken here but with a distinct speed.",
785
- words: [
786
- { t: "బెజవాడ", m: "Vijayawada", s: "Place", l: "https://en.wikipedia.org/wiki/Vijayawada" },
787
- { t: "దుర్గమ్మ", m: "Goddess", s: "Religion", l: "https://en.wikipedia.org/wiki/Kanaka_Durga_Temple" },
788
- { t: "ప్రకాశం", m: "Barrage", s: "Infra", l: "https://en.wikipedia.org/wiki/Prakasam_Barrage" },
789
- { t: "రైలు", m: "Train (Junction)", s: "Transport", l: "https://en.wikipedia.org/wiki/Vijayawada_Junction_railway_station" },
790
- { t: "రాజధాని", m: "Capital", s: "Admin", l: "https://en.wikipedia.org/wiki/Amaravati" },
791
- { t: "రాజకీయం", m: "Politics", s: "Society", l: "https://en.wikipedia.org/wiki/Politics_of_Andhra_Pradesh" },
792
- { t: "వ్యాపారం", m: "Business", s: "Economy", l: "https://andhrabharati.com" },
793
- { t: "కొండ", m: "Hill (Indrakeeladri)", s: "Geo", l: "https://en.wikipedia.org/wiki/Indrakeeladri" },
794
- { t: "నది", m: "River (Krishna)", s: "Geo", l: "https://en.wikipedia.org/wiki/Krishna_River" },
795
- { t: "ఆటో", m: "Auto", s: "Transport", l: "https://en.wikipedia.org/wiki/Auto_rickshaw" }
796
- ]
797
- },
798
- {
799
- name: "Guntur",
800
- lat: 16.3067, lng: 80.4365,
801
- region: "Central Andhra",
802
- history: "Known for Chillies and Education. The dialect here is crisp and considered 'textbook' standard.",
803
- words: [
804
- { t: "మిరప", m: "Chilli", s: "Agri", l: "https://en.wikipedia.org/wiki/Guntur_chilli" },
805
- { t: "కారం", m: "Spicy", s: "Food", l: "https://andhrabharati.com" },
806
- { t: "గోంగూర", m: "Sorrel Leaf", s: "Food", l: "https://en.wikipedia.org/wiki/Gongura" },
807
- { t: "పచ్చడి", m: "Pickle", s: "Food", l: "https://en.wikipedia.org/wiki/South_Indian_pickle" },
808
- { t: "పొగాకు", m: "Tobacco", s: "Agri", l: "https://en.wikipedia.org/wiki/Tobacco" },
809
- { t: "యార్డు", m: "Market Yard", s: "Trade", l: "https://en.wikipedia.org/wiki/Guntur" },
810
- { t: "జిన్నా", m: "Tower Name", s: "Landmark", l: "https://en.wikipedia.org/wiki/Jinnah_Tower" },
811
- { t: "చదువు", m: "Education", s: "General", l: "https://andhrabharati.com" },
812
- { t: "ఉప్పు", m: "Salt", s: "Food", l: "https://andhrabharati.com" },
813
- { t: "రాళ్ళు", m: "Stones", s: "General", l: "https://andhrabharati.com" }
814
- ]
815
- },
816
- {
817
- name: "Palnadu",
818
- lat: 16.2366, lng: 80.0515,
819
- region: "Palnadu",
820
- history: "Historic battlefield of Palnati Yuddham. Known for bravery and specific factional history. 'Pourusham' (Valor) is a key theme.",
821
- words: [
822
- { t: "పౌరుషం", m: "Valor", s: "History", l: "https://en.wikipedia.org/wiki/Palnadu" },
823
- { t: "యుద్ధం", m: "War", s: "History", l: "https://te.wikipedia.org/wiki/%E0%B0%AA%E0%B0%B2%E0%B1%8D%E0%B0%A8%E0%B0%BE%E0%B0%9F%E0%B0%BF_%E0%B0%AF%E0%B1%81%E0%B0%A6%E0%B1%8D%E0%B0%A7%E0%B0%82" },
824
- { t: "బ్రహ్మనాయుడు", m: "Hero Name", s: "Legend", l: "https://en.wikipedia.org/wiki/Brahma_Naidu" },
825
- { t: "నాగమ్మ", m: "Leader Name", s: "Legend", l: "https://en.wikipedia.org/wiki/Nayakuralu_Nagamma" },
826
- { t: "కోడి", m: "Rooster (Fight)", s: "History", l: "https://en.wikipedia.org/wiki/Palnati_Yuddham_(1947_film)" },
827
- { t: "బొంగరం", m: "Top (Game)", s: "Culture", l: "https://te.wikipedia.org/wiki/%E0%B0%AA%E0%B0%B2%E0%B1%8D%E0%B0%A8%E0%B0%BE%E0%B0%9F%E0%B0%BF_%E0%B0%AF%E0%B1%81%E0%B0%A6%E0%B1%8D%E0%B0%A7%E0%B0%82" },
828
- { t: "సమరం", m: "Battle", s: "History", l: "https://te.wikipedia.org/wiki/%E0%B0%AA%E0%B0%B2%E0%B1%8D%E0%B0%A8%E0%B0%BE%E0%B0%9F%E0%B0%BF_%E0%B0%AF%E0%B1%81%E0%B0%A6%E0%B1%8D%E0%B0%A7%E0%B0%82" },
829
- { t: "పల్నాడు", m: "Region", s: "Geo", l: "https://en.wikipedia.org/wiki/Palnadu_district" },
830
- { t: "కత్తి", m: "Sword", s: "Weapon", l: "https://andhrabharati.com" },
831
- { t: "రక్తం", m: "Blood", s: "General", l: "https://andhrabharati.com" }
832
- ]
833
- },
834
- {
835
- name: "Bapatla",
836
- lat: 15.9038, lng: 80.4682,
837
- region: "Coastal Guntur",
838
- history: "Includes Chirala and Bapatla. Known for Weaving (Chirala) and Air Force Base. Coastal dialect.",
839
- words: [
840
- { t: "చీరాల", m: "Place Name", s: "Geo", l: "https://en.wikipedia.org/wiki/Chirala" },
841
- { t: "నేత", m: "Weaving", s: "Craft", l: "https://en.wikipedia.org/wiki/Chirala" },
842
- { t: "బీచ్", m: "Beach (Suryalanka)", s: "Tourism", l: "https://en.wikipedia.org/wiki/Suryalanka_Beach" },
843
- { t: "జీడిపప్పు", m: "Cashew", s: "Agri", l: "https://andhrabharati.com" },
844
- { t: "ఇసుక", m: "Sand", s: "Geo", l: "https://andhrabharati.com" },
845
- { t: "వాయుసేన", m: "Air Force", s: "Defense", l: "https://en.wikipedia.org/wiki/Suryalanka_Air_Force_Station" },
846
- { t: "భావనారాయణ", m: "God Name", s: "Religion", l: "https://en.wikipedia.org/wiki/Bhavanarayana_Temple" },
847
- { t: "గుడి", m: "Temple", s: "Religion", l: "https://andhrabharati.com" },
848
- { t: "సముద్రం", m: "Sea", s: "Geo", l: "https://andhrabharati.com" },
849
- { t: "పడవ", m: "Boat", s: "Marine", l: "https://andhrabharati.com" }
850
- ]
851
- },
852
- {
853
- name: "Prakasam",
854
- lat: 15.5057, lng: 80.0499,
855
- region: "South Coastal",
856
- history: "Ongole is famous for its Bulls. The dialect is a transition between Guntur and Nellore.",
857
- words: [
858
- { t: "గిత్త", m: "Bull", s: "Agri", l: "https://en.wikipedia.org/wiki/Ongole_cattle" },
859
- { t: "ఒంగోలు", m: "Ongole", s: "Place", l: "https://en.wikipedia.org/wiki/Ongole" },
860
- { t: "పాల", m: "Milk (Galaxy)", s: "Industry", l: "https://en.wikipedia.org/wiki/Dairy" },
861
- { t: "గ్రానైట్", m: "Granite", s: "Industry", l: "https://en.wikipedia.org/wiki/Granite" },
862
- { t: "బండ", m: "Rock", s: "Geo", l: "https://andhrabharati.com" },
863
- { t: "పలక", m: "Slate (Markapur)", s: "Mining", l: "https://en.wikipedia.org/wiki/Markapur" },
864
- { t: "అడవి", m: "Forest (Nallamala)", s: "Geo", l: "https://en.wikipedia.org/wiki/Nallamala_Hills" },
865
- { t: "నీళ్లు", m: "Water", s: "General", l: "https://andhrabharati.com" },
866
- { t: "వేట", m: "Hunt", s: "Action", l: "https://andhrabharati.com" },
867
- { t: "రైతు", m: "Farmer", s: "Agri", l: "https://andhrabharati.com" }
868
- ]
869
- },
870
- {
871
- name: "Sri Potti Sriramulu Nellore",
872
- lat: 14.4426, lng: 79.9865,
873
- region: "Nellore",
874
- history: "Distinct dialect ('Yeta' for 'Atu'). Famous for Ranganayaka Swamy and ISRO (Sriharikota). Transition to Tamil influence starts here.",
875
- words: [
876
- { t: "ఏటి", m: "What (Yeti)", s: "Nellore Slang", l: "https://en.wikipedia.org/wiki/Nellore" },
877
- { t: "చేప", m: "Fish", s: "Food", l: "https://en.wikipedia.org/wiki/Nellore#Economy" },
878
- { t: "మందు", m: "Medicine", s: "General", l: "https://en.wikipedia.org/wiki/Anandaiah_COVID-19_Herbal_Cure" },
879
- { t: "రాకెట్", m: "Rocket", s: "Science", l: "https://en.wikipedia.org/wiki/Satish_Dhawan_Space_Centre" },
880
- { t: "చెరువు", m: "Lake (Pulicat)", s: "Geo", l: "https://en.wikipedia.org/wiki/Pulicat_Lake" },
881
- { t: "పక్షి", m: "Bird (Flamingo)", s: "Nature", l: "https://en.wikipedia.org/wiki/Nelapattu_Bird_Sanctuary" },
882
- { t: "పెన్న", m: "Penna River", s: "Geo", l: "https://en.wikipedia.org/wiki/Penna_River" },
883
- { t: "వడ్లు", m: "Paddy", s: "Agri", l: "https://en.wikipedia.org/wiki/Rice" },
884
- { t: "కారం", m: "Spicy", s: "Food", l: "https://andhrabharati.com" },
885
- { t: "దోవ", m: "Way/Path", s: "Rural", l: "https://www.reddit.com/r/Dravidiology/comments/1cmmve7/nellorekurrapalli_telugu_swadesh_list/" }
886
- ]
887
- },
888
-
889
- // === RAYALASEEMA REGION ===
890
- {
891
- name: "Kurnool",
892
- lat: 15.8281, lng: 78.0373,
893
- region: "Rayalaseema",
894
- history: "Gateway to Rayalaseema. Historic capital. Dialect uses 'Emappa' and has rougher intonations.",
895
- words: [
896
- { t: "కొండ", m: "Reddy (Fort)", s: "History", l: "https://en.wikipedia.org/wiki/Konda_Reddy_Fort" },
897
- { t: "బూర్జు", m: "Bastion", s: "History", l: "https://en.wikipedia.org/wiki/Konda_Reddy_Fort" },
898
- { t: "అప్ప", m: "Friend/Father", s: "Slang", l: "https://www.quora.com/What-are-some-common-phrases-in-the-Rayalaseema-Dialect-of-Telugu" },
899
- { t: "ఏమప్ప", m: "What man?", s: "Slang", l: "https://www.quora.com/What-are-some-common-phrases-in-the-Rayalaseema-Dialect-of-Telugu" },
900
- { t: "కర్నూలు", m: "City Name", s: "Place", l: "https://en.wikipedia.org/wiki/Kurnool" },
901
- { t: "తుంగభద్ర", m: "River", s: "Geo", l: "https://en.wikipedia.org/wiki/Tungabhadra_River" },
902
- { t: "సంగం", m: "Confluence", s: "Geo", l: "https://en.wikipedia.org/wiki/Sangameswara_Temple,_Kurnool" },
903
- { t: "రాళ్లు", m: "Stones", s: "Geo", l: "https://andhrabharati.com" },
904
- { t: "పులుసు", m: "Stew", s: "Food", l: "https://andhrabharati.com" },
905
- { t: "చేను", m: "Field", s: "Agri", l: "https://www.quora.com/What-are-some-common-phrases-in-the-Rayalaseema-Dialect-of-Telugu" }
906
- ]
907
- },
908
- {
909
- name: "Nandyal",
910
- lat: 15.4849, lng: 78.4867,
911
- region: "Rayalaseema",
912
- history: "Splintered from Kurnool. Famous for Mahanandi and Agriculture. 'Nandi' (Bull) is central to its identity.",
913
- words: [
914
- { t: "నంది", m: "Bull", s: "Religion", l: "https://en.wikipedia.org/wiki/Mahanandi" },
915
- { t: "ఆలయం", m: "Temple", s: "Religion", l: "https://en.wikipedia.org/wiki/Mahanandi" },
916
- { t: "నీరు", m: "Water", s: "General", l: "https://andhrabharati.com" },
917
- { t: "మహానంది", m: "Place Name", s: "Geo", l: "https://en.wikipedia.org/wiki/Mahanandi" },
918
- { t: "అడవి", m: "Forest", s: "Geo", l: "https://en.wikipedia.org/wiki/Nallamala_Hills" },
919
- { t: "పులి", m: "Tiger", s: "Wildlife", l: "https://en.wikipedia.org/wiki/Nagarjunsagar-Srisailam_Tiger_Reserve" },
920
- { t: "విత్తనాలు", m: "Seeds", s: "Agri", l: "https://en.wikipedia.org/wiki/Nandyal" },
921
- { t: "పంట", m: "Crop", s: "Agri", l: "https://andhrabharati.com" },
922
- { t: "కొండ", m: "Hill", s: "Geo", l: "https://andhrabharati.com" },
923
- { t: "రైతు", m: "Farmer", s: "Agri", l: "https://andhrabharati.com" }
924
- ]
925
- },
926
- {
927
- name: "Ananthapuramu",
928
- lat: 14.6819, lng: 77.6006,
929
- region: "Rayalaseema",
930
- history: "Driest region. Groundnut (Verusenaga) is the main crop. Dialect is distinct Rayalaseema.",
931
- words: [
932
- { t: "వేరుశనగ", m: "Groundnut", s: "Agri", l: "https://en.wikipedia.org/wiki/Anantapur_district#Economy" },
933
- { t: "కరవు", m: "Drought", s: "Climate", l: "https://en.wikipedia.org/wiki/Anantapur_district#Climate" },
934
- { t: "సీమ", m: "Region", s: "Geo", l: "https://en.wikipedia.org/wiki/Rayalaseema" },
935
- { t: "రాళ్లు", m: "Rocks", s: "Geo", l: "https://andhrabharati.com" },
936
- { t: "పవన", m: "Wind", s: "Energy", l: "https://en.wikipedia.org/wiki/Wind_power_in_India" },
937
- { t: "విద్యుత్", m: "Power", s: "Energy", l: "https://en.wikipedia.org/wiki/Solar_power_in_India" },
938
- { t: "కోట", m: "Fort (Gooty)", s: "History", l: "https://en.wikipedia.org/wiki/Gooty_Fort" },
939
- { t: "ట్యాంక్", m: "Tank", s: "Water", l: "https://en.wikipedia.org/wiki/Anantapur" },
940
- { t: "పొలము", m: "Field", s: "Agri", l: "https://andhrabharati.com" },
941
- { t: "లేపాక్షి", m: "Lepakshi", s: "Art", l: "https://en.wikipedia.org/wiki/Lepakshi" }
942
- ]
943
- },
944
- {
945
- name: "Sri Sathya Sai",
946
- lat: 14.1683, lng: 77.8117,
947
- region: "Spiritual Rayalaseema",
948
- history: "Headquartered at Puttaparthi. Global influence due to Sathya Sai Baba. Vocabulary includes spiritual terms.",
949
- words: [
950
- { t: "సాయి", m: "Sai Baba", s: "Religion", l: "https://en.wikipedia.org/wiki/Sathya_Sai_Baba" },
951
- { t: "సేవ", m: "Service", s: "Religion", l: "https://www.sathyasai.org/resources/indic-glossary" },
952
- { t: "భక్తి", m: "Devotion", s: "Religion", l: "https://www.sathyasai.org/resources/indic-glossary" },
953
- { t: "ఆశ్రమం", m: "Ashram", s: "Place", l: "https://en.wikipedia.org/wiki/Prasanthi_Nilayam" },
954
- { t: "విమానం", m: "Airport", s: "Transport", l: "https://en.wikipedia.org/wiki/Sri_Sathya_Sai_Airport" },
955
- { t: "వైద్యం", m: "Medicine", s: "Health", l: "https://en.wikipedia.org/wiki/Sri_Sathya_Sai_Institute_of_Higher_Medical_Sciences,_Prasanthigram" },
956
- { t: "ప్రశాంతి", m: "Peace", s: "Philosophy", l: "https://en.wikipedia.org/wiki/Prasanthi_Nilayam" },
957
- { t: "నిలయం", m: "Abode", s: "Place", l: "https://en.wikipedia.org/wiki/Prasanthi_Nilayam" },
958
- { t: "హారతి", m: "Offering", s: "Ritual", l: "https://www.sathyasai.org/resources/indic-glossary" },
959
- { t: "దర్శనం", m: "Sight/View", s: "Ritual", l: "https://www.sathyasai.org/resources/indic-glossary" }
960
- ]
961
- },
962
- {
963
- name: "YSR Kadapa",
964
- lat: 14.4673, lng: 78.8242,
965
- region: "Rayalaseema",
966
- history: "Heart of Rayalaseema. Known for 'Kadapa' (Threshold). Dialect uses strong words like 'Biddā' (Child/Son).",
967
- words: [
968
- { t: "బిడ్డ", m: "Child/Son", s: "Slang", l: "https://kadapa.info/tag/rayalaseema-dialect/" },
969
- { t: "రాయి", m: "Stone (Kadapa)", s: "Geo", l: "https://en.wikipedia.org/wiki/Kadapa_Stone" },
970
- { t: "గడప", m: "Threshold", s: "Etymology", l: "https://en.wikipedia.org/wiki/Kadapa" },
971
- { t: "దేవుడు", m: "God (Balaji)", s: "Religion", l: "https://en.wikipedia.org/wiki/Venkateswara" },
972
- { t: "దర్గా", m: "Shrine", s: "Religion", l: "https://en.wikipedia.org/wiki/Ameen_Peer_Dargah" },
973
- { t: "మసీదు", m: "Mosque", s: "Religion", l: "https://en.wikipedia.org/wiki/Ameen_Peer_Dargah" },
974
- { t: "గండి", m: "Gorge", s: "Geo", l: "https://en.wikipedia.org/wiki/Gandikota" },
975
- { t: "కోట", m: "Fort (Gandikota)", s: "History", l: "https://en.wikipedia.org/wiki/Gandikota" },
976
- { t: "ఏరు", m: "River (Penna)", s: "Geo", l: "https://en.wikipedia.org/wiki/Penna_River" },
977
- { t: "ఊరు", m: "Village", s: "General", l: "https://andhrabharati.com" }
978
- ]
979
- },
980
- {
981
- name: "Annamayya",
982
- lat: 14.0772, lng: 79.0267,
983
- region: "Rayalaseema",
984
- history: "Named after Tallapaka Annamayya. Rayachoti is HQ. Dialect is a blend of Kadapa and Chittoor.",
985
- words: [
986
- { t: "సంకీర్తన", m: "Song/Hymn", s: "Culture", l: "https://en.wikipedia.org/wiki/Annamacharya" },
987
- { t: "వెంకన్న", m: "Lord Venkateswara", s: "Religion", l: "https://en.wikipedia.org/wiki/Venkateswara" },
988
- { t: "తాళ్ళపాక", m: "Place Name", s: "History", l: "https://en.wikipedia.org/wiki/Tallapaka" },
989
- { t: "రాచవీడు", m: "Rayachoti (Old)", s: "Etymology", l: "https://en.wikipedia.org/wiki/Rayachoti" },
990
- { t: "కొండ", m: "Hill (Horsley)", s: "Geo", l: "https://en.wikipedia.org/wiki/Horsley_Hills" },
991
- { t: "మదనపల్లె", m: "Place Name", s: "Geo", l: "https://en.wikipedia.org/wiki/Madanapalle" },
992
- { t: "టమోటా", m: "Tomato", s: "Agri", l: "https://en.wikipedia.org/wiki/Madanapalle#Economy" },
993
- { t: "పట్టు", m: "Silk", s: "Textile", l: "https://annamayya.ap.gov.in/te/" },
994
- { t: "చీర", m: "Saree", s: "Textile", l: "https://annamayya.ap.gov.in/te/" },
995
- { t: "పాట", m: "Song", s: "Culture", l: "https://en.wikipedia.org/wiki/Annamacharya" }
996
- ]
997
- },
998
- {
999
- name: "Tirupati",
1000
- lat: 13.6288, lng: 79.4192,
1001
- region: "Pilgrimage Zone",
1002
- history: "The Spiritual Capital. Dialect has Tamil influence due to proximity to Chennai and millions of pilgrims.",
1003
- words: [
1004
- { t: "గోవిందా", m: "God's Name", s: "Religion", l: "https://en.wikipedia.org/wiki/Govinda" },
1005
- { t: "లడ్డు", m: "Prasadam", s: "Food", l: "https://en.wikipedia.org/wiki/Tirupati_Laddu" },
1006
- { t: "కొండ", m: "Hill (Seven)", s: "Geo", l: "https://en.wikipedia.org/wiki/Tirumala" },
1007
- { t: "ఏడు", m: "Seven", s: "Number", l: "https://en.wikipedia.org/wiki/Tirumala_Venkateswara_Temple" },
1008
- { t: "వెంకటేశ్వర", m: "God", s: "Religion", l: "https://en.wikipedia.org/wiki/Venkateswara" },
1009
- { t: "కళ్యాణ", m: "Wedding", s: "Ritual", l: "https://en.wikipedia.org/wiki/Kalyanotsavam" },
1010
- { t: "జుట్టు", m: "Hair (Tonsure)", s: "Ritual", l: "https://en.wikipedia.org/wiki/Tirumala_Venkateswara_Temple#Tonsure" },
1011
- { t: "దర్శనం", m: "View", s: "Religion", l: "https://en.wikipedia.org/wiki/Darshan" },
1012
- { t: "జూ", m: "Zoo", s: "Tourism", l: "https://en.wikipedia.org/wiki/Sri_Venkateswara_Zoological_Park" },
1013
- { t: "శ్రీహరికోట", m: "Spaceport", s: "Science", l: "https://en.wikipedia.org/wiki/Satish_Dhawan_Space_Centre" }
1014
- ]
1015
- },
1016
- {
1017
- name: "Chittoor",
1018
- lat: 13.2172, lng: 79.1003,
1019
- region: "Southern Border",
1020
- history: "Strong Tamil influence (Chittoor slang). Words like 'Maa' (Mango) and dairy terms are common.",
1021
- words: [
1022
- { t: "మామిడి", m: "Mango", s: "Agri", l: "https://en.wikipedia.org/wiki/Chittoor_district#Economy" },
1023
- { t: "పాలు", m: "Milk", s: "Agri", l: "https://en.wikipedia.org/wiki/Dairy" },
1024
- { t: "గ్రానైట్", m: "Granite", s: "Industry", l: "https://en.wikipedia.org/wiki/Granite" },
1025
- { t: "కాణిపాకం", m: "Place Name", s: "Religion", l: "https://en.wikipedia.org/wiki/Kanipakam" },
1026
- { t: "వినాయకుడు", m: "Ganesha", s: "Religion", l: "https://en.wikipedia.org/wiki/Kanipakam_Vinayaka_Temple" },
1027
- { t: "బెల్లం", m: "Jaggery", s: "Food", l: "https://en.wikipedia.org/wiki/Jaggery" },
1028
- { t: "అరగొండ", m: "Half Hill", s: "Place", l: "https://en.wikipedia.org/wiki/Aragonda" },
1029
- { t: "చెరకు", m: "Sugarcane", s: "Agri", l: "https://en.wikipedia.org/wiki/Sugarcane" },
1030
- { t: "తమిళం", m: "Tamil", s: "Influence", l: "https://en.wikipedia.org/wiki/Chittoor_district#Demographics" },
1031
- { t: "టెంకాయ", m: "Coconut (Tenkaaya)", s: "Slang", l: "https://andhrabharati.com" }
1032
- ]
1033
  }
1034
- ];
1035
-
1036
- // COMBINE DATA FOR ALL DISTRICTS
1037
- const allDistrictsData = [...Telangana_Data, ...andhraData];
1038
 
1039
  // --- 2. MAP SETUP ---
1040
- // Center on the Telugu States region
1041
- const map = L.map('map').setView([17.0, 80.0], 7);
1042
-
1043
- L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', {
1044
- attribution: '&copy; OSM contributors'
1045
- }).addTo(map);
1046
-
1047
- // --- 3. MARKERS & INTERACTION ---
1048
- const sidebarPanel = document.getElementById('info-panel');
1049
-
1050
- // Red Marker Style
1051
- const iconConfig = L.divIcon({
1052
- className: 'custom-icon',
1053
- html: `<div style="background:#e74c3c; width:12px; height:12px; border-radius:50%; border:2px solid white; box-shadow:0 0 4px rgba(0,0,0,0.4);"></div>`,
1054
- iconSize: [14, 14],
1055
- iconAnchor: [7, 7]
1056
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
1057
 
1058
- // Loop through the combined data
1059
- allDistrictsData.forEach(d => {
1060
- const marker = L.marker([d.lat, d.lng], { icon: iconConfig }).addTo(map);
1061
 
1062
- // Hover Label
1063
- marker.bindTooltip(`<b>${d.name}</b>`, { direction: 'top', offset: [0, -5] });
1064
 
1065
- // Click Action
1066
- marker.on('click', () => {
1067
- map.flyTo([d.lat, d.lng], 9, { duration: 1.2 });
1068
- updateSidebar(d);
 
1069
  });
1070
- });
1071
 
1072
- function updateSidebar(data) {
1073
- const rows = data.words.map(w => {
1074
- // Check if a link exists ('l' property)
1075
- const sourceContent = w.l
1076
- ? `<a href="${w.l}" target="_blank" class="source-link">${w.s}</a>`
1077
- : w.s;
1078
-
1079
- return `
1080
  <tr>
1081
  <td class="telugu-word">${w.t}</td>
1082
  <td>${w.m}</td>
1083
- <td style="color:#777; font-size:0.7rem;">${sourceContent}</td>
1084
  </tr>
1085
- `;
1086
- }).join('');
1087
 
1088
- sidebarPanel.innerHTML = `
1089
  <div style="animation:fadeIn 0.4s;">
1090
  <h2 class="district-title">${data.name}</h2>
1091
  <span class="region-tag">${data.region}</span>
@@ -1096,7 +931,11 @@
1096
  </table>
1097
  </div>
1098
  `;
 
1099
  }
 
 
 
1100
  </script>
1101
  </body>
1102
 
 
4
  <head>
5
  <meta charset="UTF-8">
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Telugu Dialect Map - Telangana & Andhra Pradesh</title>
8
 
9
  <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
10
  integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin="" />
 
122
  font-size: 0.95rem;
123
  }
124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  #map {
126
  flex-grow: 1;
127
  height: 100%;
 
151
 
152
  <div id="sidebar">
153
  <div class="header">
154
+ <h1>Telugu Dialect Map</h1>
155
+ <p id="district-counter">Loading districts...</p>
156
  </div>
157
  <div id="info-panel">
158
  <div style="text-align: center; color: #888; margin-top: 60px;">
 
168
  integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script>
169
 
170
  <script>
171
+ // --- 1. THE DATA (TELANGANA - 33 DISTRICTS) ---
172
+ const dialectData = [
 
173
  // === NORTHERN TELANGANA ===
174
  {
175
  name: "Adilabad", lat: 19.6641, lng: 78.5320, region: "Northern Forest",
176
  history: "Heavily influenced by Gondi tribal dialects and Marathi due to the Maharashtra border.",
177
  words: [
178
+ { t: "చోలోట్", m: "మంచి (Good)", s: "Crowd" },
179
+ { t: "వంచెడ్ చిబడ్", m: "అంటు ముట్టుకోడం", s: "Crowd" },
180
+ { t: "వడోగు", m: "దూడ (Calf)", s: "Crowd" },
181
+ { t: "ముచిలి పడన్", m: "ఎర్ర తుమ్మెద", s: "Crowd" },
182
+ { t: "సర్కార్", m: "నాశనం", s: "Crowd" },
183
+ { t: "వజీర్", m: "ముసలి", s: "Crowd" },
184
+ { t: "ఖైని", m: "వదిన", s: "Crowd" },
185
+ { t: "సూన్", m: "కోడలు", s: "Crowd" },
186
+ { t: "Poral batal", m: "Temple term (Keslapur)", s: "Crowd" },
187
+ { t: "చోలోట్", m: "మంచి (Good)", s: "Crowd" },
188
+ { t: "వంచెడ్ చిబడ్", m: "అంటు ముట్టుకోడం", s: "Crowd" },
189
+ { t: "వడోగు", m: "దూడ (Calf)", s: "Crowd" },
190
+ { t: "ముచిలి పడన్", m: "ఎర్ర తుమ్మెద", s: "Crowd" },
191
+ { t: "సర్కార్", m: "నాశనం", s: "Crowd" },
192
+ { t: "వజీర్", m: "ముసలి", s: "Crowd" },
193
+ { t: "ఖైని", m: "వదిన", s: "Crowd" },
194
+ { t: "సూన్", m: "కోడలు", s: "Crowd" },
195
+ { t: "Poral batal", m: "Temple term (Keslapur)", s: "Crowd" },
196
  { t: "కోయంగ్", m: "Dialect/Language", s: "Gondi" }, { t: "పైలం", m: "Careful", s: "Mandalikalu" },
197
  { t: "ఆడ", m: "There", s: "General" }, { t: "కాకా", m: "Uncle", s: "Marathi Infl." },
198
  { t: "పటేల్", m: "Village Head", s: "Tribal" }, { t: "గూడ", m: "Hamlet", s: "Rural" },
 
238
  name: "Nizamabad", lat: 18.6725, lng: 78.0941, region: "Indur Agrarian",
239
  history: "Rich agricultural zone (Turmeric). Strong Dakhni Urdu influence from the Nizam era.",
240
  words: [
241
+ { t: "పంపేవుడు", m: "పంపించడం", s: "Crowd" },
242
+ { t: "Pillodu", m: "Bindu", s: "Crowd" },
243
+ { t: "వచ్చిండు", m: "అచ్చిండు", s: "Crowd" },
244
+ { t: "పంపేవుడు", m: "పంపించడం", s: "Crowd" },
245
+ { t: "Pillodu", m: "Bindu", s: "Crowd" },
246
+ { t: "వచ్చిండు", m: "అచ్చిండు", s: "Crowd" },
247
  { t: "పసుపు", m: "Turmeric", s: "Agri" }, { t: "ఐగలు", m: "Priest", s: "Mandalikalu" },
248
  { t: "హామీ", m: "Assurance", s: "Urdu Infl." }, { t: "జీరా", m: "Boundary", s: "Agri" },
249
  { t: "పుంటికూర", m: "Gongura", s: "Food" }, { t: "అంగడి", m: "Shop", s: "Rural" },
 
267
  name: "Karimnagar", lat: 18.4386, lng: 79.1288, region: "Cultural Core",
268
  history: "Considered the standard for 'Telangana Slang' in media. Sharp, distinct pronunciation.",
269
  words: [
270
+ { t: "బూరెలు", m: "భక్ష్యాలు", s: "Crowd" },
271
+ { t: "అచ్చినం", m: "వచ్చాము", s: "Crowd" },
272
+ { t: "పాయినం", m: "వెళ్ళాము", s: "Crowd" },
273
+ { t: "సవాలు", m: "Question/Challenge", s: "Crowd" },
274
+ { t: "గటక", m: "Food item", s: "Crowd" },
275
+ { t: "వస్తున్నావ", m: "వస్తున్నావు", s: "Crowd" },
276
+ { t: "ఊశము", m: "బద్ధకం/అలసత్వం", s: "Crowd" },
277
+ { t: "వందంగా ఉంది", m: "బాగా", s: "Crowd" },
278
+ { t: "రువిడ్లు", m: "Shelf", s: "Crowd" },
279
+ { t: "కార్యపాలు", m: "వస్తున్నం/పోతున్నాం", s: "Crowd" },
280
+ { t: "బావి", m: "నూతి", s: "Crowd" },
281
+ { t: "గంప", m: "గుల్ల", s: "Crowd" },
282
+ { t: "బంతి", m: "Ball", s: "Crowd" },
283
+ { t: "బూరెలు", m: "భక్ష్యాలు", s: "Crowd" },
284
+ { t: "అచ్చినం", m: "వచ్చాము", s: "Crowd" },
285
+ { t: "పాయినం", m: "వెళ్ళాము", s: "Crowd" },
286
+ { t: "సవాలు", m: "Question/Challenge", s: "Crowd" },
287
+ { t: "గటక", m: "Food item", s: "Crowd" },
288
+ { t: "వస్తున్నావ", m: "వస్తున్నావు", s: "Crowd" },
289
+ { t: "ఊశము", m: "బద్ధకం/అలసత్వం", s: "Crowd" },
290
+ { t: "వందంగా ఉంది", m: "బాగా", s: "Crowd" },
291
+ { t: "రువిడ్లు", m: "Shelf", s: "Crowd" },
292
+ { t: "కార్యపాలు", m: "వస్తున్నం/పోతున్నాం", s: "Crowd" },
293
+ { t: "బావి", m: "నూతి", s: "Crowd" },
294
+ { t: "గంప", m: "గుల్ల", s: "Crowd" },
295
+ { t: "బంతి", m: "Ball", s: "Crowd" },
296
  { t: "తోపు", m: "Great/Top", s: "Slang" }, { t: "కేక", m: "Super", s: "Slang" },
297
  { t: "లొల్లి", m: "Fight/Noise", s: "General" }, { t: "శాన", m: "Very", s: "Mandalikalu" },
298
  { t: "పైసల్", m: "Money", s: "General" }, { t: "గత్తర", m: "Mess", s: "Slang" },
 
315
  name: "Peddapalli", lat: 18.6146, lng: 79.3705, region: "Industrial Hub",
316
  history: "Home to NTPC and Coal mines. Vocabulary is a mix of rural and industrial English loan words.",
317
  words: [
318
+ { t: "గుమ్ము", m: "Storage", s: "Crowd" },
319
+ { t: "గట్టు", m: "దారి", s: "Crowd" },
320
+ { t: "గుమ్ము", m: "Storage", s: "Crowd" },
321
+ { t: "గట్టు", m: "దారి", s: "Crowd" },
322
  { t: "బొగ్గు", m: "Coal", s: "Mining" }, { t: "కరెంట్", m: "Power", s: "Utility" },
323
  { t: "క్వార్టర్", m: "Housing", s: "Industry" }, { t: "షిఫ్ట్", m: "Work Shift", s: "Labor" },
324
  { t: "గేట్", m: "Entrance", s: "General" }, { t: "పోరడు", m: "Boy", s: "General" },
 
342
  name: "Warangal", lat: 17.9689, lng: 79.5941, region: "Kakatiya Rural",
343
  history: "Historic Orugallu. Retains classical Telugu terms mixed with rural agricultural slang.",
344
  words: [
345
+ { t: "చేను", m: "Crop/చలక", s: "Crowd" },
346
+ { t: "పొయ్యం రారా", m: "ఇన్నానిల్లు", s: "Crowd" },
347
+ { t: "అసుంట", m: "అటు వైపు", s: "Crowd" },
348
+ { t: "ఇసుంట", m: "ఇటు వైపు", s: "Crowd" },
349
+ { t: "చద్దెర", m: "Bed sheet", s: "Crowd" },
350
+ { t: "చేను", m: "Crop/చలక", s: "Crowd" },
351
+ { t: "పొయ్యం రారా", m: "ఇన్నానిల్లు", s: "Crowd" },
352
+ { t: "అసుంట", m: "అటు వైపు", s: "Crowd" },
353
+ { t: "ఇసుంట", m: "ఇటు వైపు", s: "Crowd" },
354
+ { t: "చద్దెర", m: "Bed sheet", s: "Crowd" },
355
  { t: "చెల్క", m: "Field", s: "Agri" }, { t: "గ���్డపార", m: "Crowbar", s: "Tools" },
356
  { t: "నాగలి", m: "Plough", s: "Agri" }, { t: "ఎడ్లు", m: "Bulls", s: "Agri" },
357
  { t: "పంట", m: "Crop", s: "Agri" }, { t: "ఎరువ", m: "Fertilizer", s: "Agri" },
 
374
  name: "Jangaon", lat: 17.7226, lng: 79.1685, region: "Central Junction",
375
  history: "A crossroads district. Famous for Jatharas and rural festivals.",
376
  words: [
377
+ { t: "ఏమైంది", m: "What happened", s: "Crowd" },
378
+ { t: "ఏమైంది", m: "What happened", s: "Crowd" },
379
  { t: "గుట్ట", m: "Hillock", s: "Geo" }, { t: "జాతర", m: "Fair", s: "Culture" },
380
  { t: "బోనం", m: "Offering", s: "Ritual" }, { t: "సాక", m: "Branch", s: "Nature" },
381
  { t: "కోడి", m: "Chicken", s: "Food" }, { t: "మేక", m: "Goat", s: "Agri" },
 
398
  name: "Mahabubabad", lat: 17.5956, lng: 80.0053, region: "Tribal Corridor",
399
  history: "Strong Lambadi/Banjara tribal presence influences the local lexicon.",
400
  words: [
401
+ { t: "బొచ్చెడు", m: "చాలా (A lot)", s: "Crowd" },
402
+ { t: "ఏ మయింది అన్నా", m: "What happened", s: "Crowd" },
403
+ { t: "బొచ్చెడు", m: "చాలా (A lot)", s: "Crowd" },
404
+ { t: "ఏ మయింది అన్నా", m: "What happened", s: "Crowd" },
405
  { t: "తండా", m: "Hamlet", s: "Tribal" }, { t: "బంజారా", m: "Tribe", s: "Community" },
406
  { t: "గూడు", m: "Nest/Hut", s: "General" }, { t: "తవ్వు", m: "Dig", s: "Action" },
407
  { t: "పాట", m: "Song", s: "Culture" }, { t: "ఆట", m: "Dance/Play", s: "Culture" },
 
447
  name: "Mahabubnagar", lat: 16.7488, lng: 78.0035, region: "Palamuru",
448
  history: "Palamuru region. Known for migration (Valasa) and distinct, rougher intonation.",
449
  words: [
450
+ { t: "వీధి", m: "Street", s: "Crowd" },
451
+ { t: "జల్ది", m: "తొందరగా", s: "Crowd" },
452
+ { t: "జింగిడి", m: "బర్రెల గుంపు", s: "Crowd" },
453
+ { t: "బాగమ్", m: "Exhibition", s: "Crowd" },
454
+ { t: "చలక", m: "Field", s: "Crowd" },
455
+ { t: "ఈల పేట", m: "కత్తి పేట", s: "Crowd" },
456
+ { t: "వీధి", m: "Street", s: "Crowd" },
457
+ { t: "జల్ది", m: "తొందరగా", s: "Crowd" },
458
+ { t: "జింగిడి", m: "బర్రెల గుంపు", s: "Crowd" },
459
+ { t: "బాగమ్", m: "Exhibition", s: "Crowd" },
460
+ { t: "చలక", m: "Field", s: "Crowd" },
461
+ { t: "ఈల పేట", m: "కత్తి పేట", s: "Crowd" },
462
  { t: "పాలమూరు", m: "Mahabubnagar", s: "Place" }, { t: "వలస", m: "Migration", s: "Social" },
463
  { t: "కూలీ", m: "Laborer", s: "Social" }, { t: "అడ్డా", m: "Stand/Place", s: "Social" },
464
  { t: "అప్ప", m: "Father", s: "Seema Infl." }, { t: "అయ్య", m: "Father", s: "General" },
 
470
  name: "Nagarkurnool", lat: 16.4856, lng: 78.3305, region: "Nallamalla Zone",
471
  history: "Covers the Nallamalla forest. Chenchu tribal words are part of the local mix.",
472
  words: [
473
+ { t: "అంబటాలు", m: "Morning meal time", s: "Crowd" },
474
+ { t: "మంకర", m: "Winter cold", s: "Crowd" },
475
+ { t: "లాడు", m: "తల్లి కూతురు", s: "Crowd" },
476
+ { t: "గెనిమ", m: "పొలం గట్టు", s: "Crowd" },
477
+ { t: "కోంత లోలు", m: "Old name for Nagar Kurnool", s: "Crowd" },
478
+ { t: "బుడ్డల నూనె", m: "పల్లి oil (Peanut oil)", s: "Crowd" },
479
+ { t: "అంబటాలు", m: "Morning meal time", s: "Crowd" },
480
+ { t: "మంకర", m: "Winter cold", s: "Crowd" },
481
+ { t: "లాడు", m: "తల్లి కూతురు", s: "Crowd" },
482
+ { t: "గెనిమ", m: "పొలం గట్టు", s: "Crowd" },
483
+ { t: "కోంత లోలు", m: "Old name for Nagar Kurnool", s: "Crowd" },
484
+ { t: "బుడ్డల నూనె", m: "పల్లి oil (Peanut oil)", s: "Crowd" },
485
  { t: "నల్ల", m: "Black", s: "General" }, { t: "మళ్ళ", m: "Again", s: "General" },
486
  { t: "కొండ", m: "Hill", s: "Geo" }, { t: "వాగు", m: "Stream", s: "Geo" },
487
  { t: "చెంచు", m: "Tribe", s: "Community" }, { t: "తేనె", m: "Honey", s: "Forest" },
 
493
  name: "Wanaparthy", lat: 16.3621, lng: 78.0617, region: "Samsthanam",
494
  history: "A historic Samsthanam (Estate). The dialect reflects a feudal/royal past.",
495
  words: [
496
+ { t: "చెప్పలకాయలు", m: "గొంకరకాయలు", s: "Crowd" },
497
+ { t: "మలంచా", m: "చెంబు", s: "Crowd" },
498
+ { t: "సొరకాయ", m: "ఆనకాయ", s: "Crowd" },
499
+ { t: "పాశాల", m: "Clothes", s: "Crowd" },
500
+ { t: "మట్టుగుండు", m: "Keep calm", s: "Crowd" },
501
+ { t: "అంబరుంది", m: "Excellent", s: "Crowd" },
502
+ { t: "చెప్పలకాయలు", m: "గొంకరకాయలు", s: "Crowd" },
503
+ { t: "మలంచా", m: "చెంబు", s: "Crowd" },
504
+ { t: "సొరకాయ", m: "ఆనకాయ", s: "Crowd" },
505
+ { t: "పాశాల", m: "Clothes", s: "Crowd" },
506
+ { t: "మట్టుగుండు", m: "Keep calm", s: "Crowd" },
507
+ { t: "అంబరుంది", m: "Excellent", s: "Crowd" },
508
  { t: "సంస్థానం", m: "Estate", s: "History" }, { t: "రాజా", m: "King", s: "History" },
509
  { t: "కోట", m: "Fort", s: "History" }, { t: "బంగారు", m: "Golden", s: "General" },
510
  { t: "పట్టు", m: "Silk", s: "Textile" }, { t: "చీర", m: "Saree", s: "Textile" },
 
516
  name: "Jogulamba Gadwal", lat: 16.2343, lng: 77.7289, region: "River Doab",
517
  history: "Between Krishna and Tungabhadra rivers. Known for Handlooms and temples.",
518
  words: [
519
+ { t: "ఓల్లి", m: "No", s: "Crowd" },
520
+ { t: "కూడు తింటవా", m: "తిన్నారా", s: "Crowd" },
521
+ { t: "తువ్వ", m: "ఎర్ర పొలం", s: "Crowd" },
522
+ { t: "పురకోస", m: "జూట్ దార", s: "Crowd" },
523
+ { t: "జుముజలమ్మ", m: "దేవత", s: "Crowd" },
524
+ { t: "తలుగు ఎల్లమ్మ", m: "దేవత", s: "Crowd" },
525
+ { t: "తెల్వది", m: "Don\'t know", s: "Crowd" },
526
+ { t: "మడసంగ", m: "నెమ్మదిగా/జాగ్రత్తగా", s: "Crowd" },
527
+ { t: "రప్పున", m: "జల్ది", s: "Crowd" },
528
+ { t: "మడసంగ", m: "Careful", s: "Crowd" },
529
+ { t: "ఓల్లి", m: "No", s: "Crowd" },
530
+ { t: "కూడు తింటవా", m: "తిన్నారా", s: "Crowd" },
531
+ { t: "తువ్వ", m: "ఎర్ర పొలం", s: "Crowd" },
532
+ { t: "పురకోస", m: "జూట్ దార", s: "Crowd" },
533
+ { t: "జుముజలమ్మ", m: "దేవత", s: "Crowd" },
534
+ { t: "తలుగు ఎల్లమ్మ", m: "దేవత", s: "Crowd" },
535
+ { t: "తెల్వది", m: "Don\'t know", s: "Crowd" },
536
+ { t: "మడసంగ", m: "నెమ్మదిగా/జాగ్రత్తగా", s: "Crowd" },
537
+ { t: "రప్పున", m: "జల్ది", s: "Crowd" },
538
+ { t: "మడసంగ", m: "Careful", s: "Crowd" },
539
  { t: "నడుము", m: "Waist/Middle", s: "Body" }, { t: "గడ్డ", m: "Land/Bank", s: "Geo" },
540
  { t: "కృష్ణ", m: "River", s: "Geo" }, { t: "తుంగభద్ర", m: "River", s: "Geo" },
541
  { t: "పదిహేను", m: "Fifteen", s: "Standard" }, { t: "పదహైదు", m: "Fifteen", s: "Local" },
 
547
  name: "Narayanpet", lat: 16.7323, lng: 77.4988, region: "Karnataka Border",
548
  history: "Strong Kannada influence due to location. Cuisine terms (Rotti) are common.",
549
  words: [
550
+ { t: "బుబ్బి", m: "అమ్మ", s: "Crowd" },
551
+ { t: "పడం", m: "మట్టి", s: "Crowd" },
552
+ { t: "చెముక్కలు", m: "మోకాళ్ళు", s: "Crowd" },
553
+ { t: "మొర", m: "మంచం", s: "Crowd" },
554
+ { t: "అబుత", m: "జుట్టు", s: "Crowd" },
555
+ { t: "జేజి", m: "Fat", s: "Crowd" },
556
+ { t: "��ంబలి", m: "జావ", s: "Crowd" },
557
+ { t: "బుబ్బి", m: "అమ్మ", s: "Crowd" },
558
+ { t: "పడం", m: "మట్టి", s: "Crowd" },
559
+ { t: "చెముక్కలు", m: "మోకాళ్ళు", s: "Crowd" },
560
+ { t: "మొర", m: "మంచం", s: "Crowd" },
561
+ { t: "అబుత", m: "జుట్టు", s: "Crowd" },
562
+ { t: "జేజి", m: "Fat", s: "Crowd" },
563
+ { t: "అంబలి", m: "జావ", s: "Crowd" },
564
  { t: "పేట", m: "Town", s: "Suffix" }, { t: "చీర", m: "Saree", s: "Textile" },
565
  { t: "మగ్గ", m: "Loom", s: "Textile" }, { t: "బోర్డర్", m: "Border", s: "Geo" },
566
  { t: "కన్నడ", m: "Language", s: "Influence" }, { t: "రొట్టి", m: "Bread", s: "Food" },
 
572
  name: "Nalgonda", lat: 17.0577, lng: 79.2683, region: "Southern Plains",
573
  history: "Known for the Nalgonda movement. Dialect is direct, sharp, and iconic.",
574
  words: [
575
+ { t: "Dupa aithundhi", m: "దాహం వేస్తుంది", s: "Crowd" },
576
+ { t: "సేరు", m: "1kg measuring device", s: "Crowd" },
577
+ { t: "Kurdedu Biyam", m: "Amount of rice", s: "Crowd" },
578
+ { t: "Anglam dundu", m: "అగ్గి పెట్టె", s: "Crowd" },
579
+ { t: "సది", m: "Take the box", s: "Crowd" },
580
+ { t: "తట్ట", m: "పళ్ళెం", s: "Crowd" },
581
+ { t: "కోవెల", m: "గుడి", s: "Crowd" },
582
+ { t: "ఊసలు", m: "Weaving technique", s: "Crowd" },
583
+ { t: "బువ్వ", m: "Cooked rice", s: "Crowd" },
584
+ { t: "తవాచీ", m: "Shelf with doors", s: "Crowd" },
585
+ { t: "తపుకు", m: "Plate on vessel", s: "Crowd" },
586
+ { t: "లడ్లు", m: "అరిసెలు", s: "Crowd" },
587
+ { t: "దారి", m: "బాట", s: "Crowd" },
588
+ { t: "Dupa aithundhi", m: "దాహం వేస్తుంది", s: "Crowd" },
589
+ { t: "సేరు", m: "1kg measuring device", s: "Crowd" },
590
+ { t: "Kurdedu Biyam", m: "Amount of rice", s: "Crowd" },
591
+ { t: "Anglam dundu", m: "అగ్గి పెట్టె", s: "Crowd" },
592
+ { t: "సది", m: "Take the box", s: "Crowd" },
593
+ { t: "తట్ట", m: "పళ్ళెం", s: "Crowd" },
594
+ { t: "కోవెల", m: "గుడి", s: "Crowd" },
595
+ { t: "ఊసలు", m: "Weaving technique", s: "Crowd" },
596
+ { t: "బువ్వ", m: "Cooked rice", s: "Crowd" },
597
+ { t: "తవాచీ", m: "Shelf with doors", s: "Crowd" },
598
+ { t: "తపుకు", m: "Plate on vessel", s: "Crowd" },
599
+ { t: "లడ్లు", m: "అరిసెలు", s: "Crowd" },
600
+ { t: "దారి", m: "బాట", s: "Crowd" },
601
  { t: "నల్ల", m: "Black", s: "General" }, { t: "కొండ", m: "Hill", s: "Geo" },
602
  { t: "ఫ్లోరోసిస్", m: "Disease", s: "History" }, { t: "నీళ్ళు", m: "Water", s: "General" },
603
  { t: "బావి", m: "Well", s: "Agri" }, { t: "ఏడ", m: "Where", s: "Grammar" },
 
632
  name: "Medak", lat: 18.0487, lng: 78.2657, region: "Heritage West",
633
  history: "Historical seat of power. 'Metuku' (rice grain) is the etymological root.",
634
  words: [
635
+ { t: "కీసా", m: "జేబు", s: "Crowd" },
636
+ { t: "పైను", m: "ఆరు (Six)", s: "Crowd" },
637
+ { t: "కీసా", m: "జేబు", s: "Crowd" },
638
+ { t: "పైను", m: "ఆరు (Six)", s: "Crowd" },
639
  { t: "చర్చి", m: "Church", s: "Landmark" }, { t: "మెతుకు", m: "Rice Grain", s: "Etymology" },
640
  { t: "దుర్గం", m: "Fort", s: "History" }, { t: "కోట", m: "Fort", s: "History" },
641
  { t: "గడి", m: "Room", s: "Rural" }, { t: "సింహ", m: "Lion", s: "Art" },
 
658
  name: "Siddipet", lat: 18.1018, lng: 78.8520, region: "Political Hub",
659
  history: "A vibrant, politically active district. Home to Komuravelli Mallanna.",
660
  words: [
661
+ { t: "అంగీ", m: "Shirt", s: "Crowd" },
662
+ { t: "పొయ్యిర్రు", m: "వెళ్ళారు", s: "Crowd" },
663
+ { t: "మెగులుతుంది", m: "వర్షం వచ్���ి ఆగిన", s: "Crowd" },
664
+ { t: "అలుకురు", m: "Pre cultivation", s: "Crowd" },
665
+ { t: "పయిలం", m: "జాగ్రత్త", s: "Crowd" },
666
+ { t: "తప్పెలు", m: "Rice plate", s: "Crowd" },
667
+ { t: "పందిట్లు", m: "పందిరి", s: "Crowd" },
668
+ { t: "రాకొచ్చింది", m: "రాదు", s: "Crowd" },
669
+ { t: "పోకొచ్చింది", m: "పోదు", s: "Crowd" },
670
+ { t: "కుకో", m: "కూర్చో", s: "Crowd" },
671
+ { t: "ఏడారు", m: "Afternoon time", s: "Crowd" },
672
+ { t: "అంగీ", m: "Shirt", s: "Crowd" },
673
+ { t: "పొయ్యిర్రు", m: "వెళ్ళారు", s: "Crowd" },
674
+ { t: "మెగులుతుంది", m: "వర్షం వచ్చి ఆగిన", s: "Crowd" },
675
+ { t: "అలుకురు", m: "Pre cultivation", s: "Crowd" },
676
+ { t: "పయిలం", m: "జాగ్రత్త", s: "Crowd" },
677
+ { t: "తప్పెలు", m: "Rice plate", s: "Crowd" },
678
+ { t: "పందిట్లు", m: "పందిరి", s: "Crowd" },
679
+ { t: "రాకొచ్చింది", m: "రాదు", s: "Crowd" },
680
+ { t: "పోకొచ్చింది", m: "పోదు", s: "Crowd" },
681
+ { t: "కుకో", m: "కూర్చో", s: "Crowd" },
682
+ { t: "ఏడారు", m: "Afternoon time", s: "Crowd" },
683
  { t: "కోటి", m: "Monkey", s: "Local" }, { t: "మల్లన్న", m: "God Name", s: "Religion" },
684
  { t: "పట్నం", m: "City", s: "General" }, { t: "చెరువు", m: "Lake", s: "Geo" },
685
  { t: "బతుకమ్మ", m: "Festival", s: "Culture" }, { t: "పూలు", m: "Flowers", s: "Nature" },
 
691
  name: "Rangareddy", lat: 17.3457, lng: 78.5522, region: "Peri-Urban",
692
  history: "Surrounds Hyderabad. Mix of rural farms and real estate boom vocabulary.",
693
  words: [
694
+ { t: "వీరునో", m: "తెలుగు", s: "Crowd" },
695
+ { t: "తొక్కుడు", m: "మంచం", s: "Crowd" },
696
+ { t: "మూర", m: "ముంగిలి", s: "Crowd" },
697
+ { t: "కారం", m: "పచ్చడి", s: "Crowd" },
698
+ { t: "ఈ గడ", m: "కడ", s: "Crowd" },
699
+ { t: "వీరునో", m: "తెలుగు", s: "Crowd" },
700
+ { t: "తొక్కుడు", m: "మంచం", s: "Crowd" },
701
+ { t: "మూర", m: "ముంగిలి", s: "Crowd" },
702
+ { t: "కారం", m: "పచ్చడి", s: "Crowd" },
703
+ { t: "ఈ గడ", m: "కడ", s: "Crowd" },
704
  { t: "ఎయిర్పోర్ట్", m: "Airport", s: "Infra" }, { t: "ఫ్లైట్", m: "Plane", s: "Transport" },
705
  { t: "రియల్ ఎస్టేట్", m: "Land Biz", s: "Biz" }, { t: "ప్లాట్", m: "Plot", s: "Biz" },
706
  { t: "రేటు", m: "Price", s: "Biz" }, { t: "మచ్చ", m: "Friend", s: "Slang" },
 
734
  name: "Hyderabad", lat: 17.3850, lng: 78.4867, region: "Capital",
735
  history: "The historic capital. Famous for the unique Dakhni-Telugu fusion dialect.",
736
  words: [
737
+ { t: "కిటికీ", m: "Window", s: "Crowd" },
738
+ { t: "అంగీ", m: "Shirt", s: "Crowd" },
739
+ { t: "కుక్క", m: "Dog", s: "Crowd" },
740
+ { t: "కుర్చీ", m: "Chair", s: "Crowd" },
741
+ { t: "Amma buvva pettava", m: "Mother feed me", s: "Crowd" },
742
+ { t: "Chaderghat", m: "Location", s: "Crowd" },
743
+ { t: "తొవ్వ దారి", m: "Way/Path", s: "Crowd" },
744
+ { t: "పాతాళగరిసె", m: "Tool to remove bucket", s: "Crowd" },
745
+ { t: "అంబటాలు", m: "Afternoon time", s: "Crowd" },
746
+ { t: "ఇన్సురాయి", m: "Stone tool", s: "Crowd" },
747
+ { t: "బుక్కెట్", m: "Tool for well", s: "Crowd" },
748
+ { t: "కిటికీ", m: "Window", s: "Crowd" },
749
+ { t: "అంగీ", m: "Shirt", s: "Crowd" },
750
+ { t: "కుక్క", m: "Dog", s: "Crowd" },
751
+ { t: "కుర్చీ", m: "Chair", s: "Crowd" },
752
+ { t: "Amma buvva pettava", m: "Mother feed me", s: "Crowd" },
753
+ { t: "Chaderghat", m: "Location", s: "Crowd" },
754
+ { t: "తొవ్వ దారి", m: "Way/Path", s: "Crowd" },
755
+ { t: "పాతాళగరిసె", m: "Tool to remove bucket", s: "Crowd" },
756
+ { t: "అంబటాలు", m: "Afternoon time", s: "Crowd" },
757
+ { t: "ఇన్సురాయి", m: "Stone tool", s: "Crowd" },
758
+ { t: "బుక్కెట్", m: "Tool for well", s: "Crowd" },
759
  { t: "కైకు", m: "Why", s: "Dakhni" }, { t: "నక్కో", m: "No", s: "Dakhni" },
760
  { t: "హౌ", m: "Yes", s: "Dakhni" }, { t: "బైగన్", m: "Useless", s: "Slang" },
761
  { t: "చిచ్చా", m: "Uncle", s: "Slang" }, { t: "పోట్టి", m: "Girl", s: "Slang" },
 
765
  }
766
  ];
767
 
768
+ // --- 1.5. DYNAMIC DATA LOADING & MERGING ---
769
+
770
+ // AP District Coordinate Mapping
771
+ const AP_COORDINATES = {
772
+ "Alluri Sitharama Raju": { "lat": 17.7000, "lng": 81.9000, "region": "Coastal Andhra", "history": "Named after the legendary freedom fighter; a hub of tribal culture and the Rampa Rebellion." },
773
+ "Anakapalli": { "lat": 17.6913, "lng": 83.0039, "region": "Coastal Andhra", "history": "Historical Buddhist site (Bojjanakonda) and a major center for the jaggery trade." },
774
+ "Anantapur": { "lat": 14.6856, "lng": 77.6006, "region": "Rayalaseema", "history": "Ancient cultural zone with Kannada and Marathi influences; home to the Gooty Fort." },
775
+ "Annamayya": { "lat": 13.9744, "lng": 78.9647, "region": "Rayalaseema", "history": "Named after the saint-poet Tallapaka Annamacharya; rich in spiritual and forest heritage." },
776
+ "Bapatla": { "lat": 15.9045, "lng": 80.4682, "region": "Coastal Andhra", "history": "Known for its historical Suryalanka beach and prominent educational institutions since the British era." },
777
+ "Chittoor": { "lat": 13.2172, "lng": 79.1003, "region": "Rayalaseema", "history": "A major gateway to South India with deep links to the Vijayanagara Empire." },
778
+ "Dr. B.R. Ambedkar Konaseema": { "lat": 16.6360, "lng": 81.9961, "region": "Coastal Andhra", "history": "The 'Kerala of Andhra'; a lush delta region known for Vedic culture and coconut groves." },
779
+ "East Godavari": { "lat": 17.0005, "lng": 81.7729, "region": "Coastal Andhra", "history": "The rice bowl of AP; historically a cultural epicenter of the Telugu language." },
780
+ "Eluru": { "lat": 16.7107, "lng": 81.1018, "region": "Coastal Andhra", "history": "Former Buddhist center and capital of the Vengi dynasty." },
781
+ "Guntur": { "lat": 16.3067, "lng": 80.4365, "region": "Coastal Andhra", "history": "Ancient seat of learning (Amaravati) and a global hub for the spice trade." },
782
+ "Kakinada": { "lat": 16.9891, "lng": 82.2475, "region": "Coastal Andhra", "history": "Known as the 'Pensioner's Paradise'; a key port city during the Dutch and British eras." },
783
+ "Konaseema": { "lat": 16.5000, "lng": 82.0000, "region": "Coastal Andhra", "history": "Famous for its lush greenery and traditional Brahminical scholarship." },
784
+ "Krishna": { "lat": 16.1800, "lng": 81.1300, "region": "Coastal Andhra", "history": "Named after the sacred river; the heartland of the Kuchipudi dance form." },
785
+ "Kurnool": { "lat": 15.8281, "lng": 78.0373, "region": "Rayalaseema", "history": "The first capital of Andhra State (1953-1956) and home to the Konda Reddy Fort." },
786
+ "Nandyal": { "lat": 15.4811, "lng": 78.4862, "region": "Rayalaseema", "history": "Surrounded by the 'Nava Nandulu' temples and a gateway to the Nallamala forests." },
787
+ "NTR": { "lat": 16.5062, "lng": 80.6480, "region": "Coastal Andhra", "history": "Named after the legendary actor-politician N.T. Rama Rao; encompasses the bustling city of Vijayawada." },
788
+ "Palnadu": { "lat": 16.2900, "lng": 79.9100, "region": "Coastal Andhra", "history": "Famous for the historic 'Battle of Palnadu' often compared to the Mahabharata." },
789
+ "Parvathipuram Manyam": { "lat": 18.7781, "lng": 83.4219, "region": "Coastal Andhra", "history": "A tribal-dominated hill region with rich folk traditions and forest history." },
790
+ "Prakasam": { "lat": 15.5057, "lng": 80.0493, "region": "Coastal Andhra", "history": "Named after Tanguturi Prakasam Pantulu; contains ancient Buddhist sites and Motupalli port." },
791
+ "Sri Potti Sriramulu Nellore": { "lat": 14.4426, "lng": 79.9865, "region": "Coastal Andhra", "history": "Home to the Satish Dhawan Space Centre and historically famous for its mica mines." },
792
+ "Sri Sathya Sai": { "lat": 14.1670, "lng": 77.8111, "region": "Rayalaseema", "history": "Named after the spiritual leader Sathya Sai Baba; includes the spiritual hub of Puttaparthi." },
793
+ "Srikakulam": { "lat": 18.2949, "lng": 83.8938, "region": "Coastal Andhra", "history": "Ancient land of the Kalinga Empire with prominent sun temples and Buddhist ruins." },
794
+ "Tirupati": { "lat": 13.6288, "lng": 79.4192, "region": "Rayalaseema", "history": "The spiritual capital of AP; home to the world-famous Lord Venkateswara Temple." },
795
+ "Visakhapatnam": { "lat": 17.6868, "lng": 83.2185, "region": "Coastal Andhra", "history": "A major naval center and historical port known as the 'City of Destiny'." },
796
+ "Vizianagaram": { "lat": 18.1124, "lng": 83.3956, "region": "Coastal Andhra", "history": "Meaning 'City of Victory'; historically ruled by the Pusapati Rajas." },
797
+ "West Godavari": { "lat": 16.7110, "lng": 81.5230, "region": "Coastal Andhra", "history": "A prosperous agricultural region known for its extensive canal system and Kolleru Lake." },
798
+ "YSR Kadapa": { "lat": 14.4673, "lng": 78.8242, "region": "Rayalaseema", "history": "Heart of the Rayalaseema region; home to the Gandikota canyon and rich mineral deposits." }
799
+ };
800
+
801
+ async function loadAndMergeDynamicData() {
802
+ try {
803
+ // Load processed_dialects.json
804
+ const response1 = await fetch('data/processed/processed_dialects.json');
805
+ if (response1.ok) {
806
+ const dynamicDistricts = await response1.json();
807
+ console.log(`✓ Loaded ${dynamicDistricts.length} districts from processed_dialects.json`);
808
+
809
+ dynamicDistricts.forEach(dynamicDistrict => {
810
+ const existingDistrict = dialectData.find(d => d.name === dynamicDistrict.name);
811
+
812
+ if (existingDistrict) {
813
+ console.log(` → Enhancing ${dynamicDistrict.name} with ${dynamicDistrict.words.length} additional words`);
814
+ existingDistrict.words = [...existingDistrict.words, ...dynamicDistrict.words];
815
+ } else {
816
+ console.log(` → Adding new district: ${dynamicDistrict.name} with ${dynamicDistrict.words.length} words`);
817
+ dialectData.push(dynamicDistrict);
818
+ }
819
+ });
820
+ }
821
+
822
+ // Load digiwords_grouped.json
823
+ const response2 = await fetch('data/processed/digiwords_grouped.json');
824
+ if (response2.ok) {
825
+ const digiwords = await response2.json();
826
+
827
+ // Process both Telangana and Andhra Pradesh districts
828
+ ['Telangana', 'Andhra Pradesh'].forEach(state => {
829
+ const stateDistricts = digiwords[state] || {};
830
+ console.log(`\n✓ Processing ${Object.keys(stateDistricts).length} districts from ${state}`);
831
+
832
+ Object.entries(stateDistricts).forEach(([districtName, wordsArray]) => {
833
+ const existingDistrict = dialectData.find(d => d.name === districtName);
834
+
835
+ if (existingDistrict) {
836
+ // Merge words into existing district
837
+ console.log(` → Merging ${wordsArray.length} words into ${districtName}`);
838
+ existingDistrict.words = [...existingDistrict.words, ...wordsArray];
839
+ } else {
840
+ // Create new district for AP (Telangana districts should already exist)
841
+ const coords = AP_COORDINATES[districtName];
842
+ if (coords) {
843
+ const newDistrict = {
844
+ name: districtName,
845
+ lat: coords.lat,
846
+ lng: coords.lng,
847
+ region: coords.region,
848
+ history: coords.history,
849
+ words: wordsArray
850
+ };
851
+ console.log(` → Adding new AP district: ${districtName} with ${wordsArray.length} words`);
852
+ dialectData.push(newDistrict);
853
+ } else {
854
+ console.warn(` ⚠ Skipping ${districtName}: No coordinates found`);
855
+ }
856
+ }
857
+ });
858
+ });
859
+ }
860
+
861
+ console.log(`\n✅ Total districts loaded: ${dialectData.length}`);
862
+
863
+ } catch (error) {
864
+ console.error('Error loading dynamic data:', error);
865
+ console.log('Continuing with hardcoded data only.');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
866
  }
867
+ }
 
 
 
868
 
869
  // --- 2. MAP SETUP ---
870
+ // Initialize map after data is loaded
871
+ let map;
872
+
873
+ async function initializeMap() {
874
+ // Load dynamic data first
875
+ await loadAndMergeDynamicData();
876
+
877
+ // Update district counter
878
+ const telanganaCount = dialectData.filter(d => !AP_COORDINATES[d.name]).length;
879
+ const apCount = dialectData.filter(d => AP_COORDINATES[d.name]).length;
880
+ document.getElementById('district-counter').textContent =
881
+ `Telangana: ${telanganaCount} Andhra Pradesh: ${apCount} • Total: ${dialectData.length} Districts`;
882
+
883
+ // Center map to show both Telangana and Andhra Pradesh
884
+ map = L.map('map').setView([16.5, 79.8], 6.5);
885
+
886
+ L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', {
887
+ attribution: '&copy; OSM contributors'
888
+ }).addTo(map);
889
+
890
+ // --- 3. MARKERS & INTERACTION ---
891
+ const sidebarPanel = document.getElementById('info-panel');
892
+
893
+ // Red Marker Style
894
+ const redIcon = L.divIcon({
895
+ className: 'custom-marker',
896
+ html: '📍',
897
+ iconSize: [30, 30],
898
+ iconAnchor: [15, 30]
899
+ });
900
 
901
+ dialectData.forEach(d => {
902
+ const marker = L.marker([d.lat, d.lng], { icon: redIcon }).addTo(map);
 
903
 
904
+ // Hover Label
905
+ marker.bindTooltip(`<b>${d.name}</b>`, { direction: 'top', offset: [0, -5] });
906
 
907
+ // Click Action
908
+ marker.on('click', () => {
909
+ map.flyTo([d.lat, d.lng], 9, { duration: 1.2 });
910
+ updateSidebar(d);
911
+ });
912
  });
 
913
 
914
+ function updateSidebar(data) {
915
+ const rows = data.words.map(w => `
 
 
 
 
 
 
916
  <tr>
917
  <td class="telugu-word">${w.t}</td>
918
  <td>${w.m}</td>
919
+ <td style="color:#777; font-size:0.7rem;">${w.s}</td>
920
  </tr>
921
+ `).join('');
 
922
 
923
+ sidebarPanel.innerHTML = `
924
  <div style="animation:fadeIn 0.4s;">
925
  <h2 class="district-title">${data.name}</h2>
926
  <span class="region-tag">${data.region}</span>
 
931
  </table>
932
  </div>
933
  `;
934
+ }
935
  }
936
+
937
+ // Start the application
938
+ initializeMap();
939
  </script>
940
  </body>
941
 
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ google-auth>=2.25.0
2
+ google-auth-oauthlib>=1.2.0
3
+ google-auth-httplib2>=0.2.0
4
+ google-api-python-client>=2.110.0
5
+ watchdog>=3.0.0
6
+ python-dotenv>=1.0.0
scripts/automation_runner.py ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Automation Runner
4
+ Main orchestrator that runs all automation tasks:
5
+ - File watching
6
+ - Scheduled Google Sheets sync
7
+ - Initial conversion
8
+ """
9
+
10
+ import json
11
+ import time
12
+ import signal
13
+ import sys
14
+ import threading
15
+ import subprocess
16
+ from pathlib import Path
17
+ from datetime import datetime
18
+
19
+ # Paths
20
+ BASE_DIR = Path(__file__).parent.parent
21
+ CONFIG_FILE = BASE_DIR / "config.json"
22
+ SHEETS_SYNC_SCRIPT = BASE_DIR / "scripts" / "sheets_sync.py"
23
+ FILE_WATCHER_SCRIPT = BASE_DIR / "scripts" / "file_watcher.py"
24
+ CSV_TO_JSON_SCRIPT = BASE_DIR / "scripts" / "csv_to_json.py"
25
+
26
+
27
+ class AutomationRunner:
28
+ """Manages all automation tasks"""
29
+
30
+ def __init__(self):
31
+ self.config = self.load_config()
32
+ self.running = True
33
+ self.watcher_process = None
34
+ self.sync_thread = None
35
+
36
+ # Set up signal handlers for graceful shutdown
37
+ signal.signal(signal.SIGINT, self.signal_handler)
38
+ signal.signal(signal.SIGTERM, self.signal_handler)
39
+
40
+ def signal_handler(self, sig, frame):
41
+ """Handle shutdown signals"""
42
+ print("\n\n🛑 Shutdown signal received...")
43
+ self.running = False
44
+
45
+ def load_config(self):
46
+ """Load configuration"""
47
+ if not CONFIG_FILE.exists():
48
+ print(f"❌ Config file not found: {CONFIG_FILE}")
49
+ sys.exit(1)
50
+
51
+ with open(CONFIG_FILE, 'r') as f:
52
+ return json.load(f)
53
+
54
+ def run_initial_conversion(self):
55
+ """Run initial CSV-to-JSON conversion"""
56
+ print("🔄 Running initial CSV-to-JSON conversion...")
57
+ try:
58
+ subprocess.run([sys.executable, str(CSV_TO_JSON_SCRIPT)], check=True)
59
+ except subprocess.CalledProcessError:
60
+ print("⚠️ Initial conversion failed (this is OK if CSV files don't exist yet)")
61
+
62
+ def start_file_watcher(self):
63
+ """Start the file watcher in a separate process"""
64
+ if not self.config.get('file_watcher', {}).get('enabled', True):
65
+ print("⚠️ File watcher disabled in config")
66
+ return
67
+
68
+ print("👀 Starting file watcher...")
69
+ self.watcher_process = subprocess.Popen(
70
+ [sys.executable, str(FILE_WATCHER_SCRIPT)],
71
+ stdout=subprocess.PIPE,
72
+ stderr=subprocess.STDOUT,
73
+ text=True,
74
+ bufsize=1
75
+ )
76
+
77
+ # Stream output in a separate thread
78
+ def stream_output():
79
+ for line in self.watcher_process.stdout:
80
+ print(line, end='')
81
+
82
+ threading.Thread(target=stream_output, daemon=True).start()
83
+
84
+ def sync_sheets_once(self):
85
+ """Run Google Sheets sync once"""
86
+ print(f"\n⏰ [{datetime.now().strftime('%H:%M:%S')}] Running Google Sheets sync...")
87
+ try:
88
+ result = subprocess.run(
89
+ [sys.executable, str(SHEETS_SYNC_SCRIPT)],
90
+ capture_output=True,
91
+ text=True
92
+ )
93
+ print(result.stdout)
94
+ if result.returncode != 0:
95
+ print(result.stderr)
96
+ except Exception as e:
97
+ print(f"❌ Sync error: {e}")
98
+
99
+ def start_scheduled_sync(self):
100
+ """Start scheduled Google Sheets sync"""
101
+ sheets_config = self.config.get('google_sheets', {})
102
+
103
+ if not sheets_config.get('enabled', False):
104
+ print("⚠️ Google Sheets sync disabled in config")
105
+ return
106
+
107
+ interval_minutes = sheets_config.get('sync_interval_minutes', 5)
108
+ print(f"⏰ Starting scheduled sync (every {interval_minutes} minutes)...")
109
+
110
+ def sync_loop():
111
+ # Run initial sync
112
+ self.sync_sheets_once()
113
+
114
+ # Continue syncing at intervals
115
+ while self.running:
116
+ time.sleep(interval_minutes * 60)
117
+ if self.running:
118
+ self.sync_sheets_once()
119
+
120
+ self.sync_thread = threading.Thread(target=sync_loop, daemon=True)
121
+ self.sync_thread.start()
122
+
123
+ def run(self):
124
+ """Main run loop"""
125
+ print("=" * 60)
126
+ print("🚀 Dialect Map Automation System")
127
+ print("=" * 60)
128
+ print()
129
+
130
+ # Run initial conversion
131
+ self.run_initial_conversion()
132
+ print()
133
+
134
+ # Start file watcher
135
+ self.start_file_watcher()
136
+
137
+ # Start scheduled sync
138
+ self.start_scheduled_sync()
139
+
140
+ print()
141
+ print("=" * 60)
142
+ print("✅ All automation tasks started!")
143
+ print("=" * 60)
144
+ print("\n💡 Press Ctrl+C to stop all automation\n")
145
+
146
+ # Keep running until stopped
147
+ try:
148
+ while self.running:
149
+ time.sleep(1)
150
+ except KeyboardInterrupt:
151
+ pass
152
+
153
+ # Cleanup
154
+ print("\n🧹 Cleaning up...")
155
+ if self.watcher_process:
156
+ self.watcher_process.terminate()
157
+ self.watcher_process.wait()
158
+
159
+ print("✅ Automation stopped gracefully\n")
160
+
161
+
162
+ def main():
163
+ """Main entry point"""
164
+ runner = AutomationRunner()
165
+ runner.run()
166
+
167
+
168
+ if __name__ == "__main__":
169
+ main()
scripts/check_sheet_names.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Check Sheet Names
4
+ Quick utility to list all sheet tab names from Google Sheets
5
+ """
6
+
7
+ import json
8
+ from pathlib import Path
9
+ from google.oauth2 import service_account
10
+ from googleapiclient.discovery import build
11
+
12
+ # Paths
13
+ BASE_DIR = Path(__file__).parent.parent
14
+ CONFIG_FILE = BASE_DIR / "config.json"
15
+ CREDS_FILE = BASE_DIR / "credentials.json"
16
+
17
+
18
+ def get_sheet_names(spreadsheet_id, service):
19
+ """Get all sheet names from a spreadsheet"""
20
+ try:
21
+ sheet_metadata = service.spreadsheets().get(spreadsheetId=spreadsheet_id).execute()
22
+ sheets = sheet_metadata.get('sheets', [])
23
+ return [sheet['properties']['title'] for sheet in sheets]
24
+ except Exception as e:
25
+ print(f"❌ Error: {e}")
26
+ return []
27
+
28
+
29
+ def main():
30
+ # Load config
31
+ with open(CONFIG_FILE, 'r') as f:
32
+ config = json.load(f)
33
+
34
+ # Authenticate
35
+ print("🔐 Authenticating with Google Sheets API...\n")
36
+ credentials = service_account.Credentials.from_service_account_file(
37
+ CREDS_FILE,
38
+ scopes=['https://www.googleapis.com/auth/spreadsheets.readonly']
39
+ )
40
+ service = build('sheets', 'v4', credentials=credentials)
41
+
42
+ # Check each spreadsheet
43
+ for sheet_config in config['google_sheets']['spreadsheets']:
44
+ name = sheet_config['name']
45
+ spreadsheet_id = sheet_config['spreadsheet_id']
46
+
47
+ print(f"📊 {name}")
48
+ print(f" ID: {spreadsheet_id[:20]}...")
49
+
50
+ sheet_names = get_sheet_names(spreadsheet_id, service)
51
+
52
+ if sheet_names:
53
+ print(f" ✅ Found {len(sheet_names)} tab(s):")
54
+ for tab_name in sheet_names:
55
+ print(f" - '{tab_name}'")
56
+ else:
57
+ print(" ❌ No tabs found or error occurred")
58
+
59
+ print()
60
+
61
+
62
+ if __name__ == "__main__":
63
+ main()
scripts/csv_to_json.py ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ CSV to JSON Converter
4
+ Converts dialect CSV files from sheets_output/ to JSON format for index.html
5
+ """
6
+
7
+ import csv
8
+ import json
9
+ import os
10
+ from pathlib import Path
11
+ from collections import defaultdict
12
+
13
+ # Paths
14
+ BASE_DIR = Path(__file__).parent.parent
15
+ SHEETS_OUTPUT_DIR = BASE_DIR / "sheets_output"
16
+ JSON_OUTPUT_DIR = BASE_DIR / "data" / "processed"
17
+
18
+
19
+ def convert_processed_dialects():
20
+ """Convert processed_dialects.csv to JSON format"""
21
+ csv_file = SHEETS_OUTPUT_DIR / "processed_dialects.csv"
22
+ json_file = JSON_OUTPUT_DIR / "processed_dialects.json"
23
+
24
+ if not csv_file.exists():
25
+ print(f"⚠️ CSV file not found: {csv_file}")
26
+ return False
27
+
28
+ try:
29
+ districts = []
30
+
31
+ with open(csv_file, 'r', encoding='utf-8') as f:
32
+ reader = csv.DictReader(f)
33
+
34
+ # Group words by district
35
+ district_words = defaultdict(lambda: {
36
+ 'name': '',
37
+ 'lat': 0,
38
+ 'lng': 0,
39
+ 'region': '',
40
+ 'history': '',
41
+ 'words': []
42
+ })
43
+
44
+ for row in reader:
45
+ district_name = row.get('District', '').strip()
46
+ if not district_name:
47
+ continue
48
+
49
+ # Set district metadata (from first occurrence)
50
+ if not district_words[district_name]['name']:
51
+ district_words[district_name]['name'] = district_name
52
+ district_words[district_name]['lat'] = float(row.get('Latitude', 0))
53
+ district_words[district_name]['lng'] = float(row.get('Longitude', 0))
54
+ district_words[district_name]['region'] = row.get('Region', '')
55
+ district_words[district_name]['history'] = row.get('History', '')
56
+
57
+ # Add word entry
58
+ word_entry = {
59
+ 't': row.get('Telugu_Word', ''),
60
+ 'm': row.get('Meaning', ''),
61
+ 's': row.get('Source', '')
62
+ }
63
+
64
+ if word_entry['t']: # Only add if Telugu word exists
65
+ district_words[district_name]['words'].append(word_entry)
66
+
67
+ # Convert to list
68
+ districts = list(district_words.values())
69
+
70
+ # Write JSON
71
+ JSON_OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
72
+ with open(json_file, 'w', encoding='utf-8') as f:
73
+ json.dump(districts, f, ensure_ascii=False, indent=2)
74
+
75
+ print(f"✅ Converted {csv_file.name} → {json_file.name}")
76
+ print(f" {len(districts)} districts, {sum(len(d['words']) for d in districts)} words")
77
+ return True
78
+
79
+ except Exception as e:
80
+ print(f"❌ Error converting processed_dialects.csv: {e}")
81
+ return False
82
+
83
+
84
+ def convert_digiwords_grouped():
85
+ """Convert digiwords_grouped.csv to JSON format"""
86
+ csv_file = SHEETS_OUTPUT_DIR / "digiwords_grouped.csv"
87
+ json_file = JSON_OUTPUT_DIR / "digiwords_grouped.json"
88
+
89
+ if not csv_file.exists():
90
+ print(f"⚠️ CSV file not found: {csv_file}")
91
+ return False
92
+
93
+ try:
94
+ data = {
95
+ "Telangana": defaultdict(list),
96
+ "Andhra Pradesh": defaultdict(list)
97
+ }
98
+
99
+ with open(csv_file, 'r', encoding='utf-8') as f:
100
+ reader = csv.DictReader(f)
101
+
102
+ for row in reader:
103
+ state = row.get('State', '').strip()
104
+ district = row.get('District', '').strip()
105
+
106
+ if not state or not district:
107
+ continue
108
+
109
+ word_entry = {
110
+ 't': row.get('Telugu_Word', ''),
111
+ 'm': row.get('Meaning', ''),
112
+ 's': row.get('Source', 'Crowd')
113
+ }
114
+
115
+ if word_entry['t'] and state in data:
116
+ data[state][district].append(word_entry)
117
+
118
+ # Convert defaultdict to regular dict
119
+ output = {
120
+ state: dict(districts)
121
+ for state, districts in data.items()
122
+ }
123
+
124
+ # Write JSON
125
+ JSON_OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
126
+ with open(json_file, 'w', encoding='utf-8') as f:
127
+ json.dump(output, f, ensure_ascii=False, indent=2)
128
+
129
+ tg_count = sum(len(words) for words in output.get("Telangana", {}).values())
130
+ ap_count = sum(len(words) for words in output.get("Andhra Pradesh", {}).values())
131
+
132
+ print(f"✅ Converted {csv_file.name} → {json_file.name}")
133
+ print(f" Telangana: {len(output.get('Telangana', {}))} districts, {tg_count} words")
134
+ print(f" Andhra Pradesh: {len(output.get('Andhra Pradesh', {}))} districts, {ap_count} words")
135
+ return True
136
+
137
+ except Exception as e:
138
+ print(f"❌ Error converting digiwords_grouped.csv: {e}")
139
+ return False
140
+
141
+
142
+ def main():
143
+ """Convert all CSV files to JSON"""
144
+ print("🔄 Starting CSV to JSON conversion...")
145
+ print(f"📂 Input: {SHEETS_OUTPUT_DIR}")
146
+ print(f"📂 Output: {JSON_OUTPUT_DIR}\n")
147
+
148
+ success_count = 0
149
+
150
+ if convert_processed_dialects():
151
+ success_count += 1
152
+
153
+ if convert_digiwords_grouped():
154
+ success_count += 1
155
+
156
+ print(f"\n✨ Conversion complete: {success_count}/2 files successfully converted")
157
+
158
+
159
+ if __name__ == "__main__":
160
+ main()
scripts/file_watcher.py ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ File Watcher
4
+ Monitors sheets_output/ directory and triggers CSV-to-JSON conversion on changes
5
+ """
6
+
7
+ import time
8
+ import json
9
+ import subprocess
10
+ from pathlib import Path
11
+ from watchdog.observers import Observer
12
+ from watchdog.events import FileSystemEventHandler
13
+
14
+ # Paths
15
+ BASE_DIR = Path(__file__).parent.parent
16
+ CONFIG_FILE = BASE_DIR / "config.json"
17
+ CONVERTER_SCRIPT = BASE_DIR / "scripts" / "csv_to_json.py"
18
+
19
+
20
+ class CSVChangeHandler(FileSystemEventHandler):
21
+ """Handles CSV file changes"""
22
+
23
+ def __init__(self, debounce_seconds=2):
24
+ self.debounce_seconds = debounce_seconds
25
+ self.last_modified = {}
26
+
27
+ def on_modified(self, event):
28
+ """Called when a file is modified"""
29
+ if event.is_directory:
30
+ return
31
+
32
+ # Only process CSV files
33
+ if not event.src_path.endswith('.csv'):
34
+ return
35
+
36
+ # Debounce: ignore rapid consecutive changes
37
+ now = time.time()
38
+ if event.src_path in self.last_modified:
39
+ if now - self.last_modified[event.src_path] < self.debounce_seconds:
40
+ return
41
+
42
+ self.last_modified[event.src_path] = now
43
+
44
+ print(f"\n📝 Detected change: {Path(event.src_path).name}")
45
+ self.trigger_conversion()
46
+
47
+ def on_created(self, event):
48
+ """Called when a file is created"""
49
+ if not event.is_directory and event.src_path.endswith('.csv'):
50
+ print(f"\n📄 New file: {Path(event.src_path).name}")
51
+ self.trigger_conversion()
52
+
53
+ def trigger_conversion(self):
54
+ """Run the CSV-to-JSON converter"""
55
+ print("🔄 Running CSV-to-JSON conversion...")
56
+
57
+ try:
58
+ result = subprocess.run(
59
+ ['python3', str(CONVERTER_SCRIPT)],
60
+ capture_output=True,
61
+ text=True,
62
+ cwd=str(BASE_DIR)
63
+ )
64
+
65
+ if result.returncode == 0:
66
+ print(result.stdout)
67
+ else:
68
+ print(f"❌ Conversion failed:")
69
+ print(result.stderr)
70
+
71
+ except Exception as e:
72
+ print(f"❌ Error running converter: {e}")
73
+
74
+
75
+ def load_config():
76
+ """Load configuration"""
77
+ if not CONFIG_FILE.exists():
78
+ return {
79
+ 'file_watcher': {
80
+ 'enabled': True,
81
+ 'watch_directory': 'sheets_output',
82
+ 'debounce_seconds': 2
83
+ }
84
+ }
85
+
86
+ with open(CONFIG_FILE, 'r') as f:
87
+ return json.load(f)
88
+
89
+
90
+ def main():
91
+ """Start file watcher"""
92
+ config = load_config()
93
+ watcher_config = config.get('file_watcher', {})
94
+
95
+ if not watcher_config.get('enabled', True):
96
+ print("⚠️ File watcher is disabled in config.json")
97
+ return
98
+
99
+ watch_dir = BASE_DIR / watcher_config.get('watch_directory', 'sheets_output')
100
+ debounce = watcher_config.get('debounce_seconds', 2)
101
+
102
+ if not watch_dir.exists():
103
+ print(f"❌ Watch directory not found: {watch_dir}")
104
+ print(f"Creating directory: {watch_dir}")
105
+ watch_dir.mkdir(parents=True, exist_ok=True)
106
+
107
+ print("👀 File Watcher Started")
108
+ print(f"📂 Watching: {watch_dir}")
109
+ print(f"⏱️ Debounce: {debounce} seconds")
110
+ print("\nWaiting for CSV file changes... (Press Ctrl+C to stop)\n")
111
+
112
+ event_handler = CSVChangeHandler(debounce_seconds=debounce)
113
+ observer = Observer()
114
+ observer.schedule(event_handler, str(watch_dir), recursive=False)
115
+ observer.start()
116
+
117
+ try:
118
+ while True:
119
+ time.sleep(1)
120
+ except KeyboardInterrupt:
121
+ print("\n\n👋 Stopping file watcher...")
122
+ observer.stop()
123
+
124
+ observer.join()
125
+ print("✅ File watcher stopped")
126
+
127
+
128
+ if __name__ == "__main__":
129
+ main()
scripts/sheets_sync.py ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Google Sheets Sync
4
+ Downloads data from Google Sheets and saves as CSV files
5
+ """
6
+
7
+ import json
8
+ import os
9
+ import sys
10
+ from pathlib import Path
11
+ from google.auth.transport.requests import Request
12
+ from google.oauth2.credentials import Credentials
13
+ from google.oauth2 import service_account
14
+ from google_auth_oauthlib.flow import InstalledAppFlow
15
+ from googleapiclient.discovery import build
16
+ from googleapiclient.errors import HttpError
17
+
18
+ # If modifying these scopes, delete the file token.json.
19
+ SCOPES = ['https://www.googleapis.com/auth/spreadsheets.readonly']
20
+
21
+ # Paths
22
+ BASE_DIR = Path(__file__).parent.parent
23
+ CONFIG_FILE = BASE_DIR / "config.json"
24
+ SHEETS_OUTPUT_DIR = BASE_DIR / "sheets_output"
25
+
26
+
27
+ def load_config():
28
+ """Load configuration from config.json"""
29
+ if not CONFIG_FILE.exists():
30
+ print(f"❌ Config file not found: {CONFIG_FILE}")
31
+ sys.exit(1)
32
+
33
+ with open(CONFIG_FILE, 'r') as f:
34
+ return json.load(f)
35
+
36
+
37
+ def get_credentials(config):
38
+ """Get Google Sheets API credentials"""
39
+ creds = None
40
+ credentials_file = BASE_DIR / config['google_sheets']['credentials_file']
41
+ token_file = BASE_DIR / 'token.json'
42
+
43
+ # Check if credentials file exists
44
+ if not credentials_file.exists():
45
+ print(f"❌ Credentials file not found: {credentials_file}")
46
+ print("\n📝 To set up Google Sheets API:")
47
+ print("1. Go to https://console.cloud.google.com/")
48
+ print("2. Create a new project or select existing")
49
+ print("3. Enable Google Sheets API")
50
+ print("4. Create credentials (OAuth 2.0 or Service Account)")
51
+ print(f"5. Download credentials.json to {BASE_DIR}")
52
+ sys.exit(1)
53
+
54
+ # Try service account first (recommended for automation)
55
+ try:
56
+ creds = service_account.Credentials.from_service_account_file(
57
+ str(credentials_file), scopes=SCOPES)
58
+ print("✅ Using service account credentials")
59
+ return creds
60
+ except Exception:
61
+ pass
62
+
63
+ # Fall back to OAuth flow
64
+ if token_file.exists():
65
+ creds = Credentials.from_authorized_user_file(str(token_file), SCOPES)
66
+
67
+ # If there are no (valid) credentials available, let the user log in.
68
+ if not creds or not creds.valid:
69
+ if creds and creds.expired and creds.refresh_token:
70
+ creds.refresh(Request())
71
+ else:
72
+ flow = InstalledAppFlow.from_client_secrets_file(
73
+ str(credentials_file), SCOPES)
74
+ creds = flow.run_local_server(port=0)
75
+
76
+ # Save the credentials for the next run
77
+ with open(token_file, 'w') as token:
78
+ token.write(creds.to_json())
79
+
80
+ print("✅ Using OAuth credentials")
81
+ return creds
82
+
83
+
84
+ def download_sheet_as_csv(service, spreadsheet_id, sheet_name, output_filename):
85
+ """Download a specific sheet as CSV"""
86
+ try:
87
+ # Get the sheet data
88
+ result = service.spreadsheets().values().get(
89
+ spreadsheetId=spreadsheet_id,
90
+ range=f"{sheet_name}!A:Z" # Adjust range as needed
91
+ ).execute()
92
+
93
+ values = result.get('values', [])
94
+
95
+ if not values:
96
+ print(f"⚠️ No data found in sheet: {sheet_name}")
97
+ return False
98
+
99
+ # Write to CSV
100
+ output_file = SHEETS_OUTPUT_DIR / output_filename
101
+ SHEETS_OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
102
+
103
+ import csv
104
+ with open(output_file, 'w', newline='', encoding='utf-8') as f:
105
+ writer = csv.writer(f)
106
+ writer.writerows(values)
107
+
108
+ print(f"✅ Downloaded {sheet_name} → {output_filename}")
109
+ print(f" {len(values)} rows")
110
+ return True
111
+
112
+ except HttpError as error:
113
+ print(f"❌ Error downloading {sheet_name}: {error}")
114
+ return False
115
+
116
+
117
+ def sync_all_sheets():
118
+ """Sync all configured sheets from Google Sheets"""
119
+ config = load_config()
120
+
121
+ if not config['google_sheets']['enabled']:
122
+ print("⚠️ Google Sheets sync is disabled in config.json")
123
+ return False
124
+
125
+ # Check if using new multi-spreadsheet config
126
+ spreadsheets = config['google_sheets'].get('spreadsheets', [])
127
+
128
+ if not spreadsheets:
129
+ # Fallback to old single spreadsheet config
130
+ spreadsheet_id = config['google_sheets'].get('spreadsheet_id', 'YOUR_SHEET_ID_HERE')
131
+ if spreadsheet_id == "YOUR_SHEET_ID_HERE":
132
+ print("❌ Please update config.json with your spreadsheet IDs")
133
+ print("\n📝 To find your spreadsheet ID:")
134
+ print("Open your Google Sheet and copy the ID from the URL:")
135
+ print("https://docs.google.com/spreadsheets/d/[SPREADSHEET_ID]/edit")
136
+ return False
137
+
138
+ # Convert old format to new format for processing
139
+ spreadsheets = [{
140
+ 'name': 'Main Spreadsheet',
141
+ 'spreadsheet_id': spreadsheet_id,
142
+ 'sheets': config['google_sheets'].get('sheets', {})
143
+ }]
144
+
145
+ print("🔄 Starting Google Sheets sync...")
146
+ print(f"📊 Syncing from {len(spreadsheets)} spreadsheet(s)\n")
147
+
148
+ try:
149
+ creds = get_credentials(config)
150
+ service = build('sheets', 'v4', credentials=creds)
151
+
152
+ total_success = 0
153
+ total_sheets = 0
154
+
155
+ # Process each spreadsheet
156
+ for spreadsheet in spreadsheets:
157
+ spreadsheet_id = spreadsheet.get('spreadsheet_id', '')
158
+ spreadsheet_name = spreadsheet.get('name', 'Unnamed')
159
+ sheets_config = spreadsheet.get('sheets', {})
160
+
161
+ if not spreadsheet_id or spreadsheet_id.startswith('YOUR_'):
162
+ print(f"⚠️ Skipping '{spreadsheet_name}': ID not configured")
163
+ continue
164
+
165
+ print(f"📋 {spreadsheet_name}")
166
+ print(f" ID: {spreadsheet_id[:20]}...")
167
+
168
+ # Download each sheet from this spreadsheet
169
+ for csv_name, sheet_name in sheets_config.items():
170
+ total_sheets += 1
171
+ if download_sheet_as_csv(service, spreadsheet_id, sheet_name, f"{csv_name}.csv"):
172
+ total_success += 1
173
+
174
+ print() # Blank line between spreadsheets
175
+
176
+ print(f"✨ Sync complete: {total_success}/{total_sheets} sheets downloaded")
177
+ return total_success > 0
178
+
179
+ except Exception as e:
180
+ print(f"❌ Error during sync: {e}")
181
+ return False
182
+
183
+
184
+ def main():
185
+ """Main entry point"""
186
+ sync_all_sheets()
187
+
188
+
189
+ if __name__ == '__main__':
190
+ main()
sheets_output/digiwords_grouped.csv ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ State,District,Telugu_Word,Meaning,Source
2
+ Andhra Pradesh,Anantapur,దిండు,Pillows,Crowd
3
+ Andhra Pradesh,Annamayya,ఆ తుప్పాస్,Nonsense/Useless,Crowd
4
+ Andhra Pradesh,Chittoor,ముడ్దులు,అంగడి,Crowd
5
+ Andhra Pradesh,Chittoor,సెమిరేసినావ,Prepared,Crowd
6
+ Andhra Pradesh,Chittoor,వంకాయ పులగూర్,కూర,Crowd
7
+ Andhra Pradesh,Chittoor,ఈరి మోది,పచ్చడి,Crowd
8
+ Andhra Pradesh,Chittoor,అబ్బ,Grandfather,Crowd
9
+ Andhra Pradesh,Chittoor,జెడి,Hair knot,Crowd
10
+ Andhra Pradesh,East Godavari,దుకాణం,కొట్టు,Crowd
11
+ Andhra Pradesh,East Godavari,పైరు,బంగాళదుంప,Crowd
12
+ Andhra Pradesh,East Godavari,బువ్వ,Food,Crowd
13
+ Andhra Pradesh,East Godavari,గుడి,దేవాలయం,Crowd
14
+ Andhra Pradesh,East Godavari,సామానం,ఆలస్యం చేయడం,Crowd
15
+ Andhra Pradesh,East Godavari,బేగ రా,తొందరగా రా,Crowd
16
+ Andhra Pradesh,Eluru,శనగపప్పు,వేరుశనగ,Crowd
17
+ Andhra Pradesh,Eluru,చాలా బాగుంది,Very good,Crowd
18
+ Andhra Pradesh,Kadapa,కంత,రంధ్రం (Hole),Crowd
19
+ Andhra Pradesh,Kadapa,బాగా ఎక్కువగా,Exceedingly,Crowd
20
+ Andhra Pradesh,Kadapa,చాపు మాటలు,పెద్ద మాటలు,Crowd
21
+ Andhra Pradesh,Kadapa,బొరుగులు,మరమరాలు,Crowd
22
+ Andhra Pradesh,Kadapa,రామాడం,మెత్తగా చేయడం,Crowd
23
+ Andhra Pradesh,Kadapa,ఎనుము,బర్రె,Crowd
24
+ Andhra Pradesh,Kadapa,ముక్కొల్,3 వాడిముళ్ళు,Crowd
25
+ Andhra Pradesh,Kurnool,బుడ్డల నూనె,పల్లి oil (Peanut oil),Crowd
26
+ Andhra Pradesh,Nandyal,తంగాది,కొట్టుదు ఇచ్చింది మధ్యన,Crowd
27
+ Andhra Pradesh,Nandyal,గుడి,దేవాలయము,Crowd
28
+ Andhra Pradesh,Nandyal,హితాలు,బువ్వ తిన్నారా,Crowd
29
+ Andhra Pradesh,Nandyal,తద్దినం,పితృ దేవతల కార్యం,Crowd
30
+ Andhra Pradesh,Nandyal,తువాయి,ఆవు దూడ (Calf),Crowd
31
+ Andhra Pradesh,Nandyal,పురుకోస,Jute thread twisted,Crowd
32
+ Andhra Pradesh,Ongole,బయట వెళ్ళాడు,బయటకు వెళ్ళాడు,Crowd
33
+ Andhra Pradesh,P.R. నియోజకవర్గం,ఎర్రగడ్డ,Onion,Crowd
34
+ Andhra Pradesh,P.R. నియోజకవర్గం,తెల్ల గడ్డ,వెల్లుల్లి,Crowd
35
+ Andhra Pradesh,P.R. నియోజకవర్గం,ఉల్లగడ్డ,Potato,Crowd
36
+ Andhra Pradesh,P.R. నియోజకవర్గం,ఖిన్నారా,అద్దెకు రా,Crowd
37
+ Andhra Pradesh,P.R. నియోజకవర్గం,ముడక,నాగలి,Crowd
38
+ Andhra Pradesh,P.R. నియోజకవర్గం,కొక,చీర,Crowd
39
+ Andhra Pradesh,P.R. నియోజకవర్గం,రైన,జాకెట్,Crowd
40
+ Andhra Pradesh,P.R. నియోజకవర్గం,కడ్డీలు,అగరబత్తిలు,Crowd
41
+ Andhra Pradesh,P.R. నియోజకవర్గం,పెద్ద నాన్న,నాన్న అన్న,Crowd
42
+ Andhra Pradesh,P.R. నియోజకవర్గం,చిన్న నాన్న,నాన్న తమ్ముడు,Crowd
43
+ Andhra Pradesh,P.R. నియోజకవర్గం,పెద్దమ్మ,నాన్న అన్న భార్య,Crowd
44
+ Andhra Pradesh,P.R. నియోజకవర్గం,చిన్నమ్మ,నాన్న తమ్ముడు భార్య,Crowd
45
+ Andhra Pradesh,P.R. నియోజకవర్గం,పొద్దు పొయ్యింది,సాయంత్రం సమయం,Crowd
46
+ Andhra Pradesh,Rayalaseema,లోపల,Inside,Crowd
47
+ Andhra Pradesh,Rayalaseema,బొగాలు,Keys,Crowd
48
+ Andhra Pradesh,Srikakulam,డొంక,తలుపు (Door),Crowd
49
+ Andhra Pradesh,Srikakulam,కుంక,Pillodu,Crowd
50
+ Andhra Pradesh,Srikakulam,ఖాగి,వేగంగా,Crowd
51
+ Andhra Pradesh,Srikakulam,బాతె,చావు,Crowd
52
+ Andhra Pradesh,Srikakulam,అమ్మ,Mother,Crowd
53
+ Andhra Pradesh,Srikakulam,తెల్లారితే,వేకువన,Crowd
54
+ Andhra Pradesh,Tirupati,ఊరాల్,Nonsense,Crowd
55
+ Andhra Pradesh,Vizianagaram,ఉకుజురు,Egg Burji,Crowd
56
+ Andhra Pradesh,Vizianagaram,వర్ర,కారం,Crowd
57
+ Andhra Pradesh,Vizianagaram,బేపి,కుక్క,Crowd
58
+ Andhra Pradesh,Vizianagaram,పైనా,పైన,Crowd
59
+ Andhra Pradesh,Vizianagaram,దొడ్డ,పెద్ద అమ్మ,Crowd
60
+ Andhra Pradesh,Vizianagaram,జిజ బేగరా,తొందరగా రా,Crowd
61
+ Andhra Pradesh,Vizianagaram,బంగాళదుంప,ఆలుగడ్డ,Crowd
62
+ Andhra Pradesh,Vizianagaram,ఉల్లిపాయ,ఎర్రగ���్డ,Crowd
63
+ Andhra Pradesh,Vizianagaram,అప్ప,అక్క,Crowd
64
+ Andhra Pradesh,Vizianagaram,గుంత,రంధ్రం,Crowd
65
+ Andhra Pradesh,Vizianagaram,గెడ/బర్రె,Buffalo,Crowd
66
+ Andhra Pradesh,Vizianagaram,గడ్డి,చిన్న సెలయేరు,Crowd
67
+ Andhra Pradesh,West Godavari,రాతు తడి,Irrigation term,Crowd
68
+ Telangana,Adilabad,చోలోట్,మంచి (Good),Crowd
69
+ Telangana,Adilabad,వంచెడ్ చిబడ్,అంటు ముట్టుకోడం,Crowd
70
+ Telangana,Adilabad,వడోగు,దూడ (Calf),Crowd
71
+ Telangana,Adilabad,ముచిలి పడన్,ఎర్ర తుమ్మెద,Crowd
72
+ Telangana,Adilabad,సర్కార్,నాశనం,Crowd
73
+ Telangana,Adilabad,వజీర్,ముసలి,Crowd
74
+ Telangana,Adilabad,ఖైని,వదిన,Crowd
75
+ Telangana,Adilabad,సూన్,కోడలు,Crowd
76
+ Telangana,Adilabad,Poral batal,Temple term (Keslapur),Crowd
77
+ Telangana,Gadwal,ఓల్లి,No,Crowd
78
+ Telangana,Gadwal,కూడు తింటవా,తిన్నారా,Crowd
79
+ Telangana,Gadwal,తువ్వ,ఎర్ర పొలం,Crowd
80
+ Telangana,Gadwal,పురకోస,జూట్ దార,Crowd
81
+ Telangana,Gadwal,జుముజలమ్మ,దేవత,Crowd
82
+ Telangana,Gadwal,తలుగు ఎల్లమ్మ,దేవత,Crowd
83
+ Telangana,Gadwal,తెల్వది,Don't know,Crowd
84
+ Telangana,Gadwal,మడసంగ,నెమ్మదిగా/జాగ్రత్తగా,Crowd
85
+ Telangana,Gadwal,రప్పున,జల్ది,Crowd
86
+ Telangana,Gadwal,మడసంగ,Careful,Crowd
87
+ Telangana,Hyderabad,కిటికీ,Window,Crowd
88
+ Telangana,Hyderabad,అంగీ,Shirt,Crowd
89
+ Telangana,Hyderabad,కుక్క,Dog,Crowd
90
+ Telangana,Hyderabad,కుర్చీ,Chair,Crowd
91
+ Telangana,Hyderabad,Amma buvva pettava,Mother feed me,Crowd
92
+ Telangana,Hyderabad,Chaderghat,Location,Crowd
93
+ Telangana,Hyderabad,తొవ్వ దారి,Way/Path,Crowd
94
+ Telangana,Hyderabad,పాతాళగరిసె,Tool to remove bucket,Crowd
95
+ Telangana,Hyderabad,అంబటాలు,Afternoon time,Crowd
96
+ Telangana,Hyderabad,ఇన్సురాయి,Stone tool,Crowd
97
+ Telangana,Hyderabad,బుక్కెట్,Tool for well,Crowd
98
+ Telangana,Jangaon,ఏమైంది,What happened,Crowd
99
+ Telangana,Karimnagar,బూరెలు,భక్ష్యాలు,Crowd
100
+ Telangana,Karimnagar,అచ్చినం,వచ్చాము,Crowd
101
+ Telangana,Karimnagar,పాయినం,వెళ్ళాము,Crowd
102
+ Telangana,Karimnagar,సవాలు,Question/Challenge,Crowd
103
+ Telangana,Karimnagar,గటక,Food item,Crowd
104
+ Telangana,Karimnagar,వస్తున్నావ,వస్తున్నావు,Crowd
105
+ Telangana,Karimnagar,ఊశము,బద్ధకం/అలసత్వం,Crowd
106
+ Telangana,Karimnagar,వందంగా ఉంది,బాగా,Crowd
107
+ Telangana,Karimnagar,రువిడ్లు,Shelf,Crowd
108
+ Telangana,Karimnagar,కార్యపాలు,వస్తున్నం/పోతున్నాం,Crowd
109
+ Telangana,Karimnagar,బావి,నూతి,Crowd
110
+ Telangana,Karimnagar,గంప,గుల్ల,Crowd
111
+ Telangana,Karimnagar,బంతి,Ball,Crowd
112
+ Telangana,Mahabubnagar,వీధి,Street,Crowd
113
+ Telangana,Mahabubnagar,జల్ది,తొందరగా,Crowd
114
+ Telangana,Mahabubnagar,జింగిడి,బర్రెల గుంపు,Crowd
115
+ Telangana,Mahabubnagar,బాగమ్,Exhibition,Crowd
116
+ Telangana,Mahabubnagar,చలక,Field,Crowd
117
+ Telangana,Mahabubnagar,ఈల పేట,కత్తి పేట,Crowd
118
+ Telangana,Mahabubabad,బొచ్చెడు,చాలా (A lot),Crowd
119
+ Telangana,Mahabubabad,ఏ మయింది అన్నా,What happened,Crowd
120
+ Telangana,Medak,కీసా,జేబు,Crowd
121
+ Telangana,Medak,పైను,ఆరు (Six),Crowd
122
+ Telangana,Nagar Kurnool,అంబటాలు,Morning meal time,Crowd
123
+ Telangana,Nagar Kurnool,మంకర,Winter cold,Crowd
124
+ Telangana,Nagar Kurnool,లాడు,తల్లి కూతురు,Crowd
125
+ Telangana,Nagar Kurnool,గెనిమ,పొలం గట్టు,Crowd
126
+ Telangana,Nagar Kurnool,కోంత లోలు,Old name for Nagar Kurnool,Crowd
127
+ Telangana,Nalgonda,Dupa aithundhi,దాహం వేస్తుంది,Crowd
128
+ Telangana,Nalgonda,సేరు,1kg measuring device,Crowd
129
+ Telangana,Nalgonda,Kurdedu Biyam,Amount of rice,Crowd
130
+ Telangana,Nalgonda,Anglam dundu,అగ్గి పెట్టె,Crowd
131
+ Telangana,Nalgonda,సది,Take the box,Crowd
132
+ Telangana,Nalgonda,తట్ట,పళ్ళెం,Crowd
133
+ Telangana,Nalgonda,కోవెల,గుడి,Crowd
134
+ Telangana,Nalgonda,ఊసలు,Weaving technique,Crowd
135
+ Telangana,Nalgonda,బువ్వ,Cooked rice,Crowd
136
+ Telangana,Nalgonda,తవాచీ,Shelf with doors,Crowd
137
+ Telangana,Nalgonda,తపుకు,Plate on vessel,Crowd
138
+ Telangana,Nalgonda,లడ్లు,అరిసెలు,Crowd
139
+ Telangana,Nalgonda,దారి,బాట,Crowd
140
+ Telangana,Narayanpet,బుబ్బి,అమ్మ,Crowd
141
+ Telangana,Narayanpet,పడం,మట్టి,Crowd
142
+ Telangana,Narayanpet,చెముక్కలు,మోకాళ్ళు,Crowd
143
+ Telangana,Narayanpet,మొర,మంచం,Crowd
144
+ Telangana,Narayanpet,అబుత,జుట్టు,Crowd
145
+ Telangana,Narayanpet,జేజి,Fat,Crowd
146
+ Telangana,Narayanpet,అంబలి,జావ,Crowd
147
+ Telangana,Nizamabad,పంపేవుడు,పంపించడం,Crowd
148
+ Telangana,Nizamabad,Pillodu,Bindu,Crowd
149
+ Telangana,Nizamabad,వచ్చిండు,అచ్చిండు,Crowd
150
+ Telangana,Peddapally,గుమ్ము,Storage,Crowd
151
+ Telangana,Peddapally,గట్టు,దారి,Crowd
152
+ Telangana,Rangareddy,వీరునో,తెలుగు,Crowd
153
+ Telangana,Rangareddy,తొక్కుడు,మంచం,Crowd
154
+ Telangana,Rangareddy,మూర,ముంగిలి,Crowd
155
+ Telangana,Rangareddy,కారం,పచ్చడి,Crowd
156
+ Telangana,Rangareddy,ఈ గడ,కడ,Crowd
157
+ Telangana,Siddipet,అంగీ,Shirt,Crowd
158
+ Telangana,Siddipet,పొయ్యిర్రు,వెళ్ళారు,Crowd
159
+ Telangana,Siddipet,మెగులుతుంది,వర్షం వచ్చి ఆగిన,Crowd
160
+ Telangana,Siddipet,అలుకురు,Pre cultivation,Crowd
161
+ Telangana,Siddipet,పయిలం,జాగ్రత్త,Crowd
162
+ Telangana,Siddipet,తప్పెలు,Rice plate,Crowd
163
+ Telangana,Siddipet,పందిట్లు,పందిరి,Crowd
164
+ Telangana,Siddipet,రాకొచ్చింది,రాదు,Crowd
165
+ Telangana,Siddipet,పోకొచ్చింది,పోదు,Crowd
166
+ Telangana,Siddipet,కుకో,కూర్చో,Crowd
167
+ Telangana,Siddipet,ఏడారు,Afternoon time,Crowd
168
+ Telangana,Wanaparthy,చెప్పలకాయలు,గొంకరకాయలు,Crowd
169
+ Telangana,Wanaparthy,మలంచా,చెంబు,Crowd
170
+ Telangana,Wanaparthy,సొరకాయ,ఆనకాయ,Crowd
171
+ Telangana,Wanaparthy,పాశాల,Clothes,Crowd
172
+ Telangana,Wanaparthy,మట్టుగుండు,Keep calm,Crowd
173
+ Telangana,Wanaparthy,అంబరుంది,Excellent,Crowd
174
+ Telangana,Warangal,చేను,Crop/చలక,Crowd
175
+ Telangana,Warangal,పొయ్యం రారా,ఇన్నానిల్లు,Crowd
176
+ Telangana,Warangal,అసుంట,అటు వైపు,Crowd
177
+ Telangana,Warangal,ఇసుంట,ఇటు వైపు,Crowd
178
+ Telangana,Warangal,చద్దెర,Bed sheet,Crowd
179
+ Andhra Pradesh,Guntur,నగబు ,An ancient word for snake,Crowd
sheets_output/processed_dialects.csv ADDED
The diff for this file is too large to render. See raw diff