From ca32f08966f1b51fcb19460f0996bb0c4048e6fe Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sat, 3 Dec 2011 13:29:22 +0100 Subject: Update to MediaWiki 1.18.0 * also update ArchLinux skin to chagnes in MonoBook * Use only css to hide our menu bar when printing --- languages/classes/LanguageAm.php | 5 + languages/classes/LanguageAr.php | 12 +- languages/classes/LanguageAz.php | 5 + languages/classes/LanguageBat_smg.php | 25 ---- languages/classes/LanguageBe.php | 8 +- languages/classes/LanguageBe_tarask.php | 32 +++-- languages/classes/LanguageBg.php | 4 + languages/classes/LanguageBh.php | 5 + languages/classes/LanguageBs.php | 12 +- languages/classes/LanguageCs.php | 15 ++- languages/classes/LanguageCu.php | 16 ++- languages/classes/LanguageCy.php | 8 +- languages/classes/LanguageDsb.php | 16 ++- languages/classes/LanguageEo.php | 14 +- languages/classes/LanguageEt.php | 4 + languages/classes/LanguageFi.php | 15 ++- languages/classes/LanguageFr.php | 5 + languages/classes/LanguageGa.php | 16 ++- languages/classes/LanguageGan.php | 47 ++++++- languages/classes/LanguageGd.php | 27 ++-- languages/classes/LanguageGv.php | 5 + languages/classes/LanguageHe.php | 2 + languages/classes/LanguageHi.php | 5 + languages/classes/LanguageHr.php | 7 +- languages/classes/LanguageHsb.php | 16 ++- languages/classes/LanguageHu.php | 6 + languages/classes/LanguageHy.php | 24 +++- languages/classes/LanguageIu.deps.php | 8 ++ languages/classes/LanguageIu.php | 224 ++++++++++++++++++++++++++++++++ languages/classes/LanguageJa.php | 14 +- languages/classes/LanguageKaa.php | 35 +++-- languages/classes/LanguageKk.php | 75 +++++++++-- languages/classes/LanguageKk_cyrl.php | 25 +++- languages/classes/LanguageKm.php | 5 + languages/classes/LanguageKsh.php | 144 +++++++++----------- languages/classes/LanguageKu.php | 25 +++- languages/classes/LanguageKu_ku.php | 4 + languages/classes/LanguageLa.php | 5 + languages/classes/LanguageLn.php | 6 +- languages/classes/LanguageLt.php | 7 + languages/classes/LanguageLv.php | 2 +- languages/classes/LanguageMg.php | 5 + languages/classes/LanguageMk.php | 5 + languages/classes/LanguageMl.php | 6 +- languages/classes/LanguageMo.php | 6 + languages/classes/LanguageMt.php | 6 + languages/classes/LanguageMy.php | 5 + languages/classes/LanguageNso.php | 5 + languages/classes/LanguageOs.php | 87 +++++++++++++ languages/classes/LanguagePl.php | 10 ++ languages/classes/LanguageQqx.php | 15 +++ languages/classes/LanguageRo.php | 6 + languages/classes/LanguageRu.php | 23 +++- languages/classes/LanguageSe.php | 6 + languages/classes/LanguageSgs.php | 30 +++++ languages/classes/LanguageSh.php | 8 +- languages/classes/LanguageSk.php | 6 + languages/classes/LanguageSl.php | 11 ++ languages/classes/LanguageSma.php | 12 +- languages/classes/LanguageSr.php | 58 +++++++-- languages/classes/LanguageSr_ec.php | 6 + languages/classes/LanguageSr_el.php | 6 + languages/classes/LanguageTi.php | 5 + languages/classes/LanguageTl.php | 5 + languages/classes/LanguageTr.php | 23 ++++ languages/classes/LanguageTyv.php | 2 +- languages/classes/LanguageUk.php | 24 +++- languages/classes/LanguageWa.php | 32 ++++- languages/classes/LanguageYue.php | 13 +- languages/classes/LanguageZh.php | 39 +++++- languages/classes/LanguageZh_hans.php | 14 +- 71 files changed, 1193 insertions(+), 221 deletions(-) delete mode 100644 languages/classes/LanguageBat_smg.php create mode 100644 languages/classes/LanguageIu.deps.php create mode 100644 languages/classes/LanguageIu.php create mode 100644 languages/classes/LanguageOs.php create mode 100644 languages/classes/LanguageQqx.php create mode 100644 languages/classes/LanguageSgs.php (limited to 'languages/classes') diff --git a/languages/classes/LanguageAm.php b/languages/classes/LanguageAm.php index 77374d3c..29ae9c11 100644 --- a/languages/classes/LanguageAm.php +++ b/languages/classes/LanguageAm.php @@ -7,6 +7,11 @@ class LanguageAm extends Language { /** * Use singular form for zero + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageAr.php b/languages/classes/LanguageAr.php index 77c46025..95e76392 100644 --- a/languages/classes/LanguageAr.php +++ b/languages/classes/LanguageAr.php @@ -6,6 +6,12 @@ * @author Niklas Laxström */ class LanguageAr extends Language { + + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } $forms = $this->preConvertPlural( $forms, 6 ); @@ -30,8 +36,12 @@ class LanguageAr extends Language { * Temporary hack for bug 9413: replace Arabic presentation forms with their * standard equivalents. * - * FIXME: This is language-specific for now only to avoid the negative + * @todo FIXME: This is language-specific for now only to avoid the negative * performance impact of enabling it for all languages. + * + * @param $s string + * + * @return string */ function normalize( $s ) { global $wgFixArabicUnicode; diff --git a/languages/classes/LanguageAz.php b/languages/classes/LanguageAz.php index 13c50547..947e6560 100644 --- a/languages/classes/LanguageAz.php +++ b/languages/classes/LanguageAz.php @@ -4,6 +4,11 @@ * @ingroup Language */ class LanguageAz extends Language { + + /** + * @param $string string + * @return mixed|string + */ function ucfirst ( $string ) { if ( $string[0] == 'i' ) { return 'İ' . substr( $string, 1 ); diff --git a/languages/classes/LanguageBat_smg.php b/languages/classes/LanguageBat_smg.php deleted file mode 100644 index 5b6c92a6..00000000 --- a/languages/classes/LanguageBat_smg.php +++ /dev/null @@ -1,25 +0,0 @@ -preConvertPlural( $forms, 4 ); - - $count = abs( $count ); - if ( $count === 0 || ( $count % 100 === 0 || ( $count % 100 >= 10 && $count % 100 < 20 ) ) ) { - return $forms[2]; - } elseif ( $count % 10 === 1 ) { - return $forms[0]; - } elseif ( $count % 10 === 2 ) { - return $forms[1]; - } else { - return $forms[3]; - } - } -} diff --git a/languages/classes/LanguageBe.php b/languages/classes/LanguageBe.php index 0b147333..bb0ba9e8 100644 --- a/languages/classes/LanguageBe.php +++ b/languages/classes/LanguageBe.php @@ -14,9 +14,15 @@ class LanguageBe extends Language { + /** + * @param $count int + * @param $forms array + * + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } - // FIXME: CLDR defines 4 plural forms instead of 3 + // @todo 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 ); diff --git a/languages/classes/LanguageBe_tarask.php b/languages/classes/LanguageBe_tarask.php index b29d8770..25c3f700 100644 --- a/languages/classes/LanguageBe_tarask.php +++ b/languages/classes/LanguageBe_tarask.php @@ -11,20 +11,26 @@ class LanguageBe_tarask extends Language { /** - * Plural form transformations - * - * $wordform1 - singular form (for 1, 21, 31, 41...) - * $wordform2 - plural 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...) - */ + * Plural form transformations + * + * $wordform1 - singular form (for 1, 21, 31, 41...) + * $wordform2 - plural 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...) + */ + /** + * @param $count int + * @param $forms array + * + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } // 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]; - // FIXME: CLDR defines 4 plural forms instead of 3 + // @todo 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 ); @@ -41,11 +47,15 @@ class LanguageBe_tarask extends Language { } } - /* + /** * The Belarusian language uses apostrophe sign, * but the characters used for this could be both U+0027 and U+2019. * This function unifies apostrophe sign in search index values * to enable seach using both apostrophe signs. + * + * @param $string string + * + * @return string */ function normalizeForSearch( $string ) { wfProfileIn( __METHOD__ ); @@ -62,9 +72,13 @@ class LanguageBe_tarask extends Language { return $s; } - /* + /** * Four-digit number should be without group commas (spaces) * So "1 234 567", "12 345" but "1234" + * + * @param $_ string + * + * @return string */ function commafy( $_ ) { if ( preg_match( '/^-?\d{1,4}(\.\d*)?$/', $_ ) ) { diff --git a/languages/classes/LanguageBg.php b/languages/classes/LanguageBg.php index d6d34090..9ccb9a85 100644 --- a/languages/classes/LanguageBg.php +++ b/languages/classes/LanguageBg.php @@ -8,6 +8,10 @@ class LanguageBg extends Language { /** * ISO number formatting: 123 456 789,99. * Avoid tripple grouping by numbers with whole part up to 4 digits. + * + * @param $_ string + * + * @return string */ function commafy( $_ ) { if ( !preg_match( '/^\d{1,4}$/', $_ ) ) { diff --git a/languages/classes/LanguageBh.php b/languages/classes/LanguageBh.php index 3272e2f3..46e4418c 100644 --- a/languages/classes/LanguageBh.php +++ b/languages/classes/LanguageBh.php @@ -7,6 +7,11 @@ class LanguageBh extends Language { /** * Use singular form for zero + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageBs.php b/languages/classes/LanguageBs.php index 6432109d..c501b35a 100644 --- a/languages/classes/LanguageBs.php +++ b/languages/classes/LanguageBs.php @@ -6,11 +6,16 @@ */ class LanguageBs extends Language { + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } $forms = $this->preConvertPlural( $forms, 3 ); - // FIXME: CLDR defines 4 plural forms instead of 3. Plural for decimals is missing. + // @todo FIXME: CLDR defines 4 plural forms instead of 3. Plural for decimals is missing. // http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html if ( $count > 10 && floor( ( $count % 100 ) / 10 ) == 1 ) { return $forms[2]; @@ -29,6 +34,11 @@ class LanguageBs extends Language { # Invoked with {{GRAMMAR:case|word}} /** * Cases: genitiv, dativ, akuzativ, vokativ, instrumental, lokativ + * + * @param $word string + * @param $case string + * + * @return string */ function convertGrammar( $word, $case ) { global $wgGrammarForms; diff --git a/languages/classes/LanguageCs.php b/languages/classes/LanguageCs.php index 935aed4e..f50a7e70 100644 --- a/languages/classes/LanguageCs.php +++ b/languages/classes/LanguageCs.php @@ -6,11 +6,16 @@ */ class LanguageCs extends Language { - # Plural transformations - # Invoked by putting - # {{plural:count|form1|form2-4|form0,5+}} for two forms plurals - # {{plural:count|form1|form0,2+}} for single form plurals - # in a message + /** + * Plural transformations + * Invoked by putting + * {{plural:count|form1|form2-4|form0,5+}} for two forms plurals + * {{plural:count|form1|form0,2+}} for single form plurals + * in a message + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } $forms = $this->preConvertPlural( $forms, 3 ); diff --git a/languages/classes/LanguageCu.php b/languages/classes/LanguageCu.php index 1aecbca5..af42d2c2 100644 --- a/languages/classes/LanguageCu.php +++ b/languages/classes/LanguageCu.php @@ -5,8 +5,15 @@ * @ingroup Language */ class LanguageCu extends Language { - # Convert from the nominative form of a noun to some other case - # Invoked with {{grammar:case|word}} + + /** + * Convert from the nominative form of a noun to some other case + * Invoked with {{grammar:case|word}} + * + * @param $word string + * @param $case string + * @return string + */ function convertGrammar( $word, $case ) { global $wgGrammarForms; if ( isset( $wgGrammarForms['сu'][$case][$word] ) ) { @@ -34,6 +41,11 @@ class LanguageCu extends Language { return $word; } + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } $forms = $this->preConvertPlural( $forms, 4 ); diff --git a/languages/classes/LanguageCy.php b/languages/classes/LanguageCy.php index d7727de2..a3a28689 100644 --- a/languages/classes/LanguageCy.php +++ b/languages/classes/LanguageCy.php @@ -6,10 +6,16 @@ * @author Niklas Laxström */ class LanguageCy extends Language { + + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } - // FIXME: CLDR defines 4 plural forms; very different, actually. + // @todo FIXME: CLDR defines 4 plural forms; very different, actually. // See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#cy $forms = $this->preConvertPlural( $forms, 6 ); $count = abs( $count ); diff --git a/languages/classes/LanguageDsb.php b/languages/classes/LanguageDsb.php index 1c97c8ad..1fae25cf 100644 --- a/languages/classes/LanguageDsb.php +++ b/languages/classes/LanguageDsb.php @@ -6,9 +6,14 @@ */ class LanguageDsb extends Language { - # Convert from the nominative form of a noun to some other case - # Invoked with {{GRAMMAR:case|word}} - + /** + * Convert from the nominative form of a noun to some other case + * Invoked with {{grammar:case|word}} + * + * @param $word string + * @param $case string + * @return string + */ function convertGrammar( $word, $case ) { global $wgGrammarForms; if ( isset( $wgGrammarForms['dsb'][$case][$word] ) ) { @@ -26,6 +31,11 @@ class LanguageDsb extends Language { return $word; # this will return the original value for 'nominatiw' (nominativ) and all undefined case values } + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } $forms = $this->preConvertPlural( $forms, 4 ); diff --git a/languages/classes/LanguageEo.php b/languages/classes/LanguageEo.php index 7ec447e7..af058a3e 100644 --- a/languages/classes/LanguageEo.php +++ b/languages/classes/LanguageEo.php @@ -42,7 +42,7 @@ class LanguageEo extends Language { return preg_replace_callback ( '/([cghjsu]x?)((?:xx)*)(?!x)/i', array( $this, 'strrtxuCallback' ), $string ); - } else if ( strcasecmp( $in, 'UTF-8' ) == 0 && strcasecmp( $out, 'x' ) == 0 ) { + } elseif ( strcasecmp( $in, 'UTF-8' ) == 0 && strcasecmp( $out, 'x' ) == 0 ) { # Double Xs only if they follow cxapelutaj literoj. return preg_replace_callback( '/((?:[cghjsu]|\xc4[\x88\x89\x9c\x9d\xa4\xa5\xb4\xb5]|\xc5[\x9c\x9d\xac\xad])x*)/i', @@ -51,6 +51,10 @@ class LanguageEo extends Language { return parent::iconv( $in, $out, $string ); } + /** + * @param $matches array + * @return string + */ function strrtuxCallback( $matches ) { static $ux = array ( 'x' => 'xx' , 'X' => 'Xx' , @@ -64,6 +68,10 @@ class LanguageEo extends Language { return strtr( $matches[1], $ux ); } + /** + * @param $matches array + * @return string + */ function strrtxuCallback( $matches ) { static $xu = array ( 'xx' => 'x' , 'xX' => 'x' , @@ -84,6 +92,10 @@ class LanguageEo extends Language { return strtr( $matches[1], $xu ) . strtr( $matches[2], $xu ); } + /** + * @param $s string + * @return string + */ function checkTitleEncoding( $s ) { # Check for X-system backwards-compatibility URLs $ishigh = preg_match( '/[\x80-\xff]/', $s ); diff --git a/languages/classes/LanguageEt.php b/languages/classes/LanguageEt.php index 226c2d73..b469dec9 100644 --- a/languages/classes/LanguageEt.php +++ b/languages/classes/LanguageEt.php @@ -8,6 +8,10 @@ class LanguageEt extends Language { /** * Avoid grouping whole numbers between 0 to 9999 + * + * @param $_ string + * + * @return string */ function commafy( $_ ) { if ( !preg_match( '/^\d{1,4}$/', $_ ) ) { diff --git a/languages/classes/LanguageFi.php b/languages/classes/LanguageFi.php index e3d922c4..7156b65a 100644 --- a/languages/classes/LanguageFi.php +++ b/languages/classes/LanguageFi.php @@ -8,8 +8,14 @@ */ class LanguageFi extends Language { - # Convert from the nominative form of a noun to some other case - # Invoked with {{GRAMMAR:case|word}} + /** + * Convert from the nominative form of a noun to some other case + * Invoked with {{grammar:case|word}} + * + * @param $word string + * @param $case string + * @return string + */ function convertGrammar( $word, $case ) { global $wgGrammarForms; if ( isset( $wgGrammarForms['fi'][$case][$word] ) ) { @@ -55,6 +61,11 @@ class LanguageFi extends Language { return $word; } + /** + * @param $str string + * @param $forContent bool + * @return string + */ function translateBlockExpiry( $str, $forContent = false ) { /* 'ago', 'now', 'today', 'this', 'next', diff --git a/languages/classes/LanguageFr.php b/languages/classes/LanguageFr.php index dec1204c..3e7c970d 100644 --- a/languages/classes/LanguageFr.php +++ b/languages/classes/LanguageFr.php @@ -7,6 +7,11 @@ class LanguageFr extends Language { /** * Use singular form for zero (see bug 7309) + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageGa.php b/languages/classes/LanguageGa.php index a55e5f30..43050e16 100644 --- a/languages/classes/LanguageGa.php +++ b/languages/classes/LanguageGa.php @@ -5,8 +5,15 @@ * @ingroup Language */ class LanguageGa extends Language { - # Convert day names - # Invoked with {{GRAMMAR:transformation|word}} + + /** + * Convert day names + * Invoked with {{GRAMMAR:transformation|word}} + * + * @param $word string + * @param $case string + * @return string + */ function convertGrammar( $word, $case ) { global $wgGrammarForms; if ( isset( $wgGrammarForms['ga'][$case][$word] ) ) { @@ -35,6 +42,11 @@ class LanguageGa extends Language { return $word; } + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageGan.php b/languages/classes/LanguageGan.php index da5e1d22..99b4c29e 100644 --- a/languages/classes/LanguageGan.php +++ b/languages/classes/LanguageGan.php @@ -8,6 +8,14 @@ require_once( dirname( __FILE__ ) . '/LanguageZh.php' ); */ class GanConverter extends LanguageConverter { + /** + * @param $langobj Language + * @param $maincode string + * @param $variants array + * @param $variantfallbacks array + * @param $flags array + * @param $manualLevel array + */ function __construct( $langobj, $maincode, $variants = array(), $variantfallbacks = array(), @@ -37,14 +45,24 @@ class GanConverter extends LanguageConverter { ); } - /* there shouldn't be any latin text in Chinese conversion, so no need - to mark anything. - $noParse is there for compatibility with LanguageConvert::markNoConversion + /** + * there shouldn't be any latin text in Chinese conversion, so no need + * to mark anything. + * $noParse is there for compatibility with LanguageConvert::markNoConversion + * + * @param $text string + * @param $noParse bool + * + * @return string */ function markNoConversion( $text, $noParse = false ) { return $text; } + /** + * @param $key string + * @return String + */ function convertCategoryKey( $key ) { return $this->autoConvert( $key, 'gan' ); } @@ -80,25 +98,44 @@ class LanguageGan extends LanguageZh { $wgHooks['ArticleSaveComplete'][] = $this->mConverter; } - # this should give much better diff info + /** + * this should give much better diff info + * + * @param $text string + * @return string + */ function segmentForDiff( $text ) { return preg_replace( "/([\\xc0-\\xff][\\x80-\\xbf]*)/e", "' ' .\"$1\"", $text ); } + /** + * @param $text string + * @return string + */ function unsegmentForDiff( $text ) { return preg_replace( "/ ([\\xc0-\\xff][\\x80-\\xbf]*)/e", "\"$1\"", $text ); } - // word segmentation + /** + * word segmentation + * + * @param $string string + * @param $autoVariant string + * @return String + */ function normalizeForSearch( $string, $autoVariant = 'gan-hans' ) { // LanguageZh::normalizeForSearch return parent::normalizeForSearch( $string, $autoVariant ); } + /** + * @param $termsArray array + * @return array + */ function convertForSearchResult( $termsArray ) { $terms = implode( '|', $termsArray ); $terms = self::convertDoubleWidth( $terms ); diff --git a/languages/classes/LanguageGd.php b/languages/classes/LanguageGd.php index 1b1b278e..5fe3d058 100644 --- a/languages/classes/LanguageGd.php +++ b/languages/classes/LanguageGd.php @@ -4,32 +4,43 @@ * @ingroup Language * * @author Raimond Spekking + * @author Niklas Laxström */ class LanguageGd extends Language { /** * Plural form transformations - * Based on this discussion: http://translatewiki.net/w/i.php?title=Portal_talk:Gd&oldid=1094065#%C3%80ireamhan + * Based on this discussion: http://translatewiki.net/wiki/Thread:Support/New_plural_rules_for_Scots_Gaelic_(gd) * - * $forms[0] - singular form (for 1) - * $forms[1] - dual form (for 2) - * $forms[2] - plural form 1 (for 3-10) - * $forms[3] - plural form 2 (for >= 11) + * $forms[0] - 1 + * $forms[1] - 2 + * $forms[2] - 11 + * $forms[3] - 12 + * $forms[4] - 3-10, 13-19 + * $forms[5] - 0, 20, rest * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } - $forms = $this->preConvertPlural( $forms, 4 ); + $forms = $this->preConvertPlural( $forms, 6 ); $count = abs( $count ); if ( $count === 1 ) { return $forms[0]; } elseif ( $count === 2 ) { return $forms[1]; - } elseif ( $count >= 3 && $count <= 10 ) { + } elseif ( $count === 11 ) { return $forms[2]; - } else { + } elseif ( $count === 12 ) { return $forms[3]; + } elseif ( ($count >= 3 && $count <= 10) || ($count >= 13 && $count <= 19) ) { + return $forms[4]; + } else { + return $forms[5]; } } } diff --git a/languages/classes/LanguageGv.php b/languages/classes/LanguageGv.php index 6e25e21c..4defffda 100644 --- a/languages/classes/LanguageGv.php +++ b/languages/classes/LanguageGv.php @@ -8,6 +8,11 @@ */ class LanguageGv extends Language { + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageHe.php b/languages/classes/LanguageHe.php index 95beca79..e65feee9 100644 --- a/languages/classes/LanguageHe.php +++ b/languages/classes/LanguageHe.php @@ -17,6 +17,8 @@ class LanguageHe extends Language { * * @param $word String: the word to convert * @param $case String: the case + * + * @return string */ public function convertGrammar( $word, $case ) { global $wgGrammarForms; diff --git a/languages/classes/LanguageHi.php b/languages/classes/LanguageHi.php index fc9d0de8..53a0fc18 100644 --- a/languages/classes/LanguageHi.php +++ b/languages/classes/LanguageHi.php @@ -7,6 +7,11 @@ class LanguageHi extends Language { /** * Use singular form for zero + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageHr.php b/languages/classes/LanguageHr.php index 888029be..e18c8d3a 100644 --- a/languages/classes/LanguageHr.php +++ b/languages/classes/LanguageHr.php @@ -6,9 +6,14 @@ class LanguageHr extends Language { + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } - // FIXME: CLDR defines 4 plural forms instead of 3. Plural for for decimals is missing. + // @todo FIXME: CLDR defines 4 plural forms instead of 3. Plural for for decimals is missing. // http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html $forms = $this->preConvertPlural( $forms, 3 ); diff --git a/languages/classes/LanguageHsb.php b/languages/classes/LanguageHsb.php index 1b83f5ab..1b67aa0d 100644 --- a/languages/classes/LanguageHsb.php +++ b/languages/classes/LanguageHsb.php @@ -6,9 +6,14 @@ class LanguageHsb extends Language { - # Convert from the nominative form of a noun to some other case - # Invoked with {{GRAMMAR:case|word}} - + /** + * Convert from the nominative form of a noun to some other case + * Invoked with {{grammar:case|word}} + * + * @param $word string + * @param $case string + * @return string + */ function convertGrammar( $word, $case ) { global $wgGrammarForms; if ( isset( $wgGrammarForms['hsb'][$case][$word] ) ) { @@ -27,6 +32,11 @@ class LanguageHsb extends Language { return $word; # this will return the original value for 'nominatiw' (nominativ) and all undefined case values } + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } $forms = $this->preConvertPlural( $forms, 4 ); diff --git a/languages/classes/LanguageHu.php b/languages/classes/LanguageHu.php index 44ce330c..f82bab2f 100644 --- a/languages/classes/LanguageHu.php +++ b/languages/classes/LanguageHu.php @@ -5,6 +5,12 @@ * @ingroup Language */ class LanguageHu extends Language { + + /** + * @param $word string + * @param $case + * @return string + */ function convertGrammar( $word, $case ) { global $wgGrammarForms; if ( isset( $wgGrammarForms[$this->getCode()][$case][$word] ) ) { diff --git a/languages/classes/LanguageHy.php b/languages/classes/LanguageHy.php index 527a55f5..c14106c8 100644 --- a/languages/classes/LanguageHy.php +++ b/languages/classes/LanguageHy.php @@ -6,8 +6,15 @@ * @author Ruben Vardanyan (Me@RubenVardanyan.com) */ class LanguageHy extends Language { - # Convert from the nominative form of a noun to some other case - # Invoked with {{grammar:case|word}} + + /** + * Convert from the nominative form of a noun to some other case + * Invoked with {{grammar:case|word}} + * + * @param $word string + * @param $case string + * @return string + */ function convertGrammar( $word, $case ) { global $wgGrammarForms; if ( isset( $wgGrammarForms['hy'][$case][$word] ) ) { @@ -48,6 +55,12 @@ class LanguageHy extends Language { return $word; } + /** + * @param $count int + * @param $forms array + * + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } $forms = $this->preConvertPlural( $forms, 2 ); @@ -55,10 +68,13 @@ class LanguageHy extends Language { return ( abs( $count ) <= 1 ) ? $forms[0] : $forms[1]; } - /* + /** * Armenian numeric format is "12 345,67" but "1234,56" + * + * @param $_ string + * + * @return string */ - function commafy( $_ ) { if ( !preg_match( '/^\d{1,4}$/', $_ ) ) { return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) ); diff --git a/languages/classes/LanguageIu.deps.php b/languages/classes/LanguageIu.deps.php new file mode 100644 index 00000000..3b78d875 --- /dev/null +++ b/languages/classes/LanguageIu.deps.php @@ -0,0 +1,8 @@ + lowercase Latin +* - lowercase/uppercase Latin -> Syllabics +* +* +* Based on: +* - http://commons.wikimedia.org/wiki/Image:Inuktitut.png +* - LanguageSr.php +* +* @ingroup Language +*/ +require_once( dirname( __FILE__ ) . '/../LanguageConverter.php' ); + +/** + * + */ +class IuConverter extends LanguageConverter { + var $mToLatin = array( + 'ᐦ' => 'h', 'ᐃ' => 'i', 'ᐄ' => 'ii', 'ᐅ' => 'u', 'ᐆ' => 'uu', 'ᐊ' => 'a', 'ᐋ' => 'aa', + 'ᑉ' => 'p', 'ᐱ' => 'pi', 'ᐲ' => 'pii', 'ᐳ' => 'pu', 'ᐴ' => 'puu', 'ᐸ' => 'pa', 'ᐹ' => 'paa', + 'ᑦ' => 't', 'ᑎ' => 'ti', 'ᑏ' => 'tii', 'ᑐ' => 'tu', 'ᑑ' => 'tuu', 'ᑕ' => 'ta', 'ᑖ' => 'taa', + 'ᒃ' => 'k', 'ᑭ' => 'ki', 'ᑮ' => 'kii', 'ᑯ' => 'ku', 'ᑰ' => 'kuu', 'ᑲ' => 'ka', 'ᑳ' => 'kaa', + 'ᖅᒃ' => 'qq', 'ᖅᑭ' => 'qqi', 'ᖅᑮ' => 'qqii', 'ᖅᑯ' => 'qqu', 'ᖅᑰ' => 'ᖅqquu', 'ᖅᑲ' => 'qqa', 'ᖅᑳ' => 'qqaa', + 'ᒡ' => 'g', 'ᒋ' => 'gi', 'ᒌ' => 'gii', 'ᒍ' => 'gu', 'ᒎ' => 'guu', 'ᒐ' => 'ga', 'ᒑ' => 'gaa', + 'ᒻ' => 'm', 'ᒥ' => 'mi', 'ᒦ' => 'mii', 'ᒧ' => 'mu', 'ᒨ' => 'muu', 'ᒪ' => 'ma', 'ᒫ' => 'maa', + 'ᓐ' => 'n', 'ᓂ' => 'ni', 'ᓃ' => 'nii', 'ᓄ' => 'nu', 'ᓅ' => 'nuu', 'ᓇ' => 'na', 'ᓈ' => 'naa', + 'ᔅ' => 's', 'ᓯ' => 'si', 'ᓰ' => 'sii', 'ᓱ' => 'su', 'ᓲ' => 'suu', 'ᓴ' => 'sa', 'ᓵ' => 'saa', + 'ᓪ' => 'l', 'ᓕ' => 'li', 'ᓖ' => 'lii', 'ᓗ' => 'lu', 'ᓘ' => 'luu', 'ᓚ' => 'la', 'ᓛ' => 'laa', + 'ᔾ' => 'j', 'ᔨ' => 'ji', 'ᔩ' => 'jii', 'ᔪ' => 'ju', 'ᔫ' => 'juu', 'ᔭ' => 'ja', 'ᔮ' => 'jaa', + 'ᕝ' => 'v', 'ᕕ' => 'vi', 'ᕖ' => 'vii', 'ᕗ' => 'vu', 'ᕘ' => 'vuu', 'ᕙ' => 'va', 'ᕚ' => 'vaa', + 'ᕐ' => 'r', 'ᕆ' => 'ri', 'ᕇ' => 'rii', 'ᕈ' => 'ru', 'ᕉ' => 'ruu', 'ᕋ' => 'ra', 'ᕌ' => 'raa', + 'ᖅ' => 'q', 'ᕿ' => 'qi', 'ᖀ' => 'qii', 'ᖁ' => 'qu', 'ᖂ' => 'quu', 'ᖃ' => 'qa', 'ᖄ' => 'qaa', + 'ᖕ' => 'ng', 'ᖏ' => 'ngi', 'ᖐ' => 'ngii', 'ᖑ' => 'ngu', 'ᖒ' => 'nguu', 'ᖓ' => 'nga', 'ᖔ' => 'ngaa', + 'ᖖ' => 'nng', 'ᙱ' => 'nngi', 'ᙲ' => 'nngii', 'ᙳ' => 'nngu', 'ᙴ' => 'nnguu', 'ᙵ' => 'nnga', 'ᙶ' => 'nngaa', + 'ᖦ' => 'ɫ', 'ᖠ' => 'ɫi', 'ᖡ' => 'ɫii', 'ᖢ' => 'ɫu', 'ᖣ' => 'ɫuu', 'ᖤ' => 'ɫa', 'ᖥ' => 'ɫaa', + ); + + var $mUpperToLowerCaseLatin = array( + 'A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', + 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', + 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', + 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', + 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', + 'Z' => 'z', + ); + + var $mToSyllabics = array( + 'h' => 'ᐦ', 'i' => 'ᐃ', 'ii' => 'ᐄ', 'u' => 'ᐅ', 'uu' => 'ᐆ', 'a' => 'ᐊ', 'aa' => 'ᐋ', + 'p' => 'ᑉ', 'pi' => 'ᐱ', 'pii' => 'ᐲ', 'pu' => 'ᐳ', 'puu' => 'ᐴ', 'pa' => 'ᐸ', 'paa' => 'ᐹ', + 't' => 'ᑦ', 'ti' => 'ᑎ', 'tii' => 'ᑏ', 'tu' => 'ᑐ', 'tuu' => 'ᑑ', 'ta' => 'ᑕ', 'taa' => 'ᑖ', + 'k' => 'ᒃ', 'ki' => 'ᑭ', 'kii' => 'ᑮ', 'ku' => 'ᑯ', 'kuu' => 'ᑰ', 'ka' => 'ᑲ', 'kaa' => 'ᑳ', + 'g' => 'ᒡ', 'gi' => 'ᒋ', 'gii' => 'ᒌ', 'gu' => 'ᒍ', 'guu' => 'ᒎ', 'ga' => 'ᒐ', 'gaa' => 'ᒑ', + 'm' => 'ᒻ', 'mi' => 'ᒥ', 'mii' => 'ᒦ', 'mu' => 'ᒧ', 'muu' => 'ᒨ', 'ma' => 'ᒪ', 'maa' => 'ᒫ', + 'n' => 'ᓐ', 'ni' => 'ᓂ', 'nii' => 'ᓃ', 'nu' => 'ᓄ', 'nuu' => 'ᓅ', 'na' => 'ᓇ', 'naa' => 'ᓈ', + 's' => 'ᔅ', 'si' => 'ᓯ', 'sii' => 'ᓰ', 'su' => 'ᓱ', 'suu' => 'ᓲ', 'sa' => 'ᓴ', 'saa' => 'ᓵ', + 'l' => 'ᓪ', 'li' => 'ᓕ', 'lii' => 'ᓖ', 'lu' => 'ᓗ', 'luu' => 'ᓘ', 'la' => 'ᓚ', 'laa' => 'ᓛ', + 'j' => 'ᔾ', 'ji' => 'ᔨ', 'jii' => 'ᔩ', 'ju' => 'ᔪ', 'juu' => 'ᔫ', 'ja' => 'ᔭ', 'jaa' => 'ᔮ', + 'v' => 'ᕝ', 'vi' => 'ᕕ', 'vii' => 'ᕖ', 'vu' => 'ᕗ', 'vuu' => 'ᕘ', 'va' => 'ᕙ', 'vaa' => 'ᕚ', + 'r' => 'ᕐ', 'ri' => 'ᕆ', 'rii' => 'ᕇ', 'ru' => 'ᕈ', 'ruu' => 'ᕉ', 'ra' => 'ᕋ', 'raa' => 'ᕌ', + 'qq' => 'ᖅᒃ', 'qqi' => 'ᖅᑭ', 'qqii' => 'ᖅᑮ', 'qqu' => 'ᖅᑯ', 'qquu' => 'ᖅᑰ', 'qqa' => 'ᖅᑲ', 'qqaa' => 'ᖅᑳ', + 'q' => 'ᖅ', 'qi' => 'ᕿ', 'qii' => 'ᖀ', 'qu' => 'ᖁ', 'quu' => 'ᖂ', 'qa' => 'ᖃ', 'qaa' => 'ᖄ', + 'ng' => 'ᖕ', 'ngi' => 'ᖏ', 'ngii' => 'ᖐ', 'ngu' => 'ᖑ', 'nguu' => 'ᖒ', 'nga' => 'ᖓ', 'ngaa' => 'ᖔ', + 'nng' => 'ᖖ', 'nngi' => 'ᙱ', 'nngii' => 'ᙲ', 'nngu' => 'ᙳ', 'nnguu' => 'ᙴ', 'nnga' => 'ᙵ', 'nngaa' => 'ᙶ', + 'ɫ' => 'ᖦ', 'ɫi' => 'ᖠ', 'ɫii' => 'ᖡ', 'ɫu' => 'ᖢ', 'ɫuu' => 'ᖣ', 'ɫa' => 'ᖤ', 'ɫaa' => 'ᖥ', + ); + + function loadDefaultTables() { + $this->mTables = array( + 'lowercase' => new ReplacementArray( $this->mUpperToLowerCaseLatin ), + 'ike-cans' => new ReplacementArray( $this->mToSyllabics ), + 'ike-latn' => new ReplacementArray( $this->mToLatin ), + 'iu' => new ReplacementArray() + ); + } + + /** + * rules should be defined as -{Syllabic | Latin-} -or- + * -{code:text | code:text | ...}- + * update: delete all rule parsing because it's not used + * currently, and just produces a couple of bugs + * + * @param $rule string + * @param $flags array + * @return array + */ + function parseManualRule( $rule, $flags = array() ) { + if ( in_array( 'T', $flags ) ) { + return parent::parseManualRule( $rule, $flags ); + } + + $carray = array(); + // otherwise ignore all formatting + foreach ( $this->mVariants as $v ) { + $carray[$v] = $rule; + } + + return $carray; + } + + /** + * Do not convert content on talk pages + * + * @param $text string + * @param $parser Parser + * @return string + */ + function parserConvert( $text, &$parser ) { + if ( is_object( $parser->getTitle() ) && $parser->getTitle()->isTalkPage() ) + $this->mDoContentConvert = false; + else + $this->mDoContentConvert = true; + + return parent::parserConvert( $text, $parser ); + } + + /** + * A function wrapper: + * - if there is no selected variant, leave the link + * names as they were + * - do not try to find variants for usernames + * + * @param $link string + * @param $nt Title + * @param $ignoreOtherCond bool + */ + function findVariantLink( &$link, &$nt, $ignoreOtherCond = false ) { + // check for user namespace + if ( is_object( $nt ) ) { + $ns = $nt->getNamespace(); + if ( $ns == NS_USER || $ns == NS_USER_TALK ) + return; + } + + $oldlink = $link; + parent::findVariantLink( $link, $nt, $ignoreOtherCond ); + if ( $this->getPreferredVariant() == $this->mMainLanguageCode ) + $link = $oldlink; + } + + /** + * We want our external link captions to be converted in variants, + * so we return the original text instead -{$text}-, except for URLs + * + * @param $text string + * @param $noParse bool + * + * @return string + */ + function markNoConversion( $text, $noParse = false ) { + if ( $noParse || preg_match( "/^https?:\/\/|ftp:\/\/|irc:\/\//", $text ) ) + return parent::markNoConversion( $text ); + return $text; + } + + /** + * An ugly function wrapper for parsing Image titles + * (to prevent image name conversion) + * + * @param $text string + * @param $toVariant bool + * + * @return string + */ + function autoConvert( $text, $toVariant = false ) { + global $wgTitle; + if ( is_object( $wgTitle ) && $wgTitle->getNameSpace() == NS_FILE ) { + $imagename = $wgTitle->getNsText(); + if ( preg_match( "/^$imagename:/", $text ) ) return $text; + } + return parent::autoConvert( $text, $toVariant ); + } + + /** + * It translates text into variant + * + * @param $text string + * @param $toVariant bool + * + * @return string + */ + function translate( $text, $toVariant ) { + // If $text is empty or only includes spaces, do nothing + // Otherwise translate it + if ( trim( $text ) ) { + $this->loadTables(); + // To syllabics, first translate uppercase to lowercase Latin + if($toVariant == 'ike-cans') { + $text = $this->mTables['lowercase']->replace( $text ); + } + $text = $this->mTables[$toVariant]->replace( $text ); + } + return $text; + } +} + +/** + * Inuktitut + * + * @ingroup Language + */ +class LanguageIu extends Language { + function __construct() { + global $wgHooks; + + parent::__construct(); + + $variants = array( 'iu', 'ike-cans', 'ike-latn' ); + $variantfallbacks = array( + 'iu' => 'ike-cans', + 'ike-cans' => 'iu', + 'ike-latn' => 'iu', + ); + + $flags = array(); + $this->mConverter = new IuConverter( $this, 'iu', $variants, $variantfallbacks, $flags ); + $wgHooks['ArticleSaveComplete'][] = $this->mConverter; + } +} diff --git a/languages/classes/LanguageJa.php b/languages/classes/LanguageJa.php index c5a992d5..510a3976 100644 --- a/languages/classes/LanguageJa.php +++ b/languages/classes/LanguageJa.php @@ -6,6 +6,11 @@ * @ingroup Language */ class LanguageJa extends Language { + + /** + * @param $string string + * @return string + */ function segmentByWord( $string ) { // Strip known punctuation ? // $s = preg_replace( '/\xe3\x80[\x80-\xbf]/', '', $s ); # U3000-303f @@ -23,8 +28,13 @@ class LanguageJa extends Language { return $s; } - # Italic is not appropriate for Japanese script - # Unfortunately most browsers do not recognise this, and render as italic + /** + * Italic is not appropriate for Japanese script + * Unfortunately most browsers do not recognise this, and render as italic + * + * @param $text string + * @return string + */ function emphasize( $text ) { return $text; } diff --git a/languages/classes/LanguageKaa.php b/languages/classes/LanguageKaa.php index 4c6710ed..a40fb7ae 100644 --- a/languages/classes/LanguageKaa.php +++ b/languages/classes/LanguageKaa.php @@ -10,6 +10,11 @@ class LanguageKaa extends Language { # Invoked with {{GRAMMAR:case|word}} /** * Cases: genitive, dative, accusative, locative, ablative, comitative + possessive forms + * + * @param $word string + * @param $case string + * + * @return string */ function convertGrammar( $word, $case ) { global $wgGrammarForms; @@ -19,35 +24,43 @@ class LanguageKaa extends Language { /* Full code of function convertGrammar() is in development. Updates coming soon. */ return $word; } - /* + + /** * It fixes issue with ucfirst for transforming 'i' to 'İ' * + * @param $string string + * + * @return string */ function ucfirst ( $string ) { - if ( $string[0] == 'i' ) { - $string = 'İ' . substr( $string, 1 ); + if ( substr( $string, 0, 1 ) === 'i' ) { + return 'İ' . substr( $string, 1 ); } else { - $string = parent::ucfirst( $string ); + return parent::ucfirst( $string ); } - return $string; - } - /* + /** * It fixes issue with lcfirst for transforming 'I' to 'ı' * + * @param $string string + * + * @return string */ function lcfirst ( $string ) { - if ( $string[0] == 'I' ) { - $string = 'ı' . substr( $string, 1 ); + if ( substr( $string, 0, 1 ) === 'I' ) { + return 'ı' . substr( $string, 1 ); } else { - $string = parent::lcfirst( $string ); + return parent::lcfirst( $string ); } - return $string; } /** * Avoid grouping whole numbers between 0 to 9999 + * + * @param $_ string + * + * @return string */ function commafy( $_ ) { if ( !preg_match( '/^\d{1,4}$/', $_ ) ) { diff --git a/languages/classes/LanguageKk.php b/languages/classes/LanguageKk.php index e3caacc8..953a3f97 100644 --- a/languages/classes/LanguageKk.php +++ b/languages/classes/LanguageKk.php @@ -18,6 +18,15 @@ define( 'H_HAMZA', 'ٴ' ); # U+0674 ARABIC LETTER HIGH HAMZA */ class KkConverter extends LanguageConverter { + protected $mCyrl2Latn, $mLatn2Cyrl, $mCyLa2Arab; + + /** + * @param $langobj Language + * @param $maincode string + * @param $variants array + * @param $variantfallbacks array + * @param $flags array + */ function __construct( $langobj, $maincode, $variants = array(), $variantfallbacks = array(), @@ -190,16 +199,23 @@ class KkConverter extends LanguageConverter { ); } - /* rules should be defined as -{ekavian | iyekavian-} -or- - -{code:text | code:text | ...}- - update: delete all rule parsing because it's not used - currently, and just produces a couple of bugs - */ + /** + * rules should be defined as -{ekavian | iyekavian-} -or- + * -{code:text | code:text | ...}- + * + * update: delete all rule parsing because it's not used + * currently, and just produces a couple of bugs + * + * @param $rule string + * @param $flags array + * @return array + */ function parseManualRule( $rule, $flags = array() ) { if ( in_array( 'T', $flags ) ) { return parent::parseManualRule( $rule, $flags ); } + $carray = array(); // otherwise ignore all formatting foreach ( $this->mVariants as $v ) { $carray[$v] = $rule; @@ -208,11 +224,15 @@ class KkConverter extends LanguageConverter { return $carray; } - /* + /** * A function wrapper: * - if there is no selected variant, leave the link * names as they were * - do not try to find variants for usernames + * + * @param $link string + * @param $nt Title + * @param bool $ignoreOtherCond */ function findVariantLink( &$link, &$nt, $ignoreOtherCond = false ) { // check for user namespace @@ -228,9 +248,14 @@ class KkConverter extends LanguageConverter { $link = $oldlink; } - /* + /** * An ugly function wrapper for parsing Image titles * (to prevent image name conversion) + * + * @param $text string + * @param $toVariant bool + * + * @return string */ function autoConvert( $text, $toVariant = false ) { global $wgTitle; @@ -243,6 +268,11 @@ class KkConverter extends LanguageConverter { /** * It translates text into variant + * + * @param $text string + * @param $toVariant string + * + * @return string */ function translate( $text, $toVariant ) { global $wgLanguageCode; @@ -282,6 +312,11 @@ class KkConverter extends LanguageConverter { return $ret; } + /** + * @param $text string + * @param $toVariant string + * @return mixed|string + */ function regsConverter( $text, $toVariant ) { if ( $text == '' ) { return $text; @@ -334,9 +369,14 @@ class KkConverter extends LanguageConverter { } } - /* + /** * We want our external link captions to be converted in variants, * so we return the original text instead -{$text}-, except for URLs + * + * @param $text string + * @param $noParse string|bool + * + * @return string */ function markNoConversion( $text, $noParse = false ) { if ( $noParse || preg_match( "/^https?:\/\/|ftp:\/\/|irc:\/\//", $text ) ) @@ -344,6 +384,10 @@ class KkConverter extends LanguageConverter { return $text; } + /** + * @param $key string + * @return String + */ function convertCategoryKey( $key ) { return $this->autoConvert( $key, 'kk' ); } @@ -392,9 +436,12 @@ class LanguageKk extends LanguageKk_cyrl { } } - /* + /** * It fixes issue with ucfirst for transforming 'i' to 'İ' * + * @param $string string + * + * @return string */ function ucfirst ( $string ) { $variant = $this->getPreferredVariant(); @@ -406,9 +453,12 @@ class LanguageKk extends LanguageKk_cyrl { return $string; } - /* + /** * It fixes issue with lcfirst for transforming 'I' to 'ı' * + * @param $string string + * + * @return string */ function lcfirst ( $string ) { $variant = $this->getPreferredVariant(); @@ -420,6 +470,11 @@ class LanguageKk extends LanguageKk_cyrl { return $string; } + /** + * @param $word string + * @param $case string + * @return string + */ function convertGrammar( $word, $case ) { wfProfileIn( __METHOD__ ); diff --git a/languages/classes/LanguageKk_cyrl.php b/languages/classes/LanguageKk_cyrl.php index 78febae1..ba84bf93 100644 --- a/languages/classes/LanguageKk_cyrl.php +++ b/languages/classes/LanguageKk_cyrl.php @@ -10,8 +10,12 @@ class LanguageKk_cyrl extends Language { # Invoked with {{GRAMMAR:case|word}} /** * Cases: genitive, dative, accusative, locative, ablative, comitative + possessive forms + * + * @param $word string + * @param $case stirng + * + * @return string */ - function convertGrammarKk_cyrl( $word, $case ) { global $wgGrammarForms; if ( isset( $wgGrammarForms['kk-kz'][$case][$word] ) ) { @@ -232,6 +236,11 @@ class LanguageKk_cyrl extends Language { return $word; } + /** + * @param $word string + * @param $case string + * @return string + */ function convertGrammarKk_latn( $word, $case ) { global $wgGrammarForms; if ( isset( $wgGrammarForms['kk-tr'][$case][$word] ) ) { @@ -452,6 +461,11 @@ class LanguageKk_cyrl extends Language { return $word; } + /** + * @param $word string + * @param $case string + * @return string + */ function convertGrammarKk_arab( $word, $case ) { global $wgGrammarForms; if ( isset( $wgGrammarForms['kk-cn'][$case][$word] ) ) { @@ -672,6 +686,11 @@ class LanguageKk_cyrl extends Language { return $word; } + /** + * @param $word string + * @param $allVowels array + * @return array + */ function lastLetter( $word, $allVowels ) { $lastLetter = array(); @@ -708,6 +727,10 @@ class LanguageKk_cyrl extends Language { /** * Avoid grouping whole numbers between 0 to 9999 + * + * @param $_ string + * + * @return string */ function commafy( $_ ) { if ( !preg_match( '/^\d{1,4}$/', $_ ) ) { diff --git a/languages/classes/LanguageKm.php b/languages/classes/LanguageKm.php index 128152f7..105e6ed3 100644 --- a/languages/classes/LanguageKm.php +++ b/languages/classes/LanguageKm.php @@ -6,6 +6,11 @@ * @author Niklas Laxström */ class LanguageKm extends Language { + + /** + * @param $_ string + * @return string + */ function commafy( $_ ) { /* NO-op for Khmer. Cannot use * $separatorTransformTable = array( ',' => '' ) diff --git a/languages/classes/LanguageKsh.php b/languages/classes/LanguageKsh.php index 6d70b896..dc37656c 100644 --- a/languages/classes/LanguageKsh.php +++ b/languages/classes/LanguageKsh.php @@ -20,6 +20,7 @@ class LanguageKsh extends Language { 'wikia' => 'f', 'translatewiki.net' => 'n', ); + /** * Convert from the nominative form of a noun to other cases. * Invoked with {{GRAMMAR:case|word}} inside messages. @@ -39,7 +40,7 @@ class LanguageKsh extends Language { * Betoont focussed or stressed article * -omitted- unstressed or unfocussed article * - * Possible values for for the type of genitive are: + * Possible values for the type of genitive are: * Sing, Iehr prepositioned genitive = possessive dative * Vun, Fon, -omitted- postpositioned genitive * = preposition "vun" with dative @@ -61,114 +62,94 @@ class LanguageKsh extends Language { * Contents of the leftmost table column can be copied and pasted as * "case" values. * + * @param $word String + * @param $case String + * + * @return string */ - function convertGrammar( $word, $case ) - { - $lord = strtolower($word); + function convertGrammar( $word, $case ) { + $lord = strtolower( $word ); $gender = 'm'; // Nuutnaarel // default - if ( preg_match ( '/wiki$/', $lord ) ) - { + if ( preg_match ( '/wiki$/', $lord ) ) { $gender = 'n'; // Dat xyz-wiki } - if ( isset( self::$familygender[$lord] ) ) - { - $gender = (self::$familygender[$lord]); + if ( isset( self::$familygender[$lord] ) ) { + $gender = self::$familygender[$lord]; } - $case = (' '.strtolower($case)); - if ( preg_match( '/ [is]/', $case ) ) - { + $case = ' ' . strtolower( $case ); + if ( preg_match( '/ [is]/', $case ) ) { # däm WikiMaatplaz singe, dä Wikipeedija iere, däm Wikiwööterbooch singe # dem/em WikiMaatplaz singe, de Wikipeedija iere, dem/em Wikiwööterbooch singe # däm WikiMaatplaz sing, dä Wikipeedija ier, däm Wikiwööterbooch sing # dem/em WikiMaatplaz sing, de Wikipeedija ier, dem/em Wikiwööterbooch sing $word = ( preg_match( '/ b/', $case ) - ? ($gender=='f' - ? 'dä' - : 'däm' - ) - : ($gender=='f' - ? 'de' - : 'dem' - ) - ). - ' '.$word.' '. - ( $gender=='f' - ? 'ier' - : 'sing' - ). - ( preg_match( '/ m/', $case ) - ? 'e' - : '' + ? ( $gender=='f' ? 'dä' : 'däm' ) + : ( $gender=='f' ? 'de' : 'dem' ) + ) . ' ' . $word . ' ' . + ( $gender=='f' ? 'ier' : 'sing' ) . + ( preg_match( '/ m/', $case ) ? 'e' : '' ); - } - elseif ( preg_match( '/ e/', $case ) ) - { + } elseif ( preg_match( '/ e/', $case ) ) { # en dämm WikiMaatPlaz, en dä Wikipeedija, en dämm Wikiwööterbooch # em WikiMaatplaz, en de Wikipeedija, em Wikiwööterbooch - if ( preg_match( '/ b/', $case ) ) - { - $word = ('en '.($gender=='f'?'dä':'däm').' '.$word); - } - else - { - $word = (($gender=='f'?'en de':'em').' '.$word); + if ( preg_match( '/ b/', $case ) ) { + $word = 'en '.( $gender == 'f' ? 'dä' : 'däm' ) . ' ' . $word; + } else { + $word = ( $gender == 'f' ? 'en de' : 'em' ) . ' ' . $word; } - } - elseif ( preg_match( '/ [fv]/', $case ) || preg_match( '/ [2jg]/', $case ) ) - { + } elseif ( preg_match( '/ [fv]/', $case ) || preg_match( '/ [2jg]/', $case ) ) { # vun däm WikiMaatplaz, vun dä Wikipeedija, vun däm Wikiwööterbooch # vum WikiMaatplaz, vun de Wikipeedija, vum Wikiwööterbooch - if ( preg_match( '/ b/', $case ) ) - { - $word = ('vun '.($gender=='f'?'dä':'däm').' '.$word); - } - else - { - $word = (($gender=='f'?'vun de':'vum').' '.$word); + if ( preg_match( '/ b/', $case ) ) { + $word = 'vun ' . ( $gender == 'f' ? 'dä' : 'däm' ) . ' ' . $word; + } else { + $word = ( $gender== 'f' ? 'vun de' : 'vum' ) . ' ' . $word; } - } - elseif ( preg_match( '/ [3d]/', $case ) ) - { + } elseif ( preg_match( '/ [3d]/', $case ) ) { # dämm WikiMaatPlaz, dä Wikipeedija, dämm Wikiwööterbooch # dem/em WikiMaatplaz, de Wikipeedija, dem/em Wikiwööterbooch - if ( preg_match( '/ b/', $case ) ) - { - $word = (($gender=='f'?'dää':'dämm').' '.$word); - } - else - { - $word = (($gender=='f'?'de':'dem').' '.$word); + if ( preg_match( '/ b/', $case ) ) { + $word = ( $gender == 'f' ? 'dää' : 'dämm' ) .' ' . $word; + } else { + $word = ( $gender == 'f' ? 'de' : 'dem' ) . ' ' . $word; } - } - else - { + } else { # dä WikiMaatPlaz, di Wikipeedija, dat Wikiwööterbooch # der WikiMaatplaz, de Wikipeedija, et Wikiwööterbooch - if ( preg_match( '/ b/', $case ) ) - { - switch ( $gender ) - { - case 'm' : $lord = 'dä' ; break ; - case 'f' : $lord = 'di' ; break ; - default : $lord = 'dat' ; break ; + if ( preg_match( '/ b/', $case ) ) { + switch ( $gender ) { + case 'm': + $lord = 'dä'; + break ; + case 'f': + $lord = 'di'; + break; + default: + $lord = 'dat'; } - } - else - { - switch ( $gender ) - { - case 'm' : $lord = 'der' ; break ; - case 'f' : $lord = 'de' ; break ; - default : $lord = 'et' ; break ; + } else { + switch ( $gender ) { + case 'm': + $lord = 'der'; + break; + case 'f': + $lord = 'de'; + break; + default: + $lord = 'et'; } } - $word = ($lord.' '.$word); + $word = $lord.' '.$word; } - return($word); + return $word; } /** * Avoid grouping whole numbers between 0 to 9999 + * + * @param $_ string + * + * @return string */ public function commafy( $_ ) { if ( !preg_match( '/^\d{1,4}$/', $_ ) ) { @@ -180,6 +161,11 @@ class LanguageKsh extends Language { /** * Handle cases of (1, other, 0) or (1, other) + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageKu.php b/languages/classes/LanguageKu.php index 1cc4f017..92bca095 100644 --- a/languages/classes/LanguageKu.php +++ b/languages/classes/LanguageKu.php @@ -132,11 +132,15 @@ class KuConverter extends LanguageConverter { ); } - /* + /** * A function wrapper: * - if there is no selected variant, leave the link * names as they were * - do not try to find variants for usernames + * + * @param $link string + * @param $nt Title + * @param $ignoreOtherCond bool */ function findVariantLink( &$link, &$nt, $ignoreOtherCond = false ) { // check for user namespace @@ -152,9 +156,14 @@ class KuConverter extends LanguageConverter { $link = $oldlink; } - /* + /** * We want our external link captions to be converted in variants, * so we return the original text instead -{$text}-, except for URLs + * + * @param $text string + * @param $noParse bool + * + * @return string */ function markNoConversion( $text, $noParse = false ) { if ( $noParse || preg_match( "/^https?:\/\/|ftp:\/\/|irc:\/\//", $text ) ) @@ -162,9 +171,14 @@ class KuConverter extends LanguageConverter { return $text; } - /* + /** * An ugly function wrapper for parsing Image titles * (to prevent image name conversion) + * + * @param $text string + * @param $toVariant bool + * + * @return string */ function autoConvert( $text, $toVariant = false ) { global $wgTitle; @@ -178,6 +192,11 @@ class KuConverter extends LanguageConverter { /** * It translates text into variant, specials: * - ommiting roman numbers + * + * @param $text string + * @param $toVariant bool + * + * @return string */ function translate( $text, $toVariant ) { /* From Kazakh interface, maybe we need it later diff --git a/languages/classes/LanguageKu_ku.php b/languages/classes/LanguageKu_ku.php index a9ec64e6..e4332928 100644 --- a/languages/classes/LanguageKu_ku.php +++ b/languages/classes/LanguageKu_ku.php @@ -8,6 +8,10 @@ class LanguageKu_ku extends Language { /** * Avoid grouping whole numbers between 0 to 9999 + * + * @param $_ string + * + * @return string */ function commafy( $_ ) { diff --git a/languages/classes/LanguageLa.php b/languages/classes/LanguageLa.php index 81fc30cf..657ac6e4 100644 --- a/languages/classes/LanguageLa.php +++ b/languages/classes/LanguageLa.php @@ -12,6 +12,11 @@ class LanguageLa extends Language { * Rules are far from complete. * * Cases: genitive, accusative, ablative + * + * @param $word string + * @param $case string + * + * @return string */ function convertGrammar( $word, $case ) { global $wgGrammarForms; diff --git a/languages/classes/LanguageLn.php b/languages/classes/LanguageLn.php index 11d276d8..b96cf619 100644 --- a/languages/classes/LanguageLn.php +++ b/languages/classes/LanguageLn.php @@ -8,7 +8,11 @@ class LanguageLn extends Language { /** * Use singular form for zero * http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#ln - + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageLt.php b/languages/classes/LanguageLt.php index 4291e797..09cacae0 100644 --- a/languages/classes/LanguageLt.php +++ b/languages/classes/LanguageLt.php @@ -10,6 +10,13 @@ class LanguageLt extends Language { 2 - trys (3) lapai 3 - penkiolika (15) lapų */ + + /** + * @param $count int + * @param $forms array + * + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageLv.php b/languages/classes/LanguageLv.php index fea2d21f..8a78303c 100644 --- a/languages/classes/LanguageLv.php +++ b/languages/classes/LanguageLv.php @@ -22,7 +22,7 @@ class LanguageLv extends Language { function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } - // FIXME: CLDR defines 3 plural forms instead of 2. Form for 0 is missing. + // @todo FIXME: CLDR defines 3 plural forms instead of 2. Form for 0 is missing. // http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#lv $forms = $this->preConvertPlural( $forms, 2 ); diff --git a/languages/classes/LanguageMg.php b/languages/classes/LanguageMg.php index 54ef408f..111dda35 100644 --- a/languages/classes/LanguageMg.php +++ b/languages/classes/LanguageMg.php @@ -7,6 +7,11 @@ class LanguageMg extends Language { /** * Use singular form for zero + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageMk.php b/languages/classes/LanguageMk.php index 9dc8a560..4ae7f412 100644 --- a/languages/classes/LanguageMk.php +++ b/languages/classes/LanguageMk.php @@ -8,6 +8,11 @@ class LanguageMk extends Language { /** * Plural forms per * http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#mk + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageMl.php b/languages/classes/LanguageMl.php index 3cd30eb2..aeca3621 100644 --- a/languages/classes/LanguageMl.php +++ b/languages/classes/LanguageMl.php @@ -13,8 +13,12 @@ class LanguageMl extends Language { * bug 9413. Also fixes miscellaneous problems due to mishandling of ZWJ, * e.g. bug 11162. * - * FIXME: This is language-specific for now only to avoid the negative + * @todo FIXME: This is language-specific for now only to avoid the negative * performance impact of enabling it for all languages. + * + * @param $s string + * + * @return string */ function normalize( $s ) { global $wgFixMalayalamUnicode; diff --git a/languages/classes/LanguageMo.php b/languages/classes/LanguageMo.php index beeb04f8..5d78a502 100644 --- a/languages/classes/LanguageMo.php +++ b/languages/classes/LanguageMo.php @@ -5,6 +5,12 @@ * @ingroup Language */ class LanguageMo extends Language { + + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { // Plural rules per // http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#mo diff --git a/languages/classes/LanguageMt.php b/languages/classes/LanguageMt.php index fb271bf6..ef143da5 100644 --- a/languages/classes/LanguageMt.php +++ b/languages/classes/LanguageMt.php @@ -8,6 +8,12 @@ */ class LanguageMt extends Language { + + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageMy.php b/languages/classes/LanguageMy.php index 4fa5b05e..b12e4585 100644 --- a/languages/classes/LanguageMy.php +++ b/languages/classes/LanguageMy.php @@ -7,6 +7,11 @@ * @author Niklas Laxström, 2008 */ class LanguageMy extends Language { + + /** + * @param $_ string + * @return string + */ function commafy( $_ ) { /* NO-op. Cannot use * $separatorTransformTable = array( ',' => '' ) diff --git a/languages/classes/LanguageNso.php b/languages/classes/LanguageNso.php index 9ff89039..40263320 100644 --- a/languages/classes/LanguageNso.php +++ b/languages/classes/LanguageNso.php @@ -7,6 +7,11 @@ class LanguageNso extends Language { /** * Use singular form for zero + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageOs.php b/languages/classes/LanguageOs.php new file mode 100644 index 00000000..f3b5d8a4 --- /dev/null +++ b/languages/classes/LanguageOs.php @@ -0,0 +1,87 @@ +preConvertPlural( $forms, 3 ); @@ -22,6 +28,10 @@ class LanguagePl extends Language { } } + /** + * @param $_ string + * @return string + */ function commafy( $_ ) { if ( !preg_match( '/^\-?\d{1,4}(\.\d+)?$/', $_ ) ) { return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) ); diff --git a/languages/classes/LanguageQqx.php b/languages/classes/LanguageQqx.php new file mode 100644 index 00000000..88d38f59 --- /dev/null +++ b/languages/classes/LanguageQqx.php @@ -0,0 +1,15 @@ +preConvertPlural( $forms, 3 ); @@ -93,10 +102,14 @@ class LanguageRu extends Language { } } - /* + /** * Four-digit number should be without group commas (spaces) * See manual of style at http://ru.wikipedia.org/wiki/Википедия:Оформление_статей * So "1 234 567", "12 345" but "1234" + * + * @param $_ string + * + * @return string */ function commafy( $_ ) { if ( preg_match( '/^-?\d{1,4}(\.\d*)?$/', $_ ) ) { diff --git a/languages/classes/LanguageSe.php b/languages/classes/LanguageSe.php index 3011bc7f..a66957f0 100644 --- a/languages/classes/LanguageSe.php +++ b/languages/classes/LanguageSe.php @@ -5,6 +5,12 @@ * @ingroup Language */ class LanguageSe extends Language { + + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageSgs.php b/languages/classes/LanguageSgs.php new file mode 100644 index 00000000..8c10182d --- /dev/null +++ b/languages/classes/LanguageSgs.php @@ -0,0 +1,30 @@ +preConvertPlural( $forms, 4 ); + + $count = abs( $count ); + if ( $count === 0 || ( $count % 100 === 0 || ( $count % 100 >= 10 && $count % 100 < 20 ) ) ) { + return $forms[2]; + } elseif ( $count % 10 === 1 ) { + return $forms[0]; + } elseif ( $count % 10 === 2 ) { + return $forms[1]; + } else { + return $forms[3]; + } + } +} diff --git a/languages/classes/LanguageSh.php b/languages/classes/LanguageSh.php index e62d7ba3..139ad0b6 100644 --- a/languages/classes/LanguageSh.php +++ b/languages/classes/LanguageSh.php @@ -5,13 +5,19 @@ * @ingroup Language */ class LanguageSh extends Language { + + /** + * @param $count string + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } // 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]; - // FIXME: CLDR defines 4 plural forms. Form with decimals missing. + // @todo FIXME: CLDR defines 4 plural forms. Form with decimals missing. // See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#sh $forms = $this->preConvertPlural( $forms, 3 ); diff --git a/languages/classes/LanguageSk.php b/languages/classes/LanguageSk.php index ea74d1ba..eac25f4f 100644 --- a/languages/classes/LanguageSk.php +++ b/languages/classes/LanguageSk.php @@ -5,6 +5,12 @@ * @ingroup Language */ class LanguageSk extends Language { + + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } $forms = $this->preConvertPlural( $forms, 3 ); diff --git a/languages/classes/LanguageSl.php b/languages/classes/LanguageSl.php index 09138ea5..3e2ca90e 100644 --- a/languages/classes/LanguageSl.php +++ b/languages/classes/LanguageSl.php @@ -9,6 +9,11 @@ class LanguageSl extends Language { # Invoked with {{GRAMMAR:case|word}} /** * Cases: rodilnik, dajalnik, tožilnik, mestnik, orodnik + * + * @param $word string + * @param $case string + * + * @return string */ function convertGrammar( $word, $case ) { global $wgGrammarForms; @@ -26,6 +31,12 @@ class LanguageSl extends Language { return $word; # this will return the original value for 'imenovalnik' (nominativ) and all undefined case values } + /** + * @param $count int + * @param $forms array + * + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } $forms = $this->preConvertPlural( $forms, 5 ); diff --git a/languages/classes/LanguageSma.php b/languages/classes/LanguageSma.php index a04c77da..72ca98a1 100644 --- a/languages/classes/LanguageSma.php +++ b/languages/classes/LanguageSma.php @@ -5,6 +5,12 @@ * @ingroup Language */ class LanguageSma extends Language { + + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } @@ -12,11 +18,11 @@ class LanguageSma extends Language { $forms = $this->preConvertPlural( $forms, 3 ); if ( $count == 1 ) { - $index = 1; + $index = 0; } elseif ( $count == 2 ) { - $index = 2; + $index = 1; } else { - $index = 3; + $index = 2; } return $forms[$index]; } diff --git a/languages/classes/LanguageSr.php b/languages/classes/LanguageSr.php index 35c90102..b26a2543 100644 --- a/languages/classes/LanguageSr.php +++ b/languages/classes/LanguageSr.php @@ -58,16 +58,23 @@ class SrConverter extends LanguageConverter { ); } - /* rules should be defined as -{ekavian | iyekavian-} -or- - -{code:text | code:text | ...}- - update: delete all rule parsing because it's not used - currently, and just produces a couple of bugs - */ + /** + * rules should be defined as -{ekavian | iyekavian-} -or- + * -{code:text | code:text | ...}- + * + * update: delete all rule parsing because it's not used + * currently, and just produces a couple of bugs + * + * @param $rule string + * @param $flags array + * @return array + */ function parseManualRule( $rule, $flags = array() ) { if ( in_array( 'T', $flags ) ) { return parent::parseManualRule( $rule, $flags ); } + $carray = array(); // otherwise ignore all formatting foreach ( $this->mVariants as $v ) { $carray[$v] = $rule; @@ -76,11 +83,15 @@ class SrConverter extends LanguageConverter { return $carray; } - /* + /** * A function wrapper: * - if there is no selected variant, leave the link * names as they were * - do not try to find variants for usernames + * + * @param $link string + * @param $nt Title + * @param $ignoreOtherCond bool */ function findVariantLink( &$link, &$nt, $ignoreOtherCond = false ) { // check for user namespace @@ -96,9 +107,14 @@ class SrConverter extends LanguageConverter { $link = $oldlink; } - /* + /** * We want our external link captions to be converted in variants, * so we return the original text instead -{$text}-, except for URLs + * + * @param $text string + * @param $noParse bool + * + * @return string */ function markNoConversion( $text, $noParse = false ) { if ( $noParse || preg_match( "/^https?:\/\/|ftp:\/\/|irc:\/\//", $text ) ) @@ -106,9 +122,14 @@ class SrConverter extends LanguageConverter { return $text; } - /* + /** * An ugly function wrapper for parsing Image titles * (to prevent image name conversion) + * + * @param $text string + * @param $toVariant bool + * + * @return string */ function autoConvert( $text, $toVariant = false ) { global $wgTitle; @@ -122,6 +143,11 @@ class SrConverter extends LanguageConverter { /** * It translates text into variant, specials: * - ommiting roman numbers + * + * @param $text string + * @param $toVariant string + * + * @return string */ function translate( $text, $toVariant ) { $breaks = '[^\w\x80-\xff]'; @@ -175,13 +201,23 @@ class LanguageSr extends LanguageSr_ec { $wgHooks['ArticleSaveComplete'][] = $this->mConverter; } + /** + * @param $count int + * @param $forms array + * + * @return string + */ function convertPlural( $count, $forms ) { - if ( !count( $forms ) ) { return ''; } + if ( !count( $forms ) ) { + return ''; + } // 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]; + if ( count( $forms ) === 2 ) { + return $count == 1 ? $forms[0] : $forms[1]; + } - // FIXME: CLDR defines 4 plural forms. Form with decimals missing. + // @todo FIXME: CLDR defines 4 plural forms. Form with decimals missing. // See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#ru $forms = $this->preConvertPlural( $forms, 3 ); diff --git a/languages/classes/LanguageSr_ec.php b/languages/classes/LanguageSr_ec.php index ed447e5e..572a5f3b 100644 --- a/languages/classes/LanguageSr_ec.php +++ b/languages/classes/LanguageSr_ec.php @@ -6,6 +6,12 @@ * @ingroup Language */ class LanguageSr_ec extends Language { + + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } $forms = $this->preConvertPlural( $forms, 3 ); diff --git a/languages/classes/LanguageSr_el.php b/languages/classes/LanguageSr_el.php index d43772af..3a1f6a6d 100644 --- a/languages/classes/LanguageSr_el.php +++ b/languages/classes/LanguageSr_el.php @@ -6,6 +6,12 @@ * @ingroup Language */ class LanguageSr_el extends Language { + + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } $forms = $this->preConvertPlural( $forms, 3 ); diff --git a/languages/classes/LanguageTi.php b/languages/classes/LanguageTi.php index e37116b1..46a776bf 100644 --- a/languages/classes/LanguageTi.php +++ b/languages/classes/LanguageTi.php @@ -7,6 +7,11 @@ class LanguageTi extends Language { /** * Use singular form for zero + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageTl.php b/languages/classes/LanguageTl.php index 4495ddcc..f976bed1 100644 --- a/languages/classes/LanguageTl.php +++ b/languages/classes/LanguageTl.php @@ -7,6 +7,11 @@ class LanguageTl extends Language { /** * Use singular form for zero + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } diff --git a/languages/classes/LanguageTr.php b/languages/classes/LanguageTr.php index 245b5b06..cbc1b7e4 100644 --- a/languages/classes/LanguageTr.php +++ b/languages/classes/LanguageTr.php @@ -3,9 +3,19 @@ /** * Turkish (Türkçe) * + * Turkish has two different i, one with a dot and another without a dot. They + * are totally different letters in this language, so we have to override the + * ucfirst and lcfirst methods. + * See http://en.wikipedia.org/wiki/Dotted_and_dotless_I + * and @bug 28040 * @ingroup Language */ class LanguageTr extends Language { + + /** + * @param $string string + * @return string + */ function ucfirst ( $string ) { if ( !empty( $string ) && $string[0] == 'i' ) { return 'İ' . substr( $string, 1 ); @@ -13,4 +23,17 @@ class LanguageTr extends Language { return parent::ucfirst( $string ); } } + + /** + * @param $string string + * @return mixed|string + */ + function lcfirst ( $string ) { + if ( !empty( $string ) && $string[0] == 'I' ) { + return 'ı' . substr( $string, 1 ); + } else { + return parent::lcfirst( $string ); + } + } + } diff --git a/languages/classes/LanguageTyv.php b/languages/classes/LanguageTyv.php index 9e5b6453..8bca11b2 100644 --- a/languages/classes/LanguageTyv.php +++ b/languages/classes/LanguageTyv.php @@ -28,7 +28,7 @@ class LanguageTyv extends Language { $roundFrontVowels = array( "ө", "ү", "ö", "ü" ); $unroundBackVowels = array( "а", "ы", "я", "a", "y" ); $roundBackVowels = array( "ё", "о", "у", "ю", "o", "u" ); - $voicedPhonemes = array( "д", "б", "з", "ж", "г", "d", "b", "z", "g" ); + //$voicedPhonemes = array( "д", "б", "з", "ж", "г", "d", "b", "z", "g" ); $unvoicedPhonemes = array( "т", "п", "с", "ш", "к", "ч", "х", "t", "p", "s", "k", "x" ); $directiveUnvoicedStems = array( "т", "п", "с", "ш", "к", "ч", "х", "л", "м", "н", "ң", "t", "p", "s", "k", "x", "l", "m", "n", "ŋ" ); $directiveVoicedStems = array( "д", "б", "з", "ж", "г", "р", "й", "d", "b", "z", "g", "r", "j" ); diff --git a/languages/classes/LanguageUk.php b/languages/classes/LanguageUk.php index 6c0cf8da..206c5aa3 100644 --- a/languages/classes/LanguageUk.php +++ b/languages/classes/LanguageUk.php @@ -5,8 +5,15 @@ * @ingroup Language */ class LanguageUk extends Language { - # Convert from the nominative form of a noun to some other case - # Invoked with {{grammar:case|word}} + + /** + * Convert from the nominative form of a noun to some other case + * Invoked with {{grammar:case|word}} + * + * @param $word string + * @param $case string + * @return string + */ function convertGrammar( $word, $case ) { global $wgGrammarForms; if ( isset( $wgGrammarForms['uk'][$case][$word] ) ) { @@ -56,13 +63,18 @@ class LanguageUk extends Language { return $word; } + /** + * @param $count int + * @param $forms array + * @return string + */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } // 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]; - // FIXME: CLDR defines 4 plural forms. Form for decimals is missing/ + // @todo FIXME: CLDR defines 4 plural forms. Form for decimals is missing/ // See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#uk $forms = $this->preConvertPlural( $forms, 3 ); @@ -79,8 +91,12 @@ class LanguageUk extends Language { } } - /* + /** * Ukrainian numeric format is "12 345,67" but "1234,56" + * + * @param $_ string + * + * @return string */ function commafy( $_ ) { if ( !preg_match( '/^\-?\d{1,4}(\.\d+)?$/', $_ ) ) { diff --git a/languages/classes/LanguageWa.php b/languages/classes/LanguageWa.php index 0cb439d0..4a186638 100644 --- a/languages/classes/LanguageWa.php +++ b/languages/classes/LanguageWa.php @@ -11,6 +11,11 @@ class LanguageWa extends Language { /** * Use singular form for zero + * + * @param $count int + * @param $forms array + * + * @return string */ function convertPlural( $count, $forms ) { if ( !count( $forms ) ) { return ''; } @@ -19,11 +24,17 @@ class LanguageWa extends Language { 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 - ## # " d' " for months starting with a vowel - ## # + /** + * Dates in Walloon are "1î d' " for 1st of the month, + * " di " for months starting by a consoun, and + * " d' " for months starting with a vowel + * + * @param $ts string + * @param $adj bool + * @param $format bool + * @param $tc bool + * @return string + */ function date( $ts, $adj = false, $format = true, $tc = false ) { $ts = wfTimestamp( TS_MW, $ts ); if ( $adj ) { $ts = $this->userAdjust( $ts, $tc ); } @@ -51,10 +62,10 @@ class LanguageWa extends Language { if ( $n == 1 ) { $d = "1î d' " . $this->getMonthName( $m ) . " " . substr( $ts, 0, 4 ); - } else if ( $n == 2 || $n == 3 || $n == 20 || $n == 22 || $n == 23 ) { + } elseif ( $n == 2 || $n == 3 || $n == 20 || $n == 22 || $n == 23 ) { $d = ( 0 + $n ) . " d' " . $this->getMonthName( $m ) . " " . substr( $ts, 0, 4 ); - } else if ( $m == 4 || $m == 8 || $m == 10 ) { + } elseif ( $m == 4 || $m == 8 || $m == 10 ) { $d = ( 0 + $n ) . " d' " . $this->getMonthName( $m ) . " " . substr( $ts, 0, 4 ); } else { @@ -64,6 +75,13 @@ class LanguageWa extends Language { return $d; } + /** + * @param $ts string + * @param $adj bool + * @param $format bool + * @param $tc bool + * @return string + */ function timeanddate( $ts, $adj = false, $format = true, $tc = false ) { if ( $adj ) { $ts = $this->userAdjust( $ts, $tc ); } $datePreference = $this->dateFormat( $format ); diff --git a/languages/classes/LanguageYue.php b/languages/classes/LanguageYue.php index aff3d29e..5492529e 100644 --- a/languages/classes/LanguageYue.php +++ b/languages/classes/LanguageYue.php @@ -5,6 +5,10 @@ * @ingroup Language */ class LanguageYue extends Language { + + /** + * @return bool + */ function hasWordBreaks() { return false; } @@ -12,7 +16,10 @@ class LanguageYue extends Language { /** * Eventually this should be a word segmentation; * for now just treat each character as a word. - * @todo Fixme: only do this for Han characters... + * @todo FIXME: Only do this for Han characters... + * + * @param $string string + * @return string */ function segmentByWord( $string ) { $reg = "/([\\xc0-\\xff][\\x80-\\xbf]*)/"; @@ -20,6 +27,10 @@ class LanguageYue extends Language { return $s; } + /** + * @param $string + * @return string + */ function normalizeForSearch( $string ) { wfProfileIn( __METHOD__ ); diff --git a/languages/classes/LanguageZh.php b/languages/classes/LanguageZh.php index 0055a33b..d69929de 100644 --- a/languages/classes/LanguageZh.php +++ b/languages/classes/LanguageZh.php @@ -8,6 +8,14 @@ require_once( dirname( __FILE__ ) . '/LanguageZh_hans.php' ); */ class ZhConverter extends LanguageConverter { + /** + * @param $langobj Language + * @param $maincode string + * @param $variants array + * @param $variantfallbacks array + * @param $flags array + * @param $manualLevel array + */ function __construct( $langobj, $maincode, $variants = array(), $variantfallbacks = array(), @@ -58,14 +66,24 @@ class ZhConverter extends LanguageConverter { $this->mTables['zh-tw']->merge( $this->mTables['zh-hant'] ); } - /* there shouldn't be any latin text in Chinese conversion, so no need - to mark anything. - $noParse is there for compatibility with LanguageConvert::markNoConversion + /** + * there shouldn't be any latin text in Chinese conversion, so no need + * to mark anything. + * $noParse is there for compatibility with LanguageConvert::markNoConversion + * + * @param $text string + * @param $noParse bool + * + * @return string */ function markNoConversion( $text, $noParse = false ) { return $text; } + /** + * @param $key string + * @return String + */ function convertCategoryKey( $key ) { return $this->autoConvert( $key, 'zh' ); } @@ -110,13 +128,22 @@ class LanguageZh extends LanguageZh_hans { $wgHooks['ArticleSaveComplete'][] = $this->mConverter; } - # this should give much better diff info + /** + * this should give much better diff info + * + * @param $text string + * @return string + */ function segmentForDiff( $text ) { return preg_replace( "/([\\xc0-\\xff][\\x80-\\xbf]*)/e", "' ' .\"$1\"", $text ); } + /** + * @param $text string + * @return string + */ function unsegmentForDiff( $text ) { return preg_replace( "/ ([\\xc0-\\xff][\\x80-\\xbf]*)/e", @@ -145,6 +172,10 @@ class LanguageZh extends LanguageZh_hans { } + /** + * @param $termsArray array + * @return array + */ function convertForSearchResult( $termsArray ) { $terms = implode( '|', $termsArray ); $terms = self::convertDoubleWidth( $terms ); diff --git a/languages/classes/LanguageZh_hans.php b/languages/classes/LanguageZh_hans.php index a65162bc..671a16e7 100644 --- a/languages/classes/LanguageZh_hans.php +++ b/languages/classes/LanguageZh_hans.php @@ -6,6 +6,10 @@ * @ingroup Language */ class LanguageZh_hans extends Language { + + /** + * @return bool + */ function hasWordBreaks() { return false; } @@ -13,7 +17,11 @@ class LanguageZh_hans extends Language { /** * Eventually this should be a word segmentation; * for now just treat each character as a word. - * @todo Fixme: only do this for Han characters... + * @todo FIXME: Only do this for Han characters... + * + * @param $string string + * + * @return string */ function segmentByWord( $string ) { $reg = "/([\\xc0-\\xff][\\x80-\\xbf]*)/"; @@ -21,6 +29,10 @@ class LanguageZh_hans extends Language { return $s; } + /** + * @param $s + * @return string + */ function normalizeForSearch( $s ) { wfProfileIn( __METHOD__ ); -- cgit v1.2.2