diff --git a/data/web/lang/lang.nl.php b/data/web/lang/lang.nl.php
index 2587dc1c..385c0c04 100644
--- a/data/web/lang/lang.nl.php
+++ b/data/web/lang/lang.nl.php
@@ -16,50 +16,101 @@ $lang['footer']['delete_these_items'] = 'Bevestig de wijzigingen aan het volgend
$lang['footer']['delete_now'] = 'Nu verwijderen';
$lang['footer']['cancel'] = 'Annuleren';
-$lang['danger']['dkim_domain_or_sel_invalid'] = "DKIM domain or selector invalid";
+$lang['danger']['mysql_error'] = "MySQL-fout: %s";
+$lang['danger']['redis_error'] = "Redis-fout: %s";
+$lang['danger']['unknown_tfa_method'] = "Onbekende tweefactorauthenticatiemethode";
+$lang['danger']['totp_verification_failed'] = "TOTP-verificatie mislukt";
+$lang['success']['verified_totp_login'] = "TOTP succesvol geverifieerd";
+$lang['danger']['u2f_verification_failed'] = "U2F-verificatie mislukt: %s";
+$lang['success']['verified_u2f_login'] = "U2F succesvol geverifieerd";
+$lang['success']['verified_yotp_login'] = "Yubico OTP succesvol geverifieerd";
+$lang['danger']['yotp_verification_failed'] = "Yubico OTP-verificatie mislukt: %s";
+$lang['danger']['ip_list_empty'] = "Lijst met toegestane IP-adressen kan niet leeg zijn";
+$lang['danger']['rspamd_ui_pw_length'] = "Rspamd-wachtwoord moet minstens 6 tekens lang zijn";
+$lang['success']['rspamd_ui_pw_set'] = "Rspamd-wachtwoord succesvol ingesteld";
+$lang['danger']['unknown'] = "Er is een onbekende fout opgetreden";
+$lang['danger']['malformed_username'] = "Ongeldige gebruikersnaam";
+$lang['info']['awaiting_tfa_confirmation'] = "In afwachting van tweefactorauthenticatie...";
+$lang['success']['logged_in_as'] = "Succesvol ingelogd als %s";
+$lang['danger']['login_failed'] = "Aanmelding mislukt";
+$lang['danger']['set_acl_failed'] = "ALC kon niet worden ingesteld";
+$lang['danger']['no_user_defined'] = "Geen gebruiker gespecificeerd";
+$lang['danger']['script_empty'] = "Script kan niet leeg zijn";
+$lang['danger']['sieve_error'] = "Sieve-fout: %s";
+$lang['danger']['value_missing'] = "Niet alle waarden zijn ingevuld";
+$lang['danger']['filter_type'] = "Verkeerd filtertype";
+$lang['danger']['domain_cannot_match_hostname'] = "Domein kan niet gelijk zijn aan hostname";
+$lang['warning']['domain_added_sogo_failed'] = "Domein is toegevoegd, maar het hestarten van SOGo mislukte. Controleer de serverlogs.";
+$lang['danger']['rl_timeframe'] = "Ratelimit time frame is incorrect";
+$lang['success']['deleted_syncjobs'] = "Synchronisatietaken %s zijn verwijderd";
+$lang['success']['deleted_syncjob'] = "Synchronisatietaak %s is verwijderd";
+$lang['success']['delete_filters'] = "Filters %s zijn verwijderd";
+$lang['success']['delete_filter'] = "Filter %s is verwijderd";
+$lang['danger']['invalid_bcc_map_type'] = "Ongeldig BCC-kaart type";
+$lang['danger']['bcc_empty'] = "BCC-bestemming kan niet leeg zijn";
+$lang['danger']['bcc_must_be_email'] = "BCC-kaart %s is geen geldig e-mailadres";
+$lang['danger']['bcc_exists'] = "BCC-kaart %s bestaat voor type %s";
+$lang['success']['bcc_saved'] = "BCC-kaart is opgeslagen";
+$lang['success']['bcc_edited'] = "BCC-kaart %s is gewijzigd";
+$lang['success']['bcc_deleted'] = "BCC-kaarten %s zijn verwijderd";
+$lang['danger']['private_key_error'] = "Privésleutel-fout: %s";
+$lang['danger']['map_content_empty'] = "Inhoud kan niet leeg zijn";
+$lang['success']['settings_map_added'] = "Instellingen toegevoegd";
+$lang['danger']['settings_map_invalid'] = "Instellingen ongeldig";
+$lang['danger']['settings_map_removed'] = "Instellingen verwijderd: %s";
+$lang['danger']['invalid_host'] = "Ongeldige host gespecificeerd: %s";
+$lang['danger']['relayhost_invalid'] = "Relayhost %s is ongeldig";
+$lang['success']['saved_settings'] = "Instellingen opgeslagen";
+$lang['success']['db_init_complete'] = "Database-initialisatie voltooid";
+
+$lang['warning']['session_ua'] = "Token ongeldig: gebruikersagentvalidatie mislukt";
+$lang['warning']['session_token'] = "Token ongeldig: komt niet overeen";
+
+$lang['danger']['dkim_domain_or_sel_invalid'] = "DKIM-domein %s ongeldig";
$lang['success']['dkim_removed'] = "DKIM-sleutel %s is verwijderd";
$lang['success']['dkim_added'] = "DKIM-sleutel is opgeslagen";
$lang['danger']['access_denied'] = "Toegang geweigerd of ongeldige gegevens";
-$lang['danger']['domain_invalid'] = "Domeinnaam is ongeldig";
+$lang['danger']['domain_invalid'] = "Domeinnaam %s is ongeldig";
$lang['danger']['mailbox_quota_exceeds_domain_quota'] = "Max. postvakquotum is groter dan domeinquotum";
$lang['danger']['object_is_not_numeric'] = "Waarde %s is niet numeriek";
$lang['success']['domain_added'] = "Domein %s is toegevoegd";
$lang['success']['items_deleted'] = "Onderdeel %s is verwijderd";
+$lang['success']['item_deleted'] = "Onderdeel %s is verwijderd";
$lang['danger']['alias_empty'] = "Aliasadres moet ingevuld worden";
$lang['danger']['last_key'] = 'De laatste sleutel kan niet worden verwijderd';
$lang['danger']['goto_empty'] = "Doeladres moet ingevuld worden";
$lang['danger']['policy_list_from_exists'] = "Er bestaat al een vermelding met dezelfde naam";
$lang['danger']['policy_list_from_invalid'] = "Invoer is ongeldig";
-$lang['danger']['alias_invalid'] = "Aliasadres is ongeldig";
-$lang['danger']['goto_invalid'] = "Doeladres is ongeldig";
-$lang['danger']['alias_domain_invalid'] = "Aliasdomein is ongeldig";
-$lang['danger']['target_domain_invalid'] = "Doeladres is ongeldig";
+$lang['danger']['alias_invalid'] = "Aliasadres %s is ongeldig";
+$lang['danger']['goto_invalid'] = "Doeladres %s is ongeldig";
+$lang['danger']['alias_domain_invalid'] = "Aliasdomein %s is ongeldig";
+$lang['danger']['target_domain_invalid'] = "Doeladres %s is ongeldig";
$lang['danger']['object_exists'] = "Object %s bestaat al";
$lang['danger']['domain_exists'] = "Domain %s bestaat al";
$lang['danger']['alias_goto_identical'] = "Het alias- en doeladres mogen niet identiek zijn";
-$lang['danger']['aliasd_targetd_identical'] = "Het aliasdomein mag niet identiek zijn aan het doeldomein";
+$lang['danger']['aliasd_targetd_identical'] = "Aliasdomein %s mag niet identiek zijn aan het doeldomein";
$lang['danger']['maxquota_empty'] = 'Max. postvakquotum moet groter dan 0 zijn.';
-$lang['success']['alias_added'] = "Aliasadres(sen) zijn toegevoegd";
-$lang['success']['alias_modified'] = "Wijzigingen aan alias(sen) %s zijn opgeslagen";
+$lang['success']['alias_added'] = "Aliasadres %s is toegevoegd";
+$lang['success']['alias_modified'] = "Wijzigingen aan alias %s zijn opgeslagen";
$lang['success']['mailbox_modified'] = "Wijzigingen aan postvak %s zijn opgeslagen";
$lang['success']['resource_modified'] = "Wijzigingen aan postvak %s zijn opgeslagen";
$lang['success']['object_modified'] = "Wijzigingen aan object %s zijn opgeslagen";
$lang['success']['f2b_modified'] = "Wijzigingen aan Fail2ban parameters zijn opgeslagen";
-$lang['danger']['targetd_not_found'] = "Doeldomein niet gevonden";
+$lang['danger']['targetd_not_found'] = "Doeldomein %s niet gevonden";
$lang['success']['aliasd_added'] = "Aliasdomein %s is toegevoegd";
$lang['success']['aliasd_modified'] = "Wijzigingen aan aliasadres %s zijn opgeslagen";
$lang['success']['domain_modified'] = "Wijzigingen aan domein %s zijn opgeslagen";
$lang['success']['domain_admin_modified'] = "Wijzigingen aan domeinbeheerder %s zijn opgeslagen";
$lang['success']['domain_admin_added'] = "Domeinbeheerder %s is toegevoegd";
$lang['success']['admin_modified'] = "Wijzigingen aan de beheerder zijn opgeslagen";
-$lang['danger']['username_invalid'] = "Gebruikersnaam kan niet worden gebruikt";
+$lang['danger']['username_invalid'] = "Gebruikersnaam %s kan niet worden gebruikt";
$lang['danger']['password_mismatch'] = "De ingevoerde wachtwoorden komen niet overeen";
$lang['danger']['password_complexity'] = "Wachtwoord voldoet niet aan de vereisten (6 tekens lang, letters en nummers)";
$lang['danger']['password_empty'] = "Het wachtwoord moet ingevuld worden";
$lang['danger']['login_failed'] = "Aanmelding mislukt";
$lang['danger']['mailbox_invalid'] = "Naam van het postvak is ongeldig";
-$lang['danger']['description_invalid'] = 'Beschrijving van de hulpbron is ongeldig';
-$lang['danger']['resource_invalid'] = "Naam van de hulpbron is ongeldig";
+$lang['danger']['description_invalid'] = 'Beschrijving voor %s is ongeldig';
+$lang['danger']['resource_invalid'] = "Naam van de hulpbron %s is ongeldig";
$lang['danger']['is_alias'] = "Aliasadres %s bestaat al";
$lang['danger']['is_alias_or_mailbox'] = "Aliasadres of postvak %s bestaat al";
$lang['danger']['is_spam_alias'] = "Spam-aliasadres %s bestaat al";
@@ -82,7 +133,7 @@ $lang['danger']['max_quota_in_use'] = "Postvakquotum moet gelijk zijn aan, of gr
$lang['danger']['domain_quota_m_in_use'] = "Domeinquotum moet gelijk zijn aan, of groter zijn dan %s MiB";
$lang['danger']['mailboxes_in_use'] = "Max. aantal postvakken moet gelijk zijn aan, of groter zijn dan %d";
$lang['danger']['aliases_in_use'] = "Max. aantal aliassen moet gelijk zijn aan, of groter zijn dan %d";
-$lang['danger']['sender_acl_invalid'] = "ACL-waarde van afzender is ongeldig";
+$lang['danger']['sender_acl_invalid'] = "ACL-waarde van afzender %s is ongeldig";
$lang['danger']['domain_not_empty'] = "Kan geen domein in gebruik verwijderen";
$lang['danger']['validity_missing'] = 'Wijs een geldigheidstermijn toe';
$lang['user']['loading'] = "Bezig met laden...";
@@ -242,10 +293,10 @@ $lang['edit']['client_secret'] = 'Client secret';
$lang['edit']['scope'] = 'Omvang';
$lang['edit']['grant_types'] = 'Grant types';
$lang['edit']['redirect_uri'] = 'Doorstuur/Callback URL';
-$lang['edit']['hostname'] = 'Hostnaam';
+$lang['edit']['hostname'] = 'Hostname';
$lang['edit']['encryption'] = 'Versleuteling';
$lang['edit']['maxage'] = 'Maximale leeftijd van berichten (in dagen) die extern worden opgehaald
(0 = negeer leeftijd)';
-$lang['edit']['maxbytespersecond'] = 'Max. bytes per seconde (0 = onbeperkt)';
+$lang['edit']['maxbytespersecond'] = 'Max. bytes per seconde
(0 = onbeperkt)';
$lang['edit']['automap'] = 'Probeer mappen automatisch te koppelen ("Verstuurde items", "Verstuurd" => "Verstuurd" etc.)';
$lang['edit']['skipcrossduplicates'] = 'Sla duplicaten verspreid over mappen over (wie het eerst komt, het eerst maalt)';
$lang['add']['automap'] = 'Probeer mappen automatisch te koppelen ("Verstuurde items", "Verstuurd" => "Verstuurd" etc.)';
@@ -254,6 +305,7 @@ $lang['edit']['subfolder2'] = 'Synchroniseer in submap op bestemming
(
$lang['edit']['mins_interval'] = 'Interval (min)';
$lang['edit']['exclude'] = 'Sluit objecten uit (regex)';
$lang['edit']['save'] = 'Wijzigingen opslaan';
+$lang['edit']['username'] = 'Gebruikersnaam';
$lang['edit']['max_mailboxes'] = 'Max. mogelijke postvakken';
$lang['edit']['title'] = 'Wijzig object';
$lang['edit']['target_address'] = 'Doeladres(sen) (kommagescheiden)';
@@ -280,16 +332,17 @@ $lang['edit']['relay_all_info'] = 'Wanneer er wordt gekozen om nietVerzendcontrole is uitgeschakeld';
$lang['edit']['previous'] = 'Vorige pagina';
$lang['edit']['unchanged_if_empty'] = 'Laat leeg wanneer onveranderd';
-$lang['edit']['dont_check_sender_acl'] = "Schakel verzendcontrole uit voor domein %s inclusief aliasdomeinen";
+$lang['edit']['dont_check_sender_acl'] = "Schakel verzendcontrole uit voor domein %s (inclusief aliasdomeinen)";
$lang['edit']['multiple_bookings'] = 'Meerdere boekingen';
$lang['edit']['kind'] = 'Soort';
$lang['edit']['resource'] = 'Hulpbron';
$lang['add']['syncjob'] = 'Voeg een nieuwe synchronisatietaak toe';
$lang['add']['syncjob_hint'] = 'Wees ervan bewust dat wachtwoorden onversleuteld moeten worden opgeslagen.';
-$lang['add']['hostname'] = 'Hostnaam';
+$lang['add']['hostname'] = 'Hostname';
$lang['add']['port'] = 'Poort';
$lang['add']['username'] = 'Gebruikersnaam';
$lang['add']['enc_method'] = 'Versleutelingsmethode';
@@ -301,8 +354,12 @@ $lang['add']['delete2'] = 'Verwijder berichten die zich niet in de oorsprong bev
$lang['edit']['delete2duplicates'] = 'Verwijder duplicaten op de bestemming';
$lang['edit']['delete1'] = 'Verwijder van oorsprong wanneer voltooid';
$lang['edit']['delete2'] = 'Verwijder berichten die zich niet in de oorsprong bevinden';
+$lang['add']['custom_params'] = 'Aangepaste parameters';
+$lang['add']['subscribeall'] = 'Abonneer op alle mappen';
+$lang['add']['timeout1'] = 'Time-out voor verbinding met externe host';
+$lang['add']['timeout2'] = 'Time-out voor verbinding met lokale host';
-$lang['add']['domain_matches_hostname'] = 'Domein %s komt overeen met hostnaam';
+$lang['add']['domain_matches_hostname'] = 'Domein %s komt overeen met hostname';
$lang['add']['domain'] = 'Domein';
$lang['add']['active'] = 'Actief';
$lang['add']['multiple_bookings'] = 'Meerdere boekingen';
@@ -332,6 +389,8 @@ $lang['add']['password'] = 'Wachtwoord';
$lang['add']['password_repeat'] = 'Herhaal wachtwoord';
$lang['add']['restart_sogo_hint'] = 'SOGo dient opnieuw opgestart te worden nadat een domein is toegevoegd';
$lang['add']['goto_null'] = 'Houd e-mail achterwege';
+$lang['add']['goto_ham'] = 'Leer als ham';
+$lang['add']['goto_spam'] = 'Leer als spam';
$lang['add']['validation_success'] = 'Succesvol gevalideerd';
$lang['add']['activate_filter_warn'] = 'Alle overige filters zullen worden gedeactiveerd zodra deze geactiveerd.';
$lang['add']['validate'] = 'Valideer';
@@ -510,10 +569,12 @@ $lang['success']['app_links'] = "Wijzigingen aan app links zijn opgeslagen";
$lang['success']['ui_texts'] = "Wijzigingen aan UI-labels zijn opgeslagen";
$lang['success']['reset_main_logo'] = "Het standaardlogo is hersteld";
$lang['success']['items_released'] = "Geselecteerde onderdelen zijn vrijgegeven";
+$lang['success']['item_released'] = "Onderdeel %s vrijgegeven";
$lang['danger']['imagick_exception'] = "Error: Er is een probleem opgetreden met Imagick tijdens het lezen van de afbeelding";
$lang['quarantine']['quarantine'] = "Quarantaine";
-$lang['quarantine']['qinfo'] = "Het quarantainesysteem slaat geweigerde e-mail op, terwijl het voor de afzender als niet ontvangen bestempeld is.";
+$lang['quarantine']['learn_spam_delete'] = "Onthoud als spam en verwijder";
+$lang['quarantine']['qinfo'] = 'Het quarantainesysteem slaat geweigerde e-mail op, terwijl het voor de afzender als niet ontvangen bestempeld is.
"' . $lang['quarantine']['learn_spam_delete'] . '" traint het systeem om toekomstige soortgelijke e-mails direct als spam te classificeren.
Wees er van bewust dat wanneer er meerdere berichten worden onderzocht, dit mogelijk enige tijd kan duren.';
$lang['quarantine']['release'] = "Vrijgeven";
$lang['quarantine']['empty'] = 'Geen resultaten';
$lang['quarantine']['toggle_all'] = 'Selecteer alles';
@@ -531,20 +592,32 @@ $lang['quarantine']['subj'] = "Onderwerp";
$lang['quarantine']['text_plain_content'] = "Inhoud (tekst)";
$lang['quarantine']['text_from_html_content'] = "Inhoud (geconverteerde html)";
$lang['quarantine']['atts'] = "Bijlagen";
+$lang['danger']['fuzzy_learn_error'] = "Fuzzy hash training-fout: %s";
+$lang['danger']['spam_learn_error'] = "Spamtraining-fout: %s";
+$lang['success']['qlearn_spam'] = "Bericht %s werd als spam geclassificeerd en is verwijderd";
$lang['header']['quarantine'] = "Quarantaine";
$lang['header']['debug'] = "Debug";
+$lang['debug']['log_info'] = '
Mailcow in-geheugen logs worden verzameld in Redis-lijsten en worden elke minuut bijgesneden naar LOG_LINES (%d) om de stabiliteit te garanderen.
Logs in-geheugen zijn niet bedoeld om te blijven staan. Alle applicaties die in-geheugen loggen, worden ook naar het Docker-proces gelogd.
De in-geheugen logs zouden gebruikt moeten worden voor het oplossen van kleine problemen met containers.
Externe logs worden verzameld doormiddel van de API van de applicaties.
Statische logs zijn over het algemeen activiteitenlogs, die niet naar het Docker-proces worden gestuurd
'; + +$lang['debug']['in_memory_logs'] = 'Logs in-geheugen'; +$lang['debug']['external_logs'] = 'Externe logs'; +$lang['debug']['static_logs'] = 'Statische logs'; + $lang['quarantine']['release_body'] = "We hebben het oorspronkelijke bericht als eml-bestand meegestuurd."; $lang['danger']['release_send_failed'] = "Het volgende bericht kon niet worden vrijgegeven: %s"; $lang['quarantine']['release_subject'] = "Mogelijk schadelijk quarantaine-item %s"; +$lang['mailbox']['bcc_map'] = "BCC-kaart"; $lang['mailbox']['bcc_map_type'] = "BCC-type"; $lang['mailbox']['bcc_type'] = "BCC-type"; $lang['mailbox']['bcc_sender_map'] = "Afzenderkaarten"; $lang['mailbox']['bcc_rcpt_map'] = "Ontvangerkaarten"; $lang['mailbox']['bcc_local_dest'] = "Lokale bestemming"; -$lang['mailbox']['bcc_destinations'] = "BCC bestemming(en)"; +$lang['mailbox']['bcc_destinations'] = "BCC-bestemmingen"; +$lang['mailbox']['bcc_destination'] = "BCC-bestemming"; +$lang['edit']['bcc_dest_format'] = 'Een BCC-bestemming dient één geldig e-mailadres te zijn.'; $lang['mailbox']['bcc'] = "BCC"; $lang['mailbox']['bcc_maps'] = "BCC-kaarten";