--- loncom/interface/lonmsg.pm 2008/06/06 05:24:28 1.212 +++ loncom/interface/lonmsg.pm 2008/09/13 02:37:26 1.213 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging # -# $Id: lonmsg.pm,v 1.212 2008/06/06 05:24:28 raeburn Exp $ +# $Id: lonmsg.pm,v 1.213 2008/09/13 02:37:26 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -279,7 +279,7 @@ sub unpackmsgid { sub sendemail { - my ($to,$subject,$body)=@_; + my ($to,$subject,$body,$to_uname,$to_udom,$user_lh)=@_; my %senderemails=&Apache::loncommon::getemails(); my $senderaddress=''; foreach my $type ('notification','permanentemail','critnotification') { @@ -288,9 +288,9 @@ sub sendemail { } } $body= - "*** ".&mt('This is an automatic message generated by the LON-CAPA system.')."\n". - "*** ".($senderaddress?&mt('You can reply to this message'):&mt('Please do not reply to this address.')."\n*** ". - &mt('A reply will not be received by the recipient!'))."\n\n".$body; + "*** ".&mt_user($user_lh,'This is an automatic message generated by the LON-CAPA system.')."\n". + "*** ".($senderaddress?&mt_user($user_lh,'You can reply to this message'):&mt_user($user_lh,'Please do not reply to this address.')."\n*** ". + &mt_user($user_lh,'A reply will not be received by the recipient!'))."\n\n".$body; my $msg = new Mail::Send; $msg->to($to); $msg->subject('[LON-CAPA] '.$subject); @@ -319,8 +319,9 @@ sub sendnotification { my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid, $symb,$error) = &Apache::lonmsg::unpackmsgid($msgid); my ($coursetext,$body,$bodybegin,$bodysubj,$bodyend); + my $user_lh = &user_lang($touname,$toudom,$fromcid); if ($fromcid ne '') { - $coursetext = "\n".&mt('Course').': '; + $coursetext = "\n".&mt_user($user_lh,'Course').': '; if ($env{'course.'.$fromcid.'.description'} ne '') { $coursetext .= $env{'course.'.$fromcid.'.description'}; } else { @@ -333,24 +334,25 @@ sub sendnotification { } my @recipients = split(/,/,$to); $bodybegin = $coursetext. - &mt('You received a'.$critical.' message from [_1] in LON-CAPA.',$sender).' '; - $bodysubj = &mt('The subject is + &mt_user($user_lh, + 'You received a'.$critical.' message from [_1] in LON-CAPA.',$sender).' '; + $bodysubj = &mt_user($user_lh,'The subject is [_1] ',$subj)."\n". -'=== '.&mt('Excerpt')." ============================================================ +'=== '.&mt_user($user_lh,'Excerpt')." ============================================================ "; $bodyend = " ======================================================================== -".&mt('Use +".&mt_user($user_lh,'Use [_1] to access the full message.',$url); my %userenv = &Apache::lonnet::get('environment',['notifywithhtml'],$toudom,$touname); - my $subject = &mt("'New' $critical message from ").$sender; + my $subject = &mt_user($user_lh,"'New' $critical message from ").$sender; my ($blocked,$blocktext); if (!$crit) { @@ -361,7 +363,7 @@ to access the full message.',$url); $blocked = 1; my $showstart = &Apache::lonlocal::locallocaltime($startblock); my $showend = &Apache::lonlocal::locallocaltime($endblock); - $blocktext = &mt('LON-CAPA messages sent to you between [_1] and [_2] will be inaccessible until the end of this time period, because you are a student in a course with an active communications block.',$showstart,$showend); + $blocktext = &mt_user($user_lh,'LON-CAPA messages sent to you between [_1] and [_2] will be inaccessible until the end of this time period, because you are a student in a course with an active communications block.',$showstart,$showend); } } if ($userenv{'notifywithhtml'} ne '') { @@ -376,7 +378,7 @@ to access the full message.',$url); } $body = $bodybegin.$bodysubj.$sendtext.$bodyend; } - &sendemail($addr,$subject,$body); + &sendemail($addr,$subject,$body,$touname,$toudom,$user_lh); } } else { if ($blocked) { @@ -385,7 +387,7 @@ to access the full message.',$url); $text =~ s/\<\/*[^\>]+\>//gs; $body = $bodybegin.$bodysubj.$text.$bodyend; } - &sendemail($to,$subject,$body); + &sendemail($to,$subject,$body,$touname,$toudom,$user_lh); } } # ============================================================= Check for email @@ -922,6 +924,28 @@ sub decide_receiver { return ($typestyle,%to); } +sub user_lang { + my ($touname,$toudom,$fromcid) = @_; + my @userlangs; + if (($fromcid ne '') && ($env{'course.'.$fromcid.'.languages'} ne '')) { + @userlangs=(@userlangs,split(/\s*(\,|\;|\:)\s*/, + $env{'course.'.$fromcid.'.languages'})); + } else { + my %langhash = &Apache::lonnet::get('environment',['languages'],$toudom,$touname); + if ($langhash{'languages'} ne '') { + @userlangs = split(/\s*(\,|\;|\:)\s*/,$langhash{'languages'}); + } else { + my %domdefs = &Apache::lonnet::get_domain_defaults($toudom); + if ($domdefs{'lang_def'} ne '') { + @userlangs = ($domdefs{'lang_def'}); + } + } + } + my @languages=&Apache::loncommon::get_genlanguages(@userlangs); + my $user_lh = Apache::localize->get_handle(@languages); + return $user_lh; +} + =pod =back