|
@@ 22-27 (lines=6) @@
|
| 19 |
|
$irregular['vertices'] = 'vertex'; |
| 20 |
|
$irregular['matrices'] = 'matrix'; |
| 21 |
|
|
| 22 |
|
foreach ($irregular as $pattern => $result) { |
| 23 |
|
$searchPattern = '/' . $pattern . '$/i'; |
| 24 |
|
if (preg_match($searchPattern, $plural)) { |
| 25 |
|
return preg_replace($searchPattern, $result, $plural); |
| 26 |
|
} |
| 27 |
|
} |
| 28 |
|
|
| 29 |
|
// check for irregular singular suffixes |
| 30 |
|
$plurals = array_flip($this->plural); |
|
@@ 40-45 (lines=6) @@
|
| 37 |
|
$plurals['(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|vir)i'] = '\1us'; |
| 38 |
|
$plurals['(buffal|tomat)oes'] = '\1o'; |
| 39 |
|
|
| 40 |
|
foreach ($plurals as $pattern => $result) { |
| 41 |
|
$searchPattern = '/' . $pattern . '$/i'; |
| 42 |
|
if (preg_match($searchPattern, $plural)) { |
| 43 |
|
return preg_replace($searchPattern, $result, $plural); |
| 44 |
|
} |
| 45 |
|
} |
| 46 |
|
|
| 47 |
|
// fallback to naive singularization |
| 48 |
|
return substr($plural, 0, -1); |