35 MediaWikiServices::getInstance()->getMainConfig()->get( MainConfigNames::GrammarForms );
36 if ( isset( $grammarForms[
'tyv'][$case][$word] ) ) {
37 return $grammarForms[
'tyv'][$case][$word];
41 $allVowels = [
"е",
"и",
"э",
"ө",
"ү",
"а",
"ё",
"о",
"у",
"ы",
"ю",
"я" ];
42 $frontVowels = [
"е",
"и",
"э",
"ө",
"ү" ];
43 $backVowels = [
"а",
"ё",
"о",
"у",
"ы",
"ю",
"я" ];
44 $unroundFrontVowels = [
"е",
"и",
"э" ];
45 $roundFrontVowels = [
"ө",
"ү" ];
46 $unroundBackVowels = [
"а",
"ы",
"я" ];
47 $roundBackVowels = [
"ё",
"о",
"у",
"ю" ];
48 $unvoicedPhonemes = [
"т",
"п",
"с",
"ш",
"к",
"ч",
"х" ];
49 $directiveUnvoicedStems = [
"т",
"п",
"с",
"ш",
"к",
"ч",
"х",
"л",
"м",
"н",
"ң" ];
50 $directiveVoicedStems = [
"д",
"б",
"з",
"ж",
"г",
"р",
"й" ];
53 $ar = mb_str_split( $word, 1 );
56 $wordEnding = end( $ar );
59 $wordLastVowel =
null;
60 for ( $i = count( $ar ); $i--; ) {
61 if ( in_array( $ar[$i], $allVowels,
true ) ) {
62 $wordLastVowel = $ar[$i];
70 if ( in_array( $wordEnding, $unvoicedPhonemes ) ) {
71 if ( in_array( $wordLastVowel, $roundFrontVowels ) ) {
73 } elseif ( in_array( $wordLastVowel, $unroundFrontVowels ) ) {
75 } elseif ( in_array( $wordLastVowel, $roundBackVowels ) ) {
77 } elseif ( in_array( $wordLastVowel, $unroundBackVowels ) ) {
80 } elseif ( $wordEnding ===
"л" ) {
81 if ( in_array( $wordLastVowel, $roundFrontVowels ) ) {
83 } elseif ( in_array( $wordLastVowel, $unroundFrontVowels ) ) {
85 } elseif ( in_array( $wordLastVowel, $roundBackVowels ) ) {
87 } elseif ( in_array( $wordLastVowel, $unroundBackVowels ) ) {
91 if ( in_array( $wordLastVowel, $roundFrontVowels ) ) {
93 } elseif ( in_array( $wordLastVowel, $unroundFrontVowels ) ) {
95 } elseif ( in_array( $wordLastVowel, $roundBackVowels ) ) {
97 } elseif ( in_array( $wordLastVowel, $unroundBackVowels ) ) {
104 if ( in_array( $wordEnding, $unvoicedPhonemes ) ) {
105 if ( in_array( $wordLastVowel, $frontVowels ) ) {
107 } elseif ( in_array( $wordLastVowel, $backVowels ) ) {
111 if ( in_array( $wordLastVowel, $frontVowels ) ) {
113 } elseif ( in_array( $wordLastVowel, $backVowels ) ) {
120 if ( in_array( $wordEnding, $unvoicedPhonemes ) ) {
121 if ( in_array( $wordLastVowel, $roundFrontVowels ) ) {
123 } elseif ( in_array( $wordLastVowel, $unroundFrontVowels ) ) {
125 } elseif ( in_array( $wordLastVowel, $roundBackVowels ) ) {
127 } elseif ( in_array( $wordLastVowel, $unroundBackVowels ) ) {
130 } elseif ( $wordEnding ===
"л" ) {
131 if ( in_array( $wordLastVowel, $roundFrontVowels ) ) {
133 } elseif ( in_array( $wordLastVowel, $unroundFrontVowels ) ) {
135 } elseif ( in_array( $wordLastVowel, $roundBackVowels ) ) {
137 } elseif ( in_array( $wordLastVowel, $unroundBackVowels ) ) {
141 if ( in_array( $wordLastVowel, $roundFrontVowels ) ) {
143 } elseif ( in_array( $wordLastVowel, $unroundFrontVowels ) ) {
145 } elseif ( in_array( $wordLastVowel, $roundBackVowels ) ) {
147 } elseif ( in_array( $wordLastVowel, $unroundBackVowels ) ) {
154 if ( in_array( $wordEnding, $unvoicedPhonemes ) ) {
155 if ( in_array( $wordLastVowel, $frontVowels ) ) {
157 } elseif ( in_array( $wordLastVowel, $backVowels ) ) {
161 if ( in_array( $wordLastVowel, $frontVowels ) ) {
163 } elseif ( in_array( $wordLastVowel, $backVowels ) ) {
170 if ( in_array( $wordEnding, $unvoicedPhonemes ) ) {
171 if ( in_array( $wordLastVowel, $frontVowels ) ) {
173 } elseif ( in_array( $wordLastVowel, $backVowels ) ) {
177 if ( in_array( $wordLastVowel, $frontVowels ) ) {
179 } elseif ( in_array( $wordLastVowel, $backVowels ) ) {
186 if ( in_array( $wordEnding, $directiveVoicedStems ) ) {
188 } elseif ( in_array( $wordEnding, $directiveUnvoicedStems ) ) {
194 if ( in_array( $wordEnding, $unvoicedPhonemes ) ) {
195 if ( in_array( $wordLastVowel, $roundFrontVowels ) ) {
197 } elseif ( in_array( $wordLastVowel, $unroundFrontVowels ) ) {
199 } elseif ( in_array( $wordLastVowel, $roundBackVowels ) ) {
201 } elseif ( in_array( $wordLastVowel, $unroundBackVowels ) ) {
205 if ( in_array( $wordLastVowel, $roundFrontVowels ) ) {
207 } elseif ( in_array( $wordLastVowel, $unroundFrontVowels ) ) {
209 } elseif ( in_array( $wordLastVowel, $roundBackVowels ) ) {
211 } elseif ( in_array( $wordLastVowel, $unroundBackVowels ) ) {