}
}
- if( $this->guessVariant( $text, $toVariant ) ) {
- wfProfileOut( __METHOD__ );
- return $text;
- }
-
/* we convert everything except:
1. HTML markups (anything between < and >)
2. HTML entities
*/
public function convertTo( $text, $variant ) {
global $wgDisableLangConversion;
- if ( $wgDisableLangConversion || $this->guessVariant( $text, $variant ) ) {
+ if ( $wgDisableLangConversion ) {
return $text;
}
return $this->recursiveConvertTopLevel( $text, $variant );
return '!' . $variant;
}
- /**
- * Guess if a text is written in a variant. This should be implemented in subclasses.
- *
- * @param string $text the text to be checked
- * @param string $variant language code of the variant to be checked for
- * @return bool true if $text appears to be written in $variant, false if not
- *
- * @author Nikola Smolenski <smolensk@eunet.rs>
- * @since 1.18
- */
- public function guessVariant($text, $variant) {
- return false;
- }
-
/**
* Load default conversion tables.
* This method must be implemented in derived class.
return $ret;
}
-
- /**
- * Guess if a text is written in Cyrillic or Latin.
- *
- * @author Nikola Smolenski <smolensk@eunet.rs>
- * @since 1.18
- *
- * @param $text string
- * @param $variant string
- *
- * @return bool
- */
- public function guessVariant( $text, $variant ) {
- $numCyrillic = preg_match_all("/[шђчћжШЂЧЋЖ]/u", $text, $dummy);
- $numLatin = preg_match_all("/[šđč枊ĐČĆŽ]/u", $text, $dummy);
-
- if( $variant == 'sr-ec' ) {
- return $numCyrillic > $numLatin;
- } elseif( $variant == 'sr-el' ) {
- return $numLatin > $numCyrillic;
- } else {
- return false;
- }
- }
}
/**
}
}
}
-
}