summaryrefslogtreecommitdiff
path: root/languages/classes
diff options
context:
space:
mode:
Diffstat (limited to 'languages/classes')
-rw-r--r--languages/classes/LanguageAm.php5
-rw-r--r--languages/classes/LanguageAr.php12
-rw-r--r--languages/classes/LanguageAz.php5
-rw-r--r--languages/classes/LanguageBe.php8
-rw-r--r--languages/classes/LanguageBe_tarask.php32
-rw-r--r--languages/classes/LanguageBg.php4
-rw-r--r--languages/classes/LanguageBh.php5
-rw-r--r--languages/classes/LanguageBs.php12
-rw-r--r--languages/classes/LanguageCs.php15
-rw-r--r--languages/classes/LanguageCu.php16
-rw-r--r--languages/classes/LanguageCy.php8
-rw-r--r--languages/classes/LanguageDsb.php16
-rw-r--r--languages/classes/LanguageEo.php14
-rw-r--r--languages/classes/LanguageEt.php4
-rw-r--r--languages/classes/LanguageFi.php15
-rw-r--r--languages/classes/LanguageFr.php5
-rw-r--r--languages/classes/LanguageGa.php16
-rw-r--r--languages/classes/LanguageGan.php47
-rw-r--r--languages/classes/LanguageGd.php27
-rw-r--r--languages/classes/LanguageGv.php5
-rw-r--r--languages/classes/LanguageHe.php2
-rw-r--r--languages/classes/LanguageHi.php5
-rw-r--r--languages/classes/LanguageHr.php7
-rw-r--r--languages/classes/LanguageHsb.php16
-rw-r--r--languages/classes/LanguageHu.php6
-rw-r--r--languages/classes/LanguageHy.php24
-rw-r--r--languages/classes/LanguageIu.deps.php8
-rw-r--r--languages/classes/LanguageIu.php224
-rw-r--r--languages/classes/LanguageJa.php14
-rw-r--r--languages/classes/LanguageKaa.php35
-rw-r--r--languages/classes/LanguageKk.php75
-rw-r--r--languages/classes/LanguageKk_cyrl.php25
-rw-r--r--languages/classes/LanguageKm.php5
-rw-r--r--languages/classes/LanguageKsh.php144
-rw-r--r--languages/classes/LanguageKu.php25
-rw-r--r--languages/classes/LanguageKu_ku.php4
-rw-r--r--languages/classes/LanguageLa.php5
-rw-r--r--languages/classes/LanguageLn.php6
-rw-r--r--languages/classes/LanguageLt.php7
-rw-r--r--languages/classes/LanguageLv.php2
-rw-r--r--languages/classes/LanguageMg.php5
-rw-r--r--languages/classes/LanguageMk.php5
-rw-r--r--languages/classes/LanguageMl.php6
-rw-r--r--languages/classes/LanguageMo.php6
-rw-r--r--languages/classes/LanguageMt.php6
-rw-r--r--languages/classes/LanguageMy.php5
-rw-r--r--languages/classes/LanguageNso.php5
-rw-r--r--languages/classes/LanguageOs.php87
-rw-r--r--languages/classes/LanguagePl.php10
-rw-r--r--languages/classes/LanguageQqx.php15
-rw-r--r--languages/classes/LanguageRo.php6
-rw-r--r--languages/classes/LanguageRu.php23
-rw-r--r--languages/classes/LanguageSe.php6
-rw-r--r--languages/classes/LanguageSgs.php (renamed from languages/classes/LanguageBat_smg.php)7
-rw-r--r--languages/classes/LanguageSh.php8
-rw-r--r--languages/classes/LanguageSk.php6
-rw-r--r--languages/classes/LanguageSl.php11
-rw-r--r--languages/classes/LanguageSma.php12
-rw-r--r--languages/classes/LanguageSr.php58
-rw-r--r--languages/classes/LanguageSr_ec.php6
-rw-r--r--languages/classes/LanguageSr_el.php6
-rw-r--r--languages/classes/LanguageTi.php5
-rw-r--r--languages/classes/LanguageTl.php5
-rw-r--r--languages/classes/LanguageTr.php23
-rw-r--r--languages/classes/LanguageTyv.php2
-rw-r--r--languages/classes/LanguageUk.php24
-rw-r--r--languages/classes/LanguageWa.php32
-rw-r--r--languages/classes/LanguageYue.php13
-rw-r--r--languages/classes/LanguageZh.php39
-rw-r--r--languages/classes/LanguageZh_hans.php14
70 files changed, 1169 insertions, 197 deletions
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/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 @@
+<?php
+// This file exists to ensure that base classes are preloaded before
+// LanguageIu.php is compiled, working around a bug in the APC opcode
+// cache on PHP 5, where cached code can break if the include order
+// changed on a subsequent page view.
+// see http://mail.wikipedia.org/pipermail/wikitech-l/2006-January/033660.html
+
+require_once( dirname(__FILE__).'/../LanguageConverter.php' );
diff --git a/languages/classes/LanguageIu.php b/languages/classes/LanguageIu.php
new file mode 100644
index 00000000..c6221dee
--- /dev/null
+++ b/languages/classes/LanguageIu.php
@@ -0,0 +1,224 @@
+<?php
+/**
+ * @addtogroup Language
+ */
+
+/*
+* Conversion script between Latin and Syllabics for Inuktitut.
+* - Syllabics -> 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 <em> as italic
+ /**
+ * Italic is not appropriate for Japanese script
+ * Unfortunately most browsers do not recognise this, and render <em> 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 @@
+<?php
+
+/** Ossetian (Ирон)
+ *
+ * @author Soslan Khubulov
+ *
+ * @ingroup Language
+ */
+class LanguageOs extends Language {
+
+ /**
+ * Convert from the nominative form of a noun to other cases
+ * Invoked with {{grammar:case|word}}
+ *
+ * Depending on word there are four different ways of converting to other cases.
+ * 1) Word consist of not cyrillic letters or is an abbreviation.
+ * Then result word is: word + hyphen + case ending.
+ *
+ * 2) Word consist of cyrillic letters.
+ * 2.1) Word is in plural.
+ * Then result word is: word - last letter + case ending. Ending of allative case here is 'æм'.
+ *
+ * 2.2) Word is in singular.
+ * 2.2.1) Word ends on consonant.
+ * Then result word is: word + case ending.
+ *
+ * 2.2.2) Word ends on vowel.
+ * Then result word is: word + 'й' + case ending for cases != allative or comitative
+ * and word + case ending for allative or comitative. Ending of allative case here is 'æ'.
+ *
+ * @param $word string
+ * @param $case string
+ * @return string
+ */
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset( $wgGrammarForms['os'][$case][$word] ) ) {
+ return $wgGrammarForms['os'][$case][$word];
+ }
+ # Ending for allative case
+ $end_allative = 'мæ';
+ # Variable for 'j' beetwen vowels
+ $jot = '';
+ # Variable for "-" for not Ossetic words
+ $hyphen = '';
+ # Variable for ending
+ $ending = '';
+
+
+ # CHecking if the $word is in plural form
+ if ( preg_match( '/тæ$/u', $word ) ) {
+ $word = mb_substr( $word, 0, -1 );
+ $end_allative = 'æм';
+ }
+ # Works if $word is in singular form.
+ # Checking if $word ends on one of the vowels: е, ё, и, о, ы, э, ю, я.
+ elseif ( preg_match( "/[аæеёиоыэюя]$/u", $word ) ) {
+ $jot = 'й';
+ }
+ # Checking if $word ends on 'у'. 'У' can be either consonant 'W' or vowel 'U' in cyrillic Ossetic.
+ # Examples: {{grammar:genitive|аунеу}} = аунеуы, {{grammar:genitive|лæппу}} = лæппуйы.
+ elseif ( preg_match( "/у$/u", $word ) ) {
+ if ( !preg_match( "/[аæеёиоыэюя]$/u", mb_substr( $word, -2, 1 ) ) )
+ $jot = 'й';
+ } elseif ( !preg_match( "/[бвгджзйклмнопрстфхцчшщьъ]$/u", $word ) ) {
+ $hyphen = '-';
+ }
+
+ switch ( $case ) {
+ case 'genitive': $ending = $hyphen . $jot . 'ы'; break;
+ case 'dative': $ending = $hyphen . $jot . 'æн'; break;
+ case 'allative': $ending = $hyphen . $end_allative; break;
+ case 'ablative':
+ if ( $jot == 'й' ) {
+ $ending = $hyphen . $jot . 'æ'; break;
+ }
+ else {
+ $ending = $hyphen . $jot . 'æй'; break;
+ }
+ case 'inessive': break;
+ case 'superessive': $ending = $hyphen . $jot . 'ыл'; break;
+ case 'equative': $ending = $hyphen . $jot . 'ау'; break;
+ case 'comitative': $ending = $hyphen . 'имæ'; break;
+ }
+ return $word . $ending;
+ }
+}
diff --git a/languages/classes/LanguagePl.php b/languages/classes/LanguagePl.php
index 40477f42..59c8d5c2 100644
--- a/languages/classes/LanguagePl.php
+++ b/languages/classes/LanguagePl.php
@@ -5,6 +5,12 @@
* @ingroup Language
*/
class LanguagePl extends Language {
+
+ /**
+ * @param $count string
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$forms = $this->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 @@
+<?php
+/**
+ * For all translated messages, this returns the name of the message bracketed.
+ * This does not affect untranslated messages.
+ *
+ * NOTE: It returns a valid title, because there are some poorly written
+ * extentions that assume the contents of some messages are valid.
+ *
+ * @ingroup Language
+ */
+class LanguageQqx extends Language {
+ function getMessage( $key ) {
+ return "($key)";
+ }
+}
diff --git a/languages/classes/LanguageRo.php b/languages/classes/LanguageRo.php
index 89edce11..9cfd8b57 100644
--- a/languages/classes/LanguageRo.php
+++ b/languages/classes/LanguageRo.php
@@ -5,6 +5,12 @@
* @ingroup Language
*/
class LanguageRo 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#ro
diff --git a/languages/classes/LanguageRu.php b/languages/classes/LanguageRu.php
index 8f027048..e16761ad 100644
--- a/languages/classes/LanguageRu.php
+++ b/languages/classes/LanguageRu.php
@@ -7,8 +7,15 @@
* @ingroup Language
*/
class LanguageRu 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['ru'][$case][$word] ) ) {
@@ -67,16 +74,18 @@ class LanguageRu extends Language {
* "Сделано $1 {{PLURAL:$1|изменение|изменения|изменений}}"
* message without number
* "Действие не может быть выполнено по {{PLURAL:$1|следующей причине|следующим причинам}}:"
+ * @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 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 );
@@ -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/LanguageBat_smg.php b/languages/classes/LanguageSgs.php
index 5b6c92a6..8c10182d 100644
--- a/languages/classes/LanguageBat_smg.php
+++ b/languages/classes/LanguageSgs.php
@@ -5,8 +5,13 @@
*
* @author Niklas Laxström
*/
-class LanguageBat_smg extends Language {
+class LanguageSgs extends Language {
+ /**
+ * @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/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' <monthname>" for 1st of the month,
- ## # "<day> di <monthname>" for months starting by a consoun, and
- ## # "<day> d' <monthname>" for months starting with a vowel
- ## #
+ /**
+ * Dates in Walloon are "1î d' <monthname>" for 1st of the month,
+ * "<day> di <monthname>" for months starting by a consoun, and
+ * "<day> d' <monthname>" 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__ );