summaryrefslogtreecommitdiff
path: root/resources/lib/jquery.i18n/src/languages/os.js
blob: 474436711225ec1ac85594b1bb11d5c7e7bcd1ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/**
 * Ossetian (Ирон) language functions
 *
 * @author Santhosh Thottingal
 */

( function ( $ ) {
	'use strict';

	$.i18n.languages.os = $.extend( {}, $.i18n.languages['default'], {
		convertGrammar: function ( word, form ) {
			var endAllative, jot, hyphen, ending;

			// Ending for allative case
			endAllative = 'мæ';
			// Variable for 'j' beetwen vowels
			jot = '';
			// Variable for "-" for not Ossetic words
			hyphen = '';
			// Variable for ending
			ending = '';

			if ( word.match( /тæ$/i ) ) {
				// Checking if the $word is in plural form
				word = word.substring( 0, word.length - 1 );
				endAllative = 'æм';
			} else if ( word.match( /[аæеёиоыэюя]$/i ) ) {
				// Works if word is in singular form.
				// Checking if word ends on one of the vowels: е, ё, и, о, ы, э, ю,
				// я.
				jot = 'й';
			} else if ( word.match( /у$/i ) ) {
				// Checking if word ends on 'у'. 'У' can be either consonant 'W' or
				// vowel 'U' in cyrillic Ossetic.
				// Examples: {{grammar:genitive|аунеу}} = аунеуы,
				// {{grammar:genitive|лæппу}} = лæппуйы.
				if ( !word.substring( word.length - 2, word.length - 1 )
						.match( /[аæеёиоыэюя]$/i ) ) {
					jot = 'й';
				}
			} else if ( !word.match( /[бвгджзйклмнопрстфхцчшщьъ]$/i ) ) {
				hyphen = '-';
			}

			switch ( form ) {
			case 'genitive':
				ending = hyphen + jot + 'ы';
				break;
			case 'dative':
				ending = hyphen + jot + 'æн';
				break;
			case 'allative':
				ending = hyphen + endAllative;
				break;
			case 'ablative':
				if ( jot === 'й' ) {
					ending = hyphen + jot + 'æ';
				} else {
					ending = hyphen + jot + 'æй';
				}
				break;
			case 'superessive':
				ending = hyphen + jot + 'ыл';
				break;
			case 'equative':
				ending = hyphen + jot + 'ау';
				break;
			case 'comitative':
				ending = hyphen + 'имæ';
				break;
			}

			return word + ending;
		}
	} );
}( jQuery ) );