Update migrateUserGroup to deal with primary key issue
[mediawiki.git] / resources / mediawiki.language / languages / os.js
blob431e38c80891bc70058a1cf23f4bbe3c05bf97e3
1 /**
2  * Ossetian (Ирон) language functions
3  * @author Santhosh Thottingal
4  */
7 mediaWiki.language.convertGrammar = function( word, form ) {
8         var grammarForms = mw.language.getData( 'os', 'grammarForms' );
9         if ( grammarForms && grammarForms[form] ) {
10                 return grammarForms[form][word] ;
11         }
12         // Ending for allative case
13         var end_allative = 'мæ';
14         // Variable for 'j' beetwen vowels
15         var jot = '';
16         // Variable for "-" for not Ossetic words
17         var hyphen = '';
18         // Variable for ending
19         var ending = '';
20         // Checking if the $word is in plural form
21         if ( word.match( /тæ$/i ) ) {
22                 word = word.substring( 0, word.length - 1 );
23                 end_allative = 'æм';
24         }
25         // Works if word is in singular form.
26         // Checking if word ends on one of the vowels: е, ё, и, о, ы, э, ю, я.
27         else if ( word.match( /[аæеёиоыэюя]$/i ) ) {
28                 jot = 'й';
29         }
30         // Checking if word ends on 'у'. 'У' can be either consonant 'W' or vowel 'U' in cyrillic Ossetic.
31         // Examples: {{grammar:genitive|аунеу}} = аунеуы, {{grammar:genitive|лæппу}} = лæппуйы.
32         else if ( word.match( /у$/i ) ) {
33                 if ( ! word.substring( word.length-2, word.length-1 ).match( /[аæеёиоыэюя]$/i ) ) {
34                         jot = 'й';
35                 }
36         } else if ( !word.match( /[бвгджзйклмнопрстфхцчшщьъ]$/i ) ) {
37                 hyphen = '-';
38         }
40         switch ( form ) {
41                 case 'genitive':
42                         ending = hyphen + jot + 'ы';
43                         break;
44                 case 'dative':
45                         ending = hyphen + jot + 'æн';
46                         break;
47                 case 'allative':
48                         ending = hyphen + end_allative;
49                         break;
50                 case 'ablative':
51                         if ( jot == 'й' ) {
52                                 ending = hyphen + jot + 'æ';
53                         }
54                         else {
55                                 ending = hyphen + jot + 'æй';
56                         }
57                         break;
58                 case 'superessive':
59                         ending = hyphen + jot + 'ыл';
60                         break;
61                 case 'equative':
62                         ending = hyphen + jot + 'ау';
63                         break;
64                 case 'comitative':
65                         ending = hyphen + 'имæ';
66                         break;
67         }
68         return word + ending;