rem: text = g_strconcat ( COLON(_("Result of %s")), buffer );
add: text = g_strdup_printf ( COLON(_("Result of %s")), buffer );
context: gint etat_affiche_affiche_total_periode ( struct structure_operation *operation, gint ligne, gint force ){  if ( etat_courant -> separation_par_plage )    {      gchar *text;      text = NULL;      /* si la date de dbut de priode est nulle, on la met au dbut de la priode la date de l'opration */      if ( !date_debut_periode )	{	  if ( operation )	    {	      /*  il y a une opration, on va rechercher le dbut de la priode qui la contient */	      /* a peut tre le dbut de la semaine, du mois ou de l'anne de l'op */	      switch ( etat_courant -> type_separation_plage )		{		case 0:		  /* sparation par semaine : on recherche le dbut de la semaine qui contient l'op */		  date_debut_periode = g_date_new_dmy ( g_date_day ( operation -> date ),							g_date_month ( operation -> date ),							g_date_year ( operation -> date ));		  if ( g_date_weekday ( date_debut_periode )  != (etat_courant -> jour_debut_semaine + 1 ))		    {		      if ( g_date_weekday ( date_debut_periode ) < (etat_courant -> jour_debut_semaine + 1 ))			g_date_subtract_days ( date_debut_periode,					       g_date_weekday ( date_debut_periode ) + etat_courant -> jour_debut_semaine - 2 );		      else			g_date_subtract_days ( date_debut_periode,					       g_date_weekday ( date_debut_periode ) - etat_courant -> jour_debut_semaine - 1 );		    }		  break;		case 1:		  /* sparation par mois */		  date_debut_periode = g_date_new_dmy ( 1,							g_date_month ( operation -> date ),							g_date_year ( operation -> date ));		  break;		case 2:		  /* sparation par an */		  date_debut_periode = g_date_new_dmy ( 1,							1,							g_date_year ( operation -> date ));		  break;		}	    }	  else	    date_debut_periode = NULL;	  return ( ligne );	}      /* on vrifie maintenant s'il faut afficher un total ou pas */      switch ( etat_courant -> type_separation_plage )	{	  gchar buffer[30];	  GDate *date_tmp;	case 0:	  /* sparation par semaine */	  /* 	  si c'est le mme jour que l'op prcdente, on fait rien */	  if ( !force	       &&	       !g_date_compare ( operation -> date,				 date_debut_periode ))	    return ( ligne );	  /* 	  si on est en dbut de semaine, on met un sous total */	  date_tmp = g_date_new_dmy ( g_date_day ( date_debut_periode ),				      g_date_month ( date_debut_periode ),				      g_date_year ( date_debut_periode ));	  g_date_add_days ( date_tmp,			    7 );	  if ( !force	       &&	       ( g_date_weekday ( operation -> date )  != (etat_courant -> jour_debut_semaine + 1 )		 &&		 g_date_compare ( operation -> date,				  date_tmp ) < 0 ))	    return ( ligne );	  /* on doit retrouver la date du dbut de semaine et y ajouter 6j pour afficher la priode */	  if ( g_date_weekday ( date_debut_periode )  != (etat_courant -> jour_debut_semaine + 1 ))	    {	      if ( g_date_weekday ( date_debut_periode ) < (etat_courant -> jour_debut_semaine + 1 ))		g_date_subtract_days ( date_debut_periode,				       g_date_weekday ( date_debut_periode ) + etat_courant -> jour_debut_semaine - 2 );	      else		g_date_subtract_days ( date_debut_periode,				       g_date_weekday ( date_debut_periode ) - etat_courant -> jour_debut_semaine - 1 );	    }	  g_date_free ( date_tmp );	  date_tmp = g_date_new_dmy ( g_date_day ( date_debut_periode ),				      g_date_month ( date_debut_periode ),				      g_date_year ( date_debut_periode ));	  g_date_add_days ( date_tmp,			    6 );	  if ( etat_courant -> afficher_nb_opes )	    text = g_strdup_printf ( _("Result from %d/%d/%d to %d/%d/%d (%d transactions):"),				     g_date_day ( date_debut_periode ),				     g_date_month ( date_debut_periode ),				     g_date_year ( date_debut_periode ),				     g_date_day ( date_tmp ),				     g_date_month ( date_tmp ),				     g_date_year ( date_tmp ),				     nb_ope_periode_etat );	  else	    text = g_strdup_printf ( _("Result from %d/%d/%d to %d/%d/%d:"),				     g_date_day ( date_debut_periode ),				     g_date_month ( date_debut_periode ),				     g_date_year ( date_debut_periode ),				     g_date_day ( date_tmp ),				     g_date_month ( date_tmp ),				     g_date_year ( date_tmp ));	  break;	case 1:	  /* sparation par mois */	  if ( !force	       &&	       operation -> mois == g_date_month ( date_debut_periode ) )	    return ( ligne );	  g_date_strftime ( buffer,			    29,			    "%B %Y",			    date_debut_periode );			    	  if ( etat_courant -> afficher_nb_opes )	    text = g_strdup_printf ( COLON(_("Result of %s (%d transactions)")),				     buffer, nb_ope_periode_etat );	  else	    text = g_strconcat ( COLON(_("Result of %s")),				 buffer );				      	  break;	case 2:	  /* sparation par an */	  if ( !force	       &&	       operation -> annee == g_date_year ( date_debut_periode ) )	    return ( ligne );	  g_date_strftime ( buffer,			    29,			    "%Y",			    date_debut_periode );			    	  if ( etat_courant -> afficher_nb_opes )	    text = g_strdup_printf ( COLON(_("Result of the year%s (%d transactions)")),				     buffer, nb_ope_periode_etat );	  else	    text = g_strdup_printf ( COLON(_("Result of the year%s")),				     buffer );	  break;	}      /*       si on arrive ici, c'est qu'il y a un chgt de priode ou que c'est forc */      etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, CENTER, NULL );      ligne++;      etat_affiche_attach_hsep ( 1, nb_colonnes, ligne, ligne + 1 );      ligne++;      etat_affiche_attach_label ( text, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, LEFT, NULL );      text = g_strdup_printf ( "%4.2f %s", montant_periode_etat, devise_name ( devise_generale_etat ) );      etat_affiche_attach_label ( text, TEXT_NORMAL, nb_colonnes - 1, nb_colonnes, ligne, ligne + 1, RIGHT, NULL );      ligne++;      etat_affiche_attach_label ( NULL, TEXT_NORMAL, 1, nb_colonnes - 1, ligne, ligne + 1, CENTER, NULL );      ligne++;      montant_periode_etat = 0;      nb_ope_periode_etat = 0;      /* comme il y a un changement de priode, on remet la date_debut_periode  celle du dbut de la priode */      /* de l'opration  en cours */      if ( operation )	{	  /*  il y a une opration, on va rechercher le dbut de la priode qui la contient */	  /* a peut tre le dbut de la semaine, du mois ou de l'anne de l'op */	  switch ( etat_courant -> type_separation_plage )	    {	    case 0:	      /* sparation par semaine : on recherche le dbut de la semaine qui contient l'op */	      date_debut_periode = g_date_new_dmy ( g_date_day ( operation -> date ),						    g_date_month ( operation -> date ),						    g_date_year ( operation -> date ));	      if ( g_date_weekday ( date_debut_periode )  != (etat_courant -> jour_debut_semaine + 1 ))		{		  if ( g_date_weekday ( date_debut_periode ) < (etat_courant -> jour_debut_semaine + 1 ))		    g_date_subtract_days ( date_debut_periode,					   g_date_weekday ( date_debut_periode ) + etat_courant -> jour_debut_semaine - 2 );		  else		    g_date_subtract_days ( date_debut_periode,					   g_date_weekday ( date_debut_periode ) - etat_courant -> jour_debut_semaine - 1 );		}	      break;	    case 1:	      /* sparation par mois */	      date_debut_periode = g_date_new_dmy ( 1,						    g_date_month ( operation -> date ),						    g_date_year ( operation -> date ));	      break;	    case 2:	      /* sparation par an */	      date_debut_periode = g_date_new_dmy ( 1,						    1,						    g_date_year ( operation -> date ));	      break;	    }	}      else	date_debut_periode = NULL;    }  return (ligne );}