diff --git a/swad_changelog.h b/swad_changelog.h index 4a6246ab3..8d3fa154a 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -103,11 +103,12 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 14.95.1 (2015/03/18)" +#define Log_PLATFORM_VERSION "SWAD 14.96 (2015/03/18)" // 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.96: Mar 18, 2015 New layout in record cards. (183011 lines) Version 14.95.1: Mar 18, 2015 Show user's profile after followin or unfollowing. (182985 lines) Version 14.95: Mar 18, 2015 New module swad_follow for follow users. (182903 lines) 1 change necessary in Makefile: diff --git a/swad_record.c b/swad_record.c index 8c25be03e..67e7a31d9 100644 --- a/swad_record.c +++ b/swad_record.c @@ -57,8 +57,8 @@ extern const char *Usr_StringsSexDB[Usr_NUM_SEXS]; /***************************** Private constants *****************************/ /*****************************************************************************/ -#define Rec_INSTITUTION_LOGO_SIZE 64 -#define Rec_DEGREE_LOGO_SIZE 64 +#define Rec_INSTITUTION_LOGO_SIZE 48 +#define Rec_DEGREE_LOGO_SIZE 48 #define Rec_SHOW_OFFICE_HOURS_DEFAULT true /*****************************************************************************/ @@ -1485,7 +1485,7 @@ void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *UsrDat) extern const char *The_ClassFormul[The_NUM_THEMES]; extern const char *Txt_RECORD_FIELD_VISIBILITY_RECORD[Rec_NUM_TYPES_VISIBILITY]; extern const char *Txt_Send; - unsigned RecordWidth = Rec_WIDTH_COURSE_RECORD; + unsigned RecordWidth = Rec_WIDTH_SHARE_RECORD_BIG; char StrRecordWidth[10+1]; unsigned FrameWidth = 10; unsigned Col1Width = 140; @@ -1514,13 +1514,15 @@ void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *UsrDat) Act_FormStart (ActRcvRecCrs); break; } - RecordWidth = Rec_WIDTH_COURSE_RECORD; FrameWidth = 10; + //RecordWidth = Rec_WIDTH_COURSE_RECORD; + FrameWidth = 10; ClassHead = "HEAD_REC_SMALL"; ClassData = "DAT_REC"; break; case Rec_MY_COURSE_RECORD_CHECK: case Rec_OTHER_USR_COURSE_RECORD_CHECK: - RecordWidth = Rec_WIDTH_COURSE_RECORD; FrameWidth = 10; + //RecordWidth = Rec_WIDTH_COURSE_RECORD; + FrameWidth = 10; ClassHead = "HEAD_REC_SMALL"; ClassData = "DAT_REC_SMALL_BOLD"; break; @@ -1528,12 +1530,14 @@ void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *UsrDat) DataForm = true; Act_FormStart (ActRcvRecOthUsr); Usr_PutParamOtherUsrCodEncrypted (UsrDat->EncryptedUsrCod); - RecordWidth = Rec_WIDTH_COURSE_RECORD; FrameWidth = 10; + //RecordWidth = Rec_WIDTH_COURSE_RECORD; + FrameWidth = 10; ClassHead = "HEAD_REC_SMALL"; ClassData = "DAT_REC_SMALL_BOLD"; break; case Rec_RECORD_PRINT: - RecordWidth = Rec_WIDTH_COURSE_RECORD_PRINT; FrameWidth = 1; + //RecordWidth = Rec_WIDTH_COURSE_RECORD_PRINT; + FrameWidth = 1; ClassHead = "HEAD_REC_SMALL"; ClassData = "DAT_REC_SMALL_BOLD"; break; @@ -2008,6 +2012,11 @@ void Rec_ShowCommonRecordUnmodifiable (struct UsrData *UsrDat) /*****************************************************************************/ // Show form or only data depending on TypeOfView +#define C1_WIDTH 52 +#define C2_WIDTH 144 +#define C3_WIDTH 230 +#define C4_WIDTH 154 + void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, struct UsrData *UsrDat) { @@ -2015,7 +2024,6 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, extern const char *Txt_View_record_card; extern const char *Txt_Admin_user; extern const char *Txt_ID; - extern const char *Txt_Nickname; extern const char *Txt_Write_a_message; extern const char *Txt_View_works; extern const char *Txt_See_exams; @@ -2043,15 +2051,10 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, extern const char *Txt_Local_address; extern const char *Txt_Family_address; extern const char *Txt_USER_comments; - unsigned RecordWidth = Rec_WIDTH_SHARE_RECORD_BIG; char StrRecordWidth[10+1]; - unsigned FrameWidth = 10; - unsigned Col1Width = 130; - unsigned Col2Width; - unsigned Col3Width = 160; - unsigned Cols1and2Width; - unsigned Cols2and3Width; - const char *ClassHead,*ClassForm,*ClassData; + const char *ClassHead; + const char *ClassForm; + const char *ClassData; char PhotoURL[PATH_MAX+1]; bool ItsMe = (Gbl.Usrs.Me.UsrDat.UsrCod == UsrDat->UsrCod); bool IAmLoggedAsStudent = (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_STUDENT); // My current role is student @@ -2113,6 +2116,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, ((TypeOfView == Rec_RECORD_LIST || TypeOfView == Rec_RECORD_PRINT) && UsrDat->RoleInCurrentCrsDB == Rol_ROLE_TEACHER)); // He/she is a teacher in the current course + unsigned CommandsRowspan; Usr_Sex_t Sex; Rol_Role_t Role; Rol_Role_t DefaultRoleInCurrentCrs; @@ -2130,8 +2134,6 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, { case Rec_FORM_SIGN_UP: case Rec_FORM_MY_COMMON_RECORD: - RecordWidth = Rec_WIDTH_SHARE_RECORD_BIG; - FrameWidth = 10; ClassHead = "HEAD_REC"; ClassForm = The_ClassFormul[Gbl.Prefs.Theme]; ClassData = "DAT_REC"; @@ -2148,8 +2150,6 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, Act_FormStart (ActUpdOthUsrDat); Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod); // Existing user } - RecordWidth = Rec_WIDTH_SHARE_RECORD_BIG; - FrameWidth = 10; ClassHead = "HEAD_REC"; ClassForm = The_ClassFormul[Gbl.Prefs.Theme]; ClassData = "DAT_REC"; @@ -2158,15 +2158,11 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, case Rec_OTHER_USR_COMMON_RECORD_CHECK: case Rec_RECORD_LIST: case Rec_RECORD_PUBLIC: - RecordWidth = Rec_WIDTH_SHARE_RECORD_SMALL; - FrameWidth = 10; ClassHead = "HEAD_REC_SMALL"; ClassForm = "DAT_REC_SMALL"; ClassData = "DAT_REC_SMALL_BOLD"; break; case Rec_RECORD_PRINT: - RecordWidth = Rec_WIDTH_SHARE_RECORD_PRINT; - FrameWidth = 1; ClassHead = "HEAD_REC_SMALL"; ClassForm = "DAT_REC_SMALL"; ClassData = "DAT_REC_SMALL_BOLD"; @@ -2174,50 +2170,60 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, default: break; } - Cols1and2Width = RecordWidth - FrameWidth*2 - Col3Width; - Col2Width = Cols1and2Width - Col1Width; - Cols2and3Width = Col2Width + Col3Width; /***** Start frame *****/ - sprintf (StrRecordWidth,"%upx",RecordWidth); + sprintf (StrRecordWidth,"%upx",Rec_WIDTH_SHARE_RECORD_BIG); Lay_StartRoundFrameTable10 (StrRecordWidth,2,NULL); /***** Institution *****/ fprintf (Gbl.F.Out,"" - "" - "" - "" - "" - "" - "" - "" - "" - ""); + + /***** Photo *****/ + ShowPhoto = Pho_ShowUsrPhotoIsAllowed (UsrDat,PhotoURL); + fprintf (Gbl.F.Out,"" + ""); + + /***** Commands *****/ + CommandsRowspan = 2; // Name + Webs/social networks + if (ShowIDRows) + CommandsRowspan += 6; // Email, ID, Role, Surname1, Surname2, Firstname + CommandsRowspan += 1; // Country + if (ShowAddressRows) + CommandsRowspan += 7; // Origin place, Date of birth, Local address, Local phone + // Family address, Family phone, Common comments for all the courses + if (ShowTeacherRows) + CommandsRowspan += 5; // Institution, Centre, Department, Office, Phone + fprintf (Gbl.F.Out,"" + ""); /***** Full name *****/ - fprintf (Gbl.F.Out,"" - "" - "" - "
", - Cols1and2Width, - Rec_INSTITUTION_LOGO_SIZE + 8); + C1_WIDTH,C1_WIDTH); if (UsrDat->InsCod > 0) { Ins.InsCod = UsrDat->InsCod; Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_MINIMAL_DATA); Log_DrawLogo (Sco_SCOPE_INS,Ins.InsCod,Ins.ShortName, Rec_INSTITUTION_LOGO_SIZE,NULL,true); - fprintf (Gbl.F.Out,"" - "%s", - ClassHead,Ins.FullName); } - else - fprintf (Gbl.F.Out,"", - Col2Width); fprintf (Gbl.F.Out,"
", + ClassHead,C2_WIDTH + C3_WIDTH,C1_WIDTH); + if (UsrDat->InsCod > 0) + fprintf (Gbl.F.Out,"%s",Ins.FullName); + fprintf (Gbl.F.Out,"", - Rec_INSTITUTION_LOGO_SIZE + 8); + C4_WIDTH); + Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL : + NULL, + "PHOTO150x200",Pho_NO_ZOOM); + fprintf (Gbl.F.Out,"
", + CommandsRowspan,C1_WIDTH); if (CommandForms) { - fprintf (Gbl.F.Out,"
"); + fprintf (Gbl.F.Out,"
"); /***** Button to view user's record card when: - viewing public profile && @@ -2380,43 +2386,19 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, fprintf (Gbl.F.Out,"
"); } + fprintf (Gbl.F.Out,"
" - "%s
%s
%s" - "
" - "", + fprintf (Gbl.F.Out,"" + "%s
%s
%s", + C2_WIDTH + C3_WIDTH, UsrDat->FirstName , UsrDat->Surname1, UsrDat->Surname2); - /***** Photo *****/ - ShowPhoto = Pho_ShowUsrPhotoIsAllowed (UsrDat,PhotoURL); - fprintf (Gbl.F.Out,"", - TypeOfView == Rec_FORM_MY_COMMON_RECORD ? ClassForm : - ClassData, - Col3Width); - Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL : - NULL, - "PHOTO150x200",Pho_NO_ZOOM); - fprintf (Gbl.F.Out,"" - ""); - /***** User's nickname *****/ - fprintf (Gbl.F.Out,"" - "" - "%s:" - "" - "", - ClassForm,Col1Width, - Txt_Nickname, - Col2Width); + fprintf (Gbl.F.Out,"
"); if (UsrDat->Nickname[0]) { if (GoToPublicProfileForm) @@ -2437,27 +2419,34 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, if (!DataForm) QR_PutLinkToPrintQRCode (QR_NICKNAME,UsrDat,false); } - fprintf (Gbl.F.Out,""); + fprintf (Gbl.F.Out,"
" + "" + ""); /***** User's web and social networks *****/ - fprintf (Gbl.F.Out,"", - Col3Width); + fprintf (Gbl.F.Out,"" + "" + "" + "" + "
", + C2_WIDTH,C3_WIDTH,C4_WIDTH); Net_ShowWebsAndSocialNets (UsrDat); - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"
" + "" ""); if (ShowIDRows) { /***** User's e-mail *****/ fprintf (Gbl.F.Out,"" - "" + "" "%s:" "" "", - ClassForm,Col1Width,Txt_Email, - ClassData,Col2Width); + ClassForm,C2_WIDTH,Txt_Email, + ClassData,C3_WIDTH + C4_WIDTH); if (UsrDat->Email[0]) { if (ShowEmail) @@ -2471,17 +2460,19 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, else fprintf (Gbl.F.Out,"********"); } - fprintf (Gbl.F.Out,""); + fprintf (Gbl.F.Out,"" + ""); /***** User's ID *****/ fprintf (Gbl.F.Out,"" - "" + "" "%s:" "" "", - ClassForm,Col1Width,Txt_ID, - ClassData,Col2Width); + ClassForm,C2_WIDTH,Txt_ID, + ClassData,C3_WIDTH + C4_WIDTH); ID_WriteUsrIDs (UsrDat,ShowID); fprintf (Gbl.F.Out,"" ""); @@ -2492,7 +2483,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, fprintf (Gbl.F.Out,"" "", - ClassForm,Col1Width); + ClassForm,C2_WIDTH); if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) fprintf (Gbl.F.Out,"%s*",Txt_Sex); else @@ -2500,7 +2491,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, fprintf (Gbl.F.Out,":" "", - ClassData,Col2Width); + ClassData,C3_WIDTH + C4_WIDTH); switch (TypeOfView) { case Rec_FORM_SIGN_UP: // I want to apply for enrollment @@ -2527,7 +2518,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, fprintf (Gbl.F.Out,"\"%s\""" + "\"%s\""%s", Gbl.Prefs.IconsURL,Usr_StringsSexDB[Sex], @@ -2616,8 +2608,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, } else // RoleForm == false fprintf (Gbl.F.Out,"" - "" + "" "%s:" "" "" "", - ClassForm,Col1Width, + ClassForm,C2_WIDTH, TypeOfView == Rec_MY_COMMON_RECORD_CHECK ? Txt_Sex : Txt_Role, - ClassData,Col2Width, + ClassData,C3_WIDTH + C4_WIDTH, TypeOfView == Rec_MY_COMMON_RECORD_CHECK ? Txt_SEX_SINGULAR_Abc[UsrDat->Sex] : Txt_ROLES_SINGUL_Abc[UsrDat->RoleInCurrentCrsDB][UsrDat->Sex]); /***** Name *****/ /* Surname 1 */ fprintf (Gbl.F.Out,"" - "" + "" "%s", - ClassForm,Col1Width,Txt_Surname_1); + ClassForm,C2_WIDTH,Txt_Surname_1); if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) fprintf (Gbl.F.Out,"*"); fprintf (Gbl.F.Out,":" "", - ClassData,Cols2and3Width); + ClassData,C3_WIDTH + C4_WIDTH); if (DataForm) fprintf (Gbl.F.Out,"", - Usr_MAX_LENGTH_USR_NAME_OR_SURNAME,UsrDat->Surname1); + " style=\"width:%upx;\" maxlength=\"%u\" value=\"%s\" />", + C3_WIDTH + C4_WIDTH - 40, + Usr_MAX_LENGTH_USR_NAME_OR_SURNAME, + UsrDat->Surname1); else if (UsrDat->Surname1[0]) fprintf (Gbl.F.Out,"%s",UsrDat->Surname1); fprintf (Gbl.F.Out,"" @@ -2655,18 +2650,21 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, /* Surname 2 */ fprintf (Gbl.F.Out,"" - "" + "" "%s:" "" "", - ClassForm,Col1Width, + ClassForm,C2_WIDTH, Txt_Surname_2, - ClassData,Cols2and3Width); + ClassData,C3_WIDTH + C4_WIDTH); if (DataForm) fprintf (Gbl.F.Out,"", - Usr_MAX_LENGTH_USR_NAME_OR_SURNAME,UsrDat->Surname2); + " style=\"width:%upx;\" maxlength=\"%u\" value=\"%s\" />", + C3_WIDTH + C4_WIDTH - 40, + Usr_MAX_LENGTH_USR_NAME_OR_SURNAME, + UsrDat->Surname2); else if (UsrDat->Surname2[0]) fprintf (Gbl.F.Out,"%s", UsrDat->Surname2); @@ -2675,19 +2673,22 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, /* First name */ fprintf (Gbl.F.Out,"" - "" + "" "%s", - ClassForm,Col1Width,Txt_First_name); + ClassForm,C2_WIDTH,Txt_First_name); if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) fprintf (Gbl.F.Out,"*"); fprintf (Gbl.F.Out,":" "", - ClassData,Cols2and3Width); + ClassData,C3_WIDTH + C4_WIDTH); if (DataForm) fprintf (Gbl.F.Out,"", - Usr_MAX_LENGTH_USR_NAME_OR_SURNAME,UsrDat->FirstName); + " style=\"width:%upx;\" maxlength=\"%u\" value=\"%s\" />", + C3_WIDTH + C4_WIDTH - 40, + Usr_MAX_LENGTH_USR_NAME_OR_SURNAME, + UsrDat->FirstName); else if (UsrDat->FirstName[0]) fprintf (Gbl.F.Out,"%s",UsrDat->FirstName); fprintf (Gbl.F.Out,"" @@ -2699,13 +2700,13 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "%s", - ClassForm,Col1Width,Txt_Country); + ClassForm,C2_WIDTH,Txt_Country); if (TypeOfView == Rec_FORM_MY_COMMON_RECORD) fprintf (Gbl.F.Out,"*"); fprintf (Gbl.F.Out,":" "", - ClassData,Cols2and3Width); + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) { if (DataForm) @@ -2717,9 +2718,10 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, Cty_GetListCountries (Cty_GET_ONLY_COUNTRIES); } - fprintf (Gbl.F.Out,"" "" - "",Txt_Another_country); @@ -2755,14 +2757,16 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_Place_of_origin, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_Place_of_origin, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) { if (DataForm) fprintf (Gbl.F.Out,"", - Cns_MAX_LENGTH_STRING,UsrDat->OriginPlace); + " style=\"width:%upx;\" maxlength=\"%u\" value=\"%s\" />", + C3_WIDTH + C4_WIDTH - 40, + Cns_MAX_LENGTH_STRING, + UsrDat->OriginPlace); else if (UsrDat->OriginPlace[0]) fprintf (Gbl.F.Out,"%s",UsrDat->OriginPlace); } @@ -2777,8 +2781,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_Date_of_birth, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_Date_of_birth, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) { if (DataForm) @@ -2801,14 +2805,16 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_Local_address, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_Local_address, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) { if (DataForm) fprintf (Gbl.F.Out,"", - Cns_MAX_LENGTH_STRING,UsrDat->LocalAddress); + " style=\"width:%upx;\" maxlength=\"%u\" value=\"%s\" />", + C3_WIDTH + C4_WIDTH - 40, + Cns_MAX_LENGTH_STRING, + UsrDat->LocalAddress); else if (UsrDat->LocalAddress[0]) fprintf (Gbl.F.Out,"%s",UsrDat->LocalAddress); } @@ -2823,14 +2829,16 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_Phone, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_Phone, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) { if (DataForm) fprintf (Gbl.F.Out,"", - Usr_MAX_LENGTH_PHONE,UsrDat->LocalPhone); + " style=\"width:%upx;\" maxlength=\"%u\" value=\"%s\" />", + C3_WIDTH + C4_WIDTH - 40, + Usr_MAX_LENGTH_PHONE, + UsrDat->LocalPhone); else if (UsrDat->LocalPhone[0]) fprintf (Gbl.F.Out,"%s",UsrDat->LocalPhone); } @@ -2845,14 +2853,16 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_Family_address, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_Family_address, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) { if (DataForm) fprintf (Gbl.F.Out,"", - Cns_MAX_LENGTH_STRING,UsrDat->FamilyAddress); + " style=\"width:%upx;\" maxlength=\"%u\" value=\"%s\" />", + C3_WIDTH + C4_WIDTH - 40, + Cns_MAX_LENGTH_STRING, + UsrDat->FamilyAddress); else if (UsrDat->FamilyAddress[0]) fprintf (Gbl.F.Out,"%s",UsrDat->FamilyAddress); } @@ -2867,14 +2877,16 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_Phone, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_Phone, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) { if (DataForm) fprintf (Gbl.F.Out,"", - Usr_MAX_LENGTH_PHONE,UsrDat->FamilyPhone); + " style=\"width:%upx;\" maxlength=\"%u\" value=\"%s\" />", + C3_WIDTH + C4_WIDTH - 40, + Usr_MAX_LENGTH_PHONE, + UsrDat->FamilyPhone); else if (UsrDat->FamilyPhone[0]) fprintf (Gbl.F.Out,"%s",UsrDat->FamilyPhone); } @@ -2889,13 +2901,14 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_USER_comments, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_USER_comments, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) { if (DataForm) fprintf (Gbl.F.Out,"", + " style=\"width:%upx;\">%s", + C3_WIDTH + C4_WIDTH - 40, UsrDat->Comments); else if (UsrDat->Comments[0]) { @@ -2919,8 +2932,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_Institution, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_Institution, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) { if (UsrDat->InsCod > 0) @@ -2944,8 +2957,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_Centre, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_Centre, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) { if (UsrDat->Tch.CtrCod > 0) @@ -2971,8 +2984,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_Department, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_Department, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) { if (UsrDat->Tch.DptCod > 0) @@ -2998,8 +3011,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_Office, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_Office, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) fprintf (Gbl.F.Out,"%s",UsrDat->Tch.Office); fprintf (Gbl.F.Out,"" @@ -3013,8 +3026,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView, "" "", - ClassForm,Col1Width,Txt_Phone, - ClassData,Cols2and3Width); + ClassForm,C2_WIDTH,Txt_Phone, + ClassData,C3_WIDTH + C4_WIDTH); if (ShowData) fprintf (Gbl.F.Out,"%s",UsrDat->Tch.OfficePhone); fprintf (Gbl.F.Out,"" diff --git a/swad_record.h b/swad_record.h index 3f541bbe5..9265bcd23 100644 --- a/swad_record.h +++ b/swad_record.h @@ -36,10 +36,10 @@ /*****************************************************************************/ #define Rec_WIDTH_SHARE_RECORD_BIG 580 -#define Rec_WIDTH_SHARE_RECORD_SMALL 540 -#define Rec_WIDTH_SHARE_RECORD_PRINT 540 -#define Rec_WIDTH_COURSE_RECORD Rec_WIDTH_SHARE_RECORD_SMALL -#define Rec_WIDTH_COURSE_RECORD_PRINT Rec_WIDTH_SHARE_RECORD_PRINT +// #define Rec_WIDTH_SHARE_RECORD_SMALL 540 +// #define Rec_WIDTH_SHARE_RECORD_PRINT 540 +// #define Rec_WIDTH_COURSE_RECORD Rec_WIDTH_SHARE_RECORD_BIG +// #define Rec_WIDTH_COURSE_RECORD_PRINT Rec_WIDTH_SHARE_RECORD_BIG #define Rec_MAX_LENGTH_NAME_FIELD 255 #define Rec_MIN_LINES_IN_EDITION_FIELD 1 diff --git a/swad_text.c b/swad_text.c index 85856c4ea..8ce08761f 100644 --- a/swad_text.c +++ b/swad_text.c @@ -360,7 +360,7 @@ const char *Txt_Go_to_NO_HTML[Txt_NUM_LANGUAGES] = // Don't use HTML entities li const char *Txt_If_you_just_request_from_X_the_confirmation_of_your_email_Y_NO_HTML = // Don't use HTML entities like è here #if L==0 "Si usted acaba de solicitar desde %s" - " la confirmación de su correo electrónico %s," + " la confirmación de su correo %s," " pulse en el siguiente enlace" " para confirmar dicha dirección:" " %s/?act=%ld&key=%s\n\n" @@ -387,7 +387,7 @@ const char *Txt_If_you_just_request_from_X_the_confirmation_of_your_email_Y_NO_H " if you have confirmed your e-mail address.\n\n"; #elif L==3 "Si usted acaba de solicitar desde %s" - " la confirmación de su correo electrónico %s," + " la confirmación de su correo %s," " pulse en el siguiente enlace" " para confirmar dicha dirección:" " %s/?act=%ld&key=%s\n\n" @@ -405,7 +405,7 @@ const char *Txt_If_you_just_request_from_X_the_confirmation_of_your_email_Y_NO_H " if you have confirmed your e-mail address.\n\n"; // Besoin de traduction #elif L==5 "Si usted acaba de solicitar desde %s" - " la confirmación de su correo electrónico %s," + " la confirmación de su correo %s," " pulse en el siguiente enlace" " para confirmar dicha dirección:" " %s/?act=%ld&key=%s\n\n" @@ -443,17 +443,17 @@ const char *Txt_If_you_just_request_from_X_the_confirmation_of_your_email_Y_NO_H const char *Txt_If_you_no_longer_wish_to_receive_email_notifications_NO_HTML[Txt_NUM_LANGUAGES] = // Don't use HTML entities like è here { - "Si no desitgeu rebre més avisos per correu electrònicc," + "Si no desitgeu rebre més avisos per correu," " desactiveu la opció corresponent en les preferències del seu perfil.", "Wenn Sie nicht mehr erhalten möchten, E-Mail-Benachrichtigungen," " Deaktivieren Sie die Option in den Einstellungen Ihres Profils.", "If you no longer wish to receive e-mail notifications," " uncheck the option in the preferences of your profile.", - "Si no desea recibir más avisos por correo electrónico," + "Si no desea recibir más avisos por correo," " desactive la opción correspondiente en las preferencias de su perfil.", "Si vous ne souhaitez plus recevoir de notifications par e-mail," " décochez l'option dans les préférences de votre profil.", - "Si no desea recibir más avisos por correo electrónico," + "Si no desea recibir más avisos por correo," " desactive la opción correspondiente en las preferencias de su perfil.", // Okoteve traducción "Se non desideri più ricevere notifiche via e-mail," " deselezionare l'opzione nelle preferenze del tuo profilo.", @@ -724,12 +724,12 @@ const char *Txt_only_teachers_NO_HTML[Txt_NUM_LANGUAGES] = // Don't use HTML ent const char *Txt_Please_do_not_reply_to_this_automatically_generated_email_NO_HTML[Txt_NUM_LANGUAGES] = // Don't use HTML entities like è here { - "Si us plau, no respongui a aquest correu electrònic generat automàticament.", + "Si us plau, no respongui a aquest correu generat automàticament.", "Bitte, antworten Sie nicht auf diese automatisch generierte E-Mail.", "Please do not reply to this automatically generated e-mail.", - "Por favor, no responda a este correo electrónico generado automáticamente.", + "Por favor, no responda a este correo generado automáticamente.", "S'il vous plaît, ne pas répondre à ce courrier électronique généré automatiquement.", - "Por favor, no responda a este correo electrónico generado automáticamente.", // Okoteve traducción + "Por favor, no responda a este correo generado automáticamente.", // Okoteve traducción "Per favore, non rispondere a questa e-mail generata automaticamente.", "Prosimy nie odpowiadac na to automatycznie wygenerowany e-mail.", "Por favor, não responda a este e-mail gerado automaticamente.", @@ -787,13 +787,13 @@ const char *Txt_The_following_password_has_been_assigned_to_you_to_log_in_X_NO_H #elif L==3 "Se le ha asignado la siguiente contraseña para entrar en %s: %s\n" "Si desea activar esta nueva contraseña," - " debe entrar en %s con su ID (DNI/cédula), apodo o dirección de correo electrónico" + " debe entrar en %s con su ID (DNI/cédula), apodo o dirección de correo" " y esta nueva contraseña antes de %u días." " Una vez que haya entrado, puede cambiar la contraseña por otra.\n" "Si no accede con esta nueva contraseña," " seguirá teniendo la contraseña que tuviera hasta ahora.\n" "Si ha recibido este mensaje sin solicitarlo," - " se debe a que alguien que conoce su ID (DNI/cédula), su apodo o su dirección de correo electrónico" + " se debe a que alguien que conoce su ID (DNI/cédula), su apodo o su dirección de correo" " ha solicitado el envío de una nueva contraseña para usted.\n" "Esta nueva contraseña se ha enviado sólo a la dirección de correo %s," " que es la que aparece en su ficha.\n\n"; @@ -811,13 +811,13 @@ const char *Txt_The_following_password_has_been_assigned_to_you_to_log_in_X_NO_H #elif L==5 "Se le ha asignado la siguiente contraseña para entrar en %s: %s\n" "Si desea activar esta nueva contraseña," - " debe entrar en %s con su ID (DNI/cédula), apodo o dirección de correo electrónico" + " debe entrar en %s con su ID (DNI/cédula), apodo o dirección de correo" " y esta nueva contraseña antes de %u días." " Una vez que haya entrado, puede cambiar la contraseña por otra.\n" "Si no accede con esta nueva contraseña," " seguirá teniendo la contraseña que tuviera hasta ahora.\n" "Si ha recibido este mensaje sin solicitarlo," - " se debe a que alguien que conoce su ID (DNI/cédula), su apodo o su dirección de correo electrónico" + " se debe a que alguien que conoce su ID (DNI/cédula), su apodo o su dirección de correo" " ha solicitado el envío de una nueva contraseña para usted.\n" "Esta nueva contraseña se ha enviado sólo a la dirección de correo %s," " que es la que aparece en su ficha.\n\n"; // Okoteve traducción @@ -1264,7 +1264,7 @@ const char *Txt_A_face_marked_in_red_has_been_detected_ = const char *Txt_A_message_has_been_sent_to_email_address_X_to_confirm_that_address = // Warning: it is very important to include %s in the following sentences #if L==0 "Se ha enviado un mensaje" - " a la dirección de correo electrónico %s" + " a la dirección de correo %s" " para confirmar dicha dirección."; // Necessita traduccio #elif L==1 "A message has been sent" @@ -1276,7 +1276,7 @@ const char *Txt_A_message_has_been_sent_to_email_address_X_to_confirm_that_addre " to confirm that address."; #elif L==3 "Se ha enviado un mensaje" - " a la dirección de correo electrónico %s" + " a la dirección de correo %s" " para confirmar dicha dirección."; #elif L==4 "A message has been sent" @@ -1284,7 +1284,7 @@ const char *Txt_A_message_has_been_sent_to_email_address_X_to_confirm_that_addre " to confirm that address."; // Besoin de traduction #elif L==5 "Se ha enviado un mensaje" - " a la dirección de correo electrónico %s" + " a la dirección de correo %s" " para confirmar dicha dirección."; // Okoteve traducción #elif L==6 "A message has been sent" @@ -3428,7 +3428,7 @@ const char *Txt_Before_going_to_any_other_option_you_must_fill_your_record_card_ 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ó" - " ha de omplir la seva adreça de correu electrònic."; + " ha de omplir la seva adreça de correu."; #elif L==1 "Bevor ich auf jede andere Option" " müssen Sie Ihre E-Mail-Adresse ein."; @@ -3437,13 +3437,13 @@ const char *Txt_Before_going_to_any_other_option_you_must_fill_your_email_addres " you must fill your email address."; #elif L==3 "Antes de acceder a cualquier otra opción" - " debe rellenar su dirección de correo electrónico."; + " debe rellenar su dirección de correo."; #elif L==4 "Avant d'aller à une autre option" " vous devez remplir votre adresse e-mail."; #elif L==5 "Antes de acceder a cualquier otra opción" - " debe rellenar su dirección de correo electrónico."; // Okoteve traducción + " debe rellenar su dirección de correo."; // Okoteve traducción #elif L==6 "Prima di scegliere qualsiasi altra opzione" " devi compilare il tuo indirizzo e-mail."; @@ -4859,17 +4859,17 @@ const char *Txt_Confirm = const char *Txt_Confirm_email = #if L==0 - "Confirmar correu electrònic"; + "Confirmar correu"; #elif L==1 "E-Mail bestätigen"; #elif L==2 "Confirm e-mail"; #elif L==3 - "Confirmar correo electrónico"; + "Confirmar correo"; #elif L==4 - "Confirmer courrier électronique"; + "Confirmer courrier"; #elif L==5 - "Confirmar correo electrónico"; // Okoteve traducción + "Confirmar correo"; // Okoteve traducción #elif L==6 "Confermare e-mail"; #elif L==7 @@ -5844,17 +5844,17 @@ const char *Txt_Create_department = const char *Txt_Create_e_mail_message = #if L==0 - "Crear mensaje de correo electrónico"; // Necessita traduccio + "Crear mensaje de correo"; // Necessita traduccio #elif L==1 "Neue E-Mail-Nachricht"; #elif L==2 "Create e-mail message"; #elif L==3 - "Crear mensaje de correo electrónico"; + "Crear mensaje de correo"; #elif L==4 "Créer un e-mail message"; #elif L==5 - "Crear mensaje de correo electrónico"; // Okoteve traducción + "Crear mensaje de correo"; // Okoteve traducción #elif L==6 "Crea messaggio e-mail"; #elif L==7 @@ -6705,17 +6705,17 @@ const char *Txt_crs = // Abbreviation of "course" (three characters + dot) const char *Txt_Current_email = #if L==0 - "Correu electrònic actual"; + "Correu actual"; #elif L==1 "Aktueller E-Mail"; #elif L==2 "Current e-mail"; #elif L==3 - "Correo electrónico actual"; + "Correo actual"; #elif L==4 - "Courrier électronique actuel"; + "Courrier actuel"; #elif L==5 - "Correo electrónico actual"; // Okoteve traducción + "Correo actual"; // Okoteve traducción #elif L==6 "E-mail corrente"; #elif L==7 @@ -9835,15 +9835,15 @@ const char *Txt_Eliminating_X_users_who_were_not_enrolled_in_any_course_and_with const char *Txt_Email = #if L==0 - "Correu electrònic"; + "Correu"; #elif L==1 "E-Mail"; #elif L==2 "E-mail"; #elif L==3 - "Correo electrónico"; + "Correo"; #elif L==4 - "Courrier électronique"; + "Courrier"; #elif L==5 "Ñe'ẽveve"; #elif L==6 @@ -9856,28 +9856,28 @@ const char *Txt_Email = const char *Txt_Email_X_confirmed = // Warning: it is very important to include %s in the following sentences #if L==0 - "Correo electrónico %s confirmado"; // Necessita traduccio + "Correo %s confirmado"; // Necessita traduccio #elif L==1 - "E-mail %s confirmed"; // Need Übersetzung + "E-mail %s confirmed"; // Need Übersetzung #elif L==2 "E-mail %s confirmed"; #elif L==3 - "Correo electrónico %s confirmado"; + "Correo %s confirmado"; #elif L==4 - "E-mail %s confirmed"; // Besoin de traduction + "E-mail %s confirmed"; // Besoin de traduction #elif L==5 - "Correo electrónico %s confirmado"; // Okoteve traducción + "Correo %s confirmado"; // Okoteve traducción #elif L==6 - "E-mail %s confirmed"; // Bisogno di traduzione + "E-mail %s confirmed"; // Bisogno di traduzione #elif L==7 - "E-mail %s confirmed"; // Potrzebujesz tlumaczenie + "E-mail %s confirmed"; // Potrzebujesz tlumaczenie #elif L==8 - "E-mail %s confirmed"; // Necessita de tradução + "E-mail %s confirmed"; // Necessita de tradução #endif const char *Txt_Email_X_has_already_been_confirmed_before = // Warning: it is very important to include %s in the following sentences #if L==0 - "El correo electrónico %s" + "El correo %s" " ya había sido confirmado anteriormente."; // Necessita traduccio #elif L==1 "E-mail %s" @@ -9886,13 +9886,13 @@ const char *Txt_Email_X_has_already_been_confirmed_before = // Warning: it is ve "E-mail %s" " has already been confirmed before."; #elif L==3 - "El correo electrónico %s" + "El correo %s" " ya había sido confirmado anteriormente."; #elif L==4 "E-mail %s" " has already been confirmed before."; // Besoin de traduction #elif L==5 - "El correo electrónico %s" + "El correo %s" " ya había sido confirmado anteriormente."; // Okoteve traducción #elif L==6 "E-mail %s" @@ -9928,17 +9928,17 @@ const char *Txt_Email_new_password = const char *Txt_Email_X_removed = // Warning: it is very important to include %s in the following sentences #if L==0 - "Correu electrònic %s eliminat."; + "Correu %s eliminat."; #elif L==1 "E-Mail %s entfernt."; #elif L==2 "E-mail %s removed."; #elif L==3 - "Correo electrónico %s eliminado."; + "Correo %s eliminado."; #elif L==4 - "Courrier électronique %s supprimé."; + "Courrier %s supprimé."; #elif L==5 - "Correo electrónico %s eliminado."; // Okoteve traducción + "Correo %s eliminado."; // Okoteve traducción #elif L==6 "E-mail %s rimosso."; #elif L==7 @@ -10850,26 +10850,23 @@ const char *Txt_X_faces_marked_in_red_have_been_detected_ = // Warning: it is ve const char *Txt_Failed_email_confirmation_key = #if L==0 - "Error en la clave de confirmación" - " de correo electrónico."; // Necessita traduccio + "Error en la clave de confirmación de correo."; // Necessita traduccio #elif L==1 - "Failed email confirmation key."; // Need Übersetzung + "Failed email confirmation key."; // Need Übersetzung #elif L==2 "Failed email confirmation key."; #elif L==3 - "Error en la clave de confirmación" - " de correo electrónico."; + "Error en la clave de confirmación de correo."; #elif L==4 - "Failed email confirmation key."; // Besoin de traduction + "Failed email confirmation key."; // Besoin de traduction #elif L==5 - "Error en la clave de confirmación" - " de correo electrónico."; // Okoteve traducción + "Error en la clave de confirmación de correo."; // Okoteve traducción #elif L==6 - "Failed email confirmation key."; // Bisogno di traduzione + "Failed email confirmation key."; // Bisogno di traduzione #elif L==7 - "Failed email confirmation key."; // Potrzebujesz tlumaczenie + "Failed email confirmation key."; // Potrzebujesz tlumaczenie #elif L==8 - "Failed email confirmation key."; // Necessita de tradução + "Failed email confirmation key."; // Necessita de tradução #endif const char *Txt_Family_address = @@ -13533,38 +13530,55 @@ const char *Txt_If_you_have_an_Android_device_try_SWADroid = const char *Txt_If_you_have_forgotten_your_password_ = #if L==0 "Si usted ha olvidado su contraseña," - " se le enviará una nueva a la dirección de correo electrónico que escribió en su ficha personal."; // Necessita traduccio + " se le enviará una nueva" + " a la dirección de correo" + " que escribió en su ficha personal."; // Necessita traduccio #elif L==1 "Wenn Sie Ihr Passwort vergessen haben," - " eine neue wird die E-Mail von Ihnen angegebene Adresse in Ihren Profil gesendet werden vergessen."; + " eine neue wird" + " die E-Mail von Ihnen angegebene Adresse" + " in Ihren Profil gesendet werden vergessen."; #elif L==2 "If you have forgotten your password," - " a new one will be sent to the e-mail address you entered in your record."; + " a new one will be sent" + " to the e-mail address" + " you entered in your record."; #elif L==3 "Si usted ha olvidado su contraseña," - " se le enviará una nueva a la dirección de correo electrónico que escribió en su ficha personal."; + " se le enviará una nueva" + " a la dirección de correo" + " que escribió en su ficha personal."; #elif L==4 "Si vous avez oublié votre mot de passe," - " une nouvelle sera envoyé à l'adresse électronique que vous avez entré dans votre carte."; + " une nouvelle sera envoyé" + " à l'adresse électronique" + " que vous avez entré dans votre carte."; #elif L==5 "Si usted ha olvidado su contraseña," - " se le enviará una nueva a la dirección de correo electrónico que escribió en su ficha personal."; // Okoteve traducción + " se le enviará una nueva" + " a la dirección de correo" + " que escribió en su ficha personal."; // Okoteve traducción #elif L==6 "Se hai dimenticato la tua password," - " una nuova verrà inviata all'indirizzo e-mail che hai inserito nella tua scheda."; + " una nuova verrà inviata" + " all'indirizzo e-mail" + " che hai inserito nella tua scheda."; #elif L==7 "Jesli nie pamietasz hasla," - " nowe zostanie wyslane na adres e-mail, który wszedl w rekordzie."; + " nowe zostanie wyslane na adres e-mail," + " który wszedl w rekordzie."; #elif L==8 "Se você tiver esquecido sua senha," - " uma nova será enviada para o e-mail que você inseriu em seu cartão."; + " uma nova será enviada" + " para o e-mail" + " que você inseriu em seu cartão."; #endif const char *Txt_If_you_have_written_your_ID_nickname_or_email_correctly_ = #if L==0 "Si usted ha escrito correctamente su @apodo, correo o ID (DNI/cédula)," - " y la dirección de correo electrónico en su ficha es correcta," - " recibirá un correo electrónico con una nueva contraseña."; // Necessita traduccio + " y el correo en su ficha es correcto," + " recibirá un mensaje con una nueva contraseña."; // Necessita traduccio #elif L==1 "Wenn Sie Ihre @Benutzername, E-mail oder Ausweis-Nr.," " korrekt geschrieben wurden, und die E-Mail-Adresse auf Ihren Profil korrekt ist," @@ -13575,16 +13589,16 @@ const char *Txt_If_you_have_written_your_ID_nickname_or_email_correctly_ = " you will receive an e-mail with a new password."; #elif L==3 "Si usted ha escrito correctamente su @apodo, correo o ID (DNI/cédula)," - " y la dirección de correo electrónico en su ficha es correcta," - " recibirá un correo electrónico con una nueva contraseña."; + " y el correo en su ficha es correcto," + " recibirá un mensaje con una nueva contraseña."; #elif L==4 "Si vous avez écrit votre @surnom, courrier ou numéro d'identité correctement," " ainsi que l'adresse e-mail sur votre carte est correct," " vous recevrez un e-mail avec un nouveau mot de passe."; #elif L==5 "Si usted ha escrito correctamente su @apodo, correo o ID (DNI/cédula)," - " y la dirección de correo electrónico en su ficha es correcta," - " recibirá un correo electrónico con una nueva contraseña."; // Okoteve traducción + " y el correo en su ficha es correcto," + " recibirá un mensaje con una nueva contraseña."; // Okoteve traducción #elif L==6 "Se hai scritto il tuo nome utente, e-mail o numero di carta d'identità correttamente," " e l'indirizzo e-mail della tua scheda è corretto," @@ -19733,7 +19747,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = , // ActMaiStd #if L==0 - "Creació d'un missatge de correu electrònic" + "Creació d'un missatge de correu" " per enviar-lo a estudiants d'aquesta assignatura" " utilitzant el programa client de correu predeterminat en el meu sistema" #elif L==1 @@ -19741,13 +19755,13 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==2 "E-mail" #elif L==3 - "Creación de un mensaje de correo electrónico" + "Creación de un mensaje de correo" " para enviarlo a estudiantes de esta asignatura" " usando el programa cliente de correo predeterminado en mi sistema" #elif L==4 "Courrier électronique" #elif L==5 - "Creación de un mensaje de correo electrónico" + "Creación de un mensaje de correo" " para enviarlo a estudiantes de esta asignatura" " usando el programa cliente de correo predeterminado en mi sistema"// Okoteve traducción #elif L==6 @@ -22279,17 +22293,17 @@ const char *Txt_New_department = const char *Txt_New_email = #if L==0 - "Nou correu electr`nic"; + "Nou correu"; #elif L==1 "Neues E-Mail"; #elif L==2 "New e-mail"; #elif L==3 - "Nuevo correo electrónico"; + "Nuevo correo"; #elif L==4 - "Nouveau courrier électronique"; + "Nouveau courrier"; #elif L==5 - "Nuevo correo electrónico"; // Okoteve traducción + "Nuevo correo"; // Okoteve traducción #elif L==6 "Nuovo e-mail"; #elif L==7 @@ -23641,17 +23655,17 @@ const char *Txt_No_of_users = const char *Txt_No_of_users_who_will_be_notified_by_e_mail = #if L==0 - "Nº de usuarios que serán notificados por correo electrónico"; // Necessita traduccio + "Nº de usuarios que serán notificados por correo"; // Necessita traduccio #elif L==1 "Anzahl der Benutzer, um benachrichtigt zu werden per E-Mail"; #elif L==2 "No. of users who will be notified by e-mail"; #elif L==3 - "Nº de usuarios que serán notificados por correo electrónico"; + "Nº de usuarios que serán notificados por correo"; #elif L==4 "Nombre d'utilisateurs qui seront notifiés par e-mail"; #elif L==5 - "Nº de usuarios que serán notificados por correo electrónico"; // Okoteve traducción + "Nº de usuarios que serán notificados por correo"; // Okoteve traducción #elif L==6 "Numero di utenti che saranno notificati via e-mail"; #elif L==7 @@ -28374,17 +28388,17 @@ const char *Txt_Remove_department = const char *Txt_Remove_email_X = // Warning: it is very important to include %s in the following sentences #if L==0 - "Eliminar correu electrònic %s"; + "Eliminar correu %s"; #elif L==1 "Entfernen E-Mail %s"; #elif L==2 "Remove e-mail %s"; #elif L==3 - "Eliminar correo electrónico %s"; + "Eliminar correo %s"; #elif L==4 - "Supprimer courrier électronique %s"; + "Supprimer courrier %s"; #elif L==5 - "Eliminar correo electrónico %s"; // Okoteve traducción + "Eliminar correo %s"; // Okoteve traducción #elif L==6 "Rimuovere e-mail %s"; #elif L==7 @@ -36861,17 +36875,17 @@ const char *Txt_Students_now_are_required_to_read_this_information = const char *Txt_X_students_who_have_e_mail = // Warning: it is very important to include %u and %f in the following sentences #if L==0 - "%u estudiantes con correo electrónico (%.1f%% de %u estudiantes)"; // Necessita traduccio + "%u estudiantes con correo (%.1f%% de %u estudiantes)"; // Necessita traduccio #elif L==1 "%u Studenten mit E-Mail (%.1f%% von %u Studenten)"; #elif L==2 "%u students who have e-mail (%.1f%% of %u students)"; #elif L==3 - "%u estudiantes con correo electrónico (%.1f%% de %u estudiantes)"; + "%u estudiantes con correo (%.1f%% de %u estudiantes)"; #elif L==4 "%u étudiants qui ont l'e-mail (%.1f%% de %u étudiants)"; #elif L==5 - "%u estudiantes con correo electrónico (%.1f%% de %u estudiantes)"; // Okoteve traducción + "%u estudiantes con correo (%.1f%% de %u estudiantes)"; // Okoteve traducción #elif L==6 "%u studenti che hanno e-mail (%.1f%% di %u studenti)"; #elif L==7 @@ -36883,7 +36897,7 @@ const char *Txt_X_students_who_have_e_mail = // Warning: it is very important to const char *Txt_Students_who_have_accepted_and_who_have_e_mail = #if L==0 "Estudiantes que han aceptado la inscripción" - " y que tienen correo electrónico"; // Necessita traduccio + " y que tienen correo"; // Necessita traduccio #elif L==1 "Studenten die akzeptiert wurden" " und die E-Mail"; @@ -36892,13 +36906,13 @@ const char *Txt_Students_who_have_accepted_and_who_have_e_mail = " and who have e-mail"; #elif L==3 "Estudiantes que han aceptado la inscripción" - " y que tienen correo electrónico"; + " y que tienen correo"; #elif L==4 "Étudiants qui ont accepté" " et qui ont l'e-mail"; #elif L==5 "Estudiantes que han aceptado la inscripción" - " y que tienen correo electrónico"; // Okoteve traducción + " y que tienen correo"; // Okoteve traducción #elif L==6 "Studenti che hanno aderito" " e che hanno e-mail"; @@ -36913,7 +36927,7 @@ const char *Txt_Students_who_have_accepted_and_who_have_e_mail = const char *Txt_X_students_who_have_accepted_and_who_have_e_mail = // Warning: it is very important to include %u and %f in the following sentences #if L==0 "%u estudiantes que han aceptado la inscripción" - " y que tienen correo electrónico (%.1f%% de %u estudiantes)"; // Necessita traduccio + " y que tienen correo (%.1f%% de %u estudiantes)"; // Necessita traduccio #elif L==1 "%u Studenten die akzeptiert wurden" " und die E-Mail (%.1f%% von %u Studenten)"; @@ -36922,13 +36936,13 @@ const char *Txt_X_students_who_have_accepted_and_who_have_e_mail = // Warning: i " and who have e-mail (%.1f%% of %u students)"; #elif L==3 "%u estudiantes que han aceptado la inscripción" - " y que tienen correo electrónico (%.1f%% de %u estudiantes)"; + " y que tienen correo (%.1f%% de %u estudiantes)"; #elif L==4 "%u étudiants qui ont accepté" " et qui ont l'e-mail (%.1f%% de %u étudiants)"; #elif L==5 "%u estudiantes que han aceptado la inscripción" - " y que tienen correo electrónico (%.1f%% de %u estudiantes)"; // Okoteve traducción + " y que tienen correo (%.1f%% de %u estudiantes)"; // Okoteve traducción #elif L==6 "%u studenti che hanno aderito" " e che hanno e-mail (%.1f%% di %u studenti)"; @@ -39153,23 +39167,23 @@ const char *Txt_The_department_X_has_been_renamed_as_Y = // Warning: it is very const char *Txt_The_email_X_has_been_confirmed = // Warning: it is very important to include %s in the following sentences #if L==0 - "El correo electrónico %s ha sido confirmado."; // Necessita traduccio + "El correo %s ha sido confirmado."; // Necessita traduccio #elif L==1 - "The e-mail %s has been confirmed."; // Need Übersetzung + "The e-mail %s has been confirmed."; // Need Übersetzung #elif L==2 "The e-mail %s has been confirmed."; #elif L==3 - "El correo electrónico %s ha sido confirmado."; + "El correo %s ha sido confirmado."; #elif L==4 - "The e-mail %s has been confirmed."; // Besoin de traduction + "The e-mail %s has been confirmed."; // Besoin de traduction #elif L==5 - "El correo electrónico %s ha sido confirmado."; // Okoteve traducción + "El correo %s ha sido confirmado."; // Okoteve traducción #elif L==6 - "The e-mail %s has been confirmed."; // Bisogno di traduzione + "The e-mail %s has been confirmed."; // Bisogno di traduzione #elif L==7 - "The e-mail %s has been confirmed."; // Potrzebujesz tlumaczenie + "The e-mail %s has been confirmed."; // Potrzebujesz tlumaczenie #elif L==8 - "The e-mail %s has been confirmed."; // Necessita de tradução + "The e-mail %s has been confirmed."; // Necessita de tradução #endif const char *Txt_The_email_address_entered_X_is_not_valid = // Warning: it is very important to include %s in the following sentences @@ -39234,19 +39248,19 @@ const char *Txt_The_email_address_X_had_been_registered_by_another_user = // War const char *Txt_The_email_address_has_not_been_confirmed = #if L==0 - "La dirección de correo electrónico" + "La dirección de correo" " no ha podido confirmarse."; // Necessita traduccio #elif L==1 "The email address has not been confirmed."; // Need Übersetzung #elif L==2 "The email address has not been confirmed."; #elif L==3 - "La dirección de correo electrónico" + "La dirección de correo" " no ha podido confirmarse."; #elif L==4 "The email address has not been confirmed."; // Besoin de traduction #elif L==5 - "La dirección de correo electrónico" + "La dirección de correo" " no ha podido confirmarse."; // Okoteve traducción #elif L==6 "The email address has not been confirmed."; // Bisogno di traduzione @@ -43908,17 +43922,17 @@ const char *Txt_There_is_no_user_with_nickname_X = // Warning: it is very import const char *Txt_There_was_a_problem_sending_an_email_automatically = #if L==0 - "Ha ocurrido un problema enviando automáticamente un correo electrónico."; // Necessita traduccio + "Ha ocurrido un problema enviando automáticamente un correo."; // Necessita traduccio #elif L==1 "There was a problem sending an email automatically."; // Übersetzung notwendig #elif L==2 "There was a problem sending an email automatically."; #elif L==3 - "Ha ocurrido un problema enviando automáticamente un correo electrónico."; + "Ha ocurrido un problema enviando automáticamente un correo."; #elif L==4 "There was a problem sending an email automatically."; // Besoin de traduction #elif L==5 - "Ha ocurrido un problema enviando automáticamente un correo electrónico."; // Okoteve traducción + "Ha ocurrido un problema enviando automáticamente un correo."; // Okoteve traducción #elif L==6 "C'è stato un problema inviando automaticamente un'e-mail."; #elif L==7 @@ -48716,23 +48730,23 @@ const char *Txt_You_can_not_create_links_here = const char *Txt_You_can_not_delete_your_current_email = #if L==0 - "No puede eliminar su correo electrónico actual."; // Necessita traduccio + "No puede eliminar su correo actual."; // Necessita traduccio #elif L==1 - "You can not delete your current e-mail."; // Need Übersetzung + "You can not delete your current e-mail."; // Need Übersetzung #elif L==2 "You can not delete your current e-mail."; #elif L==3 - "No puede eliminar su correo electrónico actual."; + "No puede eliminar su correo actual."; #elif L==4 - "You can not delete your current e-mail."; // Besoin de traduction + "You can not delete your current e-mail."; // Besoin de traduction #elif L==5 - "No puede eliminar su correo electrónico actual."; // Okoteve traducción + "No puede eliminar su correo actual."; // Okoteve traducción #elif L==6 "Non puoi cancellare il tuo e-mail attuale."; #elif L==7 - "You can not delete your current e-mail."; // Potrzebujesz tlumaczenie + "You can not delete your current e-mail."; // Potrzebujesz tlumaczenie #elif L==8 - "You can not delete your current e-mail."; // Necessita de tradução + "You can not delete your current e-mail."; // Necessita de tradução #endif const char *Txt_You_can_not_delete_your_current_nickname = @@ -49691,9 +49705,9 @@ const char *Txt_You_can_only_perform_X_further_actions_ = // Warning: it is very const char *Txt_You_can_only_receive_email_notifications_if_ = #if L==0 - "Sólo podrá recibir notificaciones por correo electrónico" + "Sólo podrá recibir notificaciones por correo" " si su dirección de correo termina en uno de los dominios" - " listados en PLATAFORMA > Dominios."; // Necessita traduccio + " listados en PLATAFORMA > Dominios."; // Necessita traduccio #elif L==1 "You can only receive email notifications" " if your email ends in one of the domains" @@ -49703,7 +49717,7 @@ const char *Txt_You_can_only_receive_email_notifications_if_ = " if your email ends in one of the domains" " listed in SYSTEM > Domains."; #elif L==3 - "Sólo podrá recibir notificaciones por correo electrónico" + "Sólo podrá recibir notificaciones por correo" " si su dirección de correo termina en uno de los dominios" " listados en PLATAFORMA > Dominios."; #elif L==4 @@ -49711,7 +49725,7 @@ const char *Txt_You_can_only_receive_email_notifications_if_ = " if your email ends in one of the domains" " listed in SYSTEM > Domains."; // Besoin de traduction #elif L==5 - "Sólo podrá recibir notificaciones por correo electrónico" + "Sólo podrá recibir notificaciones por correo" " si su dirección de correo termina en uno de los dominios" " listados en PLATAFORMA > Dominios."; // Okoteve traducción #elif L==6 @@ -51594,7 +51608,7 @@ const char *Txt_Your_comment_has_been_updated = const char *Txt_Your_email_address_X_has_been_registered_successfully = // Warning: it is very important to include %s in the following sentences #if L==0 - "Su correo electrónico %s" + "Su correo %s" " se ha registrado correctamente."; // Necessita traduccio #elif L==1 "Your e-mail address %s" @@ -51603,13 +51617,13 @@ const char *Txt_Your_email_address_X_has_been_registered_successfully = // Warni "Your e-mail address %s" " has been registered successfully."; #elif L==3 - "Su correo electrónico %s" + "Su correo %s" " se ha registrado correctamente."; #elif L==4 "Your e-mail address %s" " has been registered successfully."; // Besoin de traduction #elif L==5 - "Su correo electrónico %s" + "Su correo %s" " se ha registrado correctamente."; // Okoteve traducción #elif L==6 "Il tuo e-mail %s" diff --git a/swad_timetable.c b/swad_timetable.c index 51bf14b23..e6a16e425 100644 --- a/swad_timetable.c +++ b/swad_timetable.c @@ -781,7 +781,7 @@ static void TT_DrawTimeTable (void) } /***** Table start *****/ - fprintf (Gbl.F.Out,""); + fprintf (Gbl.F.Out,"
"); /***** Top row used for column adjustement *****/ TT_TimeTableDrawAdjustRow ();