---
title: "Vertalingen & i18n"
space: "Frappe Framework"
url: "https://www.prilk.com/nl/docs/frappe-framework/vertalingen"
updated: "2026-05-14"
---

## Vertalingen & i18n

Frappe is meertalig op frameworkniveau — strings omhuld met `_()` (server) of `__()` (client) worden vertaald op basis van de taal van de gebruiker.

### Taal van een gebruiker instellen
**User → Language** kiest de voorkeurstaal. Het desk rendert daarin. Elke gebruiker heeft zijn eigen instelling.

### Waar talen leven

| Plek | Wat |
|---|---|
| **Language-DocType** | ISO-codes en labels (en, nl, de, fr, …) |
| **System Settings → Language** | Site-brede default voor Guest-bezoekers |
| **Translation-DocType** | Per-string overrides voor deze site |

### Ingebouwde vertalingen
Frappe en ERPNext leveren vertalingen via [Crowdin](https://crowdin.com/project/frappe). Nederlandse (`nl`) dekking is sterk; minder courante talen variëren.

### Eigen vertalingen
Om een label site-breed te overriden: open **Translation → New**:
- **Source Text**: "Sales Invoice"
- **Translated Text**: "Klantorder" (of uw eigen term)
- **Language**: nl

Het desk gebruikt uw override direct voor de gekozen taal. Handig bij branche-specifieke terminologie ("Klus" in plaats van "Project", "Patiënt" in plaats van "Klant").

### Eigen app vertalen
In Python: omhul gebruikersstrings met `_("Mijn tekst")`. In JS: gebruik `__("Mijn tekst")`. Vervolgens:

```bash
bench --site mysite generate-translations  # extractie naar CSV
# vertaal de CSV
bench --site mysite import-translations    # weer importeren
```

### Documentinhoud
Het vertaalsysteem geldt voor **UI-strings** — niet voor documentinhoud. Voor meertalige klant-output (facturen in NL vs EN): gebruik het `language`-veld op Customer / Print Format / Email Template.
