From bf0f7e2a645061969fc556e4f4838e69e5891d17 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Niklas=20Laxstr=C3=B6m?= Date: Sun, 3 Feb 2008 09:16:56 +0000 Subject: [PATCH] * (bug 12885) Correction for Russian convertPlural function --- RELEASE-NOTES | 1 + languages/classes/LanguageRu.php | 30 ++++++++++++++---------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 920aa24317..45b6d0ac8d 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -354,6 +354,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * Don't display rollback link if the user doesn't have all required permissions * The comment of a time-limited protection now contains the date in the default format * (bug 12880) wfLoadExtensionMessages does not use $fallback from MessagesXx.php +* (bug 12885) Correction for Russian convertPlural function == Parser changes in 1.12 == diff --git a/languages/classes/LanguageRu.php b/languages/classes/LanguageRu.php index ddca9ea61c..f6311b333c 100644 --- a/languages/classes/LanguageRu.php +++ b/languages/classes/LanguageRu.php @@ -58,28 +58,26 @@ class LanguageRu extends Language { /** * Plural form transformations - * - * $wordform1 - singular form (for 1, 21, 31, 41...) - * $wordform2 - paucal form (for 2, 3, 4, 22, 23, 24, 32, 33, 34...) - * $wordform3 - plural form (for 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26...) - * $wordform4 - plural form for messages without number - * $wordform5 - not used - * + * + * $forms[0] - singular form (for 1, 21, 31, 41...) + * $forms[1] - paucal form (for 2, 3, 4, 22, 23, 24, 32, 33, 34...) + * $forms[2] - plural form (for 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26...) + * * Examples: - * message with number - * "Сделано $1 {{PLURAL:$1|изменение|изменения|изменений}}" - * message without number - * "Действие не может быть выполнено по {{PLURAL:$1|следующей причине|||следующим причинам}}:" - * + * message with number + * "Сделано $1 {{PLURAL:$1|изменение|изменения|изменений}}" + * message without number + * "Действие не может быть выполнено по {{PLURAL:$1|следующей причине|следующим причинам}}:" + * */ function convertPlural( $count, $forms ) { if ( !count($forms) ) { return ''; } - $forms = $this->preConvertPlural( $forms, 3 ); - $count = abs( $count ); - if ( isset($forms[3]) && $count != 1 ) - return $forms[3]; + //if no number with word, then use $form[0] for singular and $form[1] for plural or zero + if( count($forms) === 2 ) return $count == 1 ? $forms[0] : $forms[1]; + + $forms = $this->preConvertPlural( $forms, 3 ); if ($count > 10 && floor(($count % 100) / 10) == 1) { return $forms[2]; -- 2.20.1