00001 <?php
00002
00007 class LanguageLa extends Language {
00016 function convertGrammar( $word, $case ) {
00017 global $wgGrammarForms;
00018 if ( isset($wgGrammarForms['la'][$case][$word]) ) {
00019 return $wgGrammarForms['la'][$case][$word];
00020 }
00021
00022 switch ( $case ) {
00023 case 'genitive':
00024
00025 $in = array( '/u[ms]$/', # 2nd declension singular
00026 '/ommunia$/', # 3rd declension neuter plural (partly)
00027 '/a$/', # 1st declension singular
00028 '/libri$/', '/nuntii$/', # 2nd declension plural (partly)
00029 '/tio$/', '/ns$/', '/as$/', # 3rd declension singular (partly)
00030 '/es$/' # 5th declension singular
00031 );
00032 $out = array( 'i',
00033 'ommunium',
00034 'ae',
00035 'librorum', 'nuntiorum',
00036 'tionis', 'ntis', 'atis',
00037 'ei'
00038 );
00039 return preg_replace( $in, $out, $word );
00040 case 'accusative':
00041
00042 $in = array( '/u[ms]$/', # 2nd declension singular
00043 '/a$/', # 1st declension singular
00044 '/ommuniam$/', # 3rd declension neuter plural (partly)
00045 '/libri$/', '/nuntii$/', # 2nd declension plural (partly)
00046 '/tio$/', '/ns$/', '/as$/', # 3rd declension singular (partly)
00047 '/es$/' # 5th declension singular
00048 );
00049 $out = array( 'um',
00050 'am',
00051 'ommunia',
00052 'libros', 'nuntios',
00053 'tionem', 'ntem', 'atem',
00054 'em'
00055 );
00056 return preg_replace( $in, $out, $word );
00057 case 'ablative':
00058
00059 $in = array( '/u[ms]$/', # 2nd declension singular
00060 '/ommunia$/', # 3rd declension neuter plural (partly)
00061 '/a$/', # 1st declension singular
00062 '/libri$/', '/nuntii$/', # 2nd declension plural (partly)
00063 '/tio$/', '/ns$/', '/as$/', # 3rd declension singular (partly)
00064 '/es$/' # 5th declension singular
00065 );
00066 $out = array( 'o',
00067 'ommunibus',
00068 'a',
00069 'libris', 'nuntiis',
00070 'tione', 'nte', 'ate',
00071 'e'
00072 );
00073 return preg_replace( $in, $out, $word );
00074 default:
00075 return $word;
00076 }
00077 }
00078 }