function lookupSupportedLocalesOf(requestedLocales, availableLocales) {
  var matchedLocales = new InternalArray();
  for (var i = 0; i < requestedLocales.length; ++i) {
    // Remove -u- extension.
    var locale = InternalRegExpReplace(
        GetUnicodeExtensionRE(), requestedLocales[i], '');
    do {
      if (!IS_UNDEFINED(availableLocales[locale])) {
        // Push requested locale not the resolved one.
        %_Call(ArrayPush, matchedLocales, requestedLocales[i]);
        break;
      }
      // Truncate locale if possible, if not break.
      var pos = %_Call(StringLastIndexOf, locale, '-');
      if (pos === -1) {
        break;
      }
      locale = %_Call(StringSubstring, locale, 0, pos);
    } while (true);
  }

  return matchedLocales;
}
function lookupSupportedLocalesOf(requestedLocales, availableLocales) {
  var matchedLocales = new InternalArray();
  for (var i = 0; i < requestedLocales.length; ++i) {
    
    var locale = InternalRegExpReplace(
        GetUnicodeExtensionRE(), requestedLocales[i], '');
    do {
      if (!IS_UNDEFINED(availableLocales[locale])) {
        
        %_Call(ArrayPush, matchedLocales, requestedLocales[i]);
        break;
      }
      
      var pos = %_Call(StringLastIndexOf, locale, '-');
      if (pos === -1) {
        break;
      }
      locale = %_Call(StringSubstring, locale, 0, pos);
    } while (true);
  }

  return matchedLocales;
}
function lookupSupportedLocalesOf ( requestedLocales , availableLocales ) { var matchedLocales = new InternalArray ( ) ; for ( var i = 0 ; i < requestedLocales . length ; ++ i ) { // Remove -u- extension. var locale = InternalRegExpReplace ( GetUnicodeExtensionRE ( ) , requestedLocales [ i ] , '' ) ; do { if ( ! IS_UNDEFINED ( availableLocales [ locale ] ) ) { // Push requested locale not the resolved one. % _Call ( ArrayPush , matchedLocales , requestedLocales [ i ] ) ; break ; } // Truncate locale if possible, if not break. var pos = % _Call ( StringLastIndexOf , locale , '-' ) ; if ( pos === - 1 ) { break ; } locale = % _Call ( StringSubstring , locale , 0 , pos ) ; } while ( true ) ; } return matchedLocales ; }
Returns the subset of the provided BCP 47 language priority list for which
this service has a matching locale when using the BCP 47 Lookup algorithm.
Locales appear in the same order in the returned list as in the input list.
Returns the subset of the provided BCP 47 language priority list for which this service has a matching locale when using the BCP 47 Lookup algorithm . Locales appear in the same order in the returned list as in the input list .