示例#1
0
 /**
  * Fetch languages from wordpress.org API.
  *
  * @param  bool       $ssl
  * @return array|bool
  */
 private function fetchLanguages($ssl = true)
 {
     static $languages;
     if (!is_null($languages)) {
         return $languages;
     }
     $url = $ssl ? 'https' : 'http';
     $url .= '://api.wordpress.org/translations/core/1.0/?version=';
     $remote = new UrlDownloader($url . $this->config['wp-version']);
     $result = $remote->fetch(true);
     if (!$result) {
         return $ssl ? $this->fetchLanguages(false) : false;
     }
     try {
         $all = (array) json_decode($result, true);
         $languages = isset($all['translations']) ? array() : false;
         if (is_array($languages)) {
             foreach ($all['translations'] as $lang) {
                 $languages[] = $lang['language'];
             }
         }
     } catch (Exception $e) {
         $languages = false;
     }
     if ($languages === false) {
         $this->io->comment('Error on loading languages from wordpress.org');
     }
     return $languages;
 }