MediaWiki
REL1_22
|
00001 <?php 00030 class LanguageKsh extends Language { 00031 static $familygender = array( 00032 // Do not add male wiki families, since that's the default. 00033 // No need add neuter wikis having names ending in -wiki. 00034 'wikipedia' => 'f', 00035 'wikiversity' => 'f', 00036 'wiktionary' => 'n', 00037 'wikibooks' => 'n', 00038 'wikiquote' => 'n', 00039 'wikisource' => 'n', 00040 'wikitravel' => 'n', 00041 'wikia' => 'f', 00042 'translatewiki.net' => 'n', 00043 ); 00044 00091 function convertGrammar( $word, $case ) { 00092 $lord = strtolower( $word ); 00093 $gender = 'm'; // Nuutnaarel // default 00094 if ( preg_match ( '/wiki$/', $lord ) ) { 00095 $gender = 'n'; // Dat xyz-wiki 00096 } 00097 if ( isset( self::$familygender[$lord] ) ) { 00098 $gender = self::$familygender[$lord]; 00099 } 00100 $case = ' ' . strtolower( $case ); 00101 if ( preg_match( '/ [is]/', $case ) ) { 00102 # däm WikiMaatplaz singe, dä Wikipeedija iere, däm Wikiwööterbooch singe 00103 # dem/em WikiMaatplaz singe, de Wikipeedija iere, dem/em Wikiwööterbooch singe 00104 # däm WikiMaatplaz sing, dä Wikipeedija ier, däm Wikiwööterbooch sing 00105 # dem/em WikiMaatplaz sing, de Wikipeedija ier, dem/em Wikiwööterbooch sing 00106 $word = ( preg_match( '/ b/', $case ) 00107 ? ( $gender == 'f' ? 'dä' : 'däm' ) 00108 : ( $gender == 'f' ? 'de' : 'dem' ) 00109 ) . ' ' . $word . ' ' . 00110 ( $gender == 'f' ? 'ier' : 'sing' ) . 00111 ( preg_match( '/ m/', $case ) ? 'e' : '' 00112 ); 00113 } elseif ( preg_match( '/ e/', $case ) ) { 00114 # en dämm WikiMaatPlaz, en dä Wikipeedija, en dämm Wikiwööterbooch 00115 # em WikiMaatplaz, en de Wikipeedija, em Wikiwööterbooch 00116 if ( preg_match( '/ b/', $case ) ) { 00117 $word = 'en ' . ( $gender == 'f' ? 'dä' : 'däm' ) . ' ' . $word; 00118 } else { 00119 $word = ( $gender == 'f' ? 'en de' : 'em' ) . ' ' . $word; 00120 } 00121 } elseif ( preg_match( '/ [fv]/', $case ) || preg_match( '/ [2jg]/', $case ) ) { 00122 # vun däm WikiMaatplaz, vun dä Wikipeedija, vun däm Wikiwööterbooch 00123 # vum WikiMaatplaz, vun de Wikipeedija, vum Wikiwööterbooch 00124 if ( preg_match( '/ b/', $case ) ) { 00125 $word = 'vun ' . ( $gender == 'f' ? 'dä' : 'däm' ) . ' ' . $word; 00126 } else { 00127 $word = ( $gender == 'f' ? 'vun de' : 'vum' ) . ' ' . $word; 00128 } 00129 } elseif ( preg_match( '/ [3d]/', $case ) ) { 00130 # dämm WikiMaatPlaz, dä Wikipeedija, dämm Wikiwööterbooch 00131 # dem/em WikiMaatplaz, de Wikipeedija, dem/em Wikiwööterbooch 00132 if ( preg_match( '/ b/', $case ) ) { 00133 $word = ( $gender == 'f' ? 'dää' : 'dämm' ) . ' ' . $word; 00134 } else { 00135 $word = ( $gender == 'f' ? 'de' : 'dem' ) . ' ' . $word; 00136 } 00137 } else { 00138 # dä WikiMaatPlaz, di Wikipeedija, dat Wikiwööterbooch 00139 # der WikiMaatplaz, de Wikipeedija, et Wikiwööterbooch 00140 if ( preg_match( '/ b/', $case ) ) { 00141 switch ( $gender ) { 00142 case 'm': 00143 $lord = 'dä'; 00144 break; 00145 case 'f': 00146 $lord = 'di'; 00147 break; 00148 default: 00149 $lord = 'dat'; 00150 } 00151 } else { 00152 switch ( $gender ) { 00153 case 'm': 00154 $lord = 'der'; 00155 break; 00156 case 'f': 00157 $lord = 'de'; 00158 break; 00159 default: 00160 $lord = 'et'; 00161 } 00162 } 00163 $word = $lord . ' ' . $word; 00164 } 00165 return $word; 00166 } 00167 00175 public function commafy( $_ ) { 00176 if ( !preg_match( '/^\d{1,4}$/', $_ ) ) { 00177 return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) ); 00178 } else { 00179 return $_; 00180 } 00181 } 00182 00191 function convertPlural( $count, $forms ) { 00192 $forms = $this->handleExplicitPluralForms( $count, $forms ); 00193 if ( is_string( $forms ) ) { 00194 return $forms; 00195 } 00196 if ( !count( $forms ) ) { 00197 return ''; 00198 } 00199 $forms = $this->preConvertPlural( $forms, 3 ); 00200 00201 if ( $count == 1 ) { 00202 return $forms[0]; 00203 } elseif ( $count == 0 ) { 00204 return $forms[2]; 00205 } else { 00206 return $forms[1]; 00207 } 00208 } 00209 }