<?php
+/**
+ * Tyvan (Тыва дыл) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
-/** Tyvan localization (Тыва дыл)
+/**
+ * Tyvan localization (Тыва дыл)
+ *
* From friends at tyvawiki.org
*
* @ingroup Language
* Grammatical transformations, needed for inflected languages
* Invoked by putting {{grammar:case|word}} in a message
*
- * @param $word string
- * @param $case string
+ * @param string $word
+ * @param string $case
* @return string
*/
function convertGrammar( $word, $case ) {
}
// Set up some constants...
- $allVowels = array( "е", "и", "э", "ө", "ү", "а", "ё", "о", "у", "ы", "ю", "я", "a", "e", "i", "o", "ö", "u", "ü", "y" );
- $frontVowels = array( "е", "и", "э", "ө", "ү", "e", "i", "ö", "ü" );
- $backVowels = array( "а", "ё", "о", "у", "ы", "ю", "я", "a", "o", "u", "y" );
- $unroundFrontVowels = array( "е", "и", "э", "e", "i" );
- $roundFrontVowels = array( "ө", "ү", "ö", "ü" );
- $unroundBackVowels = array( "а", "ы", "я", "a", "y" );
- $roundBackVowels = array( "ё", "о", "у", "ю", "o", "u" );
- $voicedPhonemes = array( "д", "б", "з", "ж", "г", "d", "b", "z", "g" );
- $unvoicedPhonemes = array( "т", "п", "с", "ш", "к", "ч", "х", "t", "p", "s", "k", "x" );
- $directiveUnvoicedStems = array( "т", "п", "с", "ш", "к", "ч", "х", "л", "м", "н", "ң", "t", "p", "s", "k", "x", "l", "m", "n", "ŋ" );
- $directiveVoicedStems = array( "д", "б", "з", "ж", "г", "р", "й", "d", "b", "z", "g", "r", "j" );
-
- //$allSonants = array("л", "м", "н", "ң", "р", "й");
- //$allNasals = array("м", "н", "ң");
+ $allVowels = [ "е", "и", "э", "ө", "ү", "а", "ё", "о", "у", "ы", "ю", "я" ];
+ $frontVowels = [ "е", "и", "э", "ө", "ү" ];
+ $backVowels = [ "а", "ё", "о", "у", "ы", "ю", "я" ];
+ $unroundFrontVowels = [ "е", "и", "э" ];
+ $roundFrontVowels = [ "ө", "ү" ];
+ $unroundBackVowels = [ "а", "ы", "я" ];
+ $roundBackVowels = [ "ё", "о", "у", "ю" ];
+ $unvoicedPhonemes = [ "т", "п", "с", "ш", "к", "ч", "х" ];
+ $directiveUnvoicedStems = [ "т", "п", "с", "ш", "к", "ч", "х", "л", "м", "н", "ң" ];
+ $directiveVoicedStems = [ "д", "б", "з", "ж", "г", "р", "й" ];
- //Put the word in a form we can play with since we're using UTF-8
+ // Put the word in a form we can play with since we're using UTF-8
preg_match_all( '/./us', $word, $ar );
- $wordEnding = $ar[0][count( $ar[0] ) - 1]; // Here's the last letter in the word
- $wordReversed = array_reverse( $ar[0] ); // Here's an array with the order of the letters in the word reversed so we can find a match quicker *shrug*
+ // Here's the last letter in the word
+ $wordEnding = $ar[0][count( $ar[0] ) - 1];
+
+ // Here's an array with the order of the letters in the word reversed so
+ // we can find a match quicker. *shrug*
+ $wordReversed = array_reverse( $ar[0] );
// Find the last vowel in the word
- $wordLastVowel = NULL;
+ $wordLastVowel = null;
foreach ( $wordReversed as $xvalue ) {
foreach ( $allVowels as $yvalue ) {
if ( strcmp( $xvalue, $yvalue ) == 0 ) {
continue;
}
}
- if ( $wordLastVowel !== NULL ) {
+
+ if ( $wordLastVowel !== null ) {
break;
} else {
continue;
$word = implode( "", $ar[0] ) . "тың";
} else {
}
- } elseif ( $wordEnding === "л" || $wordEnding === "l" ) {
+ } elseif ( $wordEnding === "л" ) {
if ( in_array( $wordLastVowel, $roundFrontVowels ) ) {
$word = implode( "", $ar[0] ) . "дүң";
} elseif ( in_array( $wordLastVowel, $unroundFrontVowels ) ) {
$word = implode( "", $ar[0] ) . "ты";
} else {
}
- } elseif ( $wordEnding === "л" || $wordEnding === "l" ) {
+ } elseif ( $wordEnding === "л" ) {
if ( in_array( $wordLastVowel, $roundFrontVowels ) ) {
$word = implode( "", $ar[0] ) . "дү";
} elseif ( in_array( $wordLastVowel, $unroundFrontVowels ) ) {
default:
break;
}
+
return $word;
}
}