get('phpci.basic.language', null); if (self::setLanguage($language)) { return; } // Fall back to English: self::$language = 'en'; self::$strings = self::loadLanguage(); } /** * Load a specific language file. * * @return string[]|null */ protected static function loadLanguage() { $langFile = PHPCI_DIR . 'PHPCI/Languages/lang.' . self::$language . '.php'; if (!file_exists($langFile)) { return null; } require($langFile); if (is_null($strings) || !is_array($strings) || !count($strings)) { return null; } return $strings; } /** * Load the names of all available languages. */ protected static function loadAvailableLanguages() { $matches = array(); foreach (glob(PHPCI_DIR . 'PHPCI/Languages/lang.*.php') as $file) { if (preg_match('/lang\.([a-z]{2}\-?[a-z]*)\.php/', $file, $matches)) { self::$languages[] = $matches[1]; } } } /** * Create a time tag for localization. * * See http://momentjs.com/docs/#/displaying/format/ for a list of supported formats. * * @param \DateTime $dateTime The dateTime to represent. * @param string $format The moment.js format to use. * * @return string The formatted tag. */ public static function formatDateTime(\DateTime $dateTime, $format = 'lll') { return sprintf( '', $dateTime->format(\DateTime::ISO8601), $format, $dateTime->format(\DateTime::RFC2822) ); } }