* Russian (Русский) language functions
*/
+// These tests were originally made for names of Wikimedia
+// websites, so they don't currently cover all the possible
+// cases.
+
mediaWiki.language.convertGrammar = function ( word, form ) {
- /*jshint noempty:false, onecase:true */
+ 'use strict';
+
var grammarForms = mediaWiki.language.getData( 'ru', 'grammarForms' );
if ( grammarForms && grammarForms[form] ) {
return grammarForms[form][word];
}
switch ( form ) {
case 'genitive': // родительный падеж
- if ( ( word.substr( word.length - 4 ) === 'вики' ) || ( word.substr( word.length - 4 ) === 'Вики' ) ) {
- } else if ( word.substr( word.length - 1 ) === 'ь' ) {
+ if ( word.substr( word.length - 1 ) === 'ь' ) {
word = word.substr(0, word.length - 1 ) + 'я';
} else if ( word.substr( word.length - 2 ) === 'ия' ) {
word = word.substr(0, word.length - 2 ) + 'ии';
word = word.substr(0, word.length - 2 ) + 'тей';
} else if ( word.substr( word.length - 2 ) === 'ды' ) {
word = word.substr(0, word.length - 2 ) + 'дов';
+ } else if ( word.substr( word.length - 3 ) === 'ные' ) {
+ word = word.substr(0, word.length - 3 ) + 'ных';
} else if ( word.substr( word.length - 3 ) === 'ник' ) {
word = word.substr(0, word.length - 3 ) + 'ника';
}
break;
+ case 'prepositional': // предложный падеж
+ if ( word.substr( word.length - 1 ) === 'ь' ) {
+ word = word.substr(0, word.length - 1 ) + 'е';
+ } else if ( word.substr( word.length - 2 ) === 'ия' ) {
+ word = word.substr(0, word.length - 2 ) + 'ии';
+ } else if ( word.substr( word.length - 2 ) === 'ка' ) {
+ word = word.substr(0, word.length - 2 ) + 'ке';
+ } else if ( word.substr( word.length - 2 ) === 'ти' ) {
+ word = word.substr(0, word.length - 2 ) + 'тях';
+ } else if ( word.substr( word.length - 2 ) === 'ды' ) {
+ word = word.substr(0, word.length - 2 ) + 'дах';
+ } else if ( word.substr( word.length - 3 ) === 'ные' ) {
+ word = word.substr(0, word.length - 3 ) + 'ных';
+ } else if ( word.substr( word.length - 3 ) === 'ник' ) {
+ word = word.substr(0, word.length - 3 ) + 'нике';
+ }
+ break;
}
return word;
};
( function ( mw, $ ) {
+ 'use strict';
QUnit.module( 'mediawiki.language', QUnit.newMwEnvironment( {
setup: function () {
} );
}
+ // These tests run only for the current UI language.
var grammarTests = {
bs: [
{
word: 'тесть',
grammarForm: 'genitive',
expected: 'тестя',
- description: 'Grammar test for genitive case'
+ description: 'Grammar test for genitive case, тесть -> тестя'
},
{
word: 'привилегия',
grammarForm: 'genitive',
expected: 'привилегии',
- description: 'Grammar test for genitive case'
+ description: 'Grammar test for genitive case, привилегия -> привилегии'
},
{
word: 'установка',
grammarForm: 'genitive',
expected: 'установки',
- description: 'Grammar test for genitive case'
+ description: 'Grammar test for genitive case, установка -> установки'
},
{
word: 'похоти',
grammarForm: 'genitive',
expected: 'похотей',
- description: 'Grammar test for genitive case'
+ description: 'Grammar test for genitive case, похоти -> похотей'
},
{
word: 'доводы',
grammarForm: 'genitive',
expected: 'доводов',
- description: 'Grammar test for genitive case'
+ description: 'Grammar test for genitive case, доводы -> доводов'
},
{
word: 'песчаник',
grammarForm: 'genitive',
expected: 'песчаника',
- description: 'Grammar test for genitive case'
+ description: 'Grammar test for genitive case, песчаник -> песчаника'
+ },
+ {
+ word: 'данные',
+ grammarForm: 'genitive',
+ expected: 'данных',
+ description: 'Grammar test for genitive case, данные -> данных'
+ },
+ {
+ word: 'тесть',
+ grammarForm: 'prepositional',
+ expected: 'тесте',
+ description: 'Grammar test for prepositional case, тесть -> тесте'
+ },
+ {
+ word: 'привилегия',
+ grammarForm: 'prepositional',
+ expected: 'привилегии',
+ description: 'Grammar test for prepositional case, привилегия -> привилегии'
+ },
+ {
+ word: 'установка',
+ grammarForm: 'prepositional',
+ expected: 'установке',
+ description: 'Grammar test for prepositional case, установка -> установке'
+ },
+ {
+ word: 'похоти',
+ grammarForm: 'prepositional',
+ expected: 'похотях',
+ description: 'Grammar test for prepositional case, похоти -> похотях'
+ },
+ {
+ word: 'доводы',
+ grammarForm: 'prepositional',
+ expected: 'доводах',
+ description: 'Grammar test for prepositional case, доводы -> доводах'
+ },
+ {
+ word: 'песчаник',
+ grammarForm: 'prepositional',
+ expected: 'песчанике',
+ description: 'Grammar test for prepositional case, песчаник -> песчанике'
+ },
+ {
+ word: 'данные',
+ grammarForm: 'prepositional',
+ expected: 'данных',
+ description: 'Grammar test for prepositional case, данные -> данных'
}
],
-
hu: [
{
word: 'Wikipédiá',