summaryrefslogtreecommitdiff
path: root/resources/mediawiki.language/languages/ru.js
diff options
context:
space:
mode:
Diffstat (limited to 'resources/mediawiki.language/languages/ru.js')
-rw-r--r--resources/mediawiki.language/languages/ru.js38
1 files changed, 22 insertions, 16 deletions
diff --git a/resources/mediawiki.language/languages/ru.js b/resources/mediawiki.language/languages/ru.js
index 17c92931..cfdbfc3b 100644
--- a/resources/mediawiki.language/languages/ru.js
+++ b/resources/mediawiki.language/languages/ru.js
@@ -2,22 +2,28 @@
* Russian (Русский) language functions
*/
-mediaWiki.language.convertPlural = function( count, forms ) {
- if ( forms.length === 2 ) {
- return count == 1 ? forms[0] : forms[1];
+mediaWiki.language.convertGrammar = function( word, form ) {
+ var grammarForms = mw.language.getData( 'ru', 'grammarForms' );
+ if ( grammarForms && grammarForms[form] ) {
+ return grammarForms[form][word] ;
}
- forms = mediaWiki.language.preConvertPlural( forms, 3 );
- if ( count > 10 && Math.floor( ( count % 100 ) / 10 ) == 1 ) {
- return forms[2];
- }
- switch ( count % 10 ) {
- case 1:
- return forms[0];
- case 2:
- case 3:
- case 4:
- return forms[1];
- default:
- return forms[2];
+ switch ( form ) {
+ case 'genitive': // родительный падеж
+ if ( ( word.substr( word.length - 4 ) == 'вики' ) || ( word.substr( word.length - 4 ) == 'Вики' ) ) {
+ }
+ else 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 ) + 'ника';
+ break;
}
+ return word;
};