diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2011-06-22 11:28:20 +0200 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2011-06-22 11:28:20 +0200 |
commit | 9db190c7e736ec8d063187d4241b59feaf7dc2d1 (patch) | |
tree | 46d1a0dee7febef5c2d57a9f7b972be16a163b3d /languages/classes/LanguageKk.php | |
parent | 78677c7bbdcc9739f6c10c75935898a20e1acd9e (diff) |
update to MediaWiki 1.17.0
Diffstat (limited to 'languages/classes/LanguageKk.php')
-rw-r--r-- | languages/classes/LanguageKk.php | 153 |
1 files changed, 76 insertions, 77 deletions
diff --git a/languages/classes/LanguageKk.php b/languages/classes/LanguageKk.php index 318b82a8..e3caacc8 100644 --- a/languages/classes/LanguageKk.php +++ b/languages/classes/LanguageKk.php @@ -1,15 +1,15 @@ <?php -require_once( dirname(__FILE__).'/../LanguageConverter.php' ); -require_once( dirname(__FILE__).'/LanguageKk_cyrl.php' ); +require_once( dirname( __FILE__ ) . '/../LanguageConverter.php' ); +require_once( dirname( __FILE__ ) . '/LanguageKk_cyrl.php' ); define( 'KK_C_UC', 'АӘБВГҒДЕЁЖЗИЙКҚЛМНҢОӨПРСТУҰҮФХҺЦЧШЩЪЫІЬЭЮЯ' ); # Kazakh Cyrillic uppercase define( 'KK_C_LC', 'аәбвгғдеёжзийкқлмнңоөпрстуұүфхһцчшщъыіьэюя' ); # Kazakh Cyrillic lowercase define( 'KK_L_UC', 'AÄBCÇDEÉFGĞHIİÏJKLMNÑOÖPQRSŞTUÜVWXYÝZ' ); # Kazakh Latin uppercase define( 'KK_L_LC', 'aäbcçdeéfgğhıiïjklmnñoöpqrsştuüvwxyýz' ); # Kazakh Latin lowercase -//define( 'KK_A', 'ٴابپتجحدرزسشعفقكلمنڭەوۇۋۆىيچھ' ); # Kazakh Arabic +// define( 'KK_A', 'ٴابپتجحدرزسشعفقكلمنڭەوۇۋۆىيچھ' ); # Kazakh Arabic define( 'H_HAMZA', 'ٴ' ); # U+0674 ARABIC LETTER HIGH HAMZA -//define( 'ZWNJ', '' ); # U+200C ZERO WIDTH NON-JOINER +// define( 'ZWNJ', '' ); # U+200C ZERO WIDTH NON-JOINER /** Kazakh (Қазақша) * converter routines @@ -18,10 +18,10 @@ define( 'H_HAMZA', 'ٴ' ); # U+0674 ARABIC LETTER HIGH HAMZA */ class KkConverter extends LanguageConverter { - function __construct($langobj, $maincode, - $variants=array(), - $variantfallbacks=array(), - $flags = array()) { + function __construct( $langobj, $maincode, + $variants = array(), + $variantfallbacks = array(), + $flags = array() ) { parent::__construct( $langobj, $maincode, $variants, $variantfallbacks, $flags ); @@ -46,9 +46,9 @@ class KkConverter extends LanguageConverter { 'kk-cyrl' => new ReplacementArray( $kk2Cyrl ), 'kk-latn' => new ReplacementArray( $kk2Latn ), 'kk-arab' => new ReplacementArray( $kk2Arab ), - 'kk-kz' => new ReplacementArray( array_merge($kk2Cyrl, $kk2KZ) ), - 'kk-tr' => new ReplacementArray( array_merge($kk2Latn, $kk2TR) ), - 'kk-cn' => new ReplacementArray( array_merge($kk2Arab, $kk2CN) ), + 'kk-kz' => new ReplacementArray( array_merge( $kk2Cyrl, $kk2KZ ) ), + 'kk-tr' => new ReplacementArray( array_merge( $kk2Latn, $kk2TR ) ), + 'kk-cn' => new ReplacementArray( array_merge( $kk2Arab, $kk2CN ) ), 'kk' => new ReplacementArray() ); } @@ -62,24 +62,24 @@ class KkConverter extends LanguageConverter { function loadRegs() { $this->mCyrl2Latn = array( - ## Punctuation + # # Punctuation '/№/u' => 'No.', - ## Е after vowels + # # Е after vowels '/([АӘЕЁИОӨҰҮЭЮЯЪЬ])Е/u' => '$1YE', '/([АӘЕЁИОӨҰҮЭЮЯЪЬ])е/ui' => '$1ye', - ## leading ЁЮЯЩ - '/^Ё(['.KK_C_UC.']|$)/u' => 'YO$1', '/^Ё(['.KK_C_LC.']|$)/u' => 'Yo$1', - '/^Ю(['.KK_C_UC.']|$)/u' => 'YU$1', '/^Ю(['.KK_C_LC.']|$)/u' => 'Yu$1', - '/^Я(['.KK_C_UC.']|$)/u' => 'YA$1', '/^Я(['.KK_C_LC.']|$)/u' => 'Ya$1', - '/^Щ(['.KK_C_UC.']|$)/u' => 'ŞÇ$1', '/^Щ(['.KK_C_LC.']|$)/u' => 'Şç$1', - ## other ЁЮЯ + # # leading ЁЮЯЩ + '/^Ё([' . KK_C_UC . ']|$)/u' => 'YO$1', '/^Ё([' . KK_C_LC . ']|$)/u' => 'Yo$1', + '/^Ю([' . KK_C_UC . ']|$)/u' => 'YU$1', '/^Ю([' . KK_C_LC . ']|$)/u' => 'Yu$1', + '/^Я([' . KK_C_UC . ']|$)/u' => 'YA$1', '/^Я([' . KK_C_LC . ']|$)/u' => 'Ya$1', + '/^Щ([' . KK_C_UC . ']|$)/u' => 'ŞÇ$1', '/^Щ([' . KK_C_LC . ']|$)/u' => 'Şç$1', + # # other ЁЮЯ '/Ё/u' => 'YO', '/ё/u' => 'yo', '/Ю/u' => 'YU', '/ю/u' => 'yu', '/Я/u' => 'YA', '/я/u' => 'ya', '/Щ/u' => 'ŞÇ', '/щ/u' => 'şç', - ## soft and hard signs + # # soft and hard signs '/[ъЪ]/u' => 'ʺ', '/[ьЬ]/u' => 'ʹ', - ## other characters + # # other characters '/А/u' => 'A', '/а/u' => 'a', '/Ә/u' => 'Ä', '/ә/u' => 'ä', '/Б/u' => 'B', '/б/u' => 'b', '/В/u' => 'V', '/в/u' => 'v', '/Г/u' => 'G', '/г/u' => 'g', '/Ғ/u' => 'Ğ', '/ғ/u' => 'ğ', @@ -101,24 +101,24 @@ class KkConverter extends LanguageConverter { ); $this->mLatn2Cyrl = array( - ## Punctuation + # # Punctuation '/#|No\./' => '№', - ## Şç - '/ŞÇʹ/u'=> 'ЩЬ', '/Şçʹ/u'=> 'Щь', '/Şçʹ/u'=> 'Щь', + # # Şç + '/ŞÇʹ/u' => 'ЩЬ', '/Şçʹ/u' => 'Щь', '/Şçʹ/u' => 'Щь', '/Ş[Çç]/u' => 'Щ', '/şç/u' => 'щ', - ## soft and hard signs - '/(['.KK_L_UC.'])ʺ(['.KK_L_UC.'])/u' => '$1Ъ$2', - '/ʺ(['.KK_L_LC.'])/u' => 'ъ$1', - '/(['.KK_L_UC.'])ʹ(['.KK_L_UC.'])/u' => '$1Ь$2', - '/ʹ(['.KK_L_LC.'])/u' => 'ь$1', + # # soft and hard signs + '/([' . KK_L_UC . '])ʺ([' . KK_L_UC . '])/u' => '$1Ъ$2', + '/ʺ([' . KK_L_LC . '])/u' => 'ъ$1', + '/([' . KK_L_UC . '])ʹ([' . KK_L_UC . '])/u' => '$1Ь$2', + '/ʹ([' . KK_L_LC . '])/u' => 'ь$1', '/ʺ/u' => 'ъ', '/ʹ/u' => 'ь', - ## Ye Yo Yu Ya. + # # Ye Yo Yu Ya. '/Y[Ee]/u' => 'Е', '/ye/u' => 'е', '/Y[Oo]/u' => 'Ё', '/yo/u' => 'ё', '/Y[UWuw]/u' => 'Ю', '/y[uw]/u' => 'ю', '/Y[Aa]/u' => 'Я', '/ya/u' => 'я', - ## other characters + # # other characters '/A/u' => 'А', '/a/u' => 'а', '/Ä/u' => 'Ә', '/ä/u' => 'ә', '/B/u' => 'Б', '/b/u' => 'б', '/C/u' => 'Ц', '/c/u' => 'ц', '/Ç/u' => 'Ч', '/ç/u' => 'ч', '/D/u' => 'Д', '/d/u' => 'д', @@ -140,14 +140,14 @@ class KkConverter extends LanguageConverter { ); $this->mCyLa2Arab = array( - ## Punctuation -> Arabic + # # Punctuation -> Arabic '/#|№|No\./u' => '', # ؀ '/\,/' => '،', # ، '/;/' => '؛', # ؛ '/\?/' => '؟', # ؟ '/%/' => '٪', # ٪ '/\*/' => '٭', # ٭ - ## Digits -> Arabic + # # Digits -> Arabic '/0/' => '۰', # ۰ '/1/' => '۱', # ۱ '/2/' => '۲', # ۲ @@ -158,7 +158,7 @@ class KkConverter extends LanguageConverter { '/7/' => '۷', # ۷ '/8/' => '۸', # ۸ '/9/' => '۹', # ۹ - ## Cyrillic -> Arabic + # # Cyrillic -> Arabic '/Аллаһ/ui' => 'ﷲ', '/([АӘЕЁИОӨҰҮЭЮЯЪЬ])е/ui' => '$1يە', '/[еэ]/ui' => 'ە', '/[ъь]/ui' => '', @@ -166,14 +166,14 @@ class KkConverter extends LanguageConverter { '/[и]/ui' => 'ىي', '/ё/ui' => 'يو', '/ю/ui' => 'يۋ', '/я/ui' => 'يا', '/[й]/ui' => 'ي', '/ц/ui' => 'تس', '/щ/ui' => 'شش', '/һ/ui' => 'ح', '/ч/ui' => 'تش', - #'/һ/ui' => 'ھ', '/ч/ui' => 'چ', + # '/һ/ui' => 'ھ', '/ч/ui' => 'چ', '/б/ui' => 'ب', '/в/ui' => 'ۆ', '/г/ui' => 'گ', '/ғ/ui' => 'ع', '/д/ui' => 'د', '/ж/ui' => 'ج', '/з/ui' => 'ز', '/к/ui' => 'ك', '/қ/ui' => 'ق', '/л/ui' => 'ل', '/м/ui' => 'م', '/н/ui' => 'ن', '/ң/ui' => 'ڭ', '/п/ui' => 'پ', '/р/ui' => 'ر', '/с/ui' => 'س', '/т/ui' => 'ت', '/у/ui' => 'ۋ', '/ф/ui' => 'ف', '/х/ui' => 'ح', '/ш/ui' => 'ش', - ## Latin -> Arabic // commented for now... + # # Latin -> Arabic // commented for now... /*'/Allah/ui' => 'ﷲ', '/[eé]/ui' => 'ە', '/[yý]/ui' => 'ي', '/[ʺʹ]/ui' => '', '/[aä]/ui' => 'ا', '/[oö]/ui' => 'و', '/[uü]/ui' => 'ۇ', @@ -195,13 +195,13 @@ class KkConverter extends LanguageConverter { update: delete all rule parsing because it's not used currently, and just produces a couple of bugs */ - function parseManualRule($rule, $flags=array()) { - if(in_array('T',$flags)){ - return parent::parseManualRule($rule, $flags); + function parseManualRule( $rule, $flags = array() ) { + if ( in_array( 'T', $flags ) ) { + return parent::parseManualRule( $rule, $flags ); } // otherwise ignore all formatting - foreach($this->mVariants as $v) { + foreach ( $this->mVariants as $v ) { $carray[$v] = $rule; } @@ -216,116 +216,115 @@ class KkConverter extends LanguageConverter { */ 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; + $oldlink = $link; parent::findVariantLink( $link, $nt, $ignoreOtherCond ); - if( $this->getPreferredVariant()==$this->mMainLanguageCode ) - $link=$oldlink; + if ( $this->getPreferredVariant() == $this->mMainLanguageCode ) + $link = $oldlink; } /* * 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_FILE){ + 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 */ - function translate( $text, $toVariant ){ - global $wgContLanguageCode; + function translate( $text, $toVariant ) { + global $wgLanguageCode; $text = parent::translate( $text, $toVariant ); - $letters = ''; switch( $toVariant ) { case 'kk-cyrl': case 'kk-kz': $letters = KK_L_UC . KK_L_LC . 'ʺʹ#0123456789'; - $wgContLanguageCode = 'kk'; + $wgLanguageCode = 'kk'; break; case 'kk-latn': case 'kk-tr': $letters = KK_C_UC . KK_C_LC . '№0123456789'; - $wgContLanguageCode = 'kk-Latn'; + $wgLanguageCode = 'kk-Latn'; break; case 'kk-arab': case 'kk-cn': - $letters = KK_C_UC.KK_C_LC./*KK_L_UC.KK_L_LC.'ʺʹ'.*/',;\?%\*№0123456789'; - $wgContLanguageCode = 'kk-Arab'; + $letters = KK_C_UC . KK_C_LC . /*KK_L_UC.KK_L_LC.'ʺʹ'.*/',;\?%\*№0123456789'; + $wgLanguageCode = 'kk-Arab'; break; default: - $wgContLanguageCode = 'kk'; + $wgLanguageCode = 'kk'; return $text; } // disable conversion variables like $1, $2... $varsfix = '\$[0-9]'; - $matches = preg_split( '/' . $varsfix . '[^' . $letters . ']+/u', $text, -1, PREG_SPLIT_OFFSET_CAPTURE); + $matches = preg_split( '/' . $varsfix . '[^' . $letters . ']+/u', $text, -1, PREG_SPLIT_OFFSET_CAPTURE ); $mstart = 0; $ret = ''; - foreach( $matches as $m ) { - $ret .= substr( $text, $mstart, $m[1]-$mstart ); + foreach ( $matches as $m ) { + $ret .= substr( $text, $mstart, $m[1] -$mstart ); $ret .= $this->regsConverter( $m[0], $toVariant ); - $mstart = $m[1] + strlen($m[0]); + $mstart = $m[1] + strlen( $m[0] ); } return $ret; } function regsConverter( $text, $toVariant ) { - if ($text == '') return $text; + if ( $text == '' ) { + return $text; + } - $pat = array(); - $rep = array(); switch( $toVariant ) { case 'kk-arab': case 'kk-cn': - $letters = KK_C_LC.KK_C_UC/*.KK_L_LC.KK_L_UC*/; + $letters = KK_C_LC . KK_C_UC/*.KK_L_LC.KK_L_UC*/; $front = 'әөүіӘӨҮІ'/*.'äöüiÄÖÜİ'*/; $excludes = 'еэгғкқЕЭГҒКҚ'/*.'eégğkqEÉGĞKQ'*/; // split text to words - $matches = preg_split( '/[\b\s\-\.:]+/', $text, -1, PREG_SPLIT_OFFSET_CAPTURE); + $matches = preg_split( '/[\b\s\-\.:]+/', $text, -1, PREG_SPLIT_OFFSET_CAPTURE ); $mstart = 0; $ret = ''; - foreach( $matches as $m ) { + foreach ( $matches as $m ) { $ret .= substr( $text, $mstart, $m[1] - $mstart ); // is matched the word to front vowels? // exclude a words matched to е, э, г, к, к, қ, // them should be without hamza - if ( preg_match('/['.$front.']/u', $m[0]) && !preg_match('/['.$excludes.']/u', $m[0]) ) { - $ret .= preg_replace('/['.$letters.']+/u', H_HAMZA.'$0', $m[0]); + if ( preg_match( '/[' . $front . ']/u', $m[0] ) && !preg_match( '/[' . $excludes . ']/u', $m[0] ) ) { + $ret .= preg_replace( '/[' . $letters . ']+/u', H_HAMZA . '$0', $m[0] ); } else { $ret .= $m[0]; } - $mstart = $m[1] + strlen($m[0]); + $mstart = $m[1] + strlen( $m[0] ); } $text =& $ret; - foreach( $this->mCyLa2Arab as $pat => $rep ) { + foreach ( $this->mCyLa2Arab as $pat => $rep ) { $text = preg_replace( $pat, $rep, $text ); } return $text; break; case 'kk-latn': case 'kk-tr': - foreach( $this->mCyrl2Latn as $pat => $rep ) { + foreach ( $this->mCyrl2Latn as $pat => $rep ) { $text = preg_replace( $pat, $rep, $text ); } return $text; break; case 'kk-cyrl': case 'kk-kz': - foreach( $this->mLatn2Cyrl as $pat => $rep ) { + foreach ( $this->mLatn2Cyrl as $pat => $rep ) { $text = preg_replace( $pat, $rep, $text ); } return $text; @@ -339,8 +338,8 @@ 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 */ - function markNoConversion( $text, $noParse=false ) { - if( $noParse || preg_match( "/^https?:\/\/|ftp:\/\/|irc:\/\//", $text ) ) + function markNoConversion( $text, $noParse = false ) { + if ( $noParse || preg_match( "/^https?:\/\/|ftp:\/\/|irc:\/\//", $text ) ) return parent::markNoConversion( $text ); return $text; } @@ -399,7 +398,7 @@ class LanguageKk extends LanguageKk_cyrl { */ function ucfirst ( $string ) { $variant = $this->getPreferredVariant(); - if ( ($variant == 'kk-latn' || $variant == 'kk-tr') && $string[0] == 'i' ) { + if ( ( $variant == 'kk-latn' || $variant == 'kk-tr' ) && $string[0] == 'i' ) { $string = 'İ' . substr( $string, 1 ); } else { $string = parent::ucfirst( $string ); @@ -413,7 +412,7 @@ class LanguageKk extends LanguageKk_cyrl { */ function lcfirst ( $string ) { $variant = $this->getPreferredVariant(); - if ( ($variant == 'kk-latn' || $variant == 'kk-tr') && $string[0] == 'I' ) { + if ( ( $variant == 'kk-latn' || $variant == 'kk-tr' ) && $string[0] == 'I' ) { $string = 'ı' . substr( $string, 1 ); } else { $string = parent::lcfirst( $string ); |