#!/usr/bin/python3
"""
TODO: use this instead of nats_women.py
"""
import functools

from ...helps import logger
from ...translations import All_Nat, all_country_with_nat, all_country_with_nat_ar, countries_en_as_nationality_keys
from ...translations_formats import FormatDataV2
from ..nats_as_country_names import nats_keys_as_country_names
from .data import country_names_and_nats_data

countries_en_keys = [x.get("en") for x in all_country_with_nat.values() if x.get("en")]

formatted_data_double = {
    # "jewish {en} cuisine": "مطبخ {male} يهودي",
    # "jewish {en} history": "تاريخ {male} يهودي",
    # north american-jewish culture
    "{en} jewish surnames": "ألقاب يهودية {female}",
    "{en} jewish descent": "أصل يهودي {male}",
    "{en} jewish culture": "ثقافة يهودية {female}",
    "{en} jewish diaspora": "شتات يهودي {male}",
    "{en}-jewish surnames": "ألقاب يهودية {female}",
    "{en}-jewish descent": "أصل يهودي {male}",
    "{en}-jewish culture": "ثقافة يهودية {female}",
    "{en}-jewish diaspora": "شتات يهودي {male}",
}

peoples_nats_not_jobs_males = {
    "{en} expatriates": "{males} مغتربون",
    "{en} emigrants": "{males} مهاجرون",
    # "Category:Indonesian women singers": "تصنيف:مغنيات إندونيسيات",
    "{en} singers": "مغنون {males}",
    "{en} women singers": "مغنيات {females}",
}

males_data = {
    # en_is_nat_ar_is_mens
    "anti-{en} sentiment": "مشاعر معادية لل{males}",
    "{en} non profit publishers": "ناشرون غير ربحيون {males}",
    "{en} non-profit publishers": "ناشرون غير ربحيون {males}",
    "{en} government officials": "مسؤولون حكوميون {males}",
}

males_data.update(peoples_nats_not_jobs_males)

ar_data = {
    "{en} grand prix": "جائزة {ar} الكبرى",
    "{en} kings cup": "كأس ملك {ar}",  # Bahraini King's Cup
    "{en} cup": "كأس {ar}",
    "{en} independence": "استقلال {ar}",
    "{en} open": "{ar} المفتوحة",
    "{en} ladies open": "{ar} المفتوحة للسيدات",
    "{en} national university": "جامعة {ar} الوطنية",
    "{en} national university alumni": "خريجو جامعة {ar} الوطنية",
    "{en} national womens motorsports racing team": "منتخب {ar} لسباق رياضة المحركات للسيدات",
}

the_male_data = {
    "{en} nationality law": "قانون الجنسية {the_male}",
    "{en} executive council": "المجلس التنفيذي {the_male}",
    "{en} executive council positions": "مناصب في المجلس التنفيذي {the_male}",
    "former {en} executive council positions": "مناصب سابقة في المجلس التنفيذي {the_male}",
    # the_male - en_is_nat_ar_is_al_mens
    "{en} president cup": "كأس الرئيس {the_male}",
    "{en} federation cup": "كأس الاتحاد {the_male}",
    "{en} fa cup": "كأس الاتحاد {the_male}",
    "{en} occupation": "الاحتلال {the_male}",
    "{en} super cup": "كأس السوبر {the_male}",
    "{en} elite cup": "كأس النخبة {the_male}",
    "{en} referendum": "الاستفتاء {the_male}",
    "{en} involvement": "التدخل {the_male}",
    "{en} census": "التعداد {the_male}",
    "{en} professional football league": "دوري كرة القدم {the_male} للمحترفين",
    "{en} football premier league": "الدوري {the_male} الممتاز لكرة القدم",
    "{en} premier football league": "الدوري {the_male} الممتاز لكرة القدم",
    "{en} national super league": "دوري السوبر {the_male}",
    "{en} super league": "دوري السوبر {the_male}",
    "{en} premier league": "الدوري {the_male} الممتاز",
    "{en} premier division": "الدوري {the_male} الممتاز",
    "{en} amateur football league": "الدوري {the_male} لكرة القدم للهواة",
    "{en} football league": "الدوري {the_male} لكرة القدم",
    "{en} population census": "التعداد السكاني {the_male}",
    "{en} population and housing census": "التعداد {the_male} للسكان والمساكن",
    "{en} national party": "الحزب الوطني {the_male}",
    "{en} criminal law": "القانون الجنائي {the_male}",
    "{en} family law": "قانون الأسرة {the_male}",
    "{en} labour law": "قانون العمل {the_male}",
    "{en} abortion law": "قانون الإجهاض {the_male}",
    "{en} rugby union leagues": "اتحاد دوري الرجبي {the_male}",
    "{en} womens rugby union": "اتحاد الرجبي {the_male} للنساء",
    "{en} rugby union": "اتحاد الرجبي {the_male}",
    "{en} presidential pardons": "العفو الرئاسي {the_male}",
    "{en} pardons": "العفو {the_male}",
    # "professional football league": "الدوري {the_male} لكرة القدم للمحترفين",
}

male_data = {
    "{en} cuisine": "مطبخ {male}",
    "{en} history": "تاريخ {male}",
    # male - en_is_nat_ar_is_man
    # "{en} television": "تلفاز {male}",
    "{en} fiction": "خيال {male}",
    "{en} science": "علم {male}",
    "{en} diaspora": "شتات {male}",
    "{en} descent": "أصل {male}",
    "{en} military occupations": "احتلال عسكري {male}",
    "{en} integration": "تكامل {male}",
    "{en} innovation": "ابتكار {male}",
    "{en} design": "تصميم {male}",
    "{en} contemporary art": "فن معاصر {male}",
    "{en} art": "فن {male}",
    "{en} calendar": "تقويم {male}",
    "{en} non fiction literature": "أدب غير خيالي {male}",
    "{en} non-fiction literature": "أدب غير خيالي {male}",
    "{en} literature": "أدب {male}",
    "{en} caste system": "نظام طبقي {male}",
    "{en} law": "قانون {male}",
    "{en} wine": "نبيذ {male}",
    "{en} nuclear history": "تاريخ نووي {male}",
    "{en} military history": "تاريخ عسكري {male}",
    "{en} traditions": "تراث {male}",
    "{en} folklore": "فلكور {male}",
}

female_data_music = {
    "{en} youth music competitions": "منافسات موسيقية شبابية {female}",
    "{en} mixtape albums": "ألبومات ميكستايب {female}",
    "{en} mixtape music": "موسيقى ميكستايب {female}",
    "{en} music": "موسيقى {female}",
    "{en} music people": "شخصيات موسيقية {female}",
    "{en} music personalities": "شخصيات موسيقية {female}",
    "{en} musical duos": "فرق موسيقية ثنائية {female}",
    "{en} musical groups": "فرق موسيقية {female}",
    "{en} musical instruments": "آلات موسيقية {female}",
    "{en} youth sports competitions": "منافسات رياضية شبابية {female}",
    "{en} a cappella groups": "فرق أكابيلا {female}",
    "{en} a cappella musical groups": "فرق موسيقى أكابيلا {female}",
    "{en} alternative metal musical groups": "فرق موسيقى ميتال بديل {female}",
    "{en} alternative rock groups": "فرق روك بديل {female}",
    "{en} ambient music groups": "فرق موسيقى الأمبينت {female}",
    "{en} art punk groups": "فرق آرت بانك {female}",
    "{en} avant-garde metal musical groups": "فرق موسيقى ميتال أفانت جارد {female}",
    "{en} baroque music groups": "فرق موسيقى باروكية {female}",
    "{en} bhangra (music) musical groups": "فرق موسيقى بانغرا {female}",
    "{en} big beat groups": "فرق بيغ بيت {female}",
    "{en} bluegrass music groups": "فرق بلوغراس {female}",
    "{en} blues groups": "فرق بلوز {female}",
    "{en} blues rock groups": "فرق بلوز روك {female}",
    "{en} blues rock musical groups": "فرق موسيقى بلوز روك {female}",
    "{en} britpop groups": "فرق بوب بريطاني {female}",
    "{en} cantopop musical groups": "فرق موسيقى كانتوبوب {female}",
    "{en} celtic music groups": "فرق موسيقى كلتية {female}",
    "{en} celtic rock groups": "فرق روك سيلتي {female}",
    "{en} childrens musical groups": "فرق موسيقى أطفال {female}",
    "{en} christian punk groups": "فرق كريستيان بانك {female}",
    "{en} classical music groups": "فرق موسيقى كلاسيكية {female}",
    "{en} classical musical groups": "فرق موسيقى كلاسيكية {female}",
    "{en} comedy musical groups": "فرق موسيقى كوميديا {female}",
    "{en} contemporary folk music groups": "فرق موسيقى فلكلورية {female}",
    "{en} country groups": "فرق كانتري {female}",
    "{en} dance groups": "فرق رقص {female}",
    "{en} dance music groups": "فرق موسيقى الرقص {female}",
    "{en} dance musical groups": "فرق موسيقى رقص {female}",
    "{en} dance-pop groups": "فرق رقص البوب {female}",
    "{en} dancehall groups": "فرق دانسهول {female}",
    "{en} death metal musical groups": "فرق موسيقى ديث ميتال {female}",
    "{en} disco groups": "فرق ديسكو {female}",
    "{en} early music groups": "فرق موسيقى مبكرة {female}",
    "{en} electronic music groups": "فرق موسيقى إلكترونية {female}",
    "{en} electronic musical groups": "فرق موسيقى إليكترونيك {female}",
    "{en} electronic rock musical groups": "فرق موسيقى إليكترونيك روك {female}",
    "{en} emo musical groups": "فرق موسيقى إيمو {female}",
    "{en} eurodisco groups": "فرق يوروديسكو {female}",
    "{en} europop groups": "فرق يوروبوب {female}",
    "{en} experimental music groups": "فرق موسيقى تجريبية {female}",
    "{en} experimental musical groups": "فرق موسيقى تجريبية {female}",
    "{en} flamenco groups": "فرق فلامنكو {female}",
    "{en} folk groups": "فرق فولك {female}",
    "{en} folk musical groups": "فرق موسيقى فولك {female}",
    "{en} french hip hop groups": "فرق هيب هوب فرنسي {female}",
    "{en} funk groups": "فرق فانك {female}",
    "{en} fusion groups": "فرق فيوشن {female}",
    "{en} gangsta rap groups": "فرق راب العصابات {female}",
    "{en} glam metal musical groups": "فرق موسيقى جلام ميتال {female}",
    "{en} gospel music groups": "فرق غوسبل {female}",
    "{en} gospel musical groups": "فرق موسيقى غوسبل {female}",
    "{en} gothic music groups": "فرق موسيقى غوثك {female}",
    "{en} gothic rock groups": "فرق غوثك روك {female}",
    "{en} grindcore musical groups": "فرق موسيقى قريندكور {female}",
    "{en} grunge groups": "فرق غرنج {female}",
    "{en} grunge musical groups": "فرق موسيقى غرنج {female}",
    "{en} hard rock musical groups": "فرق موسيقى هارد روك {female}",
    "{en} hardcore punk groups": "فرق هاردكور بانك {female}",
    "{en} hip hop musical groups": "فرق موسيقى هيب هوب {female}",
    "{en} horrorcore groups": "فرق هورور كور {female}",
    "{en} house groups": "فرق الهاوس {female}",
    "{en} house music groups": "فرق هاوس {female}",
    "{en} indie folk groups": "فرق إندي فولك {female}",
    "{en} indie music groups": "فرق موسيقى إندي {female}",
    "{en} indie rock musical groups": "فرق موسيقى إيندي روك {female}",
    "{en} industrial groups": "فرق صناعية {female}",
    "{en} industrial rock musical groups": "فرق موسيقى إندستريال روك {female}",
    "{en} klezmer groups": "فرق كليزمر {female}",
    "{en} latin music groups": "فرق موسيقى لاتينية {female}",
    "{en} mandopop musical groups": "فرق موسيقى ماندوبوب {female}",
    "{en} mariachi groups": "فرق مرياتي {female}",
    "{en} metal groups": "فرق ميتال {female}",
    "{en} minimal music groups": "فرق موسيقى حد أدنى {female}",
    "{en} music groups": "فرق موسيقى {female}",
    "{en} música popular brasileira musical groups": "فرق موسيقى شعبية برازيلية {female}",
    "{en} new wave groups": "فرق موجة جديدة {female}",
    "{en} new wave musical groups": "فرق موسيقى موجة جديدة {female}",
    "{en} new-age music groups": "فرق موسيقى العصر الجديد {female}",
    "{en} noise musical groups": "فرق موسيقى ضوضائية {female}",
    "{en} nu metal musical groups": "فرق موسيقى نيو ميتال {female}",
    "{en} opera groups": "فرق أوبرا {female}",
    "{en} peruvian cumbia musical groups": "فرق موسيقى كومبيا بيروفية {female}",
    "{en} political music groups": "فرق موسيقى سياسية {female}",
    "{en} polka groups": "فرق بولكا {female}",
    "{en} pop musical groups": "فرق موسيقى بوب {female}",
    "{en} pop punk groups": "فرق بوب بانك {female}",
    "{en} pop-rap groups": "فرق بوب راب {female}",
    "{en} post-grunge groups": "فرق بوست-غرنج {female}",
    "{en} post-grunge musical groups": "فرق موسيقى بوست-غرنج {female}",
    "{en} post-punk groups": "فرق بوست بانك {female}",
    "{en} post-punk musical groups": "فرق موسيقى بوست بانك {female}",
    "{en} power metal musical groups": "فرق موسيقى باور ميتال {female}",
    "{en} progressive metal musical groups": "فرق موسيقى بروجريسف ميتال {female}",
    "{en} punk blues musical groups": "فرق موسيقى بانك بلوز {female}",
    "{en} punk music groups": "فرق موسيقى بانك {female}",
    "{en} qawwali groups": "فرق قوالي {female}",
    "{en} r&b groups": "فرق ريذم أند بلوز {female}",
    "{en} r&b musical groups": "فرق موسيقى ريذم أند بلوز {female}",
    "{en} rap groups": "فرق راب {female}",
    "{en} rap metal musical groups": "فرق موسيقى راب ميتال {female}",
    "{en} rapcore groups": "فرق راب كور {female}",
    "{en} reggaeton groups": "فرق ريغيه تون {female}",
    "{en} rhythm and blues musical groups": "فرق موسيقى ريذم أند بلوز {female}",
    "{en} rock musical groups": "فرق موسيقى روك {female}",
    "{en} romani groups": "فرق غجرية {female}",
    "{en} romani musical groups": "فرق موسيقى غجرية {female}",
    "{en} ska musical groups": "فرق موسيقى سكا {female}",
    "{en} soul music groups": "فرق موسيقى السول {female}",
    "{en} soul musical groups": "فرق موسيقى السول {female}",
    "{en} southern hip hop groups": "فرق هيب هوب جنوبي {female}",
    "{en} swing music groups": "فرق سوينغ {female}",
    "{en} swing musical groups": "فرق موسيقى سوينغ {female}",
    "{en} symphonic black metal musical groups": "فرق موسيقى بلاك ميتال سمفوني {female}",
    "{en} symphonic metal musical groups": "فرق موسيقى ميتال سيمفوني {female}",
    "{en} synth-pop groups": "فرق سينثبوب {female}",
    "{en} technical death metal musical groups": "فرق موسيقى ديث ميتال الفني {female}",
    "{en} techno groups": "فرق تكنو {female}",
    "{en} teen pop groups": "فرق بوب الشباب {female}",
    "{en} tejano music groups": "فرق موسيقى تيخانو {female}",
    "{en} traditional musical groups": "فرق موسيقى تقليدية {female}",
    "{en} trance musical groups": "فرق موسيقى ترانس {female}",
    "{en} west coast hip hop groups": "فرق هيب هوب الساحل الغربي {female}",
    "{en} christian communities": "مجتمعات مسيحية {female}",
    "{en} christian metal musical groups": "فرق موسيقى ميتال مسيحي {female}",
    "{en} christian rock groups": "فرق روك مسيحي {female}",
    "{en} alternative metal groups": "فرق ميتال بديل {female}",
    "{en} bibliographies": "ببليوجرافيات {female}",
    "{en} conferences": "مؤتمرات {female}",
    "{en} contemporary r&b groups": "فرق آر أند بي معاصر {female}",
    "{en} metal musical groups": "فرق موسيقى ميتال {female}",
    "{en} music awards": "جوائز موسيقى {female}",
    "{en} pop groups": "فرق بوب {female}",
    "{en} rhythm and blues groups": "فرق ريذم أند بلوز {female}",
    "{en} socialist organizations": "منظمات اشتراكية {female}",
    "{en} black metal musical groups": "فرق موسيقى بلاك ميتال {female}",
    "{en} blues musical groups": "فرق موسيقى بلوز {female}",
    "{en} contemporary r&b musical groups": "فرق موسيقى آر أند بي معاصر {female}",
    "{en} country music groups": "فرق كانتري {female}",
    "{en} doom metal musical groups": "فرق موسيقى دوم ميتال {female}",
    "{en} electronic dance music groups": "فرق موسيقى الرقص الإلكترونية {female}",
    "{en} eurodance groups": "فرق يورودانس {female}",
    "{en} folk music groups": "فرق موسيقى تقليدية {female}",
    "{en} folk rock groups": "فرق فولك روك {female}",
    "{en} funk musical groups": "فرق موسيقى فانك {female}",
    "{en} gothic metal musical groups": "فرق موسيقى غوثيك ميتال {female}",
    "{en} heavy metal musical groups by genre": "فرق موسيقى هيفي ميتال {female} حسب النوع الفني",
    "{en} heavy metal musical groups": "فرق موسيقى هيفي ميتال {female}",
    "{en} hip hop groups": "فرق هيب هوب {female}",
    "{en} hip-hop groups": "فرق هيب هوب {female}",
    "{en} indie pop groups": "فرق إيندي بوب {female}",
    "{en} indie rock groups": "فرق إيندي روك {female}",
    "{en} musicals": "مسرحيات غنائية {female}",
    "{en} pop music groups": "فرق موسيقى بوب {female}",
    "{en} reggae musical groups": "فرق موسيقى ريغيه {female}",
    "{en} rock music groups": "فرق موسيقى الروك {female}",
    "{en} ska groups": "فرق سكا {female}",
    "{en} thrash metal musical groups": "فرق موسيقى ثراش ميتال {female}",
    "{en} world music groups": "فرق موسيقى العالم {female}",
}

female_data = {
    "{en} miniseries": "مسلسلات قصيرة {female}",
    "{en} tennis commentators": "معلقو كرة مضرب {female}",
    "{en} international schools": "مدارس دولية {female}",
    "{en} childrens books": "كتب أطفال {female}",
    "{en} hindu festivals": "مهرجانات هندوسية {female}",
    "{en} documentaries": "وثائقيات {female}",
    "{en} cookbooks": "كتب طبخ {female}",
    "{en} political websites": "مواقع ويب سياسية {female}",
    "{en} comic": "قصص مصورة {female}",
    "{en} organized crime": "جريمة منظمة {female}",
    "{en} paintings": "لوحات {female}",
    "{en} online encyclopedias": "موسوعات إنترنت {female}",
    "{en} architecture awards": "جوائز عمارة {female}",
    "{en} childrens magazines": "مجلات أطفال {female}",
    "{en} ethnic groups": "مجموعات عرقية {female}",
    "{en} feminist organizations": "منظمات نسوية {female}",
    "{en} illuminated manuscripts": "مخطوطات مذهبة {female}",
    "{en} manuscripts": "مخطوطات {female}",
    "{en} medical organizations": "منظمات طبية {female}",
    "{en} military units and formations": "وحدات وتشكيلات عسكرية {female}",
    "{en} new religious movements": "حركات دينية جديدة {female}",
    "{en} political movements": "حركات سياسية {female}",
    "{en} religious movements": "حركات دينية {female}",
    "{en} biographical dictionaries": "قواميس سير ذاتية {female}",
    "{en} cultural organizations": "منظمات ثقافية {female}",
    "{en} buddhist temples": "معابد بوذية {female}",
    # "Christian religious orders by century of establishment": "أخويات دينية مسيحية حسب قرن التأسيس",
    "{en} religious orders": "أخويات دينية {female}",
    # "Christian political parties": "أحزاب سياسية مسيحية",
    "{en} political parties": "أحزاب سياسية {female}",
    "{en} texts": "نصوص {female}",
    "{en} events": "أحداث {female}",
    "{en} political organizations": "منظمات سياسية {female}",
    "{en} rock groups": "فرق روك {female}",
    "{en} history organizations": "منظمات تاريخ {female}",
    "{en} religious organizations": "منظمات دينية {female}",
    "{en} Islamic organisations": "منظمات إسلامية {female}",
    "{en} islamic organizations": "منظمات إسلامية {female}",
    # "Category:1972 in American women's sports": "تصنيف:رياضة أمريكية للسيدات في 1972",
    "{en} sports": "ألعاب رياضية {female}",
    "{en} womens sports": "رياضات نسائية {female}",
    "burial sites of {en} noble families": "مواقع دفن عائلات نبيلة {female}",
    "burial sites of {en} royal houses": "مواقع دفن بيوت ملكية {female}",
    "{en} video game businesspeople": "شخصيات أعمال {female} في ألعاب الفيديو",
    "{en} video game industry businesspeople": "شخصيات أعمال {female} في صناعة ألعاب الفيديو",
    "{en} real estate businesspeople": "شخصيات أعمال {female} في العقارات",
    "{en} real estate industry businesspeople": "شخصيات أعمال {female} في صناعة العقارات",
    "{en} metals businesspeople": "شخصيات أعمال {female} في المعادن",
    "{en} metals industry businesspeople": "شخصيات أعمال {female} في صناعة المعادن",
    "{en} financial industry businesspeople": "شخصيات أعمال {female} في صناعة المالية",
    "{en} financial businesspeople": "شخصيات أعمال {female} في المالية",
    "{en} fashion businesspeople": "شخصيات أعمال {female} في الأزياء",
    "{en} fashion industry businesspeople": "شخصيات أعمال {female} في صناعة الأزياء",
    "{en} entertainment businesspeople": "شخصيات أعمال {female} في الترفيه",
    "{en} cosmetics businesspeople": "شخصيات أعمال {female} في مستحضرات التجميل",
    "{en} cosmetics industry businesspeople": "شخصيات أعمال {female} في صناعة مستحضرات التجميل",
    "{en} computer industry businesspeople": "شخصيات أعمال {female} في صناعة كمبيوتر",
    "{en} computer businesspeople": "شخصيات أعمال {female} في الكمبيوتر",
    "{en} entertainment industry businesspeople": "شخصيات أعمال {female} في صناعة الترفيه",
    "{en} non-fiction comic strips": "شرائط كومكس {female} غير خيالية",
    "{en} non-fiction comic": "قصص مصورة {female} غير خيالية",
    "{en} non-fiction comics": "قصص مصورة {female} غير خيالية",
    "{en} non-fiction crime": "جريمة {female} غير خيالية",
    "{en} non-fiction graphic novels": "روايات مصورة {female} غير خيالية",
    "{en} non-fiction novels": "روايات {female} غير خيالية",
    # female - en_is_nat_ar_is_women
    "{en} non-fiction books": "كتب {female} غير خيالية",
    "{en} non fiction books": "كتب {female} غير خيالية",
    "{en} books": "كتب {female}",
    "{en} phonologies": "تصريفات صوتية {female}",
    "{en} crimes": "جرائم {female}",
    "{en} crimes against humanity": "جرائم ضد الإنسانية {female}",
    "{en} war crimes": "جرائم حرب {female}",
    "{en} airstrikes": "ضربات جوية {female}",
    "deaths by {en} airstrikes": "وفيات بضربات جوية {female}",
    "{en} archipelagoes": "أرخبيلات {female}",
    "{en} architecture": "عمارة {female}",
    "{en} autobiographies": "ترجمة ذاتية {female}",
    "{en} automotive": "سيارات {female}",
    "{en} awards and decorations": "جوائز وأوسمة {female}",
    "{en} awards": "جوائز {female}",
    "{en} ballot measures": "إجراءات اقتراع {female}",
    "{en} ballot propositions": "اقتراحات اقتراع {female}",
    "{en} border crossings": "معابر حدودية {female}",
    "{en} border": "حدود {female}",
    "{en} brands": "ماركات {female}",
    "{en} budgets": "موازنات {female}",
    "{en} buildings": "مباني {female}",
    "{en} business culture": "ثقافة مالية {female}",
    "{en} businesspeople": "شخصيات أعمال {female}",
    "{en} cantons": "كانتونات {female}",
    "{en} casualties": "خسائر {female}",
    "{en} cathedrals": "كاتدرائيات {female}",
    "{en} championships": "بطولات {female}",
    "{en} civil awards and decorations": "جوائز وأوسمة مدنية {female}",
    "{en} classical albums": "ألبومات كلاسيكية {female}",
    "{en} classical music": "موسيقى كلاسيكية {female}",
    "{en} clothing": "ملابس {female}",
    "{en} clubs": "أندية {female}",
    "{en} coats of arms": "شعارات نبالة {female}",
    "{en} colonial": "مستعمرات {female}",
    "{en} comedy albums": "ألبومات كوميدية {female}",
    "{en} comedy music": "موسيقى كوميدية {female}",
    "{en} comedy": "كوميديا {female}",
    "{en} companies": "شركات {female}",
    "{en} competitions": "منافسات {female}",
    "{en} compilation albums": "ألبومات تجميعية {female}",
    "{en} countries": "بلدان {female}",
    "{en} culture": "ثقافة {female}",
    "{en} decorations": "أوسمة {female}",
    "{en} diplomatic missions": "بعثات دبلوماسية {female}",
    "{en} discoveries": "اكتشافات {female}",
    "{en} drink": "مشروبات {female}",
    "{en} elections": "انتخابات {female}",
    "{en} encyclopedias": "موسوعات {female}",
    "{en} executions": "إعدامات {female}",
    "{en} explosions": "انفجارات {female}",
    "{en} families": "عائلات {female}",
    "{en} fauna": "حيوانات {female}",
    "{en} festivals": "مهرجانات {female}",
    "{en} folk albums": "ألبومات فلكلورية {female}",
    "{en} folk music": "موسيقى فلكلورية {female}",
    "{en} folklore characters": "شخصيات فلكلورية {female}",
    "{en} football club matches": "مباريات أندية كرة قدم {female}",
    "{en} football club seasons": "مواسم أندية كرة قدم {female}",
    "{en} forests": "غابات {female}",
    "{en} gangs": "عصابات {female}",
    "{en} given names": "أسماء شخصية {female}",
    "{en} heraldry": "نبالة {female}",
    "{en} heritage sites": "موقع تراث عالمي {female}",
    "{en} inscriptions": "نقوش {female}",
    "{en} introductions": "استحداثات {female}",
    "{en} inventions": "اختراعات {female}",
    "{en} islands": "جزر {female}",
    "{en} issues": "قضايا {female}",
    "{en} jewellery": "مجوهرات {female}",
    "{en} journalism": "صحافة {female}",
    "{en} lakes": "بحيرات {female}",
    "{en} learned and professional societies": "جمعيات علمية ومهنية {female}",
    "{en} learned societies": "جمعيات علمية {female}",
    "{en} literary awards": "جوائز أدبية {female}",
    "{en} magazines": "مجلات {female}",
    "{en} mascots": "تمائم {female}",
    "{en} masculine given names": "أسماء ذكور {female}",
    "{en} media personalities": "شخصيات إعلامية {female}",
    "{en} media": "وسائل إعلام {female}",
    "{en} memoirs": "مذكرات {female}",
    "{en} memorials and cemeteries": "نصب تذكارية ومقابر {female}",
    "{en} military equipment": "معدات عسكرية {female}",
    "{en} military terminology": "مصطلحات عسكرية {female}",
    "{en} military-equipment": "معدات عسكرية {female}",
    "{en} military-terminology": "مصطلحات عسكرية {female}",
    "{en} mixtape albums": "ألبومات ميكستايب {female}",
    "{en} mixtape music": "موسيقى ميكستايب {female}",
    "{en} monarchy": "ملكية {female}",
    "{en} motorsport": "رياضة محركات {female}",
    "{en} mountains": "جبال {female}",
    "{en} movies": "أفلام {female}",
    "{en} music people": "شخصيات موسيقية {female}",
    "{en} music personalities": "شخصيات موسيقية {female}",
    "{en} music": "موسيقى {female}",
    "{en} musical duos": "فرق موسيقية ثنائية {female}",
    "{en} musical groups": "فرق موسيقية {female}",
    "{en} musical instruments": "آلات موسيقية {female}",
    "{en} mythology": "أساطير {female}",
    "{en} phonology": "نطقيات {female}",
    "{en} names": "أسماء {female}",
    "{en} nationalism": "قومية {female}",
    "{en} newspapers": "صحف {female}",
    "{en} non-profit organizations": "منظمات غير ربحية {female}",
    "{en} non profit organizations": "منظمات غير ربحية {female}",
    "{en} novels": "روايات {female}",
    "{en} online journalism": "صحافة إنترنت {female}",
    "{en} operas": "أوبيرات {female}",
    "{en} organisations": "منظمات {female}",
    "{en} organizations": "منظمات {female}",
    "{en} parishes": "أبرشيات {female}",
    "{en} parks": "متنزهات {female}",
    "{en} peoples": "شعوب {female}",
    "{en} philosophy": "فلسفة {female}",
    "{en} plays": "مسرحيات {female}",
    "{en} poems": "قصائد {female}",
    "{en} political philosophy": "فلسفة سياسية {female}",
    "{en} popular culture": "ثقافة شعبية {female}",
    "{en} professional societies": "جمعيات مهنية {female}",
    "{en} provinces": "مقاطعات {female}",
    "{en} publications": "منشورات {female}",
    "{en} radio networks": "شبكات مذياع {female}",
    "{en} radio stations": "محطات إذاعية {female}",
    "{en} radio": "راديو {female}",
    "{en} rebellions": "تمردات {female}",
    "{en} occupations": "مهن {female}",
    "{en} religious occupations": "مهن دينية {female}",
    "{en} rectors": "عمدات {female}",
    "{en} referendums": "استفتاءات {female}",
    "{en} religions": "ديانات {female}",
    "{en} resorts": "منتجعات {female}",
    "{en} restaurants": "مطاعم {female}",
    "{en} revolutions": "ثورات {female}",
    "{en} riots": "أعمال شغب {female}",
    "{en} road cycling": "سباقات دراجات على الطريق {female}",
    "{en} roads": "طرقات {female}",
    "{en} royal families": "عائلات ملكية {female}",
    "{en} schools and colleges": "مدارس وكليات {female}",
    "{en} sculptures": "منحوتات {female}",
    "{en} sea temples": "معابد بحرية {female}",
    "{en} short stories": "قصص قصيرة {female}",
    "{en} societies": "جمعيات {female}",
    "{en} songs": "أغاني {female}",
    "{en} sports-events": "أحداث رياضية {female}",
    "{en} soundtracks": "موسيقى تصويرية {female}",
    "{en} sport": "رياضة {female}",
    "{en} sports competitions": "منافسات رياضية {female}",
    "{en} sports events": "أحداث رياضية {female}",
    "{en} surnames": "ألقاب {female}",
    "{en} swamps": "مستنقعات {female}",
    "{en} telenovelas": "تيلينوفيلا {female}",
    "{en} film series": "سلاسل أفلام {female}",
    "{en} television commercials": "إعلانات تجارية تلفزيونية {female}",
    "{en} television films": "أفلام تلفزيونية {female}",
    "{en} television miniseries": "مسلسلات قصيرة تلفزيونية {female}",
    "{en} television networks": "شبكات تلفزيونية {female}",
    "{en} television news": "أخبار تلفزيونية {female}",
    "{en} television personalities": "شخصيات تلفزيونية {female}",
    "{en} television programmes": "برامج تلفزيونية {female}",
    "{en} television programs": "برامج تلفزيونية {female}",
    "{en} television series": "مسلسلات تلفزيونية {female}",
    "non {en} television series": "مسلسلات تلفزيونية غير {female}",
    "non-{en} television series": "مسلسلات تلفزيونية غير {female}",
    "{en} television series-debuts": "مسلسلات تلفزيونية {female} بدأ عرضها في",
    "{en} television series-endings": "مسلسلات تلفزيونية {female} انتهت في",
    "{en} television stations": "محطات تلفزيونية {female}",
    "{en} television-seasons": "مواسم تلفزيونية {female}",
    "{en} temples": "معابد {female}",
    "{en} tennis": "كرة مضرب {female}",
    "{en} terminology": "مصطلحات {female}",
    "{en} titles": "ألقاب {female}",
    "{en} tour": "بطولات {female}",
    "{en} towns": "بلدات {female}",
    "{en} trains": "قطارات {female}",
    "{en} trials": "محاكمات {female}",
    "{en} tribes": "قبائل {female}",
    "{en} underground culture": "ثقافة باطنية {female}",
    "{en} universities": "جامعات {female}",
    "{en} verbs": "أفعال {female}",
    "{en} video games": "ألعاب فيديو {female}",
    "{en} volcanoes": "براكين {female}",
    "{en} wars": "حروب {female}",
    "{en} waterfalls": "شلالات {female}",
    "{en} webcomic": "ويب كومكس {female}",
    "{en} webcomics": "ويب كومكس {female}",
    "{en} websites": "مواقع ويب {female}",
    "{en} womens sport": "رياضة {female} نسائية",
    "{en} works": "أعمال {female}",
    "{en} youth competitions": "منافسات شبابية {female}",
    "{en} youth music competitions": "منافسات موسيقية شبابية {female}",
    "{en} youth sports competitions": "منافسات رياضية شبابية {female}",
}

female_data.update(female_data_music)

burial_sites = {
    "{en} dynasties": "أسر {female}",
    "ancient {en} dynasties": "أسر {female} قديمة",
    "{en} imperial dynasties": "أسر إمبراطورية {female}",
    "{en} noble families": "عائلات نبيلة {female}",
    "{en} royal houses": "بيوت ملكية {female}",
    "imperial {en} families": "أسر إمبراطورية {female}",
}
female_data.update(burial_sites)

female_data.update({f"burial sites of {k}": f"مواقع دفن {v}" for k, v in burial_sites.items()})

the_female_data = {
    "{en} concentration camps": "معسكرات الاعتقال {the_female}",
    "{en} film awards": "جوائز الأفلام {the_female}",
    "{en} film award": "جوائز الأفلام {the_female}",
    "{en} film award winners": "فائزون بجائزة الأفلام {the_female}",
    "{en} short film awards": "جوائز الأفلام القصيرة {the_female}",
    "{en} airways accidents and incidents": "حوادث الخطوط الجوية {the_female}",
    "{en} airways accidents-and-incidents": "حوادث الخطوط الجوية {the_female}",
    "{en} airways": "الخطوط الجوية {the_female}",
    "{en} youth games": "الألعاب {the_female} الشبابية",
    "{en} financial crisis": "الأزمة المالية {the_female}",
    "{en} presidential crisis": "الأزمة الرئاسية {the_female}",
    "{en} military academy": "الأكاديمية العسكرية {the_female}",
    "{en} military college": "الكلية العسكرية {the_female}",
    "{en} crisis": "الأزمة {the_female}",
    "{en} energy crisis": "أزمة الطاقة {the_female}",
    "{en} constitutional crisis": "الأزمة الدستورية {the_female}",
    "{en} games competitors": "منافسون في الألعاب {the_female}",
    "{en} games medalists": "فائزون بميداليات الألعاب {the_female}",
    "{en} games gold medalists": "فائزون بميداليات ذهبية في الألعاب {the_female}",
    "{en} games silver medalists": "فائزون بميداليات فضية في الألعاب {the_female}",
    "{en} games bronze medalists": "فائزون بميداليات برونزية في الألعاب {the_female}",
    "{en} television people": "شخصيات التلفزة {the_female}",
    "{en} legislative election": "الانتخابات التشريعية {the_female}",
    "{en} parliamentary election": "الانتخابات البرلمانية {the_female}",
    "{en} regional election": "انتخابات الإقليمية {the_female}",
    "{en} vice-presidential election": "انتخابات نائب الرئاسة {the_female}",
    # baston_women: dict[str, str] = {
    "{en} movement": "الحركة {the_female}",
    "{en} unity cup": "كأس الوحدة {the_female}",
    "{en} rail": "السكك الحديدية {the_female}",
    "{en} television": "التلفزة {the_female}",
    "{en} revolution": "الثورة {the_female}",
    "{en} war": "الحرب {the_female}",
    "{en} border war": "حرب الحدود {the_female}",
    "{en} detention": "المعتقلات {the_female}",
    "{en} para games": "الألعاب البارالمبية {the_female}",
    "{en} games": "الألعاب {the_female}",
    "{en} medical association": "الجمعية الطبية {the_female}",
    "{en} soccer": "كرة القدم {the_female}",
    "{en} cinema": "السينما {the_female}",
    "{en} politics": "السياسة {the_female}",
    # female - military_format_women_without_al
    "{en} federal legislation": "تشريعات فيدرالية {female}",
    "{en} courts": "محاكم {female}",
    "{en} sports templates": "قوالب رياضة {female}",
    "{en} political party": "أحزاب سياسية {female}",
    # "society" : "الجمعية {the_female}",
    "{en} presidential primarie": "الانتخابات الرئاسية التمهيدية {the_female}",
    "{en} presidential primaries": "الانتخابات الرئاسية التمهيدية {the_female}",
}

all_formatted_data = (
    males_data
    | ar_data
    | the_male_data
    | male_data
    | the_female_data
    | country_names_and_nats_data
    | female_data  # | formatted_data_double
)


@functools.lru_cache(maxsize=1)
def _load_bot() -> FormatDataV2:
    nats_data = {
        # x: v for x, v in all_country_with_nat_ar.items()  # if v.get("ar")
        x: v
        for x, v in All_Nat.items()  # if v.get("ar")
    }
    nats_data.update({x: v for x, v in nats_keys_as_country_names.items()})  # if v.get("ar")

    if "jewish-american" not in nats_data:
        print(nats_data.keys())

    return FormatDataV2(
        formatted_data=all_formatted_data,
        data_list=nats_data,
        key_placeholder="{en}",
        text_before="the ",
    )


def fix_keys(category: str) -> str:
    """Fix known issues in category keys before searching.

    Args:
        category: The original category key.
    """
    # Fix specific known issues with category keys
    category = category.lower().replace("category:", "")
    category = category.replace("'", "")
    return category.strip()


@functools.lru_cache(maxsize=10000)
def resolve_by_nats(category: str) -> str:
    logger.debug(f"<<yellow>> start resolve_by_nats: {category=}")

    if category in countries_en_as_nationality_keys or category in countries_en_keys:
        logger.info(f"<<yellow>> skip resolve_by_nats: {category=}, [result=]")
        return ""
    category = fix_keys(category)
    nat_bot = _load_bot()
    result = nat_bot.search_all_category(category)
    logger.info_if_or_debug(f"<<yellow>> end resolve_by_nats: {category=}, {result=}", result)
    return result


__all__ = [
    "resolve_by_nats",
]
