From 44f94d1075ce7b3a1c53a4ec4e0f89e699ca3668 Mon Sep 17 00:00:00 2001 From: acanas Date: Tue, 14 Apr 2020 22:45:10 +0200 Subject: [PATCH] Version19.186 --- Makefile | 2 +- sql/cambios.sql | 7 + sql/swad.sql | 11 + swad_action.c | 28 +- swad_action.h | 84 +++-- swad_changelog.h | 7 +- swad_database.c | 23 ++ swad_help_URL.c | 42 +++ swad_menu.c | 3 +- swad_room.c | 10 +- swad_text.c | 856 ++++++++++++++++++++++++++++++++++----------- swad_text_action.c | 147 ++++++++ 12 files changed, 965 insertions(+), 255 deletions(-) diff --git a/Makefile b/Makefile index a071f961e..3fae87791 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,7 @@ OBJS = swad_account.o swad_action.o swad_agenda.o swad_alert.o \ swad_announcement.o swad_API.o swad_assignment.o swad_attendance.o \ - swad_banner.o swad_box.o swad_button.o \ + swad_banner.o swad_box.o swad_building.o swad_button.o \ swad_calendar.o swad_centre.o swad_centre_config.o swad_chat.o \ swad_config.o swad_connected.o swad_cookie.o swad_country.o \ swad_country_config.o swad_course.o \ diff --git a/sql/cambios.sql b/sql/cambios.sql index e340ad19f..b57910cae 100644 --- a/sql/cambios.sql +++ b/sql/cambios.sql @@ -13331,4 +13331,11 @@ SELECT my_courses.CrsCod,COUNT(*) AS N FROM (SELECT CrsCod,UsrCod,Role FROM crs_ SELECT my_courses.CrsCod,COUNT(*) AS N FROM (SELECT CrsCod FROM crs_usr WHERE UsrCod=1346 AND Role=5) AS my_courses LEFT JOIN log ON (my_courses.CrsCod=log.CrsCod) WHERE log.UsrCod=1346 AND log.Role=5 GROUP BY my_courses.CrsCod ORDER BY N DESC,my_courses.CrsCod DESC; + +-------------------- + +SELECT COUNT(*) FROM usr_data WHERE InsCod=25037; +UPDATE usr_data SET InsCod=1130 WHERE InsCod=25037; + + \ No newline at end of file diff --git a/sql/swad.sql b/sql/swad.sql index 2d88ac853..59e9f43ac 100644 --- a/sql/swad.sql +++ b/sql/swad.sql @@ -154,6 +154,17 @@ CREATE TABLE IF NOT EXISTS birthdays_today ( UNIQUE INDEX(UsrCod), INDEX(Today)); -- +-- Table buildings: buildings in a centre +-- +CREATE TABLE IF NOT EXISTS buildings ( + BldCod INT NOT NULL AUTO_INCREMENT, + CtrCod INT NOT NULL, + ShortName VARCHAR(511) NOT NULL, + FullName VARCHAR(2047) NOT NULL, + Location VARCHAR(2047) NOT NULL, + UNIQUE INDEX(BldCod), + INDEX(CtrCod)); +-- -- Table centres: centres (faculties, schools...) -- CREATE TABLE IF NOT EXISTS centres ( diff --git a/swad_action.c b/swad_action.c index 691c3aa9b..1cd72087b 100644 --- a/swad_action.c +++ b/swad_action.c @@ -30,6 +30,7 @@ #include "swad_announcement.h" #include "swad_attendance.h" #include "swad_banner.h" +#include "swad_building.h" #include "swad_calendar.h" #include "swad_centre_config.h" #include "swad_config.h" @@ -315,6 +316,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = // Actions in menu: [ActSeeCtrInf ] = {1151, 0,TabCtr,ActSeeCtrInf , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,CtrCfg_ShowConfiguration ,"info" }, [ActSeeDeg ] = {1011, 1,TabCtr,ActSeeDeg , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Deg_ShowDegsOfCurrentCtr ,"graduation-cap" }, + [ActSeeBld ] = {1838, 2,TabCtr,ActSeeBld , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Bld_SeeBuildings ,"building" }, [ActSeeRoo ] = {1744, 2,TabCtr,ActSeeRoo , 0, 0, 0,0x3C7, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Roo_SeeRooms ,"classroom" }, // Actions not in menu: @@ -350,13 +352,20 @@ const 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,Deg_ChangeDegWWW ,Deg_ContEditAfterChgDeg ,NULL}, [ActChgDegSta ] = {1207,-1,TabUnk,ActSeeDeg , 0, 0, 0,0x380, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Deg_ChangeDegStatus ,Deg_ContEditAfterChgDeg ,NULL}, - [ActEdiRoo ] = {1745,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Roo_EditRooms ,NULL}, - [ActNewRoo ] = {1746,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_RecFormNewRoom ,Roo_ContEditAfterChgRoom ,NULL}, - [ActRemRoo ] = {1747,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_RemoveRoom ,Roo_ContEditAfterChgRoom ,NULL}, - [ActRenRooSho ] = {1748,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_RenameRoomShort ,Roo_ContEditAfterChgRoom ,NULL}, - [ActRenRooFul ] = {1749,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_RenameRoomFull ,Roo_ContEditAfterChgRoom ,NULL}, + [ActEdiBld ] = {1839,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Bld_EditBuildings ,NULL}, + [ActNewBld ] = {1840,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Bld_RecFormNewBuilding ,Bld_ContEditAfterChgBuilding ,NULL}, + [ActRemBld ] = {1841,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Bld_RemoveBuilding ,Bld_ContEditAfterChgBuilding ,NULL}, + [ActRenBldSho ] = {1842,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Bld_RenameBuildingShort ,Bld_ContEditAfterChgBuilding ,NULL}, + [ActRenBldFul ] = {1843,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Bld_RenameBuildingFull ,Bld_ContEditAfterChgBuilding ,NULL}, + [ActRenBldLoc ] = {1844,-1,TabUnk,ActSeeBld , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Bld_ChangeBuildingLocation ,Bld_ContEditAfterChgBuilding ,NULL}, + + [ActEdiRoo ] = {1745,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Roo_EditRooms ,NULL}, + [ActNewRoo ] = {1746,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_RecFormNewRoom ,Roo_ContEditAfterChgRoom ,NULL}, + [ActRemRoo ] = {1747,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_RemoveRoom ,Roo_ContEditAfterChgRoom ,NULL}, + [ActRenRooSho ] = {1748,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_RenameRoomShort ,Roo_ContEditAfterChgRoom ,NULL}, + [ActRenRooFul ] = {1749,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_RenameRoomFull ,Roo_ContEditAfterChgRoom ,NULL}, [ActChgRooMaxUsr ] = {1750,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_ChangeCapacity ,Roo_ContEditAfterChgRoom ,NULL}, - [ActRenRooLoc ] = {1751,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_ChangeRoomLocation ,Roo_ContEditAfterChgRoom ,NULL}, + [ActRenRooLoc ] = {1751,-1,TabUnk,ActSeeRoo , 0, 0, 0,0x3C6, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Roo_ChangeRoomLocation ,Roo_ContEditAfterChgRoom ,NULL}, // TabDeg ****************************************************************** // Actions in menu: @@ -3575,6 +3584,13 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un ActReqRemSevTstQst, // #1835 ActRemSevTstQst, // #1836 ActReqAssTst, // #1837 + ActSeeBld, // #1838 + ActEdiBld, // #1839 + ActNewBld, // #1840 + ActRemBld, // #1841 + ActRenBldSho, // #1842 + ActRenBldFul, // #1843 + ActRenBldLoc, // #1844 }; /*****************************************************************************/ diff --git a/swad_action.h b/swad_action.h index 61bc153e8..4b0077c19 100644 --- a/swad_action.h +++ b/swad_action.h @@ -64,7 +64,7 @@ typedef enum typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action -#define Act_MAX_ACTION_COD 1837 +#define Act_MAX_ACTION_COD 1844 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13 @@ -293,48 +293,56 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to // Actions in menu #define ActSeeCtrInf (ActRenHld + 1) #define ActSeeDeg (ActRenHld + 2) -#define ActSeeRoo (ActRenHld + 3) +#define ActSeeBld (ActRenHld + 3) +#define ActSeeRoo (ActRenHld + 4) // Secondary actions -#define ActPrnCtrInf (ActRenHld + 4) -#define ActChgCtrInsCfg (ActRenHld + 5) -#define ActRenCtrShoCfg (ActRenHld + 6) -#define ActRenCtrFulCfg (ActRenHld + 7) -#define ActChgCtrPlcCfg (ActRenHld + 8) -#define ActChgCtrLatCfg (ActRenHld + 9) -#define ActChgCtrLgtCfg (ActRenHld + 10) -#define ActChgCtrAltCfg (ActRenHld + 11) -#define ActChgCtrWWWCfg (ActRenHld + 12) -#define ActReqCtrLog (ActRenHld + 13) -#define ActRecCtrLog (ActRenHld + 14) -#define ActRemCtrLog (ActRenHld + 15) -#define ActReqCtrPho (ActRenHld + 16) -#define ActRecCtrPho (ActRenHld + 17) -#define ActChgCtrPhoAtt (ActRenHld + 18) +#define ActPrnCtrInf (ActRenHld + 5) +#define ActChgCtrInsCfg (ActRenHld + 6) +#define ActRenCtrShoCfg (ActRenHld + 7) +#define ActRenCtrFulCfg (ActRenHld + 8) +#define ActChgCtrPlcCfg (ActRenHld + 9) +#define ActChgCtrLatCfg (ActRenHld + 10) +#define ActChgCtrLgtCfg (ActRenHld + 11) +#define ActChgCtrAltCfg (ActRenHld + 12) +#define ActChgCtrWWWCfg (ActRenHld + 13) +#define ActReqCtrLog (ActRenHld + 14) +#define ActRecCtrLog (ActRenHld + 15) +#define ActRemCtrLog (ActRenHld + 16) +#define ActReqCtrPho (ActRenHld + 17) +#define ActRecCtrPho (ActRenHld + 18) +#define ActChgCtrPhoAtt (ActRenHld + 19) -#define ActSeeDegTyp (ActRenHld + 19) -#define ActEdiDegTyp (ActRenHld + 20) -#define ActNewDegTyp (ActRenHld + 21) -#define ActRemDegTyp (ActRenHld + 22) -#define ActRenDegTyp (ActRenHld + 23) +#define ActSeeDegTyp (ActRenHld + 20) +#define ActEdiDegTyp (ActRenHld + 21) +#define ActNewDegTyp (ActRenHld + 22) +#define ActRemDegTyp (ActRenHld + 23) +#define ActRenDegTyp (ActRenHld + 24) -#define ActEdiDeg (ActRenHld + 24) -#define ActReqDeg (ActRenHld + 25) -#define ActNewDeg (ActRenHld + 26) -#define ActRemDeg (ActRenHld + 27) -#define ActRenDegSho (ActRenHld + 28) -#define ActRenDegFul (ActRenHld + 29) -#define ActChgDegTyp (ActRenHld + 30) -#define ActChgDegWWW (ActRenHld + 31) -#define ActChgDegSta (ActRenHld + 32) +#define ActEdiDeg (ActRenHld + 25) +#define ActReqDeg (ActRenHld + 26) +#define ActNewDeg (ActRenHld + 27) +#define ActRemDeg (ActRenHld + 28) +#define ActRenDegSho (ActRenHld + 29) +#define ActRenDegFul (ActRenHld + 30) +#define ActChgDegTyp (ActRenHld + 31) +#define ActChgDegWWW (ActRenHld + 32) +#define ActChgDegSta (ActRenHld + 33) -#define ActEdiRoo (ActRenHld + 33) -#define ActNewRoo (ActRenHld + 34) -#define ActRemRoo (ActRenHld + 35) -#define ActRenRooSho (ActRenHld + 36) -#define ActRenRooFul (ActRenHld + 37) -#define ActChgRooMaxUsr (ActRenHld + 38) -#define ActRenRooLoc (ActRenHld + 39) +#define ActEdiBld (ActRenHld + 34) +#define ActNewBld (ActRenHld + 35) +#define ActRemBld (ActRenHld + 36) +#define ActRenBldSho (ActRenHld + 37) +#define ActRenBldFul (ActRenHld + 38) +#define ActRenBldLoc (ActRenHld + 39) + +#define ActEdiRoo (ActRenHld + 40) +#define ActNewRoo (ActRenHld + 41) +#define ActRemRoo (ActRenHld + 42) +#define ActRenRooSho (ActRenHld + 43) +#define ActRenRooFul (ActRenHld + 44) +#define ActChgRooMaxUsr (ActRenHld + 45) +#define ActRenRooLoc (ActRenHld + 46) /*****************************************************************************/ /********************************* Degree tab ********************************/ diff --git a/swad_changelog.h b/swad_changelog.h index 2e500a1f3..c1d9af595 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -497,7 +497,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.185 (2020-04-14)" +#define Log_PLATFORM_VERSION "SWAD 19.186 (2020-04-14)" #define CSS_FILE "swad19.146.css" #define JS_FILE "swad19.172.1.js" /* @@ -548,13 +548,16 @@ Funci // TODO: Oresti Baños: cambiar ojos por candados en descriptores para prohibir/permitir y dejar los ojos para poder elegir descriptores // TODO: Integrar pull requests con traducciones del alemán del usuario eruedin en GitHub + Version 19.186: Apr 14, 2020 New module swad_building for buildings in a centre. (287372 lines) + 1 change necessary in database: +CREATE TABLE IF NOT EXISTS buildings (BldCod INT NOT NULL AUTO_INCREMENT,CtrCod INT NOT NULL,ShortName VARCHAR(511) NOT NULL,FullName VARCHAR(2047) NOT NULL,Location VARCHAR(2047) NOT NULL,UNIQUE INDEX(BldCod),INDEX(CtrCod)); + Version 19.185: Apr 14, 2020 Module swad_classroom is renamed as swad_room. Improvement in querying the database in the usage report. (285813 lines) 5 changes necessary in database: RENAME TABLE classrooms TO rooms; ALTER TABLE rooms CHANGE COLUMN ClaCod RooCod INT NOT NULL AUTO_INCREMENT; ALTER TABLE rooms DROP INDEX ClaCod,ADD UNIQUE INDEX(RooCod); - ALTER TABLE crs_grp CHANGE COLUMN ClaCod RooCod INT NOT NULL DEFAULT -1; ALTER TABLE crs_grp DROP INDEX ClaCod,ADD INDEX(RooCod); diff --git a/swad_database.c b/swad_database.c index b53ae0afd..b60e2d7f8 100644 --- a/swad_database.c +++ b/swad_database.c @@ -416,6 +416,29 @@ mysql> DESCRIBE birthdays_today; "UNIQUE INDEX(UsrCod)," "INDEX(Today))"); + /***** Table buildings *****/ +/* +mysql> DESCRIBE buildings; ++-----------+---------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++-----------+---------------+------+-----+---------+----------------+ +| BldCod | int(11) | NO | PRI | NULL | auto_increment | +| CtrCod | int(11) | NO | MUL | NULL | | +| ShortName | varchar(511) | NO | | NULL | | +| FullName | varchar(2047) | NO | | NULL | | +| Location | varchar(2047) | NO | | NULL | | ++-----------+---------------+------+-----+---------+----------------+ +5 rows in set (0.00 sec) +*/ + DB_CreateTable ("CREATE TABLE IF NOT EXISTS buildings (" + "BldCod INT NOT NULL AUTO_INCREMENT," + "CtrCod INT NOT NULL," + "ShortName VARCHAR(511) NOT NULL," // Bld_MAX_BYTES_SHRT_NAME + "FullName VARCHAR(2047) NOT NULL," // Bld_MAX_BYTES_FULL_NAME + "Location VARCHAR(2047) NOT NULL," // Bld_MAX_BYTES_LOCATION + "UNIQUE INDEX(BldCod)," + "INDEX(CtrCod))"); + /***** Table centres *****/ /* mysql> DESCRIBE centres; diff --git a/swad_help_URL.c b/swad_help_URL.c index bc7ab0f62..5519c11f9 100644 --- a/swad_help_URL.c +++ b/swad_help_URL.c @@ -627,6 +627,48 @@ const char *Hlp_CENTRE_Degrees = "CENTRE.Degrees.en"; #endif +const char *Hlp_CENTRE_Buildings = +#if L==1 + "CENTRE.Buildings.es"; +#elif L==2 + "CENTRE.Buildings.en"; +#elif L==3 + "CENTRE.Buildings.en"; +#elif L==4 + "CENTRE.Buildings.es"; +#elif L==5 + "CENTRE.Buildings.en"; +#elif L==6 + "CENTRE.Buildings.es"; +#elif L==7 + "CENTRE.Buildings.en"; +#elif L==8 + "CENTRE.Buildings.en"; +#elif L==9 + "CENTRE.Buildings.en"; +#endif + +const char *Hlp_CENTRE_Buildings_edit = +#if L==1 + "CENTRE.Buildings.es#editar"; +#elif L==2 + "CENTRE.Buildings.en#edit"; +#elif L==3 + "CENTRE.Buildings.en#edit"; +#elif L==4 + "CENTRE.Buildings.es#editar"; +#elif L==5 + "CENTRE.Buildings.en#edit"; +#elif L==6 + "CENTRE.Buildings.es#editar"; +#elif L==7 + "CENTRE.Buildings.en#edit"; +#elif L==8 + "CENTRE.Buildings.en#edit"; +#elif L==9 + "CENTRE.Buildings.en#edit"; +#endif + const char *Hlp_CENTRE_Rooms = #if L==1 "CENTRE.Rooms.es"; diff --git a/swad_menu.c b/swad_menu.c index 0548cddd8..78561b6a3 100644 --- a/swad_menu.c +++ b/swad_menu.c @@ -94,7 +94,8 @@ static const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_ [TabCtr] = { [ 0] = ActSeeCtrInf, [ 1] = ActSeeDeg, - [ 2] = ActSeeRoo, + [ 2] = ActSeeBld, + [ 3] = ActSeeRoo, }, [TabDeg] = { [ 0] = ActSeeDegInf, diff --git a/swad_room.c b/swad_room.c index bfbf9b7b9..6e3d18839 100644 --- a/swad_room.c +++ b/swad_room.c @@ -490,7 +490,7 @@ void Roo_FreeListRooms (struct Roo_Rooms *Rooms) static void Roo_ListRoomsForEdition (const struct Roo_Rooms *Rooms) { - unsigned NumCla; + unsigned NumRoom; struct Roo_Room *Room; char StrCapacity[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; @@ -499,11 +499,11 @@ static void Roo_ListRoomsForEdition (const struct Roo_Rooms *Rooms) Roo_PutHeadRooms (); /***** Write all the rooms *****/ - for (NumCla = 0; - NumCla < Rooms->Num; - NumCla++) + for (NumRoom = 0; + NumRoom < Rooms->Num; + NumRoom++) { - Room = &Rooms->Lst[NumCla]; + Room = &Rooms->Lst[NumRoom]; HTM_TR_Begin (NULL); diff --git a/swad_text.c b/swad_text.c index 4eb9492d9..d1103a482 100644 --- a/swad_text.c +++ b/swad_text.c @@ -58,6 +58,7 @@ #include "swad_action.h" #include "swad_assignment.h" +#include "swad_building.h" #include "swad_centre.h" #include "swad_config.h" #include "swad_country.h" @@ -2979,6 +2980,201 @@ const char *Txt_Briefcases = "Pasta"; #endif +const char *Txt_Building = +#if L==1 // ca + "Edifici"; +#elif L==2 // de + "Gebäude"; +#elif L==3 // en + "Building"; +#elif L==4 // es + "Edificio"; +#elif L==5 // fr + "Bâtiment"; +#elif L==6 // gn + "Edificio"; // Okoteve traducción +#elif L==7 // it + "Edificio"; +#elif L==8 // pl + "Budynek"; +#elif L==9 // pt + "Edifício"; +#endif + +const char *Txt_Building_X_removed = // Warning: it is very important to include %s in the following sentences +#if L==1 // ca + "Edifici %s eliminat."; +#elif L==2 // de + "Gebäude %s entfernt."; +#elif L==3 // en + "Building %s removed."; +#elif L==4 // es + "Edificio %s eliminado."; +#elif L==5 // fr + "Bâtiment %s supprimé."; +#elif L==6 // gn + "Edificio %s eliminado."; // Okoteve traducción +#elif L==7 // it + "Edificio %s rimosso."; +#elif L==8 // pl + "Budynek %s usuniete."; +#elif L==9 // pt + "Edifício %s removido."; +#endif + +const char *Txt_BUILDINGS_HELP_ORDER[Bld_NUM_ORDERS] = + { + [Bld_ORDER_BY_SHRT_NAME] = +#if L==1 // ca + "Ordenar per nom breu" +#elif L==2 // de + "Nach Kurzname sortieren" +#elif L==3 // en + "Sort by short name" +#elif L==4 // es + "Ordenar por nombre breve" +#elif L==5 // fr + "Trier par nom abrégé" +#elif L==6 // gn + "Ordenar por nombre breve" // Okoteve traducción +#elif L==7 // it + "Ordina per nome breve" +#elif L==8 // pl + "Sortuj według krótkiej nazwy" +#elif L==9 // pt + "Classificar por nome abreviado" +#endif + , + [Bld_ORDER_BY_FULL_NAME] = +#if L==1 // ca + "Ordenar per nom complet" +#elif L==2 // de + "Nach vollständiger Name sortieren" +#elif L==3 // en + "Sort by full name" +#elif L==4 // es + "Ordenar por nombre completo" +#elif L==5 // fr + "Trier par nom complet" +#elif L==6 // gn + "Ordenar por nombre completo" // Okoteve traducción +#elif L==7 // it + "Ordina per nome completo" +#elif L==8 // pl + "Sortuj według pełna nazwa" +#elif L==9 // pt + "Classificar por nome completo" +#endif + , + [Bld_ORDER_BY_LOCATION] = +#if L==1 // ca + "Ordenar per ubicació" +#elif L==2 // de + "Nach Standort sortieren" +#elif L==3 // en + "Sort by location" +#elif L==4 // es + "Ordenar por ubicación" +#elif L==5 // fr + "Trier par emplacement" +#elif L==6 // gn + "Ordenar por ubicación" // Okoteve traducción +#elif L==7 // it + "Ordina per posizione" +#elif L==8 // pl + "Sortuj według lokacja" +#elif L==9 // pt + "Classificar por localização" +#endif + }; + +const char *Txt_BUILDINGS_ORDER[Bld_NUM_ORDERS] = + { + [Bld_ORDER_BY_SHRT_NAME] = +#if L==1 // ca + "Nom breu" +#elif L==2 // de + "Kurzname" +#elif L==3 // en + "Short name" +#elif L==4 // es + "Nombre breve" +#elif L==5 // fr + "Nom abrégé" +#elif L==6 // gn + "Nombre breve" // Okoteve traducción +#elif L==7 // it + "Nome breve" +#elif L==8 // pl + "Krótkiej nazwy" +#elif L==9 // pt + "Nome abreviado" +#endif + , + [Bld_ORDER_BY_FULL_NAME] = +#if L==1 // ca + "Nom complet" +#elif L==2 // de + "Vollständiger Name" +#elif L==3 // en + "Full name" +#elif L==4 // es + "Nombre completo" +#elif L==5 // fr + "Nom complet" +#elif L==6 // gn + "Nombre completo" // Okoteve traducción +#elif L==7 // it + "Nome completo" +#elif L==8 // pl + "Pełna nazwa" +#elif L==9 // pt + "Nome completo" +#endif + , + [Bld_ORDER_BY_LOCATION] = +#if L==1 // ca + "Ubicació" +#elif L==2 // de + "Standort" +#elif L==3 // en + "Location" +#elif L==4 // es + "Ubicación" +#elif L==5 // fr + "Emplacement" +#elif L==6 // gn + "Ñemohenda" +#elif L==7 // it + "Posizione" +#elif L==8 // pl + "Lokacja" +#elif L==9 // pt + "Localização" +#endif + }; + +const char *Txt_Buildings = +#if L==1 // ca + "Edificis"; +#elif L==2 // de + "Gebäude"; +#elif L==3 // en + "Buildings"; +#elif L==4 // es + "Edificios"; +#elif L==5 // fr + "Bâtiments"; +#elif L==6 // gn + "Edificios"; // Okoteve traducción +#elif L==7 // it + "Edifici"; +#elif L==8 // pl + "Budynki"; +#elif L==9 // pt + "Edifícios"; +#endif + const char *Txt_Calculate = #if L==1 // ca "Calcular"; @@ -5452,6 +5648,27 @@ const char *Txt_Create_banner = "Criar banner"; #endif +const char *Txt_Create_building = +#if L==1 // ca + "Crear edifici"; +#elif L==2 // de + "Gebäude eingeben"; +#elif L==3 // en + "Create building"; +#elif L==4 // es + "Crear edificio"; +#elif L==5 // fr + "Créer bâtiment"; +#elif L==6 // gn + "Crear edificio"; // Okoteve traducción +#elif L==7 // it + "Crea edificio"; +#elif L==8 // pl + "Utwórz budynek"; +#elif L==9 // pt + "Criar edifício"; +#endif + const char *Txt_Create_centre = #if L==1 // ca "Crear centre"; @@ -5473,27 +5690,6 @@ const char *Txt_Create_centre = "Criar centro"; #endif -const char *Txt_Create_room = -#if L==1 // ca - "Crear sala"; -#elif L==2 // de - "Raum eingeben"; -#elif L==3 // en - "Create room"; -#elif L==4 // es - "Crear sala"; -#elif L==5 // fr - "Créer salle"; -#elif L==6 // gn - "Crear sala"; // Okoteve traducción -#elif L==7 // it - "Crea aula"; -#elif L==8 // pl - "Utwórz klasa"; -#elif L==9 // pt - "Criar sala"; -#endif - const char *Txt_Create_country = #if L==1 // ca "Crear país"; // Necessita traduccio @@ -5956,6 +6152,27 @@ const char *Txt_Create_record_field = "Criar campo de cartão"; #endif +const char *Txt_Create_room = +#if L==1 // ca + "Crear sala"; +#elif L==2 // de + "Raum eingeben"; +#elif L==3 // en + "Create room"; +#elif L==4 // es + "Crear sala"; +#elif L==5 // fr + "Créer salle"; +#elif L==6 // gn + "Crear sala"; // Okoteve traducción +#elif L==7 // it + "Crea aula"; +#elif L==8 // pl + "Utwórz klasa"; +#elif L==9 // pt + "Criar sala"; +#endif + const char *Txt_Create_survey = #if L==1 // ca "Crear enquesta"; @@ -6103,6 +6320,27 @@ const char *Txt_Created_new_banner_X = // Warning: it is very important to inclu "Criado novo banner %s."; #endif +const char *Txt_Created_new_building_X = // Warning: it is very important to include %s in the following sentences +#if L==1 // ca + "Creat nou edifici %s."; +#elif L==2 // de + "Neues Gebäude %s eingegeben."; +#elif L==3 // en + "Created new building %s."; +#elif L==4 // es + "Creada nuevo edificio %s."; +#elif L==5 // fr + "Créé nouveau bâtiment %s."; +#elif L==6 // gn + "Creada nuevo edificio %s."; // Okoteve traducción +#elif L==7 // it + "Creato nuovo edificio %s."; +#elif L==8 // pl + "Utworzono nowe budynek %s."; +#elif L==9 // pt + "Criado novo edifício %s."; +#endif + const char *Txt_Created_new_centre_X = // Warning: it is very important to include %s in the following sentences #if L==1 // ca "Creat nou centre %s."; // Necessita traduccio @@ -6124,27 +6362,6 @@ const char *Txt_Created_new_centre_X = // Warning: it is very important to inclu "Criado novo centro %s."; #endif -const char *Txt_Created_new_room_X = // Warning: it is very important to include %s in the following sentences -#if L==1 // ca - "Creada nova sala %s."; -#elif L==2 // de - "Neuer Raum %s eingegeben."; -#elif L==3 // en - "Created new room %s."; -#elif L==4 // es - "Creada nueva sala %s."; -#elif L==5 // fr - "Créé nouvelle salle %s."; -#elif L==6 // gn - "Creada nueva sala %s."; // Okoteve traducción -#elif L==7 // it - "Creata nuova aula %s."; -#elif L==8 // pl - "Utworzono nowe klasa %s."; -#elif L==9 // pt - "Criada nova sala %s."; -#endif - const char *Txt_Created_new_country_X = // Warning: it is very important to include %s in the following sentences #if L==1 // ca "Creado nuevo país %s."; // Necessita traduccio @@ -6460,6 +6677,27 @@ const char *Txt_Created_new_record_field_X = // Warning: it is very important to "Criado novo campo de cartão %s."; #endif +const char *Txt_Created_new_room_X = // Warning: it is very important to include %s in the following sentences +#if L==1 // ca + "Creada nova sala %s."; +#elif L==2 // de + "Neuer Raum %s eingegeben."; +#elif L==3 // en + "Created new room %s."; +#elif L==4 // es + "Creada nueva sala %s."; +#elif L==5 // fr + "Créé nouvelle salle %s."; +#elif L==6 // gn + "Creada nueva sala %s."; // Okoteve traducción +#elif L==7 // it + "Creata nuova aula %s."; +#elif L==8 // pl + "Utworzono nowe klasa %s."; +#elif L==9 // pt + "Criada nova sala %s."; +#endif + const char *Txt_Created_new_survey_X = // Warning: it is very important to include %s in the following sentences #if L==1 // ca "Creada nova enquesta %s."; @@ -19022,7 +19260,28 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Graus" #endif , - // 2: ActSeeRoo + // 2: ActSeeBld +#if L==1 // ca + "Edificis" +#elif L==2 // de + "Gebäude" +#elif L==3 // en + "Buildings" +#elif L==4 // es + "Edificios" +#elif L==5 // fr + "Bâtiments" +#elif L==6 // gn + "Edificios" // Okoteve traducción +#elif L==7 // it + "Edifici" +#elif L==8 // pl + "Budynki" +#elif L==9 // pt + "Edifícios" +#endif + , + // 3: ActSeeRoo #if L==1 // ca "Sales" #elif L==2 // de @@ -19043,7 +19302,6 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Salas" #endif , - NULL, // 3 NULL, // 4 NULL, // 5 NULL, // 6 @@ -20878,7 +21136,28 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Graus" #endif , - // 2: ActSeeRoo + // 2: ActSeeBld +#if L==1 // ca + "Edificis de el centre educatiu" +#elif L==2 // de + "Gebäude des Bildungszentrums" +#elif L==3 // en + "Educational center buildings" +#elif L==4 // es + "Edificios del centro educativo" +#elif L==5 // fr + "Bâtiments du centre éducatif" +#elif L==6 // gn + "Edificios del centro educativo" // Okoteve traducción +#elif L==7 // it + "Edifici del centro educativo" +#elif L==8 // pl + "Budynki centrum edukacyjnego" +#elif L==9 // pt + "Edifícios do centro educacional" +#endif + , + // 3: ActSeeRoo #if L==1 // ca "Aules, laboratoris o altres llocs" #elif L==2 // de @@ -20899,7 +21178,6 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Salas de aula, laboratórios ou outros locais" #endif , - NULL, // 3 NULL, // 4 NULL, // 5 NULL, // 6 @@ -24079,6 +24357,27 @@ const char *Txt_New_banner = "Novo banner"; #endif +const char *Txt_New_building = +#if L==1 // ca + "Nou edifici"; +#elif L==2 // de + "Neues Gebäude"; +#elif L==3 // en + "New building"; +#elif L==4 // es + "Nuevo edificio"; +#elif L==5 // fr + "Nouveau bâtiment"; +#elif L==6 // gn + "Nuevo edificio"; // Okoteve traducción +#elif L==7 // it + "Nuovo edificio"; +#elif L==8 // pl + "Nowe budynek"; +#elif L==9 // pt + "Novo edifício"; +#endif + const char *Txt_New_centre = #if L==1 // ca "Nou centre (facultat, escola, institut, divisió, edifici...)"; @@ -24100,27 +24399,6 @@ const char *Txt_New_centre = "Novo centro (faculdade, escola, faculdade, divisão, construção...)"; #endif -const char *Txt_New_room = -#if L==1 // ca - "Nova sala"; -#elif L==2 // de - "Neue Raum"; -#elif L==3 // en - "New room"; -#elif L==4 // es - "Nueva sala"; -#elif L==5 // fr - "Nouvelle salle"; -#elif L==6 // gn - "Nueva sala"; // Okoteve traducción -#elif L==7 // it - "Nuova aula"; -#elif L==8 // pl - "Nowe klasa"; -#elif L==9 // pt - "Nova sala"; -#endif - const char *Txt_New_country = #if L==1 // ca "Nuevo país"; // Necessita traduccio @@ -24667,6 +24945,27 @@ const char *Txt_New_record_field = "Novo campo de cartão"; #endif +const char *Txt_New_room = +#if L==1 // ca + "Nova sala"; +#elif L==2 // de + "Neue Raum"; +#elif L==3 // en + "New room"; +#elif L==4 // es + "Nueva sala"; +#elif L==5 // fr + "Nouvelle salle"; +#elif L==6 // gn + "Nueva sala"; // Okoteve traducción +#elif L==7 // it + "Nuova aula"; +#elif L==8 // pl + "Nowe klasa"; +#elif L==9 // pt + "Nova sala"; +#endif + const char *Txt_New_TIMELINE_comment = #if L==1 // ca "Nou comentari"; @@ -44244,6 +44543,48 @@ const char *Txt_The_banner_X_has_been_renamed_as_Y = // Warning: it is very impo "O banner %s foi renomeado como %s."; #endif +const char *Txt_The_building_X_already_exists = // Warning: it is very important to include %s in the following sentences +#if L==1 // ca + "L'edifici %s ja existeix."; +#elif L==2 // de + "Das Gebäude %s wurde bereits eingegeben."; +#elif L==3 // en + "The building %s already exists."; +#elif L==4 // es + "El edificio %s ya existe."; +#elif L==5 // fr + "Le bâtiment %s existe déjà."; +#elif L==6 // gn + "El edificio %s ya existe."; // Okoteve traducción +#elif L==7 // it + "L'edificio %s già esiste."; +#elif L==8 // pl + "Budynek %s już istnieje."; +#elif L==9 // pt + "O edifício %s já existe."; +#endif + +const char *Txt_The_building_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences +#if L==1 // ca + "L'edifici %s ha passat a denominar-se %s."; +#elif L==2 // de + "Das Gebäude %s wurde in %s umbenannt."; +#elif L==3 // en + "The building %s has been renamed as %s."; +#elif L==4 // es + "El edificio %s ha pasado a denominarse %s."; +#elif L==5 // fr + "Le bâtiment %s a été renommée en %s."; +#elif L==6 // gn + "El edificio %s ha pasado a denominarse %s."; // Okoteve traducción +#elif L==7 // it + "L'edificio %s è stata rinominata come %s."; +#elif L==8 // pl + "Budynek %s zostało przemianowane na %s."; +#elif L==9 // pt + "O edifício %s foi renomeado como %s."; +#endif + const char *Txt_The_capacity_of_room_X_has_not_changed = // Warning: it is very important to include %s in the following sentences #if L==1 // ca "L'aforament de la sala %s no ha canviat."; @@ -44358,90 +44699,6 @@ const char *Txt_The_centre_X_has_been_renamed_as_Y = // Warning: it is very impo "O centro %s foi renomeado como %s."; #endif -const char *Txt_The_room_X_already_exists = // Warning: it is very important to include %s in the following sentences -#if L==1 // ca - "La sala %s ja existeix."; -#elif L==2 // de - "Das Raum %s wurde bereits eingegeben."; -#elif L==3 // en - "The room %s already exists."; -#elif L==4 // es - "La sala %s ya existe."; -#elif L==5 // fr - "La salle %s existe déjà."; -#elif L==6 // gn - "La sala %s ya existe."; // Okoteve traducción -#elif L==7 // it - "L'aula %s già esiste."; -#elif L==8 // pl - "Klasa %s już istnieje."; -#elif L==9 // pt - "A sala %s já existe."; -#endif - -const char *Txt_The_room_X_does_not_have_a_limited_capacity_now = // Warning: it is very important to include %s in the following sentences -#if L==1 // ca - "La sala %s ja no té un aforament limitat."; -#elif L==2 // de - "Das Raum %s hat jetzt keine begrenzte Kapazität."; -#elif L==3 // en - "The room %s does not have a limited capacity now."; -#elif L==4 // es - "La sala %s ya no tiene un aforo limitado."; -#elif L==5 // fr - "La salle %s n'a plus de capacité limitée."; -#elif L==6 // gn - "La sala %s ya no tiene un aforo limitado."; // Okoteve traducción -#elif L==7 // it - "L'aula %s non ha una capacità limitata ora."; -#elif L==8 // pl - "Klasa %s nie ma teraz ograniczonej pojemności."; -#elif L==9 // pt - "A sala %s não tem capacidade limitada agora."; -#endif - -const char *Txt_The_room_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences -#if L==1 // ca - "La sala %s ha passat a denominar-se %s."; -#elif L==2 // de - "Das Raum %s wurde in %s umbenannt."; -#elif L==3 // en - "The room %s has been renamed as %s."; -#elif L==4 // es - "La sala %s ha pasado a denominarse %s."; -#elif L==5 // fr - "La salle %s a été renommée en %s."; -#elif L==6 // gn - "La sala %s ha pasado a denominarse %s."; // Okoteve traducción -#elif L==7 // it - "L'aula %s è stata rinominata come %s."; -#elif L==8 // pl - "Klasa %s zostało przemianowane na %s."; -#elif L==9 // pt - "A sala %s foi renomeada como %s."; -#endif - -const char *Txt_The_room_assigned_to_the_group_X_has_changed = -#if L==1 // ca - "La sala assignada al grup %s ha canviat."; -#elif L==2 // de - "Das der Gruppe %s zugeordnete Raum hat sich geändert."; -#elif L==3 // en - "The room assigned to the group %s has changed."; -#elif L==4 // es - "La sala asignada al grupo %s ha cambiado."; -#elif L==5 // fr - "La salle affectée au groupe %s a changé."; -#elif L==6 // gn - "La sala asignada al grupo %s ha cambiado."; // Okoteve traducción -#elif L==7 // it - "L'aula assegnata al gruppo %s è cambiata."; -#elif L==8 // pl - "Klasa przypisana do grupy %s uległa zmianie."; -#elif L==9 // pt - "A sala atribuída ao grupo %s mudou."; -#endif - const char *Txt_The_comment_no_longer_exists = #if L==1 // ca "El comentari ja no existeix."; @@ -46302,6 +46559,66 @@ const char *Txt_The_list_of_X_users_is_too_large_to_be_displayed = // Warning: i "A lista de %u usuários é muito grande para ser exibida."; #endif +const char *Txt_The_location_of_the_building_X_has_changed_to_Y = // Warning: it is very important to include two %s in the following sentences +#if L==1 // ca + "La ubicació de l'edifici %s" + " ha canviat a %s."; +#elif L==2 // de + "Der Standort des Gebäudes %s" + " wurde in %s geändert."; +#elif L==3 // en + "The location of the building %s" + " has changed to %s."; +#elif L==4 // es + "La ubicación del edificio %s" + " ha cambiado a %s."; +#elif L==5 // fr + "L'emplacement du bâtiment %s" + " a été remplacé par %s."; +#elif L==6 // gn + "La ubicación del edificio %s" + " ha cambiado a %s."; // Okoteve traducción +#elif L==7 // it + "La posizione dell'edificio %s" + " è cambiata in %s."; +#elif L==8 // pl + "Lokalizacja budynek %s" + " zmieniła się na %s."; +#elif L==9 // pt + "A localização do edifício %s" + " mudou para %s."; +#endif + +const char *Txt_The_location_of_the_building_X_has_not_changed = // Warning: it is very important to include %s in the following sentences +#if L==1 // ca + "La ubicació de l'edifici %s" + " no ha canviat."; +#elif L==2 // de + "Der Standort des Gebäudes %s" + " hat sich nicht geändert."; +#elif L==3 // en + "The location of the building %s" + " has not changed."; +#elif L==4 // es + "La ubicación del edificio %s" + " no ha cambiado."; +#elif L==5 // fr + "L'emplacement du bâtiment %s" + " n'a pas changé."; +#elif L==6 // gn + "La ubicación del edificio %s" + " no ha cambiado."; // Okoteve traducción +#elif L==7 // it + "La posizione dell'edificio %s" + " non è cambiata."; +#elif L==8 // pl + "Lokalizacja budynek %s" + " nie uległa zmianie."; +#elif L==9 // pt + "A localização do edifício %s" + " não foi alterada."; +#endif + const char *Txt_The_location_of_the_room_X_has_changed_to_Y = // Warning: it is very important to include two %s in the following sentences #if L==1 // ca "La ubicació de la sala %s" @@ -46566,6 +46883,27 @@ const char *Txt_The_name_of_the_banner_X_has_not_changed = // Warning: it is ver "O nome do banner %s não foi alterado."; #endif +const char *Txt_The_name_of_the_building_X_has_not_changed = // Warning: it is very important to include %s in the following sentences +#if L==1 // ca + "El nom de l'edifici %s no ha canviat."; +#elif L==2 // de + "Der Name des Gebäudes %s hat sich nicht geändert."; +#elif L==3 // en + "The name of the building %s has not changed."; +#elif L==4 // es + "El nombre del edificio %s no ha cambiado."; +#elif L==5 // fr + "Le nom du bâtiment %s n'a pas changé."; +#elif L==6 // gn + "El nombre del edificio %s no ha cambiado."; // Okoteve traducción +#elif L==7 // it + "Il nome dell'edificio %s non è cambiato."; +#elif L==8 // pl + "Nazwa budynek %s nie uległa zmianie."; +#elif L==9 // pt + "O nome do edifício %s não foi alterado."; +#endif + const char *Txt_The_name_of_the_centre_X_has_not_changed = // Warning: it is very important to include %s in the following sentences #if L==1 // ca "El nombre del centro %s no ha cambiado."; // Necessita traduccio @@ -46587,27 +46925,6 @@ const char *Txt_The_name_of_the_centre_X_has_not_changed = // Warning: it is ver "O nome do centro %s não foi alterado."; #endif -const char *Txt_The_name_of_the_room_X_has_not_changed = // Warning: it is very important to include %s in the following sentences -#if L==1 // ca - "El nom de la sala %s no ha canviat."; -#elif L==2 // de - "Der Name des Raum %s hat sich nicht geändert."; -#elif L==3 // en - "The name of the room %s has not changed."; -#elif L==4 // es - "El nombre de la sala %s no ha cambiado."; -#elif L==5 // fr - "Le nom de la salle %s n'a pas changé."; -#elif L==6 // gn - "El nombre de la sala %s no ha cambiado."; // Okoteve traducción -#elif L==7 // it - "Il nome della aula %s non è cambiato."; -#elif L==8 // pl - "Nazwa klasy %s nie uległa zmianie."; -#elif L==9 // pt - "O nome da sala %s não foi alterado."; -#endif - const char *Txt_The_name_of_the_country_X_has_not_changed = // Warning: it is very important to include %s in the following sentences #if L==1 // ca "El nombre del país %s no ha cambiado."; // Necessita traduccio @@ -46902,6 +47219,27 @@ const char *Txt_The_name_of_the_plugin_X_has_not_changed = // Warning: it is ver "O nome do plugin %s não foi alterado."; #endif +const char *Txt_The_name_of_the_room_X_has_not_changed = // Warning: it is very important to include %s in the following sentences +#if L==1 // ca + "El nom de la sala %s no ha canviat."; +#elif L==2 // de + "Der Name des Raum %s hat sich nicht geändert."; +#elif L==3 // en + "The name of the room %s has not changed."; +#elif L==4 // es + "El nombre de la sala %s no ha cambiado."; +#elif L==5 // fr + "Le nom de la salle %s n'a pas changé."; +#elif L==6 // gn + "El nombre de la sala %s no ha cambiado."; // Okoteve traducción +#elif L==7 // it + "Il nome della aula %s non è cambiato."; +#elif L==8 // pl + "Nazwa klasy %s nie uległa zmianie."; +#elif L==9 // pt + "O nome da sala %s não foi alterado."; +#endif + const char *Txt_The_name_of_the_type_of_degree_X_has_not_changed = // Warning: it is very important to include %s in the following sentences #if L==1 // ca "El nombre del tipo de titulación %s no ha cambiado."; // Necessita traduccio @@ -47880,6 +48218,90 @@ const char *Txt_The_role_of_THE_USER_X_in_the_course_Y_has_changed_from_A_to_B = " mudou de %s para %s."; #endif +const char *Txt_The_room_X_already_exists = // Warning: it is very important to include %s in the following sentences +#if L==1 // ca + "La sala %s ja existeix."; +#elif L==2 // de + "Das Raum %s wurde bereits eingegeben."; +#elif L==3 // en + "The room %s already exists."; +#elif L==4 // es + "La sala %s ya existe."; +#elif L==5 // fr + "La salle %s existe déjà."; +#elif L==6 // gn + "La sala %s ya existe."; // Okoteve traducción +#elif L==7 // it + "L'aula %s già esiste."; +#elif L==8 // pl + "Klasa %s już istnieje."; +#elif L==9 // pt + "A sala %s já existe."; +#endif + +const char *Txt_The_room_X_does_not_have_a_limited_capacity_now = // Warning: it is very important to include %s in the following sentences +#if L==1 // ca + "La sala %s ja no té un aforament limitat."; +#elif L==2 // de + "Das Raum %s hat jetzt keine begrenzte Kapazität."; +#elif L==3 // en + "The room %s does not have a limited capacity now."; +#elif L==4 // es + "La sala %s ya no tiene un aforo limitado."; +#elif L==5 // fr + "La salle %s n'a plus de capacité limitée."; +#elif L==6 // gn + "La sala %s ya no tiene un aforo limitado."; // Okoteve traducción +#elif L==7 // it + "L'aula %s non ha una capacità limitata ora."; +#elif L==8 // pl + "Klasa %s nie ma teraz ograniczonej pojemności."; +#elif L==9 // pt + "A sala %s não tem capacidade limitada agora."; +#endif + +const char *Txt_The_room_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences +#if L==1 // ca + "La sala %s ha passat a denominar-se %s."; +#elif L==2 // de + "Das Raum %s wurde in %s umbenannt."; +#elif L==3 // en + "The room %s has been renamed as %s."; +#elif L==4 // es + "La sala %s ha pasado a denominarse %s."; +#elif L==5 // fr + "La salle %s a été renommée en %s."; +#elif L==6 // gn + "La sala %s ha pasado a denominarse %s."; // Okoteve traducción +#elif L==7 // it + "L'aula %s è stata rinominata come %s."; +#elif L==8 // pl + "Klasa %s zostało przemianowane na %s."; +#elif L==9 // pt + "A sala %s foi renomeada como %s."; +#endif + +const char *Txt_The_room_assigned_to_the_group_X_has_changed = +#if L==1 // ca + "La sala assignada al grup %s ha canviat."; +#elif L==2 // de + "Das der Gruppe %s zugeordnete Raum hat sich geändert."; +#elif L==3 // en + "The room assigned to the group %s has changed."; +#elif L==4 // es + "La sala asignada al grupo %s ha cambiado."; +#elif L==5 // fr + "La salle affectée au groupe %s a changé."; +#elif L==6 // gn + "La sala asignada al grupo %s ha cambiado."; // Okoteve traducción +#elif L==7 // it + "L'aula assegnata al gruppo %s è cambiata."; +#elif L==8 // pl + "Klasa przypisana do grupy %s uległa zmianie."; +#elif L==9 // pt + "A sala atribuída ao grupo %s mudou."; +#endif + const char *Txt_The_X_students_who_belonged_to_the_course_Y_have_been_removed_from_it = // Warning: it is very important to include %u and %s in the following sentences #if L==1 // ca "Se han eliminado los %u estudiantes que había" @@ -56782,6 +57204,36 @@ const char *Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_ban " do novo banner."; #endif +const char *Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_building = +#if L==1 // ca + "Heu d'especificar el nom curt i el nom complet" + " de el nou edifici."; +#elif L==2 // de + "Sie m¨ssen den Kurznamen und den vollständigen Namen" + " des neuen Gebäude angeben."; +#elif L==3 // en + "You must specify the short name and the full name" + " of the new building."; +#elif L==4 // es + "Debe especificar el nombre breve y el nombre completo" + " del nuevo edificio."; +#elif L==5 // fr + "Vous devez spécifier le nom abrégé et le nom complet" + " du nouveau bâtiment."; +#elif L==6 // gn + "Debe especificar el nombre breve y el nombre completo" + " del nuevo edificio."; // Okoteve traducción +#elif L==7 // it + "Devi specificare il nome breve e completo" + " del nuovo edificio."; +#elif L==8 // pl + "Musisz podać krótką nazwę i pełną nazwę" + " nowej budynek."; +#elif L==9 // pt + "Você deve especificar o nome abreviado e o nome completo" + " do novo edifício."; +#endif + const char *Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_centre = #if L==1 // ca "Debe especificar el nombre breve y el nombre completo" @@ -56812,36 +57264,6 @@ const char *Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_cen " do novo centro."; #endif -const char *Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_room = -#if L==1 // ca - "Heu d'especificar el nom curt i el nom complet" - " de la nova sala."; -#elif L==2 // de - "Sie m¨ssen den Kurznamen und den vollständigen Namen" - " des neuen Raum angeben."; -#elif L==3 // en - "You must specify the short name and the full name" - " of the new room."; -#elif L==4 // es - "Debe especificar el nombre breve y el nombre completo" - " de la nueva sala."; -#elif L==5 // fr - "Vous devez spécifier le nom abrégé et le nom complet" - " de la nouvelle salle."; -#elif L==6 // gn - "Debe especificar el nombre breve y el nombre completo" - " de la nueva sala."; // Okoteve traducción -#elif L==7 // it - "Devi specificare il nome breve e completo" - " della nuova aula."; -#elif L==8 // pl - "Musisz podać krótką nazwę i pełną nazwę" - " nowej klasy."; -#elif L==9 // pt - "Você deve especificar o nome abreviado e o nome completo" - " da nova sala."; -#endif - const char *Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_course = #if L==1 // ca "Debe especificar el nombre breve y el nombre completo" @@ -57052,6 +57474,36 @@ const char *Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_pla " da nova localização."; #endif +const char *Txt_You_must_specify_the_short_name_and_the_full_name_of_the_new_room = +#if L==1 // ca + "Heu d'especificar el nom curt i el nom complet" + " de la nova sala."; +#elif L==2 // de + "Sie m¨ssen den Kurznamen und den vollständigen Namen" + " des neuen Raum angeben."; +#elif L==3 // en + "You must specify the short name and the full name" + " of the new room."; +#elif L==4 // es + "Debe especificar el nombre breve y el nombre completo" + " de la nueva sala."; +#elif L==5 // fr + "Vous devez spécifier le nom abrégé et le nom complet" + " de la nouvelle salle."; +#elif L==6 // gn + "Debe especificar el nombre breve y el nombre completo" + " de la nueva sala."; // Okoteve traducción +#elif L==7 // it + "Devi specificare il nome breve e completo" + " della nuova aula."; +#elif L==8 // pl + "Musisz podać krótką nazwę i pełną nazwę" + " nowej klasy."; +#elif L==9 // pt + "Você deve especificar o nome abreviado e o nome completo" + " da nova sala."; +#endif + const char *Txt_You_must_specify_the_title_of_the_assignment = #if L==1 // ca "Cal especificar el títol de l'activitat."; diff --git a/swad_text_action.c b/swad_text_action.c index a9b523aeb..4a32e12c6 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -3567,6 +3567,27 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = "" // Potrzebujesz tlumaczenie #elif L==9 // pt "" // Precisa de tradução +#endif + , + [ActSeeBld] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "List buildings in a centre" +#elif L==4 // es + "Listar edificios de un centro" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução #endif , [ActSeeRoo] = @@ -4197,6 +4218,132 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = "" // Potrzebujesz tlumaczenie #elif L==9 // pt "" // Precisa de tradução +#endif + , + [ActEdiBld] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Edit buildings" +#elif L==4 // es + "Editar edificios" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução +#endif + , + [ActNewBld] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Request the creation of a building" +#elif L==4 // es + "Solicitar la creación de un edificio" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução +#endif + , + [ActRemBld] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Remove a building" +#elif L==4 // es + "Eliminar edificio" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução +#endif + , + [ActRenBldSho] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Change short name of a building" +#elif L==4 // es + "Cambiar nombre breve de edificio" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução +#endif + , + [ActRenBldFul] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Change full name of a building" +#elif L==4 // es + "Cambiar nombre completo de edificio" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução +#endif + , + [ActRenBldLoc] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Change location of a building" +#elif L==4 // es + "Cambiar ubicación de un edificio" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução #endif , [ActEdiRoo] =