bug 1004 Capitalized Norsk
[lhc/web/wiklou.git] / includes / Setup.php
index 46bd30b..d609498 100644 (file)
@@ -58,6 +58,7 @@ global $wgUseDynamicDates;
 wfProfileIn( $fname.'-includes' );
 
 require_once( 'GlobalFunctions.php' );
+require_once( 'Hooks.php' );
 require_once( 'Namespace.php' );
 require_once( 'RecentChange.php' ); 
 require_once( 'User.php' );
@@ -76,7 +77,7 @@ require_once( 'ParserCache.php' );
 require_once( 'WebRequest.php' );
 require_once( 'LoadBalancer.php' );
 require_once( 'HistoryBlob.php' );
-
+       
 $wgRequest = new WebRequest();
 
 
@@ -208,6 +209,11 @@ $wgLoadBalancer = LoadBalancer::newFromParams( $wgDBservers );
 $wgLoadBalancer->loadMasterPos();
 
 wfProfileOut( $fname.'-database' );
+wfProfileIn( $fname.'-language1' );
+
+require_once( "$IP/languages/Language.php" );
+
+wfProfileOut( $fname.'-language1' );
 wfProfileIn( $fname.'-User' );
 
 # Skin setup functions
@@ -231,43 +237,41 @@ if( $wgCommandLineMode ) {
 }
 
 wfProfileOut( $fname.'-User' );
-wfProfileIn( $fname.'-language' );
+wfProfileIn( $fname.'-language2' );
 
-function setupLangObj(&$langclass, $langcode) {
+function setupLangObj(&$langclass) {
        global $wgUseLatin1, $IP;
 
-
        if( ! class_exists( $langclass ) ) {
-               # Default to English/UTF-8
-               require_once( "$IP/languages/LanguageUtf8.php" );
-               $langclass = 'LanguageUtf8';
+               # Default to English/UTF-8, or for non-UTF-8, to latin-1
+               $baseclass = 'LanguageUtf8';
+               if( $wgUseLatin1 )
+                       $baseclass = 'LanguageLatin1';
+               require_once( "$IP/languages/$baseclass.php" );
+               $lc = strtolower(substr($langclass, 8));
+               $snip = "
+                       class $langclass extends $baseclass {
+                               function getVariants() {
+                                       return array(\"$lc\");
+                               }
+
+                       }";
+
+               eval($snip);
        }
 
        $lang = new $langclass();
-       if ( !is_object($lang) ) {
-               print "No language class ($wgLang)\N";
-       }
 
-       if( $wgUseLatin1 ) {
-               # For non-UTF-8 latin-1 downconversion
-               require_once( "$IP/languages/LanguageLatin1.php" );
-               $xxx = new LanguageLatin1( $lang );
-               unset( $lang );
-               $lang = $xxx;
-       }
        return $lang;
 }
 
-require_once( "$IP/languages/Language.php" );
-
 # $wgLanguageCode may be changed later to fit with user preference.
 # The content language will remain fixed as per the configuration,
 # so let's keep it.
 $wgContLanguageCode = $wgLanguageCode;
 $wgContLangClass = 'Language' . str_replace( '-', '_', ucfirst( $wgContLanguageCode ) );
 
-$wgContLang = setupLangObj( $wgContLangClass, $wgContLangClass );
-$n = get_class($wgContLang);
+$wgContLang = setupLangObj( $wgContLangClass );
 
 // set default user option from content language
 if( !$wgUser->mDataLoaded ) {
@@ -282,10 +286,12 @@ $wgLangClass = 'Language'. str_replace( '-', '_', ucfirst( $wgLanguageCode ) );
 if( $wgLangClass == $wgContLangClass ) {
        $wgLang = &$wgContLang;
 } else {
-       require_once("$IP/languages/$wgLangClass.php");
-       $wgLang = setupLangObj( $wgLangClass, $wgLanguageCode );
-}
+       wfSuppressWarnings();
+       include_once("$IP/languages/$wgLangClass.php");
+       wfRestoreWarnings();
 
+       $wgLang = setupLangObj( $wgLangClass );
+}
 
 wfProfileOut( $fname.'-language' );
 wfProfileIn( $fname.'-MessageCache' );