#############################################
#### ONLY SHOW THINGS BELOW HERE ON WIKI ####
#############################################

# Set local language and settings
code_locale = 'tr_TR'
lang_parameter = "dil"

# Templates to work on = lowercase with no spaces!
templates_list = [
    "citeweb",
    "citejournal",
    "citenews",
    "citenewspaper",
    "citebook",
    "citemagazine",
    "citeencyclopedia",
    "citevideogame",
    "citevideo",
    "citenews",
    "citeavmedia",
    "cite",
    "citeconference",
    "kaynak",
    "webkaynağı",
    "haberkaynağı",
    "kitapkaynağı",
    "dergikaynağı",
    "akademikdergikaynağı",
    "videokaynağı",
    "ansiklopedikaynağı",
    "kaynak",
    "konferanskaynağı",
    "raporkaynağı",
    "citereport",
    "citepressrelease",
    "basınaçıklamasıkaynağı",
    "webarşiv",
    "kdş",
]

# Citation parameters and translations
ref_general_list = {
    ## NEW AND FULL LIST WITH VITO GENOVESE
    "network": "ağ",
    "şebeke": "ağ",
    "agency": "ajans",
    "quote": "alıntı",
    "quotation": "alıntı",
    "encyclopedia": "ansiklopedi",
    "encyclopaedia": "ansiklopedi",
    "archive-format": "arşivbiçimi",
    "arşiv-biçimi": "arşivbiçimi",
    "arşivengeli": "arşivengelli",
    "archive-date": "arşivtarihi",
    "archivedate": "arşivtarihi",
    "arşiv-tarihi": "arşivtarihi",
    "archive-url": "arşivurl",
    "archiveurl": "arşivurl",
    "arşiv-url": "arşivurl",
    "month": "ay",
    "edition": "basım",
    "baskı": "basım",
    "title": "başlık",
    "title-link": "başlıkbağı",
    "episode-link": "bölümbağı",
    "titlelink": "başlıkbağı",
    "episodelink": "bölümbağı",
    "bölüm-bağlantısı": "bölümbağı",
    "başlık-bağlantısı": "başlıkbağı",
    "başlıklink": "başlıkbağı",
    "başlık-bağı": "başlıkbağı",
    "type": "tür",
    "medium": "ortam",
    "medya": "ortam",
    "tip": "tür",
    "format": "biçim",
    "episode": "bölüm",
    "trans-title": "çeviribaşlık",
    "trans_title": "çeviribaşlık",
    "çeviri-başlık": "çeviribaşlık",
    "çeviri_başlık": "çeviribaşlık",
    "trans-chapter": "çeviribölüm",
    "trans_chapter": "çeviribölüm",
    "çeviri_bölüm": "çeviribölüm",
    "çeviri_bölümü": "çeviribölüm",
    "çeviribölümü": "çeviribölüm",
    "volume": "cilt",
    "lay-format": "diğerbiçim",
    "diğer-biçim": "diğerbiçim",
    "lay-source": "diğerkaynak",
    "laysource": "diğerkaynak",
    "diğer-kaynak": "diğerkaynak",
    "others": "diğerleri",
    "interviewer": "görüşmeci",
    "interviewers": "görüşmeciler",
    "lay-date": "diğertarih",
    "laydate": "diğertarih",
    "lay-url": "diğerurl",
    "lay-summary": "diğerözet",
    "layurl": "diğerurl",
    "laysummary": "diğerözet",
    "diğer-url": "diğerurl",
    "language": "dil",
    "doi-broken": "doikırık",
    "doi-broken-date": "doikırıktarihi",
    "doi-inactive-date": "doikırıktarihi",
    "doi_brokendate": "doikırıktarihi",
    "doi_inactivedate": "doikırıktarihi",
    "doi-kırık-tarih": "doikırıktarihi",
    "doibozuk": "doikırık",
    "doi_bozuktarihi": "doikırıktarihi",
    "doi-hatalı-tarih": "doikırıktarihi",
    "editors": "editörler",
    "display-editors": "editörlerigöster",
    "displayeditors": "editörlerigöster",
    "editörleri-göster": "editörlerigöster",
    "editör-göster": "editörlerigöster",
    "access-date": "erişimtarihi",
    "accessdate": "erişimtarihi",
    "erişim-tarihi": "erişimtarihi",
    "erişim tarihi": "erişimtarihi",
    "coauthors": "eşyazarlar",
    "coauthor": "eşyazarlar",
    "ortakyazarlar": "eşyazarlar",
    "yardımcıyazarlar": "eşyazarlar",
    "yardımcı yazarlar": "eşyazarlar",
    "script-title": "farklıalfabebaşlık",
    "farklı-alfabe-başlık": "farklıalfabebaşlık",
    "map": "harita",
    "map-format": "haritabiçimi",
    "harita-biçimi": "haritabiçimi",
    "mapurl": "haritaurl",
    "map-url": "haritaurl",
    "harita-url": "haritaurl",
    "map-url-access": "haritaurlerişimi",
    "harita-url-erişimi": "haritaurlerişimi",
    "tanıtıcı": "id",
    "via": "ile",
    "i̇le": "ile",
    "collaboration": "işbirliği",
    "işbirliği": "işbirliği",
    "station": "i̇stasyon",
    "istasyon": "i̇stasyon",
    "kanal": "i̇stasyon",
    "contribution": "bölüm",
    "ref": "kaynak",
    "book-title": "kitapbaşlığı",
    "booktitle": "kitapbaşlığı",
    "kitap-başlığı": "kitapbaşlığı",
    "chapter": "bölüm",
    "entry": "bölüm",
    "article": "bölüm",
    "section": "bölüm",
    "makale": "bölüm",
    "madde": "bölüm",
    "chapter-format": "bölümbiçimi",
    "contribution-format": "bölümbiçimi",
    "section-format": "bölümbiçimi",
    "bölüm-biçimi": "bölümbiçimi",
    "kısım-biçimi": "bölümbiçimi",
    "chapter-url": "bölümurl",
    "chapterurl": "bölümurl",
    "contribution-url": "bölümurl",
    "contributionurl": "bölümurl",
    "section-url": "bölümurl",
    "sectionurl": "bölümurl",
    "kısım-url": "bölümurl",
    "bölüm-url": "bölümurl",
    "chapter-url-access": "bölümurlerişimi",
    "contribution-url-access": "bölümurlerişimi",
    "entry-url-access": "bölümurlerişimi",
    "article-url-access": "bölümurlerişimi",
    "section-url-access": "bölümurlerişimi",
    "kısım-url-erişimi": "bölümurlerişimi",
    "bölüm-url-erişimi": "bölümurlerişimi",
    "madde-url-erişimi": "bölümurlerişimi",
    "girdi-url-erişimi": "bölümurlerişimi",
    "conference": "konferans",
    "event": "konferans",
    "etkinlik": "konferans",
    "conference-format": "konferansbiçimi",
    "event-format": "konferansbiçimi",
    "konferans-biçimi": "konferansbiçimi",
    "etkinlik-biçimi": "konferansbiçimi",
    "conference-url": "konferansurl",
    "conferenceurl": "konferansurl",
    "event-url": "konferansurl",
    "eventurl": "konferansurl",
    "konferans-url": "konferansurl",
    "etkinlik-url": "konferansurl",
    "degree": "derece",
    "number": "sayı",
    "dead-url": "ölüurl",
    "deadurl": "ölüurl",
    "ölü-url": "ölüurl",
    "bozukurl": "ölüurl",
    "url-durumu": "ölüurl",
    "orig-year": "özgünyıl",
    "origyear": "özgünyıl",
    "journal": "dergi",
    "newspaper": "gazete",
    "magazine": "dergi",
    "work": "iş",
    "periodical": "periyodik",
    "dictionary": "sözlük",
    "mailinglist": "postalistesi",
    "mailing-list": "postalistesi",
    "posta-listesi": "postalistesi",
    "e-posta": "postalistesi",
    "p": "s",
    "page": "sayfa",
    "pp": "ss",
    "pages": "sayfalar",
    "issue": "sayı",
    "numara": "sayı",
    "city": "şehir",
    "series": "seri",
    "series-link": "seribağlantısı",
    "serieslink": "seribağlantısı",
    "seri-bağlantısı": "seribağlantısı",
    "seribağı": "seribağlantısı",
    "series-number": "serinumarası",
    "series-no": "serinumarası",
    "seriesnumber": "serinumarası",
    "seriesno": "serinumarası",
    "seri-numarası": "serinumarası",
    "season": "sezon",
    "class": "sınıf",
    "last-author-amp": "sonyazarve",
    "lastauthoramp": "sonyazarve",
    "no-pp": "ssyok",
    "nopp": "ssyok",
    "date": "tarih",
    "katkı-url": "bölümurl",
    "url-erişimi": "urlerişimi",
    "url-access": "urlerişimi",
    "publisher": "yayıncı",
    "newsgroup": "yayıncı",
    # "yayımcı": "yayıncı", # Not convinced if necessary!
    "habergrubu": "yayıncı",
    "yayın-tarihi": "yayıntarihi",
    "yayın-yeri": "yayınyeri",
    "authors": "yazarlar",
    "people": "yazarlar",
    "credits": "yazarlar",
    "yazars": "yazarlar",
    "katkıdabulunanlar": "yazarlar",
    "muhataplar": "yazarlar",
    "kişiler": "yazarlar",
    "display-authors": "yazarlarıgöster",
    "displayauthors": "yazarlarıgöster",
    "yazarları-göster": "yazarlarıgöster",
    "yazar-göster": "yazarlarıgöster",
    "place": "yer",
    "location": "yer",
    "konum": "yer",
    "year": "yıl",
    "sene": "yıl",
    "time": "tarih",
    ##VITO LIST ENDS HERE

    "URL": "url",
    "archiveURL": "arşivurl",

    "ASIN": "asin",
    "ASIN-TLD": "asin-tld",
    "BIBCODE": "bibcode",
    "DOI": "doi",
    "ISBN": "isbn",
    "ISSN": "issn",
    "JFM": "jfm",
    "JSTOR": "jstor",
    "LCCN": "lccn",
    "MR": "mr",
    "OCLC": "oclc",
    "OL": "ol",
    "OSTI": "osti",
    "PMC": "pmc",
    "PMID": "pmid",
    "SSRN": "ssrn",
    "ZBL": "zbl",

    "last": "soyadı",
    "first": "ad",
    "author-link": "yazarbağı",
    "author-separator": "yazar-ayırıcı",
    "author-name-separator": "yazar-adı-ayırıcı",
    "author-mask": "yazarmaskesi",
    "editor": "editör",
    "editor-last": "editör-soyadı",
    "editor-first": "editör-ad",
    "editor-link": "editör-bağ",
    "publication-date": "yayıntarihi",
    "publication-place": "yayınyeri",
    "lang": "dil",
    "altmetric_isbn": "altmetric_isbn",
    "separator": "ayırıcı",
    "postscript": "postscript",
    "at": "konum",
    "id": "tanıtıcı",

    "transtitle": "çeviribaşlık",

    # 15 May 2020 group
    "accesdate": "erişimtarihi",
    "access date": "erişimtarihi",
    "accestime": "erişimtarihi",
    "accsessdate": "erişimtarihi",

    "jornal": "journal",
    "jour": "journal",
    "journal.": "journal",
    "jurnal": "journal",
    "Magazin": "dergi",

    "langue": "dil",

    "publiser": "yayıncı",
    "publiyayımcısher": "yayıncı",

    "yazarbağ": "yazarbağı",

    ## Makes too many changes
    "url-status": "ölüurl",

    "yazarayırıcı": "yazar-ayırıcı",

    "yardımcı yazar": "yardımcıyazarlar",
    "yardımcı_yazarlar": "yardımcıyazarlar",

    "titel": "başlık",
    " title": "başlık",
    "title ": "başlık",
    "titre": "başlık",

    ## RUSSIAN
    "автор": "yazar",
    "заглавие": "başlık",
    "ссылка": "URL",
    "оригинал": "özgünyıl",
    "здание": "sürüm",
    "ответственный": "ajans",
    "серия": "seri",
    "тираж": "terach",
    "место": "yer",
    "издательство": "yayıncı",
    "выпуск": "sayı ",
    "номер": "numara",
    "год": "yıl",
    "месяц": "ay ",
    "том": "cilt",
    "тип": "başlıktürü",
    "страницы": "sayfalar",
    "страниц": "sayfa",
    "issn": "issn",
    "doi": "doi",
    "bibcode": "bibcode",
    "число": "alıntı",
    "язык": "dil",
    "издание": "baskı",
}

# Regex Citation parameters and translations
ref_regex_list = [
    [r"\byazarlink(\d+)", r"yazarbağı\1"],
    [r"\byazar-bağı(\d+)", r"yazarbağı\1"],
    [r"\btranslator-last(\d+)", r"çevirmen\1-soyadı"],
    [r"\btranslator-first(\d+)", r"çevirmen\1-ad"],
    [r"\beditör-soyadı(\d+)", r"editör\1-soyadı"],
    [r"\beditör-soyad(\d+)", r"editör\1-soyadı"],
    [r"\beditör-link(\d+)", r"editör\1-bağ"],
    [r"\beditör-ad(\d+)", r"editör\1-ad"],
    [r"\beditör(\d+)-son", r"editör\1-soyadı"],
    [r"\beditör(\d+)-ilk", r"editör\1-ad"],
    [r"\beditör(\d+)-bağı", r"editör\1-bağ"],
    [r"\beditor-link(\d+)", r"editör\1-bağ"],
    [r"\beditor-last(\d+)", r"editör\1-soyadı"],
    [r"\beditor-first(\d+)", r"editör\1-ad"],
    [r"\beditor(\d+)-link", r"editör\1-bağ"],
    [r"\beditor(\d+)-last", r"editör\1-soyadı"],
    [r"\beditor(\d+)-first", r"editör\1-ad"],
    [r"\beditor(\d+)-ad", r"editör\1-ad"],
    [r"\beditor(\d+)", r"editör\1"],
    [r"\bauthorlink(\d+)", r"yazarbağı\1"],
    [r"\bauthor-link(\d+)", r"yazarbağı\1"],
    [r"\bauthor-last(\d+)", r"soyadı\1"],
    [r"\bauthor-first(\d+)", r"ad\1"],
    [r"\bauthor(\d+)-link", r"yazarbağı\1"],
    [r"\bauthor(\d+)-last", r"soyadı\1"],
    [r"\bauthor(\d+)-first", r"ad\1"],
    [r"\bauthor(\d+)", r"yazar\1"],
    [r"\bauteur(\d+)", r"yazar\1"],
    [r"\bsoyad(\d+)", r"soyadı\1"],
    [r"\bson(\d+)", r"soyadı\1"],
    [r"\blast(\d+)", r"soyadı\1"],
    [r"\bfirst(\d+)", r"ad\1"],
    [r"\bilk(\d+)", r"ad\1"],
    [r"\badı(\d+)", r"ad\1"],
]

# Regex Citation parameters and translations WITH XLAT
# NOT IMPLEMENTED, i think?
regex_ref_fixes_list_XLAT = {
    r"\byazarlink(\d+)": r"yazarbağı\1",
    r"\byazar-bağı(\d+)": r"yazarbağı\1",
    r"\btranslator-last(\d+)": r"çevirmen\1-soyadı",
    r"\btranslator-first(\d+)": r"çevirmen\1-ad",
    r"\beditör-soyadı(\d+)": r"editör\1-soyadı",
    r"\beditör-soyad(\d+)": r"editör\1-soyadı",
    r"\beditör-link(\d+)": r"editör\1-bağ",
    r"\beditör-ad(\d+)": r"editör\1-ad",
    r"\beditör(\d+)-son": r"editör\1-soyadı",
    r"\beditör(\d+)-ilk": r"editör\1-ad",
    r"\beditör(\d+)-bağı": r"editör\1-bağ",
    r"\beditor-link(\d+)": r"editör\1-soyadı",
    r"\beditor-last(\d+)": r"editör\1-soyadı",
    r"\beditor-first(\d+)": r"editör\1-ad",
    r"\beditor(\d+)-link": r"editör\1-bağ",
    r"\beditor(\d+)-last": r"editör\1-soyadı",
    r"\beditor(\d+)-first": r"editör\1-ad",
    r"\beditor(\d+)-ad": r"editör\1-ad",
    r"\beditor(\d+)": r"editör\1",
    r"\bauthorlink(\d+)": r"yazarbağı\1",
    r"\bauthor-link(\d+)": r"yazarbağı\1",
    r"\bauthor-last(\d+)": r"soyadı\1",
    r"\bauthor-first(\d+)": r"ad\1",
    r"\bauthor(\d+)-link": r"yazarbağı\1",
    r"\bauthor(\d+)-last": r"soyadı\1",
    r"\bauthor(\d+)-first": r"ad\1",
    r"\bauthor(\d+)": r"yazar\1",
    r"\bauteur(\d+)": r"yazar\1",
    r"\bsoyad(\d+)": r"soyadı\1",
    r"\bson(\d+)": r"soyadı\1",
    r"\blast(\d+)": r"soyadı\1",
    r"\bfirst(\d+)": r"ad\1",
    r"\bilk(\d+)": r"ad\1",
    r"\badı(\d+)": r"ad\1",
}

# Date translations
tarih_replace = [
    # English
    ['January', 'Ocak'],
    ['February', 'Şubat'],
    ['March', 'Mart'],
    ['April', 'Nisan'],
    ['May ', 'Mayıs '],
    ['June', 'Haziran'],
    ['July', 'Temmuz'],
    ['August', 'Ağustos'],
    ['September', 'Eylül'],
    ['October', 'Ekim'],
    ['November', 'Kasım'],
    ['December', 'Aralık'],

    # French
    ['janvier', 'Ocak'],
    ['février', 'Şubat'],
    ['mars', 'Mart'],
    ['avril', 'Nisan'],
    ['mai ', 'Mayıs '],
    ['juin', 'Haziran'],
    ['juillet', 'Temmuz'],
    ['août', 'Ağustos'],
    ['septembre', 'Eylül'],
    ['octobre', 'Ekim'],
    ['november', 'Kasım'],
    ['décembre', 'Aralık'],
]

# Regex date translations *Add r"(\d\d\d\d)-(\d\d)-(\d\d)" format
date_regex_replace = [
    [r"January (\d+), (\d\d\d\d)", r"\1 Ocak \2"],
    [r"February (\d+), (\d\d\d\d)", r"\1 Şubat \2"],
    [r"March (\d+), (\d\d\d\d)", r"\1 Mart \2"],
    [r"April (\d+), (\d\d\d\d)", r"\1 Nisan \2"],
    [r"May (\d+), (\d\d\d\d)", r"\1 Mayıs \2"],
    [r"June (\d+), (\d\d\d\d)", r"\1 Haziran \2"],
    [r"July (\d+), (\d\d\d\d)", r"\1 Temmuz \2"],
    [r"August (\d+), (\d\d\d\d)", r"\1 Ağustos \2"],
    [r"September (\d+), (\d\d\d\d)", r"\1 Eylül \2"],
    [r"October (\d+), (\d\d\d\d)", r"\1 Ekim \2"],
    [r"November (\d+), (\d\d\d\d)", r"\1 Kasım \2"],
    [r"December (\d+), (\d\d\d\d)", r"\1 Aralık \2"],

    [r"Jan (\d+), (\d\d\d\d)", r"\1 Ocak \2"],
    [r"Feb (\d+), (\d\d\d\d)", r"\1 Şubat \2"],
    [r"Mar (\d+), (\d\d\d\d)", r"\1 Mart \2"],
    [r"Apr (\d+), (\d\d\d\d)", r"\1 Nisan \2"],
    [r"May (\d+), (\d\d\d\d)", r"\1 Mayıs \2"],
    [r"Jun (\d+), (\d\d\d\d)", r"\1 Haziran \2"],
    [r"Jul (\d+), (\d\d\d\d)", r"\1 Temmuz \2"],
    [r"Aug (\d+), (\d\d\d\d)", r"\1 Ağustos \2"],
    [r"Sep (\d+), (\d\d\d\d)", r"\1 Eylül \2"],
    [r"Oct (\d+), (\d\d\d\d)", r"\1 Ekim \2"],
    [r"Nov (\d+), (\d\d\d\d)", r"\1 Kasım \2"],
    [r"Dec (\d+), (\d\d\d\d)", r"\1 Aralık \2"],

    [r"(\d+) January (\d\d\d\d)", r"\1 Ocak \2"],
    [r"(\d+) February (\d\d\d\d)", r"\1 Şubat \2"],
    [r"(\d+) March (\d\d\d\d)", r"\1 Mart \2"],
    [r"(\d+) April (\d\d\d\d)", r"\1 Nisan \2"],
    [r"(\d+) May (\d\d\d\d)", r"\1 Mayıs \2"],
    [r"(\d+) June (\d\d\d\d)", r"\1 Haziran \2"],
    [r"(\d+) July (\d\d\d\d)", r"\1 Temmuz \2"],
    [r"(\d+) August (\d\d\d\d)", r"\1 Ağustos \2"],
    [r"(\d+) September (\d\d\d\d)", r"\1 Eylül \2"],
    [r"(\d+) October (\d\d\d\d)", r"\1 Ekim \2"],
    [r"(\d+) November (\d\d\d\d)", r"\1 Kasım \2"],
    [r"(\d+) December (\d\d\d\d)", r"\1 Aralık \2"],

    [r"(\d+) Jan (\d\d\d\d)", r"\1 Ocak \2"],
    [r"(\d+) Feb (\d\d\d\d)", r"\1 Şubat \2"],
    [r"(\d+) Mar (\d\d\d\d)", r"\1 Mart \2"],
    [r"(\d+) Apr (\d\d\d\d)", r"\1 Nisan \2"],
    [r"(\d+) May (\d\d\d\d)", r"\1 Mayıs \2"],
    [r"(\d+) Jun (\d\d\d\d)", r"\1 Haziran \2"],
    [r"(\d+) Jul (\d\d\d\d)", r"\1 Temmuz \2"],
    [r"(\d+) Aug (\d\d\d\d)", r"\1 Ağustos \2"],
    [r"(\d+) Sep (\d\d\d\d)", r"\1 Eylül \2"],
    [r"(\d+) Oct (\d\d\d\d)", r"\1 Ekim \2"],
    [r"(\d+) Nov (\d\d\d\d)", r"\1 Kasım \2"],
    [r"(\d+) Dec (\d\d\d\d)", r"\1 Aralık \2"],

    [r"Spring (\d\d\d\d)", r"Bahar \1"],
    [r"Summer (\d\d\d\d)", r"Yaz \1"],
    [r"Fall (\d\d\d\d)", r"Sonbahar \1"],
    [r"Autumn (\d\d\d\d)", r"Sonbahar \1"],
    [r"Winter (\d\d\d\d)", r"Kış \1"],

    [r"0(\d) (Ocak|Şubat|Mart|Nisan|Mayıs|Haziran|Temmuz|Ağustos|Eylül|Ekim|Kasım|Aralık) (\d\d\d\d)", r"\1 \2 \3"],

    [r"(\d+).01.(\d\d\d\d)", r"\1 Ocak \2"],
    [r"(\d+).02.(\d\d\d\d)", r"\1 Şubat \2"],
    [r"(\d+).03.(\d\d\d\d)", r"\1 Mart \2"],
    [r"(\d+).04.(\d\d\d\d)", r"\1 Nisan \2"],
    [r"(\d+).05.(\d\d\d\d)", r"\1 Mayıs \2"],
    [r"(\d+).06.(\d\d\d\d)", r"\1 Haziran \2"],
    [r"(\d+).07.(\d\d\d\d)", r"\1 Temmuz \2"],
    [r"(\d+).08.(\d\d\d\d)", r"\1 Ağustos \2"],
    [r"(\d+).09.(\d\d\d\d)", r"\1 Eylül \2"],
    [r"(\d+).10.(\d\d\d\d)", r"\1 Ekim \2"],
    [r"(\d+).11.(\d\d\d\d)", r"\1 Kasım \2"],
    [r"(\d+).12.(\d\d\d\d)", r"\1 Aralık \2"],

    [r"(\d\d\d\d)-01", r"Ocak \1"],
    [r"(\d\d\d\d)-02", r"Şubat \1"],
    [r"(\d\d\d\d)-03", r"Mart \1"],
    [r"(\d\d\d\d)-04", r"Nisan \1"],
    [r"(\d\d\d\d)-05", r"Mayıs \1"],
    [r"(\d\d\d\d)-06", r"Haziran \1"],
    [r"(\d\d\d\d)-07", r"Temmuz \1"],
    [r"(\d\d\d\d)-08", r"Ağustos \1"],
    [r"(\d\d\d\d)-09", r"Eylül \1"],
    [r"(\d\d\d\d)-10", r"Ekim \1"],
    [r"(\d\d\d\d)-11", r"Kasım \1"],
    [r"(\d\d\d\d)-12", r"Aralık \1"],

    # TODO: TO BE TESTED!
    # [r"(Ocak|Şubat|Mart|Nisan|Mayıs|Haziran|Temmuz|Ağustos|Eylül|Ekim|Kasım|Aralık)\s*0(\d),\s*(\d\d\d\d)", r"\2 \1 \3"],
    # [r"(Ocak|Şubat|Mart|Nisan|Mayıs|Haziran|Temmuz|Ağustos|Eylül|Ekim|Kasım|Aralık)\s*(\d+),\s*(\d\d\d\d)", r"\2 \1 \3"],

]

# Simple keyword replaces. Dict keys are searched and replaced with the dict values.
lang_replace = {
    'Albanian': 'Arnavutça',
    'Arabic': 'Arapça',
    'Armenian': 'Ermenice',
    # 'Azerbaijani':'Azerice' #Dil adı hatası
    'Basque': 'Baskça',
    'Bosnian': 'Boşnakça',
    'Bulgarian': 'Bulgarca',
    'Cantonese': 'Kantonca',
    'Catalan': 'Katalanca',
    'Chinese': 'Çince',
    'Croatian': 'Hırvatça',
    'Czech': 'Çekçe',
    'Danish': 'Danca',
    'Dutch': 'Felemenkçe',
    'English': 'İngilizce',
    'Estonian': 'Estonca',
    'Filipino': 'Filipince',
    'Finnish': 'Fince',
    'French': 'Fransızca',
    'Galician': 'Galiçce',
    'Georgian': 'Gürcüce',
    'German': 'Almanca',
    'Greek': 'Yunanca',
    'Hebrew': 'İbranice',
    'Hungarian': 'Macarca',
    'Icelandic': 'İzlandaca',
    'icelandic': 'İzlandaca',
    'Indonesian': 'Endonezce',
    'indonesian': 'Endonezce',
    'Italian': 'İtalyanca',
    'italian': 'İtalyanca',
    'Japanese': 'Japonca',
    'Korean': 'Korece',
    'Kurdish': 'Kürtçe',
    'Letonian': 'Letonca',
    'Macedonian': 'Makedonca',
    'Malay': 'Malayca',  # - Malaycacacacaca error
    'Montenegrin': 'Karadağca',
    'Norwegian': 'Norveççe',
    'Persian': 'Farsça',
    'Polish': 'Lehçe',
    'Portuguese': 'Portekizce',
    'Romanian': 'Rumence',
    'Rumca': 'Yunanca',
    'Russian': 'Rusça',
    'Serbian': 'Sırpça',
    'Slovakian': 'Slovakça',
    'Slovenian': 'Slovence',
    'Spanish': 'İspanyolca',
    'Swedish': 'İsveççe',
    'Thai': 'Tayca',
    'Turkish': 'Türkçe',
    'Turkmen': 'Türkmence',
    'Ukrainian': 'Ukraynaca',
    'Vietnamese': 'Vietnamca',

    # Freestyle!
    'ingilizce': 'İngilizce',
    '{{Tr icon}}': 'Türkçe',
    '{{Türkçe': 'Türkçe',
    '{{{{Tr}}': 'Türkçe',
    '{{Alm}}': 'Almanca',
    '{{DE}}': 'Almanca',
    '{{De}}': 'Almanca',
    '{{Fra}}': 'Fransızca',
    'Sırpça': 'Sırpça',
    'Karadağca': 'cnr',
    'İsveççe': 'İsveççe',
    'ispanyolca': 'İspanyolca',
    '[[İspanyolca]]': 'İspanyolca',
    'arapça': 'Arapça',
    '{{az}}': 'az',
    'Azerice': 'az',
    'Azerbaycanca': 'az',
    'Azerbaycan Türkçesi': 'az',
    'Beyaz Rusça': 'be',
    'Belarusça': 'be',
    'Faroece': 'fo',
    'en': 'İngilizce',
    'tr': 'Türkçe',
    # 'en-AU': 'İngilizce',
    # 'en-BZ': 'İngilizce',
    # 'en-CA': 'İngilizce',
    # 'en-IE': 'İngilizce',
    # 'en-JM': 'İngilizce',
    # 'en-NZ': 'İngilizce',
    # 'en-ZA': 'İngilizce',
    # 'en-TT': 'İngilizce',
    # 'en-GB': 'İngilizce',
    # 'en-US': 'İngilizce',
    # 'EN-AU': 'İngilizce',
    # 'EN-CA': 'İngilizce',
    # 'EN-GB': 'İngilizce',
    # 'EN-ZA': 'İngilizce',
    # 'EN-NZ': 'İngilizce',
    # 'EN-US': 'İngilizce'
}

# List of month names in order in Turkish
months_list = [
    'Ocak',
    'Şubat',
    'Mart',
    'Nisan',
    'Mayıs',
    'Haziran',
    'Temmuz',
    'Ağustos',
    'Eylül',
    'Ekim',
    'Kasım',
    'Aralık'
]

# List of Citation template fields that contains date values to fix
date_fields = [
    'tarih',
    'arşivtarihi',
    'erişimtarihi',
    'yayıntarihi',
    'diğertarih',
    'ay'
]

# General text replacement fixes
gen_fix_list_XLAT = {
    ## Some replaces like "yurtiçi>yurt içi" has esxceptions like "Yurtiçi Kargo",
    ## These should not be implemented
    # "bir çok" : "birçok",
    # "yurtiçi" : "yurt içi",
    # "yurtdışı": "yurt dışı",
    # "Yurtiçi" : "Yurt içi",
    # "Yurtdışı": "Yurt dışı",

    ## TODO: Regex compiler to be implemented
    # r"\b(B|b)ir(\s)(ç|c)o(k|ğu)":r"\1irço\4",

    ## If we make an error:
    "{{Video kaynağı game": "{{Video oyunu kaynağı",
    "{{video kaynağı game": "{{Video oyunu kaynağı",

    ## Some templates
    "{{Ana madde|": "{{Ana|",
    "{{ana madde|": "{{Ana|",
    "{{fact}}": "{{Kaynak belirt}}",
    "{{Fact}}": "{{Kaynak belirt}}",
    "{{olgu}}": "{{Kaynak belirt}}",
    "{{Olgu}}": "{{Kaynak belirt}}",
    "{{Kaynak göster}}": "{{Kaynak belirt}}",
    "{{kaynak göster}}": "{{Kaynak belirt}}",
    "{{Kaynak belirtilmeli}}": "{{Kaynak belirt}}",
    "{{kaynak belirtilmeli}}": "{{Kaynak belirt}}",
    "<references />": "{{Kaynakça}}",
    "<references/>": "{{Kaynakça}}",
    "{{Reflist}}": "{{Kaynakça}}",
    "{{reflist}}": "{{Kaynakça}}",
    "== Referanslar ==": "== Kaynakça ==",
    "==Referanslar==": "== Kaynakça ==",
    "== References ==": "== Kaynakça ==",
    "{{kaynakça}}{{": """{{Kaynakça}}
{{""",
    "{{Kaynakça}}[[": """{{Kaynakça}}
[[""",
    "{{kaynakça}}[[": """{{Kaynakça}}
[[""",
    "==References==": "== Kaynakça ==",
    # "== Başvurular ==":"== Kaynakça ==",
    # "==Başvurular==":"== Kaynakça ==",
    "== İleri okuma ==": "== Konuyla ilgili yayınlar ==",
    "==İleri okuma==": "== Konuyla ilgili yayınlar ==",
    "{{Film date|": "{{Film tarihi|",
    "{{film date|": "{{Film tarihi|",
    "{{Film date|Year|Month|Day|Location}}": "{{Film tarihi|Yıl|Ay|Gün|Konum}}",
    "{{Film tarihi|Year|Month|Day|Location}}": "{{Film tarihi|Yıl|Ay|Gün|Konum}}",
    "{{End date|": "{{Bitiş tarihi|",
    "{{end date|": "{{Bitiş tarihi|",
    "{{Birth year and age|": "{{Doğum yılı ve yaşı|",
    "{{birth year and age|": "{{Doğum yılı ve yaşı|",
    "{{Death year and age|": "{{Ölüm yılı ve yaşı|",
    "{{death year and age|": "{{Ölüm yılı ve yaşı|",
    "{{Coord|": "{{Koordinat|",
    "{{coord|": "{{Koordinat|",
    "{{Start date and age|": "{{Açılış tarihi ve yaşı|",
    "{{start date and age|": "{{Açılış tarihi ve yaşı|",
    "{{Start date}}": "{{Başlangıç tarihi}}",
    "{{start date}}": "{{Başlangıç tarihi}}",
    "{{End date}}": "{{bitiş tarihi}}",
    "{{end date}}": "{{bitiş tarihi}}",

    "{{Flag|": "{{bayrakülke|",
    "{{flag|": "{{bayrakülke|",
    "{{Flagicon|": "{{bayraksimge|",
    "{{flagicon|": "{{bayraksimge|",
    "{{Flagcountry|": "{{bayrakülke|",
    "{{flagcountry|": "{{bayrakülke|",

    "[[File:": "[[Dosya:",
    "[[Image:": "[[Dosya:",
    "[[Resim:": "[[Dosya:",
    "[[Category:": "[[Kategori:",
    "|thumb|": "|küçükresim|", # Too many unnecessary changes

    "{{Authority control}}": "{{Otorite kontrolü}}",
    "{{Authority Control}}": "{{Otorite kontrolü}}",
    "{{authority control}}": "{{Otorite kontrolü}}",
    "{{authority Control}}": "{{Otorite kontrolü}}",
    "{{Plainlist|": "{{Yalın liste|",
    "{{plainlist|": "{{Yalın liste|",
    "{{Plainlist |": "{{Yalın liste|",
    "{{plainlist |": "{{Yalın liste|",
    "{{Marriage|": "{{Evlilik|",
    "{{marriage|": "{{Evlilik|",
    "{{Marriage |": "{{Evlilik|",
    "{{marriage |": "{{Evlilik|",
    "{{marriage|name|start|end}}": "{{Evlilik|isim|başlangıç|bitiş}}",
    "{{Evlilik|name|start|end}}": "{{Evlilik|isim|başlangıç|bitiş}}",

    "{{IMDb name|": "{{IMDb'de kişi|",
    "{{imdb name|": "{{IMDb'de kişi|",

    # TODO: <nowiki>' tag corrections should be implemented carefully.
    # https://tr.wikipedia.org/w/index.php?title=Samsunspor-Trabzonspor_rekabeti&action=rollback&from=Khutuck&token=c601a48ee2e1f0e3d1704f788a0d42395edab2b9%2B%5C
    # "</nowiki>'":"{{'}}",

    # Nana occupation etc list
    "(magazine)|": "(dergi)|",
    "(journal)|": "(dergi)|",
    "(song)|": "(şarkı)|",
    "(album)|": "(albüm)|",
    " album)|": " albümü)|",
    " song)|": " şarkısı)|",
    "(footballer)|": "(futbolcu)|",
    "(director)|": "(yönetmen)|",
    "(basketball)|": "(basketbolcu)|",
    "(singer)|": "(şarkıcı)|",
    "(actor)|": "(oyuncu)|",
    "(actress)|": "(oyuncu)|",
    "(writer)|": "(yazar)|",
    "(author)|": "(yazar)|",
    "(politician)|": "(siyasetçi)|",
    "(referee)|": "(hakem)|",
    "(chemist)|": "(kimyager)|",
    "(football referee)|": "(futbol hakemi)|",
    "(physicist)|": "(fizikçi)|",
    "(screenwriter)|": "(senarist)|",
    "(cinematographer)|": "(görüntü yönetmeni)|",
    "(journalist)|": "(gazeteci)|",
    "(comics)|": "(çizgi roman)|",
    "(tv series)|": "(dizi)|",
    "(architect)|": "(mimar)|",
    "(producer)|": "(yapımcı)|",
    "(musician)|": "(müzisyen)|",
    "(historian)|": "(tarihçi)|",
    "(designer)|": "(tasarımcı)|",
    "(weighlifter)|": "(halterci)|",
    "(fencer)|": "(eskrimci)|",
    "(swimmer)|": "(yüzücü)|",
    "(shooter)|": "(atıcı)|",
    "(baseball player)|": "(beyzbolcu)|",
    "(cyclist)|": "(bisikletçi)|",
    "(wrestler)|": "(güreşçi)|",
    "(archer)|": "(okçu)|",
    "(rower)|": "(kürekçi)|",
    "(gymnast)|": "(jimnastikçi)|",
    "(golfer)|": "(golfçü)|",

    # Vito KAT changes
    "[[KAT:": "[[:KAT:",

}

# List of English template names to translate
# TODO: Add rstrip() to the function so "Cite web_" also works 
template_replace = [
    ["{{Cite web", "{{Web kaynağı"],
    ["{{Cite journal", "{{Akademik dergi kaynağı"],
    ["{{Cite magazine", "{{Dergi kaynağı"],
    ["{{Cite newspaper", "{{Haber kaynağı"],
    ["{{Cite news", "{{Haber kaynağı"],
    ["{{Cite book", "{{Kitap kaynağı"],
    ["{{Cite video game", "{{Video oyunu kaynağı"],
    ["{{Cite video", "{{Video kaynağı"],
    ["{{Cite encyclopedia", "{{Ansiklopedi kaynağı"],
    ["{{Cite report", "{{Rapor kaynağı"],
    ["{{Cite press release", "{{Basın açıklaması kaynağı"],

    ["{{cite web", "{{Web kaynağı"],
    ["{{cite journal", "{{Akademik dergi kaynağı"],
    ["{{cite magazine", "{{Dergi kaynağı"],
    ["{{cite newspaper", "{{Haber kaynağı"],
    ["{{cite news", "{{Haber kaynağı"],
    ["{{cite book", "{{Kitap kaynağı"],
    ["{{cite video game", "{{Video oyunu kaynağı"],
    ["{{cite video", "{{Video kaynağı"],
    ["{{cite encyclopedia", "{{Ansiklopedi kaynağı"],
    ["{{cite report", "{{Rapor kaynağı"],
    ["{{cite press release", "{{Basın açıklaması kaynağı"],

    ["{{cite web", "{{Web kaynağı"],

    # Cite episode
    ["{{Citeepisode", "{{Bölüm kaynağı"],
    ["{{Citeshow", "{{Bölüm kaynağı"],
    ["{{Cite show", "{{Bölüm kaynağı"],
    ["{{Bölümkaynağı", "{{Bölüm kaynağı"],
    ["{{Dizi kaynağı", "{{Bölüm kaynağı"],
    ["{{Dizikaynağı", "{{Bölüm kaynağı"],
    ["{{Programkaynağı", "{{Bölüm kaynağı"],
    ["{{Program kaynağı", "{{Bölüm kaynağı"],
    ["{{Bölüm Kaynağı", "{{Bölüm kaynağı"],
    ["{{Cite Episode", "{{Bölüm kaynağı"],
    ["{{Cite episode", "{{Bölüm kaynağı"],

    ["{{citeepisode", "{{Bölüm kaynağı"],
    ["{{citeshow", "{{Bölüm kaynağı"],
    ["{{cite show", "{{Bölüm kaynağı"],
    ["{{bölümkaynağı", "{{Bölüm kaynağı"],
    ["{{dizi kaynağı", "{{Bölüm kaynağı"],
    ["{{dizikaynağı", "{{Bölüm kaynağı"],
    ["{{programkaynağı", "{{Bölüm kaynağı"],
    ["{{program kaynağı", "{{Bölüm kaynağı"],
    ["{{bölüm Kaynağı", "{{Bölüm kaynağı"],
    ["{{cite Episode", "{{Bölüm kaynağı"],
    ["{{cite episode", "{{Bölüm kaynağı"],

    # Russian
    ["{{книга", "{{Kitap kaynağı"],
]

# List of Citation templates
template_replace_XLAT = {
    "{{Cite web": "{{Web kaynağı",
    "{{Cite journal": "{{Akademik dergi kaynağı",
    "{{Cite magazine": "{{Dergi kaynağı",
    "{{Cite newspaper": "{{Haber kaynağı",
    "{{Cite news": "{{Haber kaynağı",
    "{{Cite book": "{{Kitap kaynağı",
    "{{Cite video game": "{{Video oyunu kaynağı",
    "{{Cite video": "{{Video kaynağı",
    "{{Cite encyclopedia": "{{Ansiklopedi kaynağı",
    "{{Cite report": "{{Rapor kaynağı",
    "{{Cite press release": "{{Basın açıklaması kaynağı",

    "{{cite web": "{{Web kaynağı",
    "{{cite journal": "{{Akademik dergi kaynağı",
    "{{cite magazine": "{{Dergi kaynağı",
    "{{cite newspaper": "{{Haber kaynağı",
    "{{cite news": "{{Haber kaynağı",
    "{{cite book": "{{Kitap kaynağı",
    "{{cite video game": "{{Video oyunu kaynağı",
    "{{cite video": "{{Video kaynağı",
    "{{cite encyclopedia": "{{Ansiklopedi kaynağı",
    "{{cite report": "{{Rapor kaynağı",
    "{{cite press release": "{{Basın açıklaması kaynağı",
}

## Dictionary-based parameter specific replaces.
## Dict keys should have no space, we remove the spaces in the match function.
parameter_based_fixes = {
    'yer': {
        "Londra,England": "Londra",
        "LosAngeles,California": "Los Angeles, Kaliforniya",
        "NewYorkCity": "New York, NY",
        "NewYorkCity,NewYork": "New York, NY",
        "NewYork,NYUSA": "New York, NY",
        "NewYork,USA": "New York, NY",
        "[[Santa Barbara, California]]": "Santa Barbara, Kaliforniya",

        "Athens": "Atina",
        "Baghdad": "Bağdat",
        "Barysaw": "Borisov",
        "Beersheba": "Beerşeba",
        "Beijing": "Pekin",
        "Belgrade": "Belgrad",
        "Bethlehem": "Beytüllahim",
        "Brussels": "Brüksel",
        "Bucharest": "Bükreş",
        "Budapest": "Budapeşte",
        "Cairo": "Kahire",
        "Chelyabinsk": "Çelyabinsk",
        "Chişinău": "Kişinev",
        "Cologne": "Köln",
        "Constanţa": "Köstence",
        "Copenhagen": "Kopenhag",
        "Damascus": "Şam",
        "DaresSalaam": "Darüsselam",
        "DenHaag": "Lahey",
        "Dhaka": "Dakka",
        "Florence": "Floransa",
        "Geneva": "Cenevre",
        "Ghent": "Gent",
        "Giza": "Gize",
        "Gothenburg": "Göteborg",
        "Haifa": "Hayfa",
        "Istanbul": "İstanbul",
        "Izmir": "İzmir",
        "Jakarta": "Cakarta",
        "Jeddah": "Cidde",
        "Jerusalem": "Kudüs",
        "Khartoum": "Hartum",
        "Khimki": "Himki",
        "Kinshasa": "Kinşasa",
        "Kolkata": "Kalküta",
        "Lahore": "Lahor",
        "Larnaca": "Larnaka",
        "Lausanne": "Lozan",
        "Liege": "Liège",
        "Lisbon": "Lizbon",
        "London": "Londra",
        "Lucerne": "Luzern",
        "Moscow": "Moskova",
        "Nicosia": "Lefkoşa",
        "Nuremberg": "Nürnberg",
        "Padua": "Padova",
        "Plovdiv": "Filibe",
        "Prague": "Prag",
        "Riyadh": "Riyad",
        "Sarajevo": "Saraybosna",
        "Seoul": "Seul",
        "Seville": "Sevilla",
        "Shanghai": "Şanghay",
        "Sofia": "Sofya",
        "StaraZagora": "Eski Zağra",
        "Sydney": "Sidney",
        "Tbilisi": "Tiflis",
        "Tehran": "Tahran",
        "TheHague": "Lahey",
        "Thessaloniki": "Selanik",
        "Tirana": "Tiran",
        "Turin": "Torino",
        "Venice": "Venedik",
        "Vienna": "Viyana",
        "Warsaw": "Varşova",
        "Yerevan": "Erivan",

        "UK": "Birleşik Krallık",
        "UnitedKingdom": "Birleşik Krallık",
        "England": "İngiltere",
        "ENGLAND": "İngiltere",
        "USA": "ABD",
        "UnitedStates": "ABD",
        "Spain": "İspanya",
        "Brazil": "Brezilya",
    },
    'ay': {
        "Jan": "Ocak",
        "Feb": "Şubat",
        "Mar": "Mart",
        "Apr": "Nisan",
        "May": "Mayıs",
        "Jun": "Haziran",
        "Jul": "Temmuz",
        "Aug": "Ağustos",
        "Sep": "Eylül",
        "Oct": "Ekim",
        "Nov": "Kasım",
        "Dec": "Aralık",
        "Jan.": "Ocak",
        "Feb.": "Şubat",
        "Mar.": "Mart",
        "Apr.": "Nisan",
        "May.": "Mayıs",
        "Jun.": "Haziran",
        "Jul.": "Temmuz",
        "Aug.": "Ağustos",
        "Sep.": "Eylül",
        "Oct.": "Ekim",
        "Nov.": "Kasım",
        "Dec.": "Aralık",
        "1": "Ocak",
        "2": "Şubat",
        "3": "Mart",
        "4": "Nisan",
        "5": "Mayıs",
        "6": "Haziran",
        "7": "Temmuz",
        "8": "Ağustos",
        "9": "Eylül",
        "10": "Ekim",
        "11": "Kasım",
        "12": "Aralık",
        "Spring": "İlkbahar",
        "Summer": "Yaz",
        "Fall": "Sonbahar",
        "Autumn": "Sonbahar",
        "Winter": "Kış",
    },
    "ölüurl": {
        "yes": "evet",
        "no": "hayır",
        "live": "hayır",
        "dead": "evet",
    },
    "sonyazarve": {
        "yes": "evet",
        "y": "evet",
        "no": "hayır",
        "n": "hayır",
    },
    "urlerişimi": {
        "subscription":"aboneli",
        "registration":"kayıtlı",
    },
}

## Dictionary-based parameter specific PARTIAL replaces.
## Dict keys should have no space, we remove the spaces in the match function.
parameter_based_fixes_partial = {
    ## Not-full match simple text replace for specific parameters
    ## USE VERY CAREFULLY!
    # "sayfa"   : ["–", "-"],
    # "p"       : ["–", "-"],
    # "page"    : ["–", "-"],
    # "s"       : ["–", "-"],
    "sayfalar": ["–", "-"],
    "pp": ["–", "-"],
    "pages": ["–", "-"],
    "ss": ["–", "-"],
}

## TODO: Hunting grounds!
## https://tr.wikipedia.org/wiki/Vikipedi:AutoWikiBrowser/Typos

## TODO:
# "Bilinmeyen parametre |archiveURL= görmezden gelindi (|archiveurl= kullanımı öneriliyor)"
# "Bilinmeyen parametre |deadURL= görmezden gelindi (|deadurl= kullanımı öneriliyor)"


botdata = {
    "twitter_login": twitter_login,
    "code_locale": code_locale,
    "lang_parameter": lang_parameter,
    "templates_list": templates_list,
    "ref_general_list": ref_general_list,
    "ref_regex_list": ref_regex_list,
    "regex_ref_fixes_list_XLAT": regex_ref_fixes_list_XLAT,
    "tarih_replace": tarih_replace,
    "date_regex_replace": date_regex_replace,
    "lang_replace": lang_replace,
    "months_list": months_list,
    "date_fields": date_fields,
    "gen_fix_list_XLAT": gen_fix_list_XLAT,
    "template_replace": template_replace,
    "template_replace_XLAT": template_replace_XLAT,
    "parameter_based_fixes": parameter_based_fixes,
    "parameter_based_fixes_partial": parameter_based_fixes_partial
}