return $this->iconv( $this->fallback8bitEncoding(), 'utf-8', $s );
}
+ /**
+ * @return array
+ */
function fallback8bitEncoding() {
return self::$dataCache->getItem( $this->mCode, 'fallback8bitEncoding' );
}
return $this->isRTL() ? "\xE2\x80\x8F" : "\xE2\x80\x8E";
}
+ /**
+ * @return array
+ */
function capitalizeAllNouns() {
return self::$dataCache->getItem( $this->mCode, 'capitalizeAllNouns' );
}
return self::$dataCache->getItem( $this->mCode, 'linkPrefixExtension' );
}
+ /**
+ * @return array
+ */
function getMagicWords() {
return self::$dataCache->getItem( $this->mCode, 'magicWords' );
}
return htmlspecialchars( $this->convert( $text, $isTitle ) );
}
+ /**
+ * @param $key string
+ * @return string
+ */
function convertCategoryKey( $key ) {
return $this->mConverter->convertCategoryKey( $key );
}
return $this->mConverter->getVariants();
}
+ /**
+ * @return string
+ */
function getPreferredVariant() {
return $this->mConverter->getPreferredVariant();
}
+ /**
+ * @return string
+ */
function getDefaultVariant() {
return $this->mConverter->getDefaultVariant();
}
+ /**
+ * @return string
+ */
function getURLVariant() {
return $this->mConverter->getURLVariant();
}
return self::$dataCache->getItem( $this->mCode, 'linkTrail' );
}
+ /**
+ * @return Language
+ */
function getLangObj() {
return $this;
}
return str_replace( '_', '-', strtolower( $m[1] ) );
}
+ /**
+ * @param $code string
+ * @return string
+ */
static function getMessagesFileName( $code ) {
global $IP;
return self::getFileName( "$IP/languages/messages/Messages", $code, '.php' );
}
+ /**
+ * @param $code string
+ * @return string
+ */
static function getClassFileName( $code ) {
global $IP;
return self::getFileName( "$IP/languages/classes/Language", $code, '.php' );
/**
* Get the fallback for a given language
+ *
+ * @return false|string
*/
static function getFallbackFor( $code ) {
if ( $code === 'en' ) {
* @author Niklas Laxström, 2008
*/
class LanguageMy extends Language {
+
+ /**
+ * @param $_ string
+ * @return string
+ */
function commafy( $_ ) {
/* NO-op. Cannot use
* $separatorTransformTable = array( ',' => '' )
* @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 );
}
}
+ /**
+ * @param $_ string
+ * @return string
+ */
function commafy( $_ ) {
if ( !preg_match( '/^\-?\d{1,4}(\.\d+)?$/', $_ ) ) {
return strrev( (string)preg_replace( '/(\d{3})(?=\d)(?!\d*\.)/', '$1,', strrev( $_ ) ) );
* @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
* @ingroup Language
*/
class LanguageSe extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
* @ingroup Language
*/
class LanguageSh extends Language {
+
+ /**
+ * @param $count string
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
* @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 );
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 );
* @ingroup Language
*/
class LanguageSma extends Language {
+
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
$wgHooks['ArticleSaveComplete'][] = $this->mConverter;
}
+ /**
+ * @param $count int
+ * @param $forms array
+ *
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) {
return '';
* @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 );
* @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 );
return $word;
}
+ /**
+ * @param $count int
+ * @param $forms array
+ * @return string
+ */
function convertPlural( $count, $forms ) {
if ( !count( $forms ) ) { return ''; }
* @ingroup Language
*/
class LanguageYue extends Language {
+
+ /**
+ * @return bool
+ */
function hasWordBreaks() {
return false;
}
* Eventually this should be a word segmentation;
* for now just treat each character as a word.
* @todo FIXME: Only do this for Han characters...
+ *
+ * @param $string string
+ * @return string
*/
function segmentByWord( $string ) {
$reg = "/([\\xc0-\\xff][\\x80-\\xbf]*)/";
* @ingroup Language
*/
class LanguageZh_hans extends Language {
+
+ /**
+ * @return bool
+ */
function hasWordBreaks() {
return false;
}
* Eventually this should be a word segmentation;
* for now just treat each character as a word.
* @todo FIXME: Only do this for Han characters...
+ *
+ * @param $string string
+ *
+ * @return string
*/
function segmentByWord( $string ) {
$reg = "/([\\xc0-\\xff][\\x80-\\xbf]*)/";