moveCLDRTranslationToABAPTimezoneID(oTimezoneNames) {
		const mCLDR2ABAP = this.getCLDR2ABAPTimezoneMapping();
		Object.keys(mCLDR2ABAP).forEach((sCLDRTimezoneID) => {

			// CLDR element in oTimezoneNames and key
			const aCLDRTimezones = sCLDRTimezoneID.split("/");
			const sLastKeyCLDR = aCLDRTimezones.pop();
			const oCurrentElementCLDR = aCLDRTimezones.reduce((oPrevious, sKey) => {
				return oPrevious[sKey];
			}, oTimezoneNames);

			// ABAP element in oTimezoneNames and key
			const aABAPTimezones = mCLDR2ABAP[sCLDRTimezoneID].split("/");
			const sLastKeyABAP = aABAPTimezones.pop();
			const oCurrentElementABAP = aABAPTimezones.reduce((oPrevious, sKey) => {
				return oPrevious[sKey];
			}, oTimezoneNames);

			// Do not overwrite existing translations e.g:
			// CLDR provides a translation for Pacific/Enderbury, but the mapping of BCP47 defines Pacific/Kanton
			// as the preferred IANA time zone ID.
			// Pacific/Kanton does have a translation itself in CLDR data thus, it must not be overwritten.
			if (!oCurrentElementABAP[sLastKeyABAP]) {
				oCurrentElementABAP[sLastKeyABAP] = oCurrentElementCLDR[sLastKeyCLDR];
			}
			delete oCurrentElementCLDR[sLastKeyCLDR];
		});
	}
Moves a CLDR time zone translation to its ABAP timezone ID in the given object.

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