better mysql-profiling output
[e-DoKo.git] / include / game.php
index d1160493ef7f2f14523e27d08bb1489fcfcb832f..b339c03c38bb410f6b280e93ddd044ac9776ad22 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/* Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012 Arun Persaud <arun@nubati.net>
+/* Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Arun Persaud <arun@nubati.net>
  *
  *   This file is part of e-DoKo.
  *
@@ -57,11 +57,10 @@ $playid   = DB_get_current_playid($gameid); /* might be -1 at beginning of the g
 
 /* get prefs and save them in a variable*/
 $PREF = DB_get_PREF(isset($_SESSION['id'])?$_SESSION['id']:$myid);
-/* set language chosen in preferences, will become active on the next reload (see index.php)*/
+/* set language chosen in preferences */
 $_SESSION['language'] = $PREF['language'];
 set_language($PREF['language']);
 
-
 /* get rule set for this game */
 $RULES = DB_get_RULES($gameid);
 
@@ -329,7 +328,7 @@ if($session)
       $next = NULL;
 
     /* check for solo, add game type to session number */
-    echo "    Game $session.$j";
+    echo '    '._('Game')." $session.$j";
     if($gamestatus != 'pre' && $GT !='normal' )
       echo " ($GT)";
     if(isset($_SESSION['id']) && $_SESSION['id']==$myid)
@@ -493,12 +492,15 @@ switch($mystatus)
        if(!$skip && $_REQUEST['in'] == 'no' )
          {
            /* cancel the game */
-           $email_message = "Hello, \n\n".
-             "the game has been canceled due to the request of one of the players.\n\n";
-
            $userids = DB_get_all_userid_by_gameid($gameid);
            foreach($userids as $user)
+           {
+             set_language($user,'uid');
+             $email_message = _("Hello, \n\n".
+               "the game has been canceled due to the request of one of the players.")."\n\n";
              mymail($user,$gameid,GAME_CANCELED,$email_message);
+           };
+           set_language($myid,'uid');
 
            $card_status = CARDS_EMPTY;
 
@@ -553,15 +555,15 @@ switch($mystatus)
 
        if($Nsickness>1)
          {
-           $messages[] = 'You selected more than one sickness, please go back '.
-             "and answer the <a href=\"$INDEX?action=game&amp;me=$me&amp;in=yes\">question</a> again.";
-
+           $messages[] = sprintf(_('You selected more than one sickness, please go back '.
+                                   'and answer the <a href="%s">question</a> again.'),
+                                 $INDEX.'?action=game&amp;me=$me&amp;in=yes');
            break;
          }
        else
          {
            /* everything is ok, save what user said and proceed */
-           $messages[] = 'Processing what you selected in the last step...';
+           $messages[] = _('Processing what you selected in the last step...');
 
            /* check if this sickness needs to be handled first */
            $gametype    = DB_get_gametype_by_gameid($gameid);
@@ -575,7 +577,9 @@ switch($mystatus)
                DB_set_solo_by_hash($me,$_REQUEST['solo']);
                DB_set_sickness_by_hash($me,'solo');
 
-               $messages[] = "<br />Seems like you want to play a {$_REQUEST['solo']} solo. Got it.<br />\n";
+               $messages[] = '<br />'.
+                 sprintf(_('Seems like you want to play a %s solo. Got it.'),$_REQUEST['solo']).
+                 "<br />\n";
 
                if($gametype == 'solo' && $startplayer<$mypos)
                  {}/* do nothing, since someone else already is playing solo */
@@ -695,36 +699,47 @@ switch($mystatus)
            /* cancel game */
            if($cancelsick == 'nines')
              {
-               $email_message = 'The game has been canceled because '.DB_get_name('userid',$cancel).
-                 " has five or more nines and nobody is playing solo.\n\n".
-                 "To redeal either start a new game or, in case the game was part of a tournament,\n".
-                 "go to the last game and use the link at the bottom of the page to redeal.\n\n";
-
                /* update game status */
                cancel_game('nines',$gameid);
 
-               $messages[] = 'The game has been canceled because '.DB_get_name('userid',$cancel).
-                 " has five or more nines and nobody is playing solo.";
+               $messages[] = sprintf(_('The game has been canceled because %s'.
+                 ' has five or more nines and nobody is playing solo.'),DB_get_name('userid',$cancel) );
              }
            else if ($cancelsick == 'lowtrump')
              {
-               $email_message = 'The game has been canceled because '.DB_get_name('userid',$cancel).
-                 " has low trump and nobody is playing solo.\n\n".
-                 "To redeal either start a new game or, in case the game was part of a tournament,\n".
-                 "go to the last game and use the link at the bottom of the page to redeal.\n\n";
-
                /* update game status */
                cancel_game('lowtrump',$gameid);
 
-               $messages[] = 'The game has been canceled because '.DB_get_name('userid',$cancel).
-                 ' has low trump and nobody is playing solo.';
+               $messages[] = sprintf(('The game has been canceled because %s'.
+                 ' has low trump and nobody is playing solo.'),DB_get_name('userid',$cancel));
              };
 
            $userids = DB_get_all_userid_by_gameid($gameid);
            foreach($userids as $user)
              {
+               set_language($user,'uid');
+               if($cancelsick == 'nines')
+               {
+                 $email_message = sprintf(_('The game has been canceled because %s'.
+                   ' has five or more nines and nobody is playing solo.'),DB_get_name('userid',$cancel) ).
+                   "\n\n".
+                   _("To redeal either start a new game or, in case the game was part of a tournament,\n".
+                   "go to the last game and use the link at the bottom of the page to redeal.").
+                   "\n\n";
+               }
+               else if ($cancelsick == 'lowtrump')
+               {
+                 $email_message = sprintf(_('The game has been canceled because %s'.
+                   " has low trump and nobody is playing solo."),DB_get_name('userid',$cancel)).
+                   "\n\n".
+                   _("To redeal either start a new game or, in case the game was part of a tournament,\n".
+                   "go to the last game and use the link at the bottom of the page to redeal.").
+                   "\n\n";
+               };
+
                mymail($user,$gameid, GAME_CANCELED, $email_message);
              }
+             set_language($myid,'uid');
 
            break;
          }
@@ -857,13 +872,16 @@ switch($mystatus)
                if(DB_get_email_pref_by_hash($hash)!='emailaddict')
                  {
                    /* email startplayer */
-                   $email_message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
-                     "Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
+                   set_language($userid,'uid');
+                   $email_message = sprintf(_("It's your turn now in game %s.\n".
+                     "Use this link to play a card:"),DB_format_gameid($gameid))." ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
                    mymail($userid,$gameid,GAME_READY,$email_message);
+                   set_language($myid,'uid');
                  }
              }
            else
-             $messages[] = "Please, <a href=\"$INDEX?action=game&amp;me=$me\">start</a> the game.<br />\n";
+             $messages[] = sprintf(_('Please, <a href="%s">start</a> the game.'),$INDEX."?action=game&amp;me=$me").
+               "<br />\n";
          }
        else
          {
@@ -873,7 +891,8 @@ switch($mystatus)
 
            $whoid = DB_get_userid('gameid-position',$gameid,$who);
            if($whoid==$myid)
-             $messages[] =  "Please, <a href=\"$INDEX?action=game&amp;me=$me\">start</a> the game.<br /\n";
+             $messages[] = sprintf(_('Please, <a href="%s">start</a> the game.'),$INDEX."?action=game&amp;me=$me").
+               "<br /\n";
            else
              {
                $whohash = DB_get_hash_from_game_and_pos($gameid,$who);
@@ -882,9 +901,11 @@ switch($mystatus)
                if(DB_get_email_pref_by_hash($hash)!='emailaddict')
                  {
                    /* email player for poverty */
-                   $email_message = "Poverty: It's your turn now in game ".DB_format_gameid($gameid).".\n".
-                     'Use this link to play a card: '.$HOST.$INDEX."?action=game&me=".$whohash."\n\n" ;
+                   set_language($whoid,'uid');
+                   $email_message = sprintf(_("Poverty: It's your turn now in game %s.\n".
+                     'Use this link to play a card: '),DB_format_gameid($gameid)).$HOST.$INDEX."?action=game&me=".$whohash."\n\n" ;
                    mymail($whoid,$gameid,GAME_POVERTY,$email_message);
+                   set_language($myid,'uid');
                  }
              }
          }
@@ -953,13 +974,15 @@ switch($mystatus)
            if(DB_get_email_pref_by_hash($hash)!='emailaddict')
              {
                /* email startplayer */
-               $email_message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
-                 'Use this link to play a card: '.$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
+               set_language($userid,'uid');
+               $email_message = sprintf(_("It's your turn now in game %s.\n".
+                 'Use this link to play a card: '),DB_format_gameid($gameid)).$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
                mymail($userid,$gameid,GAME_READY,$email_message);
+               set_language($myid,'uid');
              }
          }
        else
-         $messages[]= "Please, <a href=\"$INDEX?action=game&amp;me=$me\">start</a> the game.";
+         $messages[]= sprintf(_('Please, <a href="%s">start</a> the game.'),$INDEX."?action=game&amp;me=$me");
       }
 
     /* the following is part A) of what needs to be done */
@@ -1026,19 +1049,21 @@ switch($mystatus)
            /* no more people to ask, need to cancel the game */
            if($mypos+$next>4)
              {
-               $email_message = "Hello, \n\n".
-                 'Game '.DB_format_gameid($gameid)." has been canceled since nobody wanted to take the trump.\n\n";
-
                $userids = DB_get_all_userid_by_gameid($gameid);
                foreach($userids as $user)
                  {
+                   set_language($user,'uid');
+                   $email_message = sprintf("Hello, \n\n".
+                     'Game %s has been canceled since nobody wanted to take the trump.',DB_format_gameid($gameid)).
+                     "\n\n";
                    mymail($user, $gameid, GAME_CANCELED_POVERTY, $email_message);
                  }
+               set_language($myid,'uid');
 
                /* update game status */
                cancel_game('trump',$gameid);
 
-               $messages[] = 'Game '.DB_format_gameid($gameid).' has been canceled.';
+               $messages[] = sprintf(_('Game %s has been canceled.'),DB_format_gameid($gameid));
                break;
              }
            else
@@ -1050,9 +1075,11 @@ switch($mystatus)
                DB_set_player_by_gameid($gameid,$userid);
                DB_set_hand_status_by_hash($userhash,'poverty');
 
-               $email_message = "Someone has poverty, it's your turn to decide, if you want to take the trump. Please visit:".
+               set_language($userid,'uid');
+               $email_message = _("Someone has poverty, it's your turn to decide, if you want to take the trump. Please visit:").
                  " ".$HOST.$INDEX."?action=game&me=".$userhash."\n\n" ;
                mymail($userid,$gameid, GAME_POVERTY, $email_message);
+               set_language($myid,'uid');
              }
 
            $cards_status = CARDS_SHOW;
@@ -1143,12 +1170,14 @@ switch($mystatus)
                    DB_set_player_by_gameid($gameid,$userid);
                    DB_set_hand_status_by_hash($userhash,'poverty');
 
-                   $email_message = "Two people have poverty, it's your turn to decide, if you want to take the trump. Please visit:".
+                   set_langauge($userid,'uid');
+                   $email_message = _("Two people have poverty, it's your turn to decide, if you want to take the trump. Please visit:").
                      " ".$HOST.$INDEX."?action=game&me=".$userhash."\n\n" ;
                    mymail($userid,$gameid, GAME_DPOVERTY, $email_message);
+                   set_language($myid,'uid');
                  }
              }
-           $messages[] = "Please, <a href=\"$INDEX?action=game&amp;me=$me\">continue</a> here";
+           $messages[] = sprintf(_('Please, <a href="%s">continue</a> here'),$INDEX."?action=game&amp;me=$me");
          }
       }
     break;
@@ -1163,19 +1192,19 @@ switch($mystatus)
     switch($gamestatus)
       {
       case 'cancel-noplay':
-       $messages[] = "The game has been canceled due to the request of one player.</p><p>If this was a mistake all 4 players need to send an Email to $ADMIN_NAME at $ADMIN_EMAIL requesting that the game should be restarted.";
+       $messages[] = _("The game has been canceled due to the request of one player.</p><p>If this was a mistake all 4 players need to send an Email to $ADMIN_NAME at $ADMIN_EMAIL requesting that the game should be restarted.");
        break;
       case 'cancel-timedout':
-       $messages[] = "The game has been canceled because one player wasn't responding.<br />If this was a mistake all 4 players need to send an Email to $ADMIN_NAME at $ADMIN_EMAIL requesting that the game should be restarted.";
+       $messages[] = _("The game has been canceled because one player wasn't responding.<br />If this was a mistake all 4 players need to send an Email to $ADMIN_NAME at $ADMIN_EMAIL requesting that the game should be restarted.");
        break;
       case 'cancel-nines':
-       $messages[] = 'The game has been canceled because one player had too many nines.';
+       $messages[] = _('The game has been canceled because one player had too many nines.');
        break;
       case 'cancel-lowtrump':
-       $messages[] = 'The game has been canceled because one player had low trump.';
+       $messages[] = _('The game has been canceled because one player had low trump.');
        break;
       case 'cancel-trump':
-       $messages[] = 'The game has been canceled because nobody wanted to take the trump.';
+       $messages[] = _('The game has been canceled because nobody wanted to take the trump.');
        break;
       }
     /* for these two types, we shouldn't show the cards, since we might want to restart the game */
@@ -1215,9 +1244,11 @@ switch($mystatus)
            if($hash!=$me && DB_get_email_pref_by_hash($hash)!='emailaddict')
              {
                /* email startplayer) */
-               $email_message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
-                 'Use this link to play a card: '.$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
+               set_language($userid,'uid');
+               $email_message = sprintf(_("It's your turn now in game %s.\n".
+                 'Use this link to play a card: '),DB_format_gameid($gameid)).$HOST.$INDEX."?action=game&me=".$hash."\n\n" ;
                mymail($userid,$gameid, GAME_READY, $email_message);
+               set_language($myid,'uid');
              }
          }
       }
@@ -1667,12 +1698,14 @@ switch($mystatus)
                $userid    = DB_get_userid('hash',$next_hash);
                DB_set_player_by_gameid($gameid,$userid);
 
-               $email_message = 'A card has been played in game '.DB_format_gameid($gameid).".\n\n".
-                 "It's your turn  now.\n".
-                 'Use this link to play a card: '.$HOST.$INDEX.'?action=game&me='.$next_hash."\n\n" ;
                if( DB_get_email_pref_by_uid($userid)!='emailaddict' )
                  {
+                   set_language($userid,'uid');
+                   $email_message = sprintf(_("A card has been played in game %s.\n\n".
+                     "It's your turn now.\n".
+                     'Use this link to play a card: '),DB_format_gameid($gameid)).$HOST.$INDEX.'?action=game&me='.$next_hash."\n\n" ;
                    mymail($userid,$gameid, GAME_YOUR_TURN, $email_message);
+                   set_language($myid,'uid');
                  }
              }
            else /* send out final email */
@@ -1686,8 +1719,8 @@ switch($mystatus)
                                   ' LEFT JOIN Card ON Card.id=Hand_Card.card_id'.
                                   " WHERE Hand.game_id='$gameid'".
                                   ' GROUP BY User.fullname' );
-               $email_message  = "The game is over. Thanks for playing :)\n";
-               $email_message .= "Final score:\n";
+               $email_message  = _("The game is over. Thanks for playing :)")."\n";
+               $email_message .= _("Final score:")."\n";
                while( $r = DB_fetch_array($result) )
                  $email_message .= '   '.$r[0].'('.$r[2].') '.$r[1]."\n";
 
@@ -1699,7 +1732,7 @@ switch($mystatus)
                                   ' LEFT JOIN Card ON Card.id=Hand_Card.card_id'.
                                   " WHERE Hand.game_id='$gameid'".
                                   ' GROUP BY Hand.party' );
-               $email_message .= "\nTotals:\n";
+               $email_message .= "\n"._("Totals:")."\n";
                $re     = 0;
                $contra = 0;
                while( $r = DB_fetch_array($result) )
@@ -1875,7 +1908,7 @@ switch($mystatus)
                  /* add score points to email */
                  $email_message .= "\n";
                  $Tpoint = 0;
-                 $email_message .= " Points Re: \n";
+                 $email_message .= " "._("Points Re:")." \n";
                  $queryresult = DB_query('SELECT score FROM Score '.
                                          "  WHERE game_id=$gameid AND party='re'");
                  while($r = DB_fetch_array($queryresult) )
@@ -1883,7 +1916,7 @@ switch($mystatus)
                      $email_message .= '   '.$r[0]."\n";
                      $Tpoint ++;
                    }
-                 $email_message .= " Points Contra: \n";
+                 $email_message .= " "._("Points Contra:")." \n";
                  $queryresult = DB_query('SELECT score FROM Score '.
                                          "  WHERE game_id=$gameid AND party='contra'");
                  while($r = DB_fetch_array($queryresult) )
@@ -1891,15 +1924,15 @@ switch($mystatus)
                      $email_message .= '   '.$r[0]."\n";
                      $Tpoint --;
                    }
-                 $email_message .= " Total Points (from the Re point of view): $Tpoint\n";
+                 $email_message .= " "._("Total Points (from the Re point of view):")." $Tpoint\n";
                  $email_message .= "\n";
 
                  $session = DB_get_session_by_gameid($gameid);
                  $score = generate_score_table($session);
 
-                 $email_message .= "Score Table:\n";
+                 $email_message .= _("Score Table:")."\n";
                  $email_message .= format_score_table_ascii($score);
-                 $email_message .= "\nUse these links to have a look at game ".DB_format_gameid($gameid).": \n";
+                 $email_message .= "\n"._("Use these links to have a look at game")." ".DB_format_gameid($gameid).": \n";
 
                  /* send out final email */
                  foreach($userids as $user)
@@ -1911,13 +1944,14 @@ switch($mystatus)
                      $link = "$name: ".$HOST.$INDEX."?action=game&me=".$hash."\n" ;
                      $email_message .= $link;
                    }
-                 $email_message .= "\n\n (you can use reply all on this email to reach all the players.)\n\n";
+                 $email_message .= "\n\n "._("(use in-game comments to reach all players)")."\n\n";
                  mymail($userids,$gameid, GAME_OVER, $email_message);
+                 set_language($myid,'uid');
              }
          }
        else
          {
-           $messages[] = "can't find that card?!";
+           $messages[] = _("can't find that card?!");
          }
       }
     else if(myisset('card') && !$myturn )
@@ -2209,7 +2243,8 @@ switch ($card_status) {
           $name = DB_get_name('userid',$user);
           $oldcards = DB_get_all_hand($userhash);
           $oldcards = mysort($oldcards,$gametype);
-          echo "$name's cards were: <br />\n";
+          echo sprintf(_("%s's cards were:"),$name);
+          echo " <br />\n";
           foreach($oldcards as $card)
             display_card($card,$PREF['cardset']);
         }
@@ -2230,7 +2265,7 @@ if( sizeof($messages) )
     echo "\n<div class=\"message\">\n";
     foreach($messages as $message)
       {
-       echo "  <div>$message <div>close</div> </div>\n";
+       echo "  <div>$message <div>"._("close")."</div> </div>\n";
       }
     echo "</div>\n\n";
   }