Changeset 664

Show
Ignore:
Timestamp:
10/22/06 21:59:41 (2 years ago)
Author:
misja
Message:

More gettext bugfixes.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • devel/mod/gettext/lib.php

    r659 r664  
    2323            $selected = ''; 
    2424//$USER->locale 
    25             if ($_SESSION['userlocale'] == $key && $CFG->languages_installed[$key]) 
     25            if ($_SESSION['locale'] == $key && $CFG->languages_installed[$key]) 
    2626            { 
    2727                $selected = 'selected="selected"'; 
  • devel/units/gettext/gettext_userdetails_edit_details.php

    r659 r664  
    22 
    33    // Function is in module's lib.php 
    4     $run_result .= gettext_userdetails_edit_details($page_owner); 
     4    $run_result .= gettext_userdetails_edit_details(); 
    55 
    66?> 
  • devel/units/gettext/library.php

    r663 r664  
    4545        global $CFG, $USER, $l10n; 
    4646 
     47        if (!isset($USER->locale)) 
     48        { 
     49            $USER->locale = $CFG->defaultlocale; 
     50        } 
     51 
    4752        if (!isset($l10n[$domain])) 
    4853        { 
     
    5661        else 
    5762        { 
    58                 $input = new CachedFileReader($CFG->languages_domain_paths[$domain][$USER->locale]); 
    59             $l10n[$domain][$USER->locale] = new gettext_reader($input); 
    60  
    61             return $l10n[$domain][$USER->locale]; 
     63            // Double check if file exists 
     64            if (file_exists($CFG->languages_domain_paths[$domain][$USER->locale])) 
     65            { 
     66                $input = new CachedFileReader($CFG->languages_domain_paths[$domain][$USER->locale]); 
     67                    $l10n[$domain][$USER->locale] = new gettext_reader($input); 
     68 
     69                return $l10n[$domain][$USER->locale]; 
     70            } 
     71            else 
     72            { 
     73                return; 
     74            } 
    6275        } 
    6376    } 
     
    207220        global $CFG, $USER; 
    208221 
     222        // Clean up the (possible) flaw created by the first svn commit 
     223        // TODO can be removed with next package release 
     224        delete_records('user_flags','flag','language','user_id',0); 
     225 
    209226        // Load default language path 
    210227        parse_installed_languages($CFG->dirroot); 
     
    246263 
    247264        // set initial session variable 
    248         if (!isset($_SESSION['userlocale'])) 
    249         { 
    250             $_SESSION['userlocale'] = ''; 
     265        if (!isset($_SESSION['locale'])) 
     266        { 
     267            $_SESSION['locale'] = ''; 
    251268        } 
    252269 
    253270        // Now, grab user preference 
    254          
    255         if (logged_on && $USER->ident != 0) 
     271 
     272 
     273        // logged_on is not yet defined yet in this stage,  
     274        // use USER->ident for this...  
     275        // TODO Implement better check! 
     276        if ($USER->ident != 0) 
    256277        { 
    257278            // User is logged in and has a session 
    258              
    259279            if ($result = get_record('user_flags','flag','language','user_id',$USER->ident)) 
    260280            { 
    261                 $_SESSION['userlocale'] = $result->value; 
     281                $_SESSION['locale'] = $result->value; 
    262282                $USER->locale = $result->value; 
    263283            } 
     
    289309                insert_record('user_flags',$flag); 
    290310 
    291                 $_SESSION['userlocale'] = $setting; 
     311                $_SESSION['locale'] = $setting; 
    292312                $USER->locale = $setting; 
    293313            } 
     
    305325            // selection widget. Should perhaps get stored in a cookie. 
    306326 
    307             if (isset($_SESSION['userlocale']) && $_SESSION['userlocale'] != '') 
    308             { 
    309                 $USER->locale = $_SESSION['userlocale']; 
     327            if (isset($_SESSION['locale']) && $_SESSION['locale'] != '') 
     328            { 
     329                $USER->locale = $_SESSION['locale']; 
    310330            } 
    311331            else 
     
    318338        // else it will get called too late to set the user language. 
    319339        $params = explode('?',$_SERVER['REQUEST_URI']); 
    320         if ($params[1]) 
     340 
     341        if (isset($params[1])) 
    321342        { 
    322343            $lang = explode('=', $params[1]); 
     
    334355 
    335356            // Store it in the user preferences 
    336             if (logged_on && $USER->ident != 0) 
     357            // TODO better logged in check, logged_on not available 
     358            if ($USER->ident != 0) 
    337359            { 
    338360                // Have to replicate flag setting because of including order 
     
    349371 
    350372            // Set session variable 
    351             $_SESSION['userlocale'] = $USER->locale; 
    352         } 
    353     } 
    354  
    355     function gettext_userdetails_edit_details($userid
    356     { 
    357         global $CFG
     373            $_SESSION['locale'] = $USER->locale; 
     374        } 
     375    } 
     376 
     377    function gettext_userdetails_edit_details(
     378    { 
     379        global $CFG, $USER
    358380 
    359381        $title = __gettext("Language selection").":"; 
     
    364386            <p>$blurb</p>     
    365387END; 
     388 
     389        $tmp = ""; 
    366390 
    367391        if ($CFG->languages_installed == null) 
     
    400424    function gettext_userdetails_actions() 
    401425    { 
    402         global $CFG, $messages; 
     426        global $CFG, $USER, $messages; 
    403427         
    404428        $action = optional_param('action'); 
    405429        $id = optional_param('id',0,PARAM_INT); 
    406         $lang = optional_param('lang', $CFG->defaultlocale, TEXT); 
     430        $lang = optional_param('lang', $CFG->defaultlocale, PARAM_ALPHAEXT); 
    407431        $lang_db = user_flag_get('language', $id); 
    408432 
     
    415439                    if (user_flag_set('language', $lang, $id)) 
    416440                    { 
    417                         $_SESSION['userlocale'] = $lang; 
     441                        $_SESSION['locale'] = $lang; 
    418442                        $USER->locale = $lang; 
     443 
    419444                        $messages[] .= __gettext("Preferred language") . " " . __gettext("saved") ."."; 
    420445                    }