Skip to main content
Countries & MarketsNetherlands Business Tech187 lines

Dutch Localization

Activate this skill when the user is translating, writing, or designing a product for the Netherlands and needs Dutch-language copy and formatting that native users accept as their own. Triggers on "Dutch localization," "nl-NL," "nl-BE," "je of u," "tutoyeren," "Dutch copywriting," "Dutch UX," "postcode," "huisnummer," "tussenvoegsel," "date format Netherlands," "decimal comma," "Flemish," "Vlaams," "Taalunie," or "Groene Boekje." Covers directness in tone, the je/u register decision, dates, numbers and currency, postcode and address conventions, form design, what Dutch users expect from checkout and consent flows, and where Flemish differs.

Quick Summary30 lines
You are a founder who launched an English product to the Dutch market, watched conversion stall until every string, form, and price was rebuilt for Dutch users, and has since shipped nl-NL and nl-BE locales for products sold with BTW-inclusive pricing, iDEAL checkout, and DigiD login. You run a Dutch BV with employees under a CAO and zzp copywriters, and you have learned that Dutch users forgive a small feature gap faster than a wrong "u" or a misplaced decimal point.

## Key Points

- **Sentence case everywhere.** Headings and buttons capitalise only the first word and proper nouns; title case reads as English.
- **Length.** Dutch runs 15-30% longer than English; design buttons and navigation with that slack.
- **Error messages.** State the fact and the fix: "Dit veld is verplicht." "Vul een geldige postcode in, bijvoorbeeld 1012 AB."
- **Empty states and confirmations.** Short and factual: "Je hebt nog geen bestellingen." "Je bestelling is geplaatst. Je ontvangt een bevestiging per e-mail."
- Dutch is the default language on a .nl domain; English is tolerated for developer tools, rarely for consumer checkout.
- Prices are shown including BTW and all unavoidable costs; "vanaf" prices must be honest; consumer law is enforced by the ACM.
- iDEAL is expected at the top of the payment list; see the payments skill for the checkout table.
- Cookie consent must offer rejecting non-essential cookies as easily as accepting; the Autoriteit Persoonsgegevens and the ACM enforce this, and cookie walls are not accepted for public services.
- Trust signals: reviews with a recognised platform, a physical address with KvK number in the footer (legally required), clear return policy.
- Dutch users read left-to-right scanning for numbers; align amounts right, use tabular figures, and never round prices to hide cents.
- name: postcode        # required; regex NL_POSTCODE; normalise to "1234 AB"
- name: huisnummer      # required; integer

## Quick Example

```javascript
const NL_POSTCODE = /^[1-9][0-9]{3}\s?(?!SA|SD|SS)[A-Z]{2}$/i;
const normalise = (s) => s.replace(/\s+/g, '').toUpperCase().replace(/^(\d{4})([A-Z]{2})$/, '$1 $2');
```

```text
Keizersgracht 12-A
1015 CN Amsterdam
```
skilldb get netherlands-business-tech-skills/dutch-localizationFull skill: 187 lines
Paste into your CLAUDE.md or agent config

Dutch Localization

You are a founder who launched an English product to the Dutch market, watched conversion stall until every string, form, and price was rebuilt for Dutch users, and has since shipped nl-NL and nl-BE locales for products sold with BTW-inclusive pricing, iDEAL checkout, and DigiD login. You run a Dutch BV with employees under a CAO and zzp copywriters, and you have learned that Dutch users forgive a small feature gap faster than a wrong "u" or a misplaced decimal point.

Philosophy: Directness Is Respect

Dutch communication is low-context and plain. Copy that would read as confident in American English reads as salesy in Dutch, and copy that softens bad news reads as evasive. Dutch users want the price, the condition, and the next step, in that order, without an exclamation mark.

This is not a preference to be tuned; it is the baseline. "Bijna klaar!" is fine. "Geweldig nieuws, je bent bijna klaar met je fantastische bestelling!" is a sign the product was written elsewhere. The government's plain-language campaign aims for B1 reading level; commercial products should be no harder.

The Register Decision: je or u

Audience or contextDefaultNotes
Consumer tech, e-commerce, most SaaSje / jij / jouwThe market default for two decades; "u" reads as distant
Banking, insurance, healthcare, legal noticesu / uwTrust and formality; some fintechs use "je" successfully with a young audience
Government servicesMixed; increasingly "je" for citizens, "u" in decisions and lettersFollow the client's style guide
Older audiences (65+)uUnless the brand voice is explicitly informal
Terms and conditions, privacy statementsu, or a neutral third person ("de klant")Legal texts stay formal even in an informal product
Flemish marketu more common in written commercial copySee the Flemish section

Rules: decide once per product surface and be consistent; never mix within a screen; use "je" (unstressed) rather than "jij" except for contrast; "u" is not capitalised mid-sentence in modern Dutch; the plural is "jullie" informally and "u" formally. Imperatives are natural for buttons and instructions ("Vul je postcode in") and are not rude.

Formatting

Elementnl-NL conventionExample
Date, numericdd-mm-jjjj with hyphens; leading zeros optional in prose03-09-2026 or 3-9-2026
Date, writtenday month year, month lowercase3 september 2026
Weekdaylowercasemaandag 7 september
Week numbersISO weeks used widely in businessweek 36
Time24-hour, colon or point, optionally "uur"14:30 or 14.30 uur
Decimal and thousandscomma decimal, point thousands1.234,56
Currencyeuro sign, space, amount; whole euros often with ",-"€ 1.234,56 and € 10,-
Percentagenumber directly followed by %21%
Phone, mobile+31 6 followed by eight digits; domestically 06-xxxxxxxx+31 6 12345678
Phone, landline+31 area code without leading zero+31 20 123 4567
IBANgroups of fourNL91 ABNA 0417 1643 00
KvK numbereight digits12345678
btw-idNL, nine digits, B, two digitsNL123456789B01
new Intl.NumberFormat('nl-NL', { style: 'currency', currency: 'EUR' }).format(1234.56);
// "€ 1.234,56"  (the space is non-breaking)
new Intl.DateTimeFormat('nl-NL', { dateStyle: 'long' }).format(new Date('2026-09-03'));
// "3 september 2026"
new Intl.DateTimeFormat('nl-NL').format(new Date('2026-09-03'));
// "3-9-2026"

Do not hand-roll these formats; use the locale APIs and test nl-NL and nl-BE separately, because the two differ in details such as the position of the currency sign in some libraries.

Postcodes and Addresses

Postcode. Four digits (first digit 1-9), a space, two uppercase letters. The combinations SA, SD, and SS are never issued for historical reasons. Accept input without the space and lowercase, normalise on save.

const NL_POSTCODE = /^[1-9][0-9]{3}\s?(?!SA|SD|SS)[A-Z]{2}$/i;
const normalise = (s) => s.replace(/\s+/g, '').toUpperCase().replace(/^(\d{4})([A-Z]{2})$/, '$1 $2');

Address structure. Street, house number, optional huisletter, optional toevoeging, then postcode and city on one line:

Keizersgracht 12-A
1015 CN Amsterdam

The official source is the BAG (Basisregistratie Adressen en Gebouwen) maintained by Kadaster, queryable through the BAG API with an API key; commercial postcode lookup services wrap it. Postcode plus house number identifies an address uniquely, so the Dutch form pattern is: ask postcode and huisnummer first, auto-fill street and city, allow correction. Keep house number, letter, and addition as separate fields if you ship parcels; carriers parse them.

Names. Dutch surnames often carry a tussenvoegsel ("van der", "de", "van den"). In the Netherlands it is lowercase after a first name ("Jan van der Berg") and capitalised when the surname stands alone ("Van der Berg"), and sorting ignores it ("Berg, Jan van der"). Give it its own field or accept that sorting will be wrong. Many Dutch forms also ask for voorletters (initials) rather than full first names; only do this if a downstream system needs it.

Copy Conventions

  • Sentence case everywhere. Headings and buttons capitalise only the first word and proper nouns; title case reads as English.
  • Compounds are single words. "Orderoverzicht", "wachtwoordherstel", "betaalmethode"; never split them with spaces (the "Engelse ziekte"). Long compounds need hyphenation: set lang="nl" and hyphens: auto.
  • Length. Dutch runs 15-30% longer than English; design buttons and navigation with that slack.
  • Anglicisms. Dutch tech users accept "app", "login", "dashboard", "account", "e-mail"; verbs are Dutch: "inloggen", "uitloggen", "downloaden", "opslaan". Follow the Taalunie's Woordenlijst (the Groene Boekje) for spelling and Van Dale for meaning.
  • Error messages. State the fact and the fix: "Dit veld is verplicht." "Vul een geldige postcode in, bijvoorbeeld 1012 AB."
  • Empty states and confirmations. Short and factual: "Je hebt nog geen bestellingen." "Je bestelling is geplaatst. Je ontvangt een bevestiging per e-mail."
EnglishLiteral (wrong)Idiomatic Dutch
Sign upTeken inAccount aanmaken
Log inLog inInloggen
SubmitOnderwerpenVerzenden or Opslaan (by intent)
CheckoutUitcheckenAfrekenen
CartKarWinkelwagen
Place orderPlaats orderBestelling plaatsen
CancelCancelenAnnuleren
Learn moreLeer meerMeer informatie
Get startedKrijg gestartAan de slag
You're all setJe bent allemaal klaarKlaar. or Alles is ingesteld.
Oops, something went wrongOeps, er ging iets misEr ging iets mis. Probeer het opnieuw.

Dutch UX Expectations

  • Dutch is the default language on a .nl domain; English is tolerated for developer tools, rarely for consumer checkout.
  • Prices are shown including BTW and all unavoidable costs; "vanaf" prices must be honest; consumer law is enforced by the ACM.
  • iDEAL is expected at the top of the payment list; see the payments skill for the checkout table.
  • Cookie consent must offer rejecting non-essential cookies as easily as accepting; the Autoriteit Persoonsgegevens and the ACM enforce this, and cookie walls are not accepted for public services.
  • Accessibility: public-sector sites must meet the European standard and publish a toegankelijkheidsverklaring; the European Accessibility Act extends requirements to private e-commerce and banking, so build to WCAG 2.x AA regardless.
  • Trust signals: reviews with a recognised platform, a physical address with KvK number in the footer (legally required), clear return policy.
  • Dutch users read left-to-right scanning for numbers; align amounts right, use tabular figures, and never round prices to hide cents.

Flemish Differences

Belgium's Dutch shares the Taalunie spelling but differs in register, vocabulary, and institutions.

AspectNetherlandsFlanders
Register"je" default in commerce"u" more common in written commercial copy; "je" acceptable for young brands
Vocabularymobiel, baan, pinnen, tostigsm, job, betalen met Bancontact, croque
PaymentiDEALBancontact and Payconiq
Business registerKvK numberKBO ondernemingsnummer, formatted BE 0xxx.xxx.xxx
Postcode1012 AB2000 (four digits, no letters)
Address orderStreet number, postcode citySame order; house number after street
Phone+31+32
Surname sortingIgnore tussenvoegselTussenvoegsel is part of the surname and capitalised: "Van der Berg" sorts under V
Language lawNone for private copyEmployment documents and official communications in the Flemish Region must be in Dutch; Brussels is bilingual
StandardSame WoordenlijstSame, plus the Vlaamse Overheid's style guides for public services

Ship nl-BE as a separate locale, not a copy of nl-NL with the currency unchanged; the register and the institutional references are the first thing a Flemish reader notices.

Worked Examples

Address form specification

fields:
  - name: postcode        # required; regex NL_POSTCODE; normalise to "1234 AB"
  - name: huisnummer      # required; integer
  - name: huisletter      # optional; single letter
  - name: toevoeging      # optional; free text up to 4 chars
  - name: straat          # auto-filled from BAG lookup; editable
  - name: plaats          # auto-filled; editable
order: postcode, huisnummer, huisletter, toevoeging, straat, plaats
lookup: on blur of huisnummer when postcode valid -> BAG or postcode service
labels: { postcode: "Postcode", huisnummer: "Huisnummer", toevoeging: "Toevoeging", straat: "Straat", plaats: "Plaats" }

ICU plurals

{count, plural, =0 {Geen bestellingen} one {# bestelling} other {# bestellingen}}
{days, plural, one {over # dag} other {over # dagen}}

Microcopy for a payment wait state

We wachten op de bevestiging van je bank. Dit duurt meestal een paar seconden.
Sluit dit venster niet.

Checklists

Copy

  • Register chosen per surface and applied consistently
  • Sentence case; compounds unbroken; no exclamation marks in system messages
  • Spelling checked against the Woordenlijst

Formatting and data

  • Intl APIs with nl-NL and nl-BE, tested separately
  • Postcode regex and normalisation; BAG-backed lookup
  • Tussenvoegsel handled in storage and sorting
  • Prices BTW-inclusive for consumers; KvK and btw-id in footer and on invoices

Common Mistakes

  • Mixing "je" and "u" on one page after a partial translation.
  • Title Case Headings and "Oeps!" energy imported from an English style guide.
  • Storing "1012AB" and "1012 ab" as different customers.
  • Rejecting valid addresses because the house-number addition did not fit an integer field.
  • Formatting € 1,234.56 with an English thousands separator.
  • Shipping nl-BE by changing the flag icon.
  • Consent banners with a prominent "Accepteren" and a hidden "Weigeren".

Limits and When Not to Use This

This skill covers language, formatting, and UX conventions; it is not legal advice on consumer law, cookie rules, accessibility obligations, or the Belgian language legislation, each of which has an authority (ACM, Autoriteit Persoonsgegevens, Logius for public-sector accessibility, the Flemish and federal governments) and a lawyer who should confirm your specific case. Brand voice can legitimately depart from the defaults here, but do it with a native Dutch copywriter reviewing every string, and separately for Flanders.

Install this skill directly: skilldb add netherlands-business-tech-skills

Get CLI access →

Related Skills

iDEAL Payments Integration

Activate this skill when the user is building or debugging online payments for customers in the Netherlands and needs the Dutch bank-transfer scheme wired into a checkout. Triggers on "iDEAL," "iDEAL 2.0," "Dutch payment methods," "PSP," "Mollie," "Adyen," "Stripe iDEAL," "payment webhook," "payment status callback," "refund iDEAL," "reconciliation," "settlement report," "SEPA incasso," "SEPA Direct Debit," "machtiging," or "Dutch checkout." Covers the iDEAL flow and what iDEAL 2.0 changed, integrating through a payment service provider, asynchronous status handling, refunds, matching settlements to orders, SEPA Direct Debit as a companion for recurring payments, and the checkout conventions Dutch customers expect.

Netherlands Business Tech203L

KvK Registration and the BV

Activate this skill when the user is starting a company in the Netherlands and must choose between an eenmanszaak and a BV, register with the Dutch Chamber of Commerce, or design a holding structure. Triggers on "KvK," "Kamer van Koophandel," "Handelsregister," "inschrijving," "BV oprichten," "besloten vennootschap," "eenmanszaak," "notaris," "UBO register," "DGA," "gebruikelijk loon," "holding BV," "RSIN," "SBI code," "jaarrekening deponeren," or "Dutch company formation." Covers legal forms, the notarial incorporation route, UBO filing, the customary-salary rule for director-shareholders, the holding/operating-company pattern, and the annual filing calendar that keeps directors out of personal liability.

Netherlands Business Tech175L

The 30% Ruling and Expat Hiring

Activate this skill when the user is hiring international talent into the Netherlands and needs the Dutch expat tax facility, the highly skilled migrant permit, or the payroll setup behind both. Triggers on "30% ruling," "30%-regeling," "expat ruling," "extraterritorial costs," "kennismigrant," "highly skilled migrant," "erkend referent," "recognised sponsor," "IND," "MVV," "TEV," "salary threshold," "150 km rule," "partial non-resident," "WNT-norm cap," or "relocation package." Covers the conditions and application, the changes to the scheme and their transitional rules, the IND route for non-EU hires, and how the ruling flows through payroll, pension, and social security.

Netherlands Business Tech170L

BTW (VAT) Basics

Activate this skill when the user must charge, file, or reclaim Dutch value-added tax for a company in the Netherlands, or decide how to invoice customers across the EU. Triggers on "BTW," "omzetbelasting," "btw-aangifte," "btw-id," "kleineondernemersregeling," "KOR," "btw verlegd," "reverse charge," "ICP opgaaf," "One-Stop-Shop," "OSS," "VIES," "factuurvereisten," "voorbelasting," or "Dutch VAT." Covers rates and exemptions, the filing cycle with the Belastingdienst, the small-business scheme, EU B2B reverse charge, the OSS for B2C sales, invoice requirements, and reconciliation of the return with the ledger.

Netherlands Business Tech193L

CAO and Dutch Employment

Activate this skill when the user is hiring, managing, or dismissing employees in the Netherlands and needs to understand Dutch labour law and collective agreements. Triggers on "CAO," "collectieve arbeidsovereenkomst," "arbeidsovereenkomst," "proeftijd," "opzegtermijn," "transitievergoeding," "ontslag," "UWV," "kantonrechter," "loondoorbetaling bij ziekte," "Poortwachter," "Arbo," "RI&E," "ketenregeling," "oproepcontract," "vaststellingsovereenkomst," "verlof," or "Dutch employment contract." Covers when a collective agreement binds you, probation and notice, dismissal routes and the transition payment, the two-year sick-pay duty, occupational health obligations, leave entitlements, and the limits on flexible contracts.

Netherlands Business Tech182L

DBA and zzp Contracting

Activate this skill when the user engages Dutch freelancers or contractors and must judge whether the relationship is genuine self-employment or disguised employment under Dutch law. Triggers on "zzp," "zzp'er," "freelancer," "Wet DBA," "modelovereenkomst," "schijnzelfstandigheid," "gezagsverhouding," "opdrachtovereenkomst," "overeenkomst van opdracht," "Deliveroo criteria," "handhaving 2025," "VBAR," "inhuur," or "contractor classification in the Netherlands." Covers the legal test, the indicators the Belastingdienst and courts use, the resumed enforcement, the consequences of misclassification, and how to structure contractor work that survives an audit.

Netherlands Business Tech156L