code: function localizeRelaxed( languageTag, i18nValue, optionalFallback ) {
        assert( languageTag ).hasType( String );
        if( !i18nValue || primitives[ typeof i18nValue ] ) {
           // Value is not i18n (app does not use it)
           return i18nValue;
        }
  
        const tagParts = languageTag ? languageTag.replace( /-/g, '_' ).split( '_' ) : [];
        while( tagParts.length > 0 ) {
           const currentLocaleTag = tagParts.join( '-' );
           const value = localizeStrict( currentLocaleTag, i18nValue );
           if( value !== undefined ) {
              return value;
           }
           tagParts.pop();
        }
  
        if( fallbackTag === undefined ) {
           fallbackTag = configuration.get( 'i18n.fallback' );
        }
  
        return ( fallbackTag && localizeStrict( fallbackTag, i18nValue ) ) || optionalFallback;
     }
docs: ///////////////////////////////////////////////////////////////////////////////////////////////////////// 
  For controls (such as a date-picker), we cannot anticipate all required language tags, as they may be
  app-specific. The relaxed localize behaves like localize if an exact localization is available. If not,
  the language tag is successively generalized by stripping off the rightmost sub-tags until a
  localization is found. Eventually, a fallback ('en') is used.
  
  @param {String} languageTag
  the languageTag to lookup a localization with. Maybe `undefined`, if the value is not i18n (app does
  not use i18n)
  @param {*} i18nValue
  a possibly internationalized value:
  - when passing a primitive value, it is returned as-is
  - when passing an object, the `languageTag` is used to look up a localization within that object
  @param {*} [optionalFallback]
  a value to use if no localization is available for the given language tag
  
  @return {*}
  the localized value if found, the fallback (or `undefined`) otherwise