From b3f5c36d67d641f3bfe1f027fcc520ee90fe5aa0 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Mon, 28 Sep 2009 08:40:09 +0000 Subject: [PATCH] Partial update of plural forms per http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html * updating check blacklists in core and Translate * adding language classes for codes that use singular form for plural as only difference to English plural forms * adding FIXME for 'be' plurals: MediaWiki definitions differs from CLDR --- languages/classes/LanguageAm.php | 16 ++++++++++++++++ languages/classes/LanguageBe.php | 2 ++ languages/classes/LanguageBh.php | 16 ++++++++++++++++ languages/classes/LanguageHi.php | 16 ++++++++++++++++ languages/classes/LanguageMg.php | 16 ++++++++++++++++ languages/classes/LanguageNso.php | 16 ++++++++++++++++ languages/classes/LanguagePt.php | 16 ++++++++++++++++ languages/classes/LanguageTi.php | 16 ++++++++++++++++ languages/classes/LanguageTl.php | 16 ++++++++++++++++ languages/classes/LanguageWa.php | 10 ++++++++++ maintenance/language/checkLanguage.inc | 14 +++++++++++++- 11 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 languages/classes/LanguageAm.php create mode 100644 languages/classes/LanguageBh.php create mode 100644 languages/classes/LanguageHi.php create mode 100644 languages/classes/LanguageMg.php create mode 100644 languages/classes/LanguageNso.php create mode 100644 languages/classes/LanguagePt.php create mode 100644 languages/classes/LanguageTi.php create mode 100644 languages/classes/LanguageTl.php diff --git a/languages/classes/LanguageAm.php b/languages/classes/LanguageAm.php new file mode 100644 index 0000000000..cf31c709d7 --- /dev/null +++ b/languages/classes/LanguageAm.php @@ -0,0 +1,16 @@ +preConvertPlural( $forms, 2 ); + + return ($count <= 1) ? $forms[0] : $forms[1]; + } +} diff --git a/languages/classes/LanguageBe.php b/languages/classes/LanguageBe.php index 1468daff40..c9ae0fcdf2 100644 --- a/languages/classes/LanguageBe.php +++ b/languages/classes/LanguageBe.php @@ -17,6 +17,8 @@ class LanguageBe extends Language { function convertPlural( $count, $forms ) { if ( !count($forms) ) { return ''; } + // FIXME: CLDR defines 4 plural forms instead of 3 + // http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html $forms = $this->preConvertPlural( $forms, 3 ); if ($count > 10 && floor(($count % 100) / 10) == 1) { diff --git a/languages/classes/LanguageBh.php b/languages/classes/LanguageBh.php new file mode 100644 index 0000000000..80119ec7b0 --- /dev/null +++ b/languages/classes/LanguageBh.php @@ -0,0 +1,16 @@ +preConvertPlural( $forms, 2 ); + + return ($count <= 1) ? $forms[0] : $forms[1]; + } +} diff --git a/languages/classes/LanguageHi.php b/languages/classes/LanguageHi.php new file mode 100644 index 0000000000..705c73bcd1 --- /dev/null +++ b/languages/classes/LanguageHi.php @@ -0,0 +1,16 @@ +preConvertPlural( $forms, 2 ); + + return ($count <= 1) ? $forms[0] : $forms[1]; + } +} diff --git a/languages/classes/LanguageMg.php b/languages/classes/LanguageMg.php new file mode 100644 index 0000000000..8593a298c1 --- /dev/null +++ b/languages/classes/LanguageMg.php @@ -0,0 +1,16 @@ +preConvertPlural( $forms, 2 ); + + return ($count <= 1) ? $forms[0] : $forms[1]; + } +} diff --git a/languages/classes/LanguageNso.php b/languages/classes/LanguageNso.php new file mode 100644 index 0000000000..1b56e76a14 --- /dev/null +++ b/languages/classes/LanguageNso.php @@ -0,0 +1,16 @@ +preConvertPlural( $forms, 2 ); + + return ($count <= 1) ? $forms[0] : $forms[1]; + } +} diff --git a/languages/classes/LanguagePt.php b/languages/classes/LanguagePt.php new file mode 100644 index 0000000000..f88c177cd7 --- /dev/null +++ b/languages/classes/LanguagePt.php @@ -0,0 +1,16 @@ +preConvertPlural( $forms, 2 ); + + return ($count <= 1) ? $forms[0] : $forms[1]; + } +} diff --git a/languages/classes/LanguageTi.php b/languages/classes/LanguageTi.php new file mode 100644 index 0000000000..1974915dc2 --- /dev/null +++ b/languages/classes/LanguageTi.php @@ -0,0 +1,16 @@ +preConvertPlural( $forms, 2 ); + + return ($count <= 1) ? $forms[0] : $forms[1]; + } +} diff --git a/languages/classes/LanguageTl.php b/languages/classes/LanguageTl.php new file mode 100644 index 0000000000..23b6ad6fce --- /dev/null +++ b/languages/classes/LanguageTl.php @@ -0,0 +1,16 @@ +preConvertPlural( $forms, 2 ); + + return ($count <= 1) ? $forms[0] : $forms[1]; + } +} diff --git a/languages/classes/LanguageWa.php b/languages/classes/LanguageWa.php index 3d117e5fcc..4a4296cacf 100644 --- a/languages/classes/LanguageWa.php +++ b/languages/classes/LanguageWa.php @@ -9,6 +9,16 @@ # k' i gn a. class LanguageWa extends Language { + /** + * Use singular form for zero + */ + function convertPlural( $count, $forms ) { + if ( !count($forms) ) { return ''; } + $forms = $this->preConvertPlural( $forms, 2 ); + + return ($count <= 1) ? $forms[0] : $forms[1]; + } + ### ### Dates in Walloon are "1î d' " for 1st of the month, ### " di " for months starting by a consoun, and diff --git a/maintenance/language/checkLanguage.inc b/maintenance/language/checkLanguage.inc index ab6d8a1308..30f69a22ef 100644 --- a/maintenance/language/checkLanguage.inc +++ b/maintenance/language/checkLanguage.inc @@ -645,6 +645,11 @@ ENDS; # Blacklist some checks for some languages $checkBlacklist = array( #'code' => array( 'check1', 'check2' ... ) +'az' => array( 'plural' ), +'bo' => array( 'plural' ), +'dz' => array( 'plural' ), +'id' => array( 'plural' ), +'fa' => array( 'plural' ), 'gan' => array( 'plural' ), 'gan-hans' => array( 'plural' ), 'gan-hant' => array( 'plural' ), @@ -652,21 +657,28 @@ $checkBlacklist = array( 'hak' => array( 'plural' ), 'hu' => array( 'plural' ), 'ja' => array( 'plural' ), // Does not use plural +'jv' => array( 'plural' ), 'ka' => array( 'plural' ), 'kk-arab' => array( 'plural' ), 'kk-cyrl' => array( 'plural' ), 'kk-latn' => array( 'plural' ), +'km' => array( 'plural' ), +'kn' => array( 'plural' ), 'ko' => array( 'plural' ), 'lzh' => array( 'plural' ), 'mn' => array( 'plural' ), 'ms' => array( 'plural' ), -'my' => array( 'chars' ), // Uses a lot zwnj +'my' => array( 'plural', 'chars' ), // Uses a lot zwnj 'sah' => array( 'plural' ), 'sq' => array( 'plural' ), 'tet' => array( 'plural' ), 'th' => array( 'plural' ), +'to' => array( 'plural' ), +'tr' => array( 'plural' ), +'vi' => array( 'plural' ), 'wuu' => array( 'plural' ), 'xmf' => array( 'plural' ), +'yo' => array( 'plural' ), 'yue' => array( 'plural' ), 'zh' => array( 'plural' ), 'zh-classical' => array( 'plural' ), -- 2.20.1