/** * 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; }