JSDuck-ify /resources/mediawiki.language/*
[lhc/web/wiklou.git] / resources / mediawiki.language / languages / ru.js
index b27dea4..e66b9cd 100644 (file)
@@ -1,17 +1,21 @@
-/**
+/*!
  * 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 @@ mediaWiki.language.convertGrammar = function ( word, form ) {
                                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;
 };