Overslaan naar inhoud

Vertaalde Velden in Odoo: De Complete Gids

Leer hoe Odoo vertaalde velden meertalige gegevens opslaan in de ORM en hoe je ze effectief kunt gebruiken in jouw bedrijf
6 maart 2026 in
Vertaalde Velden in Odoo: De Complete Gids
Dasolo
| Nog geen reacties

Veel Odoo-implementaties bedienen gebruikers of klanten in meer dan één taal. Een Frans verkoopteam, een Duits magazijn, een Spaanse klantenportaal. Om dit alles naadloos te laten werken, heeft Odoo een manier nodig om veldwaarden in meerdere talen tegelijk op te slaan. Dat is precies wat vertaalde velden doen.


Een vertaald veld bevat één waarde per taal. Wanneer een Franse gebruiker een productrecord opent, ziet hij de Franse productnaam. Wanneer een Duitse gebruiker hetzelfde record opent, ziet hij de Duitse naam. Eén record in de database, meerdere weergaven afhankelijk van wie kijkt.

Deze gids legt uit hoe vertaalde velden werken in de Odoo ORM, hoe je ze kunt maken en beheren, en de praktische situaties waarin ze een echt verschil maken in de manier waarop jouw bedrijf opereert.

Wat is een vertaald veld in Odoo


Een vertaald veld is een tekstgebaseerd veld in het Odoo-datamodel dat een verschillende waarde voor elke actieve taal in het systeem kan opslaan. De vertaling is transparant voor de gebruiker: zij zien altijd de waarde in hun eigen taal zonder iets bijzonders te hoeven doen.


Wat betreft Odoo-veldtypes, wordt vertaling ondersteund op:

  • Char: korte enkele-regel tekst (productnamen, categorielabels, functietitels)
  • Text: langere meer-regel tekst (beschrijvingen, notities)
  • Html: rijke tekst met HTML-markup (website-inhoud, e-mailtemplate-lichamen)

Numerieke velden, datumvelden, Many2one-velden en boolean-velden kunnen niet worden vertaald. Vertaling is alleen van toepassing op velden die leesbare tekst bevatten.


Hoe het eruit ziet in de interface

Wanneer een vertaald veld actief is in Odoo, verschijnt er een klein taalvlagpictogram naast het veld in de bewerkingsmodus. Door erop te klikken opent een dialoogvenster dat de waarde voor elke geïnstalleerde taal toont, waardoor geautoriseerde gebruikers alle vertalingen vanuit één plek kunnen beheren.


In de leesmodus ziet de gebruiker eenvoudig de waarde in zijn eigen taal. Als er nog geen vertaling is ingesteld voor hun taal, valt Odoo terug op de basiswaarde (meestal Engels) in plaats van een leeg veld te tonen.

Hoe het vertaald veld werkt


Het begrijpen van de interne werking van vertaald velden helpt je betere beslissingen te nemen over wanneer je ze moet gebruiken en hoe je ze op grote schaal kunt beheren.


De translate=True Parameter

In de Odoo ORM schakel je vertaling in voor een veld door translate=True toe te voegen aan de velddefinitie. Hier is een eenvoudig voorbeeld van een aangepast Char-veld:

from odoo import models, fields

class ProductTemplate(models.Model):
    _inherit = 'product.template'

    x_marketing_tagline = fields.Char(
        string='Marketing Tagline',
        translate=True
    )

Met deze enkele parameter weet Odoo verschillende waarden voor dit veld op te slaan en op te halen, afhankelijk van de actieve taalsituatie. Dit is een van de meest elegante functies in het Odoo-framework.


Waar vertalingen worden opgeslagen

Het opslagmechanisme is veranderd tussen Odoo-versies:

  • Odoo 15 en eerder: Vertalingen werden opgeslagen in een aparte ir.translation tabel. Elke vertaalde waarde was een rij in die tabel, gekoppeld aan het model, de veldnaam, het record-ID en de taalcodes.
  • Odoo 16 en later: Vertalingen worden direct opgeslagen in de eigen database tabel van het model als een JSONB-kolom. Bijvoorbeeld, een name veld met translate=True wordt opgeslagen als een JSON-object zoals {"en_US": "Laptop Stand", "fr_FR": "Support pour ordinateur portable", "de_DE": "Laptopständer"}.

De overstap naar JSONB in Odoo 16 was een aanzienlijke verbetering. Het elimineert dure joins met de vertalingstabel en maakt het opvragen veel sneller, vooral bij modellen met veel records.


Hoe taalkontekst werkt

Wanneer Odoo een vertaald veld leest, controleert het de actieve taal in de context. Als je bent ingelogd als een Franse gebruiker, haalt de ORM automatisch de Franse waarde op. Als je een API-aanroep doet, controleer je de taal door deze in de context door te geven:

models.execute_kw(
    ODOO_DB, uid, ODOO_API_KEY,
    'product.template', 'read',
    [[product_id]],
    {'fields': ['name'], 'context': {'lang': 'fr_FR'}}
)

Dit is belangrijk bij het bouwen van integraties of exportscripts. Geef altijd de juiste taal in de context door om de juiste vertaalde waarde te krijgen.


De translate-parameter met een callable

De translate parameter accepteert ook een callable voor geavanceerde gebruikssituaties. Het meest voorkomende voorbeeld is het gebruik van translate=_ om statische stringwaarden (zoals selectielabels) te markeren voor vertaling via het standaard Odoo vertaalexportmechanisme. Dit is distinct van recordniveau veldvertalingen en wordt voornamelijk gebruikt in Odoo-ontwikkeling voor het vertalen van module-strings.


Fallback-gedrag

Als er geen vertaling is ingesteld voor de actieve taal, retourneert Odoo geen lege waarde. Het valt terug op de basis taal van de database (typisch Engels). Deze elegante terugval betekent dat uw gebruikers altijd iets betekenisvols zien, zelfs in gedeeltelijk vertaalde omgevingen.

Zakelijke gebruikscases


Vertaalde velden zijn niet alleen een technische functie. Ze lossen echte problemen op die zich voordoen in bedrijven die over verschillende talen opereren. Hier zijn vijf veelvoorkomende scenario's.


1. E-commerce: Meertalige Productnamen en Beschrijvingen

Als u verkoopt via de Odoo-website of -winkel, verwachten uw klanten in hun eigen taal te kunnen bladeren. De name en description velden op product.template zijn standaard vertaalbaar. Dit betekent dat u een enkele productcatalogus kunt onderhouden en gelokaliseerde namen, verkoopargumenten en technische specificaties kunt bieden zonder records te dupliceren.

Een klant die uw Franse website bezoekt, ziet Franse productnamen en Franse beschrijvingen. Het onderliggende product is hetzelfde, de voorraadniveaus zijn hetzelfde, de prijsregels zijn hetzelfde. Alleen de weergegeven tekst verandert.


2. E-mailtemplates in Meertalige Bedrijven

Odoo's e-mailtemplates gebruiken vertaalde Html-velden voor hun inhoud. Wanneer u een orderbevestiging naar een Duitse klant stuurt, gebruikt Odoo automatisch de Duitse versie van de template-inhoud als deze is ingesteld. Dit werkt omdat de template-velden translate=True hebben.


Voor bedrijven met klanten in meerdere landen betekent dit dat een enkele template alle markten schoon kan bedienen zonder voorwaardelijke logica of aparte template-records per taal.


3. Webpagina's en Bloginhoud

Odoo-webpagina's gebruiken vertaalbare Html-velden voor hun inhoud. Wanneer uw website meerdere talen heeft geactiveerd, kunnen redacteuren verschillende teksten onderhouden voor elke taalkundige versie van dezelfde pagina. Dit is hoe meertalige Odoo-websites van nature werken, zonder enige derde partij plugin.


Vanuit een SEO-perspectief betekent dit ook dat elke taalkundige versie van de pagina zijn eigen meta titel en meta beschrijving kan hebben, wat u helpt om te ranken in lokale zoekresultaten in verschillende markten.


4. Selectievaklabel voor Internationale Teams

Wanneer je een Selectieveld definieert in Odoo Python-code, kunnen de optie-labels gemarkeerd worden voor vertaling met behulp van de standaard _ vertaalfunctie. Dit betekent dat een dropdown die "In Behandeling", "In Afwachting" en "Voltooid" toont aan een Engelse gebruiker, de correct vertaalde equivalenten zal tonen aan gebruikers in andere talen.


Dit is vooral nuttig in HR, projectmanagement en elke workflow waarbij teams in verschillende kantoren met dezelfde records moeten werken, maar in hun eigen taal.


5. Aangepaste Velden in Meertalige Rapportage

Als je aangepaste velden hebt gemaakt met behulp van Odoo-aanpassingen of Odoo Studio-velden voor interne categorisering (dienstcategorieën, risiconiveaus, productsegmenten), zorgt het vertaalbaar maken van die velden ervoor dat rapporten en dashboards correct worden weergegeven voor alle gebruikers, ongeacht hun taalinstelling.


Zonder vertaling op deze velden, kan een Franse gebruiker Engelse labels in hun rapporten zien, wat verwarring creëert en de adoptie vermindert.

Vertaalde velden maken of aanpassen


Er zijn een paar manieren om vertaling op een veld in Odoo te creëren of in te schakelen, afhankelijk van of je in een no-code omgeving werkt of direct in Python.


Gebruik Python (Aanbevolen voor Ontwikkelaars)

De schoonste manier om een vertaald veld in de Odoo ORM te creëren, is door het te definiëren in een Python-model met translate=True. Dit is de standaardaanpak in elke Odoo-ontwikkelaarsgids of Odoo technische tutorial:


from odoo import models, fields

class ProductTemplate(models.Model):
    _inherit = 'product.template'

    x_product_highlight = fields.Char(
        string='Product Highlight',
        translate=True
    )

    x_product_note = fields.Html(
        string='Product Note',
        translate=True
    )

Het toevoegen van translate=True is alles wat nodig is. Vanaf dat moment regelt Odoo alles: de taalvlag in de UI, de vertaalopslag, de fallback-logica.


Gebruik Odoo Studio Velden

Odoo Studio stelt de translate optie niet bloot in zijn veldconfiguratiepaneel. Wanneer je een Char of Text-veld in Studio maakt, is het standaard niet vertaalbaar.


U kunt echter vertaling inschakelen voor een Studio-veld via de XML-RPC API nadat het is aangemaakt. Zoek de ID van het veld in ir.model.fields en werk de translate eigenschap bij:


# Zoek het Studio-veld
field = models.execute_kw(
    ODOO_DB, uid, ODOO_API_KEY,
    'ir.model.fields', 'search_read',
    [[[('name', '=', 'x_my_field'), ('model', '=', 'product.template')]]],
    {'fields': ['id', 'name', 'translate']}
)[0]

# Schakel vertaling in
models.execute_kw(
    ODOO_DB, uid, ODOO_API_KEY,
    'ir.model.fields', 'write',
    [[field['id']], {'translate': True}]
)

Deze aanpak werkt goed voor teams die Odoo-aanpassingen doen via scripts of notebooks zonder toegang tot de broncode.


Beheer van vertalingen: Exporteren en importeren

Zodra de vertaalde velden zijn ingesteld, is de vertaalworkflow in Odoo eenvoudig:


  1. Ga naar Instellingen > Vertalingen > Exporteren Vertaling om een .po of .csv-bestand te downloaden met alle niet-vertaalde strings voor een bepaalde taal.
  2. Vul de vertalingen in het bestand in (of stuur het naar een vertaler).
  3. Ga naar Instellingen > Vertalingen > Importeren Vertaling om het voltooide bestand weer in Odoo te uploaden.

Voor recordniveau vertalingen (zoals productnamen) kunt u ze ook rechtstreeks in de interface bewerken met het taalvlagpictogram naast het veld. Dit is praktischer voor kleine hoeveelheden inhoud.


Vertalen via de API

Bij het schrijven of bijwerken van een vertaald veld via de XML-RPC API, geef de taal door in de context:


# Schrijf de Franse vertaling voor een productnaam
models.execute_kw(
    ODOO_DB, uid, ODOO_API_KEY,
    'product.template', 'write',
    [[product_id], {'name': 'Ordinateur Portable Ultra'}],
    {'context': {'lang': 'fr_FR'}}
)

Schrijven met een specifieke taal in de context werkt alleen de vertaling van die taal bij. Andere taalwaarden blijven onaangeroerd. Dit is de schone manier om vertaalde inhoud van een extern systeem naar Odoo te pushen.

Beste praktijken


Vertaalde velden zijn eenvoudig wanneer ze correct worden gebruikt, maar een paar gewoonten zullen je veel tijd en verwarring besparen.


Stel Altijd Eerst de Basis Taalwaarde In

Voordat je vertalingen voor andere talen toevoegt, zorg ervoor dat de basis taalwaarde correct en compleet is. Alle andere vertalingen zijn afgeleid van deze basis. Als je de basiswaarde later wijzigt, worden de andere vertalingen niet automatisch bijgewerkt en zullen ze niet meer synchroon lopen.


Vertaal Alleen Velden Die Het Echt Nodig Hebben

Niet elk tekstveld hoeft vertaalbaar te zijn. Interne referentiecodes, technische identificatoren en velden die alleen zichtbaar zijn voor backoffice personeel in een eentalig bedrijf profiteren niet van vertaling. Het toevoegen van translate=True aan te veel velden verhoogt de complexiteit en de hoeveelheid vertalingen die onderhouden moeten worden.


Gebruik de Export/Import Workflow voor Grote Vertaalopdrachten

Voor grote catalogi (honderden of duizenden producten) is het onpraktisch om vertalingen één voor één in de interface te bewerken. Gebruik de exportfunctie voor vertalingen om een bestand te genereren, vertaal in bulk en importeer het weer terug. Dit is veel sneller en minder foutgevoelig.


Geef de Taalcontext Door in Alle API-aanroepen

Wanneer je vertaalde velden leest of schrijft via de Odoo API, geef altijd 'lang': 'xx_XX' door in de context. Zonder dit valt de API terug op de taal van de gebruiker, wat misschien niet is wat je bedoelt. Expliciet zijn voorkomt subtiele bugs waarbij gegevens onder de verkeerde taal worden opgeslagen.


Onderhoud Vertalingen Wanneer de Bron Verandert

Wanneer je de basis taalwaarde van een vertaald veld bijwerkt, worden de vertalingen in andere talen niet automatisch bijgewerkt. Bouw een beoordelingsproces in je inhoudswerkproces zodat vertalers worden gewaarschuwd wanneer de broninhoud verandert en vertalingen moeten worden bijgewerkt.

Veelvoorkomende valkuilen


Zelfs ervaren Odoo-consultants lopen tegen deze fouten aan. Je bewust zijn van deze fouten van tevoren bespaart je veel debugtijd.


Vergeten de Taalcontext door te Geven bij API Schrijfacties

Dit is de meest voorkomende fout bij het integreren van externe systemen met Odoo. Als je een productnaam via de API schrijft zonder een taal op te geven, schrijft Odoo het in de standaardtaal van de gebruiker. Als die gebruiker toevallig in het Engels is geconfigureerd, maar je wilde de Franse vertaling instellen, heb je de Engelse waarde overschreven. Wees altijd expliciet over de taalcontext.


Aannemen dat Vertaald Velden Gefilterd zijn in Zoekopdrachten

Wanneer je zoekt op een vertaald veld (bijvoorbeeld zoeken naar een product op naam), zoekt Odoo standaard in de actieve taal. Een product genaamd "Laptopstand" in het Engels verschijnt niet in de zoekresultaten als de gebruiker in het Frans is en de Franse vertaling nog niet is ingesteld. Zorg ervoor dat vertalingen aanwezig zijn voordat je verwacht dat zoekopdrachten over talen heen werken.


Vermengen van Vertaald en Niet-Vertaald Tekst in Rapporten

Als een aangepast Odoo-rapport of export een mix van vertaald en niet-vertaald tekstvelden gebruikt, kan de output inconsistent zijn: sommige labels verschijnen in de taal van de gebruiker, andere verschijnen altijd in de brontaal. Controleer je rapportvelden zorgvuldig en beslis van tevoren of elk veld vertaalbaar moet zijn.


Geen Rekening Houden met Vertaaloverhead in Gecalculeerde Velden

Als je een Odoo-gecalculeerd veld hebt dat een string opbouwt uit meerdere vertaald velden, wordt de berekening uitgevoerd in de actieve taal op het moment van de aanvraag. Het resultaat wordt niet automatisch per taal opgeslagen. Als je een gecalculeerde concatenatie van vertaalde waarden in meerdere talen nodig hebt, moet je de taal specifieke berekening expliciet afhandelen.


Een Taal Verwijderen Zonder Vertalingen Schoon te Maken

Wanneer je een taal in Odoo deactiveert of verwijdert, kunnen de vertaalwaarden voor die taal in de database blijven, afhankelijk van je versie. Dit is meestal onschadelijk, maar kan rommel toevoegen. Controleer altijd je vertaalgegevens na het deactiveren van een taal in een productieomgeving.

Conclusie


Vertaald velden zijn een van de meest praktische functies in het Odoo-framework voor bedrijven die in meerdere talen werken. Een enkele parameter, translate=True, ontgrendelt de mogelijkheid om gelokaliseerde inhoud te onderhouden voor productcatalogi, e-mailtemplates, webpagina's en aangepaste velden zonder records te dupliceren of aparte systemen te beheren.


De sleutel is om bewust te zijn van welke velden daadwerkelijk vertaling nodig hebben. Gebruik het waar het een verschil maakt voor uw gebruikers of klanten, beheer vertalingen via de export/import workflow voor schaalbaarheid, en wees altijd expliciet over de taalkontekst bij het werken met de Odoo API.


Of u nu een meertalige e-commerce winkel opzet, Odoo uitrolt naar internationale teams, of Odoo-ontwikkeling doet op een aangepaste module, het begrijpen van vertaalde velden zal u helpen om schonere, gebruiksvriendelijkere oplossingen te bouwen.

Werkt u aan een meertalige Odoo-implementatie en heeft u begeleiding nodig bij veldconfiguratie of vertaalworkflows? Neem contact op met het Dasolo-team en we helpen u graag om het goed te krijgen.

Vertaalde Velden in Odoo: De Complete Gids
Dasolo 6 maart 2026
Deel deze post
Aanmelden om een reactie achter te laten