X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=languages%2FLanguage.php;h=92dad9b13459d636fc75c7290a16dc6e889d9da6;hp=f84e21e53edeecd571c25a58f83123d90a69a1b8;hb=fb79f30319b9ad2a7eb0f5f4d1668143ec8f963e;hpb=9e0dda42fec9bfe1b4708d696557325f1dedd771 diff --git a/languages/Language.php b/languages/Language.php index f84e21e53e..92dad9b134 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -208,11 +208,11 @@ class Language { * @return Language */ protected static function newFromCode( $code, $fallback = false ) { - if ( !Language::isValidCode( $code ) ) { + if ( !self::isValidCode( $code ) ) { throw new MWException( "Invalid language code \"$code\"" ); } - if ( !Language::isValidBuiltInCode( $code ) ) { + if ( !self::isValidBuiltInCode( $code ) ) { // It's not possible to customise this code with class files, so // just return a Language object. This is to support uselang= hacks. $lang = new Language; @@ -228,9 +228,9 @@ class Language { } // Keep trying the fallback list until we find an existing class - $fallbacks = Language::getFallbacksFor( $code ); + $fallbacks = self::getFallbacksFor( $code ); foreach ( $fallbacks as $fallbackCode ) { - if ( !Language::isValidBuiltInCode( $fallbackCode ) ) { + if ( !self::isValidBuiltInCode( $fallbackCode ) ) { throw new MWException( "Invalid fallback '$fallbackCode' in fallback sequence for '$code'" ); } @@ -361,7 +361,6 @@ class Language { * @return bool */ public static function isValidBuiltInCode( $code ) { - if ( !is_string( $code ) ) { if ( is_object( $code ) ) { $addmsg = " of class " . get_class( $code ); @@ -827,10 +826,10 @@ class Language { * @return array Language code => language name */ private static function fetchLanguageNamesUncached( $inLanguage = null, $include = 'mw' ) { - global $wgExtraLanguageNames; + global $wgExtraLanguageNames, $wgUsePigLatinVariant; // If passed an invalid language code to use, fallback to en - if ( $inLanguage !== null && !Language::isValidCode( $inLanguage ) ) { + if ( $inLanguage !== null && !self::isValidCode( $inLanguage ) ) { $inLanguage = 'en'; } @@ -842,6 +841,11 @@ class Language { } $mwNames = $wgExtraLanguageNames + MediaWiki\Languages\Data\Names::$names; + if ( $wgUsePigLatinVariant ) { + // Pig Latin (for variant development) + $mwNames['en-x-piglatin'] = 'Igpay Atinlay'; + } + foreach ( $mwNames as $mwCode => $mwName ) { # - Prefer own MediaWiki native name when not using the hook # - For other names just add if not added through the hook @@ -1088,7 +1092,7 @@ class Language { * YYYYMMDDHHMMSS * 01234567890123 * @param DateTimeZone $zone Timezone of $ts - * @param[out] int $ttl The amount of time (in seconds) the output may be cached for. + * @param int &$ttl The amount of time (in seconds) the output may be cached for. * Only makes sense if $ts is the current time. * @todo handling of "o" format character for Iranian, Hebrew, Hijri & Thai? * @@ -1188,7 +1192,7 @@ class Language { case 'D': $usedDay = true; $s .= $this->getWeekdayAbbreviation( - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'w' ) + 1 + self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'w' ) + 1 ); break; case 'j': @@ -1219,7 +1223,7 @@ class Language { case 'l': $usedDay = true; $s .= $this->getWeekdayName( - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'w' ) + 1 + self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'w' ) + 1 ); break; case 'F': @@ -1400,36 +1404,36 @@ class Language { case 'O': case 'P': case 'T': - $s .= Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); + $s .= self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); break; case 'w': case 'N': case 'z': $usedDay = true; - $num = Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); + $num = self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); break; case 'W': $usedWeek = true; - $num = Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); + $num = self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); break; case 't': $usedMonth = true; - $num = Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); + $num = self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); break; case 'L': $usedIsLeapYear = true; - $num = Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); + $num = self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); break; case 'o': $usedISOYear = true; - $num = Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); + $num = self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); break; case 'U': $usedSecond = true; // fall through case 'I': case 'Z': - $num = Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); + $num = self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, $code ); break; case '\\': # Backslash escaping @@ -1463,7 +1467,7 @@ class Language { $s .= $num; $raw = false; } elseif ( $roman ) { - $s .= Language::romanNumeral( $num ); + $s .= self::romanNumeral( $num ); $roman = false; } elseif ( $hebrewNum ) { $s .= self::hebrewNumeral( $num ); @@ -1505,7 +1509,7 @@ class Language { substr( $ts, 10, 2 ) * 60 - substr( $ts, 12, 2 ); if ( $usedWeek ) { $possibleTtls[] = - ( 7 - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'N' ) ) * 86400 + + ( 7 - self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'N' ) ) * 86400 + $timeRemainingInDay; } elseif ( $usedISOYear ) { // December 28th falls on the last ISO week of the year, every year. @@ -1515,29 +1519,29 @@ class Language { substr( $ts, 0, 4 ) . '1228', $zone ?: new DateTimeZone( 'UTC' ) )->format( 'W' ); - $currentISOWeek = Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'W' ); + $currentISOWeek = self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'W' ); $weeksRemaining = $lastWeekOfISOYear - $currentISOWeek; $timeRemainingInWeek = - ( 7 - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'N' ) ) * 86400 + ( 7 - self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'N' ) ) * 86400 + $timeRemainingInDay; $possibleTtls[] = $weeksRemaining * 604800 + $timeRemainingInWeek; } if ( $usedMonth ) { $possibleTtls[] = - ( Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 't' ) - + ( self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 't' ) - substr( $ts, 6, 2 ) ) * 86400 + $timeRemainingInDay; } elseif ( $usedYear ) { $possibleTtls[] = - ( Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'L' ) + 364 - - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'z' ) ) * 86400 + ( self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'L' ) + 364 - + self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'z' ) ) * 86400 + $timeRemainingInDay; } elseif ( $usedIsLeapYear ) { $year = substr( $ts, 0, 4 ); $timeRemainingInYear = - ( Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'L' ) + 364 - - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'z' ) ) * 86400 + ( self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'L' ) + 364 - + self::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'z' ) ) * 86400 + $timeRemainingInDay; $mod = $year % 4; if ( $mod || ( !( $year % 100 ) && $year % 400 ) ) { @@ -3952,7 +3956,7 @@ class Language { * @return string Text, wrapped in LRE...PDF or RLE...PDF or nothing */ public function embedBidi( $text = '' ) { - $dir = Language::strongDirFromContent( $text ); + $dir = self::strongDirFromContent( $text ); if ( $dir === 'ltr' ) { // Wrap in LEFT-TO-RIGHT EMBEDDING ... POP DIRECTIONAL FORMATTING return self::$lre . $text . self::$pdf; @@ -4260,7 +4264,7 @@ class Language { $this->mParentLanguage = null; return null; } - $lang = Language::factory( $code ); + $lang = self::factory( $code ); if ( !$lang->hasVariant( $this->getCode() ) ) { $this->mParentLanguage = null; return null; @@ -4416,7 +4420,7 @@ class Language { * @return array Non-empty array, ending in "en" */ public static function getFallbacksFor( $code ) { - if ( $code === 'en' || !Language::isValidBuiltInCode( $code ) ) { + if ( $code === 'en' || !self::isValidBuiltInCode( $code ) ) { return []; } // For unknown languages, fallbackSequence returns an empty array, @@ -4533,7 +4537,7 @@ class Language { public function formatExpiry( $expiry, $format = true, $infinity = 'infinity' ) { static $dbInfinity; if ( $dbInfinity === null ) { - $dbInfinity = wfGetDB( DB_SLAVE )->getInfinity(); + $dbInfinity = wfGetDB( DB_REPLICA )->getInfinity(); } if ( $expiry == '' || $expiry === 'infinity' || $expiry == $dbInfinity ) { @@ -4817,7 +4821,7 @@ class Language { */ public function getCompiledPluralRules() { $pluralRules = self::$dataCache->getItem( strtolower( $this->mCode ), 'compiledPluralRules' ); - $fallbacks = Language::getFallbacksFor( $this->mCode ); + $fallbacks = self::getFallbacksFor( $this->mCode ); if ( !$pluralRules ) { foreach ( $fallbacks as $fallbackCode ) { $pluralRules = self::$dataCache->getItem( strtolower( $fallbackCode ), 'compiledPluralRules' ); @@ -4836,7 +4840,7 @@ class Language { */ public function getPluralRules() { $pluralRules = self::$dataCache->getItem( strtolower( $this->mCode ), 'pluralRules' ); - $fallbacks = Language::getFallbacksFor( $this->mCode ); + $fallbacks = self::getFallbacksFor( $this->mCode ); if ( !$pluralRules ) { foreach ( $fallbacks as $fallbackCode ) { $pluralRules = self::$dataCache->getItem( strtolower( $fallbackCode ), 'pluralRules' ); @@ -4855,7 +4859,7 @@ class Language { */ public function getPluralRuleTypes() { $pluralRuleTypes = self::$dataCache->getItem( strtolower( $this->mCode ), 'pluralRuleTypes' ); - $fallbacks = Language::getFallbacksFor( $this->mCode ); + $fallbacks = self::getFallbacksFor( $this->mCode ); if ( !$pluralRuleTypes ) { foreach ( $fallbacks as $fallbackCode ) { $pluralRuleTypes = self::$dataCache->getItem( strtolower( $fallbackCode ), 'pluralRuleTypes' );