X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=languages%2FLanguage.php;h=83dff65aba9cd22224cd3796539acabfb1eaadd7;hb=884a54e910dc5b6f961b43a1f808da93bf2c8af3;hp=14e6f5c63bb3d6177d347986754a5987aac46f48;hpb=a4943f548be4cfc8f286f00fc8064ff0e377f2ba;p=lhc%2Fweb%2Fwiklou.git diff --git a/languages/Language.php b/languages/Language.php index 14e6f5c63b..83dff65aba 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -203,10 +203,11 @@ class Language { /** * Create a language object for a given language code * @param string $code + * @param $fallback boolean Whether we're going through language fallback chain * @throws MWException * @return Language */ - protected static function newFromCode( $code ) { + protected static function newFromCode( $code, $fallback = false ) { if ( !Language::isValidCode( $code ) ) { throw new MWException( "Invalid language code \"$code\"" ); } @@ -220,7 +221,7 @@ class Language { } // Check if there is a language class for the code - $class = self::classFromCode( $code ); + $class = self::classFromCode( $code, $fallback ); if ( class_exists( $class ) ) { $lang = new $class; return $lang; @@ -360,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 ); @@ -725,7 +725,7 @@ class Language { } /** - * @return array + * @return string[]|bool List of date format preference keys, or false if disabled. */ public function getDatePreferences() { return self::$dataCache->getItem( $this->mCode, 'datePreferences' ); @@ -826,7 +826,7 @@ 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 ) ) { @@ -841,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 @@ -4338,10 +4343,11 @@ class Language { /** * @param string $code + * @param boolean $fallback Whether we're going through language fallback chain * @return string Name of the language class */ - public static function classFromCode( $code ) { - if ( $code == 'en' ) { + public static function classFromCode( $code, $fallback = true ) { + if ( $fallback && $code == 'en' ) { return 'Language'; } else { return 'Language' . str_replace( '-', '_', ucfirst( $code ) );