MediaWiki r5977 - Code Review

Jump to: navigation, search
Repository:MediaWiki
Revision:r5976‎ | r5977 (on ViewVC)‎ | r5978 >
Date:18:02, 19 October 2004
Author:zhengzhu
Status:old
Tags:
Comment:
Added option wgDisableLangConversion to disable langauge variant conversion, mainly for debugging and testing purpose.
Modified paths:

Diff [purge]

Index: trunk/phase3/includes/SpecialPreferences.php
@@ -312,7 +312,7 @@
313313 function mainPrefsForm( $err ) {
314314 global $wgUser, $wgOut, $wgLang, $wgContLang, $wgUseDynamicDates, $wgValidSkinNames;
315315 global $wgAllowRealName, $wgImageLimits;
316 - global $wgLanguageNames;
 316+ global $wgLanguageNames, $wgDisableLangConversion;
317317
318318 $wgOut->setPageTitle( wfMsg( 'preferences' ) );
319319 $wgOut->setArticleRelated( false );
@@ -406,28 +406,28 @@
407407 $wgOut->addHtml("</select></label></div>\n" );
408408
409409 /* see if there are multiple language variants to choose from*/
410 - $variants = $wgContLang->getVariants();
411 - $size=sizeof($variants);
 410+ if(!$wgDisableLangConversion) {
 411+ $variants = $wgContLang->getVariants();
 412+ $size=sizeof($variants);
412413
413 - $variantArray=array();
414 - foreach($variants as $v) {
415 - $v = str_replace( '_', '-', strtolower($v));
416 - if($name=$wgLanguageNames[$v]) {
417 - $variantArray[$v] = $name;
 414+ $variantArray=array();
 415+ foreach($variants as $v) {
 416+ $v = str_replace( '_', '-', strtolower($v));
 417+ if($name=$wgLanguageNames[$v]) {
 418+ $variantArray[$v] = $name;
 419+ }
418420 }
419 - }
420 - $size=sizeof($variantArray);
 421+ $size=sizeof($variantArray);
421422
422 - if(sizeof($variantArray) > 1) {
 423+ if(sizeof($variantArray) > 1) {
423424 $wgOut->addHtml("
424425 <div><label>$yv: <select name=\"wpUserVariant\">\n");
425 - foreach($variantArray as $code => $name) {
426 - $sel = ($code==$this->mUserVariant)? 'selected="selected"' : '';
427 - $wgOut->addHtml("\t<option value=\"$code\" $sel>$code - $name</option>\n");
 426+ foreach($variantArray as $code => $name) {
 427+ $sel = ($code==$this->mUserVariant)? 'selected="selected"' : '';
 428+ $wgOut->addHtml("\t<option value=\"$code\" $sel>$code - $name</option>\n");
 429+ }
428430 }
429 - $wgOut->addHtml("</select></label></div>\n");
430431 }
431 -
432432 # Fields for changing password
433433 #
434434 $this->mOldpass = htmlspecialchars( $this->mOldpass );
Index: trunk/phase3/includes/DefaultSettings.php
@@ -313,6 +313,13 @@
314314 $wgUseDatabaseMessages = true;
315315 $wgMsgCacheExpiry = 86400;
316316 $wgPartialMessageCache = false;
 317+
 318+# Whether to enable language variant conversion. Currently only zh
 319+# supports this function, to convert between Traditional and Simplified
 320+# Chinese. This flag is meant to isolate the (untested) conversion
 321+# code, so that if it breaks, only zh will be affected
 322+$wgDisableLangConversion = true;
 323+
317324 # Miscellaneous configuration settings
318325 #
319326
Index: trunk/phase3/includes/SpecialSitesettings.php
@@ -62,6 +62,7 @@
6363 $this->checkbox( 'wgUseDatabaseMessages' ) .
6464 $this->checkbox( 'wgUseCategoryMagic' ) .
6565 $this->checkbox( 'wgUseCategoryBrowser' ) .
 66+ $this->checkbox( 'wgDisableLangConversion' ).
6667 $this->textbox( 'wgHitcounterUpdateFreq' ) .
6768 $this->textbox( 'wgExtraSubtitle' ).
6869 $this->textbox( 'wgSiteSupportPage' ) .
Index: trunk/phase3/includes/Parser.php
@@ -1093,6 +1093,7 @@
10941094
10951095 function replaceInternalLinks( $s ) {
10961096 global $wgLang, $wgContLang, $wgLinkCache;
 1097+ global $wgDisableLangConversion;
10971098 static $fname = 'Parser::replaceInternalLinks' ;
10981099 # use a counter to prevent too much unknown links from
10991100 # being checked for different language variants.
@@ -1204,31 +1205,32 @@
12051206 continue;
12061207 }
12071208
1208 - //check other language variants of the link
1209 - //if the article does not exist
1210 - global $wgContLang;
1211 - $variants = $wgContLang->getVariants();
 1209+ #check other language variants of the link
 1210+ #if the article does not exist
 1211+ if(!$wgDisableLangConversion) {
 1212+ global $wgContLang;
 1213+ $variants = $wgContLang->getVariants();
12121214
1213 - if(sizeof($variants) > 1 && $convertCount < 200) {
1214 - $varnt = false;
1215 - if($nt->getArticleID() == 0) {
1216 - foreach ( $variants as $v ) {
1217 - if($v == $wgContLang->getPreferredVariant())
1218 - continue;
1219 - $convertCount ++;
1220 - $varlink = $wgContLang->autoConvert($link, $v);
1221 - $varnt = Title::newFromText($varlink);
1222 - if($varnt && $varnt->getArticleID()>0) {
1223 - break;
 1215+ if(sizeof($variants) > 1 && $convertCount < 200) {
 1216+ $varnt = false;
 1217+ if($nt->getArticleID() == 0) {
 1218+ foreach ( $variants as $v ) {
 1219+ if($v == $wgContLang->getPreferredVariant())
 1220+ continue;
 1221+ $convertCount ++;
 1222+ $varlink = $wgContLang->autoConvert($link, $v);
 1223+ $varnt = Title::newFromText($varlink);
 1224+ if($varnt && $varnt->getArticleID()>0) {
 1225+ break;
 1226+ }
12241227 }
12251228 }
 1229+ if($varnt && $varnt->getArticleID()>0) {
 1230+ $nt = $varnt;
 1231+ $link = $varlink;
 1232+ }
12261233 }
1227 - if($varnt && $varnt->getArticleID()>0) {
1228 - $nt = $varnt;
1229 - $link = $varlink;
1230 - }
12311234 }
1232 -
12331235 $ns = $nt->getNamespace();
12341236 $iw = $nt->getInterWiki();
12351237
Index: trunk/phase3/languages/LanguageLatin1.php
@@ -260,13 +260,20 @@
261261 return $this->lang->getPreferredVariant();
262262 }
263263
264 - function convert( $text ) {
265 - return utf8_decode( $this->lang->convert( utf8_encode( $text ) ) );
 264+ function convert( $text, $isTitle=false ) {
 265+ return utf8_decode( $this->lang->convert( utf8_encode( $text ), $isTitle ) );
266266 }
267267
268268 function autoConvert($text, $toVariant=false) {
269269 return utf8_decode( $this->lang->autoConvert( utf8_encode( $text ), $toVariant ) );
270270 }
 271+
 272+ /* hook for converting the title, which may needs special treatment
 273+ */
 274+ function convertTitle($text) {
 275+ return utf8_decode( $this->lang->convertTitle( utf8_encode( $text ) ) );
 276+ }
 277+
271278
272279 function getVariants() {
273280 return $this->lang->getVariants();
Index: trunk/phase3/languages/Language.php
@@ -2050,10 +2050,15 @@
20512051 # syntax of the markup:
20522052 # -{code1:text1;code2:text2;...}- or
20532053 # -{text}- in which case no conversion should take place for text
2054 - function convert( $text ) {
2055 -
 2054+ function convert( $text , $isTitle=false) {
 2055+ global $wgDisableLangConversion;
 2056+ if($wgDisableLangConversion)
 2057+ return $text;
20562058 if(sizeof($this->getVariants())<2)
20572059 return $text;
 2060+
 2061+ if($isTitle)
 2062+ return $this->convertTitle($text);
20582063
20592064 // no conversion if redirecting
20602065 if(substr($text,0,9) == "#REDIRECT") {
@@ -2114,7 +2119,13 @@
21152120 function autoConvert($text, $toVariant=false) {
21162121 return $text;
21172122 }
2118 -
 2123+
 2124+ /* hook for converting the title, which may needs special treatment
 2125+ */
 2126+ function convertTitle($text) {
 2127+ return $text;
 2128+ }
 2129+
21192130 # returns a list of language variants for conversion.
21202131 # right now mainly used in the Chinese conversion
21212132 function getVariants() {
Index: trunk/phase3/languages/LanguageZh.php
@@ -102,6 +102,18 @@
103103 return $t;
104104 }
105105
 106+ # only convert titles having more than one character
 107+ function convertTitle($text) {
 108+ $len=0;
 109+ if( function_exists( 'mb_strlen' ) )
 110+ $len = mb_strlen($text);
 111+ else
 112+ $len = strlen($text)/3;
 113+ if($len>1)
 114+ return $this->autoConvert( $text);
 115+ return $text;
 116+ }
 117+
106118 function getVariants() {
107119 return array("zh-cn", "zh-tw", "zh-sg", "zh-hk");
108120 }

Status & tagging log

  • 15:00, 12 September 2011 Meno25 (Talk | contribs) changed the status of r5977 [removed: ok added: old]
  • 13:52, 18 June 2009 ^demon (Talk | contribs) changed the status of r5977 [removed: new added: ok]
Personal tools
Namespaces

Variants
Views
Actions
Navigation
Support
Download
Development
Communication
Toolbox