Version 21.103.3: Jun 30, 2022 Code refactoring in icons.

This commit is contained in:
acanas 2022-06-30 00:44:52 +02:00
parent bfbb32b4e2
commit be696099ee
10 changed files with 69 additions and 255 deletions

View File

@ -606,10 +606,11 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia.
*/
#define Log_PLATFORM_VERSION "SWAD 21.103.2 (2022-06-30)"
#define Log_PLATFORM_VERSION "SWAD 21.103.3 (2022-06-30)"
#define CSS_FILE "swad21.100.css"
#define JS_FILE "swad21.100.js"
/*
Version 21.103.3: Jun 30, 2022 Code refactoring in icons. (328131 lines)
Version 21.103.2: Jun 30, 2022 Preparation for Turkish translation. (328306 lines)
Version 21.103.1: Jun 29, 2022 Code refactoring in icons. (328305 lines)
Version 21.103: Jun 29, 2022 Text in buttons got from text of actions.

View File

@ -771,7 +771,6 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
long ExaCod, // <= 0 ==> any
const char *ExamsSelectedCommas)
{
extern const char *Txt_Result;
MYSQL_RES *mysql_res;
struct UsrData *UsrDat;
unsigned NumResults;
@ -1049,14 +1048,17 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
case Usr_ME:
Frm_BeginForm (ActSeeOneExaResMe);
ExaSes_PutParamsEdit (Exams);
Ico_PutIconLink ("tasks.svg",Ico_BLACK,
Act_GetActionText (ActSeeOneExaResMe));
break;
case Usr_OTHER:
Frm_BeginForm (ActSeeOneExaResOth);
ExaSes_PutParamsEdit (Exams);
Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EnUsrCod);
Ico_PutIconLink ("tasks.svg",Ico_BLACK,
Act_GetActionText (ActSeeOneExaResOth));
break;
}
Ico_PutIconLink ("tasks.svg",Ico_BLACK,Txt_Result);
Frm_EndForm ();
}
else

View File

@ -316,8 +316,6 @@ void Fol_ShowFollowingAndFollowers (const struct UsrData *UsrDat,
extern const char *Txt_FOLLOWS_YOU;
extern const char *Txt_Following;
extern const char *Txt_Followers;
extern const char *Txt_Following_unfollow;
extern const char *Txt_Follow;
/***** Begin section *****/
HTM_SECTION_Begin (Fol_FOLLOW_SECTION_ID);
@ -362,8 +360,8 @@ void Fol_ShowFollowingAndFollowers (const struct UsrData *UsrDat,
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,
IFollowUsr ? "user-check.svg" :
"user-plus.svg",
IFollowUsr ? Txt_Following_unfollow :
Txt_Follow,
Act_GetActionText (IFollowUsr ? ActUnfUsr :
ActFolUsr),
"class=\"ICO_HIGHLIGHT ICO40x40\"");
Frm_EndForm ();
}
@ -740,12 +738,10 @@ static void Fol_PutInactiveIconToFollowUnfollow (void)
static void Fol_PutIconToFollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1])
{
extern const char *Txt_Follow;
/***** Form to unfollow *****/
Frm_BeginForm (ActFolUsr);
Usr_PutParamUsrCodEncrypted (EncryptedUsrCod);
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-plus.svg",Txt_Follow,
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-plus.svg",
Act_GetActionText (ActFolUsr),
"class=\"FOLLOW_USR_ICO ICO16x16 ICO_%s_%s ICO_HIGHLIGHT\"",
Ico_GetPreffix (Ico_BLACK),The_GetSuffix ());
Frm_EndForm ();
@ -757,13 +753,10 @@ static void Fol_PutIconToFollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_
static void Fol_PutIconToUnfollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1])
{
extern const char *Txt_Unfollow;
/* Form to follow */
Frm_BeginForm (ActUnfUsr);
Usr_PutParamUsrCodEncrypted (EncryptedUsrCod);
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg",
Txt_Unfollow,
Act_GetActionText (ActUnfUsr),
"class=\"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16\"");
Frm_EndForm ();
}

View File

@ -866,8 +866,6 @@ static void For_ShowAForumPost (struct For_Forums *Forums,
extern const char *Txt_FORUM_Post_X_allowed;
extern const char *Txt_FORUM_Post_banned;
extern const char *Txt_FORUM_Post_X_banned;
extern const char *Txt_FORUM_Post_X_allowed_Click_to_ban_it;
extern const char *Txt_FORUM_Post_X_banned_Click_to_unban_it;
extern const char *Txt_This_post_has_been_banned_probably_for_not_satisfy_the_rules_of_the_forums;
struct UsrData UsrDat;
time_t CreatTimeUTC; // Creation time of a post
@ -950,16 +948,12 @@ static void For_ShowAForumPost (struct For_Forums *Forums,
For_ActionsEnbPstFor[Forums->Forum.Type],
For_FORUM_POSTS_SECTION_ID);
For_PutParamsForum (Forums);
if (asprintf (&Title,Enabled ? Txt_FORUM_Post_X_allowed_Click_to_ban_it :
Txt_FORUM_Post_X_banned_Click_to_unban_it,
PstNum) < 0)
Err_NotEnoughMemoryExit ();
Ico_PutIconLink (Enabled ? "eye.svg" :
"eye-slash.svg",
Enabled ? Ico_GREEN :
Ico_RED,
Title);
free (Title);
Act_GetActionText (Enabled ? For_ActionsDisPstFor[Forums->Forum.Type] :
For_ActionsEnbPstFor[Forums->Forum.Type]));
Frm_EndForm ();
}
else
@ -1732,7 +1726,7 @@ static void For_WriteLinkToForum (const struct For_Forums *Forums,
Forum->Location,
Forums->Thread.ToMove,
-1L);
Ico_PutIconPaste ();
Ico_PutIconPaste (For_ActionsPasThrFor[Forum->Type]);
Frm_EndForm ();
}
}
@ -2249,7 +2243,7 @@ static void For_ListForumThrs (struct For_Forums *Forums,
Forums->Forum.Location,
Thr.ThrCod,
-1L);
Ico_PutIconCut ();
Ico_PutIconCut (For_ActionsCutThrFor[Forums->Forum.Type]);
Frm_EndForm ();
}

View File

@ -1404,10 +1404,6 @@ static void Grp_WriteHeadingGroupTypes (void)
static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
{
extern const char *Txt_Group_X_open_click_to_close_it;
extern const char *Txt_Group_X_closed_click_to_open_it;
extern const char *Txt_File_zones_of_the_group_X_enabled_click_to_disable_them;
extern const char *Txt_File_zones_of_the_group_X_disabled_click_to_enable_them;
extern const char *Txt_No_assigned_room;
extern const char *Txt_Another_room;
unsigned NumGrpTyp;
@ -1417,7 +1413,6 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
struct GroupType *GrpTyp;
struct GroupType *GrpTypAux;
struct Group *Grp;
char *Title;
Rol_Role_t Role;
char StrMaxStudents[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
@ -1453,16 +1448,12 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
ActOpeGrp,
Grp_GROUPS_SECTION_ID);
Grp_PutParamGrpCod (&Grp->GrpCod);
if (asprintf (&Title,Grp->Open ? Txt_Group_X_open_click_to_close_it :
Txt_Group_X_closed_click_to_open_it,
Grp->GrpName) < 0)
Err_NotEnoughMemoryExit ();
Ico_PutIconLink (Grp->Open ? "unlock.svg" :
"lock.svg",
Grp->Open ? Ico_GREEN :
Ico_RED,
Title);
free (Title);
Act_GetActionText (Grp->Open ? ActCloGrp :
ActOpeGrp));
Frm_EndForm ();
HTM_TD_End ();
@ -1472,16 +1463,12 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
ActEnaFilZonGrp,
Grp_GROUPS_SECTION_ID);
Grp_PutParamGrpCod (&Grp->GrpCod);
if (asprintf (&Title,Grp->FileZones ? Txt_File_zones_of_the_group_X_enabled_click_to_disable_them :
Txt_File_zones_of_the_group_X_disabled_click_to_enable_them,
Grp->GrpName) < 0)
Err_NotEnoughMemoryExit ();
Ico_PutIconLink (Grp->FileZones ? "folder-open.svg" :
"folder.svg",
Grp->FileZones ? Ico_GREEN :
Ico_RED,
Title);
free (Title);
Act_GetActionText (Grp->FileZones ? ActDisFilZonGrp :
ActEnaFilZonGrp));
Frm_EndForm ();
HTM_TD_End ();

View File

@ -454,22 +454,18 @@ void Ico_PutIconRemovalNotAllowed (void)
/*************************** Put an icon to cut ******************************/
/*****************************************************************************/
void Ico_PutIconCut (void)
void Ico_PutIconCut (Act_Action_t NextAction)
{
extern const char *Txt_Cut;
Ico_PutIconLink ("cut.svg",Ico_BLACK,Txt_Cut);
Ico_PutIconLink ("cut.svg",Ico_BLACK,Act_GetActionText (NextAction));
}
/*****************************************************************************/
/************************** Put an icon to paste *****************************/
/*****************************************************************************/
void Ico_PutIconPaste (void)
void Ico_PutIconPaste (Act_Action_t NextAction)
{
extern const char *Txt_Paste;
Ico_PutIconLink ("paste.svg",Ico_BLACK,Txt_Paste);
Ico_PutIconLink ("paste.svg",Ico_BLACK,Act_GetActionText (NextAction));
}
/*****************************************************************************/

View File

@ -107,8 +107,8 @@ void Ico_PutIcon (const char *Icon,Ico_Color_t Color,const char *Title,const cha
void Ico_PutIconRemovalNotAllowed (void);
void Ico_PutIconCut (void);
void Ico_PutIconPaste (void);
void Ico_PutIconCut (Act_Action_t NextAction);
void Ico_PutIconPaste (Act_Action_t NextAction);
void Ico_PutIconNotVisible (void);

View File

@ -716,7 +716,6 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
long GamCod, // <= 0 ==> any
const char *GamesSelectedCommas)
{
extern const char *Txt_Result;
MYSQL_RES *mysql_res;
struct UsrData *UsrDat;
struct MchRes_ICanView ICanView;
@ -906,14 +905,17 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
case Usr_ME:
Frm_BeginForm (ActSeeOneMchResMe);
Mch_PutParamsEdit (Games);
Ico_PutIconLink ("tasks.svg",Ico_BLACK,
Act_GetActionText (ActSeeOneMchResMe));
break;
case Usr_OTHER:
Frm_BeginForm (ActSeeOneMchResOth);
Mch_PutParamsEdit (Games);
Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EnUsrCod);
Ico_PutIconLink ("tasks.svg",Ico_BLACK,
Act_GetActionText (ActSeeOneMchResOth));
break;
}
Ico_PutIconLink ("tasks.svg",Ico_BLACK,Txt_Result);
Frm_EndForm ();
}
else

View File

@ -8086,29 +8086,6 @@ const char *Txt_Current_password =
"Mevcut &scedil;ifre";
#endif
const char *Txt_Cut = // First part of "Cut-Paste"
#if L==1 // ca
"Tallar";
#elif L==2 // de
"Ausschneiden";
#elif L==3 // en
"Cut";
#elif L==4 // es
"Cortar";
#elif L==5 // fr
"Couper";
#elif L==6 // gn
"Ikyt&itilde;";
#elif L==7 // it
"Taglia";
#elif L==8 // pl
"Wytnij";
#elif L==9 // pt
"Cortar";
#elif L==10 // tr
"Cut"; // Çeviri lazim!
#endif
const char *Txt_Data = // Project data
#if L==1 // ca
"Dades";
@ -13998,52 +13975,6 @@ const char *Txt_File_zones_of_the_group_X_are_now_enabled = // Warning: it is ve
"File zones of the group %s are now enabled."; // Çeviri lazim!
#endif
const char *Txt_File_zones_of_the_group_X_enabled_click_to_disable_them = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Zones d'arxius del grup %s habilitades, feu clic per desactivar-les";
#elif L==2 // de
"Dateizonen der Gruppe %s aktiviert, klicken Sie, um sie zu deaktivieren";
#elif L==3 // en
"File zones of the group %s enabled, click to disable them";
#elif L==4 // es
"Zonas de archivos del grupo %s habilitadas; pulse para inhabilitarlas";
#elif L==5 // fr
"Zones de fichiers du groupe %s activ&eacute;es, cliquez pour les d&eacute;sactiver";
#elif L==6 // gn
"Zonas de archivos del grupo %s habilitadas; pulse para inhabilitarlas"; // Okoteve traducción
#elif L==7 // it
"Aree file del gruppo %s abilitate, clicca per disabilitarle";
#elif L==8 // pl
"Plik strefy grupy %s aktywny, kliknij, aby je wylaczyc";
#elif L==9 // pt
"Zonas de arquivos do grupo %s ativadas, clique para desativ&aacute;-las";
#elif L==10 // tr
"File zones of the group %s enabled, click to disable them"; // Çeviri lazim!
#endif
const char *Txt_File_zones_of_the_group_X_disabled_click_to_enable_them = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Zones d'arxius del grup %s estan desactivades, feu clic per activar-les";
#elif L==2 // de
"Dateizonen der Gruppe %s deaktiviert, klicken Sie, um sie zu aktivieren";
#elif L==3 // en
"File zones of the group %s disabled, click to enable them";
#elif L==4 // es
"Zonas de archivos del grupo %s inhabilitadas; pulse para habilitarlas";
#elif L==5 // fr
"Zones de fichiers du groupe %s désactiv&eacute;es, cliquez pour les activer";
#elif L==6 // gn
"Zonas de archivos del grupo %s inhabilitadas; pulse para habilitarlas"; // Okoteve traducción
#elif L==7 // it
"Aree file del gruppo %s disabilitate, clicca per abilitarle";
#elif L==8 // pl
"Plik strefy grupy %s jes niedostepny, kliknij aby wlaczyc";
#elif L==9 // pt
"Zonas de arquivos do grupo %s desativadas, clique para ativ&aacute;-las";
#elif L==10 // tr
"File zones of the group %s disabled, click to enable them"; // Çeviri lazim!
#endif
const char *Txt_Files =
#if L==1 // ca
"Fitxers";
@ -15018,29 +14949,6 @@ const char *Txt_FORUM_Post_X_allowed = // Warning: it is very important to inclu
"Post %u allowed."; // Çeviri lazim!
#endif
const char *Txt_FORUM_Post_X_allowed_Click_to_ban_it = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Comentari %u perm&egrave;s. Premeu per censurar-lo.";
#elif L==2 // de
"Beitrag %u erlaubt. Klicken Sie, um es zu verbieten.";
#elif L==3 // en
"Post %u allowed. Click to ban it.";
#elif L==4 // es
"Comentario %u permitido. Pulse para censurarlo.";
#elif L==5 // fr
"Poste %u autoris&eacute;. Cliquez pour l'interdire.";
#elif L==6 // gn
"Comentario %u permitido. Pulse para censurarlo."; // Okoteve traducción
#elif L==7 // it
"Post %u autorizzato. Clicca per censurarlo.";
#elif L==8 // pl
"Post %u dozwolone. Kliknij, aby to zakazac.";
#elif L==9 // pt
"Post %u permitido. Clique para censur&aacute;-lo.";
#elif L==10 // tr
"Post %u allowed. Click to ban it."; // Çeviri lazim!
#endif
const char *Txt_FORUM_Post_and_thread_removed =
#if L==1 // ca
"Comentari i discussi&oacute; eliminats.";
@ -15110,29 +15018,6 @@ const char *Txt_FORUM_Post_X_banned = // Warning: it is very important to includ
"Post %u banned."; // Çeviri lazim!
#endif
const char *Txt_FORUM_Post_X_banned_Click_to_unban_it = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Comentari %u no perm&egrave;s. Premeu per permetre-ho.";
#elif L==2 // de
"Beitrag %u gesperrt. Klicken Sie hier, um die Sperre aufzuheben.";
#elif L==3 // en
"Post %u banned. Click to unban it.";
#elif L==4 // es
"Comentario %u no permitido. Pulse para permitirlo.";
#elif L==5 // fr
"Message %u interdit. Cliquez pour le d&eacute;bannir.";
#elif L==6 // gn
"Comentario %u no permitido. Pulse para permitirlo."; // Okoteve traducción
#elif L==7 // it
"Post %u censurato. Clicca per autorizzarlo.";
#elif L==8 // pl
"Post %u zakazany.Kliknij, aby to odbanowac.";
#elif L==9 // pt
"Post %u n&atilde;o permitido. Clique para permiti-lo.";
#elif L==10 // tr
"Post %u banned. Click to unban it."; // Çeviri lazim!
#endif
const char *Txt_FORUM_Post_sent =
#if L==1 // ca
"Comentari enviat.";
@ -16318,29 +16203,6 @@ const char *Txt_Group_X_closed = // Warning: it is very important to include %s
"Group %s closed"; // Çeviri lazim!
#endif
const char *Txt_Group_X_closed_click_to_open_it = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Grup %s tancat; feu clic per obrir-lo";
#elif L==2 // de
"Gruppe %s geschlossen, klicke zum &Ouml;ffnen";
#elif L==3 // en
"Group %s closed, click to open it";
#elif L==4 // es
"Grupo %s cerrado; pulse para abrirlo";
#elif L==5 // fr
"Groupe %s ferm&eacute;, cliquez pour l'ouvrir";
#elif L==6 // gn
"Grupo %s cerrado; pulse para abrirlo"; // Okoteve traducción
#elif L==7 // it
"Gruppo %s chiuso, clicca per aprirlo";
#elif L==8 // pl
"Grupa %s zamknieta, kliknij zeby otworzyc";
#elif L==9 // pt
"Grupo %s fechado, clique para abri-lo";
#elif L==10 // tr
"Group %s closed, click to open it"; // Çeviri lazim!
#endif
const char *Txt_Group_name =
#if L==1 // ca
"Nom del grup";
@ -16387,29 +16249,6 @@ const char *Txt_Group_X_open = // Warning: it is very important to include %s in
"Group %s open"; // Çeviri lazim!
#endif
const char *Txt_Group_X_open_click_to_close_it = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Grup %s obert, feu clic per tancar-lo";
#elif L==2 // de
"Gruppe %s &ouml;ffnen, klicken Sie, um es zu schlie&szlig;en";
#elif L==3 // en
"Group %s open, click to close it";
#elif L==4 // es
"Grupo %s abierto; pulse para cerrarlo";
#elif L==5 // fr
"Groupe %s ouvert, cliquez pour le fermer";
#elif L==6 // gn
"Grupo %s abierto; pulse para cerrarlo"; // Okoteve traducción
#elif L==7 // it
"Gruppo %s aperto, clicca per chiuderlo";
#elif L==8 // pl
"Grupa %s otwarta, kliknij zeby zamknac";
#elif L==9 // pt
"Grupo %s aberto, clique para fech&aacute;-lo";
#elif L==10 // tr
"Group %s open, click to close it"; // Çeviri lazim!
#endif
const char *Txt_Group_X_removed = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Grup <strong>%s</strong> eliminat.";

View File

@ -1350,48 +1350,48 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
,
[ActFolUsr] =
#if L==1 // ca
"Follow a user" // Necessita traducció
"Follow user" // Necessita traducció
#elif L==2 // de
"Follow a user" // Need Übersetzung
"Follow user" // Need Übersetzung
#elif L==3 // en
"Follow a user"
"Follow user"
#elif L==4 // es
"Seguir a un usuario"
"Seguir usuario"
#elif L==5 // fr
"Follow a user" // Besoin de traduction
"Follow user" // Besoin de traduction
#elif L==6 // gn
"Seguir a un usuario" // Okoteve traducción
"Seguir usuario" // Okoteve traducción
#elif L==7 // it
"Follow a user" // Bisogno di traduzione
"Follow user" // Bisogno di traduzione
#elif L==8 // pl
"Follow a user" // Potrzebujesz tlumaczenie
"Follow user" // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Follow a user" // Precisa de tradução
"Follow user" // Precisa de tradução
#elif L==10 // tr
"Follow a user" // Çeviri lazim!
"Follow user" // Çeviri lazim!
#endif
,
[ActUnfUsr] =
#if L==1 // ca
"Unfollow a user" // Necessita traducció
"Unfollow user" // Necessita traducció
#elif L==2 // de
"Unfollow a user" // Need Übersetzung
"Unfollow user" // Need Übersetzung
#elif L==3 // en
"Unfollow a user"
"Unfollow user"
#elif L==4 // es
"Dejar de seguir a un usuario"
"Dejar de seguir usuario"
#elif L==5 // fr
"Unfollow a user" // Besoin de traduction
"Unfollow user" // Besoin de traduction
#elif L==6 // gn
"Dejar de seguir a un usuario" // Okoteve traducción
"Dejar de seguir usuario" // Okoteve traducción
#elif L==7 // it
"Unfollow a user" // Bisogno di traduzione
"Unfollow user" // Bisogno di traduzione
#elif L==8 // pl
"Unfollow a user" // Potrzebujesz tlumaczenie
"Unfollow user" // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Unfollow a user" // Precisa de tradução
"Unfollow user" // Precisa de tradução
#elif L==10 // tr
"Unfollow a user" // Çeviri lazim!
"Unfollow user" // Çeviri lazim!
#endif
,
[ActSeeFlg] =
@ -24145,48 +24145,48 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
,
[ActOpeGrp] =
#if L==1 // ca
"Open a group" // Necessita traducció
"Open group" // Necessita traducció
#elif L==2 // de
"Open a group" // Need Übersetzung
"Open group" // Need Übersetzung
#elif L==3 // en
"Open a group"
"Open group"
#elif L==4 // es
"Abrir un grupo"
"Abrir grupo"
#elif L==5 // fr
"Open a group" // Besoin de traduction
"Open group" // Besoin de traduction
#elif L==6 // gn
"Abrir un grupo" // Okoteve traducción
"Abrir grupo" // Okoteve traducción
#elif L==7 // it
"Open a group" // Bisogno di traduzione
"Open group" // Bisogno di traduzione
#elif L==8 // pl
"Open a group" // Potrzebujesz tlumaczenie
"Open group" // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Open a group" // Precisa de tradução
"Open group" // Precisa de tradução
#elif L==10 // tr
"Open a group" // Çeviri lazim!
"Open group" // Çeviri lazim!
#endif
,
[ActCloGrp] =
#if L==1 // ca
"Close a group" // Necessita traducció
"Close group" // Necessita traducció
#elif L==2 // de
"Close a group" // Need Übersetzung
"Close group" // Need Übersetzung
#elif L==3 // en
"Close a group"
"Close group"
#elif L==4 // es
"Cerrar un grupo"
"Cerrar grupo"
#elif L==5 // fr
"Close a group" // Besoin de traduction
"Close group" // Besoin de traduction
#elif L==6 // gn
"Cerrar un grupo" // Okoteve traducción
"Cerrar grupo" // Okoteve traducción
#elif L==7 // it
"Close a group" // Bisogno di traduzione
"Close group" // Bisogno di traduzione
#elif L==8 // pl
"Close a group" // Potrzebujesz tlumaczenie
"Close group" // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Close a group" // Precisa de tradução
"Close group" // Precisa de tradução
#elif L==10 // tr
"Close a group" // Çeviri lazim!
"Close group" // Çeviri lazim!
#endif
,
[ActEnaFilZonGrp] =