Amire80 has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/49615


Change subject: Extend Russian grammar support
......................................................................

Extend Russian grammar support

Follow up Ic02bfb9ce88e93775036f3d15921cedca602237c

Change-Id: I4c8714b19964deedfc7e7f802501387b96a9a310
---
M resources/mediawiki.language/languages/ru.js
M tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js
2 files changed, 82 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/15/49615/1

diff --git a/resources/mediawiki.language/languages/ru.js 
b/resources/mediawiki.language/languages/ru.js
index b27dea4..1bc0632 100644
--- a/resources/mediawiki.language/languages/ru.js
+++ b/resources/mediawiki.language/languages/ru.js
@@ -2,16 +2,20 @@
  * 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 ) + 'ии';
@@ -21,10 +25,29 @@
                                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;
 };
diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js 
b/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js
index 7cfa46a..9ca434f 100644
--- a/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js
+++ b/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js
@@ -1,4 +1,5 @@
 ( function ( mw, $ ) {
+       'use strict';
 
        QUnit.module( 'mediawiki.language', QUnit.newMwEnvironment( {
                setup: function () {
@@ -32,6 +33,7 @@
                } );
        }
 
+       // These tests run only for the current UI language.
        var grammarTests = {
                bs: [
                        {
@@ -188,40 +190,87 @@
                                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: [
                        {

-- 
To view, visit https://gerrit.wikimedia.org/r/49615
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4c8714b19964deedfc7e7f802501387b96a9a310
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Amire80 <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to