original_string: protected function validate_language_pack() {
  
          if (!isset($this->assertions['plugintype'])) {
              throw new coding_exception('Required plugin type must be set before calling this');
          }
  
          if (!isset($this->extractfiles[$this->rootdir.'/lang/en/'])
                  or $this->extractfiles[$this->rootdir.'/lang/en/'] !== true
                  or !is_dir($this->extractdir.'/'.$this->rootdir.'/lang/en')) {
              $this->add_message(self::ERROR, 'missinglangenfolder');
              return false;
          }
  
          $langfiles = array();
          foreach (array_keys($this->extractfiles) as $extractfile) {
              $matches = array();
              if (preg_match('#^'.preg_quote($this->rootdir).'/lang/en/([^/]+).php?$#i', $extractfile, $matches)) {
                  $langfiles[] = $matches[1];
              }
          }
  
          if (empty($langfiles)) {
              $this->add_message(self::ERROR, 'missinglangenfile');
              return false;
          } else if (count($langfiles) > 1) {
              $this->add_message(self::WARNING, 'multiplelangenfiles');
          } else {
              $this->langfilename = $langfiles[0];
              $this->add_message(self::DEBUG, 'foundlangfile', $this->langfilename);
          }
  
          if ($this->assertions['plugintype'] === 'mod') {
              $expected = $this->rootdir.'.php';
          } else {
              $expected = $this->assertions['plugintype'].'_'.$this->rootdir.'.php';
          }
  
          if (!isset($this->extractfiles[$this->rootdir.'/lang/en/'.$expected])
                  or $this->extractfiles[$this->rootdir.'/lang/en/'.$expected] !== true
                  or !is_file($this->extractdir.'/'.$this->rootdir.'/lang/en/'.$expected)) {
              $this->add_message(self::ERROR, 'missingexpectedlangenfile', $expected);
              return false;
          }
  
          return true;
      }
code: protected function validate_language_pack() {
  
          if (!isset($this->assertions['plugintype'])) {
              throw new coding_exception('Required plugin type must be set before calling this');
          }
  
          if (!isset($this->extractfiles[$this->rootdir.'/lang/en/'])
                  or $this->extractfiles[$this->rootdir.'/lang/en/'] !== true
                  or !is_dir($this->extractdir.'/'.$this->rootdir.'/lang/en')) {
              $this->add_message(self::ERROR, 'missinglangenfolder');
              return false;
          }
  
          $langfiles = array();
          foreach (array_keys($this->extractfiles) as $extractfile) {
              $matches = array();
              if (preg_match('#^'.preg_quote($this->rootdir).'/lang/en/([^/]+).php?$#i', $extractfile, $matches)) {
                  $langfiles[] = $matches[1];
              }
          }
  
          if (empty($langfiles)) {
              $this->add_message(self::ERROR, 'missinglangenfile');
              return false;
          } else if (count($langfiles) > 1) {
              $this->add_message(self::WARNING, 'multiplelangenfiles');
          } else {
              $this->langfilename = $langfiles[0];
              $this->add_message(self::DEBUG, 'foundlangfile', $this->langfilename);
          }
  
          if ($this->assertions['plugintype'] === 'mod') {
              $expected = $this->rootdir.'.php';
          } else {
              $expected = $this->assertions['plugintype'].'_'.$this->rootdir.'.php';
          }
  
          if (!isset($this->extractfiles[$this->rootdir.'/lang/en/'.$expected])
                  or $this->extractfiles[$this->rootdir.'/lang/en/'.$expected] !== true
                  or !is_file($this->extractdir.'/'.$this->rootdir.'/lang/en/'.$expected)) {
              $this->add_message(self::ERROR, 'missingexpectedlangenfile', $expected);
              return false;
          }
  
          return true;
      }
code_tokens: protected function validate_language_pack ( ) { if ( ! isset ( $ this -> assertions [ 'plugintype' ] ) ) { throw new coding_exception ( 'Required plugin type must be set before calling this' ) ; } if ( ! isset ( $ this -> extractfiles [ $ this -> rootdir . '/lang/en/' ] ) or $ this -> extractfiles [ $ this -> rootdir . '/lang/en/' ] !== true or ! is_dir ( $ this -> extractdir . '/' . $ this -> rootdir . '/lang/en' ) ) { $ this -> add_message ( self :: ERROR , 'missinglangenfolder' ) ; return false ; } $ langfiles = array ( ) ; foreach ( array_keys ( $ this -> extractfiles ) as $ extractfile ) { $ matches = array ( ) ; if ( preg_match ( '#^' . preg_quote ( $ this -> rootdir ) . '/lang/en/([^/]+).php?$#i' , $ extractfile , $ matches ) ) { $ langfiles [ ] = $ matches [ 1 ] ; } } if ( empty ( $ langfiles ) ) { $ this -> add_message ( self :: ERROR , 'missinglangenfile' ) ; return false ; } else if ( count ( $ langfiles ) > 1 ) { $ this -> add_message ( self :: WARNING , 'multiplelangenfiles' ) ; } else { $ this -> langfilename = $ langfiles [ 0 ] ; $ this -> add_message ( self :: DEBUG , 'foundlangfile' , $ this -> langfilename ) ; } if ( $ this -> assertions [ 'plugintype' ] === 'mod' ) { $ expected = $ this -> rootdir . '.php' ; } else { $ expected = $ this -> assertions [ 'plugintype' ] . '_' . $ this -> rootdir . '.php' ; } if ( ! isset ( $ this -> extractfiles [ $ this -> rootdir . '/lang/en/' . $ expected ] ) or $ this -> extractfiles [ $ this -> rootdir . '/lang/en/' . $ expected ] !== true or ! is_file ( $ this -> extractdir . '/' . $ this -> rootdir . '/lang/en/' . $ expected ) ) { $ this -> add_message ( self :: ERROR , 'missingexpectedlangenfile' , $ expected ) ; return false ; } return true ; }
docstring: Returns false if the English language pack is not provided correctly.
  
  @return bool
docstring_tokens: Returns false if the English language pack is not provided correctly .