banana-i18n
Version:
Banana Internationalization library
74 lines (68 loc) • 2.01 kB
JavaScript
/**
* Ossetian (Ирон) language functions
*
* @author Santhosh Thottingal
*/
import BananaLanguage from './language.js'
export default class OssetianLanguage extends BananaLanguage {
convertGrammar (word, form) {
let 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.slice(0, -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.slice(-2, -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
}
}