32 private static $familygender = [
41 'translatewiki.net' =>
'n',
83 $lord = strtolower( $word );
85 if ( preg_match(
'/wiki$/', $lord ) ) {
88 if ( isset( self::$familygender[$lord] ) ) {
89 $gender = self::$familygender[$lord];
92 $isGenderFemale = $gender ===
'f';
94 $case =
' ' . strtolower( $case );
95 if ( preg_match(
'/ [is]/', $case ) ) {
96 # däm WikiMaatplaz singe, dä Wikipeedija iere, däm Wikiwööterbooch singe
97 # dem/em WikiMaatplaz singe, de Wikipeedija iere, dem/em Wikiwööterbooch singe
98 # däm WikiMaatplaz sing, dä Wikipeedija ier, däm Wikiwööterbooch sing
99 # dem/em WikiMaatplaz sing, de Wikipeedija ier, dem/em Wikiwööterbooch sing
100 $word = ( preg_match(
'/ b/', $case )
101 ? ( $isGenderFemale ?
'dä' :
'däm' )
102 : ( $isGenderFemale ?
'de' :
'dem' )
103 ) .
' ' . $word .
' ' .
104 ( $isGenderFemale ?
'ier' :
'sing' ) .
105 ( preg_match(
'/ m/', $case ) ?
'e' :
'' );
106 } elseif ( preg_match(
'/ e/', $case ) ) {
107 # en dämm WikiMaatPlaz, en dä Wikipeedija, en dämm Wikiwööterbooch
108 # em WikiMaatplaz, en de Wikipeedija, em Wikiwööterbooch
109 if ( preg_match(
'/ b/', $case ) ) {
110 $word =
'en ' . ( $isGenderFemale ?
'dä' :
'däm' ) .
' ' . $word;
112 $word = ( $isGenderFemale ?
'en de' :
'em' ) .
' ' . $word;
114 } elseif ( preg_match(
'/ [fv]/', $case ) || preg_match(
'/ [2jg]/', $case ) ) {
115 # vun däm WikiMaatplaz, vun dä Wikipeedija, vun däm Wikiwööterbooch
116 # vum WikiMaatplaz, vun de Wikipeedija, vum Wikiwööterbooch
117 if ( preg_match(
'/ b/', $case ) ) {
118 $word =
'vun ' . ( $isGenderFemale ?
'dä' :
'däm' ) .
' ' . $word;
120 $word = ( $isGenderFemale ?
'vun de' :
'vum' ) .
' ' . $word;
122 } elseif ( preg_match(
'/ [3d]/', $case ) ) {
123 # dämm WikiMaatPlaz, dä Wikipeedija, dämm Wikiwööterbooch
124 # dem/em WikiMaatplaz, de Wikipeedija, dem/em Wikiwööterbooch
125 if ( preg_match(
'/ b/', $case ) ) {
126 $word = ( $isGenderFemale ?
'dää' :
'dämm' ) .
' ' . $word;
128 $word = ( $isGenderFemale ?
'de' :
'dem' ) .
' ' . $word;
131 # dä WikiMaatPlaz, di Wikipeedija, dat Wikiwööterbooch
132 # der WikiMaatplaz, de Wikipeedija, et Wikiwööterbooch
133 if ( preg_match(
'/ b/', $case ) ) {
156 $word = $lord .
' ' . $word;
171 if ( is_string( $forms ) ) {
174 if ( !count( $forms ) ) {
179 if ( $count === 1 ) {
183 if ( $count === 0 ) {
convertPlural( $count, $forms)
Handle cases of (1, other, 0) or (1, other)
convertGrammar( $word, $case)
Grammatical transformations, needed for inflected languages Invoked by putting {{grammar:case|word}} ...
Base class for language-specific code.
preConvertPlural($forms, $count)
Checks that convertPlural was given an array and pads it to requested number of forms by copying the ...
handleExplicitPluralForms( $count, array $forms)
Handles explicit plural forms for Language::convertPlural()