From 4e431a9be9b9c29afeed03a27454bddf49266f81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Sun, 1 Feb 2015 17:43:34 +0100 Subject: [PATCH] Version 14.72.4 --- swad_changelog.h | 3 +- swad_enrollment.c | 309 +++++++++------------------------------------- swad_text.c | 267 ++++++--------------------------------- 3 files changed, 101 insertions(+), 478 deletions(-) diff --git a/swad_changelog.h b/swad_changelog.h index 178b0cbe8..dba26bf48 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -39,11 +39,12 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 14.72.3 (2015/02/01)" +#define Log_PLATFORM_VERSION "SWAD 14.72.4 (2015/02/01)" // 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 /* + Version 14.72.4: Feb 01, 2015 Refactoring of registering and removing admins. (176787 lines) Version 14.72.3: Feb 01, 2015 Refactoring of registering and removing admins. (177139 lines) Version 14.72.2: Feb 01, 2015 Refactoring of registering and removing admins. (177496 lines) Version 14.72.1: Feb 01, 2015 New options to register and remove institution and centre admins. (177477 lines) diff --git a/swad_enrollment.c b/swad_enrollment.c index dab977905..290e36ed8 100644 --- a/swad_enrollment.c +++ b/swad_enrollment.c @@ -107,18 +107,15 @@ static void Enr_AskIfRegRemUsr (struct ListUsrCods *ListUsrCods); 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_AddAdm (Sco_Scope_t Scope,long Cod,const char *InsCtrDegName); +static void Enr_RegisterAdmin (struct UsrData *UsrDat,Sco_Scope_t Scope, + long Cod,const char *InsCtrDegName); static void Enr_ReqRemOrRemUsrFromCrs (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr); static void Enr_ReqRemAdmOfDeg (void); static void Enr_ReqRemOrRemAdm (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr,Sco_Scope_t Scope, long Cod,const char *InsCtrDegName); -static void Enr_ReqAddAdmOfIns (void); -static void Enr_ReqAddAdmOfCtr (void); -static void Enr_ReqAddAdmOfDeg (void); - +static void Enr_ReqAddAdm (Sco_Scope_t Scope,long Cod,const char *InsCtrDegName); static void Enr_AskIfRemoveUsrFromCrs (struct UsrData *UsrDat,bool ItsMe); static void Enr_EffectivelyRemUsrFromCrs (struct UsrData *UsrDat,struct Course *Crs, Enr_RemoveUsrWorks_t RemoveUsrWorks,Cns_QuietOrVerbose_t QuietOrVerbose); @@ -2849,28 +2846,7 @@ static void Enr_ShowFormToEditOtherUsr (void) 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_); - } + Enr_AddAdm (Sco_SCOPE_INSTITUTION,Gbl.CurrentIns.Ins.InsCod,Gbl.CurrentIns.Ins.FullName); } /*****************************************************************************/ @@ -2879,28 +2855,7 @@ void Enr_AddAdmToIns (void) 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_); - } + Enr_AddAdm (Sco_SCOPE_CENTRE,Gbl.CurrentCtr.Ctr.CtrCod,Gbl.CurrentCtr.Ctr.FullName); } /*****************************************************************************/ @@ -2908,10 +2863,19 @@ void Enr_AddAdmToCtr (void) /*****************************************************************************/ void Enr_AddAdmToDeg (void) + { + Enr_AddAdm (Sco_SCOPE_DEGREE,Gbl.CurrentDeg.Deg.DegCod,Gbl.CurrentDeg.Deg.FullName); + } + +/*****************************************************************************/ +/******************* Add an administrator to current degree ******************/ +/*****************************************************************************/ + +static void Enr_AddAdm (Sco_Scope_t Scope,long Cod,const char *InsCtrDegName) { extern const char *Txt_User_not_found_or_you_do_not_have_permission_; - if (Gbl.CurrentDeg.Deg.DegCod > 0) + if (Cod > 0) { /***** Get plain user's ID of the user to add/modify *****/ if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ()) @@ -2920,7 +2884,8 @@ void Enr_AddAdmToDeg (void) if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER) { /***** Register administrator in current degree in database *****/ - Enr_RegisterAdminInCurrentDeg (&Gbl.Usrs.Other.UsrDat); + Enr_RegisterAdmin (&Gbl.Usrs.Other.UsrDat,Scope, + Cod,InsCtrDegName); /***** Show user's record *****/ Rec_ShowCommonRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat); @@ -2937,88 +2902,27 @@ void Enr_AddAdmToDeg (void) /**************** Register administrator in current institution **************/ /*****************************************************************************/ -static void Enr_RegisterAdminInCurrentIns (struct UsrData *UsrDat) +static void Enr_RegisterAdmin (struct UsrData *UsrDat,Sco_Scope_t Scope,long Cod,const char *InsCtrDegName) { - 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; + extern const char *Sco_ScopeAdminDB[Sco_NUM_SCOPES]; + extern const char *Txt_THE_USER_X_is_already_an_administrator_of_Y; + extern const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_Y; char Query[512]; - /***** Check if user was and administrator of current institution *****/ - if (Usr_CheckIfUsrIsAdm (UsrDat->UsrCod, - Sco_SCOPE_INSTITUTION, - 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 + /***** Check if user was and administrator of current institution/centre/degree *****/ + if (Usr_CheckIfUsrIsAdm (UsrDat->UsrCod,Scope,Cod)) + sprintf (Gbl.Message,Txt_THE_USER_X_is_already_an_administrator_of_Y, + UsrDat->FullName,InsCtrDegName); + else // User was not administrator of current institution/centre/degree { - /***** Insert or replace administrator in current institution *****/ + /***** Insert or replace administrator in current institution/centre/degree *****/ 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"); + " VALUES ('%ld','%s','%ld')", + UsrDat->UsrCod,Sco_ScopeAdminDB[Scope],Cod); + DB_QueryREPLACE (Query,"can not create administrator"); - 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_CheckIfUsrIsAdm (UsrDat->UsrCod, - Sco_SCOPE_CENTRE, - 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 ****************/ -/*****************************************************************************/ - -static void Enr_RegisterAdminInCurrentDeg (struct UsrData *UsrDat) - { - extern const char *Txt_THE_USER_X_is_already_an_administrator_of_the_degree_Y; - extern const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_degree_Y; - char Query[512]; - - /***** Check if user was and administrator of current degree *****/ - if (Usr_CheckIfUsrIsAdm (UsrDat->UsrCod, - Sco_SCOPE_DEGREE, - Gbl.CurrentDeg.Deg.DegCod)) - sprintf (Gbl.Message,Txt_THE_USER_X_is_already_an_administrator_of_the_degree_Y, - UsrDat->FullName,Gbl.CurrentDeg.Deg.FullName); - else // User was not administrator of current degree - { - /***** Insert or replace administrator in current degree *****/ - sprintf (Query,"REPLACE INTO admin (UsrCod,Scope,Cod)" - " VALUES ('%ld','Deg','%ld')", - UsrDat->UsrCod,Gbl.CurrentDeg.Deg.DegCod); - DB_QueryREPLACE (Query,"can not create administrator of degree"); - - sprintf (Gbl.Message,Txt_THE_USER_X_has_been_enrolled_as_administrator_of_the_degree_Y, - UsrDat->FullName,Gbl.CurrentDeg.Deg.FullName); + sprintf (Gbl.Message,Txt_THE_USER_X_has_been_enrolled_as_administrator_of_Y, + UsrDat->FullName,InsCtrDegName); } Lay_ShowAlert (Lay_SUCCESS,Gbl.Message); } @@ -3205,142 +3109,46 @@ static void Enr_ReqRemOrRemAdm (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr,Sco_Scope_t /**** Ask if really wanted to add an administrator to current institution ****/ /*****************************************************************************/ -static void Enr_ReqAddAdmOfIns (void) +static void Enr_ReqAddAdm (Sco_Scope_t Scope,long Cod,const char *InsCtrDegName) { - extern const char *Txt_THE_USER_X_is_already_an_administrator_of_the_institution_Y; - extern const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_institution_X; + extern const char *Txt_THE_USER_X_is_already_an_administrator_of_Y; + extern const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_X; extern const char *Txt_Register_user_IN_A_COURSE_OR_DEGREE; extern const char *Txt_User_not_found_or_you_do_not_have_permission_; + static const Act_Action_t Enr_ActNewAdm[Sco_NUM_SCOPES] = + { + ActUnk, // Sco_SCOPE_NONE + ActUnk, // Sco_SCOPE_PLATFORM, + ActUnk, // Sco_SCOPE_COUNTRY, + ActNewAdmIns, // Sco_SCOPE_INSTITUTION, + ActNewAdmCtr, // Sco_SCOPE_CENTRE, + ActNewAdmDeg, // Sco_SCOPE_DEGREE, + ActUnk, // Sco_SCOPE_COURSE, + }; - if (Gbl.CurrentIns.Ins.InsCod > 0) + if (Cod > 0) { /***** Get user's identificator of the user to register as admin *****/ if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ()) { - /* Check if it's allowed to register this administrator in institution */ + /* Check if it's allowed to register this administrator in institution/centre/degree */ if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER) { - if (Usr_CheckIfUsrIsAdm (Gbl.Usrs.Other.UsrDat.UsrCod, - Sco_SCOPE_INSTITUTION, - Gbl.CurrentIns.Ins.InsCod)) // User is yet an administrator of current institution + if (Usr_CheckIfUsrIsAdm (Gbl.Usrs.Other.UsrDat.UsrCod,Scope,Cod)) // User is yet an administrator of current institution/centre/degree { - sprintf (Gbl.Message,Txt_THE_USER_X_is_already_an_administrator_of_the_institution_Y, - Gbl.Usrs.Other.UsrDat.FullName,Gbl.CurrentIns.Ins.FullName); + sprintf (Gbl.Message,Txt_THE_USER_X_is_already_an_administrator_of_Y, + Gbl.Usrs.Other.UsrDat.FullName,InsCtrDegName); Lay_ShowAlert (Lay_INFO,Gbl.Message); Rec_ShowCommonRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat); } else { - sprintf (Gbl.Message,Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_institution_X, - Gbl.CurrentIns.Ins.FullName); + sprintf (Gbl.Message,Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_X, + InsCtrDegName); Lay_ShowAlert (Lay_INFO,Gbl.Message); Rec_ShowCommonRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat); - Act_FormStart (ActNewAdmIns); - Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod); - fprintf (Gbl.F.Out,"
" - "" - "
" - "", - Txt_Register_user_IN_A_COURSE_OR_DEGREE); - } - } - 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_); - } - } - -/*****************************************************************************/ -/****** Ask if really wanted to add an administrator to current centre *******/ -/*****************************************************************************/ - -static void Enr_ReqAddAdmOfCtr (void) - { - extern const char *Txt_THE_USER_X_is_already_an_administrator_of_the_centre_Y; - extern const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_centre_X; - extern const char *Txt_Register_user_IN_A_COURSE_OR_DEGREE; - extern const char *Txt_User_not_found_or_you_do_not_have_permission_; - - if (Gbl.CurrentCtr.Ctr.CtrCod > 0) - { - /***** Get user's identificator of the user to register as admin *****/ - if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ()) - { - /* Check if it's allowed to register this administrator in centre */ - if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER) - { - if (Usr_CheckIfUsrIsAdm (Gbl.Usrs.Other.UsrDat.UsrCod, - Sco_SCOPE_CENTRE, - Gbl.CurrentCtr.Ctr.CtrCod)) // User is yet an administrator of current centre - { - sprintf (Gbl.Message,Txt_THE_USER_X_is_already_an_administrator_of_the_centre_Y, - Gbl.Usrs.Other.UsrDat.FullName,Gbl.CurrentCtr.Ctr.FullName); - Lay_ShowAlert (Lay_INFO,Gbl.Message); - Rec_ShowCommonRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat); - } - else - { - sprintf (Gbl.Message,Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_centre_X, - Gbl.CurrentCtr.Ctr.FullName); - Lay_ShowAlert (Lay_INFO,Gbl.Message); - Rec_ShowCommonRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat); - - Act_FormStart (ActNewAdmCtr); - Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod); - fprintf (Gbl.F.Out,"
" - "" - "
" - "", - Txt_Register_user_IN_A_COURSE_OR_DEGREE); - } - } - 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_); - } - } - -/*****************************************************************************/ -/****** Ask if really wanted to add an administrator to current degree *******/ -/*****************************************************************************/ - -static void Enr_ReqAddAdmOfDeg (void) - { - extern const char *Txt_THE_USER_X_is_already_an_administrator_of_the_degree_Y; - extern const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_degree_X; - extern const char *Txt_Register_user_IN_A_COURSE_OR_DEGREE; - extern const char *Txt_User_not_found_or_you_do_not_have_permission_; - - if (Gbl.CurrentDeg.Deg.DegCod > 0) - { - /***** Get user's identificator of the user to register as admin *****/ - if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ()) - { - /* Check if it's allowed to register this administrator in degree */ - if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER) - { - if (Usr_CheckIfUsrIsAdm (Gbl.Usrs.Other.UsrDat.UsrCod, - Sco_SCOPE_DEGREE, - Gbl.CurrentDeg.Deg.DegCod)) // User is yet an administrator of current degree - { - sprintf (Gbl.Message,Txt_THE_USER_X_is_already_an_administrator_of_the_degree_Y, - Gbl.Usrs.Other.UsrDat.FullName,Gbl.CurrentDeg.Deg.FullName); - Lay_ShowAlert (Lay_INFO,Gbl.Message); - Rec_ShowCommonRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat); - } - else - { - sprintf (Gbl.Message,Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_the_degree_X, - Gbl.CurrentDeg.Deg.FullName); - Lay_ShowAlert (Lay_INFO,Gbl.Message); - Rec_ShowCommonRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat); - - Act_FormStart (ActNewAdmDeg); + Act_FormStart (Enr_ActNewAdm[Scope]); Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod); fprintf (Gbl.F.Out,"
" "" @@ -3502,19 +3310,22 @@ void Enr_ModifAndShowUsrCardAndRegInCrsAndGrps (void) break; case Enr_REGISTER_ONE_DEGREE_ADMIN: if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER) - Enr_ReqAddAdmOfDeg (); + Enr_ReqAddAdm (Sco_SCOPE_DEGREE,Gbl.CurrentDeg.Deg.DegCod, + Gbl.CurrentDeg.Deg.FullName); else Error = true; break; case Enr_REGISTER_ONE_CENTRE_ADMIN: if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER) - Enr_ReqAddAdmOfCtr (); + Enr_ReqAddAdm (Sco_SCOPE_CENTRE,Gbl.CurrentCtr.Ctr.CtrCod, + Gbl.CurrentCtr.Ctr.FullName); else Error = true; break; case Enr_REGISTER_ONE_INSTITUTION_ADMIN: if (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER) - Enr_ReqAddAdmOfIns (); + Enr_ReqAddAdm (Sco_SCOPE_INSTITUTION,Gbl.CurrentIns.Ins.InsCod, + Gbl.CurrentIns.Ins.FullName); else Error = true; break; diff --git a/swad_text.c b/swad_text.c index 97e0852c0..839537449 100644 --- a/swad_text.c +++ b/swad_text.c @@ -8247,94 +8247,34 @@ const char *Txt_Do_you_really_want_to_delete_the_unread_messages_received_from_U " from %s from %s related to %s?"; // Necessita de tradução #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 +const char *Txt_Do_you_really_want_to_register_the_following_user_as_an_administrator_of_X = // Warning: it is very important to include %s in the following sentences #if L==0 "¿Realmente desea inscribir el siguiente usuario" - " como administrador del centro %s?"; // Necessita traduccio + " como administrador de %s?"; // Necessita traduccio #elif L==1 "Do you really want to register the following user" - " as an administrator of the centre %s?"; // Need Übersetzung + " as an administrator of %s?"; // Need Übersetzung #elif L==2 "Do you really want to register the following user" - " as an administrator of the centre %s?"; + " as an administrator of %s?"; #elif L==3 "¿Realmente desea inscribir el siguiente usuario" - " como administrador del centro %s?"; + " como administrador de %s?"; #elif L==4 "Do you really want to register the following user" - " as an administrator of the centre %s?"; // Besoin de traduction + " as an administrator of %s?"; // Besoin de traduction #elif L==5 "¿Realmente desea inscribir el siguiente usuario" - " como administrador del centro %s?"; // Okoteve traducción + " como administrador de %s?"; // Okoteve traducción #elif L==6 "Vuoi realmente registrare il seguente utente" - " come amministratore del centro %s?"; + " come amministratore de %s?"; #elif L==7 "Czy na pewno chcesz sie zarejestrowac nastepujace użytkownika" - " jako administratora centrum %s?"; + " jako administratora %s?"; #elif L==8 "Do you really want to register the following user" - " as an administrator of the centre %s?"; // 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 -#if L==0 - "¿Realmente desea inscribir el siguiente usuario" - " como administrador de la titulación %s?"; // Necessita traduccio -#elif L==1 - "Do you really want to register the following user" - " as an administrator of the degree %s?"; // Need Übersetzung -#elif L==2 - "Do you really want to register the following user" - " as an administrator of the degree %s?"; -#elif L==3 - "¿Realmente desea inscribir el siguiente usuario" - " como administrador de la titulación %s?"; -#elif L==4 - "Do you really want to register the following user" - " as an administrator of the degree %s?"; // Besoin de traduction -#elif L==5 - "¿Realmente desea inscribir el siguiente usuario" - " como administrador de la titulación %s?"; // Okoteve traducción -#elif L==6 - "Vuoi realmente registrare il seguente utente" - " come amministratore della laurea %s?"; -#elif L==7 - "Czy na pewno chcesz sie zarejestrowac nastepujace użytkownika" - " jako administratora stopnia %s?"; -#elif L==8 - "Do you really want to register the following user" - " as an administrator of the degree %s?"; // 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 - "¿Realmente desea inscribir el siguiente usuario" - " como administrador de la institución %s?"; // Necessita traduccio -#elif L==1 - "Do you really want to register the following user" - " as an administrator of the institution %s?"; // Need Übersetzung -#elif L==2 - "Do you really want to register the following user" - " as an administrator of the institution %s?"; -#elif L==3 - "¿Realmente desea inscribir el siguiente usuario" - " como administrador de la institución %s?"; -#elif L==4 - "Do you really want to register the following user" - " as an administrator of the institution %s?"; // Besoin de traduction -#elif L==5 - "¿Realmente desea inscribir el siguiente usuario" - " como administrador de la institución %s?"; // Okoteve traducción -#elif L==6 - "Vuoi realmente registrare il seguente utente" - " come amministratore della istituzione %s?"; -#elif L==7 - "Czy na pewno chcesz sie zarejestrowac nastepujace użytkownika" - " jako administratora instytucji %s?"; -#elif L==8 - "Do you really want to register the following user" - " as an administrator of the institution %s?"; // Necessita de tradução + " as an administrator of %s?"; // Necessita de tradução #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 @@ -41842,94 +41782,34 @@ const char *Txt_THE_USER_X_already_exists_in_Y_but_is_not_yet_enrolled_in_the_co " in the course %s."; // Necessita de tradução #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 +const char *Txt_THE_USER_X_has_been_enrolled_as_administrator_of_Y = // Warning: it is very important to include two %s in the following sentences #if L==0 - "%s ha sido añadido/a como administrador/a" - " del centro %s."; // Necessita traduccio + "%s ha sido añadido/a" + " como administrador/a de %s."; // Necessita traduccio #elif L==1 - "%s has been enrolled as administrator" - " of the centre %s."; // Übersetzung notwendig + "%s has been enrolled" + " as administrator of %s."; // Übersetzung notwendig #elif L==2 - "%s has been enrolled as administrator" - " of the centre %s."; + "%s has been enrolled" + " as administrator of %s."; #elif L==3 - "%s ha sido añadido/a como administrador/a" - " del centro %s."; + "%s ha sido añadido/a" + " como administrador/a de %s."; #elif L==4 - "%s has been enrolled as administrator" - " of the centre %s."; // Besoin de traduction + "%s has been enrolled" + " as administrator of %s."; // Besoin de traduction #elif L==5 - "%s ha sido añadido/a como administrador/a" - " del centro %s."; // Okoteve traducción + "%s ha sido añadido/a" + " como administrador/a de %s."; // Okoteve traducción #elif L==6 - "%s è stato registrato come amministratore" - " del centro %s."; + "%s è stato registrato" + " come amministratore de %s."; #elif L==7 - "%s has been enrolled as administrator" - " of the centre %s."; // Potrzebujesz tlumaczenie + "%s has been enrolled" + " as administrator of %s."; // Potrzebujesz tlumaczenie #elif L==8 - "%s has been enrolled as administrator" - " of the centre %s."; // 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 -#if L==0 - "%s ha sido añadido/a como administrador/a" - " de la titulación %s."; // Necessita traduccio -#elif L==1 - "%s has been enrolled as administrator" - " of the degree %s."; // Übersetzung notwendig -#elif L==2 - "%s has been enrolled as administrator" - " of the degree %s."; -#elif L==3 - "%s ha sido añadido/a como administrador/a" - " de la titulación %s."; -#elif L==4 - "%s has been enrolled as administrator" - " of the degree %s."; // Besoin de traduction -#elif L==5 - "%s ha sido añadido/a como administrador/a" - " de la titulación %s."; // Okoteve traducción -#elif L==6 - "%s è stato registrato come amministratore" - " della laurea %s."; -#elif L==7 - "%s has been enrolled as administrator" - " of the degree %s."; // Potrzebujesz tlumaczenie -#elif L==8 - "%s has been enrolled as administrator" - " of the degree %s."; // Necessita de tradução -#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 - "%s ha sido añadido/a como administrador/a" - " de la institución %s."; // Necessita traduccio -#elif L==1 - "%s has been enrolled as administrator" - " of the institution %s."; // Übersetzung notwendig -#elif L==2 - "%s has been enrolled as administrator" - " of the institution %s."; -#elif L==3 - "%s ha sido añadido/a como administrador/a" - " de la institución %s."; -#elif L==4 - "%s has been enrolled as administrator" - " of the institution %s."; // Besoin de traduction -#elif L==5 - "%s ha sido añadido/a como administrador/a" - " de la institución %s."; // Okoteve traducción -#elif L==6 - "%s è stato registrato come amministratore" - " della istituzione %s."; -#elif L==7 - "%s has been enrolled as administrator" - " of the institution %s."; // Potrzebujesz tlumaczenie -#elif L==8 - "%s has been enrolled as administrator" - " of the institution %s."; // Necessita de tradução + "%s has been enrolled" + " as administrator of %s."; // 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 @@ -42256,94 +42136,25 @@ const char *Txt_THE_USER_X_has_not_been_removed_from_any_group = // Warning: it " from any group."; // Necessita de tradução #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 +const char *Txt_THE_USER_X_is_already_an_administrator_of_Y = // Warning: it is very important to include two %s in the following sentences #if L==0 - "%s ya es administrador/a" - " del centro %s."; // Necessita traduccio + "%s ya es administrador/a de %s."; // Necessita traduccio #elif L==1 - "%s is already an administrator" - " of the centre %s."; // Übersetzung notwendig + "%s is already an administrator of %s."; // Übersetzung notwendig #elif L==2 - "%s is already an administrator" - " of the centre %s."; + "%s is already an administrator of %s."; #elif L==3 - "%s ya es administrador/a" - " de la titulación %s."; + "%s ya es administrador/a de %s."; #elif L==4 - "%s is already an administrator" - " of the centre %s."; // Besoin de traduction + "%s is already an administrator of %s."; // Besoin de traduction #elif L==5 - "%s ya es administrador/a" - " del centro %s."; // Okoteve traducción + "%s ya es administrador/a de %s."; // Okoteve traducción #elif L==6 - "%s è già un amministratore" - " del centro %s."; + "%s è già un amministratore de %s."; #elif L==7 - "%s is already an administrator" - " of the centre %s."; // Potrzebujesz tlumaczenie + "%s is already an administrator of %s."; // Potrzebujesz tlumaczenie #elif L==8 - "%s is already an administrator" - " of the centre %s."; // 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 -#if L==0 - "%s ya es administrador/a" - " de la titulación %s."; // Necessita traduccio -#elif L==1 - "%s is already an administrator" - " of the degree %s."; // Übersetzung notwendig -#elif L==2 - "%s is already an administrator" - " of the degree %s."; -#elif L==3 - "%s ya es administrador/a" - " de la titulación %s."; -#elif L==4 - "%s is already an administrator" - " of the degree %s."; // Besoin de traduction -#elif L==5 - "%s ya es administrador/a" - " de la titulación %s."; // Okoteve traducción -#elif L==6 - "%s è già un amministratore" - " della laurea %s."; -#elif L==7 - "%s is already an administrator" - " of the degree %s."; // Potrzebujesz tlumaczenie -#elif L==8 - "%s is already an administrator" - " of the degree %s."; // Necessita de tradução -#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 - "%s ya es administrador/a" - " de la institución %s."; // Necessita traduccio -#elif L==1 - "%s is already an administrator" - " of the institution %s."; // Übersetzung notwendig -#elif L==2 - "%s is already an administrator" - " of the institution %s."; -#elif L==3 - "%s ya es administrador/a" - " de la institución %s."; -#elif L==4 - "%s is already an administrator" - " of the institution %s."; // Besoin de traduction -#elif L==5 - "%s ya es administrador/a" - " de la institución %s."; // Okoteve traducción -#elif L==6 - "%s è già un amministratore" - " della istituzione %s."; -#elif L==7 - "%s is already an administrator" - " of the institution %s."; // Potrzebujesz tlumaczenie -#elif L==8 - "%s is already an administrator" - " of the institution %s."; // Necessita de tradução + "%s is already an administrator of %s."; // 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