X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=languages%2FLanguageConverter.php;h=8aa7c87a9e47c65d7afc3ace20de4566a95bce03;hb=7b88a721368c0549f0dc790e3157e7cbcf2f6378;hp=3c8d300316c4125cfdf496fa39328b1c56350f22;hpb=6ac8c496d16c1f88d1b8b4cf449085301ddefdce;p=lhc%2Fweb%2Fwiklou.git diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index 3c8d300316..8aa7c87a9e 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -37,7 +37,7 @@ class LanguageConverter { * @since 1.20 * @var array */ - static public $languagesWithVariants = [ + public static $languagesWithVariants = [ 'en', 'crh', 'gan', @@ -1033,7 +1033,7 @@ class LanguageConverter { $revision = Revision::newFromTitle( $title ); if ( $revision ) { if ( $revision->getContentModel() == CONTENT_MODEL_WIKITEXT ) { - $txt = $revision->getContent( Revision::RAW )->getNativeData(); + $txt = $revision->getContent( Revision::RAW )->getText(); } // @todo in the future, use a specialized content model, perhaps based on json! @@ -1176,8 +1176,21 @@ class LanguageConverter { // [1] => 'zh-hant:yyy' // [2] => '' // ] - $pat = '/;\s*(?='; + $expandedVariants = []; foreach ( $this->mVariants as $variant ) { + $expandedVariants[ $variant ] = 1; + // Accept standard BCP 47 names for variants as well. + $expandedVariants[ LanguageCode::bcp47( $variant ) ] = 1; + } + // Accept old deprecated names for variants + foreach ( LanguageCode::getDeprecatedCodeMapping() as $old => $new ) { + if ( isset( $expandedVariants[ $new ] ) ) { + $expandedVariants[ $old ] = 1; + } + } + + $pat = '/;\s*(?='; + foreach ( $expandedVariants as $variant => $ignore ) { // zh-hans:xxx;zh-hant:yyy $pat .= $variant . '\s*:|'; // xxx=>zh-hans:yyy; xxx=>zh-hant:zzz