* @since 1.21
*/
public static function isSupportedLanguage( $code ) {
- return self::isValidBuiltInCode( $code )
- && ( is_readable( self::getMessagesFileName( $code ) )
- || is_readable( self::getJsonMessagesFileName( $code ) )
- );
+ if ( !self::isValidBuiltInCode( $code ) ) {
+ return false;
+ }
+
+ if ( $code === 'qqq' ) {
+ return false;
+ }
+
+ return is_readable( self::getMessagesFileName( $code ) ) ||
+ is_readable( self::getJsonMessagesFileName( $code ) );
}
/**
}
/**
- * A convenience function that returns the same thing as
- * getNamespaces() except with the array values changed to ' '
- * where it found '_', useful for producing output to be displayed
- * e.g. in <select> forms.
+ * A convenience function that returns getNamespaces() with spaces instead of underscores
+ * in values. Useful for producing output to be displayed e.g. in `<select>` forms.
*
* @return array
*/
/**
* Get a namespace value by key
+ *
* <code>
* $mw_ns = $wgContLang->getNsText( NS_MEDIAWIKI );
* echo $mw_ns; // prints 'MediaWiki'
*/
function getNsText( $index ) {
$ns = $this->getNamespaces();
-
return isset( $ns[$index] ) ? $ns[$index] : false;
}
*/
function getFormattedNsText( $index ) {
$ns = $this->getNsText( $index );
-
return strtr( $ns, '_', ' ' );
}
/**
* Get a format string for a given type and preference
- * @param string $type May be date, time or both
- * @param string $pref The format name as it appears in Messages*.php
+ * @param string $type May be 'date', 'time', 'both', or 'pretty'.
+ * @param string $pref The format name as it appears in Messages*.php under
+ * $datePreferences.
*
* @since 1.22 New type 'pretty' that provides a more readable timestamp format
*
* @return string
*/
function getDateFormatString( $type, $pref ) {
+ $wasDefault = false;
+ if ( $pref == 'default' ) {
+ $wasDefault = true;
+ $pref = $this->getDefaultDateFormat();
+ }
+
if ( !isset( $this->dateFormatStrings[$type][$pref] ) ) {
- if ( $pref == 'default' ) {
- $pref = $this->getDefaultDateFormat();
- $df = self::$dataCache->getSubitem( $this->mCode, 'dateFormats', "$pref $type" );
- } else {
- $df = self::$dataCache->getSubitem( $this->mCode, 'dateFormats', "$pref $type" );
+ $df = self::$dataCache->getSubitem( $this->mCode, 'dateFormats', "$pref $type" );
- if ( $type === 'pretty' && $df === null ) {
- $df = $this->getDateFormatString( 'date', $pref );
- }
+ if ( $type === 'pretty' && $df === null ) {
+ $df = $this->getDateFormatString( 'date', $pref );
+ }
- if ( $df === null ) {
- $pref = $this->getDefaultDateFormat();
- $df = self::$dataCache->getSubitem( $this->mCode, 'dateFormats', "$pref $type" );
- }
+ if ( !$wasDefault && $df === null ) {
+ $pref = $this->getDefaultDateFormat();
+ $df = self::$dataCache->getSubitem( $this->mCode, 'dateFormats', "$pref $type" );
}
+
$this->dateFormatStrings[$type][$pref] = $df;
}
return $this->dateFormatStrings[$type][$pref];
* @return bool
*/
function isMultibyte( $str ) {
- return (bool)preg_match( '/[\x80-\xff]/', $str );
+ return strlen( $str ) !== mb_strlen( $str );
}
/**