public static function TryParseArray(
      &$refLocale, array $requestData, array $acceptedKeys = [ 'locale', 'language', 'lang', 'loc', 'lc', 'lng' ] )
      : bool
   {

      if ( \count( $requestData ) < 1 )
      {
         return false;
      }

      $requestData  = \array_change_key_case( $requestData , \CASE_LOWER );
      $acceptedKeys = \array_change_key_case( $acceptedKeys, \CASE_LOWER );
      $language     = null;

      foreach ( $acceptedKeys as $key )
      {
         if ( ! isset( $requestData[ $key  ] ) )
         {
            continue;
         }
         $language = \trim( $requestData[ 'language' ] );
         break;
      }

      if ( empty( $language ) ) { return false; }

      if ( ! \preg_match( '~^([a-zA-Z]{2})([_-]([a-zA-Z]{2}))?~', $language, $matches ) )
      {
         return false;
      }

      // Getting the LID + CID
      $lid = \strtolower( $matches[ 1 ] );
      $cid = empty( $matches[ 2 ] )
         ? null
         : \strtoupper( $matches[ 3 ] );

      // Everything is OK. Init the new instance and return TRUE
      $refLocale = new Locale( $lid, $cid );

      return true;

   }