30 private static $familygender = [
39 'translatewiki.net' =>
'n',
81 $lord = strtolower( $word );
83 if ( preg_match(
'/wiki$/', $lord ) ) {
86 if ( isset( self::$familygender[$lord] ) ) {
87 $gender = self::$familygender[$lord];
90 $isGenderFemale = $gender ===
'f';
92 $case =
' ' . strtolower( $case );
93 if ( preg_match(
'/ [is]/', $case ) ) {
94 # däm WikiMaatplaz singe, dä Wikipeedija iere, däm Wikiwööterbooch singe
95 # dem/em WikiMaatplaz singe, de Wikipeedija iere, dem/em Wikiwööterbooch singe
96 # däm WikiMaatplaz sing, dä Wikipeedija ier, däm Wikiwööterbooch sing
97 # dem/em WikiMaatplaz sing, de Wikipeedija ier, dem/em Wikiwööterbooch sing
98 $word = ( preg_match(
'/ b/', $case )
99 ? ( $isGenderFemale ?
'dä' :
'däm' )
100 : ( $isGenderFemale ?
'de' :
'dem' )
101 ) .
' ' . $word .
' ' .
102 ( $isGenderFemale ?
'ier' :
'sing' ) .
103 ( preg_match(
'/ m/', $case ) ?
'e' :
'' );
104 } elseif ( preg_match(
'/ e/', $case ) ) {
105 # en dämm WikiMaatPlaz, en dä Wikipeedija, en dämm Wikiwööterbooch
106 # em WikiMaatplaz, en de Wikipeedija, em Wikiwööterbooch
107 if ( preg_match(
'/ b/', $case ) ) {
108 $word =
'en ' . ( $isGenderFemale ?
'dä' :
'däm' ) .
' ' . $word;
110 $word = ( $isGenderFemale ?
'en de' :
'em' ) .
' ' . $word;
112 } elseif ( preg_match(
'/ [fv]/', $case ) || preg_match(
'/ [2jg]/', $case ) ) {
113 # vun däm WikiMaatplaz, vun dä Wikipeedija, vun däm Wikiwööterbooch
114 # vum WikiMaatplaz, vun de Wikipeedija, vum Wikiwööterbooch
115 if ( preg_match(
'/ b/', $case ) ) {
116 $word =
'vun ' . ( $isGenderFemale ?
'dä' :
'däm' ) .
' ' . $word;
118 $word = ( $isGenderFemale ?
'vun de' :
'vum' ) .
' ' . $word;
120 } elseif ( preg_match(
'/ [3d]/', $case ) ) {
121 # dämm WikiMaatPlaz, dä Wikipeedija, dämm Wikiwööterbooch
122 # dem/em WikiMaatplaz, de Wikipeedija, dem/em Wikiwööterbooch
123 if ( preg_match(
'/ b/', $case ) ) {
124 $word = ( $isGenderFemale ?
'dää' :
'dämm' ) .
' ' . $word;
126 $word = ( $isGenderFemale ?
'de' :
'dem' ) .
' ' . $word;
129 # dä WikiMaatPlaz, di Wikipeedija, dat Wikiwööterbooch
130 # der WikiMaatplaz, de Wikipeedija, et Wikiwööterbooch
131 if ( preg_match(
'/ b/', $case ) ) {
154 $word = $lord .
' ' . $word;
169 if ( is_string( $forms ) ) {
172 if ( !count( $forms ) ) {
177 if ( $count === 1 ) {
181 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()