X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=languages%2Fclasses%2FLanguageEn.php;h=b838d064db9a464ab4c91c75ba6b4a0d64a02e0a;hb=951580de94b4bcc904186063a5424df7b03bdda5;hp=709ce1bacf71d41db7153ed003c7b4ac667b83d3;hpb=78418f5728259c024ac3b2016e1edd0ab794c9c0;p=lhc%2Fweb%2Fwiklou.git diff --git a/languages/classes/LanguageEn.php b/languages/classes/LanguageEn.php index 709ce1bacf..b838d064db 100644 --- a/languages/classes/LanguageEn.php +++ b/languages/classes/LanguageEn.php @@ -43,28 +43,28 @@ class EnConverter extends LanguageConverter { * @return string */ function translate( $text, $toVariant ) { - if ( $toVariant === 'en-x-piglatin' ) { - // Only process words composed of standard English alphabet, leave the rest unchanged. - // This skips some English words like 'naïve' or 'résumé', but we can live with that. - // Ignore single letters and words which aren't lowercase or uppercase-first. - return preg_replace_callback( '/[A-Za-z][a-z]+/', function ( $matches ) { - $word = $matches[0]; - if ( preg_match( '/^[aeiou]/i', $word ) ) { - return $word . 'way'; - } else { - return preg_replace_callback( '/^(qu|[^aeiou][^aeiouy]*)(.*)$/i', function ( $m ) { - $ucfirst = strtoupper( $m[1][0] ) === $m[1][0]; - if ( $ucfirst ) { - return ucfirst( $m[2] ) . lcfirst( $m[1] ) . 'ay'; - } else { - return $m[2] . $m[1] . 'ay'; - } - }, $word ); - } - }, $text ); - } else { + if ( $toVariant !== 'en-x-piglatin' ) { return $text; } + + // Only process words composed of standard English alphabet, leave the rest unchanged. + // This skips some English words like 'naïve' or 'résumé', but we can live with that. + // Ignore single letters and words which aren't lowercase or uppercase-first. + return preg_replace_callback( '/[A-Za-z][a-z\']+/', function ( $matches ) { + $word = $matches[0]; + if ( preg_match( '/^[aeiou]/i', $word ) ) { + return $word . 'way'; + } + + return preg_replace_callback( '/^(s?qu|[^aeiou][^aeiouy]*)(.*)$/i', function ( $m ) { + $ucfirst = strtoupper( $m[1][0] ) === $m[1][0]; + if ( $ucfirst ) { + return ucfirst( $m[2] ) . lcfirst( $m[1] ) . 'ay'; + } + + return $m[2] . $m[1] . 'ay'; + }, $word ); + }, $text ); } } @@ -75,13 +75,12 @@ class EnConverter extends LanguageConverter { */ class LanguageEn extends Language { function __construct() { - global $wgUsePigLatinVariant, $wgHooks; + global $wgUsePigLatinVariant; parent::__construct(); if ( $wgUsePigLatinVariant ) { $this->mConverter = new EnConverter( $this, 'en', [ 'en', 'en-x-piglatin' ] ); - $wgHooks['PageContentSaveComplete'][] = $this->mConverter; } } }