generateTimeZoneNames(oTimezoneNames) {
		// For the arabic locale all time zones (except Etc/UTC) have an exemplar city and they are collected in
		// this._aCompleteCLDRTimezoneIDs. Use this list to generate the time zone name from the key (e.g. Dublin)
		// if there is no "exemplarCity" for some time zones in some locales
		// (e.g. {Europe : {Dublin : {IST: "Irish Standard Time"}}}).
		this._aCompleteCLDRTimezoneIDs.forEach((sTimezoneID) => {
			const aTzIDParts = sTimezoneID.split("/");
			let oIANATimezones = oTimezoneNames;
			aTzIDParts.forEach((sPart, i) => {
				const bLastPart = i === aTzIDParts.length - 1;
				if (!oIANATimezones[sPart] && !bLastPart) {
					oIANATimezones[sPart] = {};
				} else if (bLastPart && typeof oIANATimezones[sPart] !== "string") {
					oIANATimezones[sPart] = sPart.replaceAll("_", " ");
				}
				oIANATimezones = oIANATimezones[sPart];
			});
		});
	}
Generates an object containing the existing time zone names of a locale and adds missing ones.

@param {Object<string, object>} oTimezoneNames
  The <code>timezoneNames</code> reference object of the locale containing the time zone IDs in a JSON structure