diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2006-10-11 18:12:39 +0000 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2006-10-11 18:12:39 +0000 |
commit | 183851b06bd6c52f3cae5375f433da720d410447 (patch) | |
tree | a477257decbf3360127f6739c2f9d0ec57a03d39 /languages/LanguageEo.php |
MediaWiki 1.7.1 wiederhergestellt
Diffstat (limited to 'languages/LanguageEo.php')
-rw-r--r-- | languages/LanguageEo.php | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/languages/LanguageEo.php b/languages/LanguageEo.php new file mode 100644 index 00000000..bfb5b276 --- /dev/null +++ b/languages/LanguageEo.php @@ -0,0 +1,177 @@ +<?php +/** Esperanto (Esperanto) + * @package MediaWiki + * @subpackage Language + */ + +require_once('LanguageUtf8.php'); + +if (!$wgCachedMessageArrays) { + require_once('MessagesEo.php'); +} + +class LanguageEo extends LanguageUtf8 { + private $mMessagesEo, $mNamespaceNamesEo = null; + + private $mQuickbarSettingsEo = array( + 'Nenia', 'Fiksiĝas maldekstre', 'Fiksiĝas dekstre', 'Ŝvebas maldekstre' + ); + + private $mSkinNamesEo = array( + 'standard' => 'Klasika', + 'nostalgia' => 'Nostalgio', + 'cologneblue' => 'Kolonja Bluo', + 'mono' => 'Senkolora', + 'monobook' => 'Librejo', + 'chick' => 'Kokido', + ); + + function __construct() { + parent::__construct(); + + global $wgAllMessagesEo; + $this->mMessagesEo =& $wgAllMessagesEo; + + global $wgMetaNamespace, $wgMetaNamespaceTalk; + $this->mNamespaceNamesEo = array( + NS_MEDIA => 'Media', + NS_SPECIAL => 'Speciala', + NS_MAIN => '', + NS_TALK => 'Diskuto', + NS_USER => 'Vikipediisto', # FIXME: Generalize v-isto kaj v-io + NS_USER_TALK => 'Vikipediista_diskuto', + NS_PROJECT => $wgMetaNamespace, + NS_PROJECT_TALK => ( $wgMetaNamespaceTalk ? $wgMetaNamespaceTalk : $wgMetaNamespace.'_diskuto' ), + NS_IMAGE => 'Dosiero', #FIXME: Check the magic for Image: and Media: + NS_IMAGE_TALK => 'Dosiera_diskuto', + NS_MEDIAWIKI => 'MediaWiki', + NS_MEDIAWIKI_TALK => 'MediaWiki_diskuto', + NS_TEMPLATE => 'Ŝablono', + NS_TEMPLATE_TALK => 'Ŝablona_diskuto', + NS_HELP => 'Helpo', + NS_HELP_TALK => 'Helpa_diskuto', + NS_CATEGORY => 'Kategorio', + NS_CATEGORY_TALK => 'Kategoria_diskuto', + ); + + } + function getDefaultUserOptions () { + $opt = parent::getDefaultUserOptions(); + $opt['altencoding'] = 0; + return $opt; + } + + function getNamespaces() { + return $this->mNamespaceNamesEo + parent::getNamespaces(); + } + + function getQuickbarSettings() { + return $this->mQuickbarSettingsEo; + } + + function getSkinNames() { + return $this->mSkinNamesEo + parent::getSkinNames(); + } + + function getMessage( $key ) { + if( isset( $this->mMessagesEo[$key] ) ) { + return $this->mMessagesEo[$key]; + } else { + return parent::getMessage( $key ); + } + } + + function getAllMessages() { + return $this->mMessagesEo; + } + + # La dato- kaj tempo-funkciojn oni povas precizigi laŭ lingvo + function formatMonth( $month, $format ) { + return $this->getMonthAbbreviation( $month ); + } + + function formatDay( $day, $format ) { + return parent::formatDay( $day, $format ) . '.'; + } + + function iconv( $in, $out, $string ) { + # For most languages, this is a wrapper for iconv + # Por multaj lingvoj, ĉi tiu nur voku la sisteman funkcion iconv() + # Ni ankaŭ konvertu X-sistemajn surogotajn + if( strcasecmp( $in, 'x' ) == 0 and strcasecmp( $out, 'utf-8' ) == 0) { + $xu = array ( + 'xx' => 'x' , 'xX' => 'x' , + 'Xx' => 'X' , 'XX' => 'X' , + "Cx" => "\xc4\x88" , "CX" => "\xc4\x88" , + "cx" => "\xc4\x89" , "cX" => "\xc4\x89" , + "Gx" => "\xc4\x9c" , "GX" => "\xc4\x9c" , + "gx" => "\xc4\x9d" , "gX" => "\xc4\x9d" , + "Hx" => "\xc4\xa4" , "HX" => "\xc4\xa4" , + "hx" => "\xc4\xa5" , "hX" => "\xc4\xa5" , + "Jx" => "\xc4\xb4" , "JX" => "\xc4\xb4" , + "jx" => "\xc4\xb5" , "jX" => "\xc4\xb5" , + "Sx" => "\xc5\x9c" , "SX" => "\xc5\x9c" , + "sx" => "\xc5\x9d" , "sX" => "\xc5\x9d" , + "Ux" => "\xc5\xac" , "UX" => "\xc5\xac" , + "ux" => "\xc5\xad" , "uX" => "\xc5\xad" + ) ; + return preg_replace ( '/([cghjsu]x?)((?:xx)*)(?!x)/ei', + 'strtr( "$1", $xu ) . strtr( "$2", $xu )', $string ); + } else if( strcasecmp( $in, 'UTF-8' ) == 0 and strcasecmp( $out, 'x' ) == 0 ) { + $ux = array ( + 'x' => 'xx' , 'X' => 'Xx' , + "\xc4\x88" => "Cx" , "\xc4\x89" => "cx" , + "\xc4\x9c" => "Gx" , "\xc4\x9d" => "gx" , + "\xc4\xa4" => "Hx" , "\xc4\xa5" => "hx" , + "\xc4\xb4" => "Jx" , "\xc4\xb5" => "jx" , + "\xc5\x9c" => "Sx" , "\xc5\x9d" => "sx" , + "\xc5\xac" => "Ux" , "\xc5\xad" => "ux" + ) ; + # Double Xs only if they follow cxapelutaj literoj. + return preg_replace( '/((?:[cghjsu]|\xc4[\x88\x89\x9c\x9d\xa4\xa5\xb4\xb5]'. + '|\xc5[\x9c\x9d\xac\xad])x*)/ei', 'strtr( "$1", $ux )', $string ); + } + return iconv( $in, $out, $string ); + } + + function checkTitleEncoding( $s ) { + # Check for X-system backwards-compatibility URLs + $ishigh = preg_match( '/[\x80-\xff]/', $s); + $isutf = preg_match( '/^([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|' . + '[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3})+$/', $s ); + + if($ishigh and !$isutf) { + # Assume Latin1 + $s = utf8_encode( $s ); + } else { + if( preg_match( '/(\xc4[\x88\x89\x9c\x9d\xa4\xa5\xb4\xb5]'. + '|\xc5[\x9c\x9d\xac\xad])/', $s ) ) + return $s; + } + + //if( preg_match( '/[cghjsu]x/i', $s ) ) + // return $this->iconv( 'x', 'utf-8', $s ); + return $s; + } + + function initEncoding() { + global $wgEditEncoding, $wgInputEncoding, $wgOutputEncoding; + $wgInputEncoding = 'utf-8'; + $wgOutputEncoding = 'utf-8'; + $wgEditEncoding = 'x'; + } + + function setAltEncoding() { + global $wgEditEncoding, $wgInputEncoding, $wgOutputEncoding; + $wgInputEncoding = 'utf-8'; + $wgOutputEncoding = 'x'; + $wgEditEncoding = ''; + } + + function separatorTransformTable() { + return array(',' => ' ', '.' => ',' ); + } + +} + +?> |