docs: public static String cleanMonth(String verbatimEventDate) {
      	String cleaned = verbatimEventDate;
      	if (!isEmpty(verbatimEventDate)) { 
      		// Some variant abbreviations
      		cleaned = cleaned.replace("Sept.", "Sep.");
      		cleaned = cleaned.replace("sEPT.", "Sep.");
      		cleaned = cleaned.replace("SEpt.", "Sep.");
      		cleaned = cleaned.replace("Sept ", "Sep. ");
      		cleaned = cleaned.replace("Sept-", "Sep-");
      		cleaned = cleaned.replace("Sept,", "Sep.,");
      		cleaned = cleaned.replace("Sept/", "Sep./");
      		cleaned = cleaned.replace("OCt.", "Oct.");
      		cleaned = cleaned.replace("OCt-", "Oct-");
      		cleaned = cleaned.replace("OCt ", "Oct ");
      		cleaned = cleaned.replace("JAn.", "Jan.");
      		cleaned = cleaned.replace("FEb.", "Feb.");
      		cleaned = cleaned.replace("MAr.", "Mar.");
      		cleaned = cleaned.replace("APr.", "APr.");
      		cleaned = cleaned.replace("JUn.", "Jun.");
      		cleaned = cleaned.replace("JUl.", "Jul.");
      		cleaned = cleaned.replace("AUg.", "Aug.");
      		cleaned = cleaned.replace("NOv.", "Nov.");
      		cleaned = cleaned.replace("DEc.", "Dec.");
      		cleaned = cleaned.replace("  ", " ").trim();
      		cleaned = cleaned.replace(" ,", ",");
      		cleaned = cleaned.replace(" - ", "-");
      		cleaned = cleaned.replace("- ", "-");
      		cleaned = cleaned.replace(" -", "-");
      		// Strip off a trailing period after a final year
      		if (cleaned.matches("^.*[0-9]{4}[.]$")) { 
      			cleaned = cleaned.replaceAll("[.]$", "");
      		}
      		cleaned = cleaned.replace("Jly. ", "July ");
      		cleaned = cleaned.replace("Jly ", "July ");
      		cleaned = cleaned.replace("Febr.", "February");
      		// Some misspellings
      		cleaned = cleaned.replace("Jully ", "July ");
      		cleaned = cleaned.replace("Septmber", "September");
      		cleaned = cleaned.replace("Febuary", "February");
      		cleaned = cleaned.replace("Janauary", "January");
  
      		// Joda date time parsing as used here, is case sensitive for months.
      		// Put cases of alternative spellings, missing accents, and capitalization into
      		// a form that Joda will parse.
  
      		cleaned = cleaned.replace("DECEMBER", "December");
      		cleaned = cleaned.replace("NOVEMBER", "November");
      		cleaned = cleaned.replace("OCTOBER", "October");
      		cleaned = cleaned.replace("SEPTEMBER", "September");
      		cleaned = cleaned.replace("AUGUST", "August");
      		cleaned = cleaned.replace("JULY", "July");
      		cleaned = cleaned.replace("JUNE", "June");
      		cleaned = cleaned.replace("MAY", "May");
      		cleaned = cleaned.replace("APRIL", "April");
      		cleaned = cleaned.replace("MARCH", "March");
      		cleaned = cleaned.replace("FEBRUARY", "February");
      		cleaned = cleaned.replace("JANUARY", "January");	    	
      		
      		cleaned = cleaned.replace("DEcember", "December");
      		cleaned = cleaned.replace("NOvember", "November");
      		cleaned = cleaned.replace("OCtober", "October");
      		cleaned = cleaned.replace("SEptember", "September");
      		cleaned = cleaned.replace("AUgust", "August");
      		cleaned = cleaned.replace("JUly", "July");
      		cleaned = cleaned.replace("JUne", "June");
      		cleaned = cleaned.replace("MAy", "May");
      		cleaned = cleaned.replace("APril", "April");
      		cleaned = cleaned.replace("MArch", "March");
      		cleaned = cleaned.replace("FEbruary", "February");
      		cleaned = cleaned.replace("JAnuary", "January");	    		
      		
      		cleaned = cleaned.replace("DEC", "Dec");
      		cleaned = cleaned.replace("NOV", "Nov");
      		cleaned = cleaned.replace("OCT", "Oct");
      		cleaned = cleaned.replace("SEP", "Sep");
      		cleaned = cleaned.replace("SEP", "Sep");
      		cleaned = cleaned.replace("AUG", "Aug");
      		cleaned = cleaned.replace("JUL", "Jul");
      		cleaned = cleaned.replace("JUN", "Jun");
      		cleaned = cleaned.replace("APR", "Apr");
      		cleaned = cleaned.replace("MAR", "Mar");
      		cleaned = cleaned.replace("FEB", "Feb");
      		cleaned = cleaned.replace("JAN", "Jan");	 
      		
      		cleaned = cleaned.replace("dECEMBER", "December");
      		cleaned = cleaned.replace("nOVEMBER", "November");
      		cleaned = cleaned.replace("oCTOBER", "October");
      		cleaned = cleaned.replace("sEPTEMBER", "September");
      		cleaned = cleaned.replace("aUGUST", "August");
      		cleaned = cleaned.replace("jULY", "July");
      		cleaned = cleaned.replace("jUNE", "June");
      		cleaned = cleaned.replace("mAY", "May");
      		cleaned = cleaned.replace("aPRIL", "April");
      		cleaned = cleaned.replace("mARCH", "March");
      		cleaned = cleaned.replace("fEBRUARY", "February");
      		cleaned = cleaned.replace("jANUARY", "January");    		
              // uncommon abbreviations
      		cleaned = cleaned.replace("Mrch", "March");
      		cleaned = cleaned.replace("Jnry", "January");
      		
      		// Italian months are lower case, if capitalized, skip a step and go right to english.
      		cleaned = cleaned.replace("Dicembre", "December");
      		cleaned = cleaned.replace("Novembre", "November");
      		cleaned = cleaned.replace("Ottobre", "October");
      		cleaned = cleaned.replace("Settembre", "September");
      		cleaned = cleaned.replace("Agosto", "August");
      		cleaned = cleaned.replace("Luglio", "July");
      		cleaned = cleaned.replace("Giugno", "June");
      		cleaned = cleaned.replace("Maggio", "May");
      		cleaned = cleaned.replace("Aprile", "April");
      		cleaned = cleaned.replace("Marzo", "March");
      		cleaned = cleaned.replace("Febbraio", "February");
      		cleaned = cleaned.replace("Gennaio", "January");			
      		// likewise french, also handle omitted accents
      		cleaned = cleaned.replace("Janvier", "January");
      		cleaned = cleaned.replace("Février", "February");
      		cleaned = cleaned.replace("Fevrier", "February");
      		cleaned = cleaned.replace("fevrier", "February");
      		cleaned = cleaned.replace("Mars", "March");
      		cleaned = cleaned.replace("Avril", "April");
      		cleaned = cleaned.replace("Mai", "May");
      		cleaned = cleaned.replace("Juin", "June");
      		cleaned = cleaned.replace("Juillet", "July");
      		cleaned = cleaned.replace("Août", "August");
      		cleaned = cleaned.replace("Aout", "August");
      		cleaned = cleaned.replace("aout", "August");
      		cleaned = cleaned.replace("Septembre", "September");
      		cleaned = cleaned.replace("Octobre", "October");
      		cleaned = cleaned.replace("Novembre", "November");
      		cleaned = cleaned.replace("Décembre", "December");
      		cleaned = cleaned.replace("Decembre", "December");
      		cleaned = cleaned.replace("decembre", "December");
      		// likewise spanish
      		cleaned = cleaned.replace("Enero", "January");
      		cleaned = cleaned.replace("Febrero", "February");
      		cleaned = cleaned.replace("Marzo", "March");
      		cleaned = cleaned.replace("Abril", "April");
      		cleaned = cleaned.replace("Mayo", "May");
      		cleaned = cleaned.replace("Junio", "June");
      		cleaned = cleaned.replace("Julio", "July");
      		cleaned = cleaned.replace("Agosto", "August");
      		cleaned = cleaned.replace("Septiembre", "September");
      		cleaned = cleaned.replace("Setiembre", "September");  // alternative spelling
      		cleaned = cleaned.replace("setiembre", "September");
      		cleaned = cleaned.replace("Octubre", "October");
      		cleaned = cleaned.replace("Noviembre", "November");
      		cleaned = cleaned.replace("Diciembre", "December");
      		
      		// Translate roman numerals to months, with care not to modify month names.
      		
      		cleaned = cleaned.replace(".i.", ".January.");
      		cleaned = cleaned.replace("/i/", "/January/");
      		cleaned = cleaned.replace(" i ", " January ");
      		cleaned = cleaned.replace(".ii.", ".February.");
      		cleaned = cleaned.replace("/ii/", "/February/");
      		cleaned = cleaned.replace(" ii ", " February ");	
      		cleaned = cleaned.replace(".v.", ".May.");
      		cleaned = cleaned.replace("/v/", "/May/");
      		cleaned = cleaned.replace(" v ", " May ");
      		cleaned = cleaned.replace(".iv.", ".April.");
      		cleaned = cleaned.replace("/iv/", "/April/");
      		cleaned = cleaned.replace(" iv ", " April ");	
      		cleaned = cleaned.replace(".vi.", ".June.");
      		cleaned = cleaned.replace("/vi/", "/June/");
      		cleaned = cleaned.replace(" vi ", " June ");	
      		cleaned = cleaned.replace(".x.", ".October.");
      		cleaned = cleaned.replace("/x/", "/October/");
      		cleaned = cleaned.replace(" x ", " October ");
      		cleaned = cleaned.replace(".ix.", ".September.");
      		cleaned = cleaned.replace("/ix/", "/September/");
      		cleaned = cleaned.replace(" ix ", " September ");	
      		cleaned = cleaned.replace("/xi/", "/November/");
      		cleaned = cleaned.replace(".xi.", ".November.");
      		cleaned = cleaned.replace(" xi ", " November ");		
      		cleaned = cleaned.replace(",i,", ".January.");
      		cleaned = cleaned.replace("-i-", " January ");
      		cleaned = cleaned.replace(",ii,", ".February.");
      		cleaned = cleaned.replace("-ii-", " February ");	
      		cleaned = cleaned.replace(",v,", ".May.");
      		cleaned = cleaned.replace("-v-", " May ");
      		cleaned = cleaned.replace(",iv,", ".April.");
      		cleaned = cleaned.replace("-iv-", " April ");	
      		cleaned = cleaned.replace(",vi,", ".June.");
      		cleaned = cleaned.replace("-vi-", " June ");	
      		cleaned = cleaned.replace(",x,", ".October.");
      		cleaned = cleaned.replace("-x-", " October ");
      		cleaned = cleaned.replace(",ix,", ".September.");
      		cleaned = cleaned.replace("-ix-", " September ");	
      		cleaned = cleaned.replace(",xi,", ".November.");
      		cleaned = cleaned.replace("-xi-", " November ");		
      		
      		// many cases below here are potentially problematic and should probably be 
      		// replaced by regular expressions instead of simple replace (order matters).
      		cleaned = cleaned.replace("XII", "December");
      		cleaned = cleaned.replace("xii", "December");
      		cleaned = cleaned.replace("XI", "November");
      		cleaned = cleaned.replace("xi", "November");
      		cleaned = cleaned.replace("IX", "September");
      		cleaned = cleaned.replace("X", "October");
      		cleaned = cleaned.replace("VIII", "August");
      		cleaned = cleaned.replace("viii", "August");
      		cleaned = cleaned.replace("VII", "July");
      		cleaned = cleaned.replace("vii", "July");
      		cleaned = cleaned.replace("VI", "June");
      		if (!cleaned.contains("janvier")) { 
      		    cleaned = cleaned.replace("vi", "June");
      		}
      		cleaned = cleaned.replace("IV", "April");
      		cleaned = cleaned.replace("iv", "April");
      		cleaned = cleaned.replace("V", "May");
      		cleaned = cleaned.replace("III", "March");
      		cleaned = cleaned.replace("iii", "March");
      		cleaned = cleaned.replace("II", "February");
      		cleaned = cleaned.replace("ii", "February");
      		cleaned = cleaned.replace("I", "January");
      		cleaned = cleaned.replace(".vi", ".June");
      		cleaned = cleaned.replace(".ix", ".September");
      		cleaned = cleaned.replace(".i", ".January");
      		cleaned = cleaned.replace(".v", ".May");
      		cleaned = cleaned.replace(".x", ".October");
      		cleaned = cleaned.replace(" vi", " June");
      		cleaned = cleaned.replace(" ix", " September");
      		cleaned = cleaned.replace(" i", " January");
      		cleaned = cleaned.replace(" v", " May");
      		cleaned = cleaned.replace(" x", " October");
  
      		cleaned = cleaned.replace("月", "");
      		cleaned = cleaned.replace("三", "March");
      		cleaned = cleaned.replace("四", "April");
      		cleaned = cleaned.replace("五", "May");
      		cleaned = cleaned.replace("六", "June");
      		cleaned = cleaned.replace("七", "July");
      		cleaned = cleaned.replace("八", "August");
      		cleaned = cleaned.replace("九", "September");
      		cleaned = cleaned.replace("十一", "November");
      		cleaned = cleaned.replace("十二", "December");
      		cleaned = cleaned.replace("十", "October");
      		cleaned = cleaned.replace("一", "January");    		
      		cleaned = cleaned.replace("二", "February");
  
      	}
      	return cleaned;
      }