MediaWiki REL1_31
LanguageEn.php
Go to the documentation of this file.
1<?php
30 function loadDefaultTables() {
31 $this->mTables = [
32 'en' => new ReplacementArray(),
33 'en-x-piglatin' => new ReplacementArray(),
34 ];
35 }
36
45 function translate( $text, $toVariant ) {
46 if ( $toVariant === 'en-x-piglatin' ) {
47 // Only process words composed of standard English alphabet, leave the rest unchanged.
48 // This skips some English words like 'naïve' or 'résumé', but we can live with that.
49 // Ignore single letters and words which aren't lowercase or uppercase-first.
50 return preg_replace_callback( '/[A-Za-z][a-z\']+/', function ( $matches ) {
51 $word = $matches[0];
52 if ( preg_match( '/^[aeiou]/i', $word ) ) {
53 return $word . 'way';
54 } else {
55 return preg_replace_callback( '/^(s?qu|[^aeiou][^aeiouy]*)(.*)$/i', function ( $m ) {
56 $ucfirst = strtoupper( $m[1][0] ) === $m[1][0];
57 if ( $ucfirst ) {
58 return ucfirst( $m[2] ) . lcfirst( $m[1] ) . 'ay';
59 } else {
60 return $m[2] . $m[1] . 'ay';
61 }
62 }, $word );
63 }
64 }, $text );
65 } else {
66 return $text;
67 }
68 }
69}
70
76class LanguageEn extends Language {
77 function __construct() {
79
80 parent::__construct();
81
83 $this->mConverter = new EnConverter( $this, 'en', [ 'en', 'en-x-piglatin' ] );
84 $wgHooks['PageContentSaveComplete'][] = $this->mConverter;
85 }
86 }
87}
$wgUsePigLatinVariant
Whether to enable the pig latin variant of English (en-x-piglatin), used to ease variant development ...
translate( $text, $toVariant)
Translates text into Pig Latin.
loadDefaultTables()
Dummy methods required by base class.
Base class for language conversion.
English.
Internationalisation code.
Definition Language.php:35
LanguageConverter $mConverter
Definition Language.php:39
Wrapper around strtr() that holds replacements.
$wgHooks['ArticleShow'][]
Definition hooks.txt:108