Version 22.79.2: Mar 24, 2023 Code refactoring in rubrics.

This commit is contained in:
acanas 2023-03-24 13:09:44 +01:00
parent 010b2d38e6
commit 8fe944ff1d
6 changed files with 194 additions and 144 deletions

View File

@ -629,10 +629,12 @@ TODO: Emilce Barrera Mesa: Podr
TODO: Emilce Barrera Mesa: Mis estudiantes presentan muchas dificultades a la hora de poner la foto porque la plataforma es muy exigente respecto al fondo de la imagen. TODO: Emilce Barrera Mesa: Mis estudiantes presentan muchas dificultades a la hora de poner la foto porque la plataforma es muy exigente respecto al fondo de la imagen.
*/ */
#define Log_PLATFORM_VERSION "SWAD 22.79 (2023-03-24)" #define Log_PLATFORM_VERSION "SWAD 22.79.2 (2023-03-24)"
#define CSS_FILE "swad22.78.15.css" #define CSS_FILE "swad22.78.15.css"
#define JS_FILE "swad22.49.js" #define JS_FILE "swad22.49.js"
/* /*
Version 22.79.2: Mar 24, 2023 Code refactoring in rubrics. (337937 lines)
Version 22.79.1: Mar 24, 2023 Translation of some actions. (337889 lines)
Version 22.79: Mar 24, 2023 New action to change source of rubric criterion. (337888 lines) Version 22.79: Mar 24, 2023 New action to change source of rubric criterion. (337888 lines)
Version 22.78.15: Mar 23, 2023 Changes in rubric criteria. (337686 lines) Version 22.78.15: Mar 23, 2023 Changes in rubric criteria. (337686 lines)
Version 22.78.14: Mar 23, 2023 Code refactoring in timeline. (337634 lines) Version 22.78.14: Mar 23, 2023 Code refactoring in timeline. (337634 lines)

View File

@ -738,7 +738,7 @@ void Rub_ReqCreatOrEditRubric (void)
{ {
struct Rub_Rubrics Rubrics; struct Rub_Rubrics Rubrics;
struct RubCri_Criterion Criterion; struct RubCri_Criterion Criterion;
bool ItsANewRubric; Rub_ExistingNewRubric_t ExistingNewRubric;
/***** Check if I can edit rubrics *****/ /***** Check if I can edit rubrics *****/
if (!Rub_CheckIfICanEditRubrics ()) if (!Rub_CheckIfICanEditRubrics ())
@ -751,18 +751,24 @@ void Rub_ReqCreatOrEditRubric (void)
/***** Get parameters *****/ /***** Get parameters *****/
Rub_GetPars (&Rubrics,false); // Don't check rubric code Rub_GetPars (&Rubrics,false); // Don't check rubric code
ItsANewRubric = (Rubrics.Rubric.RubCod <= 0); ExistingNewRubric = (Rubrics.Rubric.RubCod > 0) ? Rub_EXISTING_RUBRIC :
Rub_NEW_RUBRIC;
/***** Get rubric data *****/ /***** Get rubric data *****/
if (ItsANewRubric) switch (ExistingNewRubric)
/* Initialize to empty rubric */ {
Rub_ResetRubric (&Rubrics.Rubric); case Rub_EXISTING_RUBRIC:
else /* Get rubric data from database */
/* Get rubric data from database */ Rub_GetRubricDataByCod (&Rubrics.Rubric);
Rub_GetRubricDataByCod (&Rubrics.Rubric); break;
case Rub_NEW_RUBRIC:
/* Initialize to empty rubric */
Rub_ResetRubric (&Rubrics.Rubric);
break;
}
/***** Put form to create/edit a rubric and show criteria *****/ /***** Put form to create/edit a rubric and show criteria *****/
Rub_PutFormsOneRubric (&Rubrics,&Criterion,ItsANewRubric); Rub_PutFormsOneRubric (&Rubrics,&Criterion,ExistingNewRubric);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -771,26 +777,36 @@ void Rub_ReqCreatOrEditRubric (void)
void Rub_PutFormsOneRubric (struct Rub_Rubrics *Rubrics, void Rub_PutFormsOneRubric (struct Rub_Rubrics *Rubrics,
struct RubCri_Criterion *Criterion, struct RubCri_Criterion *Criterion,
bool ItsANewRubric) Rub_ExistingNewRubric_t ExistingNewRubric)
{ {
char Txt[Cns_MAX_BYTES_TEXT + 1]; char Txt[Cns_MAX_BYTES_TEXT + 1];
/***** Initialize text / get text from database *****/ /***** Initialize text / get text from database *****/
if (ItsANewRubric) switch (ExistingNewRubric)
Txt[0] = '\0'; {
else case Rub_EXISTING_RUBRIC:
Rub_DB_GetRubricTxt (Rubrics->Rubric.RubCod,Txt); Rub_DB_GetRubricTxt (Rubrics->Rubric.RubCod,Txt);
break;
case Rub_NEW_RUBRIC:
Txt[0] = '\0';
break;
}
/***** Put form to create/edit an exam *****/ /***** Put form to create/edit an exam *****/
Rub_PutFormEditionRubric (Rubrics,Txt,ItsANewRubric); Rub_PutFormEditionRubric (Rubrics,Txt,ExistingNewRubric);
/***** Show other lists *****/ /***** Show other lists *****/
if (ItsANewRubric) switch (ExistingNewRubric)
/* Show rubrics again */ {
Rub_ListAllRubrics (Rubrics); case Rub_EXISTING_RUBRIC:
else /* Show list of criteria */
/* Show list of criteria */ RubCri_ListCriteria (Rubrics,Criterion);
RubCri_ListCriteria (Rubrics,Criterion); break;
case Rub_NEW_RUBRIC:
/* Show rubrics again */
Rub_ListAllRubrics (Rubrics);
break;
}
} }
/*****************************************************************************/ /*****************************************************************************/
@ -799,7 +815,7 @@ void Rub_PutFormsOneRubric (struct Rub_Rubrics *Rubrics,
void Rub_PutFormEditionRubric (struct Rub_Rubrics *Rubrics, void Rub_PutFormEditionRubric (struct Rub_Rubrics *Rubrics,
char Txt[Cns_MAX_BYTES_TEXT + 1], char Txt[Cns_MAX_BYTES_TEXT + 1],
bool ItsANewRubric) Rub_ExistingNewRubric_t ExistingNewRubric)
{ {
extern const char *Hlp_ASSESSMENT_Rubrics_new_rubric; extern const char *Hlp_ASSESSMENT_Rubrics_new_rubric;
extern const char *Hlp_ASSESSMENT_Rubrics_edit_rubric; extern const char *Hlp_ASSESSMENT_Rubrics_edit_rubric;
@ -809,64 +825,81 @@ void Rub_PutFormEditionRubric (struct Rub_Rubrics *Rubrics,
extern const char *Txt_Description; extern const char *Txt_Description;
extern const char *Txt_Create_rubric; extern const char *Txt_Create_rubric;
extern const char *Txt_Save_changes; extern const char *Txt_Save_changes;
static Act_Action_t NextAction[] =
{
[Rub_EXISTING_RUBRIC] = ActChgRub,
[Rub_NEW_RUBRIC ] = ActNewRub,
};
static Btn_Button_t Button[] =
{
[Rub_EXISTING_RUBRIC] = Btn_CONFIRM_BUTTON,
[Rub_NEW_RUBRIC ] = Btn_CREATE_BUTTON,
};
const char *Title[] =
{
[Rub_EXISTING_RUBRIC] = Txt_Edit_rubric,
[Rub_NEW_RUBRIC ] = Txt_New_rubric,
};
const char *HelpLink[] =
{
[Rub_EXISTING_RUBRIC] = Hlp_ASSESSMENT_Rubrics_edit_rubric,
[Rub_NEW_RUBRIC ] = Hlp_ASSESSMENT_Rubrics_new_rubric,
};
const char *TxtButton[] =
{
[Rub_EXISTING_RUBRIC] = Txt_Save_changes,
[Rub_NEW_RUBRIC ] = Txt_Create_rubric,
};
/***** Begin form *****/ /***** Begin form *****/
Frm_BeginForm (ItsANewRubric ? ActNewRub : Frm_BeginForm (NextAction[ExistingNewRubric]);
ActChgRub);
Rub_PutPars (Rubrics); Rub_PutPars (Rubrics);
/***** Begin box and table *****/ /***** Begin box and table *****/
if (ItsANewRubric) Box_BoxTableBegin (NULL,
Box_BoxTableBegin (NULL,Txt_New_rubric, Rubrics->Rubric.Title[0] ? Rubrics->Rubric.Title :
NULL,NULL, Title[ExistingNewRubric],
Hlp_ASSESSMENT_Rubrics_new_rubric,Box_NOT_CLOSABLE,2); NULL,NULL,
else HelpLink[ExistingNewRubric],Box_NOT_CLOSABLE,2);
Box_BoxTableBegin (NULL,
Rubrics->Rubric.Title[0] ? Rubrics->Rubric.Title :
Txt_Edit_rubric,
NULL,NULL,
Hlp_ASSESSMENT_Rubrics_edit_rubric,Box_NOT_CLOSABLE,2);
/***** Rubric title *****/ /***** Rubric title *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/* Label */ /* Label */
Frm_LabelColumn ("RT","Title",Txt_Title); Frm_LabelColumn ("RT","Title",Txt_Title);
/* Data */ /* Data */
HTM_TD_Begin ("class=\"LT\""); HTM_TD_Begin ("class=\"LT\"");
HTM_INPUT_TEXT ("Title",Rub_MAX_CHARS_TITLE,Rubrics->Rubric.Title, HTM_INPUT_TEXT ("Title",Rub_MAX_CHARS_TITLE,Rubrics->Rubric.Title,
HTM_DONT_SUBMIT_ON_CHANGE, HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Title\"" "id=\"Title\""
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"" " class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\""
" required=\"required\"", " required=\"required\"",
The_GetSuffix ()); The_GetSuffix ());
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
/***** Rubric text *****/ /***** Rubric text *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/* Label */ /* Label */
Frm_LabelColumn ("RT","Txt",Txt_Description); Frm_LabelColumn ("RT","Txt",Txt_Description);
/* Data */ /* Data */
HTM_TD_Begin ("class=\"LT\""); HTM_TD_Begin ("class=\"LT\"");
HTM_TEXTAREA_Begin ("id=\"Txt\" name=\"Txt\" rows=\"5\"" HTM_TEXTAREA_Begin ("id=\"Txt\" name=\"Txt\" rows=\"5\""
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"", " class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"",
The_GetSuffix ()); The_GetSuffix ());
HTM_Txt (Txt); HTM_Txt (Txt);
HTM_TEXTAREA_End (); HTM_TEXTAREA_End ();
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
/***** End table, send button and end box *****/ /***** End table, send button and end box *****/
if (ItsANewRubric) Box_BoxTableWithButtonEnd (Button[ExistingNewRubric],
Box_BoxTableWithButtonEnd (Btn_CREATE_BUTTON,Txt_Create_rubric); TxtButton[ExistingNewRubric]);
else
Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON,Txt_Save_changes);
/***** End form *****/ /***** End form *****/
Frm_EndForm (); Frm_EndForm ();
@ -880,7 +913,7 @@ void Rub_ReceiveFormRubric (void)
{ {
struct Rub_Rubrics Rubrics; struct Rub_Rubrics Rubrics;
struct RubCri_Criterion Criterion; struct RubCri_Criterion Criterion;
bool ItsANewRubric; Rub_ExistingNewRubric_t ExistingNewRubric;
char Txt[Cns_MAX_BYTES_TEXT + 1]; char Txt[Cns_MAX_BYTES_TEXT + 1];
/***** Check if I can edit rubrics *****/ /***** Check if I can edit rubrics *****/
@ -894,31 +927,40 @@ void Rub_ReceiveFormRubric (void)
/***** Get parameters *****/ /***** Get parameters *****/
Rub_GetPars (&Rubrics,false); Rub_GetPars (&Rubrics,false);
ItsANewRubric = (Rubrics.Rubric.RubCod <= 0); ExistingNewRubric = (Rubrics.Rubric.RubCod > 0) ? Rub_EXISTING_RUBRIC :
Rub_NEW_RUBRIC;
/***** Get all current rubric data from database *****/ /***** Get all current rubric data from database *****/
// Some data, not received from form, // Some data, not received from form,
// are necessary to show rubric and criteria again // are necessary to show rubric and criteria again
if (!ItsANewRubric) switch (ExistingNewRubric)
Rub_GetRubricDataByCod (&Rubrics.Rubric); {
case Rub_EXISTING_RUBRIC:
Rub_GetRubricDataByCod (&Rubrics.Rubric);
break;
case Rub_NEW_RUBRIC:
break;
}
/***** Overwrite some rubric data with the data received from form *****/ /***** Overwrite some rubric data with the data received from form *****/
Rub_ReceiveRubricFieldsFromForm (&Rubrics.Rubric,Txt); Rub_ReceiveRubricFieldsFromForm (&Rubrics.Rubric,Txt);
if (Rub_CheckRubricFieldsReceivedFromForm (&Rubrics.Rubric)) if (Rub_CheckRubricFieldsReceivedFromForm (&Rubrics.Rubric))
{ {
/***** Create a new rubric or update an existing one *****/ /***** Create a new rubric or update an existing one *****/
if (ItsANewRubric) switch (ExistingNewRubric)
{ {
Rub_CreateRubric (&Rubrics.Rubric,Txt); // Add new rubric to database case Rub_EXISTING_RUBRIC:
ItsANewRubric = false; Rub_UpdateRubric (&Rubrics.Rubric,Txt); // Update rubric data in database
break;
case Rub_NEW_RUBRIC:
Rub_CreateRubric (&Rubrics.Rubric,Txt); // Add new rubric to database
ExistingNewRubric = Rub_EXISTING_RUBRIC;
break;
} }
else
Rub_UpdateRubric (&Rubrics.Rubric,Txt); // Update rubric data in database
} }
/***** Show current rubric and its criteria *****/ /***** Show current rubric and its criteria *****/
Rub_PutFormsOneRubric (&Rubrics,&Criterion, Rub_PutFormsOneRubric (&Rubrics,&Criterion,ExistingNewRubric);
ItsANewRubric);
} }
static void Rub_ReceiveRubricFieldsFromForm (struct Rub_Rubric *Rubric, static void Rub_ReceiveRubricFieldsFromForm (struct Rub_Rubric *Rubric,

View File

@ -72,10 +72,10 @@ void Rub_ListRubric (void);
void Rub_ReqCreatOrEditRubric (void); void Rub_ReqCreatOrEditRubric (void);
void Rub_PutFormsOneRubric (struct Rub_Rubrics *Rubrics, void Rub_PutFormsOneRubric (struct Rub_Rubrics *Rubrics,
struct RubCri_Criterion *Criterion, struct RubCri_Criterion *Criterion,
bool ItsANewRubric); Rub_ExistingNewRubric_t ExistingNewRubric);
void Rub_PutFormEditionRubric (struct Rub_Rubrics *Rubrics, void Rub_PutFormEditionRubric (struct Rub_Rubrics *Rubrics,
char Txt[Cns_MAX_BYTES_TEXT + 1], char Txt[Cns_MAX_BYTES_TEXT + 1],
bool ItsANewRubric); Rub_ExistingNewRubric_t ExistingNewRubric);
void Rub_ReceiveFormRubric (void); void Rub_ReceiveFormRubric (void);

View File

@ -263,7 +263,7 @@ void RubCri_ReceiveFormCriterion (void)
/***** Show current rubric and its criteria *****/ /***** Show current rubric and its criteria *****/
Rub_PutFormsOneRubric (&Rubrics,&Criterion, Rub_PutFormsOneRubric (&Rubrics,&Criterion,
false); // It's not a new rubric Rub_EXISTING_RUBRIC); // It's not a new rubric
} }
static void RubCri_ReceiveCriterionFieldsFromForm (struct RubCri_Criterion *Criterion) static void RubCri_ReceiveCriterionFieldsFromForm (struct RubCri_Criterion *Criterion)
@ -376,7 +376,7 @@ void RubCri_ChangeTitle (void)
/***** Show current rubric and its criteria *****/ /***** Show current rubric and its criteria *****/
Rub_PutFormsOneRubric (&Rubrics,&Criterion, Rub_PutFormsOneRubric (&Rubrics,&Criterion,
false); // It's not a new rubric Rub_EXISTING_RUBRIC); // It's not a new rubric
} }
/*****************************************************************************/ /*****************************************************************************/
@ -418,7 +418,7 @@ void RubCri_ChangeSource (void)
/***** Show current rubric and its criteria *****/ /***** Show current rubric and its criteria *****/
Rub_PutFormsOneRubric (&Rubrics,&Criterion, Rub_PutFormsOneRubric (&Rubrics,&Criterion,
false); // It's not a new rubric Rub_EXISTING_RUBRIC); // It's not a new rubric
} }
/*****************************************************************************/ /*****************************************************************************/
@ -472,7 +472,7 @@ static void RubCri_ChangeValueCriterion (RubCri_ValueRange_t ValueRange)
/***** Show current rubric and its criteria *****/ /***** Show current rubric and its criteria *****/
Rub_PutFormsOneRubric (&Rubrics,&Criterion, Rub_PutFormsOneRubric (&Rubrics,&Criterion,
false); // It's not a new rubric Rub_EXISTING_RUBRIC); // It's not a new rubric
} }
/*****************************************************************************/ /*****************************************************************************/
@ -516,7 +516,7 @@ void RubCri_ChangeWeight (void)
/***** Show current rubric and its criteria *****/ /***** Show current rubric and its criteria *****/
Rub_PutFormsOneRubric (&Rubrics,&Criterion, Rub_PutFormsOneRubric (&Rubrics,&Criterion,
false); // It's not a new rubric Rub_EXISTING_RUBRIC); // It's not a new rubric
} }
/*****************************************************************************/ /*****************************************************************************/
@ -966,7 +966,7 @@ void RubCri_ReqRemCriterion (void)
/***** Show current rubric and its criteria *****/ /***** Show current rubric and its criteria *****/
Rub_PutFormsOneRubric (&Rubrics,&Criterion, Rub_PutFormsOneRubric (&Rubrics,&Criterion,
false); // It's not a new rubric Rub_EXISTING_RUBRIC); // It's not a new rubric
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1006,7 +1006,7 @@ void RubCri_RemoveCriterion (void)
/***** Show current rubric and its criteria *****/ /***** Show current rubric and its criteria *****/
Rub_PutFormsOneRubric (&Rubrics,&Criterion, Rub_PutFormsOneRubric (&Rubrics,&Criterion,
false); // It's not a new rubric Rub_EXISTING_RUBRIC); // It's not a new rubric
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1052,7 +1052,7 @@ void RubCri_MoveUpCriterion (void)
/***** Show current rubric and its criteria *****/ /***** Show current rubric and its criteria *****/
Rub_PutFormsOneRubric (&Rubrics,&Criterion, Rub_PutFormsOneRubric (&Rubrics,&Criterion,
false); // It's not a new rubric Rub_EXISTING_RUBRIC); // It's not a new rubric
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1102,7 +1102,7 @@ void RubCri_MoveDownCriterion (void)
/***** Show current rubric and its criteria *****/ /***** Show current rubric and its criteria *****/
Rub_PutFormsOneRubric (&Rubrics,&Criterion, Rub_PutFormsOneRubric (&Rubrics,&Criterion,
false); // It's not a new trubric Rub_EXISTING_RUBRIC); // It's not a new trubric
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -65,6 +65,12 @@ struct Rub_Rubrics
long QstCod; // Current question code long QstCod; // Current question code
}; };
typedef enum
{
Rub_EXISTING_RUBRIC,
Rub_NEW_RUBRIC,
} Rub_ExistingNewRubric_t;
#define RubCri_NUM_VALUES 2 #define RubCri_NUM_VALUES 2
typedef enum typedef enum
{ {

View File

@ -13887,163 +13887,163 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] =
, ,
[ActSeeRub] = [ActSeeRub] =
#if L==1 // ca #if L==1 // ca
"See rubric" // Necessita traducció "Veure r&uacute;brica"
#elif L==2 // de #elif L==2 // de
"See rubric" // Need Übersetzung "Siehe Rubrik"
#elif L==3 // en #elif L==3 // en
"See rubric" "See rubric"
#elif L==4 // es #elif L==4 // es
"Ver r&uacute;brica" "Ver r&uacute;brica"
#elif L==5 // fr #elif L==5 // fr
"See rubric" // Besoin de traduction "Voir rubrique"
#elif L==6 // gn #elif L==6 // gn
"Ver r&uacute;brica" // Okoteve traducción "Ehecha r&uacute;brica"
#elif L==7 // it #elif L==7 // it
"See rubric" // Bisogno di traduzione "Vedi rubrica"
#elif L==8 // pl #elif L==8 // pl
"See rubric" // Potrzebujesz tlumaczenie "Zobacz rubryk&eogon;"
#elif L==9 // pt #elif L==9 // pt
"See rubric" // Precisa de tradução "Ver rubrica"
#elif L==10 // tr #elif L==10 // tr
"See rubric" // Çeviri lazim! "De&gbreve;erlendirme tablosuna bak&inodot;n"
#endif #endif
, ,
[ActFrmNewRub] = [ActFrmNewRub] =
#if L==1 // ca #if L==1 // ca
"Edit new rubric" // Necessita traducció "Editar nova r&uacute;brica"
#elif L==2 // de #elif L==2 // de
"Edit new rubric" // Need Übersetzung "Neue Rubrik bearbeiten"
#elif L==3 // en #elif L==3 // en
"Edit new rubric" "Edit new rubric"
#elif L==4 // es #elif L==4 // es
"Editar nueva r&uacute;brica" "Editar nueva r&uacute;brica"
#elif L==5 // fr #elif L==5 // fr
"Edit new rubric" // Besoin de traduction "Modifier nouvelle rubrique"
#elif L==6 // gn #elif L==6 // gn
"Editar nueva r&uacute;brica" // Okoteve traducción "Emohenda r&uacute;brica pyahu"
#elif L==7 // it #elif L==7 // it
"Edit new rubric" // Bisogno di traduzione "Modificare nuova rubrica"
#elif L==8 // pl #elif L==8 // pl
"Edit new rubric" // Potrzebujesz tlumaczenie "Edytuj now&aogon; rubryk&eogon;"
#elif L==9 // pt #elif L==9 // pt
"Edit new rubric" // Precisa de tradução "Editar nova rubrica"
#elif L==10 // tr #elif L==10 // tr
"Edit new rubric" // Çeviri lazim! "Yeni puan anahtar&inodot;n&inodot; d&uacute;zenle"
#endif #endif
, ,
[ActEdiOneRub] = [ActEdiOneRub] =
#if L==1 // ca #if L==1 // ca
"Edit rubric" // Necessita traducció "Editar r&uacute;brica"
#elif L==2 // de #elif L==2 // de
"Edit rubric" // Need Übersetzung "Rubrik bearbeiten"
#elif L==3 // en #elif L==3 // en
"Edit rubric" "Edit rubric"
#elif L==4 // es #elif L==4 // es
"Editar r&uacute;brica" "Editar r&uacute;brica"
#elif L==5 // fr #elif L==5 // fr
"Edit rubric" // Besoin de traduction "Modifier rubrique"
#elif L==6 // gn #elif L==6 // gn
"Editar r&uacute;brica" // Okoteve traducción "Editar r&uacute;brica rehegua"
#elif L==7 // it #elif L==7 // it
"Edit rubric" // Bisogno di traduzione "Modificare rubrica"
#elif L==8 // pl #elif L==8 // pl
"Edit rubric" // Potrzebujesz tlumaczenie "Edytuj rubryk&eogon;"
#elif L==9 // pt #elif L==9 // pt
"Edit rubric" // Precisa de tradução "Editar rubrica"
#elif L==10 // tr #elif L==10 // tr
"Edit rubric" // Çeviri lazim! "Puan anahtar&inodot;n&inodot; d&uacute;zenle"
#endif #endif
, ,
[ActNewRub] = [ActNewRub] =
#if L==1 // ca #if L==1 // ca
"Create new rubric" // Necessita traducció "Crear nova r&uacute;brica"
#elif L==2 // de #elif L==2 // de
"Create new rubric" // Need Übersetzung "Neue Rubrik erstellen"
#elif L==3 // en #elif L==3 // en
"Create new rubric" "Create new rubric"
#elif L==4 // es #elif L==4 // es
"Crear nueva r&uacute;brica" "Crear nueva r&uacute;brica"
#elif L==5 // fr #elif L==5 // fr
"Create new rubric" // Besoin de traduction "Cr&eacute;er nouvelle rubrique"
#elif L==6 // gn #elif L==6 // gn
"Crear nueva r&uacute;brica" // Okoteve traducción "Ojapo r&uacute;brica pyahu"
#elif L==7 // it #elif L==7 // it
"Create new rubric" // Bisogno di traduzione "Creare nuova rubrica"
#elif L==8 // pl #elif L==8 // pl
"Create new rubric" // Potrzebujesz tlumaczenie "Utw&oacute;rz now&aogon; rubryk&eogon;"
#elif L==9 // pt #elif L==9 // pt
"Create new rubric" // Precisa de tradução "Criar nova rubrica"
#elif L==10 // tr #elif L==10 // tr
"Create new rubric" // Çeviri lazim! "Yeni de&gbreve;erlendirme listesi olu&scedil;tur"
#endif #endif
, ,
[ActChgRub] = [ActChgRub] =
#if L==1 // ca #if L==1 // ca
"Change rubric" // Necessita traducció "Canviar r&uacute;brica"
#elif L==2 // de #elif L==2 // de
"Change rubric" // Need Übersetzung "Rubrik wechseln"
#elif L==3 // en #elif L==3 // en
"Change rubric" "Change rubric"
#elif L==4 // es #elif L==4 // es
"Cambiar r&uacute;brica" "Cambiar r&uacute;brica"
#elif L==5 // fr #elif L==5 // fr
"Change rubric" // Besoin de traduction "Changer rubrique"
#elif L==6 // gn #elif L==6 // gn
"Cambiar r&uacute;brica" // Okoteve traducción "Omoambue r&uacute;brica"
#elif L==7 // it #elif L==7 // it
"Change rubric" // Bisogno di traduzione "Cambiare rubrica"
#elif L==8 // pl #elif L==8 // pl
"Change rubric" // Potrzebujesz tlumaczenie "Zmieni&cacute; rubryk&eogon;"
#elif L==9 // pt #elif L==9 // pt
"Change rubric" // Precisa de tradução "Mudar rubrica"
#elif L==10 // tr #elif L==10 // tr
"Change rubric" // Çeviri lazim! "Puan anahtar&inodot;n&inodot; de&gbreve;i&scedil;tir"
#endif #endif
, ,
[ActReqRemRub] = [ActReqRemRub] =
#if L==1 // ca #if L==1 // ca
"Request removal of rubric" // Necessita traducció "Sol&middot;licitar eliminaci&oacute; de r&uacute;brica"
#elif L==2 // de #elif L==2 // de
"Request removal of rubric" // Need Übersetzung "Entfernung der Rubrik beantragen"
#elif L==3 // en #elif L==3 // en
"Request removal of rubric" "Request removal of rubric"
#elif L==4 // es #elif L==4 // es
"Solicitar eliminaci&oacute;n de r&uacute;brica" "Solicitar eliminaci&oacute;n de r&uacute;brica"
#elif L==5 // fr #elif L==5 // fr
"Request removal of rubric" // Besoin de traduction "Demander suppression de rubrique"
#elif L==6 // gn #elif L==6 // gn
"Solicitar eliminaci&oacute;n de r&uacute;brica" // Okoteve traducción "Ojerure ojeipe'a hagu&atilde; r&uacute;brica"
#elif L==7 // it #elif L==7 // it
"Request removal of rubric" // Bisogno di traduzione "Richiesta rimozione di rubrica"
#elif L==8 // pl #elif L==8 // pl
"Request removal of rubric" // Potrzebujesz tlumaczenie "Popro&sacute; o usuni&eogon;cie rubryki"
#elif L==9 // pt #elif L==9 // pt
"Request removal of rubric" // Precisa de tradução "Solicitar remo&ccedil;&atilde;o de rubrica"
#elif L==10 // tr #elif L==10 // tr
"Request removal of rubric" // Çeviri lazim! "Puan anahtar&inodot;n&inodot;n kald&inodot;r&inodot;lmas&inodot;n&inodot; talep etme"
#endif #endif
, ,
[ActRemRub] = [ActRemRub] =
#if L==1 // ca #if L==1 // ca
"Remove rubric" // Necessita traducció "Eliminar r&uacute;brica"
#elif L==2 // de #elif L==2 // de
"Remove rubric" // Need Übersetzung "Rubrik entfernen"
#elif L==3 // en #elif L==3 // en
"Remove rubric" "Remove rubric"
#elif L==4 // es #elif L==4 // es
"Eliminar r&uacute;brica" "Eliminar r&uacute;brica"
#elif L==5 // fr #elif L==5 // fr
"Remove rubric" // Besoin de traduction "Supprimer rubrique"
#elif L==6 // gn #elif L==6 // gn
"Eliminar r&uacute;brica" // Okoteve traducción "Ojepe'a pe r&uacute;brica"
#elif L==7 // it #elif L==7 // it
"Remove rubric" // Bisogno di traduzione "Rimuovere rubrica"
#elif L==8 // pl #elif L==8 // pl
"Remove rubric" // Potrzebujesz tlumaczenie "Usu&nacute; rubryk&eogon;"
#elif L==9 // pt #elif L==9 // pt
"Remove rubric" // Precisa de tradução "Remover rubrica"
#elif L==10 // tr #elif L==10 // tr
"Remove rubric" // Çeviri lazim! "Puan anahtar&inodot;n&inodot; kald&inodot;r"
#endif #endif
, ,
[ActNewRubCri] = [ActNewRubCri] =