Version19.127.1

This commit is contained in:
Antonio Cañas Vargas 2020-02-19 00:45:26 +01:00
parent eb39b1c58d
commit 37f343a10c
16 changed files with 99 additions and 81 deletions

1
icon/eye-green.svg Normal file
View File

@ -0,0 +1 @@
<svg aria-hidden="true" data-prefix="far" data-icon="eye" class="svg-inline--fa fa-eye fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="#246600" d="M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"></path></svg>

After

Width:  |  Height:  |  Size: 792 B

1
icon/eye-slash-red.svg Normal file
View File

@ -0,0 +1 @@
<svg aria-hidden="true" data-prefix="far" data-icon="eye-slash" class="svg-inline--fa fa-eye-slash fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="#660000" d="M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -258,8 +258,8 @@ static void Agd_ShowFormToSelHiddenVisiblEvents (void)
Agd_HiddenVisiblEvents_t HidVis;
static const char *Icon[2] =
{
[Agd_HIDDEN_EVENTS] = "eye-slash.svg",
[Agd_VISIBL_EVENTS] = "eye.svg",
[Agd_HIDDEN_EVENTS] = "eye-slash-red.svg",
[Agd_VISIBL_EVENTS] = "eye-green.svg",
};
Set_StartOneSettingSelector ();

View File

@ -497,7 +497,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 19.126 (2020-02-18)"
#define Log_PLATFORM_VERSION "SWAD 19.127.1 (2020-02-19)"
#define CSS_FILE "swad19.118.css"
#define JS_FILE "swad19.91.1.js"
/*
@ -521,6 +521,13 @@ Param
// TODO: Add visibility to API function getTestConfig
// TODO: Get visibility IN API function getGames
// TODO: Sugerencia de Jesús González Peñalver: añadir un poco más de espacio entre pregunta y pregunta en las opciones de un juego
// TODO: Remove Txt_Result
Version 19.127.1: Feb 18, 2020 Changes in match results.
Changes in icon. (279116 lines)
Copy the following icons to icon public directory:
sudo cp -a icon/eye-green.svg /var/www/html/swad/icon/
sudo cp -a icon/eye-slash-red.svg /var/www/html/swad/icon/
Version 19.127: Feb 18, 2020 Form to define visibility of match results in games. (279103 lines)
2 changes necessary in database:
@ -554,7 +561,7 @@ UPDATE tst_config SET Visibility=0x1f WHERE Feedback='full_feedback';
Version 19.122.2: Feb 13, 2020 Increased quality in images. (278698 lines)
Version 19.122.1: Feb 07, 2020 Fixed bug removing test tags, reported by Mancia Anguita López. (278692 lines)
Version 19.122: Jan 30, 2020 Some options changed in system tab. (278690 lines)
Copy the following icons to icon public directory:
Copy the following icons to icon public directory:
sudo cp -a icon/bolt.svg /var/www/html/swad/icon/
sudo cp -a icon/iconset/awesome/tools.svg /var/www/html/swad/icon/iconset/awesome/
sudo cp -a icon/iconset/nuvola/tools.svg /var/www/html/swad/icon/iconset/nuvola/

View File

@ -1234,8 +1234,8 @@ static void For_ShowAForumPost (unsigned PstNum,long PstCod,
Gbl.Forum.ForumSelected.Location,
Gbl.Forum.ForumSelected.ThrCod,
PstCod);
Ico_PutIconLink (Enabled ? "eye.svg" :
"eye-slash.svg",
Ico_PutIconLink (Enabled ? "eye-green.svg" :
"eye-slash-red.svg",
Str_BuildStringLong (Enabled ? Txt_FORUM_Post_X_allowed_Click_to_ban_it :
Txt_FORUM_Post_X_banned_Click_to_unban_it,
(long) PstNum));
@ -1244,8 +1244,8 @@ static void For_ShowAForumPost (unsigned PstNum,long PstCod,
}
else
{
Ico_PutIcon (Enabled ? "eye.svg" :
"eye-slash.svg",
Ico_PutIcon (Enabled ? "eye-green.svg" :
"eye-slash-red.svg",
Str_BuildStringLong (Enabled ? Txt_FORUM_Post_X_allowed :
Txt_FORUM_Post_X_banned,
(long) PstNum),

View File

@ -528,9 +528,7 @@ static void Gam_ShowOneGame (struct Game *Game,bool ShowOnlyThisGame)
HTM_BR ();
HTM_TxtColonNBSP (Txt_Result_visibility);
HTM_BR ();
TsV_ShowVisibility (Game->Visibility,
Game->Hidden ? "ASG_GRP_LIGHT" :
"ASG_GRP");
TsV_ShowVisibility (Game->Visibility);
}
HTM_DIV_End ();

View File

@ -276,7 +276,7 @@ void Ico_PutContextualIconToHide (Act_Action_t NextAction,const char *Anchor,voi
extern const char *Txt_Hide;
Lay_PutContextualLinkOnlyIcon (NextAction,Anchor,FuncParams,
"eye.svg",
"eye-green.svg",
Txt_Hide);
}
@ -285,7 +285,7 @@ void Ico_PutContextualIconToUnhide (Act_Action_t NextAction,const char *Anchor,v
extern const char *Txt_Show;
Lay_PutContextualLinkOnlyIcon (NextAction,Anchor,FuncParams,
"eye-slash.svg",
"eye-slash-red.svg",
Txt_Show);
}
@ -510,3 +510,14 @@ void Ico_PutIconPaste (void)
Ico_PutIconLink ("paste.svg",Txt_Paste);
}
/*****************************************************************************/
/************* Put icon indicating that a content is not visible *************/
/*****************************************************************************/
void Ico_PutIconNotVisible (void)
{
extern const char *Txt_Not_visible;
Ico_PutIconOff ("eye-slash-red.svg",Txt_Not_visible);
}

View File

@ -90,4 +90,6 @@ void Ico_PutIconRemove (void);
void Ico_PutIconCut (void);
void Ico_PutIconPaste (void);
void Ico_PutIconNotVisible (void);
#endif

View File

@ -481,7 +481,7 @@ static void Mch_ListOneOrMoreMatchesHeading (bool ICanEditMatches)
extern const char *Txt_Match;
extern const char *Txt_Players;
extern const char *Txt_Status;
extern const char *Txt_Result;
extern const char *Txt_Results;
/***** Start row *****/
HTM_TR_Begin (NULL);
@ -497,7 +497,7 @@ static void Mch_ListOneOrMoreMatchesHeading (bool ICanEditMatches)
HTM_TH (1,1,"LT",Txt_Match);
HTM_TH (1,1,"RT",Txt_Players);
HTM_TH (1,1,"CT",Txt_Status);
HTM_TH (1,1,"CT",Txt_Result);
HTM_TH (1,1,"CT",Txt_Results);
/***** End row *****/
HTM_TR_End ();
@ -768,7 +768,6 @@ static void Mch_ListOneOrMoreMatchesResult (const struct Match *Match)
static void Mch_ListOneOrMoreMatchesResultStd (const struct Match *Match)
{
extern const char *Txt_Hidden_results;
extern const char *Txt_Results;
/***** Is match result visible or hidden? *****/
@ -784,7 +783,7 @@ static void Mch_ListOneOrMoreMatchesResultStd (const struct Match *Match)
}
else
/* Result is forbidden to me */
Ico_PutIconOff ("eye-slash.svg",Txt_Hidden_results);
Ico_PutIconNotVisible ();
}
static void Mch_ListOneOrMoreMatchesResultTch (const struct Match *Match)
@ -808,15 +807,15 @@ static void Mch_ListOneOrMoreMatchesResultTch (const struct Match *Match)
/* I can edit visibility */
Lay_PutContextualLinkOnlyIcon (ActChgVisResMchUsr,NULL,
Mch_PutParamsEdit,
Match->Status.ShowUsrResults ? "eye.svg" :
"eye-slash.svg",
Match->Status.ShowUsrResults ? "eye-green.svg" :
"eye-slash-red.svg",
Match->Status.ShowUsrResults ? Txt_Visible_results :
Txt_Hidden_results);
}
else
/* I can not edit visibility */
Ico_PutIconOff (Match->Status.ShowUsrResults ? "eye.svg" :
"eye-slash.svg",
Ico_PutIconOff (Match->Status.ShowUsrResults ? "eye-green.svg" :
"eye-slash-red.svg",
Match->Status.ShowUsrResults ? Txt_Visible_results :
Txt_Hidden_results);
}

View File

@ -662,7 +662,6 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther,
const char *GamesSelectedCommas)
{
extern const char *Txt_Match_result;
extern const char *Txt_Hidden_results;
char *MchSubQuery;
char *GamSubQuery;
MYSQL_RES *mysql_res;
@ -807,7 +806,7 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther,
HTM_Txt (Match.Title);
HTM_TD_End ();
if (ICanViewResult)
if (ICanViewScore)
{
/* Get number of questions (row[3]) */
if (sscanf (row[3],"%u",&NumQstsInThisResult) != 1)
@ -835,18 +834,18 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther,
/* Write number of questions */
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
if (ICanViewResult)
if (ICanViewScore)
HTM_Unsigned (NumQstsInThisResult);
else
Ico_PutIconOff ("eye-slash.svg",Txt_Hidden_results);
HTM_TD_End ();
Ico_PutIconNotVisible ();
HTM_TD_End ();
/* Write number of questions not blank */
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
if (ICanViewResult)
if (ICanViewScore)
HTM_Unsigned (NumQstsNotBlankInThisResult);
else
Ico_PutIconOff ("eye-slash.svg",Txt_Hidden_results);
Ico_PutIconNotVisible ();
HTM_TD_End ();
/* Write score */
@ -854,7 +853,7 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther,
if (ICanViewScore)
HTM_Double2Decimals (ScoreInThisResult);
else
Ico_PutIconOff ("eye-slash.svg",Txt_Hidden_results);
Ico_PutIconNotVisible ();
HTM_TD_End ();
/* Write average score per question */
@ -864,7 +863,7 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther,
(double) NumQstsInThisResult :
0.0);
else
Ico_PutIconOff ("eye-slash.svg",Txt_Hidden_results);
Ico_PutIconNotVisible ();
HTM_TD_End ();
/* Write grade over maximum grade */
@ -876,7 +875,7 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther,
TotalGrade += Grade;
}
else
Ico_PutIconOff ("eye-slash.svg",Txt_Hidden_results);
Ico_PutIconNotVisible ();
HTM_TD_End ();
/* Link to show this result */
@ -901,7 +900,7 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther,
Frm_EndForm ();
}
else
Ico_PutIconOff ("eye-slash.svg",Txt_Hidden_results);
Ico_PutIconNotVisible ();
HTM_TD_End ();
HTM_TR_End ();
@ -965,8 +964,9 @@ static void McR_ShowMchResultsSummaryRow (unsigned NumResults,
/***** Write average score per question *****/
HTM_TD_Begin ("class=\"DAT_N_LINE_TOP RM COLOR%u\"",Gbl.RowEvenOdd);
HTM_Double2Decimals (NumTotalQsts ? TotalScoreOfAllResults / (double) NumTotalQsts :
0.0);
HTM_Double2Decimals (NumTotalQsts ? TotalScoreOfAllResults /
(double) NumTotalQsts :
0.0);
HTM_TD_End ();
/***** Write total grade *****/
@ -1156,7 +1156,7 @@ void McR_ShowOneMchResult (void)
if (ICanViewScore)
HTM_Double2Decimals (TotalScore);
else
HTM_Txt ("?"); // No feedback
Ico_PutIconNotVisible ();
HTM_TD_End ();
HTM_TR_End ();
@ -1172,7 +1172,7 @@ void McR_ShowOneMchResult (void)
if (ICanViewScore)
Tst_ComputeAndShowGrade (NumQsts,TotalScore,Game.MaxGrade);
else
HTM_Txt ("?"); // Not visible
Ico_PutIconNotVisible ();
HTM_TD_End ();
HTM_TR_End ();

View File

@ -574,8 +574,8 @@ static void Prj_ShowFormToFilterByHidden (void)
Prj_HiddenVisibl_t HidVis;
static const char *HiddenVisiblIcon[Prj_NUM_HIDDEN_VISIBL] =
{
[Prj_HIDDEN] = "eye-slash.svg",
[Prj_VISIBL] = "eye.svg",
[Prj_HIDDEN] = "eye-slash-red.svg",
[Prj_VISIBL] = "eye-green.svg",
};
Set_StartOneSettingSelector ();

View File

@ -1025,7 +1025,6 @@ void Tst_WriteQstAndAnsTest (Tst_ActionToDoWithQuestions_t ActionToDoWithQuestio
void Tst_WriteQstStem (const char *Stem,const char *ClassStem,bool Visible)
{
extern const char *Txt_Question_not_visible;
unsigned long StemLength;
char *StemRigorousHTML;
@ -1051,7 +1050,7 @@ void Tst_WriteQstStem (const char *Stem,const char *ClassStem,bool Visible)
free (StemRigorousHTML);
}
else
HTM_Txt (Txt_Question_not_visible);
Ico_PutIconNotVisible ();
/***** DIV end *****/
HTM_DIV_End ();
@ -1674,8 +1673,8 @@ static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,
{
TagHidden = (row[2][0] == 'Y');
HTM_TD_Begin ("class=\"LM\"");
Ico_PutIconOff (TagHidden ? "eye-slash.svg" :
"eye.svg",
Ico_PutIconOff (TagHidden ? "eye-slash-red.svg" :
"eye-green.svg",
TagHidden ? Txt_Tag_not_allowed :
Txt_Tag_allowed);
HTM_TD_End ();
@ -1791,7 +1790,7 @@ static void Tst_PutIconEnable (long TagCod,const char *TagTxt)
HTM_TD_Begin ("class=\"BM\"");
Frm_StartForm (ActEnableTag);
Par_PutHiddenParamLong (NULL,"TagCod",TagCod);
Ico_PutIconLink ("eye-slash.svg",
Ico_PutIconLink ("eye-slash-red.svg",
Str_BuildStringStr (Txt_Tag_X_not_allowed_Click_to_allow_it,
TagTxt));
Str_FreeString ();
@ -1810,7 +1809,7 @@ static void Tst_PutIconDisable (long TagCod,const char *TagTxt)
HTM_TD_Begin ("class=\"BM\"");
Frm_StartForm (ActDisableTag);
Par_PutHiddenParamLong (NULL,"TagCod",TagCod);
Ico_PutIconLink ("eye.svg",
Ico_PutIconLink ("eye-green.svg",
Str_BuildStringStr (Txt_Tag_X_allowed_Click_to_disable_it,
TagTxt));
Str_FreeString ();
@ -3546,7 +3545,7 @@ static void Tst_WriteTFAnsAssessTest (struct UsrData *UsrDat,
TsV_IsVisibleCorrectAns (Visibility))
Tst_WriteAnsTF (row[1][0]);
else
HTM_Txt ("?");
Ico_PutIconNotVisible ();
HTM_TD_End ();
HTM_TR_End ();
@ -3702,7 +3701,6 @@ static void Tst_WriteChoiceAnsAssessTest (struct UsrData *UsrDat,
{
extern const char *Txt_TST_Answer_given_by_the_user;
extern const char *Txt_TST_Answer_given_by_the_teachers;
extern const char *Txt_Question_not_visible;
unsigned NumOpt;
unsigned Indexes[Tst_MAX_OPTIONS_PER_QUESTION]; // Indexes of all answers of this question
bool AnswersUsr[Tst_MAX_OPTIONS_PER_QUESTION];
@ -3785,7 +3783,7 @@ static void Tst_WriteChoiceAnsAssessTest (struct UsrData *UsrDat,
else
{
HTM_TD_Begin ("class=\"ANS_0 CT\"");
HTM_Txt ("?");
Ico_PutIconNotVisible ();
HTM_TD_End ();
}
@ -3806,7 +3804,7 @@ static void Tst_WriteChoiceAnsAssessTest (struct UsrData *UsrDat,
"TEST_MED_SHOW");
}
else
HTM_Txt (Txt_Question_not_visible);
Ico_PutIconNotVisible ();
HTM_DIV_End ();
if (TsV_IsVisibleCorrectAns (Visibility))
@ -4320,7 +4318,7 @@ static void Tst_WriteTextAnsAssessTest (struct UsrData *UsrDat,
else
{
HTM_TD_Begin ("class=\"ANS_0 CT\"");
HTM_Txt ("?");
Ico_PutIconNotVisible ();
HTM_TD_End ();
}
HTM_TR_End ();
@ -4447,7 +4445,7 @@ static void Tst_WriteIntAnsAssessTest (struct UsrData *UsrDat,
TsV_IsVisibleCorrectAns (Visibility))
HTM_Long (IntAnswerCorr);
else
HTM_Txt ("?");
Ico_PutIconNotVisible ();
HTM_TD_End ();
HTM_TR_End ();
@ -4593,7 +4591,7 @@ static void Tst_WriteFloatAnsAssessTest (struct UsrData *UsrDat,
HTM_Txt ("]");
}
else
HTM_Txt ("?");
Ico_PutIconNotVisible ();
HTM_TD_End ();
HTM_TR_End ();

View File

@ -740,7 +740,7 @@ void TsR_ShowOneTstResult (void)
if (ICanViewScore)
HTM_Double2Decimals (TotalScore);
else
HTM_Txt ("?"); // No feedback
Ico_PutIconNotVisible ();
HTM_TD_End ();
/* Grade */
@ -754,7 +754,7 @@ void TsR_ShowOneTstResult (void)
if (ICanViewScore)
Tst_ComputeAndShowGrade (Gbl.Test.NumQsts,TotalScore,TsR_SCORE_MAX);
else
HTM_Txt ("?"); // No feedback
Ico_PutIconNotVisible ();
HTM_TD_End ();
HTM_TR_End ();

View File

@ -59,7 +59,7 @@ extern struct Globals Gbl;
/************ Put checkboxes in form to select result visibility *************/
/*****************************************************************************/
void TsV_ShowVisibility (unsigned SelectedVisibility,const char *Class)
void TsV_ShowVisibility (unsigned SelectedVisibility)
{
extern const char *Txt_Visible;
extern const char *Txt_Hidden;
@ -71,10 +71,11 @@ void TsV_ShowVisibility (unsigned SelectedVisibility,const char *Class)
Visibility <= (TsV_Visibility_t) (TsV_NUM_ITEMS_VISIBILITY - 1);
Visibility++)
{
HTM_LABEL_Begin ("class=\"%s\"",Class);
ItemVisible = (SelectedVisibility & (1 << Visibility)) != 0;
Ico_PutIconOff (ItemVisible ? "eye.svg" :
"eye-slash.svg",
HTM_LABEL_Begin ("class=\"%s\"",ItemVisible ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED");
Ico_PutIconOff (ItemVisible ? "eye-green.svg" :
"eye-slash-red.svg",
ItemVisible ? Txt_Visible :
Txt_Hidden);
HTM_Txt (Txt_TST_STR_VISIBILITY[Visibility]);

View File

@ -54,7 +54,7 @@ typedef enum
/***************************** Public prototypes *****************************/
/*****************************************************************************/
void TsV_ShowVisibility (unsigned SelectedVisibility,const char *Class);
void TsV_ShowVisibility (unsigned SelectedVisibility);
void TsV_PutVisibilityCheckboxes (unsigned SelectedVisibility);
unsigned TsV_GetVisibilityFromForm (void);
unsigned TsV_GetVisibilityFromStr (const char *Str);

View File

@ -26574,6 +26574,27 @@ const char *Txt_Not_duplicated =
"N&atilde;o duplicado";
#endif
const char *Txt_Not_visible =
#if L==1 // ca
"No visible";
#elif L==2 // de
"Nicht sichtbar";
#elif L==3 // en
"Not visible";
#elif L==4 // es
"No visible";
#elif L==5 // fr
"Non visible";
#elif L==6 // gn
"No visible"; // Okoteve traducción
#elif L==7 // it
"Non visibile";
#elif L==8 // pl
"Niewidoczne";
#elif L==9 // pt
"N&atilde;o vis&iacute;vel";
#endif
const char *Txt_Nothing_has_been_pasted_because_the_clipboard_is_empty_ =
#if L==1 // ca
"No se pegado nada porque el portapapeles est&aacute; vac&iacute;o."
@ -31739,27 +31760,6 @@ const char *Txt_Question_modified =
"Quest&atilde;o modificada.";
#endif
const char *Txt_Question_not_visible =
#if L==1 // ca
"Pregunta no visible";
#elif L==2 // de
"Frage nicht sichtbar";
#elif L==3 // en
"Question not visible";
#elif L==4 // es
"Pregunta no visible";
#elif L==5 // fr
"Question non visible";
#elif L==6 // gn
"Pregunta no visible"; // Okoteve traducción
#elif L==7 // it
"Domanda non visibile";
#elif L==8 // pl
"Pytanie niewidoczne";
#elif L==9 // pt
"Pergunta n&atilde;o vis&iacute;vel";
#endif
const char *Txt_Question_removed =
#if L==1 // ca
"Pregunta eliminada.";
@ -33712,7 +33712,7 @@ const char *Txt_Reset_survey =
#elif L==9 // pt
"Reiniciar inqu&eacute;rito";
#endif
/*
const char *Txt_Result =
#if L==1 // ca
"Resultat";
@ -33733,7 +33733,7 @@ const char *Txt_Result =
#elif L==9 // pt
"Resultado";
#endif
*/
const char *Txt_Results =
#if L==1 // ca
"Resultats";