From b91adab0b168c08e30fc4ff7d95e1859f56a5f76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Sun, 7 Feb 2016 23:51:22 +0100 Subject: [PATCH] Version 15.137 --- sql/cambios.sql | 2 +- swad_changelog.h | 7 +- swad_statistic.c | 408 ++++++++++++++++++++++++++++++++++++----------- swad_statistic.h | 3 +- swad_text.c | 101 ++++++++---- 5 files changed, 389 insertions(+), 132 deletions(-) diff --git a/sql/cambios.sql b/sql/cambios.sql index 68e704974..b433b9adc 100644 --- a/sql/cambios.sql +++ b/sql/cambios.sql @@ -11515,4 +11515,4 @@ OPTIMIZE TABLE msg_snt_deleted; +----------------------+ - +SELECT COUNT(*) FROM social_notes WHERE NoteType='10'; diff --git a/swad_changelog.h b/swad_changelog.h index d1655d4d9..78038eab0 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -121,13 +121,14 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 15.136.7 (2016-02-06)" +#define Log_PLATFORM_VERSION "SWAD 15.137 (2016-02-07)" #define CSS_FILE "swad15.136.5.css" #define JS_FILE "swad15.131.3.js" // 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 15.137: Feb 07, 2016 New figure about number of social notes. (195953 lines) Version 15.136.7: Feb 06, 2016 Fixed bug in social tab when not logged. (195715 lines) Version 15.136.6: Feb 06, 2016 Change in graphic with number of users per country. (195703 lines) Version 15.136.5: Feb 04, 2016 Change in layout of main title (country/institution/centre/degree/course). (195702 lines) @@ -136,8 +137,8 @@ Version 15.136.2: Feb 04, 2016 Change in layout of most frequent actions. (195689 lines) Version 15.136.1: Feb 02, 2016 Change in layout of tabs and menus. (195689 lines) Version 15.136: Jan 30, 2016 Average number of followed/followers per follower/followed. (195674 lines) - Version 15.135.1: Jan 30, 2016 Fixed bug in figure with number of following and followers. (195518 lines) - Version 15.135: Jan 30, 2016 New figure with number of following and followers. (195516 lines) + Version 15.135.1: Jan 30, 2016 Fixed bug in figure about number of following and followers. (195518 lines) + Version 15.135: Jan 30, 2016 New figure about number of following and followers. (195516 lines) Version 15.134.2: Jan 29, 2016 New order of figures. (195327 lines) Version 15.134.1: Jan 29, 2016 Changes in lists of following/followers. (195326 lines) Version 15.134: Jan 29, 2016 Change in menu of social tab. (195328 lines) diff --git a/swad_statistic.c b/swad_statistic.c index 2360ee093..531c05fbe 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -48,6 +48,7 @@ #include "swad_notification.h" #include "swad_parameter.h" #include "swad_profile.h" +#include "swad_social.h" #include "swad_statistic.h" #include "swad_tab.h" #include "swad_web_service.h" @@ -223,6 +224,7 @@ static void Sta_GetNumberOfOERsFromDB (Sco_Scope_t Scope,Brw_License_t License,u static void Sta_GetAndShowAssignmentsStats (void); static void Sta_GetAndShowTestsStats (void); +static void Sta_GetAndShowSocialActivityStats (void); static void Sta_GetAndShowFollowStats (void); static void Sta_GetAndShowForumStats (void); @@ -3841,6 +3843,32 @@ void Pho_PutHiddenParamFigureType (void) void Sta_ShowUseOfPlatform (void) { + void (*Sta_Function[Sta_NUM_FIGURES])(void) = // Array of pointers to functions + { + Sta_GetAndShowUsersStats, // Sta_USERS + Sta_GetAndShowUsersRanking, // Sta_USERS_RANKING + Sta_GetAndShowHierarchyStats, // Sta_HIERARCHY + Sta_GetAndShowInstitutionsStats, // Sta_INSTITUTIONS + Net_ShowWebAndSocialNetworksStats, // Sta_SOCIAL_NETWORKS + Sta_GetAndShowFileBrowsersStats, // Sta_FOLDERS_AND_FILES + Sta_GetAndShowOERsStats, // Sta_OER + Sta_GetAndShowAssignmentsStats, // Sta_ASSIGNMENTS + Sta_GetAndShowTestsStats, // Sta_TESTS + Sta_GetAndShowSocialActivityStats, // Sta_SOCIAL_ACTIVITY + Sta_GetAndShowFollowStats, // Sta_FOLLOW + Sta_GetAndShowForumStats, // Sta_FORUMS + Sta_GetAndShowNumUsrsPerNotifyEvent, // Sta_NOTIFY_EVENTS + Sta_GetAndShowNoticesStats, // Sta_NOTICES + Sta_GetAndShowMsgsStats, // Sta_MESSAGES + Sta_GetAndShowSurveysStats, // Sta_SURVEYS + Sta_GetAndShowNumUsrsPerPrivacy, // Sta_PRIVACY + Sta_GetAndShowNumUsrsPerLanguage, // Sta_LANGUAGES + Sta_GetAndShowNumUsrsPerFirstDayOfWeek, // Sta_FIRST_DAY_OF_WEEK + Sta_GetAndShowNumUsrsPerTheme, // Sta_THEMES + Sta_GetAndShowNumUsrsPerIconSet, // Sta_ICON_SETS + Sta_GetAndShowNumUsrsPerMenu, // Sta_MENUS + Sta_GetAndShowNumUsrsPerSideColumns, // Sta_SIDE_COLUMNS + }; char UnsignedStr[10+1]; unsigned UnsignedNum; @@ -3856,98 +3884,7 @@ void Sta_ShowUseOfPlatform (void) Sta_ReqUseOfPlatform (); /***** Show the stat of use selected by user *****/ - switch (Gbl.Stat.FigureType) - { - case Sta_USERS_RANKING: - /***** Users ranking *****/ - Sta_GetAndShowUsersRanking (); - break; - case Sta_USERS: - /***** Number of users *****/ - Sta_GetAndShowUsersStats (); - break; - case Sta_HIERARCHY: - /***** Number of degrees and courses *****/ - Sta_GetAndShowHierarchyStats (); - break; - case Sta_INSTITUTIONS: - /***** Number of institutions with users *****/ - Sta_GetAndShowInstitutionsStats (); - break; - case Sta_SOCIAL_NETWORKS: - /***** Number of users in social networks *****/ - Net_ShowWebAndSocialNetworksStats (); - break; - case Sta_FOLDERS_AND_FILES: - /***** File browsers (folders and files) *****/ - // TODO: add links to statistic - Sta_GetAndShowFileBrowsersStats (); - break; - case Sta_OER: - /***** Number of Open Educational Resources (OERs) *****/ - Sta_GetAndShowOERsStats (); - break; - case Sta_ASSIGNMENTS: - /***** Number of assignments *****/ - Sta_GetAndShowAssignmentsStats (); - break; - case Sta_TESTS: - /***** Number of tests *****/ - Sta_GetAndShowTestsStats (); - break; - case Sta_FOLLOW: - /***** Number of following and followers *****/ - Sta_GetAndShowFollowStats (); - break; - case Sta_FORUMS: - /***** Number of forums, threads and posts *****/ - Sta_GetAndShowForumStats (); - break; - case Sta_NOTIFY_EVENTS: - /***** Number of users who want to be notified by e-mail on each event *****/ - Sta_GetAndShowNumUsrsPerNotifyEvent (); - break; - case Sta_NOTICES: - /***** Number of notices *****/ - Sta_GetAndShowNoticesStats (); - break; - case Sta_MESSAGES: - /***** Number of sent and received messages *****/ - Sta_GetAndShowMsgsStats (); - break; - case Sta_SURVEYS: - /***** Number of surveys *****/ - Sta_GetAndShowSurveysStats (); - break; - case Sta_PRIVACY: - /***** Number of users who have chosen a privacy *****/ - Sta_GetAndShowNumUsrsPerPrivacy (); - break; - case Sta_LANGUAGES: - /***** Number of users who have chosen a language *****/ - Sta_GetAndShowNumUsrsPerLanguage (); - break; - case Sta_FIRST_DAY_OF_WEEK: - /***** Number of users who have chosen a first day of week *****/ - Sta_GetAndShowNumUsrsPerFirstDayOfWeek (); - break; - case Sta_THEMES: - /***** Number of users who have chosen a theme *****/ - Sta_GetAndShowNumUsrsPerTheme (); - break; - case Sta_ICON_SETS: - /***** Number of users who have chosen an icon set *****/ - Sta_GetAndShowNumUsrsPerIconSet (); - break; - case Sta_MENUS: - /***** Number of users who have chosen a menu *****/ - Sta_GetAndShowNumUsrsPerMenu (); - break; - case Sta_SIDE_COLUMNS: - /***** Number of users who have chosen a layout of columns *****/ - Sta_GetAndShowNumUsrsPerSideColumns (); - break; - } + Sta_Function[Gbl.Stat.FigureType] (); } /*****************************************************************************/ @@ -6538,6 +6475,283 @@ static void Sta_GetAndShowTestsStats (void) Lay_EndRoundFrameTable (); } +/*****************************************************************************/ +/******************** Get and show number of social notes ********************/ +/*****************************************************************************/ + +static void Sta_GetAndShowSocialActivityStats (void) + { + extern const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_FIGURES]; + extern const char *Txt_Type; + extern const char *Txt_No_of_social_posts; + extern const char *Txt_No_of_users; + extern const char *Txt_PERCENT_of_users; + extern const char *Txt_No_of_posts_BR_per_user; + extern const char *Txt_SOCIAL_NOTE[Soc_NUM_NOTE_TYPES]; + extern const char *Txt_Total; + char Query[1024]; + MYSQL_RES *mysql_res; + MYSQL_ROW row; + Soc_NoteType_t NoteType; + unsigned long NumSocialNotes; + unsigned NumUsrs; + unsigned NumUsrsTotal; + + Lay_StartRoundFrameTable (NULL,2,Txt_STAT_USE_STAT_TYPES[Sta_SOCIAL_ACTIVITY]); + + /***** Heading row *****/ + fprintf (Gbl.F.Out,"" + "" + "%s" + "" + "" + "%s" + "" + "" + "%s" + "" + "" + "%s" + "" + "" + "%s" + "" + "", + Txt_Type, + Txt_No_of_social_posts, + Txt_No_of_users, + Txt_PERCENT_of_users, + Txt_No_of_posts_BR_per_user); + + /***** Get total number of users *****/ + NumUsrsTotal = (Gbl.Scope.Current == Sco_SCOPE_SYS) ? Sta_GetTotalNumberOfUsersInPlatform () : + Sta_GetTotalNumberOfUsersInCourses (Gbl.Scope.Current,Rol_UNKNOWN); + + /***** Get total number of following/followers from database *****/ + for (NoteType = (Soc_NoteType_t) 0; + NoteType < Soc_NUM_NOTE_TYPES; + NoteType++) + { + switch (Gbl.Scope.Current) + { + case Sco_SCOPE_SYS: + sprintf (Query,"SELECT COUNT(*),COUNT(DISTINCT UsrCod)" + " FROM social_notes WHERE NoteType='%u'", + NoteType); + break; + case Sco_SCOPE_CTY: + sprintf (Query,"SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" + " FROM institutions,centres,degrees,courses,crs_usr,social_notes" + " WHERE institutions.CtyCod='%ld'" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod" + " AND social_notes.NoteType='%u'", + Gbl.CurrentCty.Cty.CtyCod, + (unsigned) NoteType); + break; + case Sco_SCOPE_INS: + sprintf (Query,"SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" + " FROM centres,degrees,courses,crs_usr,social_notes" + " WHERE centres.InsCod='%ld'" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod" + " AND social_notes.NoteType='%u'", + Gbl.CurrentIns.Ins.InsCod, + (unsigned) NoteType); + break; + case Sco_SCOPE_CTR: + sprintf (Query,"SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" + " FROM degrees,courses,crs_usr,social_notes" + " WHERE degrees.CtrCod='%ld'" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod" + " AND social_notes.NoteType='%u'", + Gbl.CurrentCtr.Ctr.CtrCod, + (unsigned) NoteType); + break; + case Sco_SCOPE_DEG: + sprintf (Query,"SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" + " FROM courses,crs_usr,social_notes" + " WHERE courses.DegCod='%ld'" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod" + " AND social_notes.NoteType='%u'", + Gbl.CurrentDeg.Deg.DegCod, + (unsigned) NoteType); + break; + case Sco_SCOPE_CRS: + sprintf (Query,"SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" + " FROM crs_usr,social_notes" + " WHERE crs_usr.CrsCod='%ld'" + " AND crs_usr.UsrCod=social_notes.UsrCod" + " AND social_notes.NoteType='%u'", + Gbl.CurrentCrs.Crs.CrsCod, + (unsigned) NoteType); + break; + default: + Lay_ShowErrorAndExit ("Wrong scope."); + break; + } + NumSocialNotes = 0; + NumUsrs = 0; + if (DB_QuerySELECT (Query,&mysql_res,"can not get number of social notes")) + { + /***** Get number of social notes and number of users *****/ + row = mysql_fetch_row (mysql_res); + + /* Get number of social notes */ + if (row[0]) + if (sscanf (row[0],"%lu",&NumSocialNotes) != 1) + NumSocialNotes = 0; + + /* Get number of users */ + if (row[1]) + if (sscanf (row[1],"%u",&NumUsrs) != 1) + NumUsrs = 0; + } + + /***** Free structure that stores the query result *****/ + DB_FreeMySQLResult (&mysql_res); + + /***** Write number of social notes and number of users *****/ + fprintf (Gbl.F.Out,"" + "" + "%s" + "" + "" + "%lu" + "" + "" + "%u" + "" + "" + "%5.2f%%" + "" + "" + "%.2f" + "" + "", + Txt_SOCIAL_NOTE[NoteType], + NumSocialNotes, + NumUsrs, + NumUsrsTotal ? (float) NumUsrs * 100.0 / (float) NumUsrsTotal : + 0.0, + NumUsrs ? (float) NumSocialNotes / (float) NumUsrs : + 0.0); + } + + /***** Get and write totals *****/ + switch (Gbl.Scope.Current) + { + case Sco_SCOPE_SYS: + sprintf (Query,"SELECT COUNT(*),COUNT(DISTINCT UsrCod)" + " FROM social_notes"); + break; + case Sco_SCOPE_CTY: + sprintf (Query,"SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" + " FROM institutions,centres,degrees,courses,crs_usr,social_notes" + " WHERE institutions.CtyCod='%ld'" + " AND institutions.InsCod=centres.InsCod" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod", + Gbl.CurrentCty.Cty.CtyCod); + break; + case Sco_SCOPE_INS: + sprintf (Query,"SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" + " FROM centres,degrees,courses,crs_usr,social_notes" + " WHERE centres.InsCod='%ld'" + " AND centres.CtrCod=degrees.CtrCod" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod", + Gbl.CurrentIns.Ins.InsCod); + break; + case Sco_SCOPE_CTR: + sprintf (Query,"SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" + " FROM degrees,courses,crs_usr,social_notes" + " WHERE degrees.CtrCod='%ld'" + " AND degrees.DegCod=courses.DegCod" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod", + Gbl.CurrentCtr.Ctr.CtrCod); + break; + case Sco_SCOPE_DEG: + sprintf (Query,"SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" + " FROM courses,crs_usr,social_notes" + " WHERE courses.DegCod='%ld'" + " AND courses.CrsCod=crs_usr.CrsCod" + " AND crs_usr.UsrCod=social_notes.UsrCod", + Gbl.CurrentDeg.Deg.DegCod); + break; + case Sco_SCOPE_CRS: + sprintf (Query,"SELECT COUNT(DISTINCT social_notes.NotCod),COUNT(DISTINCT social_notes.UsrCod)" + " FROM crs_usr,social_notes" + " WHERE crs_usr.CrsCod='%ld'" + " AND crs_usr.UsrCod=social_notes.UsrCod", + Gbl.CurrentCrs.Crs.CrsCod); + break; + default: + Lay_ShowErrorAndExit ("Wrong scope."); + break; + } + NumSocialNotes = 0; + NumUsrs = 0; + if (DB_QuerySELECT (Query,&mysql_res,"can not get number of social notes")) + { + /* Get number of social notes and number of users */ + row = mysql_fetch_row (mysql_res); + + /* Get number of social notes */ + if (row[0]) + if (sscanf (row[0],"%lu",&NumSocialNotes) != 1) + NumSocialNotes = 0; + + /* Get number of users */ + if (row[1]) + if (sscanf (row[1],"%u",&NumUsrs) != 1) + NumUsrs = 0; + } + + /* Free structure that stores the query result */ + DB_FreeMySQLResult (&mysql_res); + + /* Write totals */ + fprintf (Gbl.F.Out,"" + "" + "%s" + "" + "" + "%lu" + "" + "" + "%u" + "" + "" + "%5.2f%%" + "" + "" + "%.2f" + "" + "", + Txt_Total, + NumSocialNotes, + NumUsrs, + NumUsrsTotal ? (float) NumUsrs * 100.0 / (float) NumUsrsTotal : + 0.0, + NumUsrs ? (float) NumSocialNotes / (float) NumUsrs : + 0.0); + + Lay_EndRoundFrameTable (); + } + /*****************************************************************************/ /************** Get and show number of following and followers ***************/ /*****************************************************************************/ @@ -6769,7 +6983,7 @@ static void Sta_GetAndShowFollowStats (void) } DB_QuerySELECT (Query,&mysql_res,"can not get number of questions per survey"); - /***** Get number of courses *****/ + /***** Get average *****/ row = mysql_fetch_row (mysql_res); Average = Str_GetFloatNumFromStr (row[0]); @@ -6808,8 +7022,8 @@ static void Sta_GetAndShowForumStats (void) extern const char *Txt_No_of_messages; extern const char *Txt_Number_of_BR_notifications; extern const char *Txt_No_of_threads_BR_per_forum; - extern const char *Txt_No_of_messages_BR_per_thread; - extern const char *Txt_No_of_messages_BR_per_forum; + extern const char *Txt_No_of_posts_BR_per_thread; + extern const char *Txt_No_of_posts_BR_per_forum; struct Sta_StatsForum StatsForum; /***** Reset total stats *****/ @@ -6862,8 +7076,8 @@ static void Sta_GetAndShowForumStats (void) Txt_No_of_messages, Txt_Number_of_BR_notifications, Txt_No_of_threads_BR_per_forum, - Txt_No_of_messages_BR_per_thread, - Txt_No_of_messages_BR_per_forum); + Txt_No_of_posts_BR_per_thread, + Txt_No_of_posts_BR_per_forum); /***** Write a row for each type of forum *****/ switch (Gbl.Scope.Current) diff --git a/swad_statistic.h b/swad_statistic.h index bf93b7c6d..f9c4dc5f1 100644 --- a/swad_statistic.h +++ b/swad_statistic.h @@ -97,7 +97,7 @@ typedef enum Sta_CLICKS_GBL_PER_COURSE = 23, } Sta_ClicksGroupedBy_t; -#define Sta_NUM_FIGURES 22 +#define Sta_NUM_FIGURES 23 typedef enum { Sta_USERS, // Number of users @@ -109,6 +109,7 @@ typedef enum Sta_OER, // Number of OERs (Open Educational Resources) Sta_ASSIGNMENTS, // Number of assignments Sta_TESTS, // Number of test questions + Sta_SOCIAL_ACTIVITY, // Number of social notes Sta_FOLLOW, // Number of following and followers Sta_FORUMS, // Number of forums, threads and posts Sta_NOTIFY_EVENTS, // Number of users per notify event diff --git a/swad_text.c b/swad_text.c index fc5031466..9b2b09d90 100644 --- a/swad_text.c +++ b/swad_text.c @@ -23867,13 +23867,13 @@ const char *Txt_No_of_messages = "Nº de mensagens"; #endif -const char *Txt_No_of_messages_BR_per_forum = +const char *Txt_No_of_posts_BR_per_forum = #if L==1 "Nº de mensajes
por foro"; // Necessita traduccio #elif L==2 "Anzahl der Nachrichten
pro Forum"; #elif L==3 - "No. of messages
per forum"; + "No. of posts
per forum"; #elif L==4 "Nº de mensajes
por foro"; #elif L==5 @@ -23881,28 +23881,49 @@ const char *Txt_No_of_messages_BR_per_forum = #elif L==6 "Nº de mensajes
por foro"; // Okoteve traducción #elif L==7 - "Numero di messaggi
per forum"; + "Numero di post
per forum"; #elif L==8 "Liczba wiadomosci
per forum"; #elif L==9 "Nº de mensagens
por fórum"; #endif -const char *Txt_No_of_messages_BR_per_thread = +const char *Txt_No_of_posts_BR_per_user = +#if L==1 + "Nº de mensajes
por usuari"; // Necessita traduccio +#elif L==2 + "Anzahl der Nachrichten
pro Benutzer"; +#elif L==3 + "No. of posts
per user"; +#elif L==4 + "Nº de mensajes
por usuario"; +#elif L==5 + "Nombre de messages
par utilisateur"; +#elif L==6 + "Nº de mensajes
por puruhára"; // Okoteve traducción +#elif L==7 + "Numero di post
per utente"; +#elif L==8 + "Liczba wiadomosci
per użytkownik"; +#elif L==9 + "Nº de mensagens
por utilizador"; +#endif + +const char *Txt_No_of_posts_BR_per_thread = #if L==1 "Nº de mensajes
por discusión"; // Necessita traduccio #elif L==2 "Anzahl der Nachrichten
pro Thread"; #elif L==3 - "No. of messages
per thread"; + "No. of posts
per thread"; #elif L==4 - "Nº de mensajes
por discusión"; + "Nº de mensajes
por usuario"; #elif L==5 "Nombre de messages
par fil"; #elif L==6 "Nº de mensajes
por discusión"; // Okoteve traducción #elif L==7 - "Numero di messaggi
per discussione"; + "Numero di post
per discussione"; #elif L==8 "Liczba wiadomosci
per watku"; #elif L==9 @@ -23972,6 +23993,27 @@ const char *Txt_No_of_questions = "Nº de questões"; #endif +const char *Txt_No_of_social_posts = +#if L==1 + "Nombre de missatges socials"; +#elif L==2 + "Anzahl der sozialen Beiträge"; +#elif L==3 + "No. of social posts"; +#elif L==4 + "Nº de mensajes sociales"; +#elif L==5 + "Nombre de messages sociaux"; +#elif L==6 + "Nº de mensajes sociales"; // Okoteve traducción +#elif L==7 + "Numero di post sociali"; +#elif L==8 + "Liczba post społecznej"; +#elif L==9 + "Nº de post sociais"; +#endif + const char *Txt_No_of_threads = #if L==1 "Nº de discusiones"; // Necessita traduccio @@ -24076,28 +24118,7 @@ const char *Txt_No_of_users_who_will_be_notified_by_e_mail = #elif L==9 "Nº de utilizadores que serão notificados por e-mail"; #endif -/* -const char *Txt_No_public_activity = -#if L==1 - "Cap activitat pública"; -#elif L==2 - "Keine öffentliche Aktivität"; -#elif L==3 - "No public activity"; -#elif L==4 - "Ninguna actividad pública"; -#elif L==5 - "Aucune activité public"; -#elif L==6 - "Ninguna actividad pública"; // Okoteve traducción -#elif L==7 - "Nessuna attività pubblica"; -#elif L==8 - "Brak aktywność publiczne"; -#elif L==9 - "Sem atividade pública"; -#endif -*/ + const char *Txt_No_questions_found_matching_your_search_criteria = #if L==1 "No hay preguntas con el criterio de búsqueda seleccionado."; // Necessita traduccio @@ -36411,7 +36432,7 @@ const char *Txt_STAT_CLICKS_GROUPED_BY[Sta_NUM_CLICKS_GROUPED_BY] = #endif , #if L==1 - "usuario" // Necessita traduccio + "usuari" #elif L==2 "Benutzer" #elif L==3 @@ -37671,6 +37692,26 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_FIGURES] = "Testes" #endif , +#if L==1 // Sta_SOCIAL_ACTIVITY + "Activitat pública" +#elif L==2 + "Öffentliche Aktivität" +#elif L==3 + "Public activity" +#elif L==4 + "Actividad pública" +#elif L==5 + "Activité public" +#elif L==6 + "Actividad pública" // Okoteve traducción +#elif L==7 + "Attività pubblica" +#elif L==8 + "Aktywność publiczne" +#elif L==9 + "Atividade pública" +#endif + , #if L==1 // Sta_FOLLOW "Seguits / Seguidors" #elif L==2