diff --git a/swad_changelog.h b/swad_changelog.h
index f77c42b64..e7b765b1f 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -606,11 +606,12 @@ 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.98.1 (2022-06-18)"
+#define Log_PLATFORM_VERSION "SWAD 21.98.2 (2022-06-19)"
#define CSS_FILE "swad21.97.1.css"
#define JS_FILE "swad21.97.4.js"
/*
- Version 21.98.1: Jun 18, 2022 Some messages translated. (? lines)
+ Version 21.98.2: Jun 19, 2022 Some messages translated. (322482 lines)
+ Version 21.98.1: Jun 18, 2022 Some messages translated. (322481 lines)
Version 21.98: Jun 18, 2022 Some messages translated. (322489 lines)
Version 21.97.6: Jun 15, 2022 Some messages translated. (323162 lines)
Version 21.97.5: Jun 15, 2022 Some messages translated. (323161 lines)
diff --git a/swad_text.c b/swad_text.c
index 1ce38f3aa..27022803a 100644
--- a/swad_text.c
+++ b/swad_text.c
@@ -2229,7 +2229,7 @@ const char *Txt_Application_key =
#if L==1 // ca
"Clau de aplicació";
#elif L==2 // de
- "Application key"; // Need Übersetzung
+ "Anwendungsschlüssel";
#elif L==3 // en
"Application key";
#elif L==4 // es
@@ -23400,19 +23400,19 @@ const char *Txt_message_sent_to_X_not_notified_by_email = // Warning: it is very
#if L==1 // ca
"Missatge enviat a %s (no notificat per email).";
#elif L==2 // de
- "Message sent to %s (not notified by email)."; // Need Übersetzung
+ "Nachricht an %s gesendet (nicht per E-Mail benachrichtigt).";
#elif L==3 // en
"Message sent to %s (not notified by email).";
#elif L==4 // es
"Mensaje enviado a %s (no notificado por email).";
#elif L==5 // fr
- "Message sent to %s (not notified by email)."; // Besoin de traduction
+ "Message envoyé à %s (non notifié par email).";
#elif L==6 // gn
"Mensaje enviado a %s (no notificado por email)."; // Okoteve traducción
#elif L==7 // it
"Messaggio inviato a %s (non notificato per email).";
#elif L==8 // pl
- "Wiadomość wyslana do %s (nie zgloszonych przez email)."; //
+ "Wiadomość wyslana do %s (nie zgloszonych przez email).";
#elif L==9 // pt
"Mensagem enviada para %s (não notificada por email).";
#endif
@@ -27316,8 +27316,8 @@ const char *Txt_Not_visible =
const char *Txt_Nothing_has_been_pasted_because_the_clipboard_is_empty_ =
#if L==1 // ca
- "No se pegado nada porque el portapapeles está vacío."
- " Trate de copiar y pegar de nuevo."; // Necessita traducció
+ "No s'enganxa res perquè el porta-retalls és buit."
+ " Intenta copiar i enganxar de nou.";
#elif L==2 // de
"Es konnten keine Daten eingefügt werden. Der Zwischenspeicher ist leer."
" Versuchen Sie den Kopieren-Einfügen-Vorgang bitte erneut.";
@@ -27328,8 +27328,8 @@ const char *Txt_Nothing_has_been_pasted_because_the_clipboard_is_empty_ =
"No se pegado nada porque el portapapeles está vacío."
" Trate de copiar y pegar de nuevo.";
#elif L==5 // fr
- "Nothing has been pasted because the clipboard is empty."
- " Try copy-paste again."; // Besoin de traduction
+ "Rien n'a été collé car le presse-papiers est vide."
+ " Essayez à nouveau de copier-coller.";
#elif L==6 // gn
"No se pegado nada porque el portapapeles está vacío."
" Trate de copiar y pegar de nuevo."; // Okoteve traducción
@@ -44844,19 +44844,19 @@ const char *Txt_Stay_connected_with_SWADroid =
#if L==1 // ca
"Seguiu connectat/da amb SWADroid.";
#elif L==2 // de
- "Stay connected with SWADroid."; // Need Übersetzung
+ "Bleiben Sie mit SWADroid in Verbindung.";
#elif L==3 // en
"Stay connected with SWADroid.";
#elif L==4 // es
"Siga conectado/a con SWADroid.";
#elif L==5 // fr
- "Stay connected with SWADroid."; // Besoin de traduction
+ "Restez connecté avec SWADroid.";
#elif L==6 // gn
"Siga conectado/a con SWADroid."; // Okoteve traducción
#elif L==7 // it
"Resta in contatto con SWADroid.";
#elif L==8 // pl
- "Stay connected with SWADroid."; // Potrzebujesz tlumaczenie
+ "Pozostań w kontakcie z SWADroid.";
#elif L==9 // pt
"Fique ligado/a com SWADroid.";
#endif
@@ -45010,42 +45010,42 @@ const char *Txt_Student_record_card_in_this_course_has_been_updated =
const char *Txt_Students_are_no_longer_obliged_to_read_this_information =
#if L==1 // ca
- "Los estudiantes ya no están obligados a leer esta información."; // Necessita traducció
+ "Els estudiants ja no estan obligats a llegir aquesta informació.";
#elif L==2 // de
- "Students are no longer obliged to read this information."; // Need Übersetzung
+ "Studierende sind nicht mehr verpflichtet, diese Informationen zu lesen.";
#elif L==3 // en
"Students are no longer obliged to read this information.";
#elif L==4 // es
"Los estudiantes ya no están obligados a leer esta información.";
#elif L==5 // fr
- "Students are no longer obliged to read this information."; // Besoin de traduction
+ "Les étudiants ne sont plus obligés de lire ces informations.";
#elif L==6 // gn
"Los estudiantes ya no están obligados a leer esta información."; // Okoteve traducción
#elif L==7 // it
"Gli studenti non sono obbligati a leggere questa informazione.";
#elif L==8 // pl
- "Students are no longer obliged to read this information."; // Potrzebujesz tlumaczenie
+ "Studenci nie są już zobowiązani do czytania tych informacji.";
#elif L==9 // pt
"Os estudantes não precisam mais ler essas informações.";
#endif
const char *Txt_Students_now_are_required_to_read_this_information =
#if L==1 // ca
- "Los estudiantes ahora están obligados a leer esta información."; // Necessita traducció
+ "Ara els estudiants han de llegir aquesta informació.";
#elif L==2 // de
- "Students now are required to read this information."; // Need Übersetzung
+ "Die Schüler müssen diese Informationen jetzt lesen.";
#elif L==3 // en
"Students now are required to read this information.";
#elif L==4 // es
"Los estudiantes ahora están obligados a leer esta información.";
#elif L==5 // fr
- "Students now are required to read this information."; // Besoin de traduction
+ "Les étudiants sont maintenant tenus de lire ces informations.";
#elif L==6 // gn
"Los estudiantes ahora están obligados a leer esta información."; // Okoteve traducción
#elif L==7 // it
"Gli studenti ora sono obbligati a leggere questa informazione.";
#elif L==8 // pl
- "Students now are required to read this information."; // Potrzebujesz tlumaczenie
+ "Uczniowie są teraz zobowiązani do przeczytania tych informacji.";
#elif L==9 // pt
"Os estudantes agora precisam ler essas informações.";
#endif
@@ -47095,19 +47095,19 @@ const char *Txt_The_country_X_has_been_renamed_as_Y = // Warning: it is very imp
#if L==1 // ca
"El país %s ha passat a anomenar-se %s.";
#elif L==2 // de
- "The country %s has been renamed as %s."; // Need Übersetzung
+ "Das Land %s wurde in %s umbenannt.";
#elif L==3 // en
"The country %s has been renamed as %s.";
#elif L==4 // es
"El país %s ha pasado a denominarse %s.";
#elif L==5 // fr
- "The country %s has been renamed as %s."; // Besoin de traduction
+ "Le pays %s a été renommé en %s.";
#elif L==6 // gn
"El país %s ha pasado a denominarse %s."; // Okoteve traducción
#elif L==7 // it
"Il paese %s è stato rimosso come %s.";
#elif L==8 // pl
- "The country %s has been renamed as %s."; // Potrzebujesz tlumaczenie
+ "Kraj %s został przemianowany na %s.";
#elif L==9 // pt
"O país %s foi renomeado como %s.";
#endif
@@ -47152,13 +47152,13 @@ const char *Txt_The_course_X_already_exists = // Warning: it is very important t
#elif L==4 // es
"La asignatura %s ya existe.";
#elif L==5 // fr
- "The course %s already exists."; // Besoin de traduction
+ "La matière %s existe déjà.";
#elif L==6 // gn
"La asignatura %s ya existe."; // Okoteve traducción
#elif L==7 // it
"Il corso %s già esiste.";
#elif L==8 // pl
- "The course %s already exists."; // Potrzebujesz tlumaczenie
+ "Kurs %s już istnieje.";
#elif L==9 // pt
"A disciplina %s já existe.";
#endif
@@ -47173,13 +47173,13 @@ const char *Txt_The_course_X_already_exists_in_year_Y = // Warning: it is very i
#elif L==4 // es
"La asignatura %s ya existe en el año/semestre %s.";
#elif L==5 // fr
- "The course %s already exists in year/semester %s."; // Besoin de traduction
+ "La matière %s existe déjà en année/semestre %s.";
#elif L==6 // gn
"La asignatura %s ya existe en el año/semestre %s."; // Okoteve traducción
#elif L==7 // it
"Il corso %s esiste già nell'anno/semester %s.";
#elif L==8 // pl
- "The course %s already exists in year/semester %s."; // Potrzebujesz tlumaczenie
+ "Kurs %s istnieje już na roku/semestrze %s.";
#elif L==9 // pt
"A disciplina %s já existe no ano/semestre %s.";
#endif
@@ -47465,11 +47465,11 @@ const char *Txt_The_email_address_entered_X_is_not_valid = // Warning: it is ver
const char *Txt_The_email_address_X_had_been_registered_by_another_user = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
- "La dirección de correo %s"
- " ya ha sido registrada por otro usuario."; // Necessita traducció
+ "L'adreça de correu electrònic %s"
+ " ha estat registrada per un altre usuari.";
#elif L==2 // de
- "The email address %s"
- " had been registered by another user."; // Need Übersetzung
+ "Die E-Mail-Adresse %s"
+ " wurde von einem anderen Benutzer registriert.";
#elif L==3 // en
"The email address %s"
" had been registered by another user.";
@@ -47477,8 +47477,8 @@ const char *Txt_The_email_address_X_had_been_registered_by_another_user = // War
"La dirección de correo %s"
" ya ha sido registrada por otro usuario.";
#elif L==5 // fr
- "The email address %s"
- " had been enroled by another user."; // Besoin de traduction
+ "L'adresse e-mail %s"
+ " a été inscrite par un autre utilisateur.";
#elif L==6 // gn
"La dirección de correo %s"
" ya ha sido registrada por otro usuario."; // Okoteve traducción
@@ -47486,8 +47486,8 @@ const char *Txt_The_email_address_X_had_been_registered_by_another_user = // War
"Il email %s"
" è stato registrato da un altro utente.";
#elif L==8 // pl
- "The email address %s"
- " had been registered by another user."; // Potrzebujesz tlumaczenie
+ "Adres e-mail %s"
+ " został zarejestrowany przez innego użytkownika.";
#elif L==9 // pt
"O endereço de email %s"
" foi registrado por outro usuário.";
@@ -47495,11 +47495,11 @@ const char *Txt_The_email_address_X_had_been_registered_by_another_user = // War
const char *Txt_The_email_address_X_has_been_registered_successfully = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
- "El correo %s"
- " se ha registrado correctamente."; // Necessita traducció
+ "L'adreça de correu electrònic %s"
+ " s'ha registrat correctament.";
#elif L==2 // de
- "The email address %s"
- " has been registered successfully."; // Need Übersetzung
+ "Die E-Mail-Adresse %s"
+ " wurde erfolgreich registriert.";
#elif L==3 // en
"The email address %s"
" has been registered successfully.";
@@ -47507,17 +47507,17 @@ const char *Txt_The_email_address_X_has_been_registered_successfully = // Warnin
"El correo %s"
" se ha registrado correctamente.";
#elif L==5 // fr
- "The email address %s"
- " has been registered successfully."; // Besoin de traduction
+ "L'adresse e-mail %s"
+ " a été enregistrée avec succès.";
#elif L==6 // gn
"El correo %s"
- " se ha registrado correctamente."; // Okoteve traducción
+ " se ha registrado correctamente."; // Okoteve traducción
#elif L==7 // it
"Il email %s"
" è stato registrato con successo.";
#elif L==8 // pl
- "The email address %s"
- " has been registered successfully."; // Potrzebujesz tlumaczenie
+ "Adres e-mail %s"
+ " został pomyślnie zarejestrowany.";
#elif L==9 // pt
"O endereço de email %s"
" foi registrado com sucesso.";
@@ -47525,11 +47525,11 @@ const char *Txt_The_email_address_X_has_been_registered_successfully = // Warnin
const char *Txt_The_email_address_X_matches_one_previously_registered = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
- "La dirección de correo %s"
- " coincide con una registrada previamente."; // Necessita traducció
+ "L'adreça de correu electrònic %s"
+ " coincideix amb una registrada anteriorment.";
#elif L==2 // de
- "The email address %s"
- " matches one previously registered."; // Need Übersetzung
+ "Die E-Mail-Adresse %s"
+ " stimmt mit einer zuvor registrierten überein.";
#elif L==3 // en
"The email address %s"
" matches one previously registered.";
@@ -47537,8 +47537,8 @@ const char *Txt_The_email_address_X_matches_one_previously_registered = // Warni
"La dirección de correo %s"
" coincide con una registrada previamente.";
#elif L==5 // fr
- "The email address %s"
- " matches one previously registered."; // Besoin de traduction
+ "L'adresse e-mail %s"
+ " correspond à une adresse précédemment enregistrée.";
#elif L==6 // gn
"La dirección de correo %s"
" coincide con una registrada previamente."; // Okoteve traducción
@@ -47546,8 +47546,8 @@ const char *Txt_The_email_address_X_matches_one_previously_registered = // Warni
"Il email %s"
" coincide con uno precedentemente registrato.";
#elif L==8 // pl
- "The email address %s"
- " matches one previously registered."; // Potrzebujesz tlumaczenie
+ "Adres e-mail %s"
+ " odpowiada poprzednio zarejestrowanemu.";
#elif L==9 // pt
"O endereço de email %s"
" corresponde a um registrado anteriormente.";
@@ -49581,19 +49581,19 @@ const char *Txt_The_place_of_the_center_has_changed =
#if L==1 // ca
"El lloc del centre ha canviat.";
#elif L==2 // de
- "The place of the center has changed."; // Need Übersetzung
+ "Der Ort des Zentrums hat sich geändert.";
#elif L==3 // en
"The place of the center has changed.";
#elif L==4 // es
"El lugar del centro ha cambiado.";
#elif L==5 // fr
- "The place of the center has changed."; // Besoin de traduction
+ "L'emplacement du centre a changé.";
#elif L==6 // gn
- "El lugar del centro ha cambiado."; // Okoteve traducción
+ "El lugar del centro ha cambiado."; // Okoteve traducción
#elif L==7 // it
"Il luogo del centro è cambiato.";
#elif L==8 // pl
- "The place of the center has changed."; // Potrzebujesz tlumaczenie
+ "Zmieniło się miejsce centrum.";
#elif L==9 // pt
"A localização do centro mudou.";
#endif
@@ -57538,21 +57538,21 @@ const char *Txt_You_can_create_a_new_folder_inside_the_folder_X = // Warning: it
const char *Txt_You_can_not_create_folders_files_or_links_here =
#if L==1 // ca
- "No puede crear carpetas, archivos o enlaces aquí."; // Necessita traducció
+ "No podeu crear carpetes, arxius o enllaços aquí.";
#elif L==2 // de
- "You can not create folders, files or links here."; // Need Übersetzung
+ "Sie können hier keine Ordner, Dateien oder Links erstellen.";
#elif L==3 // en
"You can not create folders, files or links here.";
#elif L==4 // es
"No puede crear carpetas, archivos o enlaces aquí.";
#elif L==5 // fr
- "You can not create folders, files or links here."; // Besoin de traduction
+ "Vous ne pouvez pas créer de dossiers, de fichiers ou de liens ici.";
#elif L==6 // gn
"No puede crear carpetas, archivos o enlaces aquí."; // Okoteve traducción
#elif L==7 // it
"Non puoi creare cartelle, file o linki qui.";
#elif L==8 // pl
- "You can not create folders, files or links here."; // Potrzebujesz tlumaczenie
+ "Nie możesz tutaj tworzyć folderów, plików ani linków.";
#elif L==9 // pt
"Você não pode criar pastas, arquivos ou links aqui.";
#endif
@@ -57715,105 +57715,105 @@ const char *Txt_You_can_not_leave_the_field_empty =
const char *Txt_You_can_not_paste_file_or_folder_here =
#if L==1 // ca
- "No puede pegar un archivo o carpeta aquí."; // Necessita traducció
+ "No podeu enganxar un arxiu o una carpeta aquí.";
#elif L==2 // de
- "You can not paste file or folder here."; // Need Übersetzung
+ "Sie können hier keine Dateien oder Ordner einfügen.";
#elif L==3 // en
"You can not paste file or folder here.";
#elif L==4 // es
"No puede pegar un archivo o carpeta aquí.";
#elif L==5 // fr
- "You can not paste file or folder here."; // Besoin de traduction
+ "Vous ne pouvez pas coller de fichier ou de répertoire ici.";
#elif L==6 // gn
- "No puede pegar un archivo o carpeta aquí."; // Okoteve traducción
+ "No puede pegar un archivo o carpeta aquí."; // Okoteve traducción
#elif L==7 // it
"Non puoi copiare file o cartella qui.";
#elif L==8 // pl
- "You can not paste file or folder here."; // Potrzebujesz tlumaczenie
+ "Nie możesz tutaj wkleić pliku lub folderu.";
#elif L==9 // pt
"Você não pode colar arquivos ou pastas aqui.";
#endif
const char *Txt_You_can_not_remove_this_file_or_link =
#if L==1 // ca
- "No puede eliminar este archivo o enlace."; // Necessita traducció
+ "No podeu eliminar aquest arxiu o enllaç.";
#elif L==2 // de
- "You can not remove this file or link."; // Need Übersetzung
+ "Sie können diese Datei oder diesen Link nicht entfernen.";
#elif L==3 // en
"You can not remove this file or link.";
#elif L==4 // es
"No puede eliminar este archivo o enlace.";
#elif L==5 // fr
- "You can not remove this file or link."; // Besoin de traduction
+ "Vous ne pouvez pas supprimer ce fichier ou ce lien.";
#elif L==6 // gn
"No puede eliminar este archivo o enlace."; // Okoteve traducción
#elif L==7 // it
"Non puoi rimuovere questo file o link.";
#elif L==8 // pl
- "You can not remove this file or link."; // Potrzebujesz tlumaczenie
+ "Nie możesz usunąć tego pliku lub linku.";
#elif L==9 // pt
"Você não pode remover este arquivo ou link.";
#endif
const char *Txt_You_can_not_remove_this_folder =
#if L==1 // ca
- "No puede eliminar esta carpeta."; // Necessita traducció
+ "No podeu eliminar aquesta carpeta.";
#elif L==2 // de
- "You can not remove this folder."; // Need Übersetzung
+ "Sie können diesen Ordner nicht entfernen.";
#elif L==3 // en
"You can not remove this folder.";
#elif L==4 // es
"No puede eliminar esta carpeta.";
#elif L==5 // fr
- "You can not remove this folder."; // Besoin de traduction
+ "Vous ne pouvez pas supprimer ce répertoire.";
#elif L==6 // gn
"No puede eliminar esta carpeta."; // Okoteve traducción
#elif L==7 // it
"Non puoi rimuovere questa cartella.";
#elif L==8 // pl
- "You can not remove this folder."; // Potrzebujesz tlumaczenie
+ "Nie możesz usunąć tego folderu.";
#elif L==9 // pt
"Você não pode remover esta pasta.";
#endif
const char *Txt_You_can_not_remove_a_country_with_institutions_or_users =
#if L==1 // ca
- "No puede eliminar un país con instituciones o usuarios."; // Necessita traducció
+ "No pots eliminar un país amb institucions o usuaris.";
#elif L==2 // de
- "You can not remove a country with institutions or users."; // Need Übersetzung
+ "Sie können kein Land mit Institutionen oder Benutzern entfernen.";
#elif L==3 // en
"You can not remove a country with institutions or users.";
#elif L==4 // es
"No puede eliminar un país con instituciones o usuarios.";
#elif L==5 // fr
- "You can not remove a country with instituciones or users."; // Besoin de traduction
+ "Vous ne pouvez pas supprimer un pays avec des institutions ou des utilisateurs.";
#elif L==6 // gn
"No puede eliminar un país con instituciones o usuarios."; // Okoteve traducción
#elif L==7 // it
"Non puoi rimuovere un paese con istituzioni o utenti.";
#elif L==8 // pl
- "You can not remove a country with instituciones or users."; // Potrzebujesz tlumaczenie
+ "Nie możesz usunąć kraju z instytucjami lub użytkownikami.";
#elif L==9 // pt
"Você não pode remover um país com instituciones ou usuários.";
#endif
const char *Txt_You_can_not_rename_this_folder =
#if L==1 // ca
- "No puede cambiar el nombre de esta carpeta."; // Necessita traducció
+ "No podeu canviar el nom d'aquesta carpeta.";
#elif L==2 // de
- "You can not rename this folder."; // Need Übersetzung
+ "Sie können diesen Ordner nicht umbenennen.";
#elif L==3 // en
"You can not rename this folder.";
#elif L==4 // es
"No puede cambiar el nombre de esta carpeta.";
#elif L==5 // fr
- "You can not rename this folder."; // Besoin de traduction
+ "Vous ne pouvez pas renommer ce répertoire.";
#elif L==6 // gn
"No puede cambiar el nombre de esta carpeta."; // Okoteve traducción
#elif L==7 // it
"Non puoi rinominare questa cartella.";
#elif L==8 // pl
- "You can not rename this folder."; // Potrzebujesz tlumaczenie
+ "Nie możesz zmienić nazwy tego folderu.";
#elif L==9 // pt
"Você não pode renomear esta pasta.";
#endif
@@ -57871,11 +57871,11 @@ const char *Txt_You_can_not_take_a_new_test_until =
const char *Txt_You_can_only_perform_X_further_actions_ = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
- "Solo podrá realizar %u acciones más"
- " si no envía su fotografía."; // Necessita traducció
+ "Només podeu realitzar %u accions més"
+ " si no envieu la vostra foto.";
#elif L==2 // de
- "You can only perform %u further actions"
- " if you don't send your photo."; // Need Übersetzung
+ "Sie können nur %u weitere Aktionen ausführen,"
+ " wenn Sie Ihr Foto nicht senden.";
#elif L==3 // en
"You can only perform %u further actions"
" if you don't send your photo.";
@@ -57883,8 +57883,8 @@ const char *Txt_You_can_only_perform_X_further_actions_ = // Warning: it is very
"Solo podrá realizar %u acciones más"
" si no envía su fotografía.";
#elif L==5 // fr
- "You can only perform %u further actions"
- " if you don't send your photo."; // Besoin de traduction
+ "Vous ne pouvez effectuer que %u actions supplémentaires"
+ " si vous n'envoyez pas votre photo.";
#elif L==6 // gn
"Solo podrá realizar %u acciones más"
" si no envía su fotografía."; // Okoteve traducción
@@ -57892,8 +57892,8 @@ const char *Txt_You_can_only_perform_X_further_actions_ = // Warning: it is very
"Puoi solo realizzare %u massime azioni"
" se non hai inviato la tua foto.";
#elif L==8 // pl
- "You can only perform %u further actions"
- " if you don't send your photo."; // Potrzebujesz tlumaczenie
+ "Jeśli nie wyślesz swojego zdjęcia,"
+ " możesz wykonać tylko %u dalszych działań.";
#elif L==9 // pt
"Você só pode executar %u ações adicionais"
" se não enviar sua foto.";
@@ -57940,32 +57940,32 @@ const char *Txt_You_can_only_receive_email_notifications_if_ = // Warning: it is
const char *Txt_You_can_register_voluntarily_in_one_group_of_type_X = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
- "Puede apuntarse voluntariamente a un grupo de tipo %s."; // Necessita traducció
+ "Podeu apuntar-vos voluntàriament a un grup de tipus %s.";
#elif L==2 // de
- "You can register voluntarily in one group of type %s."; // Need Übersetzung
+ "Sie können sich freiwillig in einer Gruppe vom Typ %s anmelden.";
#elif L==3 // en
"You can register voluntarily in one group of type %s.";
#elif L==4 // es
"Puede apuntarse voluntariamente a un grupo de tipo %s.";
#elif L==5 // fr
- "You can register voluntarily in one group of type %s."; // Besoin de traduction
+ "Vous pouvez vous inscrire volontairement dans un groupe de type %s.";
#elif L==6 // gn
"Puede apuntarse voluntariamente a un grupo de tipo %s."; // Okoteve traducción
#elif L==7 // it
"Ti puoi registrare volontariamente in uno dei gruppi di tipo %s.";
#elif L==8 // pl
- "You can register voluntarily in one group of type %s."; // Potrzebujesz tlumaczenie
+ "Możesz zarejestrować się dobrowolnie w jednej grupie typu %s.";
#elif L==9 // pt
"Você pode se inscrever voluntariamente em um grupo do tipo %s.";
#endif
const char *Txt_You_can_register_voluntarily_in_one_or_more_groups_of_type_X = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
- "Puede apuntarse voluntariamente"
- " a uno o a varios grupos de tipo %s."; // Necessita traducció
+ "Podeu registrar-vos voluntàriament"
+ " en un o més grups de tipus %s.";
#elif L==2 // de
- "You can register voluntarily"
- " in one or more groups of type %s."; // Need Übersetzung
+ "Sie können sich freiwillig"
+ " in einer oder mehreren Gruppen vom Typ %s registrieren.";
#elif L==3 // en
"You can register voluntarily"
" in one or more groups of type %s.";
@@ -57973,8 +57973,8 @@ const char *Txt_You_can_register_voluntarily_in_one_or_more_groups_of_type_X = /
"Puede apuntarse voluntariamente"
" a uno o a varios grupos de tipo %s.";
#elif L==5 // fr
- "You can register voluntarily"
- " in one or more groups of type %s."; // Besoin de traduction
+ "Vous pouvez vous inscrire volontairement"
+ " dans un ou plusieurs groupes de type %s.";
#elif L==6 // gn
"Puede apuntarse voluntariamente"
" a uno o a varios grupos de tipo %s."; // Okoteve traducción
@@ -57982,8 +57982,8 @@ const char *Txt_You_can_register_voluntarily_in_one_or_more_groups_of_type_X = /
"Ti puoi registrare volontariamente"
" in uno o più gruppi di tipo %s.";
#elif L==8 // pl
- "You can register voluntarily"
- " in one or more groups of type %s."; // Potrzebujesz tlumaczenie
+ "Możesz zarejestrować się dobrowolnie"
+ " w jednej lub kilku grupach typu %s.";
#elif L==9 // pt
"Você pode se inscrever voluntariamente"
" em um ou mais grupos do tipo %s.";
@@ -58162,21 +58162,21 @@ const char *Txt_You_dont_have_permission_to_perform_this_action =
const char *Txt_You_have_confirmed_that_you_have_read_this_information =
#if L==1 // ca
- "Usted ha confirmado que ha leido esta información."; // Necessita traducció
+ "Heu confirmat que heu llegit aquesta informació.";
#elif L==2 // de
- "You have confirmed that you have read this information."; // Need Übersetzung
+ "Sie haben bestätigt, dass Sie diese Informationen gelesen haben.";
#elif L==3 // en
"You have confirmed that you have read this information.";
#elif L==4 // es
"Usted ha confirmado que ha leido esta información.";
#elif L==5 // fr
- "You have confirmed that you have read this information."; // Besoin de traduction
+ "Vous avez confirmé avoir lu ces informations.";
#elif L==6 // gn
"Usted ha confirmado que ha leido esta información."; // Okoteve traducción
#elif L==7 // it
"Hai confermato che hai letto questa informazione.";
#elif L==8 // pl
- "You have confirmed that you have read this information."; // Potrzebujesz tlumaczenie
+ "Potwierdziłeś, że zapoznałeś się z tymi informacjami.";
#elif L==9 // pt
"Você confirmou que leu esta informação.";
#endif
@@ -58390,21 +58390,21 @@ const char *Txt_You_have_not_entered_your_password_correctly =
const char *Txt_You_have_not_written_twice_the_same_new_password =
#if L==1 // ca
- "No ha escrito dos veces la misma contraseña nueva."; // Necessita traducció
+ "No heu escrit dues vegades la mateixa contrasenya nova.";
#elif L==2 // de
- "You have not written twice the same new password."; // Need Übersetzung
+ "Sie haben nicht zweimal das gleiche neue Passwort geschrieben.";
#elif L==3 // en
"You have not written twice the same new password.";
#elif L==4 // es
"No ha escrito dos veces la misma contraseña nueva.";
#elif L==5 // fr
- "You have not written twice the same new password."; // Besoin de traduction
+ "Vous n'avez pas écrit deux fois le même nouveau mot de passe.";
#elif L==6 // gn
"No ha escrito dos veces la misma contraseña nueva."; // Okoteve traducción
#elif L==7 // it
"Non hai scritto due volte la stessa password nuova.";
#elif L==8 // pl
- "You have not written twice the same new password."; // Potrzebujesz tlumaczenie
+ "Nie wpisałeś dwa razy tego samego nowego hasła.";
#elif L==9 // pt
"Você não escreveu duas vezes a mesma nova senha.";
#endif
@@ -58453,84 +58453,84 @@ const char *Txt_You_have_stopped_following_X_users = // Warning: it is very impo
const char *Txt_You_have_to_register_compulsorily_at_least_in_one_group_of_type_X = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
- "Tiene que apuntarse obligatoriamente al menos a un grupo de tipo %s."; // Necessita traducció
+ "Cal registrar-se obligatòriament almenys en un grup de tipus %s.";
#elif L==2 // de
- "You have to register compulsorily at least in one group of type %s."; // Need Übersetzung
+ "Sie müssen sich mindestens in einer Gruppe vom Typ %s verpflichtend anmelden.";
#elif L==3 // en
"You have to register compulsorily at least in one group of type %s.";
#elif L==4 // es
"Tiene que apuntarse obligatoriamente al menos a un grupo de tipo %s.";
#elif L==5 // fr
- "You have to register compulsorily at least in one group of type %s."; // Besoin de traduction
+ "Vous devez obligatoirement vous inscrire au moins dans un groupe de type %s.";
#elif L==6 // gn
"Tiene que apuntarse obligatoriamente al menos a un grupo de tipo %s."; // Okoteve traducción
#elif L==7 // it
"Devi registrarti obbligatoriamente almeno in uno dei gruppi del tipo %s.";
#elif L==8 // pl
- "You have to register compulsorily at least in one group of type %s."; // Potrzebujesz tlumaczenie
+ "Musisz obowiązkowo zarejestrować się przynajmniej w jednej grupie typu %s.";
#elif L==9 // pt
"Você tem que se registrar obrigatoriamente pelo menos em um grupo do tipo %s.";
#endif
const char *Txt_You_have_to_register_compulsorily_in_one_group_of_type_X = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
- "Tiene que apuntarse obligatoriamente a un grupo de tipo %s."; // Necessita traducció
+ "Cal inscriure's obligatòriament en un grup de tipus %s.";
#elif L==2 // de
- "You have to register compulsorily in one group of type %s."; // Need Übersetzung
+ "Sie müssen sich zwingend in einer Gruppe vom Typ %s anmelden.";
#elif L==3 // en
"You have to register compulsorily in one group of type %s.";
#elif L==4 // es
"Tiene que apuntarse obligatoriamente a un grupo de tipo %s.";
#elif L==5 // fr
- "You have to register compulsorily in one group of type %s."; // Besoin de traduction
+ "Vous devez obligatoirement vous inscrire dans un groupe de type %s.";
#elif L==6 // gn
"Tiene que apuntarse obligatoriamente a un grupo de tipo %s."; // Okoteve traducción
#elif L==7 // it
"Devi registrarti obbligatoriamente in uno dei gruppi del tipo %s.";
#elif L==8 // pl
- "You have to register compulsorily in one group of type %s."; // Potrzebujesz tlumaczenie
+ "Musisz obowiązkowo zarejestrować się w jednej grupie typu %s.";
#elif L==9 // pt
"Você tem que se registrar obrigatoriamente em um grupo do tipo %s.";
#endif
const char *Txt_You_must_enter_an_integer_value_as_the_correct_answer =
#if L==1 // ca
- "Debe escribir un valor entero como respuesta correcta."; // Necessita traducció
+ "Heu d'introduir un valor enter com a resposta correcta.";
#elif L==2 // de
- "You must enter an integer value as the correct answer."; // Übersetzung notwendig
+ "Als richtige Antwort müssen Sie einen ganzzahligen Wert eingeben.";
#elif L==3 // en
"You must enter an integer value as the correct answer.";
#elif L==4 // es
"Debe escribir un valor entero como respuesta correcta.";
#elif L==5 // fr
- "You must enter an integer value as the correct answer."; // Besoin de traduction
+ "Vous devez entrer une valeur entière comme réponse correcte.";
#elif L==6 // gn
"Debe escribir un valor entero como respuesta correcta."; // Okoteve traducción
#elif L==7 // it
"Devi inserire un valore intero come risposta corretta.";
#elif L==8 // pl
- "You must enter an integer value as the correct answer."; // Potrzebujesz tlumaczenie
+ "Musisz podać wartość całkowitą jako poprawną odpowiedź.";
#elif L==9 // pt
"Você deve inserir um valor inteiro como a resposta correta.";
#endif
const char *Txt_You_must_enter_the_range_of_floating_point_values_allowed_as_answer =
#if L==1 // ca
- "Debe escribir el intervalo de valores reales permitidos como respuesta."; // Necessita traducció
+ "Heu d'introduir l'interval de valors de coma flotant permès com a resposta.";
#elif L==2 // de
- "You must enter the range of floating point values allowed as answer."; // Übersetzung notwendig
+ "Als Antwort müssen Sie den Bereich der zulässigen Fließkommawerte eingeben.";
#elif L==3 // en
"You must enter the range of floating point values allowed as answer.";
#elif L==4 // es
"Debe escribir el intervalo de valores reales permitidos como respuesta.";
#elif L==5 // fr
- "You must enter the range of floating point values allowed as answer."; // Besoin de traduction
+ "Vous devez entrer la plage de valeurs à virgule flottante autorisée comme réponse.";
#elif L==6 // gn
"Debe escribir el intervalo de valores reales permitidos como respuesta."; // Okoteve traducción
#elif L==7 // it
"Devi inserire il range di valori reali permessi come risposta.";
#elif L==8 // pl
- "You must enter the range of floating point values allowed as answer."; // Potrzebujesz tlumaczenie
+ "Musisz podać zakres wartości zmiennoprzecinkowych dozwolonych jako odpowiedź.";
#elif L==9 // pt
"Você deve inserir o intervalo de valores de ponto flutuante permitidos como resposta.";
#endif