MediaWiki  REL1_22
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         $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 }