Version 18.25

This commit is contained in:
Antonio Cañas Vargas 2018-12-29 15:03:30 +01:00
parent 9b9568ec90
commit 3ba7f6253a
9 changed files with 399 additions and 56 deletions

View File

@ -29,8 +29,9 @@
OBJS = swad_account.o swad_action.o swad_agenda.o swad_alert.o \
swad_announcement.o swad_assignment.o swad_attendance.o \
swad_banner.o swad_box.o swad_button.o \
swad_calendar.o swad_centre.o swad_chat.o swad_config.o \
swad_connected.o swad_country.o swad_course.o swad_cryptography.o \
swad_calendar.o swad_centre.o swad_chat.o swad_classroom.o \
swad_config.o swad_connected.o swad_country.o swad_course.o \
swad_cryptography.o \
swad_database.o swad_date.o swad_degree.o swad_degree_type.o \
swad_department.o swad_duplicate.o \
swad_enrolment.o swad_exam.o \

View File

@ -238,7 +238,8 @@ Institution:
Centre:
122. ActCtrReqSch Request search in centre tab
123. ActSeeCtrInf Show information on the current centre
124. ActSeeDeg List degrees of a type
124. ActSeeDeg List degrees in a centre
NEW. ActSeeCla List classrooms in a centre
125. ActSeeCalCtr Show the academic calendar
126. ActCtrSch Search for courses, teachers, documents...
@ -266,6 +267,12 @@ Centre:
146. ActChgDegWWW Request change of the web of a degree
147. ActChgDegSta Request change of status of a degree
NEW. ActEdiCla Edit classrooms
NEW. ActNewCla Request the creation of a classroom
NEW. ActRemCla Remove a classroom
NEW. ActRenClaSho Change short name of a classroom
NEW. ActRenClaFul Change full name of a classroom
148. ActPrnCtrCrs Show print view of the academic calendar
149. ActChgCtrCrs1stDay Change first day of week and show academic calendar
@ -1760,7 +1767,8 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActCtrReqSch */{1178, 0,TabCtr,ActCtrReqSch , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Sch_ReqCtrSearch ,"search64x64.gif" },
/* ActSeeCtrInf */{1151, 1,TabCtr,ActSeeCtrInf , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ctr_ShowConfiguration ,"info64x64.gif" },
/* ActSeeDeg */{1011, 2,TabCtr,ActSeeDeg , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Deg_ShowDegsOfCurrentCtr ,"deg64x64.gif" },
/* ActSeeCalCtr */{1631, 3,TabCtr,ActSeeCalCtr , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cal_DrawCalendarCtr ,"calendar64x64.png" },
/* ActSeeCla */{1744, 3,TabCtr,ActSeeCla , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cla_SeeClassrooms ,"classroom.svg" },
/* ActSeeCalCtr */{1631, 4,TabCtr,ActSeeCalCtr , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cal_DrawCalendarCtr ,"calendar64x64.png" },
// Actions not in menu:
/* ActCtrSch */{1183,-1,TabUnk,ActCtrReqSch , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Sch_GetParamsSearch ,Sch_CtrSearch ,NULL},
@ -1794,6 +1802,12 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActChgDegWWW */{ 554,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Deg_ChangeDegWWW ,NULL},
/* ActChgDegSta */{1207,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x380, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Deg_ChangeDegStatus ,NULL},
/* ActEdiCla */{1745,-1,TabUnk,ActSeeCla , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cla_EditClassrooms ,NULL},
/* ActNewCla */{1746,-1,TabUnk,ActSeeCla , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cla_RecFormNewClassroom ,NULL},
/* ActRemCla */{1747,-1,TabUnk,ActSeeCla , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cla_RemoveClassroom ,NULL},
/* ActRenClaSho */{1748,-1,TabUnk,ActSeeCla , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cla_RenameClassroomShort ,NULL},
/* ActRenClaFul */{1749,-1,TabUnk,ActSeeCla , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cla_RenameClassroomFull ,NULL},
/* ActPrnCalCtr */{1632,-1,TabUnk,ActSeeCalCtr , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Cal_PrintCalendar ,NULL},
/* ActChgCalCtr1stDay*/{1633,-1,TabUnk,ActSeeCalCtr , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Cal_ChangeFirstDayOfWeek ,Cal_DrawCalendarCtr ,NULL},
@ -4932,6 +4946,12 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActChgNicOth, // #1741
ActChgNicStd, // #1742
ActChgNicTch, // #1743
ActSeeCla, // #1744
ActEdiCla, // #1745
ActNewCla, // #1746
ActRemCla, // #1747
ActRenClaSho, // #1748
ActRenClaFul, // #1749
};
/*****************************************************************************/

View File

@ -61,9 +61,9 @@ typedef enum
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 33 + 24 + 115 + 157 + 437 + 165 + 172 + 42 + 14 + 76)
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 39 + 24 + 115 + 157 + 437 + 165 + 172 + 42 + 14 + 76)
#define Act_MAX_ACTION_COD 1743
#define Act_MAX_ACTION_COD 1749
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
@ -232,41 +232,48 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActCtrReqSch (ActChgCalIns1stDay + 1)
#define ActSeeCtrInf (ActChgCalIns1stDay + 2)
#define ActSeeDeg (ActChgCalIns1stDay + 3)
#define ActSeeCalCtr (ActChgCalIns1stDay + 4)
#define ActSeeCla (ActChgCalIns1stDay + 4)
#define ActSeeCalCtr (ActChgCalIns1stDay + 5)
// Secondary actions
#define ActCtrSch (ActChgCalIns1stDay + 5)
#define ActPrnCtrInf (ActChgCalIns1stDay + 6)
#define ActChgCtrInsCfg (ActChgCalIns1stDay + 7)
#define ActRenCtrShoCfg (ActChgCalIns1stDay + 8)
#define ActRenCtrFulCfg (ActChgCalIns1stDay + 9)
#define ActChgCtrPlcCfg (ActChgCalIns1stDay + 10)
#define ActChgCtrWWWCfg (ActChgCalIns1stDay + 11)
#define ActReqCtrLog (ActChgCalIns1stDay + 12)
#define ActRecCtrLog (ActChgCalIns1stDay + 13)
#define ActRemCtrLog (ActChgCalIns1stDay + 14)
#define ActReqCtrPho (ActChgCalIns1stDay + 15)
#define ActRecCtrPho (ActChgCalIns1stDay + 16)
#define ActChgCtrPhoAtt (ActChgCalIns1stDay + 17)
#define ActCtrSch (ActChgCalIns1stDay + 6)
#define ActPrnCtrInf (ActChgCalIns1stDay + 7)
#define ActChgCtrInsCfg (ActChgCalIns1stDay + 8)
#define ActRenCtrShoCfg (ActChgCalIns1stDay + 9)
#define ActRenCtrFulCfg (ActChgCalIns1stDay + 10)
#define ActChgCtrPlcCfg (ActChgCalIns1stDay + 11)
#define ActChgCtrWWWCfg (ActChgCalIns1stDay + 12)
#define ActReqCtrLog (ActChgCalIns1stDay + 13)
#define ActRecCtrLog (ActChgCalIns1stDay + 14)
#define ActRemCtrLog (ActChgCalIns1stDay + 15)
#define ActReqCtrPho (ActChgCalIns1stDay + 16)
#define ActRecCtrPho (ActChgCalIns1stDay + 17)
#define ActChgCtrPhoAtt (ActChgCalIns1stDay + 18)
#define ActSeeDegTyp (ActChgCalIns1stDay + 18)
#define ActEdiDegTyp (ActChgCalIns1stDay + 19)
#define ActNewDegTyp (ActChgCalIns1stDay + 20)
#define ActRemDegTyp (ActChgCalIns1stDay + 21)
#define ActRenDegTyp (ActChgCalIns1stDay + 22)
#define ActSeeDegTyp (ActChgCalIns1stDay + 19)
#define ActEdiDegTyp (ActChgCalIns1stDay + 20)
#define ActNewDegTyp (ActChgCalIns1stDay + 21)
#define ActRemDegTyp (ActChgCalIns1stDay + 22)
#define ActRenDegTyp (ActChgCalIns1stDay + 23)
#define ActEdiDeg (ActChgCalIns1stDay + 23)
#define ActReqDeg (ActChgCalIns1stDay + 24)
#define ActNewDeg (ActChgCalIns1stDay + 25)
#define ActRemDeg (ActChgCalIns1stDay + 26)
#define ActRenDegSho (ActChgCalIns1stDay + 27)
#define ActRenDegFul (ActChgCalIns1stDay + 28)
#define ActChgDegTyp (ActChgCalIns1stDay + 29)
#define ActChgDegWWW (ActChgCalIns1stDay + 30)
#define ActChgDegSta (ActChgCalIns1stDay + 31)
#define ActEdiDeg (ActChgCalIns1stDay + 24)
#define ActReqDeg (ActChgCalIns1stDay + 25)
#define ActNewDeg (ActChgCalIns1stDay + 26)
#define ActRemDeg (ActChgCalIns1stDay + 27)
#define ActRenDegSho (ActChgCalIns1stDay + 28)
#define ActRenDegFul (ActChgCalIns1stDay + 29)
#define ActChgDegTyp (ActChgCalIns1stDay + 30)
#define ActChgDegWWW (ActChgCalIns1stDay + 31)
#define ActChgDegSta (ActChgCalIns1stDay + 32)
#define ActPrnCalCtr (ActChgCalIns1stDay + 32)
#define ActChgCalCtr1stDay (ActChgCalIns1stDay + 33)
#define ActEdiCla (ActChgCalIns1stDay + 33)
#define ActNewCla (ActChgCalIns1stDay + 34)
#define ActRemCla (ActChgCalIns1stDay + 35)
#define ActRenClaSho (ActChgCalIns1stDay + 36)
#define ActRenClaFul (ActChgCalIns1stDay + 37)
#define ActPrnCalCtr (ActChgCalIns1stDay + 38)
#define ActChgCalCtr1stDay (ActChgCalIns1stDay + 39)
/*****************************************************************************/
/********************************* Degree tab ********************************/

View File

@ -364,16 +364,17 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.24 (2018-12-29)"
#define Log_PLATFORM_VERSION "SWAD 18.25 (2018-12-29)"
#define CSS_FILE "swad18.22.css"
#define JS_FILE "swad17.17.1.js"
/*
Version 18.24: Dec 29, 2018 Option for view/edit places is separated from centres. (? lines)
Version 18.25: Dec 29, 2018 New option and module to view/edit classrooms in a centre. Not finished. (238375 lines)
Version 18.24: Dec 29, 2018 Option for view/edit places is separated from centres. (237242 lines)
Version 18.23: Dec 27, 2018 Changes in directories for icon sets.
Bell icon changed to SVG. (237192 lines)
cd /var/www/html/swad/icon/iconset/
mv awesome/action64x64/* awesome/
mv nuvola/action64x64/* nuvola/
mv awesome/action64x64/<image-files> awesome/
mv nuvola/action64x64/<image-files> nuvola/
rm -Rf awesome/128x128
rm -Rf awesome/action16x16
rm -Rf awesome/action32x32

View File

@ -38,6 +38,7 @@
#include "swad_attendance.h"
#include "swad_banner.h"
#include "swad_centre.h"
#include "swad_classroom.h"
#include "swad_connected.h"
#include "swad_config.h"
#include "swad_country.h"
@ -232,6 +233,13 @@ struct Globals
struct Place EditingPlc;
Plc_Order_t SelectedOrder;
} Plcs;
struct
{
unsigned Num; // Number of classrooms
struct Classroom *Lst; // List of classrooms
struct Classroom EditingCla;
Cla_Order_t SelectedOrder;
} Classrooms;
struct
{
bool LstIsRead; // Is the list already read from database, or it needs to be read?

View File

@ -520,6 +520,48 @@ const char *Hlp_CENTRE_Degrees =
"CENTRE.Degrees.en";
#endif
const char *Hlp_CENTRE_Classrooms =
#if L==1
"CENTRE.Classrooms.es";
#elif L==2
"CENTRE.Classrooms.en";
#elif L==3
"CENTRE.Classrooms.en";
#elif L==4
"CENTRE.Classrooms.es";
#elif L==5
"CENTRE.Classrooms.en";
#elif L==6
"CENTRE.Classrooms.es";
#elif L==7
"CENTRE.Classrooms.en";
#elif L==8
"CENTRE.Classrooms.en";
#elif L==9
"CENTRE.Classrooms.en";
#endif
const char *Hlp_CENTRE_Classrooms_edit =
#if L==1
"CENTRE.Classrooms.es#editar";
#elif L==2
"CENTRE.Classrooms.en#edit";
#elif L==3
"CENTRE.Classrooms.en#edit";
#elif L==4
"CENTRE.Classrooms.es#editar";
#elif L==5
"CENTRE.Classrooms.en#edit";
#elif L==6
"CENTRE.Classrooms.es#editar";
#elif L==7
"CENTRE.Classrooms.en#edit";
#elif L==8
"CENTRE.Classrooms.en#edit";
#elif L==9
"CENTRE.Classrooms.en#edit";
#endif
/***** DEGREE tab *****/
const char *Hlp_DEGREE_Information =

View File

@ -140,8 +140,8 @@ const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB
ActCtrReqSch, // 0
ActSeeCtrInf, // 1
ActSeeDeg, // 2
ActSeeCalCtr, // 3
0, // 4
ActSeeCla, // 3
ActSeeCalCtr, // 4
0, // 5
0, // 6
0, // 7

View File

@ -27,6 +27,8 @@
/********************************** Headers **********************************/
/*****************************************************************************/
#include "swad_string.h"
/*****************************************************************************/
/************************** Public types and constants ***********************/
/*****************************************************************************/

View File

@ -59,6 +59,7 @@
#include "swad_action.h"
#include "swad_assignment.h"
#include "swad_centre.h"
#include "swad_classroom.h"
#include "swad_config.h"
#include "swad_country.h"
#include "swad_course.h"
@ -1641,6 +1642,27 @@ const char *Txt_Another_centre =
"Outro centro";
#endif
const char *Txt_Another_classroom =
#if L==1 // ca
"Una altra aula";
#elif L==2 // de
"Ein weiterer Klassenzimmer";
#elif L==3 // en
"Another classroom";
#elif L==4 // es
"Otra aula";
#elif L==5 // fr
"Une autre salle de classe";
#elif L==6 // gn
"Otra aula"; // Okoteve traducción
#elif L==7 // it
"Un'altra aula";
#elif L==8 // pl
"Innym klasa";
#elif L==9 // pt
"Outra sala de aula";
#endif
const char *Txt_Another_country =
#if L==1 // ca
"Un altre pa&iacute;s";
@ -3840,9 +3862,9 @@ const char *Txt_Classroom =
#elif L==4 // es
"Aula";
#elif L==5 // fr
"Classe";
"Salle de classe";
#elif L==6 // gn
"Aula"; // Okoteve traducción
"Mbo'ehakoty";
#elif L==7 // it
"Aula";
#elif L==8 // pl
@ -3851,6 +3873,134 @@ const char *Txt_Classroom =
"Sala de aula";
#endif
const char *Txt_CLASSROOMS_HELP_ORDER[Cla_NUM_ORDERS] =
{
#if L==1 // ca
"Ordenar por aula" // Necessita traduccio
#elif L==2 // de
"Nach Klassenzimmer sortieren"
#elif L==3 // en
"Sort by classroom"
#elif L==4 // es
"Ordenar por aula"
#elif L==5 // fr
"Trier par salle de classe"
#elif L==6 // gn
"Ordenar por aula" // Okoteve traducción
#elif L==7 // it
"Ordina per aula"
#elif L==8 // pl
"Sortuj wedlug klasa"
#elif L==9 // pt
"Classificar por sala de aula"
#endif
,
#if L==1 // ca
"Ordenar per nombre d'estudiants"
#elif L==2 // de
"Nach Anzahl der Studenten sortieren"
#elif L==3 // en
"Sort by no. of students"
#elif L==4 // es
"Ordenar por n&ordm; de estudiantes"
#elif L==5 // fr
"Trier par nombre d'&eacute;tudiants"
#elif L==6 // gn
"Ordenar por n&ordm; de estudiantes" // Okoteve traducción
#elif L==7 // it
"Ordina per numero di studenti"
#elif L==8 // pl
"Sortuj wedlug studenci"
#elif L==9 // pt
"Classificar por n&uacute;mero de estudantes"
#endif
};
const char *Txt_CLASSROOMS_ORDER[Plc_NUM_ORDERS] =
{
#if L==1 // ca
"Aula"
#elif L==2 // de
"Klassenzimmer"
#elif L==3 // en
"Classroom"
#elif L==4 // es
"Aula"
#elif L==5 // fr
"Salle de classe"
#elif L==6 // gn
"Mbo'ehakoty"
#elif L==7 // it
"Aula"
#elif L==8 // pl
"Klasa"
#elif L==9 // pt
"Sala de aula"
#endif
,
#if L==1 // ca
"Estudiants"
#elif L==2 // de
"Studenten"
#elif L==3 // en
"Students"
#elif L==4 // es
"Estudiantes"
#elif L==5 // fr
"&Eacute;tudiants"
#elif L==6 // gn
"Estudiantes" // Okoteve traducción
#elif L==7 // it
"Studenti"
#elif L==8 // pl
"Student&oacute;w"
#elif L==9 // pt
"Estudantes"
#endif
};
const char *Txt_Classroom_unspecified =
#if L==1 // ca
"Aula sense especificar";
#elif L==2 // de
"Klassenzimmer nicht spezifiziert";
#elif L==3 // en
"Classroom unspecified";
#elif L==4 // es
"Aula sin especificar";
#elif L==5 // fr
"Salle de classe non sp&eacute;cifi&eacute;e";
#elif L==6 // gn
"Aula sin especificar"; // Okoteve traducción
#elif L==7 // it
"Aula non specificata";
#elif L==8 // pl
"Klasa nieokreslone";
#elif L==9 // pt
"Sala de aula indeterminada";
#endif
const char *Txt_Classrooms =
#if L==1 // ca
"Aules";
#elif L==2 // de
"Klassenzimmer";
#elif L==3 // en
"Classrooms";
#elif L==4 // es
"Aulas";
#elif L==5 // fr
"Salles de classe";
#elif L==6 // gn
"Mbo'ehakoty";
#elif L==7 // it
"Aule";
#elif L==8 // pl
"Klasy";
#elif L==9 // pt
"Salas de aula";
#endif
const char *Txt_Click =
#if L==1 // ca
"Clic";
@ -5325,6 +5475,27 @@ const char *Txt_Create_centre =
"Criar centro";
#endif
const char *Txt_Create_classroom =
#if L==1 // ca
"Crear aula";
#elif L==2 // de
"Klassenzimmer eingeben";
#elif L==3 // en
"Create classroom";
#elif L==4 // es
"Crear aula";
#elif L==5 // fr
"Cr&eacute;er salle de classe";
#elif L==6 // gn
"Crear aula"; // Okoteve traducción
#elif L==7 // it
"Crea aula";
#elif L==8 // pl
"Tworzenie klasa";
#elif L==9 // pt
"Criar sala de aula";
#endif
const char *Txt_Create_country =
#if L==1 // ca
"Crear pa&iacute;s"; // Necessita traduccio
@ -17899,7 +18070,28 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Graus"
#endif
,
// 3: ActSeeCalCtr
// 3: ActSeeCla
#if L==1 // ca
"Aules"
#elif L==2 // de
"Klassenzimmer"
#elif L==3 // en
"Classrooms"
#elif L==4 // es
"Aulas"
#elif L==5 // fr
"Salles"
#elif L==6 // gn
"Mbo'ehakoty"
#elif L==7 // it
"Aule"
#elif L==8 // pl
"Sale"
#elif L==9 // pt
"Salas"
#endif
,
// 4: ActSeeCalCtr
#if L==1 // ca
"Calendari"
#elif L==2 // de
@ -17920,7 +18112,6 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Calend&aacute;rio"
#endif
,
NULL, // 4
NULL, // 5
NULL, // 6
NULL, // 7
@ -19875,7 +20066,28 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Graus"
#endif
,
// 3: ActSeeCalCtr
// 3: ActSeeCla
#if L==1 // ca
"Aules, laboratoris o altres llocs on s'imparteixen classes"
#elif L==2 // de
"Klassenzimmer, Laboratorien oder andere Unterrichtsorte"
#elif L==3 // en
"Classrooms, laboratories or other places where classes are taught"
#elif L==4 // es
"Aulas, laboratorios u otros lugares donde se imparten clases"
#elif L==5 // fr
"Salles de classe, laboratoires ou autres lieux de cours"
#elif L==6 // gn
"Mbo'ehakoty"
#elif L==7 // it
"Aule, laboratori o altri luoghi in cui vengono insegnate le lezioni"
#elif L==8 // pl
"Klasy, laboratoria lub inne miejsca, w kt&oacute;rych odbywaj&aogon; si&eogon; zaj&eogon;cia"
#elif L==9 // pt
"Salas de aula, laborat&oacute;rios ou outros locais onde as aulas s&atilde;o ministradas"
#endif
,
// 4: ActSeeCalCtr
#if L==1 // ca
"Calendari acad&egrave;mic (els dies festius"
" corresponen al lloc del centre seleccionada)"
@ -19899,7 +20111,6 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Calend&aacute;rio"
#endif
,
NULL, // 4
NULL, // 5
NULL, // 6
NULL, // 7
@ -23219,6 +23430,27 @@ const char *Txt_New_centre =
"Novo centro (faculdade, escola, faculdade, divis&atilde;o, constru&ccedil;&atilde;o...)";
#endif
const char *Txt_New_classroom =
#if L==1 // ca
"Nova aula";
#elif L==2 // de
"Neue Klassenzimmer";
#elif L==3 // en
"New classroom";
#elif L==4 // es
"Nueva aula";
#elif L==5 // fr
"Nouvelle salle de classe";
#elif L==6 // gn
"Nueva aula"; // Okoteve traducción
#elif L==7 // it
"Nuova aula";
#elif L==8 // pl
"Nowe klasa";
#elif L==9 // pt
"Nova sala de aula";
#endif
const char *Txt_New_country =
#if L==1 // ca
"Nuevo pa&iacute;s"; // Necessita traduccio
@ -53876,6 +54108,36 @@ const char *Txt_You_can_not_leave_the_name_of_the_centre_X_empty = // Warning: i
" do centro <strong>%s</strong> vazio.";
#endif
const char *Txt_You_can_not_leave_the_name_of_the_classroom_X_empty = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"No pot deixar el nom"
" de l'aula <strong>%s</strong> buit.";
#elif L==2 // de
"Sie k&ouml;nnen den Namen"
" des Klassenzimmer <strong>%s</strong> nicht leer lassen.";
#elif L==3 // en
"You can not leave the name"
" of the classroom <strong>%s</strong> empty.";
#elif L==4 // es
"No puede dejar el nombre"
" del aula <strong>%s</strong> vac&iacute;o.";
#elif L==5 // fr
"Vous ne pouvez pas laisser le nom"
" de la salle de classe <strong>%s</strong> vide.";
#elif L==6 // gn
"No puede dejar el nombre"
" del aula <strong>%s</strong> vac&iacute;o."; // Okoteve traducción
#elif L==7 // it
"Non puoi lasciare il nome"
" della aula <strong>%s</strong> vuoto.";
#elif L==8 // pl
"Nie mo&zdot;esz zostawi&cacute;"
" pustego imienia w klasie <strong>%s</strong>.";
#elif L==9 // pt
"Voc&ecirc; n&atilde;o pode deixar o nome"
" da sala de clase <strong>%s</strong> vazio.";
#endif
const char *Txt_You_can_not_leave_the_name_of_the_course_X_empty = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"No puede dejar el nombre"
@ -54178,11 +54440,11 @@ const char *Txt_You_can_not_leave_the_name_of_the_link_X_empty = // Warning: it
const char *Txt_You_can_not_leave_the_name_of_the_place_X_empty = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"No puede dejar el nombre"
" del lugar <strong>%s</strong> vac&iacute;o."; // Necessita traduccio
"No pot deixar el nom"
" del lloc <strong>%s</strong> buit.";
#elif L==2 // de
"You can not leave the name"
" of the place <strong>%s</strong> empty."; // Need Übersetzung
"Sie k&ouml;nnen den Namen"
" des Standorte <strong>%s</strong> nicht leer lassen.";
#elif L==3 // en
"You can not leave the name"
" of the place <strong>%s</strong> empty.";
@ -54190,8 +54452,8 @@ const char *Txt_You_can_not_leave_the_name_of_the_place_X_empty = // Warning: it
"No puede dejar el nombre"
" del lugar <strong>%s</strong> vac&iacute;o.";
#elif L==5 // fr
"You can not leave the name"
" of the place <strong>%s</strong> empty."; // Besoin de traduction
"Vous ne pouvez pas laisser le nom"
" du lieu <strong>%s</strong> vide.";
#elif L==6 // gn
"No puede dejar el nombre"
" del lugar <strong>%s</strong> vac&iacute;o."; // Okoteve traducción
@ -54199,8 +54461,8 @@ const char *Txt_You_can_not_leave_the_name_of_the_place_X_empty = // Warning: it
"Non puoi lasciare il nome"
" del luogo <strong>%s</strong> vuoto.";
#elif L==8 // pl
"You can not leave the name"
" of the place <strong>%s</strong> empty."; // Potrzebujesz tlumaczenie
"Nie mo&zdot;esz zostawi&cacute; nazwy"
" miejsca <strong>%s</strong> pustego.";
#elif L==9 // pt
"Voc&ecirc; n&atilde;o pode deixar o nome"
" da localiza&ccedil;&atilde;o <strong>%s</strong> vazio.";