exit( 1 );
}
-if ( function_exists( 'mb_strtoupper' ) ) {
- mb_internal_encoding( 'UTF-8' );
-}
+mb_internal_encoding( 'UTF-8' );
use CLDRPluralRuleParser\Evaluator;
* @return array
* @since 1.19
*/
- function getFallbackLanguages() {
+ public function getFallbackLanguages() {
return self::getFallbacksFor( $this->mCode );
}
* Exports $wgBookstoreListEn
* @return array
*/
- function getBookstoreList() {
+ public function getBookstoreList() {
return self::$dataCache->getItem( $this->mCode, 'bookstoreList' );
}
*
* @return array
*/
- function getFormattedNamespaces() {
+ public function getFormattedNamespaces() {
$ns = $this->getNamespaces();
foreach ( $ns as $k => $v ) {
$ns[$k] = strtr( $v, '_', ' ' );
* @param int $index The array key of the namespace to return
* @return string|bool String if the namespace value exists, otherwise false
*/
- function getNsText( $index ) {
+ public function getNsText( $index ) {
$ns = $this->getNamespaces();
return isset( $ns[$index] ) ? $ns[$index] : false;
}
* @param int $index The array key of the namespace to return
* @return string Namespace name without underscores (empty string if namespace does not exist)
*/
- function getFormattedNsText( $index ) {
+ public function getFormattedNsText( $index ) {
$ns = $this->getNsText( $index );
return strtr( $ns, '_', ' ' );
}
* @return string
* @since 1.18
*/
- function getGenderNsText( $index, $gender ) {
+ public function getGenderNsText( $index, $gender ) {
global $wgExtraGenderNamespaces;
$ns = $wgExtraGenderNamespaces +
* @return bool
* @since 1.18
*/
- function needsGenderDistinction() {
+ public function needsGenderDistinction() {
global $wgExtraGenderNamespaces, $wgExtraNamespaces;
if ( count( $wgExtraGenderNamespaces ) > 0 ) {
// $wgExtraGenderNamespaces overrides everything
/**
* @return array
*/
- function getNamespaceAliases() {
+ public function getNamespaceAliases() {
if ( is_null( $this->namespaceAliases ) ) {
$aliases = self::$dataCache->getItem( $this->mCode, 'namespaceAliases' );
if ( !$aliases ) {
/**
* @return array
*/
- function getNamespaceIds() {
+ public function getNamespaceIds() {
if ( is_null( $this->mNamespaceIds ) ) {
global $wgNamespaceAliases;
# Put namespace names and aliases into a hashtable.
* @param string $text
* @return int|bool An integer if $text is a valid value otherwise false
*/
- function getNsIndex( $text ) {
+ public function getNsIndex( $text ) {
$lctext = $this->lc( $text );
$ns = MWNamespace::getCanonicalIndex( $lctext );
if ( $ns !== null ) {
* @param bool $usemsg Use the "variantname-xyz" message if it exists
* @return string
*/
- function getVariantname( $code, $usemsg = true ) {
+ public function getVariantname( $code, $usemsg = true ) {
$msg = "variantname-$code";
if ( $usemsg && wfMessage( $msg )->exists() ) {
return $this->getMessageFromDB( $msg );
}
}
- /**
- * @deprecated since 1.24, doesn't handle conflicting aliases. Use
- * SpecialPageFactory::getLocalNameFor instead.
- * @param string $name
- * @return string
- */
- function specialPage( $name ) {
- $aliases = $this->getSpecialPageAliases();
- if ( isset( $aliases[$name][0] ) ) {
- $name = $aliases[$name][0];
- }
- return $this->getNsText( NS_SPECIAL ) . ':' . $name;
- }
-
/**
* @return array
*/
- function getDatePreferences() {
+ public function getDatePreferences() {
return self::$dataCache->getItem( $this->mCode, 'datePreferences' );
}
/**
* @return array|string
*/
- function getDefaultDateFormat() {
+ public function getDefaultDateFormat() {
$df = self::$dataCache->getItem( $this->mCode, 'defaultDateFormat' );
if ( $df === 'dmy or mdy' ) {
global $wgAmericanDates;
/**
* @return array
*/
- function getDatePreferenceMigrationMap() {
+ public function getDatePreferenceMigrationMap() {
return self::$dataCache->getItem( $this->mCode, 'datePreferenceMigrationMap' );
}
* @return array
* @since 1.24
*/
- function getImageFiles() {
+ public function getImageFiles() {
return self::$dataCache->getItem( $this->mCode, 'imageFiles' );
}
/**
* @return array
*/
- function getExtraUserToggles() {
+ public function getExtraUserToggles() {
return (array)self::$dataCache->getItem( $this->mCode, 'extraUserToggles' );
}
return $this->getMessageFromDB( "tog-$tog" );
}
- /**
- * Get native language names, indexed by code.
- * Only those defined in MediaWiki, no other data like CLDR.
- * If $customisedOnly is true, only returns codes with a messages file
- *
- * @param bool $customisedOnly
- *
- * @return array
- * @deprecated since 1.20, use fetchLanguageNames()
- */
- public static function getLanguageNames( $customisedOnly = false ) {
- return self::fetchLanguageNames( null, $customisedOnly ? 'mwfile' : 'mw' );
- }
-
- /**
- * Get translated language names. This is done on best effort and
- * by default this is exactly the same as Language::getLanguageNames.
- * The CLDR extension provides translated names.
- * @param string $code Language code.
- * @return array Language code => language name
- * @since 1.18.0
- * @deprecated since 1.20, use fetchLanguageNames()
- */
- public static function getTranslatedLanguageNames( $code ) {
- return self::fetchLanguageNames( $code, 'all' );
- }
-
/**
* Get an array of language names, indexed by code.
* @param null|string $inLanguage Code of language in which to return the names
* @param string $msg Message name
* @return string
*/
- function getMessageFromDB( $msg ) {
+ public function getMessageFromDB( $msg ) {
return $this->msg( $msg )->text();
}
return wfMessage( $msg )->inLanguage( $this );
}
- /**
- * Get the native language name of $code.
- * Only if defined in MediaWiki, no other data like CLDR.
- * @param string $code
- * @return string
- * @deprecated since 1.20, use fetchLanguageName()
- */
- function getLanguageName( $code ) {
- return self::fetchLanguageName( $code );
- }
-
/**
* @param string $key
* @return string
*/
- function getMonthName( $key ) {
+ public function getMonthName( $key ) {
return $this->getMessageFromDB( self::$mMonthMsgs[$key - 1] );
}
/**
* @return array
*/
- function getMonthNamesArray() {
+ public function getMonthNamesArray() {
$monthNames = [ '' ];
for ( $i = 1; $i < 13; $i++ ) {
$monthNames[] = $this->getMonthName( $i );
* @param string $key
* @return string
*/
- function getMonthNameGen( $key ) {
+ public function getMonthNameGen( $key ) {
return $this->getMessageFromDB( self::$mMonthGenMsgs[$key - 1] );
}
return $text;
}
- // callback functions for uc(), lc(), ucwords(), ucwordbreaks()
+ // callback functions for ucwords(), ucwordbreaks()
/**
* @param array $matches
return mb_strtoupper( $matches[0] );
}
- /**
- * @param array $matches
- * @return string
- */
- function ucCallback( $matches ) {
- list( $wikiUpperChars ) = self::getCaseMaps();
- return strtr( $matches[1], $wikiUpperChars );
- }
-
- /**
- * @param array $matches
- * @return string
- */
- function lcCallback( $matches ) {
- list( , $wikiLowerChars ) = self::getCaseMaps();
- return strtr( $matches[1], $wikiLowerChars );
- }
-
/**
* @param array $matches
* @return string
return mb_strtoupper( $matches[0] );
}
- /**
- * @param array $matches
- * @return string
- */
- function ucwordsCallbackWiki( $matches ) {
- list( $wikiUpperChars ) = self::getCaseMaps();
- return strtr( $matches[0], $wikiUpperChars );
- }
-
/**
* Make a string's first character uppercase
*
* @return string
*/
function uc( $str, $first = false ) {
- if ( function_exists( 'mb_strtoupper' ) ) {
- if ( $first ) {
- if ( $this->isMultibyte( $str ) ) {
- return mb_strtoupper( mb_substr( $str, 0, 1 ) ) . mb_substr( $str, 1 );
- } else {
- return ucfirst( $str );
- }
- } else {
- return $this->isMultibyte( $str ) ? mb_strtoupper( $str ) : strtoupper( $str );
- }
- } else {
+ if ( $first ) {
if ( $this->isMultibyte( $str ) ) {
- $x = $first ? '^' : '';
- return preg_replace_callback(
- "/$x([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)/",
- [ $this, 'ucCallback' ],
- $str
- );
+ return mb_strtoupper( mb_substr( $str, 0, 1 ) ) . mb_substr( $str, 1 );
} else {
- return $first ? ucfirst( $str ) : strtoupper( $str );
+ return ucfirst( $str );
}
+ } else {
+ return $this->isMultibyte( $str ) ? mb_strtoupper( $str ) : strtoupper( $str );
}
}
* @return mixed|string
*/
function lc( $str, $first = false ) {
- if ( function_exists( 'mb_strtolower' ) ) {
- if ( $first ) {
- if ( $this->isMultibyte( $str ) ) {
- return mb_strtolower( mb_substr( $str, 0, 1 ) ) . mb_substr( $str, 1 );
- } else {
- return strtolower( substr( $str, 0, 1 ) ) . substr( $str, 1 );
- }
- } else {
- return $this->isMultibyte( $str ) ? mb_strtolower( $str ) : strtolower( $str );
- }
- } else {
+ if ( $first ) {
if ( $this->isMultibyte( $str ) ) {
- $x = $first ? '^' : '';
- return preg_replace_callback(
- "/$x([A-Z]|[\\xc0-\\xff][\\x80-\\xbf]*)/",
- [ $this, 'lcCallback' ],
- $str
- );
+ return mb_strtolower( mb_substr( $str, 0, 1 ) ) . mb_substr( $str, 1 );
} else {
- return $first ? strtolower( substr( $str, 0, 1 ) ) . substr( $str, 1 ) : strtolower( $str );
+ return strtolower( substr( $str, 0, 1 ) ) . substr( $str, 1 );
}
+ } else {
+ return $this->isMultibyte( $str ) ? mb_strtolower( $str ) : strtolower( $str );
}
}
$replaceRegexp = "/^([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)| ([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)/";
// function to use to capitalize a single char
- if ( function_exists( 'mb_strtoupper' ) ) {
- return preg_replace_callback(
- $replaceRegexp,
- [ $this, 'ucwordsCallbackMB' ],
- $str
- );
- } else {
- return preg_replace_callback(
- $replaceRegexp,
- [ $this, 'ucwordsCallbackWiki' ],
- $str
- );
- }
+ return preg_replace_callback(
+ $replaceRegexp,
+ [ $this, 'ucwordsCallbackMB' ],
+ $str
+ );
} else {
return ucwords( strtolower( $str ) );
}
$replaceRegexp = "/^([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)|" .
"$breaks([a-z]|[\\xc0-\\xff][\\x80-\\xbf]*)/";
- if ( function_exists( 'mb_strtoupper' ) ) {
- return preg_replace_callback(
- $replaceRegexp,
- [ $this, 'ucwordbreaksCallbackMB' ],
- $str
- );
- } else {
- return preg_replace_callback(
- $replaceRegexp,
- [ $this, 'ucwordsCallbackWiki' ],
- $str
- );
- }
+ return preg_replace_callback(
+ $replaceRegexp,
+ [ $this, 'ucwordbreaksCallbackMB' ],
+ $str
+ );
} else {
return preg_replace_callback(
'/\b([\w\x80-\xff]+)\b/',
/**
* @param string $s
* @return string
+ * @throws MWException
*/
function checkTitleEncoding( $s ) {
if ( is_array( $s ) ) {
* Normally we output all numbers in plain en_US style, that is
* 293,291.235 for twohundredninetythreethousand-twohundredninetyone
* point twohundredthirtyfive. However this is not suitable for all
- * languages, some such as Punjabi want ੨੯੩,੨੯੫.੨੩੫ and others such as
+ * languages, some such as Bengali (bn) want ২,৯৩,২৯১.২৩৫ and others such as
* Icelandic just want to use commas instead of dots, and dots instead
* of commas like "293.291,235".
*
* Refresh the cache of conversion tables when
* MediaWiki:Conversiontable* is updated.
*
- * @param Title $titleobj The Title of the page being updated
+ * @param Title $title The Title of the page being updated
*/
public function updateConversionTable( Title $title ) {
$this->mConverter->updateConversionTable( $title );
return self::$dataCache->getItem( $this->mCode, 'linkPrefixCharset' );
}
- /**
- * @deprecated since 1.24, will be removed in 1.25
- * @return Language
- */
- function getLangObj() {
- wfDeprecated( __METHOD__, '1.24' );
- return $this;
- }
-
/**
* Get the "parent" language which has a converter to convert a "compatible" language
* (in another variant) to this language (eg. zh for zh-cn, but not en for en-gb).
/**
* @param string $code
* @return string
+ * @throws MWException
* @since 1.23
*/
public static function getJsonMessagesFileName( $code ) {
* @return array Array of message keys (strings)
*/
public static function getMessageKeysFor( $code ) {
- return self::getLocalisationCache()->getSubItemList( $code, 'messages' );
+ return self::getLocalisationCache()->getSubitemList( $code, 'messages' );
}
/**
return $this->convertGrammar( trim( $m[2] ), trim( $m[1] ) );
}
- /**
- * @throws MWException
- * @return array
- */
- static function getCaseMaps() {
- static $wikiUpperChars, $wikiLowerChars;
- if ( isset( $wikiUpperChars ) ) {
- return [ $wikiUpperChars, $wikiLowerChars ];
- }
-
- $arr = wfGetPrecompiledData( 'Utf8Case.ser' );
- if ( $arr === false ) {
- throw new MWException(
- "Utf8Case.ser is missing, please run \"make\" in the serialized directory\n" );
- }
- $wikiUpperChars = $arr['wikiUpperChars'];
- $wikiLowerChars = $arr['wikiLowerChars'];
- return [ $wikiUpperChars, $wikiLowerChars ];
- }
-
/**
* Decode an expiry (block, protection, etc) which has come from the DB
*
* @param string $expiry Database expiry String
* @param bool|int $format True to process using language functions, or TS_ constant
* to return the expiry in a given timestamp
- * @param string $inifinity If $format is not true, use this string for infinite expiry
+ * @param string $infinity If $format is not true, use this string for infinite expiry
* @return string
* @since 1.18
*/