/**
* Unicode directional formatting characters, for embedBidi()
*/
- static private $lre = "\xE2\x80\xAA"; // U+202A LEFT-TO-RIGHT EMBEDDING
- static private $rle = "\xE2\x80\xAB"; // U+202B RIGHT-TO-LEFT EMBEDDING
- static private $pdf = "\xE2\x80\xAC"; // U+202C POP DIRECTIONAL FORMATTING
+ static private $lre = "\u{202A}"; // U+202A LEFT-TO-RIGHT EMBEDDING
+ static private $rle = "\u{202B}"; // U+202B RIGHT-TO-LEFT EMBEDDING
+ static private $pdf = "\u{202C}"; // U+202C POP DIRECTIONAL FORMATTING
/**
* Directionality test regex for embedBidi(). Matches the first strong directionality codepoint:
}
// get the language object to process
- $langObj = isset( self::$mLangObjCache[$code] )
- ? self::$mLangObjCache[$code]
- : self::newFromCode( $code );
+ $langObj = self::$mLangObjCache[$code] ?? self::newFromCode( $code );
// merge the language object in to get it up front in the cache
self::$mLangObjCache = array_merge( [ $code => $langObj ], self::$mLangObjCache );
*/
public function getNsText( $index ) {
$ns = $this->getNamespaces();
- return isset( $ns[$index] ) ? $ns[$index] : false;
+ return $ns[$index] ?? false;
}
/**
$ns = $wgExtraGenderNamespaces +
(array)self::$dataCache->getItem( $this->mCode, 'namespaceGenderAliases' );
- return isset( $ns[$index][$gender] ) ? $ns[$index][$gender] : $this->getNsText( $index );
+ return $ns[$index][$gender] ?? $this->getNsText( $index );
}
/**
function getLocalNsIndex( $text ) {
$lctext = $this->lc( $text );
$ids = $this->getNamespaceIds();
- return isset( $ids[$lctext] ) ? $ids[$lctext] : false;
+ return $ids[$lctext] ?? false;
}
/**
return $ns;
}
$ids = $this->getNamespaceIds();
- return isset( $ids[$lctext] ) ? $ids[$lctext] : false;
+ return $ids[$lctext] ?? false;
}
/**
if ( $code < 0xac00 || 0xd7a4 <= $code ) {
return $matches[1];
} elseif ( $code < 0xb098 ) {
- return "\xe3\x84\xb1";
+ return "\u{3131}";
} elseif ( $code < 0xb2e4 ) {
- return "\xe3\x84\xb4";
+ return "\u{3134}";
} elseif ( $code < 0xb77c ) {
- return "\xe3\x84\xb7";
+ return "\u{3137}";
} elseif ( $code < 0xb9c8 ) {
- return "\xe3\x84\xb9";
+ return "\u{3139}";
} elseif ( $code < 0xbc14 ) {
- return "\xe3\x85\x81";
+ return "\u{3141}";
} elseif ( $code < 0xc0ac ) {
- return "\xe3\x85\x82";
+ return "\u{3142}";
} elseif ( $code < 0xc544 ) {
- return "\xe3\x85\x85";
+ return "\u{3145}";
} elseif ( $code < 0xc790 ) {
- return "\xe3\x85\x87";
+ return "\u{3147}";
} elseif ( $code < 0xcc28 ) {
- return "\xe3\x85\x88";
+ return "\u{3148}";
} elseif ( $code < 0xce74 ) {
- return "\xe3\x85\x8a";
+ return "\u{314A}";
} elseif ( $code < 0xd0c0 ) {
- return "\xe3\x85\x8b";
+ return "\u{314B}";
} elseif ( $code < 0xd30c ) {
- return "\xe3\x85\x8c";
+ return "\u{314C}";
} elseif ( $code < 0xd558 ) {
- return "\xe3\x85\x8d";
+ return "\u{314D}";
} else {
- return "\xe3\x85\x8e";
+ return "\u{314E}";
}
} else {
return '';
global $wgAllUnicodeFixes;
$s = UtfNormal\Validator::cleanUp( $s );
if ( $wgAllUnicodeFixes ) {
- $s = $this->transformUsingPairFile( 'normalize-ar.ser', $s );
- $s = $this->transformUsingPairFile( 'normalize-ml.ser', $s );
+ $s = $this->transformUsingPairFile( 'normalize-ar.php', $s );
+ $s = $this->transformUsingPairFile( 'normalize-ml.php', $s );
}
return $s;
* @throws MWException
* @return string
*/
- function transformUsingPairFile( $file, $string ) {
+ protected function transformUsingPairFile( $file, $string ) {
if ( !isset( $this->transformData[$file] ) ) {
- $data = wfGetPrecompiledData( $file );
- if ( $data === false ) {
- throw new MWException( __METHOD__ . ": The transformation file $file is missing" );
- }
+ global $IP;
+ $data = require "$IP/languages/data/{$file}";
$this->transformData[$file] = new ReplacementArray( $data );
}
return $this->transformData[$file]->replace( $string );
* @return string
*/
function getDirMark( $opposite = false ) {
- $lrm = "\xE2\x80\x8E"; # LEFT-TO-RIGHT MARK, commonly abbreviated LRM
- $rlm = "\xE2\x80\x8F"; # RIGHT-TO-LEFT MARK, commonly abbreviated RLM
+ $lrm = "\u{200E}"; # LEFT-TO-RIGHT MARK, commonly abbreviated LRM
+ $rlm = "\u{200F}"; # RIGHT-TO-LEFT MARK, commonly abbreviated RLM
if ( $opposite ) {
return $this->isRTL() ? $lrm : $rlm;
}
$this->mExtendedSpecialPageAliases =
self::$dataCache->getItem( $this->mCode, 'specialPageAliases' );
Hooks::run( 'LanguageGetSpecialPageAliases',
- [ &$this->mExtendedSpecialPageAliases, $this->getCode() ] );
+ [ &$this->mExtendedSpecialPageAliases, $this->getCode() ], '1.16' );
}
return $this->mExtendedSpecialPageAliases;
* @return string
*/
private function truncateInternal(
- $string, $length, $ellipsis = '...', $adjustLength = true, $measureLength, $getSubstring
+ $string, $length, $ellipsis, $adjustLength, $measureLength, $getSubstring
) {
if ( !is_callable( $measureLength ) || !is_callable( $getSubstring ) ) {
throw new InvalidArgumentException( 'Invalid callback provided' );
if ( $gender === 'female' ) {
return $forms[1];
}
- return isset( $forms[2] ) ? $forms[2] : $forms[0];
+ return $forms[2] ?? $forms[0];
}
/**
* @throws MWException
* @return string $prefix . $mangledCode . $suffix
*/
- public static function getFileName( $prefix = 'Language', $code, $suffix = '.php' ) {
+ public static function getFileName( $prefix, $code, $suffix = '.php' ) {
if ( !self::isValidBuiltInCode( $code ) ) {
throw new MWException( "Invalid language code \"$code\"" );
}