function toTitleCaseTimezoneLocation(location) {
  var match = InternalRegExpMatch(GetTimezoneNameLocationPartRE(), location)
  if (IS_NULL(match)) throw MakeRangeError(kExpectedLocation, location);

  var result = toTitleCaseWord(match[1]);
  if (!IS_UNDEFINED(match[2]) && 2 < match.length) {
    // The first character is a separator, '_' or '-'.
    // None of IANA zone names has both '_' and '-'.
    var separator = %_Call(StringSubstring, match[2], 0, 1);
    var parts = %_Call(StringSplit, match[2], separator);
    for (var i = 1; i < parts.length; i++) {
      var part = parts[i]
      var lowercasedPart = %StringToLowerCase(part);
      result = result + separator +
          ((lowercasedPart !== 'es' &&
            lowercasedPart !== 'of' && lowercasedPart !== 'au') ?
          toTitleCaseWord(part) : lowercasedPart);
    }
  }
  return result;
}
function toTitleCaseTimezoneLocation(location) {
  var match = InternalRegExpMatch(GetTimezoneNameLocationPartRE(), location)
  if (IS_NULL(match)) throw MakeRangeError(kExpectedLocation, location);

  var result = toTitleCaseWord(match[1]);
  if (!IS_UNDEFINED(match[2]) && 2 < match.length) {
    
    
    var separator = %_Call(StringSubstring, match[2], 0, 1);
    var parts = %_Call(StringSplit, match[2], separator);
    for (var i = 1; i < parts.length; i++) {
      var part = parts[i]
      var lowercasedPart = %StringToLowerCase(part);
      result = result + separator +
          ((lowercasedPart !== 'es' &&
            lowercasedPart !== 'of' && lowercasedPart !== 'au') ?
          toTitleCaseWord(part) : lowercasedPart);
    }
  }
  return result;
}
function toTitleCaseTimezoneLocation ( location ) { var match = InternalRegExpMatch ( GetTimezoneNameLocationPartRE ( ) , location ) if ( IS_NULL ( match ) ) throw MakeRangeError ( kExpectedLocation , location ) ; var result = toTitleCaseWord ( match [ 1 ] ) ; if ( ! IS_UNDEFINED ( match [ 2 ] ) && 2 < match . length ) { // The first character is a separator, '_' or '-'. // None of IANA zone names has both '_' and '-'. var separator = % _Call ( StringSubstring , match [ 2 ] , 0 , 1 ) ; var parts = % _Call ( StringSplit , match [ 2 ] , separator ) ; for ( var i = 1 ; i < parts . length ; i ++ ) { var part = parts [ i ] var lowercasedPart = % StringToLowerCase ( part ) ; result = result + separator + ( ( lowercasedPart !== 'es' && lowercasedPart !== 'of' && lowercasedPart !== 'au' ) ? toTitleCaseWord ( part ) : lowercasedPart ) ; } } return result ; }
Returns titlecased location, bueNos_airES -> Buenos_Aires
or ho_cHi_minH -> Ho_Chi_Minh. It is locale-agnostic and only
deals with ASCII only characters.
'of', 'au' and 'es' are special-cased and lowercased.
Returns titlecased location bueNos_airES - > Buenos_Aires or ho_cHi_minH - > Ho_Chi_Minh . It is locale - agnostic and only deals with ASCII only characters . of au and es are special - cased and lowercased .