Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .github/fixes-docs/FIX_EGYPT_CAIRO_CITIES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Fix Summary: Cairo-area cities added

## Issue Reference
- **Title:** [Bug]: Missing And incorrect Egypt data
- **Area:** Egypt cities (Cairo region)

## Country Addressed
- **Country:** Egypt (EG)
- **States:** Cairo Governorate (state_id: 3223, state_code: C), Qalyubia Governorate (state_id: 3232, state_code: KB)

## Changes Made
- Added **Nasr City** (Cairo) — lat `30.05000000`, lon `31.36667000`, timezone `Africa/Cairo`, wikiDataId `Q1309979`.
- Added **Cairo Downtown** (Cairo) — lat `30.04750000`, lon `31.23830000`, timezone `Africa/Cairo`, wikiDataId `Q2933230`.
- Added **Zamalek** (Cairo) — lat `30.06194444`, lon `31.22055556`, timezone `Africa/Cairo`, wikiDataId `Q145356`.
- Added **Rehab** (Cairo) — lat `30.05000000`, lon `31.36670000`, timezone `Africa/Cairo`, wikiDataId `Q7309740`.
- Added **New Cairo** (Cairo) — lat `30.03000000`, lon `31.47000000`, timezone `Africa/Cairo`, wikiDataId `Q12191144`.
- Added **Obour City** (Qalyubia) — lat `30.20500000`, lon `31.45750000`, timezone `Africa/Cairo`, wikiDataId `Q4120190`.
- Included native names and multilingual translations (≥5 languages each) for all new cities.

## Validation
- Coordinates, native names, and wikiDataIds verified via the corresponding Wikipedia/Wikidata entries for each city.
- Ran `python3 bin/scripts/validation/translation_enricher.py --file /tmp/eg_new_entries.json --type city` to seed translations from Wikipedia before merging into `contributions/cities/EG.json`.
- Loaded `contributions/cities/EG.json` with `python -m json.load` to confirm JSON validity.
4 changes: 2 additions & 2 deletions bin/db/schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ CREATE TABLE `cities` (
KEY `cities_test_ibfk_2` (`country_id`),
CONSTRAINT `cities_ibfk_1` FOREIGN KEY (`state_id`) REFERENCES `states` (`id`),
CONSTRAINT `cities_ibfk_2` FOREIGN KEY (`country_id`) REFERENCES `countries` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=160557 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;
) ENGINE=InnoDB AUTO_INCREMENT=161437 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

Expand All @@ -198,6 +198,6 @@ CREATE TABLE `cities` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2025-12-13 9:08:52
-- Dump completed on 2026-01-11 20:00:25

SET FOREIGN_KEY_CHECKS=1;
2 changes: 1 addition & 1 deletion contributions/cities/BQ.json
Original file line number Diff line number Diff line change
Expand Up @@ -327,4 +327,4 @@
"flag": 1,
"wikiDataId": "Q2511504"
}
]
]
184 changes: 183 additions & 1 deletion contributions/cities/EG.json
Original file line number Diff line number Diff line change
Expand Up @@ -6435,5 +6435,187 @@
"updated_at": "2025-12-02T16:59:27",
"flag": 1,
"wikiDataId": "Q4518983"
},
{
"id": 160437,
"name": "Nasr City",
"state_id": 3223,
"state_code": "C",
"country_id": 65,
"country_code": "EG",
"type": "district",
"level": null,
"parent_id": null,
"latitude": "30.05000000",
"longitude": "31.36667000",
"native": "مدينة نصر",
"population": null,
"timezone": "Africa/Cairo",
"translations": {
"ar": "مدينة نصر",
"de": "Nasr City",
"es": "Nasr City",
"id": "Kota Nasr",
"it": "Nasr (Cairo)",
"uk": "Насер-Сіті"
},
"created_at": "2026-01-11T20:00:15",
"updated_at": "2026-01-11T20:00:15",
"flag": 1,
"wikiDataId": "Q1309979"
},
{
"id": 160438,
"name": "Cairo Downtown",
"state_id": 3223,
"state_code": "C",
"country_id": 65,
"country_code": "EG",
"type": "district",
"level": null,
"parent_id": null,
"latitude": "30.04750000",
"longitude": "31.23830000",
"native": "وسط البلد",
"population": null,
"timezone": "Africa/Cairo",
"translations": {
"ar": "وسط البلد (القاهرة)",
"de": "Kairo Downtown",
"en": "Cairo Downtown",
"es": "centro de El Cairo",
"fr": "Centre-ville du Caire",
"hi": "काहिरा नगर क्षेत्र",
"ja": "カイロ中心市街地",
"ru": "Центральный Каир",
"uk": "Центр Каїру",
"zh": "开罗市中心"
},
"created_at": "2026-01-11T20:00:15",
"updated_at": "2026-01-11T20:00:15",
"flag": 1,
"wikiDataId": "Q2933230"
},
{
"id": 160439,
"name": "Zamalek",
"state_id": 3223,
"state_code": "C",
"country_id": 65,
"country_code": "EG",
"type": "district",
"level": null,
"parent_id": null,
"latitude": "30.06194444",
"longitude": "31.22055556",
"native": "الزمالك",
"population": null,
"timezone": "Africa/Cairo",
"translations": {
"ar": "الزمالك",
"de": "Zamalek",
"es": "Zamalek",
"fr": "Zamalek",
"it": "Zamalek",
"nl": "Zamalek",
"pl": "Az-Zamalik",
"ru": "Замалек"
},
"created_at": "2026-01-11T20:00:15",
"updated_at": "2026-01-11T20:00:15",
"flag": 1,
"wikiDataId": "Q145356"
},
{
"id": 160440,
"name": "Rehab",
"state_id": 3223,
"state_code": "C",
"country_id": 65,
"country_code": "EG",
"type": "district",
"level": null,
"parent_id": null,
"latitude": "30.05000000",
"longitude": "31.36670000",
"native": "الرحاب",
"population": null,
"timezone": "Africa/Cairo",
"translations": {
"ar": "الرحاب (القاهرة)",
"en": "Rehab",
"fr": "Rehab",
"ga": "Al Rehab",
"ur": "الرحاب"
},
"created_at": "2026-01-11T20:00:15",
"updated_at": "2026-01-11T20:00:15",
"flag": 1,
"wikiDataId": "Q7309740"
},
{
"id": 160441,
"name": "Obour City",
"state_id": 3232,
"state_code": "KB",
"country_id": 65,
"country_code": "EG",
"type": "city",
"level": null,
"parent_id": null,
"latitude": "30.20500000",
"longitude": "31.45750000",
"native": "مدينة العبور",
"population": null,
"timezone": "Africa/Cairo",
"translations": {
"ar": "العبور (مدينة)",
"de": "Al-Ubur",
"en": "Obour City",
"es": "Al-'Ubūr",
"fr": "Obour",
"pl": "Al-Ubur",
"ru": "Эль-Убур"
},
"created_at": "2026-01-11T20:00:15",
"updated_at": "2026-01-11T20:00:15",
"flag": 1,
"wikiDataId": "Q4120190"
},
{
"id": 160442,
"name": "New Cairo",
"state_id": 3223,
"state_code": "C",
"country_id": 65,
"country_code": "EG",
"type": "city",
"level": null,
"parent_id": null,
"latitude": "30.03000000",
"longitude": "31.47000000",
"native": "القاهرة الجديدة",
"population": null,
"timezone": "Africa/Cairo",
"translations": {
"ar": "القاهرة الجديدة",
"bn": "নতুন কায়রো",
"de": "Neu-Kairo",
"es": "Nuevo Cairo",
"fr": "Nouveau Caire",
"id": "Kairo Baru",
"it": "Nuovo Cairo",
"ja": "ニューカイロ",
"ko": "뉴카이로",
"pl": "Nowy Kair",
"pt": "Novo Cairo",
"ru": "Новый Каир",
"tr": "Yeni Kahire",
"zh": "新开罗"
},
"created_at": "2026-01-11T20:00:15",
"updated_at": "2026-01-11T20:00:15",
"flag": 1,
"wikiDataId": "Q12191144"
}
]
]
2 changes: 1 addition & 1 deletion contributions/countries/countries.json
Original file line number Diff line number Diff line change
Expand Up @@ -16747,4 +16747,4 @@
"flag": 1,
"wikiDataId": "Q26273"
}
]
]