]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blobdiff - languages/classes/LanguageKu.php
MediaWiki 1.17.0
[autoinstalls/mediawiki.git] / languages / classes / LanguageKu.php
index a08d3d736016a1f94a4e541e31ea6d5bb395fe17..1cc4f017f263fa5da793a1e98296d035996f0f17 100644 (file)
@@ -1,23 +1,25 @@
 <?php
-/** Kurdish
-  * converter routines
-  *
-  * @addtogroup Language
-  */
-
-require_once( dirname(__FILE__).'/../LanguageConverter.php' );
-require_once( dirname(__FILE__).'/LanguageKu_ku.php' );
-
+require_once( dirname( __FILE__ ) . '/../LanguageConverter.php' );
+require_once( dirname( __FILE__ ) . '/LanguageKu_ku.php' );
+
+/**
+ * Kurdish converter routines
+ *
+ * @ingroup Language
+ */
 class KuConverter extends LanguageConverter {
        var $mArabicToLatin = array(
                'ب' => 'b', 'ج' => 'c', 'چ' => 'ç', 'د' => 'd', 'ف' => 'f', 'گ' => 'g', 'ھ' => 'h',
                'ہ' => 'h', 'ه' => 'h', 'ح' => 'h', 'ژ' => 'j', 'ك' => 'k', 'ک' => 'k', 'ل' => 'l',
                'م' => 'm', 'ن' => 'n', 'پ' => 'p', 'ق' => 'q', 'ر' => 'r', 'س' => 's', 'ش' => 'ş',
-               'ت' => 't', 'ڤ' => 'v', 'خ' => 'x', 'غ' => 'x', 'ز' => 'z', 
+               'ت' => 't', 'ڤ' => 'v', 'خ' => 'x', 'غ' => 'x', 'ز' => 'z',
+
+// ک و => ku -- ist richtig
+//  و ك=> ku -- ist auch richtig
 
                /* Doppel- und Halbvokale */
-               'ڵ' => 'll', #ll
-               'ڕ'  => 'rr', #rr
+               'ڵ' => 'll', # ll
+               'ڕ'  => 'rr', # rr
                'ا'  => 'a',
                # 'ئێ' => 'ê', # initial e
                'ە'  => 'e',
@@ -31,9 +33,21 @@ class KuConverter extends LanguageConverter {
                'ۆ'  => 'o',
                'و'  => 'w',
                'ئ'  => '', # initial hemze should not be shown
-               '،'  => ',', 
+               '،'  => ',',
                'ع'  => '\'', # ayn
                '؟'  => '?',
+
+               # digits
+               '٠' => '0', # &#x0660;
+               '١' => '1', # &#x0661;
+               '٢' => '2', # &#x0662;
+               '٣' => '3', # &#x0663;
+               '٤' => '4', # &#x0664;
+               '٥' => '5', # &#x0665;
+               '٦' => '6', # &#x0666;
+               '٧' => '7', # &#x0667;
+               '٨' => '8', # &#x0668;
+               '٩' => '9', # &#x0669;
        );
 
        var $mLatinToArabic = array(
@@ -55,7 +69,7 @@ class KuConverter extends LanguageConverter {
                # 'rr' => 'ڕ', # selbiges für doppel-r
 
                /* Einzelne Großbuchstaben */
-               //' C' => 'ج',
+               // ' C' => 'ج',
 
                /* Vowels */
                'a' => 'ا',
@@ -67,7 +81,7 @@ class KuConverter extends LanguageConverter {
                'u' => 'و',
                'û' => 'وو',
                'w' => 'و',
-               ',' => '،', 
+               ',' => '،',
                '?' => '؟',
 
                # Try to replace the leading vowel
@@ -93,9 +107,22 @@ class KuConverter extends LanguageConverter {
                ' U' => 'ئو ',
                ' Û' => 'ئوو ',
                # eyn erstmal deaktivieren, einfache Anführungsstriche sind einfach zu häufig, um sie als eyn zu interpretieren
-               # '\'' => 'ع', 
-
-       );
+               # '\'' => 'ع',
+
+/*             # deactivated for now, breaks links i.e. in header of Special:Recentchanges :-(
+               # digits
+               '0' => '٠', # &#x0660;
+               '1' => '١', # &#x0661;
+               '2' => '٢', # &#x0662;
+               '3' => '٣', # &#x0663;
+               '4' => '٤', # &#x0664;
+               '5' => '٥', # &#x0665;
+               '6' => '٦', # &#x0666;
+               '7' => '٧', # &#x0667;
+               '8' => '٨', # &#x0668;
+               '9' => '٩', # &#x0669;
+*/
+               );
 
        function loadDefaultTables() {
                $this->mTables = array(
@@ -105,44 +132,33 @@ class KuConverter extends LanguageConverter {
                );
        }
 
-
-       // Do not convert content on talk pages
-       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 
+        *   - if there is no selected variant, leave the link
         *     names as they were
         *   - do not try to find variants for usernames
         */
-       function findVariantLink( &$link, &$nt ) {
+       function findVariantLink( &$link, &$nt, $ignoreOtherCond = false ) {
                // check for user namespace
-               if(is_object($nt)){
+               if ( is_object( $nt ) ) {
                        $ns = $nt->getNamespace();
-                       if($ns==NS_USER || $ns==NS_USER_TALK)
+                       if ( $ns == NS_USER || $ns == NS_USER_TALK )
                                return;
                }
 
-               $oldlink=$link;
-               parent::findVariantLink($link,$nt);
-               if($this->getPreferredVariant()==$this->mMainLanguageCode)
-                       $link=$oldlink;
+               $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
         */
-       function markNoConversion($text, $noParse=false) {
-               if($noParse || preg_match("/^https?:\/\/|ftp:\/\/|irc:\/\//",$text))
-                   return parent::markNoConversion($text);
+       function markNoConversion( $text, $noParse = false ) {
+               if ( $noParse || preg_match( "/^https?:\/\/|ftp:\/\/|irc:\/\//", $text ) )
+                   return parent::markNoConversion( $text );
                return $text;
        }
 
@@ -150,24 +166,22 @@ class KuConverter extends LanguageConverter {
         * An ugly function wrapper for parsing Image titles
         * (to prevent image name conversion)
         */
-       function autoConvert($text, $toVariant=false) {
+       function autoConvert( $text, $toVariant = false ) {
                global $wgTitle;
-               if(is_object($wgTitle) && $wgTitle->getNameSpace()==NS_IMAGE){ 
+               if ( is_object( $wgTitle ) && $wgTitle->getNameSpace() == NS_FILE ) {
                        $imagename = $wgTitle->getNsText();
-                       if(preg_match("/^$imagename:/",$text)) return $text;
+                       if ( preg_match( "/^$imagename:/", $text ) ) return $text;
                }
-               return parent::autoConvert($text,$toVariant);
+               return parent::autoConvert( $text, $toVariant );
        }
 
        /**
         *  It translates text into variant, specials:
         *    - ommiting roman numbers
         */
-       function translate($text, $toVariant){
-               $breaks = '[^\w\x80-\xff]';
-
+       function translate( $text, $toVariant ) {
                /* From Kazakh interface, maybe we need it later
-                *
+               $breaks = '[^\w\x80-\xff]';
                // regexp for roman numbers
                $roman = 'M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})';
                $roman = '';
@@ -191,7 +205,7 @@ class KuConverter extends LanguageConverter {
                return $ret;
                */
 
-               if( !isset( $this->mTables[$toVariant] ) ) {
+               if ( !isset( $this->mTables[$toVariant] ) ) {
                        throw new MWException( "Broken variant table: " . implode( ',', array_keys( $this->mTables ) ) );
                }
 
@@ -199,6 +213,11 @@ class KuConverter extends LanguageConverter {
        }
 }
 
+/**
+ * Kurdish (Kurdî / كوردی)
+ *
+ * @ingroup Language
+ */
 class LanguageKu extends LanguageKu_ku {
 
        function __construct() {
@@ -215,26 +234,4 @@ class LanguageKu extends LanguageKu_ku {
                $this->mConverter = new KuConverter( $this, 'ku', $variants, $variantfallbacks );
                $wgHooks['ArticleSaveComplete'][] = $this->mConverter;
        }
-
-/*   From Kazakh interface, not needed for the moment
-
-       function convertGrammar( $word, $case ) {
-               $fname="LanguageKu::convertGrammar";
-               wfProfileIn( $fname );
-
-               //always convert to ku-latn before convertGrammar
-               $w1 = $word;
-               $word = $this->mConverter->autoConvert( $word, 'ku-latn' );
-               $w2 = $word;
-               $word = parent::convertGrammar( $word, $case );
-               //restore encoding
-               if( $w1 != $w2 ) {
-                       $word = $this->mConverter->translate( $word, 'ku-latn' );
-               }
-               wfProfileOut( $fname );
-               return $word;
-       }
-*/
 }
-
-