diff --git a/swad_changelog.h b/swad_changelog.h
index 21c23dbd8..7b3c9e1cd 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -606,10 +606,11 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia.
*/
-#define Log_PLATFORM_VERSION "SWAD 21.95.7 (2022-05-12)"
+#define Log_PLATFORM_VERSION "SWAD 21.95.8 (2022-05-12)"
#define CSS_FILE "swad21.95.5.css"
#define JS_FILE "swad21.92.js"
/*
+ Version 21.95.8: May 12, 2022 Some messages translated. (323155 lines)
Version 21.95.7: May 12, 2022 Changes in translation. (323154 lines)
Version 21.95.6: May 12, 2022 Fixing design of dark theme. (323509 lines)
Version 21.95.5: May 12, 2022 Some messages translated.
diff --git a/swad_text.c b/swad_text.c
index c75b854f9..b65dadeb9 100644
--- a/swad_text.c
+++ b/swad_text.c
@@ -46503,7 +46503,7 @@ const char *Txt_The_banner_X_already_exists = // Warning: it is very important t
const char *Txt_The_banner_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El banner %s ha pasado a denominarse %s."; // Necessita traduccio
+ "El banner %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The Werbebanner %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -46545,7 +46545,7 @@ const char *Txt_The_building_X_already_exists = // Warning: it is very important
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.";
+ "L'edifici %s ha passat a anomenar-se %s.";
#elif L==2 // de
"Das Gebäude %s wurde in %s umbenannt.";
#elif L==3 // en
@@ -46722,7 +46722,7 @@ const char *Txt_The_center_X_has_been_moved_to_the_institution_Y = // Warning: i
const char *Txt_The_center_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El centro %s ha pasado a denominarse %s."; // Necessita traduccio
+ "El centre %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The center %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -47097,7 +47097,7 @@ const char *Txt_The_country_X_already_exists = // Warning: it is very important
const char *Txt_The_country_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El país %s ha pasado a denominarse %s."; // Necessita traduccio
+ "El país %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The country %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -47220,9 +47220,9 @@ const char *Txt_The_course_X_has_been_moved_to_the_degree_Y = // Warning: it is
const char *Txt_The_course_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "La asignatura %s ha pasado a denominarse %s."; // Necessita traduccio
+ "L'assignatura %s ha passat a anomenar-se %s.";
#elif L==2 // de
- "The course %s has been renamed as %s ."; // Need Übersetzung
+ "The course %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
"The course %s has been renamed as %s.";
#elif L==4 // es
@@ -47355,7 +47355,7 @@ const char *Txt_The_degree_X_has_been_moved_to_the_center_Y = // Warning: it is
const char *Txt_The_degree_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "La titulación %s ha pasado a denominarse %s."; // Necessita traduccio
+ "La titulació %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The degree %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -47397,7 +47397,7 @@ const char *Txt_The_department_X_already_exists = // Warning: it is very importa
const char *Txt_The_department_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El departamento %s ha pasado a denominarse %s."; // Necessita traduccio
+ "El departament %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The department %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -47580,7 +47580,7 @@ const char *Txt_The_email_domain_X_already_exists =
const char *Txt_The_email_domain_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El dominio de correo %s ha pasado a denominarse %s."; // Necessita traduccio
+ "El domini de correu %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The email domain %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -47925,7 +47925,7 @@ const char *Txt_The_folder_is_empty =
const char *Txt_The_folder_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "La carpeta %s ha pasado a denominarse %s."; // Necessita traduccio
+ "La carpeta %s ha passat a anomenar-se %s.";
#elif L==2 // de
"Das Verzeichnis %s wurde umbenannt in %s.";
#elif L==3 // en
@@ -48018,7 +48018,7 @@ const char *Txt_The_group_X_already_exists = // Warning: it is very important to
const char *Txt_The_group_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El grupo %s ha pasado a denominarse %s."; // Necessita traduccio
+ "El grup %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The group %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -48144,7 +48144,7 @@ const char *Txt_The_groups_will_not_automatically_open =
const char *Txt_The_holiday_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "La festividad %s ha pasado a denominarse %s."; // Necessita traduccio
+ "La festivitat %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The holiday %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -48414,7 +48414,7 @@ const char *Txt_The_institution_X_already_exists = // Warning: it is very import
const char *Txt_The_institution_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "La institución %s ha pasado a denominarse %s."; // Necessita traduccio
+ "La institució %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The institution %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -48600,7 +48600,7 @@ const char *Txt_The_link_X_has_been_placed_inside_the_folder_Y = // Warning: it
const char *Txt_The_link_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El enlace %s ha pasado a denominarse %s."; // Necessita traduccio
+ "L'enllaç %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The link %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -49566,7 +49566,7 @@ const char *Txt_The_place_X_already_exists = // Warning: it is very important to
const char *Txt_The_place_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El lloc %s ha passat a denominar-se %s.";
+ "El lloc %s ha passat a anomenar-se %s.";
#elif L==2 // de
"Der Standort %s wurde in %s umbenannt.";
#elif L==3 // en
@@ -49650,7 +49650,7 @@ const char *Txt_The_plugin_X_already_exists = // Warning: it is very important t
const char *Txt_The_plugin_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El complemento %s ha pasado a denominarse %s."; // Necessita traduccio
+ "El complement %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The plugin %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -49734,7 +49734,7 @@ const char *Txt_The_record_field_X_already_exists = // Warning: it is very impor
const char *Txt_The_record_field_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El campo de ficha %s ha pasado a denominarse %s."; // Necessita traduccio
+ "El camp de fitxa %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The record field %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -49857,7 +49857,7 @@ const char *Txt_The_room_X_does_not_have_a_limited_capacity_now = // Warning: it
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.";
+ "La sala %s ha passat a anomenar-se %s.";
#elif L==2 // de
"Das Raum %s wurde in %s umbenannt.";
#elif L==3 // en
@@ -50127,7 +50127,7 @@ const char *Txt_The_survey_has_been_modified =
const char *Txt_The_tag_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El descriptor %s ha pasado a denominarse %s."; // Necessita traduccio
+ "El descriptor %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The tag %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -50295,7 +50295,7 @@ const char *Txt_The_type_of_degree_X_already_exists = // Warning: it is very imp
const char *Txt_The_type_of_degree_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El tipo de titulación %s ha pasado a denominarse %s."; // Necessita traduccio
+ "El tipus de titulació %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The type of degree %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en
@@ -50358,7 +50358,7 @@ const char *Txt_The_type_of_group_X_already_exists = // Warning: it is very impo
const char *Txt_The_type_of_group_X_has_been_renamed_as_Y = // Warning: it is very important to include two %s in the following sentences
#if L==1 // ca
- "El tipo de grupo %s ha pasado a denominarse %s."; // Necessita traduccio
+ "El tipus de grup %s ha passat a anomenar-se %s.";
#elif L==2 // de
"The type of group %s has been renamed as %s."; // Need Übersetzung
#elif L==3 // en