MediaWiki  REL1_20
LanguageKsh.php
Go to the documentation of this file.
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                 if ( !count( $forms ) ) { return ''; }
00193                 $forms = $this->preConvertPlural( $forms, 3 );
00194 
00195                 if ( $count == 1 ) {
00196                         return $forms[0];
00197                 } elseif ( $count == 0 ) {
00198                         return $forms[2];
00199                 } else {
00200                         return $forms[1];
00201                 }
00202         }
00203 }