Version 18.49.2

This commit is contained in:
Antonio Cañas Vargas 2019-02-18 18:27:45 +01:00
parent 0a9f354212
commit 64513f64f2
15 changed files with 79 additions and 199 deletions

View File

@ -465,14 +465,14 @@ void Acc_ShowFormChgMyAccount (void)
/***** Start container for this user *****/
fprintf (Gbl.F.Out,"<div class=\"REC_USR\">");
/***** Show form to change my password *****/
/***** Show form to change my password and my nickname ****/
fprintf (Gbl.F.Out,"<div class=\"REC_LEFT\">");
Pwd_ShowFormChgMyPwd ();
Nck_ShowFormChangeMyNickname (IMustCreateMyNicknameNow);
fprintf (Gbl.F.Out,"</div>");
/***** Show form to change my nickname, my email and my ID *****/
/***** Show form to change my email and my ID *****/
fprintf (Gbl.F.Out,"<div class=\"REC_RIGHT\">");
Nck_ShowFormChangeMyNickname (IMustCreateMyNicknameNow);
Mai_ShowFormChangeMyEmail (IMustFillInMyEmailNow,IShouldConfirmMyEmailNow);
ID_ShowFormChangeMyID (IShouldFillInMyIDNow);
fprintf (Gbl.F.Out,"</div>");
@ -504,16 +504,16 @@ void Acc_ShowFormChgOtherUsrAccount (void)
/***** Start container for this user *****/
fprintf (Gbl.F.Out,"<div class=\"REC_USR\">");
/***** Show form to change nickname and email *****/
/***** Show form to change password and nickname *****/
fprintf (Gbl.F.Out,"<div class=\"REC_LEFT\">");
Pwd_ShowFormChgOtherUsrPwd ();
Nck_ShowFormChangeOtherUsrNickname ();
Mai_ShowFormChangeOtherUsrEmail ();
fprintf (Gbl.F.Out,"</div>");
/***** Show form to change ID and password *****/
/***** Show form to change email and ID *****/
fprintf (Gbl.F.Out,"<div class=\"REC_RIGHT\">");
Mai_ShowFormChangeOtherUsrEmail ();
ID_ShowFormChangeOtherUsrID ();
Pwd_ShowFormChgOtherUsrPwd ();
fprintf (Gbl.F.Out,"</div>");
/***** Start container for this user *****/

View File

@ -5129,19 +5129,19 @@ void Act_AdjustCurrentAction (void)
Gbl.Action.Act == ActLogInLan ||
Gbl.Action.Act == ActAnnSee;
/***** Don't adjust anything when:
- refreshing
- web service *****/
if (Gbl.Action.UsesAJAX ||
Gbl.WebService.IsWebService)
return;
/***** Don't adjust anything when current action is not a menu option
(except some actions just after login) *****/
if (!JustAfterLogin && // Not just after login
Gbl.Action.Act != Act_GetSuperAction (Gbl.Action.Act)) // It is not a menu option
return;
/***** Don't adjust anything when:
- refreshing users
- web service *****/
if (Gbl.Action.UsesAJAX ||
Gbl.WebService.IsWebService)
return;
/***** Adjustment 1:
-------------
If I have no password in database,
@ -5257,23 +5257,19 @@ void Act_AdjustCurrentAction (void)
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_STD:
/* Action allowed for students to see/print
the timetable before registering in groups */
if (Gbl.Action.Act == ActSeeCrsTT)
return;
/***** Adjustment 7:
-------------
If there are some group types
with available groups in which I must register,
the only action possible
is show a form to register in groups *****/
if (Grp_GetIfAvailableGrpTyp (-1L)) // This query may be slow
{
Gbl.Action.Act = ActReqSelGrp;
Tab_SetCurrentTab ();
return;
}
if (JustAfterLogin) // Only after login because the following query may be slow
if (Grp_GetIfAvailableGrpTyp (-1L)) // This query may be slow
{
Gbl.Action.Act = ActReqSelGrp;
Tab_SetCurrentTab ();
return;
}
/***** Adjustment 8:
-------------

View File

@ -1451,7 +1451,7 @@ void Agd_RequestCreatOrEditEvent (void)
extern const char *Txt_Event;
extern const char *Txt_Description;
extern const char *Txt_Create_event;
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
struct AgendaEvent AgdEvent;
bool ItsANewEvent;
char Txt[Cns_MAX_BYTES_TEXT + 1];
@ -1558,7 +1558,7 @@ void Agd_RequestCreatOrEditEvent (void)
if (ItsANewEvent)
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_event);
else
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save);
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save_changes);
/***** End form *****/
Frm_EndForm ();

View File

@ -1081,7 +1081,7 @@ void Asg_RequestCreatOrEditAsg (void)
extern const char *Txt_Folder;
extern const char *Txt_Description;
extern const char *Txt_Create_assignment;
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
struct Assignment Asg;
bool ItsANewAssignment;
char Txt[Cns_MAX_BYTES_TEXT + 1];
@ -1197,7 +1197,7 @@ void Asg_RequestCreatOrEditAsg (void)
if (ItsANewAssignment)
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_assignment);
else
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save);
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save_changes);
/***** End form *****/
Frm_EndForm ();

View File

@ -1042,7 +1042,7 @@ void Att_RequestCreatOrEditAttEvent (void)
extern const char *Txt_Visible_MALE_PLURAL;
extern const char *Txt_Description;
extern const char *Txt_Create_event;
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
struct AttendanceEvent Att;
bool ItsANewAttEvent;
char Description[Cns_MAX_BYTES_TEXT + 1];
@ -1166,7 +1166,7 @@ void Att_RequestCreatOrEditAttEvent (void)
if (ItsANewAttEvent)
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_event);
else
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save);
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save_changes);
/***** End form *****/
Frm_EndForm ();
@ -1862,10 +1862,11 @@ void Att_SeeOneAttEvent (void)
static void Att_ListAttOnlyMeAsStudent (struct AttendanceEvent *Att)
{
extern const char *Hlp_USERS_Attendance;
extern const char *Txt_Attendance;
extern const char *Txt_Student_comment;
extern const char *Txt_Teachers_comment;
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
/***** Get my preference about photos in users' list for current course *****/
Usr_GetMyPrefAboutListWithPhotosFromDB ();
@ -1877,10 +1878,15 @@ static void Att_ListAttOnlyMeAsStudent (struct AttendanceEvent *Att)
Att_PutParamAttCod (Att->AttCod);
}
/***** List students' data *****/
/* Start box and table */
Box_StartBoxTable (NULL,NULL,NULL,
Hlp_USERS_Attendance,Box_NOT_CLOSABLE,2);
/***** List students (only me) *****/
/* Start box */
Box_StartBox (NULL,Txt_Attendance,NULL,
Hlp_USERS_Attendance,Box_NOT_CLOSABLE);
/* Start table */
Tbl_StartTableWideMargin (2);
/* Header */
fprintf (Gbl.F.Out,"<tr>"
"<th></th>"
"<th></th>"
@ -1904,15 +1910,18 @@ static void Att_ListAttOnlyMeAsStudent (struct AttendanceEvent *Att)
/* List of students (only me) */
Att_WriteRowStdToCallTheRoll (1,&Gbl.Usrs.Me.UsrDat,Att);
/* End table and box */
Box_EndBoxTable ();
/* End table */
Tbl_EndTable ();
/* Send button */
if (Att->Open)
{
/***** Send button *****/
Btn_PutConfirmButton (Txt_Save);
Btn_PutConfirmButton (Txt_Save_changes);
Frm_EndForm ();
}
/* End box */
Box_EndBox ();
}
/*****************************************************************************/
@ -1927,7 +1936,7 @@ static void Att_ListAttStudents (struct AttendanceEvent *Att)
extern const char *Txt_Student_comment;
extern const char *Txt_Teachers_comment;
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
unsigned NumStd;
struct UsrData UsrDat;
@ -1955,14 +1964,15 @@ static void Att_ListAttStudents (struct AttendanceEvent *Att)
/***** Initialize structure with user's data *****/
Usr_UsrDataConstructor (&UsrDat);
/***** Start form *****/
/* Start form */
Frm_StartForm (ActRecAttStd);
Att_PutParamAttCod (Att->AttCod);
Grp_PutParamsCodGrps ();
/***** List students' data *****/
/* Start table */
Tbl_StartTableWideMargin (2);
/* Header */
fprintf (Gbl.F.Out,"<tr>"
"<th></th>"
"<th></th>"
@ -1997,10 +2007,11 @@ static void Att_ListAttStudents (struct AttendanceEvent *Att)
Att_WriteRowStdToCallTheRoll (NumStd + 1,&UsrDat,Att);
}
/* End table */
Tbl_EndTable ();
/* Send button */
Btn_PutConfirmButton (Txt_Save);
Btn_PutConfirmButton (Txt_Save_changes);
/***** End form *****/
Frm_EndForm ();

View File

@ -382,7 +382,6 @@ OPTIMIZE TABLE debug;
*/
// TODO: Editar todas mis webs al mismo tiempo poniendo al final un botón "Guardar cambios"
// TODO: Chequear login para ver agenda desde código QR
/*****************************************************************************/
/****************************** Public constants *****************************/
@ -403,10 +402,12 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.49.1 (2019-02-18)"
#define Log_PLATFORM_VERSION "SWAD 18.49.2 (2019-02-18)"
#define CSS_FILE "swad18.41.1.css"
#define JS_FILE "swad18.32.1.js"
/*
Version 18.49.2: Feb 18, 2019 The warning message of compulsory enrolment in groups is only made after login.
Homogenization of buttons to save changes. (237257 lines)
Version 18.49.1: Feb 18, 2019 Optimization in query about available mandatory group types. (237381 lines)
Version 18.49: Feb 18, 2019 Optimizations adjusting actions.
Fixed bug in query about available mandatory group types. (237378 lines)

View File

@ -1737,7 +1737,7 @@ void Gam_RequestCreatOrEditGame (void)
extern const char *Txt_Description;
extern const char *Txt_Users;
extern const char *Txt_Create_game;
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
struct Game Game;
bool ItsANewGame;
char Txt[Cns_MAX_BYTES_TEXT + 1];
@ -1873,7 +1873,7 @@ void Gam_RequestCreatOrEditGame (void)
if (ItsANewGame)
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_game);
else
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save);
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save_changes);
/***** End form *****/
Frm_EndForm ();

View File

@ -2044,7 +2044,7 @@ int Inf_WritePlainTextIntoHTMLBuffer (char **HTMLBuffer)
void Inf_EditPlainTxtInfo (void)
{
extern const char *Txt_INFO_TITLE[Inf_NUM_INFO_TYPES];
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
char TxtHTML[Cns_MAX_BYTES_LONG_TEXT + 1];
const char *HelpEdit[Inf_NUM_INFO_TYPES] =
{
@ -2084,7 +2084,7 @@ void Inf_EditPlainTxtInfo (void)
TxtHTML);
/***** Send button and end box *****/
Box_EndBoxWithButton (Btn_CONFIRM_BUTTON,Txt_Save);
Box_EndBoxWithButton (Btn_CONFIRM_BUTTON,Txt_Save_changes);
Frm_EndForm ();
}
@ -2095,7 +2095,7 @@ void Inf_EditPlainTxtInfo (void)
void Inf_EditRichTxtInfo (void)
{
extern const char *Txt_INFO_TITLE[Inf_NUM_INFO_TYPES];
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
char TxtHTML[Cns_MAX_BYTES_LONG_TEXT + 1];
const char *HelpEdit[Inf_NUM_INFO_TYPES] =
{
@ -2135,7 +2135,7 @@ void Inf_EditRichTxtInfo (void)
TxtHTML);
/***** Send button and end box *****/
Box_EndBoxWithButton (Btn_CONFIRM_BUTTON,Txt_Save);
Box_EndBoxWithButton (Btn_CONFIRM_BUTTON,Txt_Save_changes);
Frm_EndForm ();
}

View File

@ -1207,7 +1207,7 @@ static void Mai_ShowFormChangeUsrEmail (const struct UsrData *UsrDat,bool ItsMe,
extern const char *Txt_New_email;
extern const char *Txt_Email;
extern const char *Txt_Change_email;
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned NumEmails;
@ -1387,7 +1387,7 @@ static void Mai_ShowFormChangeUsrEmail (const struct UsrData *UsrDat,bool ItsMe,
Cns_MAX_CHARS_EMAIL_ADDRESS,
Gbl.Usrs.Me.UsrDat.Email);
Btn_PutCreateButtonInline (NumEmails ? Txt_Change_email : // User already has an email address
Txt_Save); // User has no email address yet
Txt_Save_changes); // User has no email address yet
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");

View File

@ -224,7 +224,7 @@ static void Nck_ShowFormChangeUsrNickname (const struct UsrData *UsrDat,bool Its
extern const char *Txt_Use_this_nickname;
extern const char *Txt_New_nickname;
extern const char *Txt_Change_nickname;
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
MYSQL_RES *mysql_res;
MYSQL_ROW row;
char StrRecordWidth[10 + 1];
@ -402,7 +402,7 @@ static void Nck_ShowFormChangeUsrNickname (const struct UsrData *UsrDat,bool Its
1 + Nck_MAX_CHARS_NICKNAME_WITHOUT_ARROBA,
Gbl.Usrs.Me.UsrDat.Nickname);
Btn_PutCreateButtonInline (NumNicks ? Txt_Change_nickname : // I already have a nickname
Txt_Save); // I have no nickname yet);
Txt_Save_changes); // I have no nickname yet);
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");

View File

@ -2916,7 +2916,7 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
extern const char *Txt_No;
extern const char *Txt_Yes;
extern const char *Txt_Create_project;
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
extern const char *Txt_Members;
Prj_Proposal_t Proposal;
unsigned NumRoleToShow;
@ -3083,7 +3083,7 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
if (ItsANewProject)
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_project);
else
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save);
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save_changes);
/* End data form */
Frm_EndForm ();

View File

@ -1680,7 +1680,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
extern const char *Hlp_USERS_Students_course_record_card;
extern const char *The_ClassForm[The_NUM_THEMES];
extern const char *Txt_RECORD_FIELD_VISIBILITY_RECORD[Rec_NUM_TYPES_VISIBILITY];
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
const char *Rec_RecordHelp[Rec_COURSE_NUM_VIEW_TYPES] =
{
Hlp_USERS_Students_course_record_card, // Rec_CRS_MY_RECORD_AS_STUDENT_FORM
@ -1877,7 +1877,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
if (ICanEdit)
{
/* End table, send button and end box */
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save);
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save_changes);
/* End form */
Frm_EndForm ();

View File

@ -1782,7 +1782,7 @@ void Svy_RequestCreatOrEditSvy (void)
extern const char *Txt_Description;
extern const char *Txt_Users;
extern const char *Txt_Create_survey;
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
struct Survey Svy;
struct SurveyQuestion SvyQst;
bool ItsANewSurvey;
@ -1922,7 +1922,7 @@ void Svy_RequestCreatOrEditSvy (void)
if (ItsANewSurvey)
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_survey);
else
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save);
Box_EndBoxTableWithButton (Btn_CONFIRM_BUTTON,Txt_Save_changes);
/***** End form *****/
Frm_EndForm ();
@ -2602,7 +2602,7 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
extern const char *Txt_Stem;
extern const char *Txt_Type;
extern const char *Txt_SURVEY_STR_ANSWER_TYPES[Svy_NUM_ANS_TYPES];
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
extern const char *Txt_Create_question;
MYSQL_RES *mysql_res;
MYSQL_ROW row;
@ -2763,7 +2763,7 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
/***** Send button *****/
if (SvyQst->QstCod > 0) // If the question already has assigned a code
Btn_PutConfirmButton (Txt_Save);
Btn_PutConfirmButton (Txt_Save_changes);
else
Btn_PutCreateButton (Txt_Create_question);

View File

@ -1901,7 +1901,7 @@ static void Tst_ShowFormConfigTst (void)
extern const char *Txt_Minimum_time_seconds_per_question_between_two_tests;
extern const char *Txt_Feedback_to_students;
extern const char *Txt_TST_STR_FEEDBACK[Tst_NUM_TYPES_FEEDBACK];
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
Tst_Pluggable_t Pluggable;
Tst_Feedback_t Feedback;
@ -2004,7 +2004,7 @@ static void Tst_ShowFormConfigTst (void)
Tbl_EndTable ();
/***** Send button *****/
Btn_PutConfirmButton (Txt_Save);
Btn_PutConfirmButton (Txt_Save_changes);
/***** End form *****/
Frm_EndForm ();
@ -4963,7 +4963,7 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
extern const char *Txt_Shuffle;
extern const char *Txt_Expand;
extern const char *Txt_Contract;
extern const char *Txt_Save;
extern const char *Txt_Save_changes;
extern const char *Txt_Create_question;
MYSQL_RES *mysql_res;
MYSQL_ROW row;
@ -5333,7 +5333,7 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
/***** Send button *****/
if (Gbl.Test.QstCod > 0) // The question already has assigned a code
Btn_PutConfirmButton (Txt_Save);
Btn_PutConfirmButton (Txt_Save_changes);
else
Btn_PutCreateButton (Txt_Create_question);

View File

@ -2083,50 +2083,7 @@ const char *Txt_Assignment =
#elif L==9 // pt
"Atividade";
#endif
/*
const char *Txt_ASSIGNMENT_TYPES[Asg_NUM_TYPES_SEND_WORK] =
{
#if L==1 // ca
"No cal enviar treballs (fitxers)"
#elif L==2 // de
"Keine Hausarbeiten vorgesehen (Dateien)"
#elif L==3 // en
"No homework to be submitted (files)"
#elif L==4 // es
"No hay que enviar trabajos (archivos)"
#elif L==5 // fr
"Ne soumettez pas de travail (fichiers)"
#elif L==6 // gn
"No hay que enviar trabajos (archivos)" // Okoteve traducción
#elif L==7 // it
"Non ci sono lavori da presentare (files)"
#elif L==8 // pl
"Nie ma pracy domowej, kt&oacute;re nalezy przedlozyc (pliki)"
#elif L==9 // pt
"N&atilde;o submeter trabalhos (arquivos)"
#endif
,
#if L==1 // ca
"Es obligatori enviar treballs (fitxers)"
#elif L==2 // de
"Hausarbeiten vorgesehen (files)"
#elif L==3 // en
"It is mandatory to submit homework (files)"
#elif L==4 // es
"Es obligatorio enviar trabajos (archivos)"
#elif L==5 // fr
"Il est obligatoire de soumetter le travail (fichiers)"
#elif L==6 // gn
"Es obligatorio enviar trabajos (archivos)"// Okoteve traducción
#elif L==7 // it
"E' obbligatorio presentare il lavoro (files)"
#elif L==8 // pl
"Jest to obowiazkowe do przedstawienia prac domowych (pliki)"
#elif L==9 // pt
"&Eacute; obrigat&oacute;ria a apresenta&ccedil;&atilde;o de trabalhos (arquivos)"
#endif
};
*/
const char *Txt_Assignment_X_is_now_hidden = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"La activitat <strong>%s</strong> ara est&agrave; oculta.";
@ -10379,28 +10336,7 @@ const char *Txt_Email_X_removed = // Warning: it is very important to include %s
#elif L==9 // pt
"Email <strong>%s</strong> removido.";
#endif
/*
const char *Txt_Email_unconfirmed =
#if L==1 // ca
"Correo no confirmado"; // Necessita traduccio
#elif L==2 // de
"Email unconfirmed"; // Need Übersetzung
#elif L==3 // en
"Email unconfirmed";
#elif L==4 // es
"Correo no confirmado";
#elif L==5 // fr
"Email unconfirmed"; // Besoin de traduction
#elif L==6 // gn
"Correo no confirmado"; // Okoteve traducción
#elif L==7 // it
"Email unconfirmed"; // Bisogno di traduzione
#elif L==8 // pl
"Email unconfirmed"; // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Email n&atilde;o confirmado";
#endif
*/
const char *Txt_End_date =
#if L==1 // ca
"Data final";
@ -37011,27 +36947,6 @@ const char *Txt_ROOT_FOLDER_EXTERNAL_NAMES[Brw_NUM_TYPES_FILE_BROWSER] =
#endif
};
const char *Txt_Save =
#if L==1 // ca
"Guardar";
#elif L==2 // de
"Speichern";
#elif L==3 // en
"Save";
#elif L==4 // es
"Guardar";
#elif L==5 // fr
"Enregistrer";
#elif L==6 // gn
"&Ntilde;ongatu";
#elif L==7 // it
"Salvare";
#elif L==8 // pl
"Zapisa&cacute;";
#elif L==9 // pt
"Salvar";
#endif
const char *Txt_Save_as =
#if L==1 // ca
"Guardar com";
@ -42296,28 +42211,6 @@ const char *Txt_TABS_TXT[Tab_NUM_TABS] =
"Mensagens"
#endif
,
// TabAna
/*
#if L==1 // ca
"Estad&iacute;stiques"
#elif L==2 // de
"Statistik"
#elif L==3 // en
"Statistics"
#elif L==4 // es
"Estad&iacute;sticas"
#elif L==5 // fr
"Statistiques"
#elif L==6 // gn
"Papy'aporeko"
#elif L==7 // it
"Statistiche"
#elif L==8 // pl
"Statystyki"
#elif L==9 // pt
"Estat&iacute;sticas"
#endif
*/
#if L==1 // ca
"An&agrave;lisi"
#elif L==2 // de
@ -46893,28 +46786,7 @@ const char *Txt_The_search_text_must_be_longer =
#elif L==9 // pt
"O texto de pesquisa deve ser mais longo.";
#endif
/*
const char *Txt_The_session_has_been_closed = // Closed by user
#if L==1 // ca
"La sessi&oacute; ha finalitzat.";
#elif L==2 // de
"Die Sitzung wurde beendet.";
#elif L==3 // en
"The session has been closed.";
#elif L==4 // es
"La sesi&oacute;n ha finalizado.";
#elif L==5 // fr
"La session a &eacute;t&eacute; ferm&eacute;e.";
#elif L==6 // gn
"La sesi&oacute;n ha finalizado."; // Okoteve traducción
#elif L==7 // it
"La sessione &egrave; stata chiusa.";
#elif L==8 // pl
"Sesja wygas&lstrok;a.";
#elif L==9 // pt
"A sess&atilde;o foi encerrada.";
#endif
*/
const char *Txt_The_session_has_expired =
#if L==1 // ca
"La sessi&oacute; ha expirat.";