static isSiblingOf(localeA, localeB) {
    const LanguageUtils = shaka.util.LanguageUtils;

    // Even through they SHOULD already be normalized, let's just be safe and
    // do it again.
    localeA = LanguageUtils.normalize(localeA);
    localeB = LanguageUtils.normalize(localeB);

    // Get all components. This should only be language and region
    // since we do not support dialect.
    /** @type {!Array<string>} */
    const localeAComponents = LanguageUtils.disassembleLocale_(localeA);
    /** @type {!Array<string>} */
    const localeBComponents = LanguageUtils.disassembleLocale_(localeB);

    return localeAComponents.length == 2 &&
           localeBComponents.length == 2 &&
           localeAComponents[0] == localeBComponents[0];
  }
Check if |localeA| shares the same parent with |localeB|. Since we don't
support dialect, we will only look at language and region. For two locales
to be siblings:
   - Both must have language-components
   - Both must have region-components
   - Both must have the same language-component

Example:
 Locale A | Locale B | Siblings?
 --------------------------------------------
 en-US    | en-US    | yes
 en-US    | en-CA    | yes
 en-US    | en       | no
 en       | en-US    | no
 en       | en       | no
 en       | fr       | no

@param {string} localeA
@param {string} localeB
@return {boolean}
@export