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