Skip to content

fix(nl): correct mistranslations and standardise terminology#614

Merged
daftspunk merged 1 commit intorainlab:masterfrom
chocolata:fix-nl-translations
May 6, 2026
Merged

fix(nl): correct mistranslations and standardise terminology#614
daftspunk merged 1 commit intorainlab:masterfrom
chocolata:fix-nl-translations

Conversation

@chocolata
Copy link
Copy Markdown

PR description — lang/nl.json cleanup

Summary

Corrects 68 Dutch translations in lang/nl.json. The file currently contains a mix of:

  • Auto-translation failures (e.g. Join Date → "Sluit je bij ons aan" — translates "join" as the verb)
  • Reversed meanings (Unbanned → "Deblokkering opgeheven" actually means re-blocked; Banned → "Verboden" means forbidden, not banned)
  • Untranslated entries (Back to users list was left in English)
  • Duplicated/typo'd words (Minimum password length required for users had "wachtwoordlengte lengte")
  • Inconsistent addressing (mix of je/u)
  • Inconsistent verb form (mix of "Beheer X" / "X beheren")
  • Broken compound nouns (Bulk acties should be Bulkacties, Inlog attribuutInlogattribuut)

This PR standardises on:

  • Formal "u" addressing consistently
  • Infinitive verb-noun pattern for actions and toggles (e.g. "Wachtwoord resetten", "Cijfer vereisen")
  • Proper Dutch compound nouns without spaces or stray capitals

Highlights of changes

Critical fixes (factually wrong)

EN Was Now
Join Date Sluit je bij ons aan Aanmelddatum
Groups Groep (singular!) Groepen
Banned Verboden Geblokkeerd
Unbanned Deblokkering opgeheven (opposite!) Gedeblokkeerd
Impersonation Imitatie Inloggen als
Back to users list (untranslated) Terug naar gebruikerslijst
Minimum password length required for users Minimale wachtwoordlengte lengte voor gebruikers Minimale wachtwoordlengte voor gebruikers
Activity Activiteiten (plural) Activiteit
User Settings Instellingen Gebruikersinstellingen
Last IP Address / Created IP Address …IP-address …IP-adres
Prevent Concurrent Sessions "…sessies " (trailing space) "…sessies"

Password policy block (consistency)

Standardised the Require X toggle labels into a uniform "X vereisen" pattern:

EN Was Now
Require Number Verplicht Nummer Cijfer vereisen
Require at least one number Verplicht minstens één nummer Minstens één cijfer vereisen
Require Special Character Verplicht speciale tekens Speciaal teken vereisen
Require at least one non-alphanumeric character Verplicht minstens een speciaal teken Minstens één speciaal teken vereisen
Require Mixed Case Verplicht een mix van hoofd en kleine letters Hoofd- en kleine letters vereisen
Require at least one uppercase and lowercase letter Verplicht tenminste één hoofdletter en één kleine letter Minstens één hoofdletter en kleine letter vereisen
Require Uncompromised Geen gevaarlijke wachtwoorden Niet-uitgelekt wachtwoord vereisen
Ask the user on login Vraag de gebruiker bij het inloggen Gebruiker vragen bij inloggen

Note: "Cijfer" replaces "Nummer" — cijfer is the correct Dutch word for digit, while nummer means a number sequence (phone number, house number).

Infinitive verb consistency for actions

Mixed imperative/infinitive forms harmonised to infinitive (Dutch UI convention):

EN Was Now
Manage Users Beheer Gebruikers Gebruikers beheren
Manage Groups Beheer groepen Groepen beheren
Manage User Groups Beheer Groepen Gebruikersgroepen beheren
Manage Timelines Beheer Tijdlijnen Tijdlijnen beheren
Edit User Group Wijzig groep Gebruikersgroep wijzigen
Create User Group Groep aanmaken Gebruikersgroep aanmaken
Reset Password Reset wachtwoord Wachtwoord resetten
Password Confirmation Herhaal wachtwoord Wachtwoord bevestigen
Prevent Concurrent Sessions Voorkom gelijktijdige sessies Gelijktijdige sessies voorkomen
Remember Login Mode Onthoud inlogmodus Inlogmodus onthouden
Unban this user Deblokkeer deze gebruiker Deze gebruiker deblokkeren
Notify User Stuur gebruikers een notificatie Gebruiker notificeren
Notify Administrators Stuur Beheerders een notificatie Beheerders notificeren

Formal "u" addressing

Several entries used informal "je" — corrected to "u":

EN Was Now
Do you really want to unban this user? Wil je deze gebruiker echt deblokkeren? Weet u zeker dat u deze gebruiker wilt deblokkeren?
You are now impersonating this user Je bent nu ingelogd als deze gebruiker U bent nu ingelogd als deze gebruiker
You are no longer impersonating a user. Je doet je niet langer voor als een gebruiker. U bent niet langer ingelogd als een andere gebruiker.
Enter a unique code used to identify this group. Voer een unieke code in als je deze groep wilt gebruiken met de API.* Voer een unieke code in om deze groep te identificeren.

*The original also added an invented "API" context not present in the source string.

Compound noun fixes

EN Was Now
Bulk actions Bulk acties Bulkacties
Activity Log Activiteiten Logboek Activiteitenlogboek
User Message Template Gebruikers Bericht Sjabloon Gebruikersberichtsjabloon
System Message Template Systeem Bericht Sjabloon Systeemberichtsjabloon
Login Attribute Inlog attribuut Inlogattribuut
Notify Admin Group Beheer groep Voor Notificatie Beheerdersgroep voor notificaties

Capitalisation fixes (column headers)

Title-Case was used inconsistently in column header strings — corrected to Dutch sentence-case:

EN Was Now
Created At Aangemaakt Op Aangemaakt op
Updated At Bijgewerkt Op Bijgewerkt op

Verb-tense fixes

Two strings used past-participle "bevestigd" where present-tense "bevestigt" is correct:

EN Was Now
Send a welcome message to the user when they confirm their email address. …als een gebruiker zijn e-mailadres bevestigd. …wanneer een gebruiker zijn e-mailadres bevestigt.
Notify administrators when a new user confirms their email. …als een nieuwe gebruiker zijn e-mailadres bevestigd. …wanneer een nieuwe gebruiker zijn e-mailadres bevestigt.

Other accuracy fixes

EN Was (problem) Now
To reset this users password, enter a new password here. "this user's" context dropped Restored: "het wachtwoord van deze gebruiker"
User has been activated "Gebruikersaccount succesvol geactiveerd!" (adds "succesvol" + exclamation, not in source; not parallel with "User has been banned" → "Gebruiker is geblokkeerd") Gebruiker is geactiveerd
Status Toestand (condition/state, not UI status) Status
Last Seen Laatste login (not what source says) Laatst gezien
Select what primary user detail should be used for signing in. "wat" (spoken Dutch) "dat" (written Dutch)
User management form. Gebruikersaccount formulier (broken compound) Formulier voor gebruikersbeheer.
Manage user authentication, registration and activation settings. "Beheer de instellingen voor gebruikers." (loses three of three concrete topics) "Beheer de authenticatie-, registratie- en activatie-instellingen voor gebruikers."
Convert Guest User "converteren" (loanword) "omzetten" (matches existing "Omzetten naar geregistreerde gebruiker" in same file)

Stats

  • 188 total entries in file
  • 68 entries modified
  • 120 entries left unchanged
  • No keys added or removed

Substantial cleanup of the Dutch translations in lang/nl.json. The current
file contains a mix of auto-translation failures, reversed meanings,
untranslated entries, broken compound nouns, and inconsistent addressing.
This commit corrects 68 entries while preserving the file structure.

Highlights:

- Auto-translate failures fixed:
  * "Join Date" was "Sluit je bij ons aan" (translates 'join' as verb,
    yielding 'join us!') → "Aanmelddatum"
  * "Back to users list" was untranslated (literal English) → "Terug
    naar gebruikerslijst"

- Reversed meanings fixed:
  * "Banned" was "Verboden" (= 'forbidden') → "Geblokkeerd"
  * "Unbanned" was "Deblokkering opgeheven" (= 're-blocked', opposite
    of intent!) → "Gedeblokkeerd"
  * "Impersonation" was "Imitatie" (= 'imitation/fake') → "Inloggen als"

- Singular/plural fixes:
  * "Groups" was "Groep" (singular) → "Groepen"
  * "Activity" was "Activiteiten" (plural) → "Activiteit"

- Duplicated word fixed:
  * "Minimum password length required for users" had "wachtwoordlengte
    lengte" (duplicated) → "Minimale wachtwoordlengte voor gebruikers"

- Compound nouns and capitalisation:
  * "Bulk acties" → "Bulkacties"
  * "Inlog attribuut" → "Inlogattribuut"
  * "Activiteiten Logboek" → "Activiteitenlogboek"
  * "Gebruikers Bericht Sjabloon" → "Gebruikersberichtsjabloon"
  * "Aangemaakt Op" / "Bijgewerkt Op" → "Aangemaakt op" /
    "Bijgewerkt op" (Dutch sentence case)

- Trailing whitespace fix:
  * "Voorkom gelijktijdige sessies " (trailing space) → trimmed

- Verb-tense fix:
  * Two strings used past-participle 'bevestigd' where present-tense
    'bevestigt' is correct.

- Address typo fix:
  * "IP-address" (English) → "IP-adres" (Dutch) in two entries

- Standardised the password policy block on a uniform 'X vereisen'
  pattern:
  * "Verplicht Nummer" → "Cijfer vereisen" (cijfer = digit; nummer =
    number sequence, wrong word)
  * "Verplicht minstens één nummer" → "Minstens één cijfer vereisen"
  * "Verplicht speciale tekens" → "Speciaal teken vereisen"
  * "Verplicht minstens een speciaal teken" → "Minstens één speciaal
    teken vereisen"
  * "Verplicht een mix van hoofd en kleine letters" → "Hoofd- en
    kleine letters vereisen"
  * "Verplicht tenminste één hoofdletter en één kleine letter" →
    "Minstens één hoofdletter en kleine letter vereisen"
  * "Geen gevaarlijke wachtwoorden" → "Niet-uitgelekt wachtwoord
    vereisen"
  * "Vraag de gebruiker bij het inloggen" → "Gebruiker vragen bij
    inloggen"

- Standardised infinitive verb form for actions (Dutch UI convention):
  * "Beheer Gebruikers" → "Gebruikers beheren"
  * "Beheer groepen" → "Groepen beheren"
  * "Beheer Groepen" → "Gebruikersgroepen beheren"
  * "Wijzig groep" → "Gebruikersgroep wijzigen"
  * "Reset wachtwoord" → "Wachtwoord resetten"
  * "Herhaal wachtwoord" → "Wachtwoord bevestigen"
  * "Voorkom gelijktijdige sessies" → "Gelijktijdige sessies voorkomen"
  * "Onthoud inlogmodus" → "Inlogmodus onthouden"
  * "Stuur gebruikers een notificatie" → "Gebruiker notificeren"
  * "Stuur Beheerders een notificatie" → "Beheerders notificeren"

- Standardised on formal 'u' addressing throughout (the file mixed 'u'
  and 'je').

No keys added or removed; file structure (line count, key set) unchanged.
68 of 188 entries modified.
@daftspunk daftspunk merged commit bb79a20 into rainlab:master May 6, 2026
3 checks passed
@daftspunk
Copy link
Copy Markdown
Member

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants