MediaWiki  REL1_19
LanguageKsh.php
Go to the documentation of this file.
00001 <?php
00002 
00009 class LanguageKsh extends Language {
00010         static $familygender = array(
00011                 // Do not add male wiki families, since that's the default.
00012                 // No need add neuter wikis having names ending in -wiki.
00013                         'wikipedia' => 'f',
00014                         'wikiversity' => 'f',
00015                         'wiktionary' => 'n',
00016                         'wikibooks' => 'n',
00017                         'wikiquote' => 'n',
00018                         'wikisource' => 'n',
00019                         'wikitravel' => 'n',
00020                         'wikia' => 'f',
00021                         'translatewiki.net' => 'n',
00022                 );
00023 
00070         function convertGrammar( $word, $case ) {
00071                 $lord = strtolower( $word );
00072                 $gender = 'm'; // Nuutnaarel // default
00073                 if ( preg_match ( '/wiki$/', $lord ) ) {
00074                         $gender = 'n';  // Dat xyz-wiki
00075                 }
00076                 if ( isset( self::$familygender[$lord] ) ) {
00077                         $gender = self::$familygender[$lord];
00078                 }
00079                 $case = ' ' . strtolower( $case );
00080                 if ( preg_match( '/ [is]/', $case ) ) {
00081                         # däm WikiMaatplaz singe, dä Wikipeedija iere, däm Wikiwööterbooch singe
00082                         # dem/em WikiMaatplaz singe, de Wikipeedija iere, dem/em Wikiwööterbooch singe
00083                         # däm WikiMaatplaz sing, dä Wikipeedija ier, däm Wikiwööterbooch sing
00084                         # dem/em WikiMaatplaz sing, de Wikipeedija ier, dem/em Wikiwööterbooch sing
00085                         $word = ( preg_match( '/ b/', $case )
00086                                                 ? ( $gender=='f' ? 'dä' : 'däm' )
00087                                                 : ( $gender=='f' ? 'de' : 'dem' )
00088                                         ) . ' ' . $word . ' ' .
00089                                         ( $gender=='f' ? 'ier' : 'sing' ) .
00090                                         ( preg_match( '/ m/', $case ) ? 'e' : ''
00091                                 );
00092                 } elseif ( preg_match( '/ e/', $case ) ) {
00093                         # en dämm WikiMaatPlaz, en dä Wikipeedija, en dämm Wikiwööterbooch
00094                         # em WikiMaatplaz, en de Wikipeedija, em Wikiwööterbooch
00095                         if ( preg_match( '/ b/', $case ) ) {
00096                                 $word = 'en '.( $gender == 'f' ? 'dä' : 'däm' ) . ' ' . $word;
00097                         } else {
00098                                 $word = ( $gender == 'f' ? 'en de' : 'em' ) . ' ' . $word;
00099                         }
00100                 } elseif ( preg_match( '/ [fv]/', $case ) || preg_match( '/ [2jg]/', $case ) ) {
00101                         # vun däm WikiMaatplaz, vun dä Wikipeedija, vun däm Wikiwööterbooch
00102                         # vum WikiMaatplaz, vun de Wikipeedija, vum Wikiwööterbooch
00103                         if ( preg_match( '/ b/', $case ) ) {
00104                                 $word = 'vun ' . ( $gender == 'f' ? 'dä' : 'däm' ) . ' ' . $word;
00105                         } else {
00106                                 $word = ( $gender== 'f' ? 'vun de' : 'vum' ) . ' ' . $word;
00107                         }
00108                 } elseif ( preg_match( '/ [3d]/', $case ) ) {
00109                         # dämm WikiMaatPlaz, dä Wikipeedija, dämm Wikiwööterbooch
00110                         # dem/em WikiMaatplaz, de Wikipeedija, dem/em Wikiwööterbooch
00111                         if ( preg_match( '/ b/', $case ) ) {
00112                                 $word = ( $gender == 'f' ? 'dää' : 'dämm' ) .' ' . $word;
00113                         } else {
00114                                 $word = ( $gender == 'f' ? 'de' : 'dem' ) . ' ' . $word;
00115                         }
00116                 } else {
00117                         # dä WikiMaatPlaz, di Wikipeedija, dat Wikiwööterbooch
00118                         # der WikiMaatplaz, de Wikipeedija, et Wikiwööterbooch
00119                         if ( preg_match( '/ b/', $case ) ) {
00120                                 switch ( $gender ) {
00121                                         case 'm':
00122                                                 $lord = 'dä';
00123                                                 break ;
00124                                         case 'f':
00125                                                 $lord = 'di';
00126                                                 break;
00127                                         default:
00128                                                 $lord = 'dat';
00129                                 }
00130                         } else {
00131                                 switch ( $gender ) {
00132                                         case 'm':
00133                                                 $lord = 'der';
00134                                                 break;
00135                                         case 'f':
00136                                                 $lord = 'de';
00137                                                 break;
00138                                         default:
00139                                                 $lord = 'et';
00140                                 }
00141                         }
00142                         $word = $lord.' '.$word;
00143                 }
00144                 return $word;
00145         }
00146 
00154         public function commafy( $_ ) {
00155                 if ( !preg_match( '/^\d{1,4}$/', $_ ) ) {
00156                         return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) );
00157                 } else {
00158                         return $_;
00159                 }
00160         }
00161 
00170         function convertPlural( $count, $forms ) {
00171                 if ( !count( $forms ) ) { return ''; }
00172                 $forms = $this->preConvertPlural( $forms, 3 );
00173 
00174                 if ( $count == 1 ) {
00175                         return $forms[0];
00176                 } elseif ( $count == 0 ) {
00177                         return $forms[2];
00178                 } else {
00179                         return $forms[1];
00180                 }
00181         }
00182 }