From: Amir E. Aharoni Date: Sun, 8 Jun 2014 18:55:16 +0000 (+0300) Subject: Add grammar forms for Russian X-Git-Tag: 1.31.0-rc.0~15092 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/ajouter.php?a=commitdiff_plain;h=fab8c6f541a12e3ddc13da3517cd113f2936b56a;p=lhc%2Fweb%2Fwiklou.git Add grammar forms for Russian This adds support for the Russian name of Wikimedia Commons. Change-Id: If531e9ff8f46ac5294b117eec43172b4975e2ad6 --- diff --git a/languages/classes/LanguageRu.php b/languages/classes/LanguageRu.php index 740663ffef..226e313e4b 100644 --- a/languages/classes/LanguageRu.php +++ b/languages/classes/LanguageRu.php @@ -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 ) ) === 'ные' ) { diff --git a/resources/src/mediawiki.language/languages/ru.js b/resources/src/mediawiki.language/languages/ru.js index e66b9cdeec..b6ba59fb85 100644 --- a/resources/src/mediawiki.language/languages/ru.js +++ b/resources/src/mediawiki.language/languages/ru.js @@ -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 ) === 'ник' ) { diff --git a/tests/phpunit/languages/LanguageRuTest.php b/tests/phpunit/languages/LanguageRuTest.php index 792cf726da..f64fc722a1 100644 --- a/tests/phpunit/languages/LanguageRuTest.php +++ b/tests/phpunit/languages/LanguageRuTest.php @@ -95,6 +95,16 @@ class LanguageRuTest extends LanguageClassesTestCase { 'Викитека', 'prepositional', ), + array( + 'Викисклада', + 'Викисклад', + 'genitive', + ), + array( + 'Викискладе', + 'Викисклад', + 'prepositional', + ), array( 'Викиданных', 'Викиданные', diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js index 9ca434f1ec..3bfabe4c23 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js @@ -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',