MediaWiki
1.34.0
LanguageEn.php
Go to the documentation of this file.
1
<?php
26
class
EnConverter
extends
LanguageConverter {
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
return
$text;
48
}
49
50
// Only process words composed of standard English alphabet, leave the rest unchanged.
51
// This skips some English words like 'naïve' or 'résumé', but we can live with that.
52
// Ignore single letters and words which aren't lowercase or uppercase-first.
53
return
preg_replace_callback(
'/[A-Za-z][a-z\']+/'
,
function
(
$matches
) {
54
$word =
$matches
[0];
55
if
( preg_match(
'/^[aeiou]/i'
, $word ) ) {
56
return
$word .
'way'
;
57
}
58
59
return
preg_replace_callback(
'/^(s?qu|[^aeiou][^aeiouy]*)(.*)$/i'
,
function
( $m ) {
60
$ucfirst = strtoupper( $m[1][0] ) === $m[1][0];
61
if
( $ucfirst ) {
62
return
ucfirst( $m[2] ) . lcfirst( $m[1] ) .
'ay'
;
63
}
64
65
return
$m[2] . $m[1] .
'ay'
;
66
}, $word );
67
}, $text );
68
}
69
}
70
76
class
LanguageEn
extends
Language
{
77
function
__construct
() {
78
global
$wgUsePigLatinVariant
;
79
80
parent::__construct();
81
82
if
(
$wgUsePigLatinVariant
) {
83
$this->mConverter =
new
EnConverter
( $this,
'en'
, [
'en'
,
'en-x-piglatin'
] );
84
}
85
}
86
}
$matches
$matches
Definition:
NoLocalSettings.php:24
EnConverter\translate
translate( $text, $toVariant)
Translates text into Pig Latin.
Definition:
LanguageEn.php:45
EnConverter
Definition:
LanguageEn.php:26
ReplacementArray
Wrapper around strtr() that holds replacements.
Definition:
ReplacementArray.php:24
LanguageEn\__construct
__construct()
Definition:
LanguageEn.php:77
LanguageEn
English.
Definition:
LanguageEn.php:76
EnConverter\loadDefaultTables
loadDefaultTables()
Dummy methods required by base class.
Definition:
LanguageEn.php:30
Language
Internationalisation code.
Definition:
Language.php:37
$wgUsePigLatinVariant
$wgUsePigLatinVariant
Whether to enable the pig Latin variant of English (en-x-piglatin), used to ease variant development ...
Definition:
DefaultSettings.php:3132
languages
classes
LanguageEn.php
Generated on Thu Dec 19 2019 14:55:08 for MediaWiki by
1.8.16