From c8430ea406a975bd117b3d20a3622d6553609bf6 Mon Sep 17 00:00:00 2001 From: acanas Date: Thu, 12 May 2022 14:42:15 +0200 Subject: [PATCH] Version 21.95.5: May 12, 2022 Fixing design of dark theme. --- css/{swad21.95.4.css => swad21.95.5.css} | 30 +-- icon/ejexizq24x1.gif | Bin 81 -> 0 bytes icon/ejey24x30.gif | Bin 130 -> 0 bytes icon/ejey24x60.gif | Bin 161 -> 0 bytes icon/y30x1.png | Bin 0 -> 73 bytes icon/y30x30.png | Bin 0 -> 102 bytes icon/y30x60.png | Bin 0 -> 114 bytes swad_changelog.h | 13 +- swad_config.h | 4 + swad_layout.c | 6 +- swad_statistic.c | 231 ++++++++++++++--------- swad_text.c | 74 ++++---- 12 files changed, 211 insertions(+), 147 deletions(-) rename css/{swad21.95.4.css => swad21.95.5.css} (99%) delete mode 100644 icon/ejexizq24x1.gif delete mode 100644 icon/ejey24x30.gif delete mode 100644 icon/ejey24x60.gif create mode 100644 icon/y30x1.png create mode 100644 icon/y30x30.png create mode 100644 icon/y30x60.png diff --git a/css/swad21.95.4.css b/css/swad21.95.5.css similarity index 99% rename from css/swad21.95.4.css rename to css/swad21.95.5.css index 12caaeab..9d925fa1 100644 --- a/css/swad21.95.4.css +++ b/css/swad21.95.5.css @@ -110,7 +110,7 @@ a:link, a:visited, a:active } a:hover /* Default ==> underlined */ { - text-decoration:underline; + text-decoration:underline; opacity:1; } /****************** Layout (the whole page with a background) ****************/ @@ -1673,7 +1673,6 @@ a:hover img.CENTER_PHOTO_SHOW .BT_LINK:hover { cursor:pointer; - /* text-decoration:underline; */ } /****************************** Course program *******************************/ @@ -3933,18 +3932,21 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;} } /************************************* Log ***********************************/ -.LOG - { - font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; - font-size:11pt; - color:#404040; - } -.LOG_R - { - font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; - font-size:11pt; - color:red; - } +.LOG_WHITE, +.LOG_GREY, +.LOG_PURPLE, +.LOG_BLUE, +.LOG_YELLOW, +.LOG_PINK {color:#404040; font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; font-size:11pt;} +.LOG_DARK {color:#d0d0d0; font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; font-size:11pt;} + +.LOG_R_WHITE, +.LOG_R_GREY, +.LOG_R_PURPLE, +.LOG_R_BLUE, +.LOG_R_YELLOW, +.LOG_R_PINK {color:#660000; font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; font-size:11pt;} +.LOG_R_DARK {color:#ff8080; font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; font-size:11pt;} /***************************** Exam announcement *****************************/ /* Bottom space is used for signatures */ diff --git a/icon/ejexizq24x1.gif b/icon/ejexizq24x1.gif deleted file mode 100644 index 7bfcb4084fac103827cd9f5cbe273abd67c140ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81 ucmZ?wbhEHblwe?F*v!E2;K76c|Nk=(4Rk;%L3$Zj*bGj1uAZvEU=091o(nwy diff --git a/icon/ejey24x30.gif b/icon/ejey24x30.gif deleted file mode 100644 index 21dabb6206c70f0cbd5d35062fd95c86d70d1242..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmZ?wbhEHblwgo!*v!E2;K76c|Nk=(4Rk;%L3$Zj%neR>uAcfJYwq^>cb~T^h4(#o uTXyAC()y?SjH8!-pE-T^je7f#HKrcb~T^h4(#o zTXyAC()y?SjH8!-pE-T^je7f#HKrGHE1CNt;Wf6@`5Bi4O1X(Na#mk(dfe9K((PZLlhgQu&X%Q~loCIAzo9$5eY literal 0 HcmV?d00001 diff --git a/icon/y30x60.png b/icon/y30x60.png new file mode 100644 index 0000000000000000000000000000000000000000..e7cae58fa6fe322aa7372cb0fc0a86528aae9c7e GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^azJdu!3HD?L%8MxDN9cm$B>A_Z_gU?G8phMZ&>li zvF+rsh5quh8zwX7-ha{&p(ECPG-)F`b??XejVxlbP0l+XkK0ske- literal 0 HcmV?d00001 diff --git a/swad_changelog.h b/swad_changelog.h index 287028ff..1cf5f6cb 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -606,12 +606,19 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate TODO: Attach pdf files in multimedia. */ -#define Log_PLATFORM_VERSION "SWAD 21.95.4 (2022-05-12)" -#define CSS_FILE "swad21.95.4.css" +#define Log_PLATFORM_VERSION "SWAD 21.95.5 (2022-05-12)" +#define CSS_FILE "swad21.95.5.css" #define JS_FILE "swad21.92.js" /* - Version 21.95.4: May 12, 2022 SWADroid image updated. (323445 lines) + Version 21.95.5: May 12, 2022 Some messages translated. + Fixing design of dark theme. (? lines) Copy the following icons to icon public directory: +sudo cp icon/y30x1.png /var/www/html/swad/icon/ +sudo cp icon/y30x30.png /var/www/html/swad/icon/ +sudo cp icon/y30x60.png /var/www/html/swad/icon/ + + Version 21.95.4: May 12, 2022 SWADroid image updated. (323445 lines) +Copy the following icon to icon public directory: sudo cp icon/SWADroid300x650.png /var/www/html/swad/icon/ Version 21.95.3: May 09, 2022 Fixed bug inserting automatic links. Reported by Javier Fernández Baldomero and others. (323439 lines) diff --git a/swad_config.h b/swad_config.h index 42cc61f9..d1068592 100644 --- a/swad_config.h +++ b/swad_config.h @@ -242,6 +242,10 @@ /* Email */ #define Cfg_AUTOMATIC_EMAIL_PASSWORD DONT_PUBLISH_SMTP_PASSWORD // Email user's password for automatic emails +/* SWADroid */ +#define Cfg_SWADROID_URL "https://play.google.com/store/apps/details?id=es.ugr.swad.swadroid" +#define Cfg_SWADROID_ICO "SWADroid300x650.png" + /* About SWAD */ #define Cfg_ABOUT_SWAD_URL "https://github.com/acanas/swad-core/wiki/UserGuide.en" diff --git a/swad_layout.c b/swad_layout.c index 3d3fda4b..4bdadd11 100644 --- a/swad_layout.c +++ b/swad_layout.c @@ -1159,10 +1159,10 @@ static void Lay_ShowRightColumn (void) { /***** SWADroid advertisement *****/ HTM_DIV_Begin ("class=\"LEFT_RIGHT_CELL\""); - HTM_A_Begin ("href=\"https://play.google.com/store/apps/details?id=es.ugr.swad.swadroid\"" - " target=\"_blank\" title=\"%s\"", + HTM_A_Begin ("href=\"%s\" target=\"_blank\" title=\"%s\"", + Cfg_SWADROID_URL, Txt_If_you_have_an_Android_device_try_SWADroid); - HTM_IMG (Cfg_URL_ICON_PUBLIC,"SWADroid300x650.png","SWADroid", + HTM_IMG (Cfg_URL_ICON_PUBLIC,Cfg_SWADROID_ICO,NULL, "class=\"SWADROID\""); HTM_A_End (); HTM_DIV_End (); diff --git a/swad_statistic.c b/swad_statistic.c index 57471586..c60d5c4a 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -133,9 +133,9 @@ static void Sta_ShowNumHitsPerYear (Sta_CountType_t CountType, static void Sta_ShowNumHitsPerHour (unsigned NumHits, MYSQL_RES *mysql_res); static void Sta_WriteAccessHour (unsigned Hour,struct Sta_Hits *Hits,unsigned ColumnWidth); -static void Sta_ShowAverageAccessesPerMinute (unsigned NumHits,MYSQL_RES *mysql_res); +static void Sta_ShowNumHitsPerMinute (unsigned NumHits,MYSQL_RES *mysql_res); static void Sta_WriteLabelsXAxisAccMin (double IncX,const char *Format); -static void Sta_WriteAccessMinute (unsigned Minute,double HitsNum,double MaxX); +static void Sta_WriteHitsMinute (unsigned Minute,double HitsNum,double MaxX); static void Sta_ShowNumHitsPerAction (Sta_CountType_t CountTypes, unsigned NumHits, MYSQL_RES *mysql_res); @@ -780,7 +780,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse) /***** Set table where to find depending on initial date *****/ /* If initial day is older than current day minus Cfg_DAYS_IN_RECENT_LOG, then use recent log table, else use historic log table */ - LogTable = (Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&Gbl.Now.Date) + LogTable = (Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date, + &Gbl.Now.Date) <= Cfg_DAYS_IN_RECENT_LOG) ? "log_recent" : "log"; @@ -902,7 +903,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse) } /***** Check if range of dates is forbidden for me *****/ - NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&Gbl.DateRange.DateEnd.Date); + NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date, + &Gbl.DateRange.DateEnd.Date); ICanQueryWholeRange = (Gbl.Usrs.Me.Role.Logged >= Rol_TCH && Stats.GlobalOrCourse == Sta_SHOW_COURSE_ACCESSES) || (Gbl.Usrs.Me.Role.Logged == Rol_TCH && Gbl.Scope.Current == HieLvl_CRS) || (Gbl.Usrs.Me.Role.Logged == Rol_DEG_ADM && (Gbl.Scope.Current == HieLvl_DEG || @@ -972,7 +974,7 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse) break; case Sta_CLICKS_CRS_PER_MINUTE: case Sta_CLICKS_GBL_PER_MINUTE: - Sta_ShowAverageAccessesPerMinute (NumHits,mysql_res); + Sta_ShowNumHitsPerMinute (NumHits,mysql_res); break; case Sta_CLICKS_CRS_PER_ACTION: case Sta_CLICKS_GBL_PER_ACTION: @@ -1230,23 +1232,27 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats, HTM_TR_Begin (NULL); /* Write the number of row */ - HTM_TD_Begin ("class=\"LOG RT %s\"",The_GetColorRows ()); + HTM_TD_Begin ("class=\"RT LOG_%s %s\"", + The_GetSuffix (),The_GetColorRows ()); HTM_TxtF ("%u ",NumRow); HTM_TD_End (); /* Write the user's ID if user is a student */ - HTM_TD_Begin ("class=\"LOG CT %s\"",The_GetColorRows ()); + HTM_TD_Begin ("class=\"CT LOG_%s %s\"", + The_GetSuffix (),The_GetColorRows ()); ID_WriteUsrIDs (&UsrDat,NULL); HTM_NBSP (); HTM_TD_End (); /* Write the first name and the surnames */ - HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ()); + HTM_TD_Begin ("class=\"LT LOG_%s %s\"", + The_GetSuffix (),The_GetColorRows ()); HTM_TxtF ("%s ",UsrDat.FullName); HTM_TD_End (); /* Write the user's role */ - HTM_TD_Begin ("class=\"LOG CT %s\"",The_GetColorRows ()); + HTM_TD_Begin ("class=\"CT LOG_%s %s\"", + The_GetSuffix (),The_GetColorRows ()); HTM_TxtF ("%s ",RoleFromLog < Rol_NUM_ROLES ? Txt_ROLES_SINGUL_Abc[RoleFromLog][UsrDat.Sex] : "?"); HTM_TD_End (); @@ -1254,8 +1260,8 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats, /* Write the date-time (row[3]) */ if (asprintf (&Id,"log_date_%u",UniqueId) < 0) Err_NotEnoughMemoryExit (); - HTM_TD_Begin ("id=\"%s\" class=\"LOG RT %s\"", - Id,The_GetColorRows ()); + HTM_TD_Begin ("id=\"%s\" class=\"RT LOG_%s %s\"", + Id,The_GetSuffix (),The_GetColorRows ()); Dat_WriteLocalDateHMSFromUTC (Id,Dat_GetUNIXTimeFromStr (row[3]), Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA, true,true,false,0x7); @@ -1265,7 +1271,8 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats, /* Write the action */ if (sscanf (row[4],"%ld",&ActCod) != 1) Err_WrongActionExit (); - HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ()); + HTM_TD_Begin ("class=\"LT LOG_%s %s\"", + The_GetSuffix (),The_GetColorRows ()); if (ActCod >= 0) HTM_TxtF ("%s ",Act_GetActionText (Act_FromActCodToAction[ActCod])); else @@ -1273,7 +1280,8 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats, HTM_TD_End (); /* Write the comments of the access */ - HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ()); + HTM_TD_Begin ("class=\"LT LOG_%s %s\"", + The_GetSuffix (),The_GetColorRows ()); Sta_WriteLogComments (LogCod); HTM_TD_End (); @@ -1357,7 +1365,8 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write the number of row */ - HTM_TD_Begin ("class=\"LOG RT %s\"",The_GetColorRows ()); + HTM_TD_Begin ("class=\"RT LOG_%s %s\"", + The_GetSuffix (),The_GetColorRows ()); HTM_TxtF ("%u ",NumHit); HTM_TD_End (); @@ -1369,18 +1378,21 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType, HTM_TD_End (); /* Write the user's ID if user is a student in current course */ - HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ()); + HTM_TD_Begin ("class=\"LT LOG_%s %s\"", + The_GetSuffix (),The_GetColorRows ()); ID_WriteUsrIDs (&UsrDat,NULL); HTM_NBSP (); HTM_TD_End (); /* Write the name and the surnames */ - HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ()); + HTM_TD_Begin ("class=\"LT LOG_%s %s\"", + The_GetSuffix (),The_GetColorRows ()); HTM_TxtF ("%s ",UsrDat.FullName); HTM_TD_End (); /* Write user's role */ - HTM_TD_Begin ("class=\"LOG CT %s\"",The_GetColorRows ()); + HTM_TD_Begin ("class=\"CT LOG_%s %s\"", + The_GetSuffix (),The_GetColorRows ()); HTM_TxtF ("%s ",Txt_ROLES_SINGUL_Abc[UsrDat.Roles.InCurrentCrs][UsrDat.Sex]); HTM_TD_End (); @@ -1397,7 +1409,8 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType, else BarWidth = 0; - HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ()); + HTM_TD_Begin ("class=\"LT LOG_%s %s\"", + The_GetSuffix (),The_GetColorRows ()); if (BarWidth) { HTM_IMG (Cfg_URL_ICON_PUBLIC, @@ -1456,7 +1469,7 @@ static void Sta_ShowNumHitsPerDay (Sta_CountType_t CountType, /***** Write rows beginning by the most recent day and ending by the oldest *****/ mysql_data_seek (mysql_res,0); - for (NumHit = 1; + for (NumHit = 1; NumHit <= NumHits; NumHit++) { @@ -1470,7 +1483,8 @@ static void Sta_ShowNumHitsPerDay (Sta_CountType_t CountType, Hits.Num = Str_GetDoubleFromStr (row[1]); Dat_AssignDate (&Date,&LastDate); - NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&ReadDate,&LastDate); + NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&ReadDate, + &LastDate); /* In the next loop (NumDaysFromLastDateToCurrDate-1) días (the more recent) with 0 clicks are shown and a last day (the oldest) with Hits.Num */ for (D = 1; @@ -1483,14 +1497,18 @@ static void Sta_ShowNumHitsPerDay (Sta_CountType_t CountType, /* Write the date */ Dat_ConvDateToDateStr (&Date,StrDate); - HTM_TD_Begin ("class=\"%s RT\"",NumDayWeek == 6 ? "LOG_R" : - "LOG"); + HTM_TD_Begin ("class=\"RT %s_%s\"", + NumDayWeek == 6 ? "LOG_R" : + "LOG", + The_GetSuffix ()); HTM_TxtF ("%s ",StrDate); HTM_TD_End (); /* Write the day of the week */ - HTM_TD_Begin ("class=\"%s LT\"",NumDayWeek == 6 ? "LOG_R" : - "LOG"); + HTM_TD_Begin ("class=\"LT %s_%s\"", + NumDayWeek == 6 ? "LOG_R" : + "LOG", + The_GetSuffix ()); HTM_TxtF ("%s ",Txt_DAYS_SMALL[NumDayWeek]); HTM_TD_End (); @@ -1508,7 +1526,8 @@ static void Sta_ShowNumHitsPerDay (Sta_CountType_t CountType, } Dat_AssignDate (&LastDate,&Date); } - NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&LastDate); + NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date, + &LastDate); /***** Finally NumDaysFromLastDateToCurrDate days are shown with 0 clicks (the oldest days from the requested initial day until the first with clicks) *****/ @@ -1522,14 +1541,18 @@ static void Sta_ShowNumHitsPerDay (Sta_CountType_t CountType, /* Write the date */ Dat_ConvDateToDateStr (&Date,StrDate); - HTM_TD_Begin ("class=\"%s RT\"",NumDayWeek == 6 ? "LOG_R" : - "LOG"); + HTM_TD_Begin ("class=\"RT %s_%s\"", + NumDayWeek == 6 ? "LOG_R" : + "LOG", + The_GetSuffix ()); HTM_TxtF ("%s ",StrDate); HTM_TD_End (); /* Write the day of the week */ - HTM_TD_Begin ("class=\"%s LT\"",NumDayWeek == 6 ? "LOG_R" : - "LOG"); + HTM_TD_Begin ("class=\"LT %s_%s\"", + NumDayWeek == 6 ? "LOG_R" : + "LOG", + The_GetSuffix ()); HTM_TxtF ("%s ",Txt_DAYS_SMALL[NumDayWeek]); HTM_TD_End (); @@ -1651,7 +1674,8 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats, Hour < 24; Hour++) { - HTM_TD_Begin ("class=\"LOG CT\" style=\"width:%upx;\"", + HTM_TD_Begin ("class=\"CT LOG_%s\" style=\"width:%upx;\"", + The_GetSuffix (), GRAPH_DISTRIBUTION_PER_HOUR_HOUR_WIDTH); HTM_TxtF ("%02uh",Hour); HTM_TD_End (); @@ -1690,7 +1714,8 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats, /* In the next loop we show (NumDaysFromLastDateToCurrDate-1) days with 0 clicks and a last day (older) with Hits.Num */ Dat_AssignDate (&Date,&LastDate); - NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&PreviousReadDate,&LastDate); + NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&PreviousReadDate, + &LastDate); for (D = 1; D <= NumDaysFromLastDateToCurrDate; D++) @@ -1701,14 +1726,18 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats, /* Write the date */ Dat_ConvDateToDateStr (&Date,StrDate); - HTM_TD_Begin ("class=\"%s RT\"",NumDayWeek == 6 ? "LOG_R" : - "LOG"); + HTM_TD_Begin ("class=\"RT %s_%s\"", + NumDayWeek == 6 ? "LOG_R" : + "LOG", + The_GetSuffix ()); HTM_TxtF ("%s ",StrDate); HTM_TD_End (); /* Write the day of the week */ - HTM_TD_Begin ("class=\"%s LT\"",NumDayWeek == 6 ? "LOG_R" : - "LOG"); + HTM_TD_Begin ("class=\"LT %s_%s\"", + NumDayWeek == 6 ? "LOG_R" : + "LOG", + The_GetSuffix ()); HTM_TxtF ("%s ",Txt_DAYS_SMALL[NumDayWeek]); HTM_TD_End (); @@ -1739,7 +1768,8 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats, /* In the next loop we show (NumDaysFromLastDateToCurrDate-1) days (more recent) with 0 clicks and a last day (older) with Hits.Num clicks */ Dat_AssignDate (&Date,&LastDate); - NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&PreviousReadDate,&LastDate); + NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&PreviousReadDate, + &LastDate); for (D = 1; D <= NumDaysFromLastDateToCurrDate; D++) @@ -1750,14 +1780,18 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats, /* Write the date */ Dat_ConvDateToDateStr (&Date,StrDate); - HTM_TD_Begin ("class=\"%s RT\"",NumDayWeek == 6 ? "LOG_R" : - "LOG"); + HTM_TD_Begin ("class=\"RT %s_%s\"", + NumDayWeek == 6 ? "LOG_R" : + "LOG", + The_GetSuffix ()); HTM_TxtF ("%s ",StrDate); HTM_TD_End (); /* Write the day of the week */ - HTM_TD_Begin ("class=\"%s LT\"",NumDayWeek == 6 ? "LOG_R" : - "LOG"); + HTM_TD_Begin ("class=\"LT %s_%s\"", + NumDayWeek == 6 ? "LOG_R" : + "LOG", + The_GetSuffix ()); HTM_TxtF ("%s ",Txt_DAYS_SMALL[NumDayWeek]); HTM_TD_End (); @@ -1776,7 +1810,8 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats, /***** Finally NumDaysFromLastDateToCurrDate days are shown with 0 clicks (the oldest days since the initial day requested by the user until the first with clicks) *****/ Dat_AssignDate (&LastDate,&Date); - NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&LastDate); + NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date, + &LastDate); for (D = 1; D <= NumDaysFromLastDateToCurrDate; D++) @@ -1787,14 +1822,18 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats, /* Write the date */ Dat_ConvDateToDateStr (&Date,StrDate); - HTM_TD_Begin ("class=\"%s RT\"",NumDayWeek == 6 ? "LOG_R" : - "LOG"); + HTM_TD_Begin ("class=\"RT %s_%s\"", + NumDayWeek == 6 ? "LOG_R" : + "LOG", + The_GetSuffix ()); HTM_TxtF ("%s ",StrDate); HTM_TD_End (); /* Write the day of the week */ - HTM_TD_Begin ("class=\"%s LT\"",NumDayWeek == 6 ? "LOG_R" : - "LOG"); + HTM_TD_Begin ("class=\"LT %s_%s\"", + NumDayWeek == 6 ? "LOG_R" : + "LOG", + The_GetSuffix ()); HTM_TxtF ("%s ",Txt_DAYS_SMALL[NumDayWeek]); HTM_TD_End (); @@ -1846,8 +1885,9 @@ static void Sta_DrawBarColors (Sta_ColorType_t ColorType,double HitsMax) HTM_TABLE_BeginWide (); HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"%u\" class=\"LOG LB\" style=\"width:%upx;\"", + HTM_TD_Begin ("colspan=\"%u\" class=\"LB LOG_%s\" style=\"width:%upx;\"", (GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2, + The_GetSuffix (), (GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2); HTM_Unsigned (0); HTM_TD_End (); @@ -1856,15 +1896,17 @@ static void Sta_DrawBarColors (Sta_ColorType_t ColorType,double HitsMax) Interval <= 4; Interval++) { - HTM_TD_Begin ("colspan=\"%u\" class=\"LOG CB\" style=\"width:%upx;\"", + HTM_TD_Begin ("colspan=\"%u\" class=\"CB LOG_%s\" style=\"width:%upx;\"", GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5, + The_GetSuffix (), GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5); HTM_DoubleFewDigits ((double) Interval * HitsMax / 5.0); HTM_TD_End (); } - HTM_TD_Begin ("colspan=\"%u\" class=\"LOG RB\" style=\"width:%upx;\"", + HTM_TD_Begin ("colspan=\"%u\" class=\"RB LOG_%s\" style=\"width:%upx;\"", (GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2, + The_GetSuffix (), (GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2); HTM_DoubleFewDigits (HitsMax); HTM_TD_End (); @@ -1912,9 +1954,10 @@ static void Sta_DrawAccessesPerHourForADay (Sta_ColorType_t ColorType,double Hit Str_DoubleNumToStrFewDigits (&Str,HitsNum[Hour]); /***** Write cell *****/ - HTM_TD_Begin ("class=\"LOG LM\" title=\"%s\"" + HTM_TD_Begin ("class=\"LM LOG_%s\" title=\"%s\"" " style=\"width:%upx; background-color:#%02X%02X%02X;\"", - Str,GRAPH_DISTRIBUTION_PER_HOUR_HOUR_WIDTH,R,G,B); + The_GetSuffix (),Str, + GRAPH_DISTRIBUTION_PER_HOUR_HOUR_WIDTH,R,G,B); HTM_TD_End (); /***** Free memory allocated for string *****/ @@ -2054,7 +2097,7 @@ static void Sta_ShowNumHitsPerWeek (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write week */ - HTM_TD_Begin ("class=\"LOG LT\""); + HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ()); HTM_TxtF ("%04u-%02u ",Date.Year,Date.Week); HTM_TD_End (); @@ -2083,7 +2126,7 @@ static void Sta_ShowNumHitsPerWeek (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write week */ - HTM_TD_Begin ("class=\"LOG LT\""); + HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ()); HTM_TxtF ("%04u-%02u ",Date.Year,Date.Week); HTM_TD_End (); @@ -2154,7 +2197,7 @@ static void Sta_ShowNumHitsPerMonth (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write the month */ - HTM_TD_Begin ("class=\"LOG LT\""); + HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ()); HTM_TxtF ("%04u-%02u ",Date.Year,Date.Month); HTM_TD_End (); @@ -2182,7 +2225,7 @@ static void Sta_ShowNumHitsPerMonth (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write the month */ - HTM_TD_Begin ("class=\"LOG LT\""); + HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ()); HTM_TxtF ("%04u-%02u ",Date.Year,Date.Month); HTM_TD_End (); @@ -2253,7 +2296,7 @@ static void Sta_ShowNumHitsPerYear (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write the year */ - HTM_TD_Begin ("class=\"LOG LT\""); + HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ()); HTM_TxtF ("%04u ",Date.Year); HTM_TD_End (); @@ -2281,7 +2324,7 @@ static void Sta_ShowNumHitsPerYear (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write the year */ - HTM_TD_Begin ("class=\"LOG LT\""); + HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ()); HTM_TxtF ("%04u ",Date.Year); HTM_TD_End (); @@ -2315,7 +2358,8 @@ static void Sta_ShowNumHitsPerHour (unsigned NumHits, unsigned ColumnWidth; MYSQL_ROW row; - if ((NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&Gbl.DateRange.DateEnd.Date))) + if ((NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date, + &Gbl.DateRange.DateEnd.Date))) { /***** Compute maximum number of pages generated per hour *****/ Sta_ComputeMaxAndTotalHits (&Hits,NumHits,mysql_res,1,NumDays); @@ -2401,14 +2445,14 @@ static void Sta_WriteAccessHour (unsigned Hour,struct Sta_Hits *Hits,unsigned Co } /*****************************************************************************/ -/**** Show a listing with the number of clicks in every minute of the day ***/ +/**** Show a listing with the number of clicks in every minute of the day ****/ /*****************************************************************************/ #define Sta_NUM_MINUTES_PER_DAY (60 * 24) // 1440 minutes in a day #define Sta_WIDTH_SEMIDIVISION_GRAPHIC 30 #define Sta_NUM_DIVISIONS_X 10 -static void Sta_ShowAverageAccessesPerMinute (unsigned NumHits,MYSQL_RES *mysql_res) +static void Sta_ShowNumHitsPerMinute (unsigned NumHits,MYSQL_RES *mysql_res) { unsigned NumHit = 1; MYSQL_ROW row; @@ -2425,7 +2469,8 @@ static void Sta_ShowAverageAccessesPerMinute (unsigned NumHits,MYSQL_RES *mysql_ double IncX; char *Format; - if ((NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&Gbl.DateRange.DateEnd.Date))) + if ((NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date, + &Gbl.DateRange.DateEnd.Date))) { /***** Compute number of clicks (and máximo) in every minute *****/ Hits.Max = 0.0; @@ -2483,7 +2528,7 @@ static void Sta_ShowAverageAccessesPerMinute (unsigned NumHits,MYSQL_RES *mysql_ for (i = 0; i < Sta_NUM_MINUTES_PER_DAY; i++) - Sta_WriteAccessMinute (i,NumClicksPerMin[i],MaxX); + Sta_WriteHitsMinute (i,NumClicksPerMin[i],MaxX); /***** X axis *****/ HTM_TR_Begin (NULL); @@ -2491,7 +2536,7 @@ static void Sta_ShowAverageAccessesPerMinute (unsigned NumHits,MYSQL_RES *mysql_ /* First division (left) */ HTM_TD_Begin ("class=\"LM\" style=\"width:%upx;\"", Sta_WIDTH_SEMIDIVISION_GRAPHIC); - HTM_IMG (Cfg_URL_ICON_PUBLIC,"ejexizq24x1.gif",NULL, + HTM_IMG (Cfg_URL_ICON_PUBLIC,"y30x1.png",NULL, "style=\"display:block;width:%upx;height:1px;\"", Sta_WIDTH_SEMIDIVISION_GRAPHIC); HTM_TD_End (); @@ -2540,8 +2585,8 @@ static void Sta_WriteLabelsXAxisAccMin (double IncX,const char *Format) i <= Sta_NUM_DIVISIONS_X; i++, NumX += IncX) { - HTM_TD_Begin ("colspan=\"2\" class=\"LOG CB\" style=\"width:%upx;\"", - Sta_WIDTH_DIVISION_GRAPHIC); + HTM_TD_Begin ("colspan=\"2\" class=\"CB LOG_%s\" style=\"width:%upx;\"", + The_GetSuffix (),Sta_WIDTH_DIVISION_GRAPHIC); HTM_TxtF (Format,NumX); HTM_TD_End (); } @@ -2554,7 +2599,7 @@ static void Sta_WriteLabelsXAxisAccMin (double IncX,const char *Format) #define Sta_WIDTH_GRAPHIC (Sta_WIDTH_DIVISION_GRAPHIC * Sta_NUM_DIVISIONS_X) // 60 * 10 = 600 -static void Sta_WriteAccessMinute (unsigned Minute,double HitsNum,double MaxX) +static void Sta_WriteHitsMinute (unsigned Minute,double HitsNum,double MaxX) { unsigned BarWidth; @@ -2565,11 +2610,12 @@ static void Sta_WriteAccessMinute (unsigned Minute,double HitsNum,double MaxX) if (!Minute) { // If minute 0 - HTM_TD_Begin ("rowspan=\"30\" class=\"LOG LT\"" + HTM_TD_Begin ("rowspan=\"30\" class=\"LT LOG_%s\"" " style=\"width:%upx;" - " background-image:url('%s/ejey24x30.gif');" + " background-image:url('%s/y30x30.png');" " background-size:30px 30px;" " background-repeat:repeat;\"", + The_GetSuffix (), Sta_WIDTH_SEMIDIVISION_GRAPHIC,Cfg_URL_ICON_PUBLIC); HTM_Txt ("00h"); HTM_TD_End (); @@ -2577,11 +2623,12 @@ static void Sta_WriteAccessMinute (unsigned Minute,double HitsNum,double MaxX) else if (Minute == (Sta_NUM_MINUTES_PER_DAY - 30)) { // If 23:30 - HTM_TD_Begin ("rowspan=\"30\" class=\"LOG LB\"" + HTM_TD_Begin ("rowspan=\"30\" class=\"LB LOG_%s\"" " style=\"width:%upx;" - " background-image:url('%s/ejey24x30.gif');" + " background-image:url('%s/y30x30.png');" " background-size:30px 30px;" " background-repeat:repeat;\"", + The_GetSuffix (), Sta_WIDTH_SEMIDIVISION_GRAPHIC,Cfg_URL_ICON_PUBLIC); HTM_Txt ("24h"); HTM_TD_End (); @@ -2589,11 +2636,12 @@ static void Sta_WriteAccessMinute (unsigned Minute,double HitsNum,double MaxX) else if (!(Minute % 30) && (Minute % 60)) { // If minute is multiple of 30 but not of 60 (i.e.: 30, 90, 150...) - HTM_TD_Begin ("rowspan=\"60\" class=\"LOG LM\"" + HTM_TD_Begin ("rowspan=\"60\" class=\"LM LOG_%s\"" " style=\"width:%upx;" - " background-image:url('%s/ejey24x60.gif');" + " background-image:url('%s/y30x60.png');" " background-size:30px 60px;" " background-repeat:repeat;\"", + The_GetSuffix (), Sta_WIDTH_SEMIDIVISION_GRAPHIC,Cfg_URL_ICON_PUBLIC); HTM_TxtF ("%02uh",(Minute + 30) / 60); HTM_TD_End (); @@ -2662,7 +2710,7 @@ static void Sta_ShowNumHitsPerAction (Sta_CountType_t CountType, HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"LOG RT\""); + HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ()); if (ActCod >= 0) HTM_TxtF ("%s ",Act_GetActionText (Act_FromActCodToAction[ActCod])); else @@ -2715,7 +2763,7 @@ static void Sta_ShowNumHitsPerPlugin (Sta_CountType_t CountType, /* Write the plugin */ if (sscanf (row[0],"%ld",&Plg.PlgCod) != 1) Err_WrongPluginExit (); - HTM_TD_Begin ("class=\"LOG RT\""); + HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ()); if (Plg_GetDataOfPluginByCod (&Plg)) HTM_Txt (Plg.Name); else @@ -2770,7 +2818,7 @@ static void Sta_ShowNumHitsPerWSFunction (Sta_CountType_t CountType, if (sscanf (row[0],"%ld",&FunCod) != 1) Err_ShowErrorAndExit ("Wrong function code."); - HTM_TD_Begin ("class=\"LOG LT\""); + HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ()); HTM_TxtF ("%s ",API_GetFunctionNameFromFunCod (FunCod)); HTM_TD_End (); @@ -2834,7 +2882,7 @@ static void Sta_ShowNumHitsPerBanner (Sta_CountType_t CountType, if (sscanf (row[0],"%ld",&(Ban.BanCod)) != 1) Err_WrongBannerExit (); Ban_GetDataOfBannerByCod (&Ban); - HTM_TD_Begin ("class=\"LOG LT\""); + HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ()); HTM_A_Begin ("href=\"%s\" title=\"%s\" target=\"_blank\"" " class=\"DAT_%s\"", Ban.WWW, @@ -2894,7 +2942,7 @@ static void Sta_ShowNumHitsPerCountry (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write ranking of this country */ - HTM_TD_Begin ("class=\"LOG RM\""); + HTM_TD_Begin ("class=\"RM LOG_%s\"",The_GetSuffix ()); if (CtyCod > 0) HTM_Unsigned (++Ranking); HTM_NBSP (); @@ -2921,7 +2969,7 @@ static void Sta_WriteCountry (long CtyCod) struct Cty_Countr Cty; /***** Begin cell *****/ - HTM_TD_Begin ("class=\"LOG LM\""); + HTM_TD_Begin ("class=\"LM LOG_%s\"",The_GetSuffix ()); if (CtyCod > 0) // Hit with a country selected { @@ -2982,7 +3030,7 @@ static void Sta_ShowNumHitsPerInstitution (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write ranking of this institution */ - HTM_TD_Begin ("class=\"LOG RT\""); + HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ()); if (InsCod > 0) HTM_Unsigned (++Ranking); HTM_NBSP (); @@ -3016,7 +3064,8 @@ static void Sta_WriteInstit (long InsCod) Ins_GetDataOfInstitByCod (&Ins); /***** Title in cell *****/ - HTM_TD_Begin ("class=\"LOG LM\" title=\"%s\"",Ins.FullName); + HTM_TD_Begin ("class=\"LM LOG_%s\" title=\"%s\"", + The_GetSuffix (),Ins.FullName); /***** Form to go to institution *****/ Ins_DrawInstitLogoAndNameWithLink (&Ins,ActSeeInsInf,"CT"); @@ -3024,7 +3073,7 @@ static void Sta_WriteInstit (long InsCod) else // Hit with no institution selected { /***** No institution selected *****/ - HTM_TD_Begin ("class=\"LOG LM\""); + HTM_TD_Begin ("class=\"LM LOG_%s\"",The_GetSuffix ()); HTM_Txt (" - "); } @@ -3072,7 +3121,7 @@ static void Sta_ShowNumHitsPerCenter (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write ranking of this center */ - HTM_TD_Begin ("class=\"LOG RT\""); + HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ()); if (CtrCod > 0) HTM_Unsigned (++Ranking); HTM_NBSP (); @@ -3106,7 +3155,8 @@ static void Sta_WriteCenter (long CtrCod) Ctr_GetDataOfCenterByCod (&Ctr); /***** Title in cell *****/ - HTM_TD_Begin ("class=\"LOG LM\" title=\"%s\"",Ctr.FullName); + HTM_TD_Begin ("class=\"LM LOG_%s\" title=\"%s\"", + The_GetSuffix (),Ctr.FullName); /***** Form to go to center *****/ Ctr_DrawCenterLogoAndNameWithLink (&Ctr,ActSeeCtrInf,"CT"); @@ -3114,7 +3164,7 @@ static void Sta_WriteCenter (long CtrCod) else // Hit with no center selected { /***** No center selected *****/ - HTM_TD_Begin ("class=\"LOG LM\""); + HTM_TD_Begin ("class=\"LM LOG_%s\"",The_GetSuffix ()); HTM_Txt (" - "); } @@ -3162,7 +3212,7 @@ static void Sta_ShowNumHitsPerDegree (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write ranking of this degree */ - HTM_TD_Begin ("class=\"LOG RT\""); + HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ()); if (DegCod > 0) HTM_Unsigned (++Ranking); HTM_NBSP (); @@ -3196,7 +3246,8 @@ static void Sta_WriteDegree (long DegCod) Deg_GetDataOfDegreeByCod (&Deg); /***** Title in cell *****/ - HTM_TD_Begin ("class=\"LOG LM\" title=\"%s\"",Deg.FullName); + HTM_TD_Begin ("class=\"LM LOG_%s\" title=\"%s\"", + The_GetSuffix (),Deg.FullName); /***** Form to go to degree *****/ Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeDegInf,"CT"); @@ -3204,7 +3255,7 @@ static void Sta_WriteDegree (long DegCod) else // Hit with no degree selected { /***** No degree selected *****/ - HTM_TD_Begin ("class=\"LOG LM\""); + HTM_TD_Begin ("class=\"LM LOG_%s\"",The_GetSuffix ()); HTM_Txt (" - "); } @@ -3263,7 +3314,7 @@ static void Sta_ShowNumHitsPerCourse (Sta_CountType_t CountType, HTM_TR_Begin (NULL); /* Write ranking of this course */ - HTM_TD_Begin ("class=\"LOG RT\""); + HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ()); if (CrsOK) HTM_Unsigned (++Ranking); HTM_NBSP (); @@ -3273,7 +3324,7 @@ static void Sta_ShowNumHitsPerCourse (Sta_CountType_t CountType, Sta_WriteDegree (Crs.DegCod); /* Write degree year */ - HTM_TD_Begin ("class=\"LOG CT\""); + HTM_TD_Begin ("class=\"CT LOG_%s\"",The_GetSuffix ()); if (CrsOK) HTM_Txt (Txt_YEAR_OF_DEGREE[Crs.Year]); else @@ -3282,7 +3333,7 @@ static void Sta_ShowNumHitsPerCourse (Sta_CountType_t CountType, HTM_TD_End (); /* Write course, including link */ - HTM_TD_Begin ("class=\"LOG LT\""); + HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ()); if (CrsOK) { Frm_BeginFormGoTo (ActSeeCrsInf); @@ -3354,7 +3405,7 @@ static void Sta_DrawBarNumHits (char Color, unsigned BarWidth; char *Icon; - HTM_TD_Begin ("class=\"LOG LM\""); + HTM_TD_Begin ("class=\"LM LOG_%s\"",The_GetSuffix ()); if (HitsNum != 0.0) { diff --git a/swad_text.c b/swad_text.c index 220096d4..da57f3e0 100644 --- a/swad_text.c +++ b/swad_text.c @@ -1326,13 +1326,13 @@ const char *Txt_all_degrees = #if L==1 // ca "Totes les titulacions"; #elif L==2 // de - "all degrees"; // Need Übersetzung + "alle Abschlüsse"; #elif L==3 // en "all degrees"; #elif L==4 // es "todas las titulaciones"; #elif L==5 // fr - "tous les degrés"; + "tous les études"; #elif L==6 // gn "todas las titulaciones"; // Okoteve traducción #elif L==7 // it @@ -5129,7 +5129,7 @@ const char *Txt_Congratulations_You_have_created_your_account_X_Now_Y_will_reque " Vous serez alors en mesure de demander l'inscription à des matières." " Si une matière ne existe pas," " vous pouvez le créer avant de demander l'inscription en elle" - " (la même chose se applique aux institutions, centers et degrés)."; + " (la même chose se applique aux institutions, centers et études)."; #elif L==6 // gn "¡Enhorabuena! Ha creado su cuenta @%s." " Ahora %s le solicitará algunos datos para completar su perfil." @@ -35572,7 +35572,7 @@ const char *Txt_ROLE_STATS[Sta_NUM_ROLES_STAT] = #elif L==4 // es "administradores de titulaciones" #elif L==5 // fr - "administrateurs de degrés" + "administrateurs d'études" #elif L==6 // gn "administradores de titulaciones" // Okoteve traducción #elif L==7 // it @@ -43749,13 +43749,13 @@ const char *Txt_STAT_DEGREE_PHOTO_SIZE[Pho_NUM_HOW_COMPUTE_PHOTO_SIZES] = #elif L==4 // es "igual para todas las titulaciones" #elif L==5 // fr - "same for all degrees" // Besoin de traduction + "identique pour tous les études" #elif L==6 // gn "igual para todas las titulaciones" // Okoteve traducción #elif L==7 // it "uguale per tutte le lauree" #elif L==8 // pl - "same for all degrees" // Potrzebujesz tlumaczenie + "to samo dla wszystkich stopni" #elif L==9 // pt "mesmo para todos os graus" #endif @@ -43807,42 +43807,42 @@ const char *Txt_STAT_DEGREE_PHOTO_ORDER[Pho_NUM_HOW_ORDER_DEGREES] = , [Pho_PROPORTIONAL_TO_PERCENT] = #if L==1 // ca - "porcentaje de estudiantes con fotografía" // Necessita traduccio + "percentatge d'estudiants amb fotografia" #elif L==2 // de - "percentage of students with photo" // Need Übersetzung + "Prozentsatz der Schüler mit Foto" #elif L==3 // en "percentage of students with photo" #elif L==4 // es "porcentaje de estudiantes con fotografía" #elif L==5 // fr - "percentage of students with photo" // Besoin de traduction + "pourcentage d'étudiants avec photo" #elif L==6 // gn "porcentaje de estudiantes con fotografía" // Okoteve traducción #elif L==7 // it "percentuale di studenti con foto" #elif L==8 // pl - "percentage of students with photo" // Potrzebujesz tlumaczenie + "odsetek uczniów ze zdjęciem" #elif L==9 // pt "porcentagem de estudantes com foto" #endif , [Pho_UNIQUE_SIZE] = #if L==1 // ca - "nombre de titulación" // Necessita traduccio + "nom de titulació" #elif L==2 // de - "degree name" // Need Übersetzung + "Grad Name" #elif L==3 // en "degree name" #elif L==4 // es "nombre de titulación" #elif L==5 // fr - "degree name" // Besoin de traduction + "nom d'étude" #elif L==6 // gn "nombre de titulación" // Okoteve traducción #elif L==7 // it "nome laurea" #elif L==8 // pl - "degree name" // Potrzebujesz tlumaczenie + "nazwa stopnia" #elif L==9 // pt "nome do grau" #endif @@ -43852,7 +43852,7 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] = { [Sta_TOTAL_CLICKS] = #if L==1 // ca - "N.º total de clics" // Necessita traduccio + "Nombre total de clics" #elif L==2 // de "Gesamtzahl der Klicks" #elif L==3 // en @@ -43866,14 +43866,14 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] = #elif L==7 // it "Numero totale di scatti" #elif L==8 // pl - "Total number of clicks" // Potrzebujesz tlumaczenie + "Całkowita liczba kliknięć" #elif L==9 // pt "Número total de cliques" #endif , [Sta_DISTINCT_USRS] = #if L==1 // ca - "N.º de usuarios distintos" // Necessita traduccio + "Nombre d'usuaris diferents" #elif L==2 // de "Anzahl der unterschiedlichen Benutzer" #elif L==3 // en @@ -43887,14 +43887,14 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] = #elif L==7 // it "Numero di utenti distinti" #elif L==8 // pl - "Number of distinct users" // Potrzebujesz tlumaczenie + "Liczba różnych użytkowników" #elif L==9 // pt "Número de utilizadores diferentes" #endif , [Sta_CLICKS_PER_USR] = #if L==1 // ca - "N.º de clics por usuario" // Necessita traduccio + "Nombre de clics per usuari" #elif L==2 // de "Anzahl der Klicks pro Benutzer" #elif L==3 // en @@ -43908,14 +43908,14 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] = #elif L==7 // it "Numero di scatti per utente" #elif L==8 // pl - "Number of clicks per user" // Potrzebujesz tlumaczenie + "Liczba kliknięć na użytkownika" #elif L==9 // pt "Número de cliques por utilizador" #endif , [Sta_GENERATION_TIME] = #if L==1 // ca - "Tiempo de generación de página" // Necessita traduccio + "Temps de generació de pàgina" #elif L==2 // de "Zeit zur Erzeugung der Seite" #elif L==3 // en @@ -43929,14 +43929,14 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] = #elif L==7 // it "Tempo per generare pagina" #elif L==8 // pl - "Time to generate page" // Potrzebujesz tlumaczenie + "Czas wygenerować stronę" #elif L==9 // pt "Tempo para gerar página" #endif , [Sta_SEND_TIME] = #if L==1 // ca - "Tiempo de envío de página" // Necessita traduccio + "Temps d'enviament de pàgina" #elif L==2 // de "Zeit, um die Seite zu senden" #elif L==3 // en @@ -43950,7 +43950,7 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] = #elif L==7 // it "Tempo d'invio della pagina" #elif L==8 // pl - "Time to send page" // Potrzebujesz tlumaczenie + "Czas wysłać stronę" #elif L==9 // pt "Tempo para enviar a página" #endif @@ -43960,7 +43960,7 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] = { [Sta_TOTAL_CLICKS] = #if L==1 // ca - "nº total de clics" // Necessita traduccio + "nombre total de clics" #elif L==2 // de "Gesamtzahl der Klicks" #elif L==3 // en @@ -43974,14 +43974,14 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] = #elif L==7 // it "numero totale di scatti" #elif L==8 // pl - "total number of clicks" // Potrzebujesz tlumaczenie + "całkowita liczba kliknięć" #elif L==9 // pt "número total de cliques" #endif , [Sta_DISTINCT_USRS] = #if L==1 // ca - "nº de usuarios distintos" // Necessita traduccio + "nombre d'usuaris diferents" #elif L==2 // de "Anzahl der unterschiedliche Benutzer" #elif L==3 // en @@ -43995,14 +43995,14 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] = #elif L==7 // it "numero di utenti distinti" #elif L==8 // pl - "number of distinct users" // Potrzebujesz tlumaczenie + "liczba różnych użytkowników" #elif L==9 // pt "número de utilizadores diferentes" #endif , [Sta_CLICKS_PER_USR] = #if L==1 // ca - "nº de clics por usuario" // Necessita traduccio + "nombre de clics per usuari" #elif L==2 // de "Anzahl der Klicks pro Benutzer" #elif L==3 // en @@ -44016,14 +44016,14 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] = #elif L==7 // it "numero di scatti per utente" #elif L==8 // pl - "number of clicks per user" // Potrzebujesz tlumaczenie + "liczba kliknięć na użytkownika" #elif L==9 // pt "número de cliques por utilizador" #endif , [Sta_GENERATION_TIME] = #if L==1 // ca - "tiempo de generación" // Necessita traduccio + "temps de generació" #elif L==2 // de "Zeit zur Erzeugung" #elif L==3 // en @@ -44037,14 +44037,14 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] = #elif L==7 // it "tempo per generare" #elif L==8 // pl - "time to generate" // Potrzebujesz tlumaczenie + "czas na wygenerowanie" #elif L==9 // pt "tempo para gerar" #endif , [Sta_SEND_TIME] = #if L==1 // ca - "tiempo de envío" // Necessita traduccio + "temps d'enviament" #elif L==2 // de "Zeit, um Seite" #elif L==3 // en @@ -44058,7 +44058,7 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] = #elif L==7 // it "tempo d'invio" #elif L==8 // pl - "time to send" // Potrzebujesz tlumaczenie + "czas wysłać" #elif L==9 // pt "Tempo para enviar" #endif @@ -44187,7 +44187,7 @@ const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES] = #elif L==7 // it "Cartelle e file" #elif L==8 // pl - "Folders and files" // Potrzebujesz tlumaczenie + "Foldery i pliki" #elif L==9 // pt "Diretórios e arquivos" #endif @@ -51737,7 +51737,7 @@ const char *Txt_There_are_no_centers_with_requests_for_degrees_to_be_confirmed = " pendientes de confirmar."; #elif L==5 // fr "Il n'y a pas de centers" - " avec demandes de degrés" + " avec demandes d'études" " à confirmer."; #elif L==6 // gn "No hay centros" @@ -51814,7 +51814,7 @@ const char *Txt_There_are_no_degrees_with_requests_for_courses_to_be_confirmed = " con solicitudes de asignaturas" " pendientes de confirmar."; #elif L==5 // fr - "Il n'y a pas de degrés" + "Il n'y a pas d'études" " avec demandes de cours" " à confirmer."; #elif L==6 // gn