diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7f0772c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,57 @@
+# Foreign language or alternative location names from Geonames.org
+
+## An experimentation in data parsinng and processing
+
+In this repository, I go through some of the ways you can parse and process the location translation / altnames / alternative names / location name in a foreign language database from Geonames.org.
+
+The alternames database contains geoname_id, language, and the name of the location in that language.
+
+![CSV file](image-1.png)
+
+The Geonames.org dataset is quite large and a bit messy. So this repo contains:
+- A [notebook](geoname_alt_names.zip) that demonstrates a data parsing process.
+- A [zip file](geoname_alt_names.zip) contains the parsed and processed CSV and JSON files.
+
+![JSON file](image.png)
+
+
+These files can be used in combination with IPinfo's [IP to Location database](https://ipinfo.io/products/ip-geolocation-database). Use the `geoname_id` field to look up the values from the CSV and JSON files shared in this repo.
+
+However, please note that Geonames.org does not provide a complete database, so be prepared for missing data. Alternatively, you can tweak the parameters of the notebook to generate your own version of parsed geoname altname/foreign language location names.
+
+> I highly recommend checking out the included Jupyter Notebook to understand the process of parsing this data.
+
+Looking up the IP location using [IPinfo IP to Location data downloads](https://ipinfo.io/products/ip-geolocation-database)
+
+```bash
+mmdbctl read 137.93.255.181 location.mmdb
+```
+
+```json
+{
+ "city": "Oslo",
+ "country": "NO",
+ "geoname_id": "3143244", <-----------------
+ "lat": "59.9127",
+ "lng": "10.7461",
+ "postal_code": "0277",
+ "region": "Oslo",
+ "region_code": "03",
+ "timezone": "Europe/Oslo"
+}
+```
+
+Getting the altname using the included JSON file:
+
+```python
+>>> geoname_alt_names[geoname_id] # 3143244
+
+{'pt': 'Oslo', 'en': 'Oslo', 'ko': '오슬로', 'ru': 'Осло', 'ja': 'オスロ', 'ar': 'أوسلو', 'es': 'Oslo', 'zh': '奥斯陆', 'de': 'Oslo', 'fr': 'Oslo'}
+```
+
+
+The included notebook and databases can be used with a variety of IPinfo IP databases that include location information.
+
+----
+
+This project utilizes data from Geonames.org, a geographical database covering all countries and containing over eleven million placenames. Geonames data is licensed under a Creative Commons Attribution 4.0 License.
\ No newline at end of file
diff --git a/geoname_alt_names.zip b/geoname_alt_names.zip
new file mode 100644
index 0000000..208e379
Binary files /dev/null and b/geoname_alt_names.zip differ
diff --git a/image-1.png b/image-1.png
new file mode 100644
index 0000000..8b875d5
Binary files /dev/null and b/image-1.png differ
diff --git a/image.png b/image.png
new file mode 100644
index 0000000..12b4065
Binary files /dev/null and b/image.png differ
diff --git a/processing_geonames_altnames.ipynb b/processing_geonames_altnames.ipynb
new file mode 100644
index 0000000..2835c29
--- /dev/null
+++ b/processing_geonames_altnames.ipynb
@@ -0,0 +1,3238 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import duckdb as db\n",
+ "import json"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Download the geonames.org alternative Name Database\n",
+ "\n",
+ "- Go to https://download.geonames.org/export/dump/\n",
+ "- Download the `alternateNamesV2.zip`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "alternate_names_columns = ['alternateNameId', 'geonameid', 'isolanguage', 'alternate name', 'isPreferredName', 'isShortName', 'isColloquial', 'isHistoric', 'from', 'to']\n",
+ "alternate_names_dtypes = {'alternateNameId': int, 'geonameid': int, 'isolanguage': str, 'alternate name': str, 'isPreferredName':str, 'isShortName':str, 'isColloquial':str, 'isHistoric':str, 'from':str, 'to': str}\n",
+ "filename = 'alternateNamesV2.txt'\n",
+ "alname_df = pd.read_csv(filename, sep='\\t', header=None, names=alternate_names_columns, dtype=alternate_names_dtypes)\n",
+ "alname_df.fillna('', inplace=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " alternateNameId | \n",
+ " geonameid | \n",
+ " isolanguage | \n",
+ " alternate name | \n",
+ " isPreferredName | \n",
+ " isShortName | \n",
+ " isColloquial | \n",
+ " isHistoric | \n",
+ " from | \n",
+ " to | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 1284819 | \n",
+ " 2994701 | \n",
+ " | \n",
+ " Roc Mélé | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 1284820 | \n",
+ " 2994701 | \n",
+ " | \n",
+ " Roc Meler | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 1291197 | \n",
+ " 3017832 | \n",
+ " | \n",
+ " Pic de les Abelletes | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 4290387 | \n",
+ " 3017832 | \n",
+ " | \n",
+ " Pic de la Font-Nègre | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 1291198 | \n",
+ " 3017833 | \n",
+ " | \n",
+ " Estany de les Abelletes | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " alternateNameId geonameid isolanguage alternate name \\\n",
+ "0 1284819 2994701 Roc Mélé \n",
+ "1 1284820 2994701 Roc Meler \n",
+ "2 1291197 3017832 Pic de les Abelletes \n",
+ "3 4290387 3017832 Pic de la Font-Nègre \n",
+ "4 1291198 3017833 Estany de les Abelletes \n",
+ "\n",
+ " isPreferredName isShortName isColloquial isHistoric from to \n",
+ "0 \n",
+ "1 \n",
+ "2 \n",
+ "3 \n",
+ "4 "
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "alname_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Processing the alternative/foreign language database"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Step 1: Preparsing\n",
+ "- ISO language code are 2 letters (Major filter)\n",
+ "- We need to remove where ISO language values are empty\n",
+ "- We need to remove where Geoname ID values are empty\n",
+ "- We need to remove where Alternative name values are empty"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " geonameid | \n",
+ " isolanguage | \n",
+ " alt_name | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 3038886 | \n",
+ " ca | \n",
+ " Pic de Tristaina | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 3038899 | \n",
+ " ca | \n",
+ " Tossalet i Vinyals | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 3038914 | \n",
+ " ca | \n",
+ " Canal de la Tosa | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 3038995 | \n",
+ " ca | \n",
+ " Bosc del Solobre | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 3039037 | \n",
+ " ca | \n",
+ " Solà d’Engordany | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " geonameid isolanguage alt_name\n",
+ "0 3038886 ca Pic de Tristaina\n",
+ "1 3038899 ca Tossalet i Vinyals\n",
+ "2 3038914 ca Canal de la Tosa\n",
+ "3 3038995 ca Bosc del Solobre\n",
+ "4 3039037 ca Solà d’Engordany"
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "alname_df_all_values = db.sql(\"\"\"SELECT geonameid, isolanguage, \"alternate name\" as alt_name\n",
+ "FROM alname_df\n",
+ "WHERE geonameid is not null\n",
+ "AND isolanguage !=''\n",
+ "AND alt_name !='' \n",
+ "AND LENGTH(isolanguage) <= 2\n",
+ "\"\"\").df()\n",
+ "alname_df_all_values.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Optional Step 1: Taking a look at the top 20 listed languages in the database (Disclaimer in step 3)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " isolanguage | \n",
+ " lng_count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " zh | \n",
+ " 1008392 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " en | \n",
+ " 728195 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " no | \n",
+ " 691172 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " es | \n",
+ " 556830 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " ru | \n",
+ " 546593 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " fa | \n",
+ " 517259 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " id | \n",
+ " 396136 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " ar | \n",
+ " 304521 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " th | \n",
+ " 265978 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " ja | \n",
+ " 196185 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " fr | \n",
+ " 152656 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " fi | \n",
+ " 139919 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " ko | \n",
+ " 139003 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " uk | \n",
+ " 126704 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " pt | \n",
+ " 95756 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " de | \n",
+ " 87443 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " hy | \n",
+ " 77986 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " sr | \n",
+ " 64587 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " el | \n",
+ " 56444 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " mk | \n",
+ " 56342 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " isolanguage lng_count\n",
+ "0 zh 1008392\n",
+ "1 en 728195\n",
+ "2 no 691172\n",
+ "3 es 556830\n",
+ "4 ru 546593\n",
+ "5 fa 517259\n",
+ "6 id 396136\n",
+ "7 ar 304521\n",
+ "8 th 265978\n",
+ "9 ja 196185\n",
+ "10 fr 152656\n",
+ "11 fi 139919\n",
+ "12 ko 139003\n",
+ "13 uk 126704\n",
+ "14 pt 95756\n",
+ "15 de 87443\n",
+ "16 hy 77986\n",
+ "17 sr 64587\n",
+ "18 el 56444\n",
+ "19 mk 56342"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "db.sql('''\n",
+ "SELECT isolanguage, count(*) lng_count\n",
+ "FROM alname_df_all_values\n",
+ "GROUP BY isolanguage\n",
+ "ORDER BY lng_count DESC\n",
+ "LIMIT 20\n",
+ "''').df()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Step 2: Only picking out 10 languages"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 114,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " geonameid | \n",
+ " isolanguage | \n",
+ " alt_name | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 8210545 | \n",
+ " en | \n",
+ " Regans Lagoon | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 8210546 | \n",
+ " en | \n",
+ " Regents Lake | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 8210547 | \n",
+ " en | \n",
+ " Round Lake | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 8210548 | \n",
+ " en | \n",
+ " Lake Ricketson | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 8210549 | \n",
+ " en | \n",
+ " Ritchies Lagoon | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 3815569 | \n",
+ " 7668943 | \n",
+ " en | \n",
+ " Tiger Cave Temple | \n",
+ "
\n",
+ " \n",
+ " 3815570 | \n",
+ " 7730329 | \n",
+ " en | \n",
+ " Khok Kathiam Airport | \n",
+ "
\n",
+ " \n",
+ " 3815571 | \n",
+ " 7730329 | \n",
+ " en | \n",
+ " Koke Kathiem Airport | \n",
+ "
\n",
+ " \n",
+ " 3815572 | \n",
+ " 7778911 | \n",
+ " en | \n",
+ " James Bond Island | \n",
+ "
\n",
+ " \n",
+ " 3815573 | \n",
+ " 7793027 | \n",
+ " en | \n",
+ " Doi Tao Lake | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
3815574 rows × 3 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " geonameid isolanguage alt_name\n",
+ "0 8210545 en Regans Lagoon\n",
+ "1 8210546 en Regents Lake\n",
+ "2 8210547 en Round Lake\n",
+ "3 8210548 en Lake Ricketson\n",
+ "4 8210549 en Ritchies Lagoon\n",
+ "... ... ... ...\n",
+ "3815569 7668943 en Tiger Cave Temple\n",
+ "3815570 7730329 en Khok Kathiam Airport\n",
+ "3815571 7730329 en Koke Kathiem Airport\n",
+ "3815572 7778911 en James Bond Island\n",
+ "3815573 7793027 en Doi Tao Lake\n",
+ "\n",
+ "[3815574 rows x 3 columns]"
+ ]
+ },
+ "execution_count": 114,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 10 Languages selected: 'zh', 'en', 'es', 'fr', 'ja', 'pt', 'ru', 'de', 'ar', 'ko'\n",
+ "alname_df_all_values_selected = db.sql('''\n",
+ "SELECT *\n",
+ "FROM alname_df_all_values\n",
+ "WHERE isolanguage in ('zh', 'en', 'es', 'fr', 'ja', 'pt', 'ru', 'de', 'ar', 'ko')\n",
+ "''').df()\n",
+ "alname_df_all_values_selected"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Step 3: Taking the first alt name by each language\n",
+ "- Geonames have multiple entries for the same language and same location. There could be dozens of alternative names for the same location within the same language."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 115,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " geonameid | \n",
+ " isolanguage | \n",
+ " alt_name | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 650 | \n",
+ " ru | \n",
+ " Бастак | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 1816 | \n",
+ " ar | \n",
+ " حبات نزال | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2106 | \n",
+ " ar | \n",
+ " مطار رشت الدولي | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 2254 | \n",
+ " ar | \n",
+ " وادي غدير الحمل | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 2287 | \n",
+ " ar | \n",
+ " الفياضية | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 3424813 | \n",
+ " 12746130 | \n",
+ " ko | \n",
+ " 인천광역시역사자료관 | \n",
+ "
\n",
+ " \n",
+ " 3424814 | \n",
+ " 12746165 | \n",
+ " ko | \n",
+ " 수산물품관리원인천지원 | \n",
+ "
\n",
+ " \n",
+ " 3424815 | \n",
+ " 12746177 | \n",
+ " ko | \n",
+ " 송학동삼가 | \n",
+ "
\n",
+ " \n",
+ " 3424816 | \n",
+ " 12746201 | \n",
+ " ko | \n",
+ " 한국근대문학관 | \n",
+ "
\n",
+ " \n",
+ " 3424817 | \n",
+ " 12746246 | \n",
+ " ja | \n",
+ " しょうふくじちょくしもん | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
3424818 rows × 3 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " geonameid isolanguage alt_name\n",
+ "0 650 ru Бастак\n",
+ "1 1816 ar حبات نزال\n",
+ "2 2106 ar مطار رشت الدولي\n",
+ "3 2254 ar وادي غدير الحمل\n",
+ "4 2287 ar الفياضية\n",
+ "... ... ... ...\n",
+ "3424813 12746130 ko 인천광역시역사자료관\n",
+ "3424814 12746165 ko 수산물품관리원인천지원\n",
+ "3424815 12746177 ko 송학동삼가\n",
+ "3424816 12746201 ko 한국근대문학관\n",
+ "3424817 12746246 ja しょうふくじちょくしもん\n",
+ "\n",
+ "[3424818 rows x 3 columns]"
+ ]
+ },
+ "execution_count": 115,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "alname_df_all_values_selected_only_first_loc = db.sql('''WITH RankedRows AS (\n",
+ " SELECT *,\n",
+ " ROW_NUMBER() OVER (PARTITION BY geonameid, isolanguage) AS row_num\n",
+ " FROM alname_df_all_values_selected\n",
+ ")\n",
+ "SELECT geonameid, isolanguage, alt_name\n",
+ "FROM RankedRows\n",
+ "WHERE row_num = 1;\n",
+ "''').df()\n",
+ "alname_df_all_values_selected_only_first_loc"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Step 4: Choose English as one of the mandatory listed languages.\n",
+ "- If English is not listed for a particular geoname entry, we will not select it."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 116,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " geonameid | \n",
+ " isolanguage | \n",
+ " alt_name | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 11592844 | \n",
+ " en | \n",
+ " Pybus | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 11593903 | \n",
+ " en | \n",
+ " Southwestern Washington Experiment Station | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 11594363 | \n",
+ " en | \n",
+ " Piana Rocks Lighthouse | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 11608472 | \n",
+ " en | \n",
+ " Santana do Livramento | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 11608475 | \n",
+ " en | \n",
+ " San Pedro Pochutla Airport | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 944962 | \n",
+ " 8556013 | \n",
+ " en | \n",
+ " Windarling Mine | \n",
+ "
\n",
+ " \n",
+ " 944963 | \n",
+ " 8562582 | \n",
+ " en | \n",
+ " Takaiwa Tunnel | \n",
+ "
\n",
+ " \n",
+ " 944964 | \n",
+ " 8436037 | \n",
+ " es | \n",
+ " Estación de Ronda | \n",
+ "
\n",
+ " \n",
+ " 944965 | \n",
+ " 8538664 | \n",
+ " en | \n",
+ " Mount Kanigan | \n",
+ "
\n",
+ " \n",
+ " 944966 | \n",
+ " 8507553 | \n",
+ " zh | \n",
+ " 黄花农场十一队 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
944967 rows × 3 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " geonameid isolanguage alt_name\n",
+ "0 11592844 en Pybus\n",
+ "1 11593903 en Southwestern Washington Experiment Station\n",
+ "2 11594363 en Piana Rocks Lighthouse\n",
+ "3 11608472 en Santana do Livramento\n",
+ "4 11608475 en San Pedro Pochutla Airport\n",
+ "... ... ... ...\n",
+ "944962 8556013 en Windarling Mine\n",
+ "944963 8562582 en Takaiwa Tunnel\n",
+ "944964 8436037 es Estación de Ronda\n",
+ "944965 8538664 en Mount Kanigan\n",
+ "944966 8507553 zh 黄花农场十一队\n",
+ "\n",
+ "[944967 rows x 3 columns]"
+ ]
+ },
+ "execution_count": 116,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "alname_df_all_values_selected_only_first_loc_en_filtered = db.sql('''\n",
+ "SELECT t2.*\n",
+ "FROM alname_df_all_values_selected_only_first_loc t2\n",
+ "JOIN (\n",
+ "SELECT geonameid\n",
+ "FROM alname_df_all_values_selected_only_first_loc\n",
+ "WHERE isolanguage = 'en') t1\n",
+ "ON t2.geonameid = t1.geonameid\n",
+ "''').df()\n",
+ "alname_df_all_values_selected_only_first_loc_en_filtered"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Optional Step 2: Test how many languages are there for each geoname entry"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 155,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " count_lang | \n",
+ " lang_group_count | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 10 | \n",
+ " 4150 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 9 | \n",
+ " 1650 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 4334 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 7 | \n",
+ " 2545 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 2666 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 3839 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 4 | \n",
+ " 6798 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 3 | \n",
+ " 12548 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 2 | \n",
+ " 91567 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 1 | \n",
+ " 552969 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " count_lang lang_group_count\n",
+ "0 10 4150\n",
+ "1 9 1650\n",
+ "2 8 4334\n",
+ "3 7 2545\n",
+ "4 6 2666\n",
+ "5 5 3839\n",
+ "6 4 6798\n",
+ "7 3 12548\n",
+ "8 2 91567\n",
+ "9 1 552969"
+ ]
+ },
+ "execution_count": 155,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "db.sql('''\n",
+ "SELECT count_lang, count(*) as lang_group_count\n",
+ "FROM (\n",
+ "\tSELECT geonameid, count(*) as count_lang\n",
+ "\tFROM alname_df_all_values_selected_only_first_loc_en_filtered\n",
+ "\tGROUP BY geonameid\n",
+ "\tORDER BY count_lang DESC\n",
+ ")\n",
+ "GROUP BY count_lang\n",
+ "ORDER BY count_lang DESC\n",
+ "''').df()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Optional Step 3: Minimum number of required languages\n",
+ "- If you want a tabular output select the max languges in the input language array (which is 10).\n",
+ "- Here as an example we can select geonames with more than 5 alt names"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 158,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " geonameid | \n",
+ " isolanguage | \n",
+ " alt_name | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 895949 | \n",
+ " es | \n",
+ " Zambia | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 896140 | \n",
+ " pt | \n",
+ " Província Ocidental | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 899274 | \n",
+ " fr | \n",
+ " Samfya | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 912764 | \n",
+ " ja | \n",
+ " カサマ | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 921780 | \n",
+ " de | \n",
+ " Mohéli | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 144023 | \n",
+ " 97990 | \n",
+ " fr | \n",
+ " Bakouba | \n",
+ "
\n",
+ " \n",
+ " 144024 | \n",
+ " 119505 | \n",
+ " en | \n",
+ " Qazvin | \n",
+ "
\n",
+ " \n",
+ " 144025 | \n",
+ " 119505 | \n",
+ " ko | \n",
+ " 카즈빈 | \n",
+ "
\n",
+ " \n",
+ " 144026 | \n",
+ " 124763 | \n",
+ " es | \n",
+ " Markazi | \n",
+ "
\n",
+ " \n",
+ " 144027 | \n",
+ " 128231 | \n",
+ " ru | \n",
+ " Керман | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
144028 rows × 3 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " geonameid isolanguage alt_name\n",
+ "0 895949 es Zambia\n",
+ "1 896140 pt Província Ocidental\n",
+ "2 899274 fr Samfya\n",
+ "3 912764 ja カサマ\n",
+ "4 921780 de Mohéli\n",
+ "... ... ... ...\n",
+ "144023 97990 fr Bakouba\n",
+ "144024 119505 en Qazvin\n",
+ "144025 119505 ko 카즈빈\n",
+ "144026 124763 es Markazi\n",
+ "144027 128231 ru Керман\n",
+ "\n",
+ "[144028 rows x 3 columns]"
+ ]
+ },
+ "execution_count": 158,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "db.sql('''\n",
+ "SELECT t1.*\n",
+ "FROM alname_df_all_values_selected_only_first_loc_en_filtered t1\n",
+ "JOIN (\n",
+ "\tSELECT geonameid, count(*) as count_lang\n",
+ "\tFROM alname_df_all_values_selected_only_first_loc_en_filtered\n",
+ "\tGROUP BY geonameid\n",
+ ") t2\n",
+ "ON t1.geonameid = t2.geonameid\n",
+ "WHERE t2.count_lang > 4\n",
+ "''').df()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Optional Step 4: JSONification of the language and alt_names\n",
+ "- The dictionary represented in a JSON like string"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 120,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " geonameid | \n",
+ " iso_language_alt_names | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 14 | \n",
+ " {\"ar\": \"تخت أرة دو\", \"en\": \"Takht Arreh Do\"} | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 254 | \n",
+ " {\"ar\": \"جسر بالارود\", \"en\": \"Pol-e Bala Rud\"} | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 301 | \n",
+ " {\"en\": \"Shahr-e Ziba\", \"fr\": \"Shahr-e ziba\"} | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 470 | \n",
+ " {\"ja\": \"アーザーディー広場\", \"ru\": \"Площадь Азади\", \"en... | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 566 | \n",
+ " {\"en\": \"Rudafshan Cave\", \"es\": \"Ghar-e-Roodafs... | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 683061 | \n",
+ " 12746714 | \n",
+ " {\"en\": \"Bosiljevo interchange\"} | \n",
+ "
\n",
+ " \n",
+ " 683062 | \n",
+ " 12746729 | \n",
+ " {\"en\": \"Ringwood Magistrates Court\"} | \n",
+ "
\n",
+ " \n",
+ " 683063 | \n",
+ " 12746744 | \n",
+ " {\"en\": \"Appleton Dock\"} | \n",
+ "
\n",
+ " \n",
+ " 683064 | \n",
+ " 12746795 | \n",
+ " {\"ja\": \"葛城地蔵・将軍地蔵\", \"en\": \"Katsuragi Kṣitigarb... | \n",
+ "
\n",
+ " \n",
+ " 683065 | \n",
+ " 12746811 | \n",
+ " {\"en\": \"The Line\", \"de\": \"The Line\", \"ar\": \"ذا... | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
683066 rows × 2 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " geonameid iso_language_alt_names\n",
+ "0 14 {\"ar\": \"تخت أرة دو\", \"en\": \"Takht Arreh Do\"}\n",
+ "1 254 {\"ar\": \"جسر بالارود\", \"en\": \"Pol-e Bala Rud\"}\n",
+ "2 301 {\"en\": \"Shahr-e Ziba\", \"fr\": \"Shahr-e ziba\"}\n",
+ "3 470 {\"ja\": \"アーザーディー広場\", \"ru\": \"Площадь Азади\", \"en...\n",
+ "4 566 {\"en\": \"Rudafshan Cave\", \"es\": \"Ghar-e-Roodafs...\n",
+ "... ... ...\n",
+ "683061 12746714 {\"en\": \"Bosiljevo interchange\"}\n",
+ "683062 12746729 {\"en\": \"Ringwood Magistrates Court\"}\n",
+ "683063 12746744 {\"en\": \"Appleton Dock\"}\n",
+ "683064 12746795 {\"ja\": \"葛城地蔵・将軍地蔵\", \"en\": \"Katsuragi Kṣitigarb...\n",
+ "683065 12746811 {\"en\": \"The Line\", \"de\": \"The Line\", \"ar\": \"ذا...\n",
+ "\n",
+ "[683066 rows x 2 columns]"
+ ]
+ },
+ "execution_count": 120,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "alname_df_all_values_selected_only_first_loc_en_filtered_jsonified = alname_df_all_values_selected_only_first_loc_en_filtered.groupby('geonameid').apply(lambda x: json.dumps(dict(zip(x['isolanguage'], x['alt_name'])), ensure_ascii=False)).reset_index()\n",
+ "alname_df_all_values_selected_only_first_loc_en_filtered_jsonified.columns = ['geonameid', 'iso_language_alt_names']\n",
+ "alname_df_all_values_selected_only_first_loc_en_filtered_jsonified"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Step 6: Converting the dataset in to Python Dictionary for JSON output"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 133,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{14: {'ar': 'تخت أرة دو', 'en': 'Takht Arreh Do'},\n",
+ " 254: {'ar': 'جسر بالارود', 'en': 'Pol-e Bala Rud'},\n",
+ " 301: {'en': 'Shahr-e Ziba', 'fr': 'Shahr-e ziba'},\n",
+ " 470: {'ja': 'アーザーディー広場',\n",
+ " 'ru': 'Площадь Азади',\n",
+ " 'en': 'Azadi Square',\n",
+ " 'fr': 'place Azadi',\n",
+ " 'ar': 'ميدان آزادي',\n",
+ " 'pt': 'Praça Azadi',\n",
+ " 'zh': '阿扎迪广场'},\n",
+ " 566: {'en': 'Rudafshan Cave',\n",
+ " 'es': 'Ghar-e-Roodafshan',\n",
+ " 'ar': 'كهف رودافشان الأثري',\n",
+ " 'fr': 'Ghar-e-Roodafshan',\n",
+ " 'de': 'Ghar-e-Roodafshan'},\n",
+ " 677: {'en': 'Azadi Stadium',\n",
+ " 'ko': '아자디 경기장',\n",
+ " 'ru': 'Азади',\n",
+ " 'de': 'Azadi-Stadion',\n",
+ " 'zh': '阿薩迪體育場',\n",
+ " 'fr': 'stade Azadi',\n",
+ " 'ja': 'アザディ・スタジアム',\n",
+ " 'pt': 'Estádio Azadi',\n",
+ " 'ar': 'ملعب آزادي',\n",
+ " 'es': 'Estadio Azadi'},\n",
+ " 820: {'ar': 'بلوط بازه', 'en': 'Balut Bazeh'},\n",
+ " 1102: {'en': 'Sefidestan'},\n",
+ " 1226: {'en': 'Zeyn ol Hajjilu', 'ar': 'زين\\u200c الحاجيلو'},\n",
+ " 1248: {'ar': 'سنوكش', 'en': 'Senowkesh'},\n",
+ " 1253: {'ar': 'تازة كند خوشة مهر', 'en': 'Tazeh Kand-e Khusheh Mehr'},\n",
+ " 1424: {'ar': 'سیاه برة', 'en': 'Siah Pareh'},\n",
+ " 1624: {'en': 'Galleh Kola'},\n",
+ " 1860: {'en': 'Tang-e Mohammad Haji', 'ar': 'تنغ محمد حاجی'},\n",
+ " 2028: {'en': 'Darreh Bidad-e Olya', 'ar': 'درة بیداد العلیا'},\n",
+ " 2081: {'en': 'Aqa Vali'},\n",
+ " 2085: {'en': 'Alir'},\n",
+ " 2106: {'fr': 'aéroport de Racht',\n",
+ " 'ja': 'ラシュト',\n",
+ " 'ar': 'مطار رشت الدولي',\n",
+ " 'en': 'Rasht Airport',\n",
+ " 'zh': '拉什特'},\n",
+ " 2152: {'ar': 'کیا کلایة', 'en': 'Kia Kalayeh'},\n",
+ " 2200: {'ar': 'قیة تشمن', 'en': 'Qarah Chaman'},\n",
+ " 2205: {'ar': 'ناوند', 'en': 'Navand'},\n",
+ " 2209: {'en': 'Khalifeh Kandi-ye Hatam', 'ar': 'خليفة كندي حاتم'},\n",
+ " 2213: {'ar': 'كهبان', 'en': 'Kohban'},\n",
+ " 2233: {'en': 'Baranqar', 'ar': 'برانقار'},\n",
+ " 3008: {'en': 'Vaysian'},\n",
+ " 3122: {'ar': 'بزهي', 'en': 'Bezhi'},\n",
+ " 3149: {'en': 'Kani Chulkeh', 'ar': 'كاني تشولكة'},\n",
+ " 3212: {'en': 'Malateh', 'ar': 'مالتة'},\n",
+ " 3370: {'ar': 'أقبال', 'en': 'Aqbal'},\n",
+ " 3419: {'ar': 'آغاسور، مهاباد', 'en': 'Aghasur'},\n",
+ " 3445: {'ar': 'زیر أندول', 'en': 'Zir Andul'},\n",
+ " 3456: {'ar': 'نادر غلي', 'en': 'Nader Goli'},\n",
+ " 3521: {'ar': 'شريفلو', 'en': 'Shariflu'},\n",
+ " 3594: {'en': 'Turchi', 'ar': 'تورتشي'},\n",
+ " 3712: {'en': 'Gonbadi', 'ar': 'غنبدي'},\n",
+ " 4105: {'en': 'Tabriz Khatun', 'ar': 'تبريزخاتون'},\n",
+ " 4746: {'ru': 'Ларнакский замок',\n",
+ " 'en': 'Larnaca Castle',\n",
+ " 'ar': 'قلعة لارنكا',\n",
+ " 'es': 'Castillo de Lárnaca',\n",
+ " 'de': 'Burg Larnaca',\n",
+ " 'ja': 'ラルナカ城'},\n",
+ " 4867: {'ja': 'ヒロキティア',\n",
+ " 'fr': 'Choirokoitia',\n",
+ " 'es': 'Khirokitia',\n",
+ " 'de': 'Chirokitia',\n",
+ " 'ru': 'Хирокития',\n",
+ " 'en': 'Khirokitia',\n",
+ " 'zh': '乔伊鲁科蒂亚',\n",
+ " 'ar': 'شويروكويتا',\n",
+ " 'pt': 'Choirokoitia'},\n",
+ " 5428: {'ja': 'ゴルガーン空港',\n",
+ " 'fr': 'aéroport de Gorgan',\n",
+ " 'en': 'Gorgan Airport',\n",
+ " 'zh': '戈爾甘機場'},\n",
+ " 5593: {'en': 'Aftabru'},\n",
+ " 5658: {'ar': 'سد كوريس', 'zh': '库里斯水坝', 'en': 'Kouris Dam'},\n",
+ " 5673: {'en': 'Katalynata ton Plakoton'},\n",
+ " 5721: {'ja': 'コロッシ城',\n",
+ " 'es': 'Castillo de Kolossi',\n",
+ " 'ru': 'Замок Колосси',\n",
+ " 'de': 'Kolossi',\n",
+ " 'en': 'Kolossi Castle',\n",
+ " 'fr': 'château de Colosse'},\n",
+ " 5776: {'en': 'Germasogeia Dam'},\n",
+ " 5783: {'en': 'Polemidia Camp'},\n",
+ " 5788: {'en': 'Polemidia Dam'},\n",
+ " 5972: {'ar': 'شورابه\\u200cخوران', 'en': 'Shurabeh Khuran'},\n",
+ " 6203: {'en': 'Satian', 'ar': 'ساتيان'},\n",
+ " 6224: {'en': 'Nahrkhan-e Sofla', 'ar': 'نهرخان سفلي'},\n",
+ " 6231: {'en': 'Lashekan'},\n",
+ " 6257: {'en': 'Choqa Mahi', 'ar': 'تشقاماهي'},\n",
+ " 6292: {'en': 'Shur Su'},\n",
+ " 6346: {'en': 'Yazdu'},\n",
+ " 6352: {'en': 'Puyeh'},\n",
+ " 6367: {'en': 'Dezian'},\n",
+ " 6549: {'en': 'Estar Khu'},\n",
+ " 6550: {'en': 'Davarzan County'},\n",
+ " 6565: {'en': 'Abu ol Hasani'},\n",
+ " 6637: {'en': 'Farinu-ye Bala'},\n",
+ " 6901: {'ar': 'السلحبية غربية', 'en': 'Western Sahlabiyeh'},\n",
+ " 6928: {'en': 'Nowveh'},\n",
+ " 6934: {'en': 'Faridar'},\n",
+ " 6942: {'en': 'Tuchah', 'ar': 'توتشاه'},\n",
+ " 6949: {'ar': 'سینغ', 'en': 'Seyang'},\n",
+ " 7178: {'en': 'Naveshk'},\n",
+ " 7245: {'en': 'Gom Eshaq', 'ar': 'غم إسحاق'},\n",
+ " 7299: {'ar': 'بهار سفلي', 'en': 'Bahar-e Sofla'},\n",
+ " 7726: {'ar': 'كاريزدر', 'en': 'Karizdar'},\n",
+ " 7777: {'ar': 'ورزن', 'ru': 'Верзен', 'en': 'Varzan'},\n",
+ " 7854: {'en': 'Pol-e khab'},\n",
+ " 7944: {'ar': 'کلاکسار', 'en': 'Kolaksar'},\n",
+ " 8000: {'ar': 'همة جا', 'ru': 'Хемеджа', 'en': 'Hameh Ja'},\n",
+ " 8101: {'ar': 'أزادبر', 'en': 'Azadbar', 'ru': 'Азадбер'},\n",
+ " 8102: {'en': 'Ayegan', 'ar': 'أیغان'},\n",
+ " 8596: {'en': 'Shahrara', 'fr': 'Shahrara'},\n",
+ " 8617: {'en': 'Sang-e Tajan'},\n",
+ " 8685: {'en': 'Najjar Deh'},\n",
+ " 8816: {'en': 'Ezbaran', 'ar': 'إيزباران'},\n",
+ " 9371: {'en': 'Mahuteh'},\n",
+ " 9373: {'en': 'Sar Poleh'},\n",
+ " 9463: {'en': 'Qezlar'},\n",
+ " 9465: {'en': 'Qezel Hesar-e Bala'},\n",
+ " 9501: {'en': 'Kalateh-ye Tashi'},\n",
+ " 9529: {'en': 'Cheshmeh Tabari'},\n",
+ " 9534: {'en': 'Chapeh'},\n",
+ " 9542: {'en': 'Barazarlu'},\n",
+ " 9545: {'en': 'Baliqayeh'},\n",
+ " 9546: {'en': 'Baba Shamalek'},\n",
+ " 9552: {'en': 'Anabay', 'ar': 'أناباي'},\n",
+ " 9554: {'en': 'Amanli', 'ar': 'أمانلي'},\n",
+ " 9704: {'en': 'Tazeh Yab'},\n",
+ " 9725: {'en': 'Qarah Aqaj-e Bala'},\n",
+ " 9752: {'en': 'Kalateh-ye Hajj Rahmat'},\n",
+ " 9774: {'en': 'Hamzak'},\n",
+ " 9804: {'en': 'Yasan'},\n",
+ " 9807: {'en': 'Bavers'},\n",
+ " 9832: {'en': 'Viar'},\n",
+ " 10123: {'ru': 'Мираш', 'ar': 'ميراش', 'en': 'Mirash'},\n",
+ " 10154: {'ru': 'Лашкан', 'en': 'Lashkan'},\n",
+ " 10205: {'ru': 'Хводкавенд', 'en': 'Khvodkavand', 'ar': 'خودكاوند'},\n",
+ " 10236: {'ar': 'کشمش', 'zh': '凱什梅什村', 'en': 'Keshmesh'},\n",
+ " 10255: {'ar': 'كرود', 'en': 'Karud'},\n",
+ " 10309: {'en': 'Jaliseh'},\n",
+ " 10350: {'en': 'Hajji Tappeh', 'ar': 'حاجي تبة'},\n",
+ " 10409: {'en': 'Espahabdan'},\n",
+ " 10502: {'en': 'Bezaj', 'ru': 'Безедж', 'ar': 'بزج'},\n",
+ " 10523: {'en': 'Balaband'},\n",
+ " 10526: {'en': 'Bagh Kalayeh'},\n",
+ " 10533: {'en': 'Azrat'},\n",
+ " 10546: {'ru': 'Ардехе', 'ar': 'أردهة', 'en': 'Ardaheh'},\n",
+ " 10555: {'ar': 'أنغة', 'en': 'Angeh'},\n",
+ " 10557: {'en': 'Andaj'},\n",
+ " 10578: {'ar': 'أهوارك', 'en': 'Ahvarak'},\n",
+ " 10606: {'en': 'Ajin Dojin', 'ar': 'أجين دوجين', 'ru': 'Аджин-Доджин'},\n",
+ " 10611: {'en': 'Aftab Dar'},\n",
+ " 10675: {'en': 'Shaqaqi-ye Jezla'},\n",
+ " 10818: {'en': 'Gholam Cham'},\n",
+ " 11080: {'en': 'Bur Khani'},\n",
+ " 11258: {'en': 'Shami Kola'},\n",
+ " 11288: {'en': 'Seraj Kola'},\n",
+ " 11426: {'en': 'Monqar Pey', 'ar': 'منغار بي'},\n",
+ " 11602: {'en': 'Gol Bestan'},\n",
+ " 11706: {'ar': 'بونة كنار', 'en': 'Boneh Kenar'},\n",
+ " 11726: {'en': 'Bala Sang Rizeh'},\n",
+ " 11801: {'en': 'Ab Bandan Kash'},\n",
+ " 11806: {'en': 'Heydar Kola', 'ar': 'حيدر كلا'},\n",
+ " 11852: {'fr': 'centrale électrique de Moni', 'en': 'Moni Power Station'},\n",
+ " 11991: {'en': 'Asprokremmos Dam'},\n",
+ " 12715: {'en': 'Dalas', 'es': 'Dalas'},\n",
+ " 13101: {'ar': 'وجني', 'en': 'Vejeni', 'ru': 'Пичан'},\n",
+ " 13108: {'ar': 'طويقون', 'en': 'Tuyqun'},\n",
+ " 13111: {'ar': 'ترانتشة', 'en': 'Tarancheh'},\n",
+ " 13119: {'en': 'Tazeh Kand-e Hajjikhan'},\n",
+ " 13124: {'ar': 'تویلة شامي', 'en': 'Tavileh-ye Shami'},\n",
+ " 13126: {'en': 'Sulakhlu'},\n",
+ " 13129: {'en': 'Shonqushabad', 'ar': 'شنقوش أباد'},\n",
+ " 13135: {'en': 'Shater Gonbadi'},\n",
+ " 13139: {'en': 'Shirbit', 'ar': 'شيربيت'},\n",
+ " 13141: {'en': 'Sheylavan'},\n",
+ " 13146: {'en': 'Sargiv'},\n",
+ " 13149: {'en': 'Sati-ye Vosta'},\n",
+ " 13150: {'ar': 'ساطي سفلي', 'en': 'Sati-ye Sofla'},\n",
+ " 13164: {'en': 'Ravasjan', 'ar': 'رواسجان'},\n",
+ " 13176: {'en': 'Qarah Masjed', 'ar': 'قرة مسجد'},\n",
+ " 13183: {'en': 'Parijan', 'ar': 'بريجان'},\n",
+ " 13188: {'en': 'Pireh Yusefian-e Sofla', 'ar': 'بيرة يوسفيان سفلي'},\n",
+ " 13192: {'ar': 'نقدي', 'en': 'Noqadi'},\n",
+ " 13197: {'en': 'Naqqareh Kub-e Qadim', 'ar': 'نقارة كوب قدیم'},\n",
+ " 13200: {'en': 'Monjuqchi'},\n",
+ " 13220: {'en': 'Kut Tappeh'},\n",
+ " 13224: {'en': 'Kord Tappeh'},\n",
+ " 13227: {'en': 'Kolujeh'},\n",
+ " 13228: {'en': 'Kohneh Kand', 'ar': 'كهنة كند'},\n",
+ " 13236: {'en': 'Khamunli'},\n",
+ " 13251: {'en': 'Kalim Bolagh'},\n",
+ " 13257: {'en': 'Joghanab-e Sofla', 'ar': 'جغناب سفلي'},\n",
+ " 13268: {'en': 'Ilkadeh', 'ar': 'ايلكدة'},\n",
+ " 13283: {'en': 'Garichi'},\n",
+ " 13285: {'en': 'Gandom Nan', 'ar': 'غندم\\u200c نان'},\n",
+ " 13309: {'ar': 'ديزبين', 'en': 'Dizbin'},\n",
+ " 13310: {'ar': 'ديزج شور', 'en': 'Dizaj-e Shur'},\n",
+ " 13313: {'ar': 'تشونغنش', 'en': 'Choqungonash'},\n",
+ " 13317: {'ar': 'تشبقان', 'en': 'Chapaqan'},\n",
+ " 13318: {'en': 'Chang Darreh'},\n",
+ " 13321: {'ar': 'تشاخر تشمني', 'en': 'Chahar Chaman'},\n",
+ " 13325: {'en': 'Chagoli Bolagh'},\n",
+ " 13332: {'en': 'Barcheh'},\n",
+ " 13337: {'en': 'Balluqiyeh', 'ar': 'بالو قية'},\n",
+ " 13349: {'en': 'Angiz', 'ar': 'أنغيز'},\n",
+ " 13351: {'en': 'Anbaq-e Javad', 'ar': 'أنباق جواد'},\n",
+ " 13354: {'en': 'Allah Yarlu', 'ar': 'الله يارلو'},\n",
+ " 13359: {'en': 'Atmeyan-e Sofla', 'ar': 'أتميان سفلي'},\n",
+ " 13373: {'en': 'Zardughan', 'ar': 'زردوغان'},\n",
+ " 13375: {'en': 'Zaglik-e Kurbolagh', 'ar': 'زغليك كوربلاغ'},\n",
+ " 13379: {'en': 'Zirian', 'ar': 'زيريان'},\n",
+ " 13383: {'en': 'Yagh Bastlu', 'ar': 'ياغ بستلو'},\n",
+ " 13384: {'en': 'Vanehabad', 'ar': 'ونة أباد'},\n",
+ " 13385: {'en': 'Vizanab', 'ar': 'ویزاناب'},\n",
+ " 13386: {'en': 'Vieq', 'ar': 'ویق'},\n",
+ " 13408: {'en': 'Tumar Darrahsi-ye Sofla'},\n",
+ " 13411: {'ar': 'سوتات', 'en': 'Sutat'},\n",
+ " 13414: {'en': 'Shureh Nab', 'ar': 'شورة ناب'},\n",
+ " 13415: {'ar': 'شيخ رضي', 'en': 'Sheykh Razi'},\n",
+ " 13418: {'ar': 'شیخ بوران', 'en': 'Sheykh Boran'},\n",
+ " 13421: {'en': 'Shalvari', 'ar': 'شلواري'},\n",
+ " 13425: {'en': 'Shir Mardan', 'ar': 'شير مردان'},\n",
+ " 13431: {'ar': 'سيد جوادلو', 'en': 'Seyyed Javadlu'},\n",
+ " 13432: {'en': 'Sehriq', 'ar': 'سهريق'},\n",
+ " 13437: {'en': 'Sari Suli', 'ar': 'ساري سولي'},\n",
+ " 13440: {'en': 'Sachlu', 'ar': 'ساتشلو'},\n",
+ " 13443: {'en': 'Samsam Kandi', 'ar': 'صمصام\\u200c كندي'},\n",
+ " 13444: {'en': 'Safi Khanlu', 'ar': 'صافي خانلو'},\n",
+ " 13454: {'ar': 'قتانلو', 'en': 'Qotanlu'},\n",
+ " 13457: {'ar': 'قشلاق ذاخر', 'en': 'Qeshlaq-e Zakhor'},\n",
+ " 13460: {'en': 'Qeshlaq-e Najaf Khanlu', 'ar': 'قشلاق نجف خانلو'},\n",
+ " 13469: {'ar': 'قليتش خانلو', 'en': 'Qelich Khanlu'},\n",
+ " 13471: {'ar': 'قية قشلاق', 'en': 'Qayeh Qeshlaq'},\n",
+ " 13484: {'en': 'Qarah Jelu', 'ar': 'قراجة لو'},\n",
+ " 13509: {'en': 'Ordukhan Kandi', 'ar': 'أردو خان كندي'},\n",
+ " 13510: {'en': 'Ojaq Qeshlaqi'},\n",
+ " 13514: {'en': 'Niazqoli'},\n",
+ " 13515: {'ar': 'مرده كتان', 'en': 'Mordeh Katan'},\n",
+ " 13519: {'en': 'Molk-e Daraq', 'ar': 'ملك درق'},\n",
+ " 13525: {'ar': 'ملخاص', 'en': 'Melkhas'},\n",
+ " 13535: {'ar': 'مياندرق', 'en': 'Miandaraq'},\n",
+ " 13536: {'en': 'Mian Bazur', 'ar': 'ميان\\u200c بازور'},\n",
+ " 13539: {'en': 'Lachin Darrehsi', 'ar': 'لاتشين درهسي'},\n",
+ " 13542: {'en': 'Kordlaqan', 'ar': 'کردلقان'},\n",
+ " 13546: {'en': 'Khvoy Narud', 'ar': 'خوينرود'},\n",
+ " 13548: {'en': 'Khubyarlu', 'ar': 'خوبيارلو'},\n",
+ " 13551: {'en': 'Kharabeh-ye Qaderlu'},\n",
+ " 13553: {'en': 'Khalfian', 'ar': 'خلفیان'},\n",
+ " 13556: {'en': 'Khaneh-ye Khosrow', 'ar': 'خانة خسرو'},\n",
+ " 13559: {'ar': 'كيقباد', 'en': 'Keyqobad'},\n",
+ " 13571: {'en': 'Kalanpa', 'ar': 'کلانپا'},\n",
+ " 13578: {'en': 'Kin Ab', 'ar': 'کند أب'},\n",
+ " 13581: {'ar': 'جوان شیخ', 'en': 'Javan Sheykh'},\n",
+ " 13586: {'ar': 'جين كندي', 'de': 'Jin Kandi', 'en': 'Jin Kandi'},\n",
+ " 13592: {'ar': 'هيب سفلي', 'en': 'Heybat-e Sofla'},\n",
+ " 13596: {'ar': 'هراسبان', 'en': 'Harasban'},\n",
+ " 13597: {'ar': 'هوري درق', 'en': 'Huri Daraq'},\n",
+ " 13598: {'ar': 'حسين خانلو', 'en': 'Hoseyn Khanlu'},\n",
+ " 13599: {'en': 'Hoseyn Kandi', 'ar': 'حسين كندي'},\n",
+ " 13601: {'ar': 'حصارسيد لر', 'en': 'Hesar-e Seyyedlar'},\n",
+ " 13603: {'en': 'Hasan Beyglu', 'ar': 'حسن\\u200c بيغلو'},\n",
+ " 13606: {'ar': 'حاج سيفلو', 'en': 'Hajji Seyflu'},\n",
+ " 13611: {'en': 'Gurom Daraq', 'ar': 'غورم درق'},\n",
+ " 13615: {'en': 'Goldaraq', 'ar': 'غلدرق'},\n",
+ " 13616: {'ar': 'غفار كندي', 'en': 'Ghaffar Kandi'},\n",
+ " 13617: {'en': 'Gerdeh Gol'},\n",
+ " 13618: {'ar': 'غردة سنغ', 'en': 'Gerdah Sang'},\n",
+ " 13624: {'en': 'Galasan Gurasan'},\n",
+ " 13626: {'ar': 'جاموش أولن سفلي', 'en': 'Jamush Olan-e Sofla'},\n",
+ " 13628: {'en': 'Gavdel', 'ar': 'غاو دل'},\n",
+ " 13629: {'ar': 'إسلام كندي', 'en': 'Eslam Kandi'},\n",
+ " 13630: {'ar': 'دوريق', 'en': 'Duriq'},\n",
+ " 13633: {'en': 'Dughan', 'ar': 'دوغان'},\n",
+ " 13635: {'ar': 'ديلم\\u200c شاه', 'en': 'Deylamshah'},\n",
+ " 13636: {'en': 'Delqanab', 'ar': 'دلقناب'},\n",
+ " 13643: {'en': 'Dagh Kandi'},\n",
+ " 13644: {'en': 'Dizaj-e Talkhaj', 'ar': 'ديزج تلخاج'},\n",
+ " 13645: {'en': 'Dizaj-e Sefid', 'ar': 'ديزج سفيد'},\n",
+ " 13646: {'en': 'Dizaj-e Jalu', 'ar': 'ديزج جالو'},\n",
+ " 13647: {'ar': 'ديكدرق', 'en': 'Dikdaraq'},\n",
+ " 13654: {'ar': 'تشیناب', 'en': 'Chinab'},\n",
+ " 13658: {'ar': 'تشرمة دش', 'en': 'Charmeh Dash'},\n",
+ " 13664: {'en': 'Beneh Lar'},\n",
+ " 13665: {'ar': 'بنة ديق', 'en': 'Benahdiq'},\n",
+ " 13669: {'en': 'Bal Daghi', 'ar': 'بال درق'},\n",
+ " 13670: {'ar': 'باغلار', 'en': 'Baghlar'},\n",
+ " 13675: {'en': 'Andab-e Jadid', 'ar': 'أنداب جديد'},\n",
+ " 13677: {'ar': 'أنباق حاجي خان', 'en': 'Anbaq-e Hajjikhan'},\n",
+ " 13680: {'ar': 'احدبيغلو', 'en': 'Ahad Beyglu'},\n",
+ " 13684: {'en': 'Avalan', 'ar': 'عوالان'},\n",
+ " 13686: {'en': 'As-e Jadid', 'ar': 'أس جديد'},\n",
+ " 13690: {'en': 'Aqdaraq-e Qadim', 'ar': 'أق\\u200c درق قديم'},\n",
+ " 13691: {'en': 'Aqdaraq-e Jadid', 'ar': 'أق\\u200c درق جديد'},\n",
+ " 13698: {'en': 'Ampar', 'ar': 'أمبار'},\n",
+ " 13700: {'en': 'Alpavat', 'ar': 'ألباوت'},\n",
+ " 13701: {'ar': 'الپاويت', 'en': 'Alpavit'},\n",
+ " 13703: {'en': 'Adam Darrehsi-ye Sofla', 'ar': 'أدم درهسي سفلي'},\n",
+ " 13863: {'en': 'Afshjerd'},\n",
+ " 13885: {'en': 'Araz'},\n",
+ " 14112: {'ar': 'جوزار', 'en': 'Javzar'},\n",
+ " 14152: {'ar': 'بزغالة', 'en': 'Bozghaleh'},\n",
+ " 14172: {'en': 'Emamqoli Kandi-ye Sofla', 'ar': 'امامقليكندي سفلي'},\n",
+ " 14192: {'en': 'Zanjiran'},\n",
+ " 14210: {'en': 'Farvaz'},\n",
+ " 14212: {'en': 'Dorudgaran', 'ar': 'درودغران'},\n",
+ " 14466: {'ar': 'کنمي', 'en': 'Kanemi'},\n",
+ " 14782: {'en': 'Sar Masjed'},\n",
+ " 15280: {'en': 'Gachi Bolaghi-ye Sofla'},\n",
+ " 15904: {'fr': 'centrale électrique de Dhekelia',\n",
+ " 'es': 'Central eléctrica de Dekhelia',\n",
+ " 'de': 'Hafen Dhekelia',\n",
+ " 'en': 'Dhekelia Power Station',\n",
+ " 'zh': '泽凯利亚发电厂'},\n",
+ " 16126: {'en': 'Ercan'},\n",
+ " 16517: {'en': 'Kalopanagiotis Dam'},\n",
+ " 16770: {'en': 'Statos–Agios Fotios'},\n",
+ " 16937: {'en': 'Makrona'},\n",
+ " 16973: {'ar': 'لاكارأباد', 'en': 'Lakarabad-e Sofla'},\n",
+ " 16978: {'en': 'Kazbagar Jali'},\n",
+ " 16982: {'en': 'Lamunu'},\n",
+ " 16986: {'en': 'Barzand'},\n",
+ " 16998: {'en': 'Takah Kandi'},\n",
+ " 17000: {'ar': 'كرم كندي', 'en': 'Keram Kandi'},\n",
+ " 17001: {'en': 'Qutur Bolagh', 'ar': 'قوطور بلاغ'},\n",
+ " 17008: {'en': 'Tak Kandi'},\n",
+ " 17015: {'en': 'Khalifehlu Kandi-ye Kuchak'},\n",
+ " 17031: {'en': 'Surkha Kandi'},\n",
+ " 17038: {'en': 'Ebrahim Kandi-ye Vosta', 'ar': 'إبراهيم كندي وسطي'},\n",
+ " 17045: {'en': 'Parya Katli'},\n",
+ " 17048: {'en': 'Kasihli'},\n",
+ " 17050: {'ar': 'إياز كندي', 'en': 'Ayaz Kandi'},\n",
+ " 17054: {'en': 'Tazeh Kand-e Kian', 'ar': 'تازة كندكيان'},\n",
+ " 17057: {'en': 'Qushchi Bayram Khvajeh', 'ar': 'قوشتشي بايرام\\u200c خواجة'},\n",
+ " 17079: {'ar': 'كدخدالو بالا', 'en': 'Kadkhodalu-ye Bala'},\n",
+ " 17084: {'en': 'Aq Qabaq-e Golshad Kandi', 'ar': 'غورشاد كندي'},\n",
+ " 17091: {'ar': 'يلي عليا', 'en': 'Yeli-ye Sofla'},\n",
+ " 17095: {'en': 'Hamvar Kandi', 'ar': 'هموار كندي'},\n",
+ " 17096: {'ar': 'همو', 'en': 'Homu'},\n",
+ " 17097: {'ar': 'همنشين', 'es': 'Ham Neshin', 'en': 'Ham Neshin'},\n",
+ " 17098: {'en': 'Hamdamlu', 'ar': 'همدملو'},\n",
+ " 17100: {'en': 'Havar Kandi Qeshlaqi', 'ar': 'هاوار كندي قشلاقي'},\n",
+ " 17103: {'ar': 'نولو', 'en': 'Nowlu'},\n",
+ " 17104: {'en': 'Nurollah Beyglu'},\n",
+ " 17107: {'ar': 'ملي كندي', 'en': 'Melli Kandi'},\n",
+ " 17115: {'ar': 'محمد صالحلو', 'en': 'Mohammad Salehu'},\n",
+ " 17121: {'en': 'Malqeshlaqi', 'ar': 'مالقشلاقي'},\n",
+ " 17124: {'ar': 'لوتجان', 'en': 'Lowtejan'},\n",
+ " 17125: {'en': 'Lalan-e Sofla', 'ar': 'لالان سفلي'},\n",
+ " 17126: {'ar': 'محمد حسنلو', 'en': 'Mohammad Hasanlu'},\n",
+ " 17127: {'ar': 'غون\\u200c غورمز', 'en': 'Gun Gowrmez'},\n",
+ " 17132: {'en': 'Gerdeh Zaylu', 'ar': 'غردة زايلو'},\n",
+ " 17136: {'ar': 'غاو أهن', 'en': 'Gavahan'},\n",
+ " 17141: {'ar': 'ميروردي كندي', 'en': 'Mirverdi Kandi'},\n",
+ " 17147: {'en': 'Kerishan', 'ar': 'كريشان'},\n",
+ " 17154: {'ar': 'كابل\\u200c أباد', 'en': 'Kabolabad'},\n",
+ " 17155: {'en': 'Qayah Dibi', 'ar': 'قیة دیبي'},\n",
+ " 17156: {'ar': 'قية باشي بزرغ', 'en': 'Qayah Bashi-ye Bozorg'},\n",
+ " 17167: {'ar': 'قليان ساز', 'en': 'Qalyan Saz'},\n",
+ " 17173: {'ar': 'قطر سفلي', 'en': 'Qatar-e Sofla'},\n",
+ " 17174: {'en': 'Harna', 'ar': 'هارنا'},\n",
+ " 17184: {'en': 'Qeshlaq-e Gowmir Chinlu-ye Owrtadagh',\n",
+ " 'ar': 'قشلاق غورتشينلواورتاداغ'},\n",
+ " 17193: {'en': 'Qeshlaq-e Qaneh', 'ar': 'قشلاق قانة'},\n",
+ " 17236: {'en': 'Qeshlaq-e Hajj Taleb', 'ar': 'قشلاق حاج طالب'},\n",
+ " 17239: {'ar': 'قشلاق تشنار', 'en': 'Qeshlaq-e Chenar'},\n",
+ " 17243: {'ar': 'قشلاق جدا', 'en': 'Qeshlaq-e Jeda'},\n",
+ " 17252: {'en': 'Qeshlaq Amir Khanlu-ye Moharramabad',\n",
+ " 'ar': 'قشلاق أمير خانلو محرم أباد'},\n",
+ " 17253: {'en': 'Qeshlaq Amir Khanlu-ye Qarah Saqqal',\n",
+ " 'ar': 'قشلاق أمير خانلو قرة سقل'},\n",
+ " 17256: {'ar': 'قشلاق أمير خانلو بل رحمان',\n",
+ " 'en': 'Qeshlaq Amir Khanlu-ye Pol-e Rahman'},\n",
+ " 17262: {'en': 'Qeshlaq-e Agh Laqan', 'ar': 'قشلاق أغلاقان'},\n",
+ " 17263: {'ar': 'قشلاق أجي أشمة نوراحمد',\n",
+ " 'en': 'Qeshlaq-e Aji Eshmeh-ye Nurahmad'},\n",
+ " 17266: {'en': 'Qarah Qayah-ye Shakarlu', 'ar': 'قرة قیة شاکر لو'},\n",
+ " 17270: {'ar': 'قرة وانلو', 'en': 'Qarah Vanlu'},\n",
+ " 17271: {'en': 'Qarah Daraq-e Vosta', 'ar': 'قرة درق وسطي'},\n",
+ " 17273: {'en': 'Qarah Daraq-e Sofla', 'ar': 'قرة درق سفلي'},\n",
+ " 17277: {'en': 'Qarahjah Aghle', 'ar': 'قره جاه أغلي'},\n",
+ " 17278: {'en': 'Qorbanlu', 'ar': 'قربانلو'},\n",
+ " 17280: {'ar': 'قباد کندي', 'en': 'Qobad Kandi'},\n",
+ " 17281: {'en': 'Qanlu', 'ar': 'قانلو'},\n",
+ " 17282: {'ar': 'قاقالو', 'en': 'Qaqalu'},\n",
+ " 17286: {'en': 'Qarlujeh', 'ar': 'قارلوجة'},\n",
+ " 17289: {'en': 'Gharib Hajji', 'ar': 'غريب حاجي'},\n",
+ " 17304: {'ar': 'مدينة قشلاقي', 'en': 'Madineh Qeshlaqi'},\n",
+ " 17315: {'ar': 'سيف خانلو', 'en': 'Seyf Khanlu'},\n",
+ " 17320: {'ar': 'شيخلان سفلي', 'en': 'Sheykhlan-e Sofla'},\n",
+ " 17322: {'ar': 'شهبازلو', 'en': 'Shahbazlu'},\n",
+ " 17323: {'en': 'Shur Daraq-e Sofla', 'ar': 'شوردرق سفلي'},\n",
+ " 17330: {'en': 'Shah Heydar', 'ar': 'شاه\\u200c حيدر'},\n",
+ " 17331: {'en': 'Shamlu-ye Kuchak', 'ar': 'شاملوي كوتشك'},\n",
+ " 17333: {'en': 'Shabi Kandi', 'ar': 'شابي كندي'},\n",
+ " 17347: {'en': 'Seqehsay', 'ar': 'سقة ساي'},\n",
+ " 17349: {'ar': 'ساري ياتاق', 'en': 'Sari Yataq'},\n",
+ " 17363: {'ar': 'دوغي درق', 'en': 'Dowgi Daraq'},\n",
+ " 17371: {'en': 'Dowrmishkhanlu', 'ar': 'دورميشكانلو'},\n",
+ " 17374: {'ar': 'داودان بالا', 'en': 'Davdan-e Bala'},\n",
+ " 17382: {'ar': 'خان محمدلو', 'en': 'Khan Mohammadlu'},\n",
+ " 17388: {'en': 'Khalan', 'ar': 'خالان'},\n",
+ " 17398: {'ar': 'حاجي نورش كندي', 'en': 'Hajji Nowrush Kandi'},\n",
+ " 17402: {'en': 'Gechi Qeshlaq-e Sofla', 'ar': 'غتشي قشلاق سفلي'},\n",
+ " 17405: {'en': 'Qeshlaq-e Seyyedlar-e Seyfollah',\n",
+ " 'ar': 'قشلاق سیدلر سیف الله'},\n",
+ " 17418: {'en': 'Hajj Ahmad Kandi', 'ar': 'حاج أحمد كندي'},\n",
+ " 17420: {'ar': 'تشناق', 'en': 'Chanaq'},\n",
+ " 17428: {'en': 'Janan Lu', 'ar': 'جانانلو'},\n",
+ " 17430: {'en': 'pillar a los compadres'},\n",
+ " 17435: {'en': 'Tabestanaq', 'ar': 'تابستانق'},\n",
+ " 17437: {'en': 'Pirlar-e Sofla', 'ar': 'بيرلر سفلي'},\n",
+ " 17440: {'en': 'Pir Ahmadlu', 'ar': 'بير أحمد لو'},\n",
+ " 17443: {'en': 'Parviz Khanlu', 'ar': 'برويز خانلو'},\n",
+ " 17453: {'ar': 'بسطاملو', 'en': 'Bastamlu'},\n",
+ " 17459: {'ar': 'بالي بيغ لو', 'en': 'Bali Beyglu'},\n",
+ " 17460: {'en': 'Baqer Owghli', 'ar': 'باقراوغلي'},\n",
+ " 17465: {'en': 'Bashkalan', 'ar': 'باش\\u200c كلان'},\n",
+ " 17466: {'en': 'Babaylu', 'ar': 'بابايلو'},\n",
+ " 17470: {'ar': 'أيري بوجاق', 'en': 'Ayri Bujaq'},\n",
+ " 17472: {'en': 'Ichi Daraq', 'ar': 'إيتشي درق'},\n",
+ " 17474: {'ar': 'أولي قشلاق', 'en': 'Owli Qeshlaq'},\n",
+ " 17488: {'ar': 'غلام حسین کندي', 'en': 'Gholam Hoseyn Kandi'},\n",
+ " 17503: {'en': 'Aznab-e Khaleseh', 'ar': 'أزناب خالصة'},\n",
+ " 17504: {'en': 'Oruj Qeshlaq-e Morad', 'ar': 'أروج قشلاق مراد'},\n",
+ " 17506: {'en': 'Oruj Qeshlaq-e Hajj Almas Khan',\n",
+ " 'ar': 'أروج قشلاق حاج الماس\\u200c خان'},\n",
+ " 17512: {'en': 'Ojaq Qeshlaq-e Khoruslu', 'ar': 'أجاق قشلاق خروسلو'},\n",
+ " 17516: {'en': 'Avanlu', 'ar': 'أوانلو'},\n",
+ " 17517: {'en': 'Avarsin', 'ar': 'أوارسين'},\n",
+ " 17519: {'ar': 'أق قباق وسطي', 'en': 'Aq Qabaq-e Vosta'},\n",
+ " 17524: {'en': 'Aq Beraz', 'ar': 'أق براز'},\n",
+ " 17531: {'en': 'Ajudanabad', 'ar': 'أجودان\\u200c أباد'},\n",
+ " 17539: {'en': 'Yengikand-e Khusheh Mehr', 'ar': 'ينغي كند خوشة مهر'},\n",
+ " 17540: {'en': 'Yengikand-e Khaneh-ye Barq', 'ar': 'ينغي كند خانة برق'},\n",
+ " 17568: {'ar': 'أوختشي', 'en': 'Owkhchi'},\n",
+ " 17591: {'ar': 'زوارق', 'en': 'Zavaraq'},\n",
+ " 17593: {'en': 'Tazeh Kand-e Sheykh ol Eslam',\n",
+ " 'ar': 'تازة كند شيخ\\u200c الإسلام'},\n",
+ " 17598: {'ar': 'تازة كند خانكندي', 'en': 'Tazeh Kand-e Khan Kandi'},\n",
+ " 17608: {'ar': 'طالب خان', 'en': 'Taleb Khan'},\n",
+ " 17619: {'ar': 'شورجة طور أغاي', 'en': 'Shurjeh-ye Turaghay'},\n",
+ " 17623: {'ar': 'شيخ\\u200c بابا', 'en': 'Sheykh Baba'},\n",
+ " 17628: {'ar': 'شللو', 'en': 'Shellalu'},\n",
+ " 17630: {'en': 'Sharazul', 'ar': 'شرازول'},\n",
+ " 17631: {'ar': 'شرانلو', 'en': 'Sharanlu'},\n",
+ " 17632: {'en': 'Shalilvand'},\n",
+ " 17643: {'ar': 'شيروان\\u200c شاهلو', 'en': 'Shirvan Shahlu'},\n",
+ " 17649: {'en': 'Serej', 'ar': 'سرج'},\n",
+ " 17653: {'en': 'Sarkarabad', 'ar': 'سركار أباد'},\n",
+ " 17656: {'ar': 'سرغزة', 'en': 'Sargezeh'},\n",
+ " 17657: {'ar': 'سرين\\u200c ديزج', 'en': 'Sarin Dizaj'},\n",
+ " 17682: {'ar': 'صغايش', 'en': 'Seghayesh'},\n",
+ " 17686: {'ar': 'روشت كوتشك', 'en': 'Ravesht-e Kuchek'},\n",
+ " 17702: {'ar': 'قوش\\u200c بلاغ', 'en': 'Qush Bolagh'},\n",
+ " 17704: {'ar': 'قوريجان', 'en': 'Qurijan'},\n",
+ " 17706: {'ar': 'قطان', 'en': 'Qotan'},\n",
+ " 17715: {'ar': 'قیماس خان', 'en': 'Qeymas Khan'},\n",
+ " 17717: {'en': 'Qeshlaq-e Piazi', 'ar': 'قشلاق بيازي'},\n",
+ " 17718: {'ar': 'قشلاق خانة برق', 'en': 'Qeshlaq-e Khaneh-ye Barq'},\n",
+ " 17722: {'ar': 'قرمز خليفة سفلي', 'en': 'Qermez Khalifeh-ye Sofla'},\n",
+ " 17730: {'en': 'Qartavol', 'ar': 'قرطاول'},\n",
+ " 17749: {'ar': 'قرة تشال', 'en': 'Qareh Chal'},\n",
+ " 17752: {'ar': 'قرة باباق', 'en': 'Qareh Papaq'},\n",
+ " 17756: {'ar': 'قراغيل', 'en': 'Qaraghil'},\n",
+ " 17760: {'en': 'Qandhar', 'ar': 'قندهار'},\n",
+ " 17761: {'ar': 'قنديلو', 'en': 'Qandilu'},\n",
+ " 17781: {'en': 'Parchin Bolagh', 'ar': 'برتشين\\u200c بلاغ'},\n",
+ " 17784: {'ar': 'بير تشوبان', 'en': 'Pirchupan'},\n",
+ " 17798: {'en': 'Nosratabad-e Laklar', 'ar': 'نصرت\\u200c أباد لكلر'},\n",
+ " 17805: {'ar': 'نرج\\u200c أباد', 'en': 'Narjabad'},\n",
+ " 17812: {'ar': 'ناخرتشي بلاغي', 'en': 'Nakherchi Bolaghi'},\n",
+ " 17819: {'ar': 'موسي\\u200c درق', 'en': 'Musa Daraq'},\n",
+ " 17823: {'ar': 'مراد خانلو', 'en': 'Moradkhanlu'},\n",
+ " 17825: {'en': 'Molla Sarab', 'ar': 'ملا سراب'},\n",
+ " 17831: {'ar': 'ميمونق', 'en': 'Meymunaq'},\n",
+ " 17839: {'fr': 'ACP',\n",
+ " 'en': 'Sahand Maragheh Airport',\n",
+ " 'zh': '什恩德機場',\n",
+ " 'ja': 'サハンド空港'},\n",
+ " 17841: {'ar': 'ممة شير', 'en': 'Mameh Shir'},\n",
+ " 17849: {'ar': 'مرجانلو', 'en': 'Marjanlu'},\n",
+ " 17857: {'ar': 'ليلي داغي', 'en': 'Leyli Daghi'},\n",
+ " 17865: {'en': 'Kutah Mehr', 'ar': 'کوتة مهر'},\n",
+ " 17869: {'ar': 'كورة جان', 'en': 'Kureh Bolagh'},\n",
+ " 17876: {'en': 'Korjan', 'ar': 'كرجان'},\n",
+ " 17883: {'en': 'Kohlan', 'ar': 'كهلان'},\n",
+ " 17887: {'ar': 'حوري لر', 'en': 'Hurilar'},\n",
+ " 17896: {'en': 'Khaslu', 'ar': 'خاصلو'},\n",
+ " 17897: {'en': 'Khasehlar',\n",
+ " 'fr': 'Khasehlar',\n",
+ " 'de': 'Khasehlar',\n",
+ " 'ar': 'خاصة لر'},\n",
+ " 17898: {'ar': 'خاص\\u200c أباد', 'en': 'Khasabad'},\n",
+ " 17900: {'ar': 'خانة برق قدیم', 'en': 'Khaneh-ye Barq-e Qadim'},\n",
+ " 17901: {'en': 'Khaneh-ye Barq-e Jadid', 'ar': 'خانة برق جدید'},\n",
+ " 17902: {'en': 'Khanamir', 'ar': 'خان\\u200c مير'},\n",
+ " 17913: {'ar': 'كرج\\u200c أباد', 'en': 'Karajabad'},\n",
+ " 17924: {'ar': 'كهجوق', 'en': 'Kahjuq'},\n",
+ " 17954: {'ar': 'هرق', 'en': 'Heraq'},\n",
+ " 17982: {'ar': 'حاجي مصیب', 'en': 'Hajji Mosayyeb'},\n",
+ " 17983: {'ar': 'حاجي كرد', 'en': 'Hajji Kord'},\n",
+ " 17997: {'ar': 'غوي درق سفلي', 'en': 'Gowy Daraq-e Sofla'},\n",
+ " 18009: {'ar': 'غلي كند', 'en': 'Goli Kand'},\n",
+ " 18020: {'ar': 'غلة زار', 'en': 'Ghallehzar'},\n",
+ " 18047: {'ar': 'إصفهانجيق', 'en': 'Esfehanjiq'},\n",
+ " 18050: {'en': 'Ekis', 'ar': 'إكيس'},\n",
+ " 18058: {'en': 'Davahchi', 'ar': 'دوة تشي'},\n",
+ " 18084: {'en': 'Dizaj-e Parvaneh', 'ar': 'دیزج بروانة'},\n",
+ " 18085: {'en': 'Dizaj-e Leyli Khani', 'ar': 'ديزج ليلي خاني'},\n",
+ " 18102: {'en': 'Cheraghil', 'ar': 'تشراغيل'},\n",
+ " 18106: {'en': 'Cheghalu', 'ar': 'تشغالو'},\n",
+ " 18107: {'ar': 'تشوان سفلي', 'en': 'Chavan-e Sofla'},\n",
+ " 18110: {'en': 'Chavan Bagh', 'ar': 'تشوان باغ'},\n",
+ " 18118: {'en': 'Chay Baghi', 'ar': 'تشاي باغي'},\n",
+ " 18122: {'en': 'Chalelu', 'ar': 'تشاللو'},\n",
+ " 18129: {'ar': 'بهنق', 'en': 'Behnaq'},\n",
+ " 18131: {'ar': 'بيغلو', 'en': 'Beyglu'},\n",
+ " 18137: {'ar': 'بنايم', 'en': 'Banayem'},\n",
+ " 18143: {'ar': 'باويل سفلي', 'en': 'Bavil-e Sofla'},\n",
+ " 18160: {'ar': 'بابا قاضي', 'en': 'Baba Qazi'},\n",
+ " 18174: {'en': 'Amir Ghayeb', 'ar': 'أمير غايب'},\n",
+ " 18175: {'en': 'Alvanaq', 'ar': 'الوانق'},\n",
+ " 18179: {'en': 'Akhi Jahan', 'ar': 'أخي جهان'},\n",
+ " 18189: {'ar': 'أشستان', 'en': 'Ashestan'},\n",
+ " 18194: {'en': 'Aq Manar', 'ar': 'أق\\u200c منار'},\n",
+ " 18377: {'en': 'Pomos Dam'},\n",
+ " 18446: {'en': 'Argaka Dam'},\n",
+ " 18471: {'en': 'Ayia Marina Dam'},\n",
+ " 18479: {'en': 'Nea Dimmata'},\n",
+ " 18546: {'ar': 'قشلاق أمير', 'en': 'Qeshlaq-e Amir'},\n",
+ " 18593: {'en': 'Jahangir Kandi', 'ar': 'جهانغير كندي'},\n",
+ " 18646: {'en': 'Baba Kalak', 'ar': 'بابا كلك'},\n",
+ " 18800: {'en': 'Kato Paphos Castle'},\n",
+ " 18808: {'en': 'Tombs of the Kings'},\n",
+ " 18822: {'en': 'Φράγμα Μαυροκόλυμπου'},\n",
+ " 18839: {'en': 'Vlampouros'},\n",
+ " 18918: {'de': 'Protaras',\n",
+ " 'fr': 'Protaras',\n",
+ " 'ja': 'プロタラス',\n",
+ " 'ru': 'Протарас',\n",
+ " 'zh': '普羅塔拉斯',\n",
+ " 'es': 'Protaras',\n",
+ " 'en': 'Protaras'},\n",
+ " 19218: {'en': 'Mavri Schinia'},\n",
+ " 20794: {'zh': '尼科西亚国际机场',\n",
+ " 'de': 'Flughafen Nikosia',\n",
+ " 'ru': 'Никосия',\n",
+ " 'en': 'Nicosia International Airport',\n",
+ " 'ko': '니코시아 국제공항',\n",
+ " 'ar': 'مطار نيقوسيا الدولي',\n",
+ " 'es': 'Aeropuerto de Nicosia',\n",
+ " 'fr': 'aéroport international de Nicosie',\n",
+ " 'pt': 'Aeroporto Internacional de Nicósia',\n",
+ " 'ja': 'ニコシア国際空港'},\n",
+ " 21462: {'en': 'Tak-e Ab Band'},\n",
+ " 21465: {'en': 'Khunik-e Tajen'},\n",
+ " 21489: {'en': 'Aba Mansuri'},\n",
+ " 21493: {'en': 'Mehrak'},\n",
+ " 21543: {'en': 'Tamand'},\n",
+ " 21544: {'en': 'Tal Quch'},\n",
+ " 21548: {'en': 'Shams-e Bala'},\n",
+ " 21554: {'en': 'Qodsian'},\n",
+ " 21573: {'en': 'Kalateh-ye Sarvar'},\n",
+ " 21584: {'en': 'Kalateh-ye Malek'},\n",
+ " 21588: {'en': 'Kalateh-ye Boshgazi'},\n",
+ " 21625: {'en': 'Hoseynabad-e Miran'},\n",
+ " 21712: {'en': 'Gandeshkan'},\n",
+ " 21767: {'ar': 'تشوند', 'en': 'Tashvand'},\n",
+ " 21802: {'en': 'Mezg', 'ar': 'مزغ'},\n",
+ " 21856: {'en': 'Hamech'},\n",
+ " 22200: {'en': 'Zardeh Malek', 'ar': 'زردة ملك'},\n",
+ " 22258: {'ar': 'وكند', 'en': 'Vakand'},\n",
+ " 22328: {'en': 'Shekar Daraq', 'ar': 'شكر درق'},\n",
+ " 22403: {'ar': 'قزلجه ارشد', 'en': 'Qezeljeh-ye Arshad'},\n",
+ " 22423: {'en': 'Qerkh Seqer', 'ar': 'قرخ\\u200c سقر'},\n",
+ " 22441: {'ar': 'قرة جة قية', 'en': 'Qarehjah Qayah'},\n",
+ " 22463: {'en': 'Qarah Kalak', 'ar': 'قرة كلك'},\n",
+ " 22515: {'en': 'Owranjaq', 'ar': 'أورنجق'},\n",
+ " 22554: {'ar': 'ملك', 'en': 'Molk'},\n",
+ " 22624: {'en': 'Keh', 'ar': 'كة'},\n",
+ " 22626: {'en': 'Kazaraj', 'ar': 'كزرج'},\n",
+ " 22640: {'en': 'Kalleh Gerd', 'ar': 'كلة غرد'},\n",
+ " 22696: {'ar': 'غليتر', 'en': 'Goleytar'},\n",
+ " 22721: {'en': 'Eyvaraq', 'ar': 'إيورق'},\n",
+ " 22728: {'ar': 'أسفنغرة', 'en': 'Esfangareh'},\n",
+ " 22736: {'ar': 'دودة', 'en': 'Do Deh'},\n",
+ " 22817: {'ar': 'برنجق', 'en': 'Berenjaq'},\n",
+ " 22818: {'en': 'Beneh Kohol', 'ar': 'بنة كهل'},\n",
+ " 22835: {'ar': 'برزق', 'en': 'Barzaq'},\n",
+ " 23025: {'en': 'Shabdeh', 'ar': 'شبدة'},\n",
+ " 23270: {'ar': 'خندق', 'en': 'Khandaq'},\n",
+ " 23534: {'en': 'Qomeshah'},\n",
+ " 23830: {'en': 'Jazar'},\n",
+ " 24080: {'en': 'Charkas'},\n",
+ " 24331: {'en': 'Shaleh'},\n",
+ " 24507: {'en': 'Karnachi'},\n",
+ " 24944: {'ar': 'غول بسر', 'en': 'Gol Besar'},\n",
+ " 25094: {'en': 'Negareh'},\n",
+ " 26263: {'en': 'Owrjak'},\n",
+ " 26644: {'ar': 'منبر', 'en': 'Manbar'},\n",
+ " 26999: {'en': 'Berenjeh'},\n",
+ " 28116: {'ar': 'مويلة', 'en': 'Movelah'},\n",
+ " 28354: {'en': 'Darreh Shahr County'},\n",
+ " 28899: {'en': 'Fashtakeh-Hossein Norouzi Locality'},\n",
+ " 29070: {'en': 'Doshman Kordeh', 'pt': 'Doshman Kordeh', 'ar': 'دشمن كردة'},\n",
+ " 29568: {'en': 'Rajang'},\n",
+ " 30130: {'en': 'Gownd'},\n",
+ " 30386: {'en': 'Darreh Par'},\n",
+ " 31494: {'en': 'Archang'},\n",
+ " 32181: {'en': 'Tang-e Loreh', 'ar': 'تنغ لرة'},\n",
+ " 34672: {'en': 'Arghesh'},\n",
+ " 34743: {'ar': 'البقع', 'en': 'Albuq'},\n",
+ " 34749: {'en': 'Sudum', 'ar': 'سدم'},\n",
+ " 35628: {'en': 'Karkasheh'},\n",
+ " 35643: {'ar': 'هرزة ورز', 'en': 'Harzeh Varz'},\n",
+ " 35790: {'en': 'Nogeh'},\n",
+ " 36617: {'en': 'Dezful Airport'},\n",
+ " 36888: {'en': 'Sorkheh Sang'},\n",
+ " 36924: {'en': 'Kehel Dasht'},\n",
+ " 36930: {'en': 'Dasht Andar'},\n",
+ " 37043: {'en': 'Khojeh Darreh'},\n",
+ " 37057: {'en': 'Kohneh Keh'},\n",
+ " 37173: {'en': 'Kalamar'},\n",
+ " 37218: {'en': 'Dinachal'},\n",
+ " 37260: {'en': 'Owlom'},\n",
+ " 37301: {'en': 'Pardeh Sar'},\n",
+ " 37482: {'en': 'Savaraq', 'ar': 'سورق'},\n",
+ " 37512: {'en': 'Komoq', 'ar': 'كمق'},\n",
+ " 37579: {'en': 'Tarkeh Deh'},\n",
+ " 37600: {'ar': 'ألنكش', 'en': 'Alankesh'},\n",
+ " 37621: {'en': 'Qareh Kahal'},\n",
+ " 37645: {'ar': 'ورة نو', 'en': 'Vareh Now'},\n",
+ " 37893: {'en': 'Hoshneh', 'ar': 'هشنة'},\n",
+ " 37902: {'ar': 'غودلر', 'en': 'Gowdlar'},\n",
+ " 37985: {'ar': 'أسكي شهر', 'en': 'Ask Shahr'},\n",
+ " 38198: {'en': 'Kachalar', 'ar': 'كاتشالار'},\n",
+ " 39958: {'en': 'Qareh Tappeh-ye Sheykh'},\n",
+ " 40767: {'en': 'Qalandar Tappeh'},\n",
+ " 40982: {'en': 'Zazz'},\n",
+ " 41696: {'en': 'Baryeh'},\n",
+ " 41714: {'en': 'Aznaq', 'ar': 'أزنق'},\n",
+ " 42281: {'en': 'Nezeheh', 'ar': 'نزهة'},\n",
+ " 47764: {'en': 'Khuran Strait'},\n",
+ " 48674: {'en': 'Yord-e Khalaf'},\n",
+ " 48945: {'ar': 'كرزة', 'en': 'Kerzeh'},\n",
+ " 49211: {'en': 'Raz Galleh'},\n",
+ " 49518: {'de': 'Ruanda',\n",
+ " 'fr': 'Rwanda',\n",
+ " 'ja': 'ルワンダ共和国',\n",
+ " 'pt': 'Ruanda',\n",
+ " 'ru': 'Руанда',\n",
+ " 'ar': 'رواندا',\n",
+ " 'zh': '卢旺达',\n",
+ " 'es': 'Ruanda',\n",
+ " 'en': 'Republic of Rwanda',\n",
+ " 'ko': '르완다'},\n",
+ " 49526: {'es': 'Monte Karisimbi',\n",
+ " 'pt': 'Monte Karisimbi',\n",
+ " 'de': 'Karisimbi',\n",
+ " 'en': 'Mount Karisimbi'},\n",
+ " 49593: {'ar': 'ييد', 'zh': '耶德', 'ja': 'イェード', 'en': 'Yeed'},\n",
+ " 49636: {'zh': '耶戈里', 'ja': 'ヤゴリ', 'en': 'Yagori', 'ko': '야고리'},\n",
+ " 49745: {'en': 'Xudun',\n",
+ " 'zh': '胡敦',\n",
+ " 'fr': 'Xudun',\n",
+ " 'ja': 'フドゥン',\n",
+ " 'ru': 'Худун',\n",
+ " 'ar': 'حدن'},\n",
+ " 49747: {'en': 'Oddur'},\n",
+ " 50348: {'en': 'Ras Hafun'},\n",
+ " 50360: {'fr': 'Woqooyi Galbeed',\n",
+ " 'ar': 'وقويي جالبيد\\u200e',\n",
+ " 'en': 'Waqooyi Galbeed Region'},\n",
+ " 50371: {'ru': 'Уисиль', 'pt': 'Wisil', 'en': 'Wisil'},\n",
+ " 50385: {'en': 'Widhwidh', 'ru': 'Уидвид', 'ja': 'ウィドウィド'},\n",
+ " 50989: {'en': 'Ufeyn', 'zh': '烏菲恩', 'ar': 'أفين'},\n",
+ " 51043: {'en': 'Uar Esgudud'},\n",
+ " 51218: {'en': 'Mear Tomb Island'},\n",
+ " 51230: {'en': 'Togdheer', 'ar': 'تُوجدَير\\u200e', 'fr': 'Togdheer'},\n",
+ " 51341: {'ja': 'タレー',\n",
+ " 'en': 'Taleh',\n",
+ " 'ru': 'Талех',\n",
+ " 'fr': 'Taleh',\n",
+ " 'zh': '塔萊赫',\n",
+ " 'ar': 'تلأ ح'},\n",
+ " 51537: {'ru': 'Сомали',\n",
+ " 'en': 'Somalia',\n",
+ " 'ko': '소말리아',\n",
+ " 'pt': 'Somália',\n",
+ " 'zh': '索马里',\n",
+ " 'ja': 'ソマリア',\n",
+ " 'fr': 'Somalie',\n",
+ " 'es': 'Somalia',\n",
+ " 'ar': 'جمهورية الصومال الفيدرالية',\n",
+ " 'de': 'Somalia'},\n",
+ " 51646: {'en': 'Sidimo'},\n",
+ " 51722: {'de': 'Shimbiris',\n",
+ " 'fr': 'Shimbiris',\n",
+ " 'ja': 'シンビリス山',\n",
+ " 'pt': 'Shimbiris',\n",
+ " 'ru': 'Шимбирис',\n",
+ " 'ar': 'شيمبريس',\n",
+ " 'zh': '桑比勒斯',\n",
+ " 'es': 'Shimbiris',\n",
+ " 'en': 'Shimbiris'},\n",
+ " 51966: {'ar': 'شبيلي السفلى',\n",
+ " 'fr': 'Shabeellaha Hoose',\n",
+ " 'en': 'Shabeele Hoose Region'},\n",
+ " 51967: {'en': 'Middle Shabele', 'fr': 'Shabeellaha Dhexe'},\n",
+ " 52014: {'en': 'Chisimaio Island'},\n",
+ " 52078: {'ru': 'Сайла',\n",
+ " 'ar': 'زيلع',\n",
+ " 'fr': 'Zeilah',\n",
+ " 'zh': '塞拉',\n",
+ " 'pt': 'Zeila',\n",
+ " 'de': 'Zeila',\n",
+ " 'es': 'Zeila',\n",
+ " 'ja': 'ゼイラ',\n",
+ " 'en': 'Zeila',\n",
+ " 'ko': '제일라'},\n",
+ " 52187: {'en': 'Sanaag Region', 'fr': 'Sanaag', 'ar': 'سناج'},\n",
+ " 52211: {'en': 'Green Island'},\n",
+ " 52382: {'ja': 'サーコウ',\n",
+ " 'ar': 'سااكوو',\n",
+ " 'ru': 'Сакоу',\n",
+ " 'en': 'Saakow',\n",
+ " 'zh': '薩高'},\n",
+ " 52529: {'en': 'Refuge Bay'},\n",
+ " 52619: {'en': 'Rako Raaxo', 'ja': 'ラコ・ラーコ'},\n",
+ " 52667: {'ru': 'Рабабле', 'en': 'Rabaable'},\n",
+ " 52884: {'en': 'Qoryale', 'zh': '闊亞勒', 'fr': 'Qoryale', 'ja': 'クオリャレ'},\n",
+ " 52968: {'en': 'Qoorlugud', 'ja': 'コリルグド'},\n",
+ " 53035: {'en': 'Qeedi Haan'},\n",
+ " 53102: {'fr': 'Qardho',\n",
+ " 'ja': 'カルドー',\n",
+ " 'pt': 'Qardho',\n",
+ " 'es': 'Qardho',\n",
+ " 'ar': 'قرضو',\n",
+ " 'de': 'Qardho',\n",
+ " 'en': 'Qardho',\n",
+ " 'ko': '쿼르드호',\n",
+ " 'ru': 'Кардхо',\n",
+ " 'zh': '佳爾多'},\n",
+ " 53157: {'ja': 'カンダーラ',\n",
+ " 'ar': 'قندلة',\n",
+ " 'ru': 'Кандала',\n",
+ " 'en': 'Qandala',\n",
+ " 'de': 'Qandala',\n",
+ " 'zh': '甘達拉',\n",
+ " 'es': 'Ġandala',\n",
+ " 'fr': 'Qandala'},\n",
+ " 53286: {'en': 'Qaan Dhoole'},\n",
+ " 53372: {'de': 'Oodweyne',\n",
+ " 'fr': 'Oodweyne',\n",
+ " 'ja': 'オドウェイン',\n",
+ " 'ru': 'Одуэйне',\n",
+ " 'zh': '歐德韋內',\n",
+ " 'en': 'Odweine'},\n",
+ " 53417: {'en': 'Blankett Point'},\n",
+ " 53477: {'fr': 'Nugaal', 'ar': 'نوغال', 'en': 'Nugaal'},\n",
+ " 53482: {'en': 'North Channel'},\n",
+ " 53654: {'de': 'Mogadischu',\n",
+ " 'fr': 'Mogadiscio',\n",
+ " 'ja': 'モガディシュ',\n",
+ " 'pt': 'Mogadíscio',\n",
+ " 'ru': 'Могадишо',\n",
+ " 'ar': 'مقديشيو',\n",
+ " 'zh': '摩加迪休',\n",
+ " 'es': 'Mogadiscio',\n",
+ " 'en': 'Mogadishu',\n",
+ " 'ko': '모가디슈'},\n",
+ " 53707: {'fr': 'Mudug', 'ar': 'مدق', 'en': 'Mudug'},\n",
+ " 54009: {'en': 'Mareeg', 'ja': 'マレーグ'},\n",
+ " 54042: {'en': 'Middle Reef'},\n",
+ " 54078: {'ru': 'Майд',\n",
+ " 'ar': 'ميط',\n",
+ " 'fr': 'Maydh',\n",
+ " 'zh': '邁雅德',\n",
+ " 'de': 'Maydh',\n",
+ " 'ja': 'メイト',\n",
+ " 'en': 'Maydh'},\n",
+ " 54110: {'en': 'South Island'},\n",
+ " 54225: {'ar': 'مركة\\u200e', 'en': 'Merca'},\n",
+ " 54243: {'en': 'Mareroo', 'ja': 'マレロ'},\n",
+ " 54365: {'de': 'Bab al-Mandab',\n",
+ " 'en': 'Bab-el-Mandeb',\n",
+ " 'ko': '바브엘만데브 해협',\n",
+ " 'pt': 'Bab-el-Mandeb',\n",
+ " 'fr': 'Bab el Mandeb',\n",
+ " 'ja': 'バブ・エル・マンデブ海峡',\n",
+ " 'ru': 'Баб-эль-Мандебский пролив',\n",
+ " 'es': 'Bab-el-Mandeb',\n",
+ " 'ar': 'مضيق باب المندب'},\n",
+ " 54715: {'ru': 'Лук', 'en': 'Luuq'},\n",
+ " 54873: {'en': 'Zigzag Pass'},\n",
+ " 55223: {'ar': 'لاسقُرَى', 'en': 'Las Khorey'},\n",
+ " 55417: {'en': 'Kurmaan'},\n",
+ " 55581: {'en': 'Nyuni'},\n",
+ " 55670: {'en': 'Cape Bissell'},\n",
+ " 55671: {'ja': 'キスマヨ',\n",
+ " 'en': 'Kismayo',\n",
+ " 'de': 'Kismaayo',\n",
+ " 'es': 'Kismaayo',\n",
+ " 'fr': 'Kismaayo'},\n",
+ " 55970: {'fr': 'Kalabaydh', 'ja': 'カラベイド', 'en': 'Kalabaydh'},\n",
+ " 56083: {'fr': 'Jubbada Hoose', 'en': 'Lower Juba'},\n",
+ " 56084: {'fr': 'Jubbada Dhexe', 'en': 'Middle Juba'},\n",
+ " 56105: {'ja': 'ジャリーバーン',\n",
+ " 'zh': '賈利班',\n",
+ " 'en': 'Jariban',\n",
+ " 'de': 'Jariban',\n",
+ " 'ar': 'جاريبان',\n",
+ " 'ru': 'Джиррибан'},\n",
+ " 56335: {'en': 'Giohar', 'de': 'Giohar'},\n",
+ " 56399: {'de': 'Jamaame', 'en': 'Jamaame'},\n",
+ " 56505: {'de': 'Iskushuban',\n",
+ " 'en': 'Iskushuban',\n",
+ " 'zh': '伊斯庫舒班',\n",
+ " 'fr': 'Iskushuban',\n",
+ " 'ja': 'イスクシュバン',\n",
+ " 'ru': 'Искушубан',\n",
+ " 'es': 'Iskušuban',\n",
+ " 'ar': 'يـسـكـوشـوبـان'},\n",
+ " 56894: {'en': 'Horufadhi', 'ja': 'ホルファヒ'},\n",
+ " 56898: {'en': 'Horseed'},\n",
+ " 57060: {'ar': 'حيران\\u200e', 'fr': 'Hiiraan', 'en': 'Hiiran Region'},\n",
+ " 57289: {'ru': 'Харгейсе', 'en': 'Hargeisa'},\n",
+ " 57324: {'en': 'Hareeri'},\n",
+ " 57661: {'en': 'Cape Guardafui',\n",
+ " 'pt': 'Capo Guardafui',\n",
+ " 'de': 'Kap Guardafui'},\n",
+ " 57733: {'en': 'Guriceel'},\n",
+ " 57872: {'en': 'Gugux'},\n",
+ " 58072: {'en': 'Gowlallo'},\n",
+ " 58222: {'en': 'Gobwen'},\n",
+ " 58441: {'en': 'Godaalo'},\n",
+ " 58500: {'en': 'Bajun Islands'},\n",
+ " 58802: {'en': 'Gedo Region', 'fr': 'Gedo', 'ar': 'جوبا الوسطى\\u200e'},\n",
+ " 58864: {'en': 'Gawaan'},\n",
+ " 58933: {'ja': 'ガローウェ',\n",
+ " 'ru': 'Гароуэ',\n",
+ " 'de': 'Garowe',\n",
+ " 'en': 'Garoowe',\n",
+ " 'ko': '가로웨',\n",
+ " 'fr': 'Garowe',\n",
+ " 'ar': 'غاروي\\u200e',\n",
+ " 'zh': '加罗韦'},\n",
+ " 59140: {'ja': 'ガラダグ',\n",
+ " 'en': 'Garadag',\n",
+ " 'de': 'Garadag',\n",
+ " 'zh': '加拉達格',\n",
+ " 'ru': 'Гарадаг'},\n",
+ " 59362: {'fr': 'Galguduud', 'ar': 'جلجدود\\u200e', 'en': 'Galgadud Region'},\n",
+ " 59611: {'zh': '加勒卡約',\n",
+ " 'de': 'Gaalkacyo',\n",
+ " 'en': 'Gaalkacyo',\n",
+ " 'ko': '갈카요',\n",
+ " 'ar': 'جالكعيو',\n",
+ " 'ja': 'ガルカイヨ',\n",
+ " 'ru': 'Галькайо',\n",
+ " 'fr': 'Gaal Kacyo'},\n",
+ " 59749: {'en': 'Fred Rock'},\n",
+ " 59757: {'en': 'Ras Filuk'},\n",
+ " 59947: {'en': 'Fawatu Island'},\n",
+ " 60079: {'en': 'El Mergis'},\n",
+ " 60149: {'en': 'El Dibir'},\n",
+ " 60659: {'en': 'Daedalus Knoll'},\n",
+ " 60809: {'ar': 'دنسور',\n",
+ " 'en': 'Dinsoor',\n",
+ " 'ru': 'Динсор',\n",
+ " 'de': 'Dinsor',\n",
+ " 'ja': 'ディンソール',\n",
+ " 'zh': '丁索爾'},\n",
+ " 60928: {'en': 'Dusa Marreb'},\n",
+ " 61231: {'en': 'Dheenle'},\n",
+ " 61366: {'en': 'Dhalwo'},\n",
+ " 61404: {'ar': 'طهر',\n",
+ " 'zh': '達哈爾',\n",
+ " 'pt': 'Dhahar',\n",
+ " 'ja': 'ダハー',\n",
+ " 'en': 'Dhahar',\n",
+ " 'de': 'Dhahar'},\n",
+ " 61986: {'en': 'Dalweyn'},\n",
+ " 62062: {'en': 'Daharro'},\n",
+ " 62359: {'en': 'Dawa River'},\n",
+ " 62691: {'en': 'Erigavo'},\n",
+ " 62751: {'pt': 'Ceel Huur', 'en': 'El Hur'},\n",
+ " 62811: {'ja': 'エル・アリ', 'en': 'El Ali'},\n",
+ " 63003: {'en': 'Caracase'},\n",
+ " 63081: {'en': 'Alula', 'ar': 'بندر علولة'},\n",
+ " 63344: {'fr': 'Adale',\n",
+ " 'ru': 'Адале',\n",
+ " 'de': 'Adale',\n",
+ " 'zh': '阿達雷',\n",
+ " 'ar': 'عدلي',\n",
+ " 'en': 'Adale',\n",
+ " 'ja': 'アダレ'},\n",
+ " 63361: {'en': 'Cadaado'},\n",
+ " 63795: {'ru': 'Буръо',\n",
+ " 'es': 'Burao',\n",
+ " 'ar': 'برعو',\n",
+ " 'zh': '布拉奧',\n",
+ " 'en': 'Burco',\n",
+ " 'ja': 'ブラオ'},\n",
+ " 64013: {'fr': 'Bosasso',\n",
+ " 'ru': 'Босасо',\n",
+ " 'de': 'Boosaaso',\n",
+ " 'zh': '博萨索',\n",
+ " 'ar': 'بوصاصو',\n",
+ " 'en': 'Bosaso',\n",
+ " 'ko': '보사소',\n",
+ " 'ja': 'ボサソ'},\n",
+ " 64021: {'ja': 'ボラマ',\n",
+ " 'es': 'Boorama',\n",
+ " 'ru': 'Борама',\n",
+ " 'de': 'Boorama',\n",
+ " 'en': 'Boorama',\n",
+ " 'ko': '보라마',\n",
+ " 'ar': 'بورمة',\n",
+ " 'zh': '博拉马'},\n",
+ " 64247: {'en': 'Mtanga Island'},\n",
+ " 64286: {'en': 'Pillar Rock'},\n",
+ " 64400: {'fr': 'Beyra', 'en': 'Beyra', 'ru': 'Бейра'},\n",
+ " 64412: {'de': 'Bereeda',\n",
+ " 'ru': 'Береда',\n",
+ " 'ar': 'بريده',\n",
+ " 'zh': '巴利達',\n",
+ " 'en': 'Bereeda'},\n",
+ " 64435: {'ja': 'ベルベラ',\n",
+ " 'es': 'Berbera',\n",
+ " 'ar': 'بربرة',\n",
+ " 'de': 'Berbera',\n",
+ " 'en': 'Berbera',\n",
+ " 'ko': '베르베라',\n",
+ " 'ru': 'Бербера',\n",
+ " 'zh': '柏培拉'},\n",
+ " 64460: {'ja': 'ベレトウェイン',\n",
+ " 'ru': 'Беледуэйне',\n",
+ " 'ar': 'بلد وين',\n",
+ " 'zh': '貝蘭德文',\n",
+ " 'en': 'Beledweyne',\n",
+ " 'ko': '벨레드웨이네'},\n",
+ " 64536: {'zh': '拜多亞',\n",
+ " 'de': 'Baidoa',\n",
+ " 'ru': 'Байдоа',\n",
+ " 'en': 'Baidoa',\n",
+ " 'ko': '바이다보',\n",
+ " 'ar': 'بيدوا',\n",
+ " 'fr': 'Baidoa',\n",
+ " 'ja': 'バイドア'},\n",
+ " 64538: {'ar': 'باي', 'fr': 'Bay', 'en': 'Bay Region'},\n",
+ " 64588: {'en': 'Barwaaqo'},\n",
+ " 64661: {'en': 'Bari', 'fr': 'Bari', 'ar': 'باري\\u200e'},\n",
+ " 64670: {'zh': '巴爾加勒',\n",
+ " 'de': 'Bargaal',\n",
+ " 'en': 'Bargal',\n",
+ " 'ar': 'برغال',\n",
+ " 'fr': 'Bargal',\n",
+ " 'ja': 'バルガル'},\n",
+ " 64828: {'en': 'Banaaney'},\n",
+ " 64833: {'en': 'Banaadir', 'ar': 'بنادر\\u200e', 'fr': 'Banaadir'},\n",
+ " 64953: {'en': 'Balanbaal'},\n",
+ " 64982: {'en': 'Bakool', 'fr': 'Bakool'},\n",
+ " 65058: {'zh': '巴丹',\n",
+ " 'ru': 'Бадхан',\n",
+ " 'en': 'Badhan',\n",
+ " 'ko': '배드한',\n",
+ " 'ar': 'برن\\u200e\\u200e، سناج',\n",
+ " 'es': 'Badhan',\n",
+ " 'pt': 'Badhan',\n",
+ " 'fr': 'Badhan',\n",
+ " 'de': 'Badhan',\n",
+ " 'ja': 'バハン'},\n",
+ " 65171: {'en': 'Bardera',\n",
+ " 'ru': 'Бардере',\n",
+ " 'de': 'Baardheere',\n",
+ " 'zh': '巴爾代雷',\n",
+ " 'ja': 'バルデラ'},\n",
+ " 65305: {'ar': 'أودينلي', 'en': 'Awdiinle'},\n",
+ " 65505: {'ar': 'عربسيو',\n",
+ " 'de': 'Arabsiyo',\n",
+ " 'en': 'Arabsiyo',\n",
+ " 'fr': 'Arabsiyo',\n",
+ " 'es': 'Arabsiyo'},\n",
+ " 65756: {'ja': 'アフマドゥ',\n",
+ " 'fr': 'Afmadow',\n",
+ " 'zh': '阿夫馬多',\n",
+ " 'en': 'Afmadow',\n",
+ " 'ar': 'افمادوو',\n",
+ " 'de': 'Afmadow',\n",
+ " 'ru': 'Афмадоу'},\n",
+ " 66032: {'ru': 'Абарсо', 'en': 'Abaarso'},\n",
+ " 66093: {'ar': 'ياسوج',\n",
+ " 'ja': 'ヤースージュ',\n",
+ " 'zh': '亞蘇季',\n",
+ " 'de': 'Yasudsch',\n",
+ " 'en': 'Yasuj',\n",
+ " 'ko': '야수즈',\n",
+ " 'ru': 'Ясудж'},\n",
+ " 66474: {'en': 'Talish Mountains'},\n",
+ " 66575: {'en': 'Sirjan'},\n",
+ " 66735: {'en': 'Shahroki Air Force Base'},\n",
+ " 66803: {'en': 'Tang-e Sarvak', 'zh': '堂-埃·薩爾瓦克'},\n",
+ " 66997: {'en': 'Ras Sheik Shuaib'},\n",
+ " 67831: {'en': 'Kharfakol'},\n",
+ " 68057: {'en': 'Kelardasht County'},\n",
+ " 68239: {'pt': 'Hamadã',\n",
+ " 'en': 'Hamedan',\n",
+ " 'ru': 'Хамадан',\n",
+ " 'ar': 'مدينة همدان',\n",
+ " 'es': 'Hamadán',\n",
+ " 'de': 'Hamadan',\n",
+ " 'fr': 'Hamadan'},\n",
+ " 68471: {'en': 'Fasa'},\n",
+ " 69179: {'en': 'Ashtian County'},\n",
+ " 69311: {'en': 'Aghajari Airport'},\n",
+ " 69382: {'en': 'Zurbat Island', 'ar': 'Zurbāţ'},\n",
+ " 69396: {'ar': 'زكيكة', 'en': 'Zukaykah'},\n",
+ " 69400: {'ar': 'زغينه', 'en': 'Zughaynah'},\n",
+ " 69430: {'en': 'Zijān', 'ar': 'Zijān'},\n",
+ " 69440: {'en': 'Az Zaydiyah District', 'ar': 'الزيدية'},\n",
+ " 69499: {'ar': 'زبيد', 'en': 'Zabid District'},\n",
+ " 69512: {'ar': 'يون', 'en': 'Yuwan'},\n",
+ " 69543: {'zh': '也门',\n",
+ " 'de': 'Jemen',\n",
+ " 'ru': 'Йемен',\n",
+ " 'en': 'Yemen',\n",
+ " 'ko': '예멘',\n",
+ " 'ar': 'اليمن',\n",
+ " 'es': 'Yemen',\n",
+ " 'fr': 'Yémen',\n",
+ " 'pt': 'Iémen',\n",
+ " 'ja': 'イエメン共和国'},\n",
+ " 69558: {'en': 'Yarim District', 'ar': 'يريم'},\n",
+ " 69585: {'en': 'Yakhtul', 'ar': 'يختل، تعز'},\n",
+ " 69626: {'en': 'Barn Hill'},\n",
+ " 69746: {'ar': 'عويرة', 'en': '`Uwayrah'},\n",
+ " 69828: {'en': 'Okban Island', 'ar': '‘Uqbān'},\n",
+ " 69890: {'en': 'Khor Omeira'},\n",
+ " 69920: {'en': 'Bir Usaf'},\n",
+ " 69921: {'ar': 'العدين', 'en': 'Al Udayn District'},\n",
+ " 69946: {'en': 'Ras Towiss'},\n",
+ " 69962: {'en': 'Tongue Island'},\n",
+ " 69973: {'en': 'Tubr', 'ar': 'تبر'},\n",
+ " 70045: {'ar': 'ثرة', 'en': 'Thirah'},\n",
+ " 70133: {'ar': 'تولبة', 'en': 'Tawlabah'},\n",
+ " 70144: {'en': 'Aden Harbour'},\n",
+ " 70221: {'ar': 'التعزية', 'en': \"At-Ta'iziyah District\"},\n",
+ " 70222: {'fr': \"Ta'izz\",\n",
+ " 'ar': 'تعز',\n",
+ " 'es': \"Gobernación de Ta'izz\",\n",
+ " 'de': 'Gouvernement Taʿizz',\n",
+ " 'en': 'Ta‘izz',\n",
+ " 'ko': '타이즈주',\n",
+ " 'zh': '塔伊茲省',\n",
+ " 'pt': \"Ta'izz\",\n",
+ " 'ru': 'Таиз',\n",
+ " 'ja': 'タイズ県'},\n",
+ " 70225: {'ru': 'Таиз', 'ar': 'تعز', 'en': 'Taiz'},\n",
+ " 70302: {'zh': '索科特拉島',\n",
+ " 'ar': 'سقطرى',\n",
+ " 'ru': 'Сокотра',\n",
+ " 'ja': 'ソコトラ島',\n",
+ " 'en': 'Socotra',\n",
+ " 'ko': '소코트라 섬',\n",
+ " 'pt': 'Socotorá'},\n",
+ " 70357: {'en': 'Abs', 'ar': 'عبس'},\n",
+ " 70374: {'en': 'Sumayr', 'ar': 'سمير'},\n",
+ " 70379: {'en': 'Jebel Sunamma'},\n",
+ " 70458: {'en': 'Subaykh'},\n",
+ " 70474: {'en': 'Square Islet', 'ar': 'جزيرة المربع'},\n",
+ " 70514: {'en': 'Sira Island', 'ar': 'صيرة'},\n",
+ " 70676: {'ar': 'Shibām',\n",
+ " 'fr': 'Shibam',\n",
+ " 'ru': 'Шибам',\n",
+ " 'de': 'Schibam',\n",
+ " 'en': 'Shibam'},\n",
+ " 70706: {'en': 'Ras Sheikh Syed'},\n",
+ " 70724: {'ar': 'شيبرة', 'en': 'Shaybirah'},\n",
+ " 70772: {'en': 'Sharmah'},\n",
+ " 70825: {'ar': 'الشرية', 'en': 'Ash Sharyah District'},\n",
+ " 70837: {'fr': 'Shuqrah',\n",
+ " 'ja': 'シュクラ',\n",
+ " 'ru': 'Шукра',\n",
+ " 'ar': 'شقرة',\n",
+ " 'en': 'Shuqrah'},\n",
+ " 70908: {'ar': 'شهارة', 'en': 'Shaharah District'},\n",
+ " 70935: {'es': 'Gobernación de Shabwah',\n",
+ " 'ja': 'シャブワ県',\n",
+ " 'fr': 'Shabwah',\n",
+ " 'pt': 'Chabua',\n",
+ " 'zh': '舍卜沃省',\n",
+ " 'en': 'Shabwah',\n",
+ " 'ko': '샤브와주',\n",
+ " 'ar': 'محافظة شبوة',\n",
+ " 'de': 'Gouvernement Schabwa',\n",
+ " 'ru': 'Шабва'},\n",
+ " 70972: {'en': 'Seedaseer Lines'},\n",
+ " 70981: {'ja': 'サユーン',\n",
+ " 'en': 'Seiyun',\n",
+ " 'ar': 'سيئون',\n",
+ " 'ru': 'Сайвун',\n",
+ " 'fr': \"Say'un\"},\n",
+ " 71131: {'en': 'Sanhan and Bani Bahlul District'},\n",
+ " 71132: {'zh': '薩那省',\n",
+ " 'de': 'Gouvernement Sanaa',\n",
+ " 'en': 'Sanaa Governorate',\n",
+ " 'ko': '사나주',\n",
+ " 'es': 'Gobernación de Saná',\n",
+ " 'ar': 'محافظة صنعاء',\n",
+ " 'ja': 'サナア県',\n",
+ " 'pt': 'Sana',\n",
+ " 'ru': 'Сана',\n",
+ " 'fr': 'Muhafadat Sanaa'},\n",
+ " 71137: {'fr': 'Sanaa',\n",
+ " 'ar': 'صنعاء',\n",
+ " 'es': 'Sanaá',\n",
+ " 'en': 'Sanaa',\n",
+ " 'ko': '사나',\n",
+ " 'ru': 'Сана',\n",
+ " 'de': 'Sanaa',\n",
+ " 'ja': 'サヌア',\n",
+ " 'pt': 'Sanaa'},\n",
+ " 71202: {'en': 'Falaise Camp'},\n",
+ " 71333: {'fr': \"Sa'dah\",\n",
+ " 'ar': 'صعدة',\n",
+ " 'es': \"Gobernación de Sa'dah\",\n",
+ " 'en': 'Saada Governorate',\n",
+ " 'ko': '사다주',\n",
+ " 'ru': 'Саада',\n",
+ " 'de': 'Gouvernement Saʿda',\n",
+ " 'ja': 'サアダ県',\n",
+ " 'zh': '萨达省',\n",
+ " 'pt': \"Sa'dah\"},\n",
+ " 71334: {'ar': 'صعده', 'en': \"Sa'dah\"},\n",
+ " 71352: {'ar': 'صبر', 'en': 'Subar'},\n",
+ " 71440: {'en': 'Round Island Bay'},\n",
+ " 71442: {'en': 'Round Island'},\n",
+ " 71459: {'en': 'Risha Island'},\n",
+ " 71476: {'en': 'Riham', 'ar': 'رهم'},\n",
+ " 71489: {'ar': 'رداع', 'en': 'Radda District'},\n",
+ " 71532: {'pt': 'Raymah',\n",
+ " 'ru': 'Райма',\n",
+ " 'de': 'Gouvernement Raima',\n",
+ " 'es': 'Gobernación de Raymah',\n",
+ " 'ar': 'ريمه',\n",
+ " 'fr': 'Raima',\n",
+ " 'en': 'Raymah',\n",
+ " 'ko': '라이마주',\n",
+ " 'zh': '赖马省',\n",
+ " 'ja': 'ライマ県'},\n",
+ " 71621: {'en': 'Rahkl Island'},\n",
+ " 71747: {'ar': 'قسيس', 'en': 'Qusays'},\n",
+ " 71885: {'en': 'Ras Kaau'},\n",
+ " 71916: {'ar': 'قسم', 'en': 'Qasam', 'ru': 'Касам'},\n",
+ " 72008: {'ar': 'قمرم', 'en': 'Qamram'},\n",
+ " 72292: {'en': 'Namir', 'ar': 'نمر'},\n",
+ " 72370: {'en': 'An Nadirah District', 'ar': 'النادرة'},\n",
+ " 72396: {'en': 'Sugarloaf'},\n",
+ " 72422: {'en': 'Mushejera Island'},\n",
+ " 72514: {'ar': 'المخاء', 'en': 'Al-Makha District'},\n",
+ " 72560: {'ar': 'مذينب', 'en': 'Mudhaynib'},\n",
+ " 72721: {'en': 'Melaba', 'ar': 'ملبة'},\n",
+ " 72752: {'ar': 'Mīdī', 'en': 'Medi'},\n",
+ " 72780: {'en': 'Mawiyah District', 'ar': 'ماوية'},\n",
+ " 72910: {'en': 'Masaarde', 'ar': 'مسعردة'},\n",
+ " 72918: {'en': 'Maryamah'},\n",
+ " 72966: {'pt': \"Ma'rib\",\n",
+ " 'en': 'Ma’rib',\n",
+ " 'ko': '마리브주',\n",
+ " 'ru': 'Мариб',\n",
+ " 'ja': 'マアリブ県',\n",
+ " 'ar': 'محافظة مأرب',\n",
+ " 'es': 'Gobernación de Mareb',\n",
+ " 'zh': '马里卜省',\n",
+ " 'de': \"Gouvernement Ma'rib\",\n",
+ " 'fr': \"Ma'rib\"},\n",
+ " 72973: {'en': 'Steamer Point', 'ar': 'رأس مربط'},\n",
+ " 73062: {'en': 'Mankhar', 'ar': 'منخر', 'fr': 'Mankhar'},\n",
+ " 73071: {'en': 'Fishing Point'},\n",
+ " 73139: {'en': 'Makram', 'fr': 'Makram', 'ar': 'مكرم'},\n",
+ " 73172: {'ar': 'المخادر', 'en': 'Al Makhadir District'},\n",
+ " 73200: {'pt': 'Al Mahwit',\n",
+ " 'ru': 'Махвит',\n",
+ " 'de': 'Gouvernement al-Mahwīt',\n",
+ " 'es': 'Gobernación de Al Mahwit',\n",
+ " 'ar': 'المحويت',\n",
+ " 'fr': 'Al Mahwit',\n",
+ " 'en': 'Al Mahwit Governorate',\n",
+ " 'ko': '마위트주',\n",
+ " 'zh': '迈赫维特省',\n",
+ " 'ja': 'マフウィート県'},\n",
+ " 73269: {'ar': 'مهقرة', 'en': 'Mahaqra'},\n",
+ " 73375: {'ar': 'مذبل', 'en': 'Madhbal'},\n",
+ " 73431: {'ar': 'لقنة', 'en': 'Luqnah'},\n",
+ " 73453: {'en': 'Loban Island'},\n",
+ " 73460: {'en': 'Lubayb'},\n",
+ " 73468: {'en': 'Little Aden Township'},\n",
+ " 73554: {'en': 'Lahrum', 'ar': 'لهرم'},\n",
+ " 73601: {'en': 'Camp Island'},\n",
+ " 73656: {'ar': 'كريتر', 'en': 'Crater'},\n",
+ " 73685: {'ar': 'كلمية', 'en': 'Kilmia'},\n",
+ " 73746: {'ar': 'خديش', 'en': 'Khudaysh'},\n",
+ " 73834: {'en': 'Jebel Kharaz'},\n",
+ " 73865: {'en': 'Khamir District', 'ar': 'خمر'},\n",
+ " 73956: {'en': 'Shibam Kawkaban District', 'ar': 'شبام كوكبان'},\n",
+ " 74012: {'en': 'Kamaran Island'},\n",
+ " 74018: {'en': 'Kal Farun Island', 'ar': 'كعال فرعون'},\n",
+ " 74049: {'en': 'Kadaman Saghir Island'},\n",
+ " 74073: {'en': 'Bir Jiraza'},\n",
+ " 74075: {'en': 'Jurab Island'},\n",
+ " 74166: {'ar': 'جهرين', 'en': 'Jiharine'},\n",
+ " 74222: {'es': 'Gobernación de Yauf',\n",
+ " 'ja': 'ジャウフ県',\n",
+ " 'fr': 'Al Jawf',\n",
+ " 'pt': 'Al Jawf',\n",
+ " 'zh': '焦夫省',\n",
+ " 'en': 'Al Jawf',\n",
+ " 'ko': '자우프주',\n",
+ " 'ar': 'محافظة الجوف',\n",
+ " 'de': 'Gouvernement al-Dschauf',\n",
+ " 'ru': 'Эль-Джауф'},\n",
+ " 74333: {'en': 'Ras el Jedir'},\n",
+ " 74357: {'en': 'Jabal al-Tair Island'},\n",
+ " 74451: {'en': 'Asses Ears'},\n",
+ " 74475: {'en': 'Ibb District', 'ar': 'إب'},\n",
+ " 74580: {'en': 'Huraidhah District', 'ar': 'حريضة'},\n",
+ " 74921: {'en': 'Haynan', 'ru': 'Хайнин'},\n",
+ " 74928: {'en': 'Ghubbet al Haikah'},\n",
+ " 75132: {'en': 'Harib District', 'ar': 'حريب'},\n",
+ " 75142: {'ar': 'مديرية حرض', 'fr': 'Harad', 'en': 'Harad District'},\n",
+ " 75148: {'en': 'Awām Temple'},\n",
+ " 75189: {'en': 'Great Hanish Island'},\n",
+ " 75190: {'ar': 'جزر حنيش\\u200e', 'en': 'Hanish Islands'},\n",
+ " 75257: {'ar': 'همدان', 'en': 'Hamdan District'},\n",
+ " 75266: {'en': 'Hamar Island'},\n",
+ " 75334: {'ar': 'حجة', 'en': 'Hajjah City District'},\n",
+ " 75371: {'en': 'Hajana', 'ar': 'هجنة'},\n",
+ " 75378: {'en': 'Bir Hajaf'},\n",
+ " 75411: {'fr': 'Hadramaout',\n",
+ " 'ar': 'حضرموت',\n",
+ " 'es': 'Gobernación de Hadramaut',\n",
+ " 'de': 'Gouvernement Hadramaut',\n",
+ " 'en': 'Hadramaout',\n",
+ " 'ko': '하드라마우트주',\n",
+ " 'zh': '哈德拉毛省',\n",
+ " 'pt': 'Hadramaute',\n",
+ " 'ru': 'Хадрамаут',\n",
+ " 'ja': 'ハドラマウト県'},\n",
+ " 75412: {'en': 'Hadhramaut'},\n",
+ " 75580: {'ar': 'غريرة', 'en': 'Sheikh Said'},\n",
+ " 75778: {'ar': 'فغمة', 'en': 'Fughmah'},\n",
+ " 75780: {'en': 'Front Bay'},\n",
+ " 75783: {'en': 'Fishermen’s Bay'},\n",
+ " 75788: {'en': 'Findah', 'ar': 'فنده'},\n",
+ " 75802: {'en': 'Fayl', 'ar': 'فيل'},\n",
+ " 75810: {'ar': 'فاتحة', 'en': 'Fatihat'},\n",
+ " 75891: {'en': 'Elephant Trunk'},\n",
+ " 75892: {'en': 'Elephants Back'},\n",
+ " 76153: {'en': 'Dhi As Sufal District', 'ar': 'ذي السفال'},\n",
+ " 76183: {'ja': 'ザマール県',\n",
+ " 'fr': 'Dhamar',\n",
+ " 'es': 'Gobernación de Dhamar',\n",
+ " 'de': 'Gouvernement Dhamār',\n",
+ " 'ru': 'Дамар',\n",
+ " 'en': 'Dhamār',\n",
+ " 'ko': '다마르주',\n",
+ " 'zh': '扎馬尔省',\n",
+ " 'ar': 'محافظة ذمار',\n",
+ " 'pt': 'Dhamar'},\n",
+ " 76669: {'en': 'Currency Bay'},\n",
+ " 76670: {'en': 'Conquest Bay'},\n",
+ " 76686: {'ar': 'بويش', 'en': 'Buwaysh'},\n",
+ " 76773: {'en': 'Jebel am Birka'},\n",
+ " 76898: {'en': 'Bayt Samnah'},\n",
+ " 76903: {'ar': 'ضهران', 'en': 'Bayt Radm'},\n",
+ " 76904: {'en': 'Bayt Qishn', 'ar': 'بيت قشن'},\n",
+ " 76912: {'en': 'Bayt Majraz'},\n",
+ " 76934: {'en': 'Bayt Fashid', 'ar': 'بيت فشد'},\n",
+ " 76989: {'en': 'Bayt al-Faqih District', 'ar': 'بيت الفقيه'},\n",
+ " 77042: {'en': 'Bawarid Island'},\n",
+ " 77085: {'ar': 'بروج', 'en': 'Barwaj'},\n",
+ " 77094: {'en': 'Berri Islands'},\n",
+ " 77111: {'ru': 'Перим', 'en': 'Perim', 'ar': 'جزيرة ميون', 'de': 'Perim'},\n",
+ " 77365: {'ar': 'بلسنة', 'en': 'Balsanah'},\n",
+ " 77407: {'ar': 'Bājil', 'en': 'Bajil District'},\n",
+ " 77462: {'en': 'Shab Bodinjan Shoal', 'ar': 'Shi‘b Bādinjān'},\n",
+ " 77535: {'en': 'Dahayir Islands'},\n",
+ " 77536: {'ar': 'زغفة', 'en': 'Az Zaghfah'},\n",
+ " 77615: {'ar': 'أورمة', 'en': 'Awrumah'},\n",
+ " 77726: {'ar': '‘Atāq', 'en': 'Ataq'},\n",
+ " 77759: {'en': 'Sakiah'},\n",
+ " 77761: {'ar': 'السنتين', 'en': 'As Sunnatayn'},\n",
+ " 77780: {'ar': 'السرين', 'en': 'As Sirrayn'},\n",
+ " 77785: {'en': 'As Sihib', 'ar': 'السهب'},\n",
+ " 77830: {'en': 'As Samn', 'ar': 'سمن'},\n",
+ " 78051: {'en': 'Artil', 'ar': 'أرتل'},\n",
+ " 78079: {'en': 'Ar Rukayb'},\n",
+ " 78080: {'en': 'Ar Rujaydah'},\n",
+ " 78177: {'en': 'Ar Rabwah'},\n",
+ " 78266: {'en': 'Ras al Ara'},\n",
+ " 78316: {'ar': 'Tiqfāsh', 'en': 'Entufash Island'},\n",
+ " 78363: {'en': 'An Nashsh', 'ar': 'النش'},\n",
+ " 78395: {'ar': 'أنب', 'en': 'Anib'},\n",
+ " 78516: {'en': 'Urmek Island'},\n",
+ " 78637: {'ar': 'القشبة', 'en': 'Al Qashabah'},\n",
+ " 78751: {'pt': 'Mocha',\n",
+ " 'ja': 'モカ',\n",
+ " 'en': 'Mocha',\n",
+ " 'ko': '모카',\n",
+ " 'de': 'Mokka',\n",
+ " 'es': 'Moca',\n",
+ " 'ar': 'Al Mukhā',\n",
+ " 'zh': '穆哈',\n",
+ " 'ru': 'Моха',\n",
+ " 'fr': 'Mokha'},\n",
+ " 78754: {'de': 'Al-Mukalla',\n",
+ " 'ru': 'Аль-Мукалла',\n",
+ " 'fr': 'Al Mukalla',\n",
+ " 'ar': 'المكلا',\n",
+ " 'en': 'Al Mukalla'},\n",
+ " 78985: {'en': 'Al Mahrah Governorate',\n",
+ " 'ko': '마라주',\n",
+ " 'ja': 'マフラ県',\n",
+ " 'pt': 'Al Mahra',\n",
+ " 'es': 'Gobernación de Al Mahrah',\n",
+ " 'zh': '邁赫拉省',\n",
+ " 'ar': 'محافظة المهرة',\n",
+ " 'fr': 'Al Mahra',\n",
+ " 'ru': 'Эль-Махра',\n",
+ " 'de': 'Gouvernement al-Mahra'},\n",
+ " 78990: {'en': 'Al Mahal', 'ar': 'المحل'},\n",
+ " 79128: {'en': 'Kotama Island'},\n",
+ " 79181: {'en': 'Al Khabr', 'ar': 'الخبر'},\n",
+ " 79195: {'en': 'Al Kawd', 'ar': 'الكود'},\n",
+ " 79266: {'ar': 'الجول', 'en': 'Al Jawl'},\n",
+ " 79346: {'en': 'Irqa', 'ar': 'العرقة', 'ru': 'Эль-Ирка'},\n",
+ " 79353: {'ar': 'جزيرة الأخوين', 'en': 'The Brothers'},\n",
+ " 79415: {'ar': 'الحديدة', 'en': 'Al Hudaydah'},\n",
+ " 79416: {'zh': '荷台达省',\n",
+ " 'de': 'Gouvernement al-Hudaida',\n",
+ " 'en': 'Al Hudaydah Governorate',\n",
+ " 'ko': '호데이다주',\n",
+ " 'es': 'Gobernación de Al Hudayda',\n",
+ " 'ar': 'محافظة الحديدة',\n",
+ " 'ja': 'フダイダ県',\n",
+ " 'pt': 'Al Hudaydah',\n",
+ " 'ru': 'Ходейда',\n",
+ " 'fr': 'Al Hudaydah'},\n",
+ " 79700: {'de': 'al-Ghaida',\n",
+ " 'fr': 'Al Ghaydah',\n",
+ " 'ar': 'الغيظة',\n",
+ " 'en': 'Al Ghayḑah'},\n",
+ " 79836: {'en': 'Al Bayda', 'ar': 'البيضاء'},\n",
+ " 79838: {'pt': \"Al Bayda'\",\n",
+ " 'fr': \"Al Bayda'\",\n",
+ " 'ru': 'Эль-Бейда',\n",
+ " 'de': \"Gouvernement al-Baidā'\",\n",
+ " 'zh': '贝达省',\n",
+ " 'es': \"Gobernación de Al Bayda'\",\n",
+ " 'ar': 'محافظة البيضاء',\n",
+ " 'en': 'Al Bayda',\n",
+ " 'ko': '바이다주',\n",
+ " 'ja': 'バイダー県'},\n",
+ " 79878: {'en': 'El Bodhi Island'},\n",
+ " 79885: {'en': 'Al Aysar', 'ar': 'الأيسر'},\n",
+ " 80090: {'en': 'Ajusak Island', 'ar': 'Juwā'},\n",
+ " 80302: {'en': 'Aden Peninsula'},\n",
+ " 80303: {'de': 'Golf von Aden',\n",
+ " 'ru': 'Аденский залив',\n",
+ " 'en': 'Gulf of Aden',\n",
+ " 'fr': \"Gulfe d'Aden\",\n",
+ " 'pt': 'Golfo de Adem'},\n",
+ " 80384: {'en': 'Dhale', 'ar': 'الضالع'},\n",
+ " 80411: {'en': 'Little Aden Peninsula'},\n",
+ " 80412: {'ar': 'محافظة عدن', 'fr': 'Aden', 'en': 'Aden'},\n",
+ " 80425: {'zh': '阿比扬省',\n",
+ " 'ar': 'ابين',\n",
+ " 'ru': 'Абьян',\n",
+ " 'fr': 'Abyan',\n",
+ " 'ja': 'アビヤン県',\n",
+ " 'en': 'Abyan Governorate',\n",
+ " 'ko': '아브얀주',\n",
+ " 'de': 'Gouvernement Abyan',\n",
+ " 'es': 'Gobernación de Abyan',\n",
+ " 'pt': 'Abyan'},\n",
+ " 80431: {'en': 'Abu-Obeida Camp'},\n",
+ " 80468: {'en': 'Slave Island', 'ar': 'جزيرة العمال'},\n",
+ " 80477: {'en': 'Abd el Kari', 'ar': 'جزيرة عبد الكوري'},\n",
+ " 80509: {'ar': 'البردية', 'en': 'Bardia'},\n",
+ " 80623: {'en': 'Msus', 'ru': 'Масус', 'ar': 'زاوية مسوس'},\n",
+ " 80635: {'fr': 'Mechili',\n",
+ " 'ja': 'メキリ',\n",
+ " 'ru': 'Эль-Макили',\n",
+ " 'ar': 'مخيلى',\n",
+ " 'en': 'Mechili'},\n",
+ " 81302: {'pt': 'Tobruk',\n",
+ " 'en': 'Tobruk',\n",
+ " 'ko': '투브루크',\n",
+ " 'ru': 'Тобрук',\n",
+ " 'ja': 'トブルク',\n",
+ " 'ar': 'Ţubruq',\n",
+ " 'es': 'Tobruk',\n",
+ " 'zh': '图卜鲁格',\n",
+ " 'de': 'Tobruk',\n",
+ " 'fr': 'Tobrouk'},\n",
+ " 82501: {'en': 'Sidi Al-Gharib Cemetery', 'ar': 'مقبرة سيدي الغريب'},\n",
+ " 82972: {'de': 'Kyrene',\n",
+ " 'en': 'Cyrene',\n",
+ " 'zh': '昔兰尼',\n",
+ " 'pt': 'Cirene',\n",
+ " 'fr': 'Cyrène',\n",
+ " 'es': 'Cirene',\n",
+ " 'ar': 'سوسة'},\n",
+ " 85417: {'en': 'Libyan Plateau'},\n",
+ " 87205: {'ar': 'درنة', 'fr': 'Derna', 'en': 'Darnah'},\n",
+ " 88252: {'es': 'Cirenaica',\n",
+ " 'ar': 'برقة',\n",
+ " 'en': 'Province of Benghazi',\n",
+ " 'ko': '키레나이카',\n",
+ " 'de': 'Kyrenaika',\n",
+ " 'ja': 'キレナイカ',\n",
+ " 'fr': 'Cyrénaïque',\n",
+ " 'ru': 'Киренаика',\n",
+ " 'zh': '昔兰尼加'},\n",
+ " 88260: {'en': 'Port Bardia'},\n",
+ " 88314: {'en': 'Benina', 'fr': 'Benina'},\n",
+ " 88319: {'pt': 'Bengasi',\n",
+ " 'ja': 'ベンガジ',\n",
+ " 'en': 'Benghazi',\n",
+ " 'ko': '벵가지',\n",
+ " 'de': 'Banghazi',\n",
+ " 'es': 'Bengasi',\n",
+ " 'ar': 'بنغازي',\n",
+ " 'zh': '班加西',\n",
+ " 'ru': 'Бенгази',\n",
+ " 'fr': 'Benghazi'},\n",
+ " 88903: {'en': 'Al Marj', 'ru': 'Аль-Мардж', 'ar': 'المرج'},\n",
+ " 88931: {'fr': 'Koufra',\n",
+ " 'ar': 'الكفرة',\n",
+ " 'es': 'Kufra',\n",
+ " 'en': 'Oasis of Kufrah',\n",
+ " 'de': 'Kufra-Oasen'},\n",
+ " 88932: {'zh': '庫夫拉省',\n",
+ " 'ru': 'Эль-Куфра',\n",
+ " 'en': 'Al Kufrah',\n",
+ " 'ko': '알쿠프라 주',\n",
+ " 'ar': 'شعبية الكفرة',\n",
+ " 'es': 'Al Kufrah',\n",
+ " 'pt': 'Al Kufrah',\n",
+ " 'fr': 'Al-Koufrah',\n",
+ " 'de': 'Munizip al-Kufra',\n",
+ " 'ja': 'クフラ県'},\n",
+ " 88962: {'ru': 'Эль-Джауф',\n",
+ " 'en': 'Al Jawf',\n",
+ " 'ko': '알자우프',\n",
+ " 'ar': 'الجوف',\n",
+ " 'fr': 'El Giof',\n",
+ " 'ja': 'ジャウフ'},\n",
+ " 89113: {'ja': 'アジュダービヤー',\n",
+ " 'ru': 'Адждабия',\n",
+ " 'de': 'Adschdabiya',\n",
+ " 'en': 'Ajdabiya',\n",
+ " 'ko': '아지다비야',\n",
+ " 'ar': 'شعبية إجدابيا',\n",
+ " 'pt': 'Ajdabiyah',\n",
+ " 'zh': '艾季达比耶'},\n",
+ " 89340: {'ar': 'نهر الزاب الكبير', 'en': 'Great Zab River'},\n",
+ " 89341: {'en': 'Basra', 'ar': 'البصرة'},\n",
+ " 89394: {'ar': 'زريزة', 'en': 'Zeriza'},\n",
+ " 89528: {'en': 'Great Zab River', 'ar': 'الزاب الكبير'},\n",
+ " 89569: {'ar': 'قضاء زاخو',\n",
+ " 'fr': 'Zakho',\n",
+ " 'ja': 'ザーホー地区',\n",
+ " 'en': 'Zakho',\n",
+ " 'de': 'Zaxo'},\n",
+ " 89570: {'ru': 'Заху', 'en': 'Zakho', 'ar': 'Zākhū', 'de': 'Zaxo'},\n",
+ " 90026: {'ar': 'طوزخورماتو', 'en': 'Tuz Khurmatu'},\n",
+ " 90148: {'pt': 'Tikrit', 'ar': 'قضاء تكريت', 'en': 'Tikrit District'},\n",
+ " 90150: {'de': 'Tikrit',\n",
+ " 'en': 'Tikrit',\n",
+ " 'pt': 'Tikrit',\n",
+ " 'fr': 'Tikrit',\n",
+ " 'ja': 'ティクリート',\n",
+ " 'ru': 'Тикрит',\n",
+ " 'es': 'Tikrit',\n",
+ " 'ar': 'تكريت'},\n",
+ " 90287: {'de': 'Seleukia-Ktesiphon',\n",
+ " 'en': 'Ctesiphon',\n",
+ " 'fr': 'Ctésiphon',\n",
+ " 'ru': 'Ктесифон',\n",
+ " 'es': 'Ctesifonte',\n",
+ " 'ar': 'Ţāq Kisrá'},\n",
+ " 90377: {'pt': 'Uruk',\n",
+ " 'ja': 'ウルク',\n",
+ " 'en': 'Erech',\n",
+ " 'ko': '우루크',\n",
+ " 'de': 'Uruk',\n",
+ " 'es': 'Uruk',\n",
+ " 'ar': 'الوركاء',\n",
+ " 'ru': 'Урук',\n",
+ " 'fr': 'Uruk'},\n",
+ " 90519: {'en': 'Qasab AL-Jndil', 'ar': 'كصب الجنديل'},\n",
+ " 90707: {'ar': 'سينا', 'en': 'Sina'},\n",
+ " 90864: {'en': 'Shilan', 'ar': 'شيلان'},\n",
+ " 91560: {'ja': 'ラルサ',\n",
+ " 'ar': 'لارسا',\n",
+ " 'ru': 'Ларса',\n",
+ " 'en': 'Larsa',\n",
+ " 'de': 'Larsa',\n",
+ " 'es': 'Larsa',\n",
+ " 'fr': 'Larsa'},\n",
+ " 91597: {'ar': 'سامراء', 'en': 'Samarra'},\n",
+ " 91695: {'ja': 'サラーフッディーン県',\n",
+ " 'fr': 'Salah ad-Din',\n",
+ " 'es': 'Gobernación de Saladino',\n",
+ " 'de': 'Salah ad-Din',\n",
+ " 'ru': 'Салах-эд-Дин',\n",
+ " 'en': 'Salah ad Din Governorate',\n",
+ " 'ko': '살라딘주',\n",
+ " 'zh': '萨拉赫丁省',\n",
+ " 'ar': 'صلاح الدين',\n",
+ " 'pt': 'Salah-ad-Din'},\n",
+ " 91696: {'ar': 'صلاح الدين', 'en': 'Pirmam'},\n",
+ " 91899: {'ar': 'Rūsī', 'en': 'Ruiyse'},\n",
+ " 91952: {'ar': 'ريوان', 'en': 'Rewan'},\n",
+ " 92411: {'ru': 'Кара-Таппа', 'ar': 'قرة تبه', 'en': 'Qara Tapa'},\n",
+ " 92430: {'en': 'Al-Hamdaniya District', 'ar': 'قضاء الحمدانية'},\n",
+ " 92762: {'ar': 'بيربلا', 'en': 'Pirbla'},\n",
+ " 92792: {'en': 'Pase', 'ar': 'باسي'},\n",
+ " 92877: {'ar': 'نينوى', 'en': 'Nineveh'},\n",
+ " 92878: {'es': 'Nínive',\n",
+ " 'ar': 'نينوى',\n",
+ " 'en': 'Nineveh',\n",
+ " 'de': 'Ninive',\n",
+ " 'ja': 'ニネヴェ',\n",
+ " 'fr': 'Ninive',\n",
+ " 'ru': 'Ниневия',\n",
+ " 'pt': 'Nínive',\n",
+ " 'zh': '尼尼微'},\n",
+ " 92916: {'ar': 'نزور', 'en': 'Nizur'},\n",
+ " 93006: {'fr': 'Nimroud',\n",
+ " 'es': 'Nimrud',\n",
+ " 'de': 'Nimrud',\n",
+ " 'en': 'Nimrud',\n",
+ " 'ar': 'اثار نمرود'},\n",
+ " 93199: {'ja': 'ウル',\n",
+ " 'fr': 'Ur',\n",
+ " 'es': 'Ur',\n",
+ " 'de': 'Ur',\n",
+ " 'ru': 'Ур',\n",
+ " 'en': 'Ur',\n",
+ " 'zh': '乌尔',\n",
+ " 'ar': 'أور',\n",
+ " 'pt': 'Ur'},\n",
+ " 93540: {'es': 'Gobernación de Mesena',\n",
+ " 'ar': 'ميسان',\n",
+ " 'en': 'Maysan',\n",
+ " 'ko': '마이산주',\n",
+ " 'de': 'Maisan',\n",
+ " 'ja': 'マイサーン県',\n",
+ " 'fr': 'Maysan',\n",
+ " 'ru': 'Майсан',\n",
+ " 'pt': 'Maysan',\n",
+ " 'zh': '米桑省'},\n",
+ " 93633: {'en': 'Imam Hussain Shrine'},\n",
+ " 93706: {'ar': 'Māngīsh', 'ru': 'Мангайш', 'en': 'Mangesh'},\n",
+ " 93775: {'ar': 'كريز الملح', 'en': 'Lake Milh'},\n",
+ " 93800: {'en': 'Mala Arab', 'ar': 'ملا عرب'},\n",
+ " 94104: {'en': 'Kurka', 'ar': 'كوركا'},\n",
+ " 94274: {'ar': 'كيشان', 'en': 'Kashan'},\n",
+ " 94277: {'fr': 'Kish',\n",
+ " 'ja': 'キシュ',\n",
+ " 'pt': 'Kish',\n",
+ " 'es': 'Kish',\n",
+ " 'ar': 'Kīsh',\n",
+ " 'de': 'Kiš',\n",
+ " 'en': 'Kish',\n",
+ " 'ru': 'Киш'},\n",
+ " 94590: {'en': 'Khanaqin District'},\n",
+ " 94787: {'pt': 'Kirkuk',\n",
+ " 'en': 'Kirkuk',\n",
+ " 'ko': '키르쿠크',\n",
+ " 'ru': 'Киркук',\n",
+ " 'ja': 'キルクーク',\n",
+ " 'ar': 'كركوك',\n",
+ " 'es': 'Kirkuk',\n",
+ " 'zh': '基爾庫克',\n",
+ " 'de': 'Kirkuk',\n",
+ " 'fr': 'Kirkouk'},\n",
+ " 94824: {'zh': '卡爾巴拉',\n",
+ " 'ar': 'كربلاء',\n",
+ " 'ru': 'Кербела',\n",
+ " 'fr': 'Kerbala',\n",
+ " 'ja': 'カルバラー',\n",
+ " 'en': 'Karbala',\n",
+ " 'ko': '카르발라',\n",
+ " 'de': 'Karbala',\n",
+ " 'es': 'Kerbala',\n",
+ " 'pt': 'Karbala'},\n",
+ " 95069: {'ar': 'ناحية جرف الصخر', 'en': 'Jurf Al-Nasr'},\n",
+ " 95446: {'es': 'Erbil',\n",
+ " 'ar': 'اربيل',\n",
+ " 'fr': 'Erbil',\n",
+ " 'ja': 'アルビール県',\n",
+ " 'de': 'Arbil',\n",
+ " 'en': 'Erbil'},\n",
+ " 95588: {'en': 'Ekmala', 'ar': 'اكماله'},\n",
+ " 95809: {'en': 'Hindiya Barrage',\n",
+ " 'ja': 'ヒンディヤ堰',\n",
+ " 'ar': 'سدة الهندية',\n",
+ " 'fr': 'barrage de Hindiya',\n",
+ " 'de': 'Hindiyya-Kanal'},\n",
+ " 96024: {'ar': 'هرور', 'en': 'Hiror'},\n",
+ " 96123: {'ar': 'هور الحمّار', 'en': 'Hor al-Hammar'},\n",
+ " 96205: {'fr': 'Halabja',\n",
+ " 'de': 'Halabdscha',\n",
+ " 'ru': 'Халабджа',\n",
+ " 'en': 'Halabja',\n",
+ " 'ar': 'حلبجة'},\n",
+ " 96331: {'de': 'Hatra',\n",
+ " 'en': 'Hatra',\n",
+ " 'ar': 'مملكة الحضر',\n",
+ " 'es': 'Hatra',\n",
+ " 'fr': 'Hatra',\n",
+ " 'pt': 'Hatra',\n",
+ " 'ja': 'ハトラ'},\n",
+ " 96402: {'ar': 'كولك', 'en': 'Gulak'},\n",
+ " 96666: {'en': 'Mount Gara', 'ar': 'جبل قرة داغ'},\n",
+ " 96834: {'de': 'Eridu',\n",
+ " 'pt': 'Eridu',\n",
+ " 'ja': 'エリドゥ',\n",
+ " 'fr': 'Eridu',\n",
+ " 'ar': 'تل اريدو',\n",
+ " 'es': 'Eridu',\n",
+ " 'en': 'Eridu'},\n",
+ " 96965: {'es': 'Gobernación de Diala',\n",
+ " 'pt': 'Diyala',\n",
+ " 'ja': 'ディヤーラー県',\n",
+ " 'en': 'Diyala Province',\n",
+ " 'ko': '디얄라주',\n",
+ " 'ru': 'Дияла',\n",
+ " 'fr': 'Diyala',\n",
+ " 'de': 'Governorat Diyala',\n",
+ " 'zh': '迪亞拉省',\n",
+ " 'ar': 'بعقوبة'},\n",
+ " 96994: {'de': 'Dohuk', 'fr': 'Duhok', 'ar': 'دهوك', 'en': 'Duhok'},\n",
+ " 97019: {'pt': 'Dhi Qar',\n",
+ " 'en': 'Dhi Qar',\n",
+ " 'ko': '디카르주',\n",
+ " 'ru': 'Ди-Кар',\n",
+ " 'ja': 'ジーカール県',\n",
+ " 'ar': 'الناصرية',\n",
+ " 'es': 'Gobernación de Di Car',\n",
+ " 'zh': '濟加爾省',\n",
+ " 'de': 'Dhi Qar',\n",
+ " 'fr': 'Dhi Qar'},\n",
+ " 97078: {'en': 'Demka', 'ar': 'ديمكا'},\n",
+ " 97145: {'en': 'Darkar', 'ar': 'دركار عجم'},\n",
+ " 97153: {'ar': 'ديريشكي', 'en': 'Derishke'},\n",
+ " 97269: {'en': 'Duhok District', 'ar': 'محافظة دهوك'},\n",
+ " 97270: {'zh': '杜胡克省',\n",
+ " 'ar': 'محافظة دهوك',\n",
+ " 'ru': 'Дахук',\n",
+ " 'fr': 'Dahuk',\n",
+ " 'ja': 'ドホーク県',\n",
+ " 'en': 'Duhok',\n",
+ " 'ko': '다후크주',\n",
+ " 'de': 'Gouvernement Dahuk',\n",
+ " 'es': 'Gobernación de Duhok',\n",
+ " 'pt': 'Dahuk'},\n",
+ " 97663: {'en': 'Blecan', 'ar': 'بليجان'},\n",
+ " 97788: {'ar': 'بيكوفا', 'en': 'Beguva'},\n",
+ " 97825: {'fr': 'Batifa',\n",
+ " 'ar': 'باطوفة',\n",
+ " 'en': 'Batifa',\n",
+ " 'ru': 'Батива',\n",
+ " 'ja': 'バティックファ'},\n",
+ " 97879: {'en': 'Barzinjah', 'ja': 'バルジンジャ', 'ar': 'برزنجة'},\n",
+ " 97907: {'en': 'Barkale', 'ar': 'بركلي'},\n",
+ " 97925: {'ar': 'بارهول', 'en': 'Barhol'},\n",
+ " 97990: {'es': 'Baquba',\n",
+ " 'de': 'Baquba',\n",
+ " 'en': 'Baqubah',\n",
+ " 'fr': 'Bakouba',\n",
+ " 'ar': 'Ba’qūba',\n",
+ " 'zh': '巴古拜'},\n",
+ " 98042: {'ar': 'بانك السفلى', 'en': 'Banka Khware'},\n",
+ " 98144: {'ar': 'قرية بحزاني', 'de': 'Bahzani', 'en': 'Bahzani'},\n",
+ " 98145: {'ar': 'بهنونه', 'en': 'Bahnuna'},\n",
+ " 98180: {'zh': '巴格達省',\n",
+ " 'ru': 'Багдад',\n",
+ " 'en': 'Baghdad',\n",
+ " 'ko': '바그다드주',\n",
+ " 'ar': 'أمانة العاصمة',\n",
+ " 'es': 'Gobernación de Bagdad',\n",
+ " 'pt': 'Bagdad',\n",
+ " 'fr': 'Bagdad',\n",
+ " 'de': 'Gouvernorat Bagdad',\n",
+ " 'ja': 'バグダード県'},\n",
+ " 98182: {'fr': 'Bagdad',\n",
+ " 'ja': 'バグダード',\n",
+ " 'pt': 'Bagdá',\n",
+ " 'es': 'Bagdad',\n",
+ " 'ar': 'بغداد',\n",
+ " 'de': 'Bagdad',\n",
+ " 'en': 'Baghdad',\n",
+ " 'ko': '바그다드',\n",
+ " 'ru': 'Багдад'},\n",
+ " 98228: {'zh': '巴比伦',\n",
+ " 'de': 'Babylon',\n",
+ " 'ru': 'Вавилон',\n",
+ " 'en': 'Babylon',\n",
+ " 'ko': '바빌론',\n",
+ " 'ar': 'بابل',\n",
+ " 'es': 'Babilonia',\n",
+ " 'fr': 'Babylone',\n",
+ " 'pt': 'Babilônia',\n",
+ " 'ja': 'バビロン'},\n",
+ " 98385: {'en': 'Avlihe', 'ar': 'افلهي'},\n",
+ " 98410: {'ar': 'كركوك', 'en': 'Kirkuk'},\n",
+ " 98463: {'fr': 'Souleimaniye',\n",
+ " 'ar': 'السليمانية',\n",
+ " 'es': 'Solimania',\n",
+ " 'de': 'Sulaimaniyya',\n",
+ " 'en': 'Sulaymaniyah',\n",
+ " 'ru': 'Сулеймания'},\n",
+ " 98465: {'ar': 'السليمانية\\u200e',\n",
+ " 'en': 'Sulaymaniyah',\n",
+ " 'de': 'as-Sulaimaniyya',\n",
+ " 'es': 'Gobernación de Solimania'},\n",
+ " 98534: {'en': 'Al-Salman District', 'ar': 'قضاء السلمان'},\n",
+ " 98717: {'ar': 'الرمادي',\n",
+ " 'ru': 'Эр-Рамади',\n",
+ " 'zh': '拉馬迪',\n",
+ " 'ja': 'ラマーディー',\n",
+ " 'de': 'Ramadi',\n",
+ " 'fr': 'Ramadi',\n",
+ " 'en': 'Ramadi',\n",
+ " 'ko': '라마디',\n",
+ " 'es': 'Ramadi'},\n",
+ " ...}"
+ ]
+ },
+ "execution_count": 133,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "alname_df_all_values_selected_only_first_loc_en_filtered_dictionariezed_df = alname_df_all_values_selected_only_first_loc_en_filtered.groupby('geonameid').apply(lambda x: dict(zip(x['isolanguage'], x['alt_name']))).reset_index()\n",
+ "alname_df_all_values_selected_only_first_loc_en_filtered_dictionariezed_df.columns = ['geonameid', 'iso_language_alt_names']\n",
+ "\n",
+ "alname_df_all_values_selected_only_first_loc_en_filtered_dict = alname_df_all_values_selected_only_first_loc_en_filtered_dictionariezed_df.set_index('geonameid')['iso_language_alt_names'].to_dict()\n",
+ "alname_df_all_values_selected_only_first_loc_en_filtered_dict"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Testing out the different process dataset format"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Test 1: Dataset output"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 148,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "| | geonameid | isolanguage | alt_name |\n",
+ "|-------:|------------:|:--------------|:-----------|\n",
+ "| 63100 | 1269750 | en | India |\n",
+ "| 63101 | 1269750 | ko | 인도 |\n",
+ "| 177456 | 1269750 | ja | インド |\n",
+ "| 465842 | 1269750 | pt | Índia |\n",
+ "| 562186 | 1269750 | es | India |\n",
+ "| 601777 | 1269750 | zh | 印度 |\n",
+ "| 721371 | 1269750 | ar | الهند |\n",
+ "| 810115 | 1269750 | fr | Inde |\n",
+ "| 839386 | 1269750 | ru | Индия |\n",
+ "| 922130 | 1269750 | de | Indien |\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(alname_df_all_values_selected_only_first_loc_en_filtered[alname_df_all_values_selected_only_first_loc_en_filtered[\"geonameid\"]==1269750].to_markdown())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Test 2: JSONified table output"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 122,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "┌───────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n",
+ "│ geonameid │ iso_language_alt_names │\n",
+ "│ int32 │ varchar │\n",
+ "├───────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n",
+ "│ 1269750 │ {\"en\": \"India\", \"ko\": \"인도\", \"ja\": \"インド\", \"pt\": \"Índia\", \"es\": \"India\", \"zh\": \"印度\", \"ar\": \"الهند… │\n",
+ "└───────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────┘"
+ ]
+ },
+ "execution_count": 122,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "db.sql('''\n",
+ "SELECT *\n",
+ "FROM alname_df_all_values_selected_only_first_loc_en_filtered_jsonified\n",
+ "WHERE geonameid==1269750\n",
+ "''')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Test 3: Dictionary (/JSON) output"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 150,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'en': 'India',\n",
+ " 'ko': '인도',\n",
+ " 'ja': 'インド',\n",
+ " 'pt': 'Índia',\n",
+ " 'es': 'India',\n",
+ " 'zh': '印度',\n",
+ " 'ar': 'الهند',\n",
+ " 'fr': 'Inde',\n",
+ " 'ru': 'Индия',\n",
+ " 'de': 'Indien'}"
+ ]
+ },
+ "execution_count": 150,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "alname_df_all_values_selected_only_first_loc_en_filtered_dict[1269750]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Saving the files\n",
+ "\n",
+ "The dataset in CSV and the JSON in JSON is available in the zip file `geoname_alt_names.zip`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 145,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "alname_df_all_values_selected_only_first_loc_en_filtered.to_csv(\"geoname_alt_names.csv\", index=False, encoding='utf-8')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 146,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "with open(\"geoname_alt_names.json\", \"w\", encoding='utf-8') as file:\n",
+ " json.dump(alname_df_all_values_selected_only_first_loc_en_filtered_dict, file, ensure_ascii=False)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}