Version 14.72.1

This commit is contained in:
Antonio Cañas Vargas 2015-02-01 14:47:40 +01:00
parent 129c8cfdba
commit 29d6c229fa
6 changed files with 625 additions and 49 deletions

View File

@ -861,6 +861,10 @@ Users:
710. ActReqAccEnrCrs Confirm acceptation / refusion of enrollment in current course 710. ActReqAccEnrCrs Confirm acceptation / refusion of enrollment in current course
711. ActAccEnrCrs Accept enrollment in current course 711. ActAccEnrCrs Accept enrollment in current course
712. ActRemMeCrs Refuse enrollment in current course 712. ActRemMeCrs Refuse enrollment in current course
---. ActNewAdmIns Register an administrador in this institution
---. ActRemAdmIns Remove an administrador of this institution
---. ActNewAdmCtr Register an administrador in this centre
---. ActRemAdmCtr Remove an administrador of this centre
713. ActNewAdmDeg Register an administrador in this degree 713. ActNewAdmDeg Register an administrador in this degree
714. ActRemAdmDeg Remove an administrador of this degree 714. ActRemAdmDeg Remove an administrador of this degree
715. ActRcvFrmMdfUsrCrs Receive a form with IDs of users to be registeres/removed to/from current course 715. ActRcvFrmMdfUsrCrs Receive a form with IDs of users to be registeres/removed to/from current course
@ -2156,6 +2160,12 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActAccEnrCrs */{ 558,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL}, /* ActAccEnrCrs */{ 558,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL},
/* ActRemMeCrs */{ 559,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRemMeFromCrs ,NULL}, /* ActRemMeCrs */{ 559,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRemMeFromCrs ,NULL},
/* ActNewAdmIns */{1337,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToIns ,NULL},
/* ActRemAdmIns */{1338,-1,TabUsr,ActReqMdfSevUsr ,0x180,0x180,0x180,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmIns ,NULL},
/* ActNewAdmCtr */{1339,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToCtr ,NULL},
/* ActRemAdmCtr */{1340,-1,TabUsr,ActReqMdfSevUsr ,0x1C0,0x1C0,0x1C0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmCtr ,NULL},
/* ActNewAdmDeg */{ 586,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToDeg ,NULL}, /* ActNewAdmDeg */{ 586,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToDeg ,NULL},
/* ActRemAdmDeg */{ 584,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmDeg ,NULL}, /* ActRemAdmDeg */{ 584,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdmDeg ,NULL},
@ -3838,6 +3848,10 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActReqDatAdmDocIns, // #1334 ActReqDatAdmDocIns, // #1334
ActChgDatAdmDocIns, // #1335 ActChgDatAdmDocIns, // #1335
ActDowAdmDocIns, // #1336 ActDowAdmDocIns, // #1336
ActNewAdmIns, // #1337
ActRemAdmIns, // #1338
ActNewAdmCtr, // #1339
ActRemAdmCtr, // #1340
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -69,9 +69,9 @@ typedef enum
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_NUM_ACTIONS (7+52+15+70+53+48+204+184+94+168+28+75) #define Act_NUM_ACTIONS (7+52+15+70+53+48+204+184+98+168+28+75)
#define Act_MAX_ACTION_COD 1336 #define Act_MAX_ACTION_COD 1340
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
@ -893,23 +893,27 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActAccEnrCrs (ActChgNumRowFooGrp+79) #define ActAccEnrCrs (ActChgNumRowFooGrp+79)
#define ActRemMeCrs (ActChgNumRowFooGrp+80) #define ActRemMeCrs (ActChgNumRowFooGrp+80)
#define ActNewAdmDeg (ActChgNumRowFooGrp+81) #define ActNewAdmIns (ActChgNumRowFooGrp+81)
#define ActRemAdmDeg (ActChgNumRowFooGrp+82) #define ActRemAdmIns (ActChgNumRowFooGrp+82)
#define ActNewAdmCtr (ActChgNumRowFooGrp+83)
#define ActRemAdmCtr (ActChgNumRowFooGrp+84)
#define ActNewAdmDeg (ActChgNumRowFooGrp+85)
#define ActRemAdmDeg (ActChgNumRowFooGrp+86)
#define ActRcvFrmMdfUsrCrs (ActChgNumRowFooGrp+83) #define ActRcvFrmMdfUsrCrs (ActChgNumRowFooGrp+87)
#define ActFrmIDsOthUsr (ActChgNumRowFooGrp+84) #define ActFrmIDsOthUsr (ActChgNumRowFooGrp+88)
#define ActRemIDOth (ActChgNumRowFooGrp+85) #define ActRemIDOth (ActChgNumRowFooGrp+89)
#define ActNewIDOth (ActChgNumRowFooGrp+86) #define ActNewIDOth (ActChgNumRowFooGrp+90)
#define ActFrmPwdOthUsr (ActChgNumRowFooGrp+87) #define ActFrmPwdOthUsr (ActChgNumRowFooGrp+91)
#define ActChgPwdOthUsr (ActChgNumRowFooGrp+88) #define ActChgPwdOthUsr (ActChgNumRowFooGrp+92)
#define ActRemUsrCrs (ActChgNumRowFooGrp+89) #define ActRemUsrCrs (ActChgNumRowFooGrp+93)
#define ActRemUsrGbl (ActChgNumRowFooGrp+90) #define ActRemUsrGbl (ActChgNumRowFooGrp+94)
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp+91) #define ActReqRemAllStdCrs (ActChgNumRowFooGrp+95)
#define ActRemAllStdCrs (ActChgNumRowFooGrp+92) #define ActRemAllStdCrs (ActChgNumRowFooGrp+96)
#define ActReqRemOldUsr (ActChgNumRowFooGrp+93) #define ActReqRemOldUsr (ActChgNumRowFooGrp+97)
#define ActRemOldUsr (ActChgNumRowFooGrp+94) #define ActRemOldUsr (ActChgNumRowFooGrp+98)
/*****************************************************************************/ /*****************************************************************************/
/******************************* Messages tab ********************************/ /******************************* Messages tab ********************************/

View File

@ -39,11 +39,20 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.72 (2015/01/31)" #define Log_PLATFORM_VERSION "SWAD 14.72.1 (2015/02/01)"
// Number of lines (includes comments but not blank lines) has been got with the following command: // Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h | tail -1 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h | tail -1
/* /*
Version 14.72.1: Feb 01, 2015 New options to register and remove institution and centre admins. (177477 lines)
6 changes necessary in database:
UPDATE actions SET Txt='Añadir administrador de titulación' WHERE ActCod='586' AND Language='es';
UPDATE actions SET Txt='Eliminar administrador de titulación' WHERE ActCod='584' AND Language='es';
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1337','es','N','Añadir administrador de institución');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1338','es','N','Eliminar administrador de institución');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1339','es','N','Añadir administrador de centro');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1340','es','N','Eliminar administrador de centro');
Version 14.72: Jan 31, 2015 New options to register and remove institution and centre admins (not finished). (176934 lines) Version 14.72: Jan 31, 2015 New options to register and remove institution and centre admins (not finished). (176934 lines)
Version 14.71: Jan 29, 2015 New table admin to store system, institution, centre or degree admins. (176255 lines) Version 14.71: Jan 29, 2015 New table admin to store system, institution, centre or degree admins. (176255 lines)
4 changes necessary in database: 4 changes necessary in database:

View File

@ -107,6 +107,8 @@ static void Enr_AskIfRegRemUsr (struct ListUsrCods *ListUsrCods);
static void Enr_ShowFormToEditOtherUsr (void); static void Enr_ShowFormToEditOtherUsr (void);
static void Enr_RegisterAdminInCurrentIns (struct UsrData *UsrDat);
static void Enr_RegisterAdminInCurrentCtr (struct UsrData *UsrDat);
static void Enr_RegisterAdminInCurrentDeg (struct UsrData *UsrDat); static void Enr_RegisterAdminInCurrentDeg (struct UsrData *UsrDat);
static void Enr_ReqRemOrRemUsrFromCrs (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr); static void Enr_ReqRemOrRemUsrFromCrs (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr);
static void Enr_ReqRemAdmOfDeg (void); static void Enr_ReqRemAdmOfDeg (void);
@ -1018,7 +1020,7 @@ static bool Enr_PutActionsRegRemOneUsr (bool ItsMe)
sprintf (Gbl.Message, sprintf (Gbl.Message,
ItsMe ? Txt_Remove_me_as_an_administrator_of_the_institution_X : ItsMe ? Txt_Remove_me_as_an_administrator_of_the_institution_X :
Txt_Remove_user_as_an_administrator_of_the_institution_X, Txt_Remove_user_as_an_administrator_of_the_institution_X,
Gbl.CurrentDeg.Deg.ShortName); Gbl.CurrentIns.Ins.ShortName);
fprintf (Gbl.F.Out,"<li>" fprintf (Gbl.F.Out,"<li>"
"<input type=\"radio\" name=\"RegRemAction\" value=\"%u\"", "<input type=\"radio\" name=\"RegRemAction\" value=\"%u\"",
(unsigned) Enr_REMOVE_ONE_INSTITUTION_ADMIN); (unsigned) Enr_REMOVE_ONE_INSTITUTION_ADMIN);
@ -2843,6 +2845,66 @@ static void Enr_ShowFormToEditOtherUsr (void)
"</div>"); "</div>");
} }
/*****************************************************************************/
/*************** Add an administrator to current institution *****************/
/*****************************************************************************/
void Enr_AddAdmToIns (void)
{
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
if (Gbl.CurrentIns.Ins.InsCod > 0)
{
/***** Get plain user's ID of the user to add/modify *****/
if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ())
{
/* Check if it's allowed to register this administrator in institution */
if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER)
{
/***** Register administrator in current institution in database *****/
Enr_RegisterAdminInCurrentIns (&Gbl.Usrs.Other.UsrDat);
/***** Show user's record *****/
Rec_ShowCommonRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat);
}
else
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
}
else
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
}
}
/*****************************************************************************/
/******************* Add an administrator to current centre ******************/
/*****************************************************************************/
void Enr_AddAdmToCtr (void)
{
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
if (Gbl.CurrentCtr.Ctr.CtrCod > 0)
{
/***** Get plain user's ID of the user to add/modify *****/
if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ())
{
/* Check if it's allowed to register this administrator in centre */
if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER)
{
/***** Register administrator in current centre in database *****/
Enr_RegisterAdminInCurrentCtr (&Gbl.Usrs.Other.UsrDat);
/***** Show user's record *****/
Rec_ShowCommonRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat);
}
else
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
}
else
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
}
}
/*****************************************************************************/ /*****************************************************************************/
/******************* Add an administrator to current degree ******************/ /******************* Add an administrator to current degree ******************/
/*****************************************************************************/ /*****************************************************************************/
@ -2873,6 +2935,62 @@ void Enr_AddAdmToDeg (void)
} }
} }
/*****************************************************************************/
/**************** Register administrator in current institution **************/
/*****************************************************************************/
static void Enr_RegisterAdminInCurrentIns (struct UsrData *UsrDat)
{
extern const char *Txt_THE_USER_X_is_already_an_administrator_of_the_institution_Y;
extern const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_institution_Y;
char Query[512];
/***** Check if user was and administrator of current institution *****/
if (Usr_CheckIfUsrIsAdmOfIns (UsrDat->UsrCod,Gbl.CurrentIns.Ins.InsCod))
sprintf (Gbl.Message,Txt_THE_USER_X_is_already_an_administrator_of_the_institution_Y,
UsrDat->FullName,Gbl.CurrentIns.Ins.FullName);
else // User was not administrator of current institution
{
/***** Insert or replace administrator in current institution *****/
sprintf (Query,"REPLACE INTO admin (UsrCod,Scope,Cod)"
" VALUES ('%ld','Ins','%ld')",
UsrDat->UsrCod,Gbl.CurrentIns.Ins.InsCod);
DB_QueryREPLACE (Query,"can not create administrator of institution");
sprintf (Gbl.Message,Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_institution_Y,
UsrDat->FullName,Gbl.CurrentIns.Ins.FullName);
}
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
}
/*****************************************************************************/
/******************* Register administrator in current centre ****************/
/*****************************************************************************/
static void Enr_RegisterAdminInCurrentCtr (struct UsrData *UsrDat)
{
extern const char *Txt_THE_USER_X_is_already_an_administrator_of_the_centre_Y;
extern const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_centre_Y;
char Query[512];
/***** Check if user was and administrator of current centre *****/
if (Usr_CheckIfUsrIsAdmOfCtr (UsrDat->UsrCod,Gbl.CurrentCtr.Ctr.CtrCod))
sprintf (Gbl.Message,Txt_THE_USER_X_is_already_an_administrator_of_the_centre_Y,
UsrDat->FullName,Gbl.CurrentCtr.Ctr.FullName);
else // User was not administrator of current centre
{
/***** Insert or replace administrator in current centre *****/
sprintf (Query,"REPLACE INTO admin (UsrCod,Scope,Cod)"
" VALUES ('%ld','Ctr','%ld')",
UsrDat->UsrCod,Gbl.CurrentCtr.Ctr.CtrCod);
DB_QueryREPLACE (Query,"can not create administrator of centre");
sprintf (Gbl.Message,Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_centre_Y,
UsrDat->FullName,Gbl.CurrentCtr.Ctr.FullName);
}
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
}
/*****************************************************************************/ /*****************************************************************************/
/******************* Register administrator in current degree ****************/ /******************* Register administrator in current degree ****************/
/*****************************************************************************/ /*****************************************************************************/
@ -2890,8 +3008,8 @@ static void Enr_RegisterAdminInCurrentDeg (struct UsrData *UsrDat)
else // User was not administrator of current degree else // User was not administrator of current degree
{ {
/***** Insert or replace administrator in current degree *****/ /***** Insert or replace administrator in current degree *****/
sprintf (Query,"REPLACE INTO deg_admin (UsrCod,DegCod)" sprintf (Query,"REPLACE INTO admin (UsrCod,Scope,Cod)"
" VALUES ('%ld','%ld')", " VALUES ('%ld','Deg','%ld')",
UsrDat->UsrCod,Gbl.CurrentDeg.Deg.DegCod); UsrDat->UsrCod,Gbl.CurrentDeg.Deg.DegCod);
DB_QueryREPLACE (Query,"can not create administrator of degree"); DB_QueryREPLACE (Query,"can not create administrator of degree");
@ -3753,7 +3871,7 @@ static void Enr_EffectivelyRemAdmFromIns (struct UsrData *UsrDat)
extern const char *Txt_THE_USER_X_is_not_an_administrator_of_the_institution_Y; extern const char *Txt_THE_USER_X_is_not_an_administrator_of_the_institution_Y;
char Query[1024]; char Query[1024];
if (Usr_CheckIfUsrIsAdmOfDeg (UsrDat->UsrCod,Gbl.CurrentIns.Ins.InsCod)) // User is administrator of current institution if (Usr_CheckIfUsrIsAdmOfIns (UsrDat->UsrCod,Gbl.CurrentIns.Ins.InsCod)) // User is administrator of current institution
{ {
/***** Remove user from the table of admins *****/ /***** Remove user from the table of admins *****/
sprintf (Query,"DELETE FROM admin" sprintf (Query,"DELETE FROM admin"
@ -3783,7 +3901,7 @@ static void Enr_EffectivelyRemAdmFromCtr (struct UsrData *UsrDat)
extern const char *Txt_THE_USER_X_is_not_an_administrator_of_the_centre_Y; extern const char *Txt_THE_USER_X_is_not_an_administrator_of_the_centre_Y;
char Query[1024]; char Query[1024];
if (Usr_CheckIfUsrIsAdmOfDeg (UsrDat->UsrCod,Gbl.CurrentCtr.Ctr.CtrCod)) // User is administrator of current centre if (Usr_CheckIfUsrIsAdmOfCtr (UsrDat->UsrCod,Gbl.CurrentCtr.Ctr.CtrCod)) // User is administrator of current centre
{ {
/***** Remove user from the table of admins *****/ /***** Remove user from the table of admins *****/
sprintf (Query,"DELETE FROM admin" sprintf (Query,"DELETE FROM admin"

View File

@ -105,6 +105,8 @@ void Enr_ShowEnrollmentRequests (void);
void Enr_ReqRegRemUsr (void); void Enr_ReqRegRemUsr (void);
void Enr_AskIfRegRemAnotherUsr (void); void Enr_AskIfRegRemAnotherUsr (void);
void Enr_AddAdmToIns (void);
void Enr_AddAdmToCtr (void);
void Enr_AddAdmToDeg (void); void Enr_AddAdmToDeg (void);
void Enr_ReqRemMeFromCrs (void); void Enr_ReqRemMeFromCrs (void);

View File

@ -7980,6 +7980,27 @@ const char *Txt_Do_not_show_again =
"N&atilde;o mostrar novamente"; "N&atilde;o mostrar novamente";
#endif #endif
const char *Txt_Do_you_really_want_to_be_removed_as_an_administrator_of_the_centre_X = // Warning: it is very important to include %s in the following sentences
#if L==0
"&iquest;Realmente desea dejar de ser administrador/a del centro <strong>%s</strong>?"; // Necessita traduccio
#elif L==1
"Do you really want to be removed as an administrator of the centre <strong>%s</strong>?"; // Need Übersetzung
#elif L==2
"Do you really want to be removed as an administrator of the centre <strong>%s</strong>?";
#elif L==3
"&iquest;Realmente desea dejar de ser administrador/a del centro <strong>%s</strong>?";
#elif L==4
"Do you really want to be removed as an administrator of the centre <strong>%s</strong>?"; // Besoin de traduction
#elif L==5
"&iquest;Realmente desea dejar de ser administrador/a del centro <strong>%s</strong>?"; // Okoteve traducción
#elif L==6
"Vuole realmente essere rimosso come amministratore del centro <strong>%s</strong>?";
#elif L==7
"Czy naprawde chcesz byc usuniety jako administrator centrum <strong>%s</strong>?";
#elif L==8
"Do you really want to be removed as an administrator of the centre <strong>%s</strong>?"; // Necessita de tradução
#endif
const char *Txt_Do_you_really_want_to_be_removed_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences const char *Txt_Do_you_really_want_to_be_removed_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences
#if L==0 #if L==0
"&iquest;Realmente desea dejar de ser administrador/a de la titulaci&oacute;n <strong>%s</strong>?"; // Necessita traduccio "&iquest;Realmente desea dejar de ser administrador/a de la titulaci&oacute;n <strong>%s</strong>?"; // Necessita traduccio
@ -8001,6 +8022,27 @@ const char *Txt_Do_you_really_want_to_be_removed_as_an_administrator_of_the_degr
"Do you really want to be removed as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução "Do you really want to be removed as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução
#endif #endif
const char *Txt_Do_you_really_want_to_be_removed_as_an_administrator_of_the_institution_X = // Warning: it is very important to include %s in the following sentences
#if L==0
"&iquest;Realmente desea dejar de ser administrador/a de la instituci&oacute;n <strong>%s</strong>?"; // Necessita traduccio
#elif L==1
"Do you really want to be removed as an administrator of the institution <strong>%s</strong>?"; // Need Übersetzung
#elif L==2
"Do you really want to be removed as an administrator of the institution <strong>%s</strong>?";
#elif L==3
"&iquest;Realmente desea dejar de ser administrador/a de la instituci&oacute;n <strong>%s</strong>?";
#elif L==4
"Do you really want to be removed as an administrator of the institution <strong>%s</strong>?"; // Besoin de traduction
#elif L==5
"&iquest;Realmente desea dejar de ser administrador/a de la instituci&oacute;n <strong>%s</strong>?"; // Okoteve traducción
#elif L==6
"Vuole realmente essere rimosso come amministratore della istituzione <strong>%s</strong>?";
#elif L==7
"Czy naprawde chcesz byc usuniety jako administrator instytucji <strong>%s</strong>?";
#elif L==8
"Do you really want to be removed as an administrator of the institution <strong>%s</strong>?"; // Necessita de tradução
#endif
const char *Txt_Do_you_really_want_to_be_removed_from_the_course_X = // Warning: it is very important to include %s in the following sentences const char *Txt_Do_you_really_want_to_be_removed_from_the_course_X = // Warning: it is very important to include %s in the following sentences
#if L==0 #if L==0
"&iquest;Realmente desea ser eliminado de la asignatura <strong>%s</strong>" "&iquest;Realmente desea ser eliminado de la asignatura <strong>%s</strong>"
@ -8238,25 +8280,94 @@ const char *Txt_Do_you_really_want_to_delete_the_unread_messages_received_from_U
" from %s from %s related to <strong>%s</strong>?"; // Necessita de tradução " from %s from %s related to <strong>%s</strong>?"; // Necessita de tradução
#endif #endif
const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_centre_X = // Warning: it is very important to include %s in the following sentences
#if L==0
"&iquest;Realmente desea inscribir el siguiente usuario"
" como administrador del centro <strong>%s</strong>?"; // Necessita traduccio
#elif L==1
"Do you really want to register the following user"
" as an administrator of the centre <strong>%s</strong>?"; // Need Übersetzung
#elif L==2
"Do you really want to register the following user"
" as an administrator of the centre <strong>%s</strong>?";
#elif L==3
"&iquest;Realmente desea inscribir el siguiente usuario"
" como administrador del centro <strong>%s</strong>?";
#elif L==4
"Do you really want to register the following user"
" as an administrator of the centre <strong>%s</strong>?"; // Besoin de traduction
#elif L==5
"&iquest;Realmente desea inscribir el siguiente usuario"
" como administrador del centro <strong>%s</strong>?"; // Okoteve traducción
#elif L==6
"Vuoi realmente registrare il seguente utente"
" come amministratore del centro <strong>%s</strong>?";
#elif L==7
"Czy na pewno chcesz sie zarejestrowac nastepujace u&zdot;ytkownika"
" jako administratora centrum <strong>%s</strong>?";
#elif L==8
"Do you really want to register the following user"
" as an administrator of the centre <strong>%s</strong>?"; // Necessita de tradução
#endif
const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences
#if L==0 #if L==0
"&iquest;Realmente desea inscribir el siguiente usuario como administrador de la titulaci&oacute;n <strong>%s</strong>?"; // Necessita traduccio "&iquest;Realmente desea inscribir el siguiente usuario"
" como administrador de la titulaci&oacute;n <strong>%s</strong>?"; // Necessita traduccio
#elif L==1 #elif L==1
"Do you really want to register the following user as an administrator of the degree <strong>%s</strong>?"; // Need Übersetzung "Do you really want to register the following user"
" as an administrator of the degree <strong>%s</strong>?"; // Need Übersetzung
#elif L==2 #elif L==2
"Do you really want to register the following user as an administrator of the degree <strong>%s</strong>?"; "Do you really want to register the following user"
" as an administrator of the degree <strong>%s</strong>?";
#elif L==3 #elif L==3
"&iquest;Realmente desea inscribir el siguiente usuario como administrador de la titulaci&oacute;n <strong>%s</strong>?"; "&iquest;Realmente desea inscribir el siguiente usuario"
" como administrador de la titulaci&oacute;n <strong>%s</strong>?";
#elif L==4 #elif L==4
"Do you really want to register the following user as an administrator of the degree <strong>%s</strong>?"; // Besoin de traduction "Do you really want to register the following user"
" as an administrator of the degree <strong>%s</strong>?"; // Besoin de traduction
#elif L==5 #elif L==5
"&iquest;Realmente desea inscribir el siguiente usuario como administrador de la titulaci&oacute;n <strong>%s</strong>?"; // Okoteve traducción "&iquest;Realmente desea inscribir el siguiente usuario"
" como administrador de la titulaci&oacute;n <strong>%s</strong>?"; // Okoteve traducción
#elif L==6 #elif L==6
"Vuoi realmente registrare il seguente utente come amministratore della laurea <strong>%s</strong>?"; "Vuoi realmente registrare il seguente utente"
" come amministratore della laurea <strong>%s</strong>?";
#elif L==7 #elif L==7
"Czy na pewno chcesz sie zarejestrowac nastepujace u&zdot;ytkownika jako administratora stopnia <strong>%s</strong>?"; "Czy na pewno chcesz sie zarejestrowac nastepujace u&zdot;ytkownika"
" jako administratora stopnia <strong>%s</strong>?";
#elif L==8 #elif L==8
"Do you really want to register the following user as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução "Do you really want to register the following user"
" as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução
#endif
const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_institution_X = // Warning: it is very important to include %s in the following sentences
#if L==0
"&iquest;Realmente desea inscribir el siguiente usuario"
" como administrador de la instituci&oacute;n <strong>%s</strong>?"; // Necessita traduccio
#elif L==1
"Do you really want to register the following user"
" as an administrator of the institution <strong>%s</strong>?"; // Need Übersetzung
#elif L==2
"Do you really want to register the following user"
" as an administrator of the institution <strong>%s</strong>?";
#elif L==3
"&iquest;Realmente desea inscribir el siguiente usuario"
" como administrador de la instituci&oacute;n <strong>%s</strong>?";
#elif L==4
"Do you really want to register the following user"
" as an administrator of the institution <strong>%s</strong>?"; // Besoin de traduction
#elif L==5
"&iquest;Realmente desea inscribir el siguiente usuario"
" como administrador de la instituci&oacute;n <strong>%s</strong>?"; // Okoteve traducción
#elif L==6
"Vuoi realmente registrare il seguente utente"
" come amministratore della istituzione <strong>%s</strong>?";
#elif L==7
"Czy na pewno chcesz sie zarejestrowac nastepujace u&zdot;ytkownika"
" jako administratora instytucji <strong>%s</strong>?";
#elif L==8
"Do you really want to register the following user"
" as an administrator of the institution <strong>%s</strong>?"; // Necessita de tradução
#endif #endif
const char *Txt_Do_you_really_want_to_reject_the_enrollment_request_ = // Warning: it is very important to include three %s in the following sentences const char *Txt_Do_you_really_want_to_reject_the_enrollment_request_ = // Warning: it is very important to include three %s in the following sentences
@ -8492,44 +8603,122 @@ const char *Txt_Do_you_really_want_to_remove_FILE_OR_LINK_X = // Warning: it is
const char *Txt_Do_you_really_want_to_remove_the_folder_X = // Warning: it is very important to include %s in the following sentences const char *Txt_Do_you_really_want_to_remove_the_folder_X = // Warning: it is very important to include %s in the following sentences
#if L==0 #if L==0
"&iquest;Realmente desea eliminar la carpeta <strong>%s</strong> y todo su contenido?"; // Necessita traduccio "&iquest;Realmente desea eliminar"
" la carpeta <strong>%s</strong> y todo su contenido?"; // Necessita traduccio
#elif L==1 #elif L==1
"Wollen Sie wirklich das Verzeichnis <strong>%s</strong> und alle Inhalte entfernen?"; "Wollen Sie wirklich"
" das Verzeichnis <strong>%s</strong> und alle Inhalte entfernen?";
#elif L==2 #elif L==2
"Do you really want to remove the folder <strong>%s</strong> and all its contents?"; "Do you really want to remove"
" the folder <strong>%s</strong> and all its contents?";
#elif L==3 #elif L==3
"&iquest;Realmente desea eliminar la carpeta <strong>%s</strong> y todo su contenido?"; "&iquest;Realmente desea eliminar"
" la carpeta <strong>%s</strong> y todo su contenido?";
#elif L==4 #elif L==4
"Voulez-vous vraiment supprimer le r&eacute;pertoire <strong>%s</strong> et l'ensemble de son contenu?"; "Voulez-vous vraiment supprimer"
" le r&eacute;pertoire <strong>%s</strong> et l'ensemble de son contenu?";
#elif L==5 #elif L==5
"&iquest;Realmente desea eliminar la carpeta <strong>%s</strong> y todo su contenido?"; // Okoteve traducción "&iquest;Realmente desea eliminar"
" la carpeta <strong>%s</strong> y todo su contenido?"; // Okoteve traducción
#elif L==6 #elif L==6
"Vuoi realmente rimuovere la cartella <strong>%s</strong> e tutto il suo contenuto?"; "Vuoi realmente rimuovere"
" la cartella <strong>%s</strong> e tutto il suo contenuto?";
#elif L==7 #elif L==7
"Czy na pewno chcesz usunac folder <strong>%s</strong> i wszystkie jego skladniki?"; "Czy na pewno chcesz usunac"
" folder <strong>%s</strong> i wszystkie jego skladniki?";
#elif L==8 #elif L==8
"Voc&ecirc; realmente deseja remover o diret&oacute;rio <strong>%s</strong> e todo o seu conte&uacute;do?"; "Voc&ecirc; realmente deseja remover"
" o diret&oacute;rio <strong>%s</strong> e todo o seu conte&uacute;do?";
#endif
const char *Txt_Do_you_really_want_to_remove_the_following_user_as_an_administrator_of_the_centre_X = // Warning: it is very important to include %s in the following sentences
#if L==0
"&iquest;Realmente desea eliminar el siguiente usuario"
" como administrador del centro <strong>%s</strong>?"; // Necessita traduccio
#elif L==1
"Do you really want to remove the following user"
" as an administrator of the centre <strong>%s</strong>?"; // Need Übersetzung
#elif L==2
"Do you really want to remove the following user"
" as an administrator of the centre <strong>%s</strong>?";
#elif L==3
"&iquest;Realmente desea eliminar el siguiente usuario"
" como administrador del centro <strong>%s</strong>?";
#elif L==4
"Do you really want to remove the following user"
" as an administrator of the centre <strong>%s</strong>?"; // Besoin de traduction
#elif L==5
"&iquest;Realmente desea eliminar el siguiente usuario"
" como administrador del centro <strong>%s</strong>?"; // Okoteve traducción
#elif L==6
"Vuoi realmente rimuovere il seguente utente"
" come amministratore del centro <strong>%s</strong>?";
#elif L==7
"Czy na pewno chcesz usunac nastepujace u&zdot;ytkownika"
" jako administratora centrum <strong>%s</strong>?";
#elif L==8
"Do you really want to remove the following user"
" as an administrator of the centre <strong>%s</strong>?"; // Necessita de tradução
#endif #endif
const char *Txt_Do_you_really_want_to_remove_the_following_user_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences const char *Txt_Do_you_really_want_to_remove_the_following_user_as_an_administrator_of_the_degree_X = // Warning: it is very important to include %s in the following sentences
#if L==0 #if L==0
"&iquest;Realmente desea eliminar el siguiente usuario como administrador de la titulaci&oacute;n <strong>%s</strong>?"; // Necessita traduccio "&iquest;Realmente desea eliminar el siguiente usuario"
" como administrador de la titulaci&oacute;n <strong>%s</strong>?"; // Necessita traduccio
#elif L==1 #elif L==1
"Do you really want to remove the following user as an administrator of the degree <strong>%s</strong>?"; // Need Übersetzung "Do you really want to remove the following user"
" as an administrator of the degree <strong>%s</strong>?"; // Need Übersetzung
#elif L==2 #elif L==2
"Do you really want to remove the following user as an administrator of the degree <strong>%s</strong>?"; "Do you really want to remove the following user"
" as an administrator of the degree <strong>%s</strong>?";
#elif L==3 #elif L==3
"&iquest;Realmente desea eliminar el siguiente usuario como administrador de la titulaci&oacute;n <strong>%s</strong>?"; "&iquest;Realmente desea eliminar el siguiente usuario"
" como administrador de la titulaci&oacute;n <strong>%s</strong>?";
#elif L==4 #elif L==4
"Do you really want to remove the following user as an administrator of the degree <strong>%s</strong>?"; // Besoin de traduction "Do you really want to remove the following user"
" as an administrator of the degree <strong>%s</strong>?"; // Besoin de traduction
#elif L==5 #elif L==5
"&iquest;Realmente desea eliminar el siguiente usuario como administrador de la titulaci&oacute;n <strong>%s</strong>?"; // Okoteve traducción "&iquest;Realmente desea eliminar el siguiente usuario"
" como administrador de la titulaci&oacute;n <strong>%s</strong>?"; // Okoteve traducción
#elif L==6 #elif L==6
"Vuoi realmente rimuovere il seguente utente come amministratore della laurea <strong>%s</strong>?"; "Vuoi realmente rimuovere il seguente utente"
" come amministratore della laurea <strong>%s</strong>?";
#elif L==7 #elif L==7
"Czy na pewno chcesz usunac nastepujace u&zdot;ytkownika jako administratora stopnia <strong>%s</strong>?"; "Czy na pewno chcesz usunac nastepujace u&zdot;ytkownika"
" jako administratora stopnia <strong>%s</strong>?";
#elif L==8 #elif L==8
"Do you really want to remove the following user as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução "Do you really want to remove the following user"
" as an administrator of the degree <strong>%s</strong>?"; // Necessita de tradução
#endif
const char *Txt_Do_you_really_want_to_remove_the_following_user_as_an_administrator_of_the_institution_X = // Warning: it is very important to include %s in the following sentences
#if L==0
"&iquest;Realmente desea eliminar el siguiente usuario"
" como administrador de la instituci&oacute;n <strong>%s</strong>?"; // Necessita traduccio
#elif L==1
"Do you really want to remove the following user"
" as an administrator of the institution <strong>%s</strong>?"; // Need Übersetzung
#elif L==2
"Do you really want to remove the following user"
" as an administrator of the institution <strong>%s</strong>?";
#elif L==3
"&iquest;Realmente desea eliminar el siguiente usuario"
" como administrador de la instituci&oacute;n <strong>%s</strong>?";
#elif L==4
"Do you really want to remove the following user"
" as an administrator of the degree <strong>%s</strong>?"; // Besoin de traduction
#elif L==5
"&iquest;Realmente desea eliminar el siguiente usuario"
" como administrador de la instituci&oacute;n <strong>%s</strong>?"; // Okoteve traducción
#elif L==6
"Vuoi realmente rimuovere il seguente utente"
" come amministratore della istituzione <strong>%s</strong>?";
#elif L==7
"Czy na pewno chcesz usunac nastepujace u&zdot;ytkownika"
" jako administratora instytucji <strong>%s</strong>?";
#elif L==8
"Do you really want to remove the following user"
" as an administrator of the institution <strong>%s</strong>?"; // Necessita de tradução
#endif #endif
const char *Txt_Do_you_really_want_to_remove_the_following_user_from_the_course_X = // Warning: it is very important to include %s in the following sentences const char *Txt_Do_you_really_want_to_remove_the_following_user_from_the_course_X = // Warning: it is very important to include %s in the following sentences
@ -41686,6 +41875,36 @@ const char *Txt_THE_USER_X_already_exists_in_Y_but_is_not_yet_enrolled_in_the_co
" in the course <strong>%s</strong>."; // Necessita de tradução " in the course <strong>%s</strong>."; // Necessita de tradução
#endif #endif
const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_centre_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0
"<strong>%s</strong> ha sido a&ntilde;adido/a como administrador/a"
" del centro <strong>%s</strong>."; // Necessita traduccio
#elif L==1
"<strong>%s</strong> has been enrolled as administrator"
" of the centre <strong>%s</strong>."; // Übersetzung notwendig
#elif L==2
"<strong>%s</strong> has been enrolled as administrator"
" of the centre <strong>%s</strong>.";
#elif L==3
"<strong>%s</strong> ha sido a&ntilde;adido/a como administrador/a"
" del centro <strong>%s</strong>.";
#elif L==4
"<strong>%s</strong> has been enrolled as administrator"
" of the centre <strong>%s</strong>."; // Besoin de traduction
#elif L==5
"<strong>%s</strong> ha sido a&ntilde;adido/a como administrador/a"
" del centro <strong>%s</strong>."; // Okoteve traducción
#elif L==6
"<strong>%s</strong> &egrave; stato registrato come amministratore"
" del centro <strong>%s</strong>.";
#elif L==7
"<strong>%s</strong> has been enrolled as administrator"
" of the centre <strong>%s</strong>."; // Potrzebujesz tlumaczenie
#elif L==8
"<strong>%s</strong> has been enrolled as administrator"
" of the centre <strong>%s</strong>."; // Necessita de tradução
#endif
const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0 #if L==0
"<strong>%s</strong> ha sido a&ntilde;adido/a como administrador/a" "<strong>%s</strong> ha sido a&ntilde;adido/a como administrador/a"
@ -41716,6 +41935,36 @@ const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_degree_Y =
" of the degree <strong>%s</strong>."; // Necessita de tradução " of the degree <strong>%s</strong>."; // Necessita de tradução
#endif #endif
const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_institution_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0
"<strong>%s</strong> ha sido a&ntilde;adido/a como administrador/a"
" de la instituci&oacute;n <strong>%s</strong>."; // Necessita traduccio
#elif L==1
"<strong>%s</strong> has been enrolled as administrator"
" of the institution <strong>%s</strong>."; // Übersetzung notwendig
#elif L==2
"<strong>%s</strong> has been enrolled as administrator"
" of the institution <strong>%s</strong>.";
#elif L==3
"<strong>%s</strong> ha sido a&ntilde;adido/a como administrador/a"
" de la instituci&oacute;n <strong>%s</strong>.";
#elif L==4
"<strong>%s</strong> has been enrolled as administrator"
" of the institution <strong>%s</strong>."; // Besoin de traduction
#elif L==5
"<strong>%s</strong> ha sido a&ntilde;adido/a como administrador/a"
" de la instituci&oacute;n <strong>%s</strong>."; // Okoteve traducción
#elif L==6
"<strong>%s</strong> &egrave; stato registrato come amministratore"
" della istituzione <strong>%s</strong>.";
#elif L==7
"<strong>%s</strong> has been enrolled as administrator"
" of the institution <strong>%s</strong>."; // Potrzebujesz tlumaczenie
#elif L==8
"<strong>%s</strong> has been enrolled as administrator"
" of the institution <strong>%s</strong>."; // Necessita de tradução
#endif
const char *Txt_THE_USER_X_has_been_enrolled_in_the_course_Y = // Warning: it is very important to include two %s in the following sentences const char *Txt_THE_USER_X_has_been_enrolled_in_the_course_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0 #if L==0
"<strong>%s</strong> ha estat afegit/da" "<strong>%s</strong> ha estat afegit/da"
@ -41950,6 +42199,36 @@ const char *Txt_THE_USER_X_has_been_removed_from_the_course_Y = // Warning: it i
" from the course <strong>%s</strong>."; // Necessita de tradução " from the course <strong>%s</strong>."; // Necessita de tradução
#endif #endif
const char *Txt_THE_USER_X_has_been_removed_as_administrator_of_the_centre_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0
"<strong>%s</strong> ha sido eliminado/a como administrador"
" del centro <strong>%s</strong>."; // Necessita traduccio
#elif L==1
"<strong>%s</strong> has been removed as administrator"
" of the centre <strong>%s</strong>."; // Übersetzung notwendig
#elif L==2
"<strong>%s</strong> has been removed as administrator"
" of the centre <strong>%s</strong>.";
#elif L==3
"<strong>%s</strong> ha sido eliminado/a como administrador"
" del centro <strong>%s</strong>.";
#elif L==4
"<strong>%s</strong> has been removed as administrator"
" of the centre <strong>%s</strong>."; // Besoin de traduction
#elif L==5
"<strong>%s</strong> ha sido eliminado/a como administrador"
" del centro <strong>%s</strong>."; // Okoteve traducción
#elif L==6
"<strong>%s</strong> &egrave; stato rimosso come amministratore"
" del centro <strong>%s</strong>.";
#elif L==7
"<strong>%s</strong> has been removed as administrator"
" of the centre <strong>%s</strong>."; // Potrzebujesz tlumaczenie
#elif L==8
"<strong>%s</strong> has been removed as administrator"
" of the centre <strong>%s</strong>."; // Necessita de tradução
#endif
const char *Txt_THE_USER_X_has_been_removed_as_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences const char *Txt_THE_USER_X_has_been_removed_as_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0 #if L==0
"<strong>%s</strong> ha sido eliminado/a como administrador" "<strong>%s</strong> ha sido eliminado/a como administrador"
@ -41980,6 +42259,36 @@ const char *Txt_THE_USER_X_has_been_removed_as_administrator_of_the_degree_Y = /
" of the degree <strong>%s</strong>."; // Necessita de tradução " of the degree <strong>%s</strong>."; // Necessita de tradução
#endif #endif
const char *Txt_THE_USER_X_has_been_removed_as_administrator_of_the_institution_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0
"<strong>%s</strong> ha sido eliminado/a como administrador"
" de la instituci&oacute;n <strong>%s</strong>."; // Necessita traduccio
#elif L==1
"<strong>%s</strong> has been removed as administrator"
" of the institution <strong>%s</strong>."; // Übersetzung notwendig
#elif L==2
"<strong>%s</strong> has been removed as administrator"
" of the institution <strong>%s</strong>.";
#elif L==3
"<strong>%s</strong> ha sido eliminado/a como administrador"
" de la instituci&oacute;n <strong>%s</strong>.";
#elif L==4
"<strong>%s</strong> has been removed as administrator"
" of the institution <strong>%s</strong>."; // Besoin de traduction
#elif L==5
"<strong>%s</strong> ha sido eliminado/a como administrador"
" de la instituci&oacute;n <strong>%s</strong>."; // Okoteve traducción
#elif L==6
"<strong>%s</strong> &egrave; stato rimosso come amministratore"
" della istituzione <strong>%s</strong>.";
#elif L==7
"<strong>%s</strong> has been removed as administrator"
" of the institution <strong>%s</strong>."; // Potrzebujesz tlumaczenie
#elif L==8
"<strong>%s</strong> has been removed as administrator"
" of the institution <strong>%s</strong>."; // Necessita de tradução
#endif
const char *Txt_THE_USER_X_has_been_removed_from_the_group_of_type_Y_to_which_it_belonged = // Warning: it is very important to include two %s in the following sentences const char *Txt_THE_USER_X_has_been_removed_from_the_group_of_type_Y_to_which_it_belonged = // Warning: it is very important to include two %s in the following sentences
#if L==0 #if L==0
"<strong>%s</strong> ha sido eliminado/a" "<strong>%s</strong> ha sido eliminado/a"
@ -42040,6 +42349,36 @@ const char *Txt_THE_USER_X_has_not_been_removed_from_any_group = // Warning: it
" from any group."; // Necessita de tradução " from any group."; // Necessita de tradução
#endif #endif
const char *Txt_THE_USER_X_is_already_an_administrator_of_the_centre_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0
"<strong>%s</strong> ya es administrador/a"
" del centro <strong>%s</strong>."; // Necessita traduccio
#elif L==1
"<strong>%s</strong> is already an administrator"
" of the centre <strong>%s</strong>."; // Übersetzung notwendig
#elif L==2
"<strong>%s</strong> is already an administrator"
" of the centre <strong>%s</strong>.";
#elif L==3
"<strong>%s</strong> ya es administrador/a"
" de la titulaci&oacute;n <strong>%s</strong>.";
#elif L==4
"<strong>%s</strong> is already an administrator"
" of the centre <strong>%s</strong>."; // Besoin de traduction
#elif L==5
"<strong>%s</strong> ya es administrador/a"
" del centro <strong>%s</strong>."; // Okoteve traducción
#elif L==6
"<strong>%s</strong> &egrave; gi&agrave; un amministratore"
" del centro <strong>%s</strong>.";
#elif L==7
"<strong>%s</strong> is already an administrator"
" of the centre <strong>%s</strong>."; // Potrzebujesz tlumaczenie
#elif L==8
"<strong>%s</strong> is already an administrator"
" of the centre <strong>%s</strong>."; // Necessita de tradução
#endif
const char *Txt_THE_USER_X_is_already_an_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences const char *Txt_THE_USER_X_is_already_an_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0 #if L==0
"<strong>%s</strong> ya es administrador/a" "<strong>%s</strong> ya es administrador/a"
@ -42070,6 +42409,36 @@ const char *Txt_THE_USER_X_is_already_an_administrator_of_the_degree_Y = // Warn
" of the degree <strong>%s</strong>."; // Necessita de tradução " of the degree <strong>%s</strong>."; // Necessita de tradução
#endif #endif
const char *Txt_THE_USER_X_is_already_an_administrator_of_the_institution_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0
"<strong>%s</strong> ya es administrador/a"
" de la instituci&oacute;n <strong>%s</strong>."; // Necessita traduccio
#elif L==1
"<strong>%s</strong> is already an administrator"
" of the institution <strong>%s</strong>."; // Übersetzung notwendig
#elif L==2
"<strong>%s</strong> is already an administrator"
" of the institution <strong>%s</strong>.";
#elif L==3
"<strong>%s</strong> ya es administrador/a"
" de la instituci&oacute;n <strong>%s</strong>.";
#elif L==4
"<strong>%s</strong> is already an administrator"
" of the institution <strong>%s</strong>."; // Besoin de traduction
#elif L==5
"<strong>%s</strong> ya es administrador/a"
" de la instituci&oacute;n <strong>%s</strong>."; // Okoteve traducción
#elif L==6
"<strong>%s</strong> &egrave; gi&agrave; un amministratore"
" della istituzione <strong>%s</strong>.";
#elif L==7
"<strong>%s</strong> is already an administrator"
" of the institution <strong>%s</strong>."; // Potrzebujesz tlumaczenie
#elif L==8
"<strong>%s</strong> is already an administrator"
" of the institution <strong>%s</strong>."; // Necessita de tradução
#endif
const char *Txt_THE_USER_X_is_already_in_the_course_Y_but_has_not_yet_accepted_the_enrollment = // Warning: it is very important to include %s in the following sentences const char *Txt_THE_USER_X_is_already_in_the_course_Y_but_has_not_yet_accepted_the_enrollment = // Warning: it is very important to include %s in the following sentences
#if L==0 #if L==0
"<strong>%s</strong> ya est&aacute;" "<strong>%s</strong> ya est&aacute;"
@ -42160,6 +42529,36 @@ const char *Txt_The_user_is_new_does_not_exists_yet_in_X = // Warning: it is ver
"The user is new, does not exist yet in %s."; // Necessita de tradução "The user is new, does not exist yet in %s."; // Necessita de tradução
#endif #endif
const char *Txt_THE_USER_X_is_not_an_administrator_of_the_centre_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0
"<strong>%s</strong> no es administrador/a"
" del centro <strong>%s</strong>."; // Necessita traduccio
#elif L==1
"<strong>%s</strong> is not an administrator"
" of the centre <strong>%s</strong>."; // Übersetzung notwendig
#elif L==2
"<strong>%s</strong> is not an administrator"
" of the centre <strong>%s</strong>.";
#elif L==3
"<strong>%s</strong> no es administrador/a"
" del centro <strong>%s</strong>.";
#elif L==4
"<strong>%s</strong> is not an administrator"
" of the centre <strong>%s</strong>."; // Besoin de traduction
#elif L==5
"<strong>%s</strong> no es administrador/a"
" del centro <strong>%s</strong>."; // Okoteve traducción
#elif L==6
"<strong>%s</strong> non &egrave; un amministratore"
" del centro <strong>%s</strong>.";
#elif L==7
"<strong>%s</strong> is not an administrator"
" of the centre <strong>%s</strong>."; // Potrzebujesz tlumaczenie
#elif L==8
"<strong>%s</strong> is not an administrator"
" of the centre <strong>%s</strong>."; // Necessita de tradução
#endif
const char *Txt_THE_USER_X_is_not_an_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences const char *Txt_THE_USER_X_is_not_an_administrator_of_the_degree_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0 #if L==0
"<strong>%s</strong> no es administrador/a" "<strong>%s</strong> no es administrador/a"
@ -42190,6 +42589,36 @@ const char *Txt_THE_USER_X_is_not_an_administrator_of_the_degree_Y = // Warning:
" of the degree <strong>%s</strong>."; // Necessita de tradução " of the degree <strong>%s</strong>."; // Necessita de tradução
#endif #endif
const char *Txt_THE_USER_X_is_not_an_administrator_of_the_institution_Y = // Warning: it is very important to include two %s in the following sentences
#if L==0
"<strong>%s</strong> no es administrador/a"
" de la instituci&oacute;n <strong>%s</strong>."; // Necessita traduccio
#elif L==1
"<strong>%s</strong> is not an administrator"
" of the institution <strong>%s</strong>."; // Übersetzung notwendig
#elif L==2
"<strong>%s</strong> is not an administrator"
" of the institution <strong>%s</strong>.";
#elif L==3
"<strong>%s</strong> no es administrador/a"
" de la instituci&oacute;n <strong>%s</strong>.";
#elif L==4
"<strong>%s</strong> is not an administrator"
" of the institution <strong>%s</strong>."; // Besoin de traduction
#elif L==5
"<strong>%s</strong> no es administrador/a"
" de la instituci&oacute;n <strong>%s</strong>."; // Okoteve traducción
#elif L==6
"<strong>%s</strong> non &egrave; un amministratore"
" della istituzione <strong>%s</strong>.";
#elif L==7
"<strong>%s</strong> is not an administrator"
" of the institution <strong>%s</strong>."; // Potrzebujesz tlumaczenie
#elif L==8
"<strong>%s</strong> is not an administrator"
" of the institution <strong>%s</strong>."; // Necessita de tradução
#endif
const char *Txt_THE_USER_X_is_not_found_in_the_file_of_marks = // Warning: it is very important to include %s in the following sentences const char *Txt_THE_USER_X_is_not_found_in_the_file_of_marks = // Warning: it is very important to include %s in the following sentences
#if L==0 #if L==0
"No se ha encontrado a <strong>%s</strong> en el archivo de calificaciones."; // Necessita traduccio "No se ha encontrado a <strong>%s</strong> en el archivo de calificaciones."; // Necessita traduccio