Add grammar forms for Russian

This adds support for the Russian name of Wikimedia Commons.

Change-Id: If531e9ff8f46ac5294b117eec43172b4975e2ad6
This commit is contained in:
Amir E. Aharoni 2014-06-08 21:55:16 +03:00 committed by Amire80
parent 1765227b43
commit fab8c6f541
4 changed files with 30 additions and 0 deletions

View file

@ -65,6 +65,8 @@ class LanguageRu extends Language {
$word = join( '', array_slice( $chars[0], 0, -2 ) ) . 'тей';
} elseif ( join( '', array_slice( $chars[0], -2 ) ) === 'ды' ) {
$word = join( '', array_slice( $chars[0], 0, -2 ) ) . 'дов';
} elseif ( join( '', array_slice( $chars[0], -1 ) ) === 'д' ) {
$word = join( '', array_slice( $chars[0], 0, -1 ) ) . 'да';
} elseif ( join( '', array_slice( $chars[0], -3 ) ) === 'ник' ) {
$word = join( '', array_slice( $chars[0], 0, -3 ) ) . 'ника';
} elseif ( join( '', array_slice( $chars[0], -3 ) ) === 'ные' ) {
@ -91,6 +93,8 @@ class LanguageRu extends Language {
$word = join( '', array_slice( $chars[0], 0, -2 ) ) . 'тях';
} elseif ( join( '', array_slice( $chars[0], -2 ) ) === 'ды' ) {
$word = join( '', array_slice( $chars[0], 0, -2 ) ) . 'дах';
} elseif ( join( '', array_slice( $chars[0], -1 ) ) === 'д' ) {
$word = join( '', array_slice( $chars[0], 0, -1 ) ) . 'де';
} elseif ( join( '', array_slice( $chars[0], -3 ) ) === 'ник' ) {
$word = join( '', array_slice( $chars[0], 0, -3 ) ) . 'нике';
} elseif ( join( '', array_slice( $chars[0], -3 ) ) === 'ные' ) {

View file

@ -25,6 +25,8 @@ 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 - 1 ) === 'д' ) {
word = word.substr(0, word.length - 1 ) + 'да';
} else if ( word.substr( word.length - 3 ) === 'ные' ) {
word = word.substr(0, word.length - 3 ) + 'ных';
} else if ( word.substr( word.length - 3 ) === 'ник' ) {
@ -42,6 +44,8 @@ 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 - 1 ) === 'д' ) {
word = word.substr(0, word.length - 1 ) + 'де';
} else if ( word.substr( word.length - 3 ) === 'ные' ) {
word = word.substr(0, word.length - 3 ) + 'ных';
} else if ( word.substr( word.length - 3 ) === 'ник' ) {

View file

@ -95,6 +95,16 @@ class LanguageRuTest extends LanguageClassesTestCase {
'Викитека',
'prepositional',
),
array(
'Викисклада',
'Викисклад',
'genitive',
),
array(
'Викискладе',
'Викисклад',
'prepositional',
),
array(
'Викиданных',
'Викиданные',

View file

@ -258,6 +258,18 @@
expected: 'доводах',
description: 'Grammar test for prepositional case, доводы -> доводах'
},
{
word: 'Викисклад',
grammarForm: 'prepositional',
expected: 'Викискладе',
description: 'Grammar test for prepositional case, Викисклад -> Викискладе'
},
{
word: 'Викисклад',
grammarForm: 'genitive',
expected: 'Викисклада',
description: 'Grammar test for genitive case, Викисклад -> Викисклада'
},
{
word: 'песчаник',
grammarForm: 'prepositional',