Version 14.102.11

This commit is contained in:
Antonio Cañas Vargas 2015-03-28 18:34:08 +01:00
parent d6a331ad7c
commit 91e6899aeb
7 changed files with 320 additions and 360 deletions

View File

@ -189,8 +189,8 @@ static void Acc_ShowFormRequestNewAccountWithParams (const char *NewNicknameWith
void Acc_ShowFormChangeMyAccount (void)
{
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_nickname;
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_email_address;
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_ID;
extern const char *Txt_Please_fill_in_your_email_address;
extern const char *Txt_Please_fill_in_your_ID;
extern const char *Txt_User_account;
/***** Get current user's nickname and e-mail address
@ -202,9 +202,9 @@ void Acc_ShowFormChangeMyAccount (void)
if (!Gbl.Usrs.Me.UsrDat.Nickname[0])
Lay_ShowAlert (Lay_WARNING,Txt_Before_going_to_any_other_option_you_must_fill_your_nickname);
else if (!Gbl.Usrs.Me.UsrDat.Email[0])
Lay_ShowAlert (Lay_WARNING,Txt_Before_going_to_any_other_option_you_must_fill_your_email_address);
Lay_ShowAlert (Lay_WARNING,Txt_Please_fill_in_your_email_address);
else if (!Gbl.Usrs.Me.UsrDat.IDs.Num)
Lay_ShowAlert (Lay_WARNING,Txt_Before_going_to_any_other_option_you_must_fill_your_ID);
Lay_ShowAlert (Lay_WARNING,Txt_Please_fill_in_your_ID);
/***** Put links to change my password and to remove my account*****/
fprintf (Gbl.F.Out,"<div style=\"text-align:center;\">");
@ -495,6 +495,9 @@ void Acc_CreateNewUsr (struct UsrData *UsrDat)
/***** Create directory for the user, if not exists *****/
Usr_ConstructPathUsr (UsrDat->UsrCod,PathRelUsr);
Fil_CreateDirIfNotExists (PathRelUsr);
/***** Create user's figures *****/
Prf_CreateNewUsrFigures (UsrDat->UsrCod);
}
/*****************************************************************************/
@ -617,8 +620,8 @@ void Acc_AskIfCompletelyEliminateAccount (bool ItsMe)
{
extern const char *Txt_Do_you_really_want_to_completely_eliminate_your_user_account;
extern const char *Txt_Do_you_really_want_to_completely_eliminate_the_following_user;
extern const char *Txt_Completely_eliminate_me;
extern const char *Txt_Completely_eliminate_user;
extern const char *Txt_Eliminate_my_user_account;
extern const char *Txt_Eliminate_user_account;
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
if (Usr_ChkIfUsrCodExists (Gbl.Usrs.Other.UsrDat.UsrCod))
@ -634,8 +637,8 @@ void Acc_AskIfCompletelyEliminateAccount (bool ItsMe)
/* Ask for consent on dangerous actions */
Pwd_AskForConfirmationOnDangerousAction ();
Lay_PutRemoveButton (ItsMe ? Txt_Completely_eliminate_me :
Txt_Completely_eliminate_user);
Lay_PutRemoveButton (ItsMe ? Txt_Eliminate_my_user_account :
Txt_Eliminate_user_account);
Act_FormEnd ();
}

View File

@ -103,11 +103,14 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.102.8 (2015/03/27)"
#define Log_PLATFORM_VERSION "SWAD 14.102.11 (2015/03/28)"
// 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 sql/swad*.sql | tail -1
/*
Version 14.102.11:Mar 28, 2015 Change help messages. (183943 lines)
Version 14.102.10:Mar 28, 2015 Create user's figures when a user account is created. (183942 lines)
Version 14.102.9: Mar 28, 2015 Changes in help messages while filling in user's record card. (183927 lines)
Version 14.102.8: Mar 27, 2015 Fixed bug in form to edit account. (183989 lines)
Version 14.102.7: Mar 27, 2015 Minor change in help text. (183988 lines)
Version 14.102.6: Mar 27, 2015 Changes in layout of sign up. (183987 lines)

View File

@ -508,7 +508,7 @@ static void Enr_ShowFormRegRemSeveralUsrs (void)
extern const char *Txt_Select_the_groups_of_students_you_want_to_register_in_remove_from_this_course;
extern const char *Txt_Option_b_Type_or_paste_a_list_of_users;
extern const char *Txt_Type_or_paste_a_list_of_IDs_nicks_or_emails_;
extern const char *Txt_Step_2_Select_the_type_of_user_to_register_remove;
extern const char *Txt_Step_2_Select_the_type_of_users_to_register_remove;
extern const char *Txt_Step_3_Select_the_desired_action;
extern const char *Txt_Step_4_Optionally_select_groups;
extern const char *Txt_Select_the_groups_in_from_which_you_want_to_register_remove_users_;
@ -575,7 +575,7 @@ static void Enr_ShowFormRegRemSeveralUsrs (void)
"%s"
"</div>",
The_ClassTitle[Gbl.Prefs.Theme],
Txt_Step_2_Select_the_type_of_user_to_register_remove);
Txt_Step_2_Select_the_type_of_users_to_register_remove);
if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected
Rol_PutAllRolesRegRemUsrsCrs ();
@ -816,8 +816,8 @@ static bool Enr_PutActionsRegRemOneUsr (bool ItsMe)
extern const char *Txt_Remove_user_as_an_administrator_of_the_centre_X;
extern const char *Txt_Remove_me_as_an_administrator_of_the_institution_X;
extern const char *Txt_Remove_user_as_an_administrator_of_the_institution_X;
extern const char *Txt_Completely_eliminate_me;
extern const char *Txt_Completely_eliminate_user;
extern const char *Txt_Eliminate_my_user_account;
extern const char *Txt_Eliminate_user_account;
unsigned NumOptionsShown = 0;
bool UsrBelongsToCrs = false;
bool UsrIsDegAdmin = false;
@ -1042,8 +1042,8 @@ static bool Enr_PutActionsRegRemOneUsr (bool ItsMe)
if (!OptionChecked)
fprintf (Gbl.F.Out," checked=\"checked\"");
fprintf (Gbl.F.Out," />%s</li>",
ItsMe ? Txt_Completely_eliminate_me :
Txt_Completely_eliminate_user);
ItsMe ? Txt_Eliminate_my_user_account :
Txt_Eliminate_user_account);
NumOptionsShown++;
}

View File

@ -1000,6 +1000,21 @@ static void Prf_GetNumMsgSntAndStoreAsUsrFigure (long UsrCod)
}
}
/*****************************************************************************/
/******************* Create user's figures for a new user ********************/
/*****************************************************************************/
void Prf_CreateNewUsrFigures (long UsrCod)
{
struct UsrFigures UsrFigures;
/***** Reset user's figures *****/
Prf_ResetUsrFigures (&UsrFigures);
/***** Create user's figures *****/
Prf_CreateUsrFigures (UsrCod,&UsrFigures);
}
/*****************************************************************************/
/********************** Reset values of user's figures ***********************/
/*****************************************************************************/
@ -1020,7 +1035,7 @@ static void Prf_ResetUsrFigures (struct UsrFigures *UsrFigures)
static void Prf_CreateUsrFigures (long UsrCod,const struct UsrFigures *UsrFigures)
{
char Query[256];
char Query[512];
/***** Create user's figures *****/
sprintf (Query,"INSERT INTO usr_figures"

View File

@ -49,6 +49,8 @@ void Prf_CalculateNumClicks (void);
void Prf_CalculateNumFileViews (void);
void Prf_CalculateNumForPst (void);
void Prf_CalculateNumMsgSnt (void);
void Prf_CreateNewUsrFigures (long UsrCod);
void Prf_RemoveUsrFigures (long UsrCod);
void Prf_IncrementNumClicksUsr (long UsrCod);
void Prf_IncrementNumFileViewsUsr (long UsrCod);

View File

@ -1876,18 +1876,19 @@ void Rec_ShowFormSignUpWithMyCommonRecord (void)
void Rec_ShowFormMyCommRecord (void)
{
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_sex;
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_name;
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_country_nationality;
extern const char *Txt_Please_fill_in_your_record_card_including_your_country_nationality;
extern const char *Txt_Please_fill_in_your_record_card_including_your_sex;
extern const char *Txt_Please_fill_in_your_record_card_including_your_name;
extern const char *Txt_Save_changes;
/***** If user has no sex, name and surname... *****/
if (Gbl.Usrs.Me.UsrDat.Sex == Usr_SEX_UNKNOWN)
Lay_ShowAlert (Lay_WARNING,Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_sex);
else if (!Gbl.Usrs.Me.UsrDat.FirstName[0] || !Gbl.Usrs.Me.UsrDat.Surname1[0])
Lay_ShowAlert (Lay_WARNING,Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_name);
else if (Gbl.Usrs.Me.UsrDat.CtyCod < 0)
Lay_ShowAlert (Lay_WARNING,Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_country_nationality);
if (Gbl.Usrs.Me.UsrDat.CtyCod < 0)
Lay_ShowAlert (Lay_WARNING,Txt_Please_fill_in_your_record_card_including_your_country_nationality);
else if (Gbl.Usrs.Me.UsrDat.Sex == Usr_SEX_UNKNOWN)
Lay_ShowAlert (Lay_WARNING,Txt_Please_fill_in_your_record_card_including_your_sex);
else if (!Gbl.Usrs.Me.UsrDat.FirstName[0] ||
!Gbl.Usrs.Me.UsrDat.Surname1[0])
Lay_ShowAlert (Lay_WARNING,Txt_Please_fill_in_your_record_card_including_your_name);
/***** Buttons for edition *****/
fprintf (Gbl.F.Out,"<div style=\"text-align:center;\">");
@ -3265,8 +3266,8 @@ static void Rec_PutLinkToChangeMySocialNetworks (void)
void Rec_ShowFormMyInsCtrDpt (void)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_institution;
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_centre_and_department;
extern const char *Txt_Please_fill_in_your_institution;
extern const char *Txt_Please_fill_in_your_centre_and_department;
extern const char *Txt_Institution_centre_and_department;
extern const char *Txt_Institution;
extern const char *Txt_Country_of_institution;
@ -3287,11 +3288,11 @@ void Rec_ShowFormMyInsCtrDpt (void)
/***** If there is no institution, centre or department *****/
if (Gbl.Usrs.Me.UsrDat.InsCtyCod < 0 ||
Gbl.Usrs.Me.UsrDat.InsCod < 0)
Lay_ShowAlert (Lay_WARNING,Txt_Before_going_to_any_other_option_you_must_fill_your_institution);
Lay_ShowAlert (Lay_WARNING,Txt_Please_fill_in_your_institution);
else if ((Gbl.Usrs.Me.UsrDat.Roles & (1 << Rol_ROLE_TEACHER)) &&
(Gbl.Usrs.Me.UsrDat.Tch.CtrCod < 0 ||
Gbl.Usrs.Me.UsrDat.Tch.DptCod < 0))
Lay_ShowAlert (Lay_WARNING,Txt_Before_going_to_any_other_option_you_must_fill_your_centre_and_department);
Lay_ShowAlert (Lay_WARNING,Txt_Please_fill_in_your_centre_and_department);
/***** Start table *****/
Lay_StartRoundFrameTable10 ("560px",2,

View File

@ -3338,6 +3338,36 @@ const char *Txt_Banners =
"Banners";
#endif
const char *Txt_Before_going_to_any_other_option_you_must_fill_your_nickname =
#if L==0
"Abans d'accedir a qualsevol altra opci&oacute;"
" ha de crear el seu sobrenom.";
#elif L==1
"Bevor ich auf jede andere Option"
" m&uuml;ssen Sie Ihr Benutzernamen erstellen.";
#elif L==2
"Before going to any other option"
" you must fill your nickname.";
#elif L==3
"Antes de acceder a cualquier otra opci&oacute;n"
" debe crear su apodo.";
#elif L==4
"Avant d'aller &agrave; une autre option"
" vous devez cr&eacute;er votre surnom.";
#elif L==5
"Antes de acceder a cualquier otra opci&oacute;n"
" debe crear su apodo."; // Okoteve traducción
#elif L==6
"Prima di scegliere qualsiasi altra opzione"
" devi creare il tuo soprannome.";
#elif L==7
"Przed udaniem si&eogon; do innej opcji"
" nale&zdot;y wype&lstrok;ni&cacute; sw&oacute;j nick";
#elif L==8
"Antes de ir para qualquer outra op&ccedil;&atilde;o"
" voc&ecirc; deve criar sua alcunha.";
#endif
const char *Txt_Before_going_to_any_other_option_you_must_create_your_password =
#if L==0
"Abans d'accedir a qualsevol altra opci&oacute;"
@ -3368,273 +3398,6 @@ const char *Txt_Before_going_to_any_other_option_you_must_create_your_password =
"voc&ecirc; deve criar sua senha.";
#endif
const char *Txt_Before_going_to_any_other_option_you_must_fill_your_centre_and_department =
#if L==0
"Abans d'accedir a qualsevol altra opci&oacute;"
" ha de omplir el seu centre i department.";
#elif L==1
"Bevor ich auf jede andere Option"
" m&uuml;ssen Sie Ihre Zentrum und Abteilung zu f&uuml;llen.";
#elif L==2
"Before going to any other option"
" you must fill your centre and department.";
#elif L==3
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su centro y departamento.";
#elif L==4
"Avant d'aller &agrave; une autre option"
" vous devez remplir votre centre et d&eacute;partement.";
#elif L==5
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su centro y departamento."; // Okoteve traducción
#elif L==6
"Prima di scegliere qualsiasi altra opzione"
" devi compilare il tuo centro e dipartimento.";
#elif L==7
"Zanim przejdziemy do innych opcji"
" nalezy wypelnic tym centrum i dzia&lstrok;u.";
#elif L==8
"Antes de ir para qualquer outra op&ccedil;&atilde;o"
" voc&ecirc; deve preencher o seu centro e departamento.";
#endif
const char *Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_country_nationality =
#if L==0
"Abans d'accedir a qualsevol altra opci&oacute;"
" ha de omplir la seva fitxa,"
" incloent el seu pais (nacionalitat).";
#elif L==1
"Bevor ich auf jede andere Option"
" m&uuml;ssen Sie Ihre Karteikarte zu f&uuml;llen,"
" einschlie&szlig;lich Ihrem Land (Nationalit&auml;t).";
#elif L==2
"Before going to any other option"
" you must fill your record card,"
" including your country (nationality).";
#elif L==3
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su ficha,"
" incluyendo su pa&iacute;s (nacionalidad).";
#elif L==4
"Avant d'aller &agrave; une autre option"
" vous devez remplir votre carte d'enregistrement,"
" y compris votre pays (nationalit&eacute;).";
#elif L==5
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su ficha,"
" incluyendo su pa&iacute;s (nacionalidad)."; // Okoteve traducción
#elif L==6
"Prima di scegliere qualsiasi altra opzione"
" devi compilare la tua scheda,"
" compreso il tuo paese (nazionalit&agrave;).";
#elif L==7
"Zanim przejdziemy do innych opcji"
" nalezy wypelnic karte zapisu,"
" w tym kraju (obywatelstwo";
#elif L==8
"Antes de ir para qualquer outra op&ccedil;&atilde;o"
" voc&ecirc; deve preencher o seu cart&atilde;o,"
" incluindo seu pa&iacute;s (nacionalidade).";
#endif
const char *Txt_Before_going_to_any_other_option_you_must_fill_your_email_address =
#if L==0
"Abans d'accedir a qualsevol altra opci&oacute;"
" ha de omplir la seva adre&ccedil;a de correu.";
#elif L==1
"Bevor ich auf jede andere Option"
" m&uuml;ssen Sie Ihre E-Mail-Adresse ein.";
#elif L==2
"Before going to any other option"
" you must fill your email address.";
#elif L==3
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su direcci&oacute;n de correo.";
#elif L==4
"Avant d'aller &agrave; une autre option"
" vous devez remplir votre adresse e-mail.";
#elif L==5
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su direcci&oacute;n de correo."; // Okoteve traducción
#elif L==6
"Prima di scegliere qualsiasi altra opzione"
" devi compilare il tuo indirizzo e-mail.";
#elif L==7
"Zanim przejdziemy do innych opcji"
" nalezy w tym adresu e-mail.";
#elif L==8
"Antes de ir para qualquer outra op&ccedil;&atilde;o"
" voc&ecirc; deve preencher o seu endere&ccedil;o de e-mail.";
#endif
const char *Txt_Before_going_to_any_other_option_you_must_fill_your_ID =
#if L==0
"Abans d'accedir a qualsevol altra opci&oacute;"
" ha de omplir el seu ID (DNI/c&egrave;dula).";
#elif L==1
"Bevor ich auf jede andere Option"
" m&uuml;ssen Sie Ihren Ausweis-Nr. &auml;nder.";
#elif L==2
"Before going to any other option"
" you must fill your ID.";
#elif L==3
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su ID (DNI/c&eacute;dula).";
#elif L==4
"Avant d'aller &agrave; une autre option"
" vous devez remplir votre ID.";
#elif L==5
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su ID (DNI/c&eacute;dula)."; // Okoteve traducción
#elif L==6
"Prima di scegliere qualsiasi altra opzione"
" devi compilare il tuo ID.";
#elif L==7
"Zanim przejdziemy do innych opcji"
" nalezy w tym nick swoje zmie&nacute; identyfikatory.";
#elif L==8
"Antes de ir para qualquer outra op&ccedil;&atilde;o"
" voc&ecirc; deve preencher o seu n&ordm;. identif.";
#endif
const char *Txt_Before_going_to_any_other_option_you_must_fill_your_nickname =
#if L==0
"Abans d'accedir a qualsevol altra opci&oacute;"
" ha de omplir el seu sobrenom.";
#elif L==1
"Bevor ich auf jede andere Option"
" m&uuml;ssen Sie Ihren Namen zu f&uuml;llen.";
#elif L==2
"Before going to any other option"
" you must fill your nickname.";
#elif L==3
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su apodo.";
#elif L==4
"Avant d'aller &agrave; une autre option"
" vous devez remplir votre surnom.";
#elif L==5
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su apodo."; // Okoteve traducción
#elif L==6
"Prima di scegliere qualsiasi altra opzione"
" devi compilare il tuo soprannome.";
#elif L==7
"Zanim przejdziemy do innych opcji"
" nalezy w tym nick.";
#elif L==8
"Antes de ir para qualquer outra op&ccedil;&atilde;o"
" voc&ecirc; deve preencher a seu alcunha.";
#endif
const char *Txt_Before_going_to_any_other_option_you_must_fill_your_institution =
#if L==0
"Abans d'accedir a qualsevol altra opci&oacute;"
" ha de omplir la seva instituci&oacute;.";
#elif L==1
"Bevor ich auf jede andere Option"
" m&uuml;ssen Sie Ihre Einrichtung zu f&uuml;llen.";
#elif L==2
"Before going to any other option"
" you must fill your institution.";
#elif L==3
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su instituci&oacute;n.";
#elif L==4
"Avant d'aller &agrave; une autre option"
" vous devez remplir votre &eacute;tablissement.";
#elif L==5
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su instituci&oacute;n."; // Okoteve traducción
#elif L==6
"Prima di scegliere qualsiasi altra opzione"
" devi compilare la tua istituzione accademica.";
#elif L==7
"Zanim przejdziemy do innych opcji"
" nalezy wypelnic tym instytucji.";
#elif L==8
"Antes de ir para qualquer outra op&ccedil;&atilde;o"
" voc&ecirc; deve preencher sua institui&ccedil;&atilde;o.";
#endif
const char *Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_name =
#if L==0
"Abans d'accedir a qualsevol altra opci&oacute;"
" ha de omplir la seva fitxa,"
" incloent el seu nom i cognom(s).";
#elif L==1
"Bevor ich auf jede andere Option"
" m&uuml;ssen Sie Ihre Karteikarte zu f&uuml;llen,"
" mit Ihrem Namen.";
#elif L==2
"Before going to any other option"
" you must fill your record card,"
" including your name.";
#elif L==3
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su ficha,"
" incluyendo su nombre y apellido(s).";
#elif L==4
"Avant d'aller &agrave; une autre option"
" vous devez remplir votre carte d'enregistrement,"
" y compris votre nom.";
#elif L==5
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su ficha,"
" incluyendo su nombre y apellido(s)."; // Okoteve traducción
#elif L==6
"Prima di scegliere qualsiasi altra opzione"
" devi compilare la tua scheda,"
" compresi il tuo nome e cognome.";
#elif L==7
"Zanim przejdziemy do innych opcji"
" nalezy wypelnic karte zapisu,"
" w tym imie i nazwisko.";
#elif L==8
"Antes de ir para qualquer outra op&ccedil;&atilde;o"
" voc&ecirc; deve preencher o cart&atilde;o,"
" incluindo seu nome.";
#endif
const char *Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_including_your_sex =
#if L==0
"Abans d'accedir a qualsevol altra opci&oacute;"
" ha de omplir la seva fitxa,"
" incloent el sexe.";
#elif L==1
"Bevor ich auf jede andere Option"
" m&uuml;ssen Sie Ihre Karteikarte zu f&uuml;llen,"
" einschließlich Ihrer Sex.";
#elif L==2
"Before going to any other option"
" you must fill your record card,"
" including your sex.";
#elif L==3
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su ficha,"
" incluyendo el sexo.";
#elif L==4
"Avant d'aller &agrave; une autre option"
" vous devez remplir votre carte d'enregistrement,"
" y compris votre sexe.";
#elif L==5
"Antes de acceder a cualquier otra opci&oacute;n"
" debe rellenar su ficha,"
" incluyendo el sexo."; // Okoteve traducción
#elif L==6
"Prima di scegliere qualsiasi altra opzione"
" devi compilare la tua scheda,"
" compreso il sesso.";
#elif L==7
"Zanim przejdziemy do innych opcji"
" nalezy wypelnic karte zapisu,"
" w tym ple&cacute;.";
#elif L==8
"Antes de ir para qualquer outra op&ccedil;&atilde;o"
" voc&ecirc; deve preencher o cart&atilde;o,"
" incluindo o seu sexo.";
#endif
const char *Txt_Calculate =
#if L==0
"Calcular";
@ -4764,48 +4527,6 @@ const char *Txt_Teachers_comment =
"Coment&aacute;rio dos professores";
#endif
const char *Txt_Completely_eliminate_user =
#if L==0
"Eliminar usuari completament";
#elif L==1
"Completely eliminate user"; // Need Übersetzung
#elif L==2
"Completely eliminate user";
#elif L==3
"Eliminar usuario completamente";
#elif L==4
"Completely eliminate user"; // Besoin de traduction
#elif L==5
"Eliminar usuario completamente"; // Okoteve traducción
#elif L==6
"Rimuovere utente completamente";
#elif L==7
"Calkowicie wyeliminowac u&zdot;ytkownika";
#elif L==8
"Completely eliminate user"; // Necessita de tradução
#endif
const char *Txt_Completely_eliminate_me =
#if L==0
"Eliminar-me completament";
#elif L==1
"Completely eliminate me"; // Need Übersetzung
#elif L==2
"Completely eliminate me";
#elif L==3
"Eliminarme completamente";
#elif L==4
"Completely eliminate me"; // Besoin de traduction
#elif L==5
"Eliminarme completamente"; // Okoteve traducción
#elif L==6
"Rimuovimi completamente";
#elif L==7
"Calkowicie mnie wyeliminowac";
#elif L==8
"Completely eliminate me"; // Necessita de tradução
#endif
const char *Txt_Configure =
#if L==0
"Configurar";
@ -8222,17 +7943,17 @@ const char *Txt_Do_you_really_want_to_be_removed_from_the_course_X = // Warning:
const char *Txt_Do_you_really_want_to_completely_eliminate_the_following_user =
#if L==0
"&iquest;Realmente desea eliminar completamente el siguiente usuario?"; // Necessita traduccio
"&iquest;Realmente desea eliminar completamente la cuenta del siguiente usuario?"; // Necessita traduccio
#elif L==1
"Do you really want to completely eliminate the following user?"; // Need Übersetzung
#elif L==2
"Do you really want to completely eliminate the following user?";
#elif L==3
"&iquest;Realmente desea eliminar completamente el siguiente usuario?";
"&iquest;Realmente desea eliminar completamente la cuenta del siguiente usuario?";
#elif L==4
"Do you really want to completely eliminate the following user?"; // Besoin de traduction
#elif L==5
"&iquest;Realmente desea eliminar completamente el siguiente usuario?"; // Okoteve traducción
"&iquest;Realmente desea eliminar completamente la cuenta del siguiente usuario?"; // Okoteve traducción
#elif L==6
"Vuoi realmente rimuovere totalmente il seguente utente?";
#elif L==7
@ -8243,17 +7964,17 @@ const char *Txt_Do_you_really_want_to_completely_eliminate_the_following_user =
const char *Txt_Do_you_really_want_to_completely_eliminate_your_user_account =
#if L==0
"&iquest;Realmente desea eliminar completamente su cuenta de usuario?"; // Necessita traduccio
"&iquest;Realmente desea eliminar completamente su cuenta de usuario/a?"; // Necessita traduccio
#elif L==1
"Do you really want to completely eliminate your user account?"; // Need Übersetzung
#elif L==2
"Do you really want to completely eliminate your user account?";
#elif L==3
"&iquest;Realmente desea eliminar completamente su cuenta de usuario?";
"&iquest;Realmente desea eliminar completamente su cuenta de usuario/a?";
#elif L==4
"Do you really want to completely eliminate your user account?"; // Besoin de traduction
#elif L==5
"&iquest;Realmente desea eliminar completamente su cuenta de usuario?"; // Okoteve traducción
"&iquest;Realmente desea eliminar completamente su cuenta de usuario/a?"; // Okoteve traducción
#elif L==6
"Vuoi realmente rimuovere totalmente il tuo account?";
#elif L==7
@ -8273,13 +7994,13 @@ const char *Txt_Do_you_really_want_to_create_a_new_user_account_with_the_followi
"Do you really want to create a new user account"
" with the following data?";
#elif L==3
"&iquest;Realmente desea crear una nueva cuenta de usuario"
"&iquest;Realmente desea crear una nueva cuenta de usuario/a"
" con los siguientes datos?";
#elif L==4
"Voulez-vous vraiment cr&eacute;er un nouveau compte d'utilisateur"
" avec les donn&eacute;es suivantes?";
#elif L==5
"&iquest;Realmente desea crear una nueva cuenta de usuario"
"&iquest;Realmente desea crear una nueva cuenta de usuario/a"
" con los siguientes datos?"; // Okoteve traducción
#elif L==6
"Vuoi realmente creare un nuovo account utente"
@ -9815,6 +9536,48 @@ const char *Txt_Eliminating_X_courses_whithout_users_and_with_more_than_Y_months
" and with more than %u months without access."; // Necessita de tradução
#endif
const char *Txt_Eliminate_my_user_account =
#if L==0
"Eliminar la meva compte d'usuari";
#elif L==1
"Entfernen mein Benutzerkonto";
#elif L==2
"Eliminate my user account";
#elif L==3
"Eliminar mi cuenta de usuario/a";
#elif L==4
"Supprimer mon compte d'utilisateur";
#elif L==5
"Eliminar mi cuenta de usuario/a"; // Okoteve traducción
#elif L==6
"Rimuovere il mio account utente";
#elif L==7
"Usu&nacute; moje konto u&zdot;ytkownika";
#elif L==8
"Remover minha conta de usu&aacute;rio";
#endif
const char *Txt_Eliminate_user_account =
#if L==0
"Eliminar compte d'usuari";
#elif L==1
"Entfernen Benutzerkonto";
#elif L==2
"Eliminate user account";
#elif L==3
"Eliminar cuenta de usuario/a";
#elif L==4
"Supprimer compte d'utilisateur";
#elif L==5
"Eliminar cuenta de usuario/a"; // Okoteve traducción
#elif L==6
"Rimuovere account utente";
#elif L==7
"Usu&nacute; konto u&zdot;ytkownika";
#elif L==8
"Remover conta de usu&aacute;rio";
#endif
const char *Txt_Eliminating_X_users_who_were_not_enrolled_in_any_course_and_with_more_than_Y_months_without_access_to_Z = // Warning: it is very important to include %lu, %u and %s in the following sentences
#if L==0
"Eliminando %lu usuario(s) que no estaba(n) inscrito(s) en ninguna asignatura"
@ -20123,11 +19886,11 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
#elif L==2
"Create or edit my user account"
#elif L==3
"Creaci&oacute;n o edici&oacute;n de mi cuenta de usuario"
"Creaci&oacute;n o edici&oacute;n de mi cuenta de usuario/a"
#elif L==4
"Cr&eacute;er ou modifier mon compte d'utilisateur"
#elif L==5
"Creaci&oacute;n o edici&oacute;n de mi cuenta de usuario"// Okoteve traducción
"Creaci&oacute;n o edici&oacute;n de mi cuenta de usuario/a"// Okoteve traducción
#elif L==6
"Creare o modificare il mio account utente"
#elif L==7
@ -26833,6 +26596,179 @@ const char *Txt_PLACES_ORDER[2] =
#endif
};
const char *Txt_Please_fill_in_your_centre_and_department =
#if L==0
"Si us plau, ompli el seu centre i department.";
#elif L==1
"Bitte geben Sie Ihre Zentrum und Abteilung zu f&uuml;llen.";
#elif L==2
"Please fill in your centre and department.";
#elif L==3
"Por favor, rellene su centro y departamento.";
#elif L==4
"S'il vous pla&iacute;t, indiquez votre centre et d&eacute;partement.";
#elif L==5
"Por favor, rellene su centro y departamento."; // Okoteve traducción
#elif L==6
"Per favore, inserisci il tuo centro e dipartimento.";
#elif L==7
"Prosz&eogon;, wpisz swoje tym centrum i dzia&lstrok;u.";
#elif L==8
"Por favor, preencha o seu centro e departamento.";
#endif
const char *Txt_Please_fill_in_your_email_address =
#if L==0
"Si us plau, ompli la seva adre&ccedil;a de correu.";
#elif L==1
"Bitte geben Sie Ihre E-Mail-Adresse ein.";
#elif L==2
"Please fill in your email address.";
#elif L==3
"Por favor, rellene su direcci&oacute;n de correo.";
#elif L==4
"S'il vous pla&iacute;t, indiquez votre adresse e-mail.";
#elif L==5
"Por favor, rellene su direcci&oacute;n de correo."; // Okoteve traducción
#elif L==6
"Per favore, inserisci il tuo indirizzo e-mail.";
#elif L==7
"Prosz&eogon;, wpisz swoje w tym adresu e-mail.";
#elif L==8
"Por favor, preencha o seu endere&ccedil;o de e-mail.";
#endif
const char *Txt_Please_fill_in_your_ID =
#if L==0
"Si us plau, ompli el seu ID (DNI/c&egrave;dula).";
#elif L==1
"Bitte geben Sie Ihre Ausweis-Nr. &auml;nder.";
#elif L==2
"Please fill in your ID.";
#elif L==3
"Por favor, rellene su ID (DNI/c&eacute;dula).";
#elif L==4
"S'il vous pla&iacute;t, indiquez votre ID.";
#elif L==5
"Por favor, rellene su ID (DNI/c&eacute;dula)."; // Okoteve traducción
#elif L==6
"Per favore, inserisci il tuo ID.";
#elif L==7
"Prosz&eogon;, wpisz swoje zmie&nacute; identyfikatory.";
#elif L==8
"Por favor, preencha seu n&ordm;. identif.";
#endif
const char *Txt_Please_fill_in_your_institution =
#if L==0
"Si us plau, ompli la seva instituci&oacute;.";
#elif L==1
"Bitte geben Sie Ihre Einrichtung zu f&uuml;llen.";
#elif L==2
"Please fill in your institution.";
#elif L==3
"Por favor, rellene su instituci&oacute;n.";
#elif L==4
"S'il vous pla&iacute;t, indiquez votre &eacute;tablissement.";
#elif L==5
"Por favor, rellene su instituci&oacute;n."; // Okoteve traducción
#elif L==6
"Per favore, inserisci la tua istituzione accademica.";
#elif L==7
"Prosz&eogon;, wpisz swoje tym instytucji.";
#elif L==8
"Por favor, preencha sua institui&ccedil;&atilde;o.";
#endif
const char *Txt_Please_fill_in_your_record_card_including_your_country_nationality =
#if L==0
"Si us plau, ompli la seva fitxa,"
" incloent el seu pais (nacionalitat).";
#elif L==1
"Bitte geben Sie Ihre Karteikarte zu f&uuml;llen,"
" einschlie&szlig;lich Ihrem Land (Nationalit&auml;t).";
#elif L==2
"Please fill in your country (nationality).";
#elif L==3
"Por favor, rellene su ficha,"
" incluyendo su pa&iacute;s (nacionalidad).";
#elif L==4
"S'il vous pla&iacute;t, remplissez votre carte d'enregistrement,"
" y compris votre pays (nationalit&eacute;).";
#elif L==5
"Por favor, rellene su ficha,"
" incluyendo su pa&iacute;s (nacionalidad)."; // Okoteve traducción
#elif L==6
"Per favore, compila la tua scheda,"
" compreso il tuo paese (nazionalit&agrave;).";
#elif L==7
"Prosz&eogon;, wpisz swoje karte zapisu,"
" w tym kraju (obywatelstwo";
#elif L==8
"Por favor, preencha o seu cart&atilde;o,"
" incluindo seu pa&iacute;s (nacionalidade).";
#endif
const char *Txt_Please_fill_in_your_record_card_including_your_name =
#if L==0
"Si us plau, ompli la seva fitxa,"
" incloent el seu nom i cognom(s).";
#elif L==1
"Bitte geben Sie Ihre Karteikarte zu f&uuml;llen,"
" mit Ihrem Namen.";
#elif L==2
"Please fill in your record card,"
" including your name.";
#elif L==3
"Por favor, rellene su ficha,"
" incluyendo su nombre y apellido(s).";
#elif L==4
"S'il vous pla&iacute;t, remplissez votre carte d'enregistrement,"
" y compris votre nom.";
#elif L==5
"Por favor, rellene su ficha,"
" incluyendo su nombre y apellido(s)."; // Okoteve traducción
#elif L==6
"Per favore, compila la tua scheda,"
" compresi il tuo nome e cognome.";
#elif L==7
"Prosz&eogon;, wpisz swoje karte zapisu,"
" w tym imie i nazwisko.";
#elif L==8
"Por favor, preencha o cart&atilde;o,"
" incluindo seu nome.";
#endif
const char *Txt_Please_fill_in_your_record_card_including_your_sex =
#if L==0
"Si us plau, ompli la seva fitxa,"
" incloent el sexe.";
#elif L==1
"Bitte geben Sie Ihre Karteikarte zu f&uuml;llen,"
" einschlie&szlig;lich Ihrer Sex.";
#elif L==2
"Please fill in your record card,"
" including your sex.";
#elif L==3
"Por favor, rellene su ficha,"
" incluyendo el sexo.";
#elif L==4
"S'il vous pla&iacute;t, remplissez votre carte d'enregistrement,"
" y compris votre sexe.";
#elif L==5
"Por favor, rellene su ficha,"
" incluyendo el sexo."; // Okoteve traducción
#elif L==6
"Per favore, compila la tua scheda,"
" compreso il sesso.";
#elif L==7
"Prosz&eogon;, wpisz swoje karte zapisu,"
" w tym ple&cacute;.";
#elif L==8
"Por favor, preencha o cart&atilde;o,"
" incluindo o seu sexo.";
#endif
const char *Txt_Please_specify_if_you_allow_access_to_test_questions_from_mobile_applications =
#if L==0
"Por favor, especifique si permite el acceso"
@ -36778,25 +36714,25 @@ const char *Txt_Step_1_Provide_a_list_of_users =
"Step 1: Provide a list of users"; // Necessita de tradução
#endif
const char *Txt_Step_2_Select_the_type_of_user_to_register_remove =
const char *Txt_Step_2_Select_the_type_of_users_to_register_remove =
#if L==0
"Paso 2: Seleccione el tipo de usuario a inscribir / eliminar"; // Necessita traduccio
"Paso 2: Seleccione el tipo de usuarios a inscribir / eliminar"; // Necessita traduccio
#elif L==1
"Step 2: Select the type of user to register / remove"; // Need Übersetzung
"Step 2: Select the type of users to register / remove"; // Need Übersetzung
#elif L==2
"Step 2: Select the type of user to register / remove";
"Step 2: Select the type of users to register / remove";
#elif L==3
"Paso 2: Seleccione el tipo de usuario a inscribir / eliminar";
"Paso 2: Seleccione el tipo de usuarios a inscribir / eliminar";
#elif L==4
"Step 2: Select the type of user to register / remove"; // Besoin de traduction
"Step 2: Select the type of users to register / remove"; // Besoin de traduction
#elif L==5
"Paso 2: Seleccione el tipo de usuario a inscribir / eliminar"; // Okoteve traducción
"Paso 2: Seleccione el tipo de usuarios a inscribir / eliminar"; // Okoteve traducción
#elif L==6
"Passo 2: Seleziona il tipo di utente da registrare / rimuovere";
"Passo 2: Seleziona il tipo di utenti da registrare / rimuovere";
#elif L==7
"Step 2: Select the type of user to register / remove"; // Potrzebujesz tlumaczenie
"Step 2: Select the type of users to register / remove"; // Potrzebujesz tlumaczenie
#elif L==8
"Step 2: Select the type of user to register / remove"; // Necessita de tradução
"Step 2: Select the type of users to register / remove"; // Necessita de tradução
#endif
const char *Txt_Step_3_Select_the_desired_action =
@ -46875,11 +46811,11 @@ const char *Txt_User_account =
#elif L==2
"User account";
#elif L==3
"Cuenta de usuario";
"Cuenta de usuario/a";
#elif L==4
"Compte d'utilisateur";
#elif L==5
"Cuenta de usuario"; // Okoteve traducción
"Cuenta de usuario/a"; // Okoteve traducción
#elif L==6
"Account utente";
#elif L==7