Skip to Content

Oversatte Felter i Odoo: Den Ultimative Guide

Lær hvordan Odoo oversatte felter gemmer flersproget data i ORM'en, og hvordan du effektivt kan bruge dem i din virksomhed
6. marts 2026 af
Oversatte Felter i Odoo: Den Ultimative Guide
Dasolo
| Ingen kommentarer endnu

Mange Odoo-implementeringer betjener brugere eller kunder på tværs af mere end ét sprog. Et fransk salgsteam, et tysk lager, en spansk kundeportal. For at alt dette kan fungere problemfrit, har Odoo brug for en måde at gemme feltværdier på flere sprog på én gang. Det er præcis, hvad oversatte felter gør.


Et oversat felt indeholder én værdi pr. sprog. Når en fransk bruger åbner en produktpost, ser de det franske produktnavn. Når en tysk bruger åbner den samme post, ser de det tyske navn. Én post i databasen, flere repræsentationer afhængigt af, hvem der kigger.

Denne guide forklarer, hvordan oversatte felter fungerer i Odoo ORM, hvordan man opretter og administrerer dem, og de praktiske situationer, hvor de gør en reel forskel i, hvordan din virksomhed fungerer.

Hvad er et oversat felt i Odoo


Et oversat felt er et tekstbaseret felt i Odoo-datamodellen, der kan gemme en forskellig værdi for hvert aktivt sprog i systemet. Oversættelsen er gennemsigtig for brugeren: de ser altid værdien på deres eget sprog uden at skulle gøre noget særligt.


Med hensyn til Odoo-felt typer understøttes oversættelse på:

  • Char: kort tekst på en enkelt linje (produktnavne, kategorimærker, jobtitler)
  • Text: længere tekst på flere linjer (beskrivelser, noter)
  • Html: rigt tekst med HTML-markup (webindhold, e-mail skabelonindhold)

Numeriske felter, datofelter, Many2one felter og booleske felter kan ikke oversættes. Oversættelse gælder kun for felter, der indeholder menneskelæselig tekst.


Sådan ser det ud i brugergrænsefladen

Når et oversat felt er aktivt i Odoo, vises et lille sprogflag ikon ved siden af feltet i redigeringstilstand. Klik på det for at åbne en dialog, der viser værdien for hvert installeret sprog, så autoriserede brugere kan administrere alle oversættelser fra ét sted.


I læsetilstand ser brugeren blot værdien på deres eget sprog. Hvis der endnu ikke er blevet indstillet nogen oversættelse for deres sprog, falder Odoo tilbage til basis sprog værdien (normalt engelsk) i stedet for at vise et tomt felt.

Hvordan det oversatte felt fungerer


At forstå de indre funktioner af oversatte felter hjælper dig med at træffe bedre beslutninger om, hvornår du skal bruge dem, og hvordan du skal administrere dem i stor skala.


Parameteren translate=True

I Odoo ORM aktiverer du oversættelse på et felt ved at tilføje translate=True til feltdefinitionen. Her er et simpelt eksempel på et brugerdefineret Char-felt:

from odoo import models, fields

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

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

Med denne enkelt parameter ved Odoo at gemme og hente forskellige værdier for dette felt afhængigt af den aktive sprogkontekst. Dette er en af de mest elegante funktioner i Odoo-rammen.


Hvor oversættelser opbevares

Lagringsmekanismen har ændret sig på tværs af Odoo-versioner:

  • Odoo 15 og tidligere: Oversættelser blev opbevaret i en separat ir.translation tabel. Hver oversat værdi var en række i den tabel, knyttet til modellen, feltets navn, post-ID og sprogkode.
  • Odoo 16 og senere: Oversættelser opbevares direkte i modellens egen databastabel som en JSONB-kolonne. For eksempel, et name felt med translate=True opbevares som et JSON-objekt som {"en_US": "Laptop Stand", "fr_FR": "Support pour ordinateur portable", "de_DE": "Laptopständer"}.

Overgangen til JSONB i Odoo 16 var en betydelig forbedring. Det eliminerer dyre joins med oversættelsestabellen og gør forespørgsler meget hurtigere, især på modeller med mange poster.


Hvordan sprogkontext fungerer

Når Odoo læser et oversat felt, tjekker det den aktive sprog i konteksten. Hvis du er logget ind som en fransk bruger, henter ORM automatisk den franske værdi. Hvis du laver et API-opkald, kontrollerer du sproget ved at sende det i konteksten:

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

Dette er vigtigt, når du bygger integrationer eller eksportskripter. Sørg altid for at sende det korrekte sprog i konteksten for at få den rigtige oversatte værdi.


translate-parameteren med en callable

Parameteren translate accepterer også en callable til avancerede brugssager. Det mest almindelige eksempel er at bruge translate=_ til at markere statiske strengværdier (som valglabels) til oversættelse via den standard Odoo oversættelseseksportmekanisme. Dette adskiller sig fra oversættelser på postniveau og bruges hovedsageligt i Odoo-udvikling til at oversætte modulstrenge.


Fallback-adfærd

Hvis der ikke er blevet indstillet en oversættelse for det aktive sprog, returnerer Odoo ikke en tom værdi. Det falder tilbage til grundsproget i databasen (typisk engelsk). Denne elegante tilbagefald betyder, at dine brugere altid ser noget meningsfuldt, selv i delvist oversatte miljøer.

Forretningsanvendelser


Oversatte felter er ikke bare en teknisk funktion. De løser reelle problemer, der opstår i virksomheder, der opererer på tværs af sprog. Her er fem almindelige scenarier.


1. E-handel: Flersprogede Produktnavne og Beskrivelser

Hvis du sælger gennem Odoo-webstedet eller butikken, forventer dine kunder at kunne browse på deres eget sprog. Felterne name og descriptionproduct.template er som standard oversættelige. Det betyder, at du kan opretholde et enkelt produktkatalog og give lokaliserede navne, salgspitcher og tekniske specifikationer uden at duplikere poster.

En kunde, der besøger dit franske websted, ser franske produktnavne og franske beskrivelser. Det underliggende produkt er det samme, lagerbeholdningen er den samme, prisreglerne er de samme. Kun den viste tekst ændrer sig.


2. E-mail Skabeloner i Flersprogede Virksomheder

Odoos e-mail skabeloner bruger oversatte Html-felter til deres brødindhold. Når du sender en ordrebekræftelse til en tysk kunde, bruger Odoo automatisk den tyske version af skabelonens brød, hvis en sådan er blevet indstillet. Dette fungerer, fordi skabelonfelterne har translate=True.


For virksomheder med kunder på tværs af flere lande betyder dette, at en enkelt skabelon kan betjene alle markeder rent uden betinget logik eller separate skabelonposter pr. sprog.


3. Webstedssider og Blogindhold

Odoo-webstedssider bruger oversættelige Html-felter til deres indhold. Når dit websted har aktiveret flere sprog, kan redaktører vedligeholde forskelligt tekst for hver sprogversion af den samme side. Dette er, hvordan flersprogede Odoo-websteder fungerer nativt, uden nogen tredjeparts plugin.


Fra et SEO-perspektiv betyder dette også, at hver sprogversion af siden kan have sin egen meta titel og meta beskrivelse, hvilket hjælper dig med at rangere i lokale søgeresultater på tværs af forskellige markeder.


4. Valgfelt Etiketter til Internationale Teams

Når du definerer et Valg-felt i Odoo Python-kode, kan valgmulighederne mærkes til oversættelse ved hjælp af den standard _ oversættelsesfunktion. Dette betyder, at en dropdown, der viser "I gang", "På pause" og "Færdig" til en engelsk bruger, vil vise de korrekt oversatte ækvivalenter til brugere på andre sprog.


Dette er især nyttigt inden for HR, projektledelse og enhver arbejdsproces, hvor teams på forskellige kontorer skal arbejde med de samme poster, men på deres eget sprog.


5. Brugerdefinerede felter i flersproget rapportering

Hvis du har oprettet brugerdefinerede felter ved hjælp af Odoo-tilpasning eller Odoo Studio-felter til intern kategorisering (servicekategorier, risikoniveauer, produktsegmenter), sikrer det, at disse felter er oversættelige, at rapporter og dashboards vises korrekt for alle brugere, uanset deres sprogindstilling.


Uden oversættelse på disse felter kan en fransk bruger se engelske etiketter i deres rapporter, hvilket skaber forvirring og reducerer adoption.

Oprettelse eller tilpasning af oversatte felter


Der er et par måder at oprette eller aktivere oversættelse på et felt i Odoo, afhængigt af om du arbejder i et no-code-miljø eller direkte i Python.


Brug af Python (Anbefales til udviklere)

Den reneste måde at oprette et oversat felt i Odoo ORM er at definere det i en Python-model med translate=True. Dette er den standardmetode, der findes i enhver Odoo-udviklerguide eller Odoo teknisk tutorial:


from odoo import models, fields

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

    x_product_highlight = fields.Char(
        string='Produktfremhævelse',
        translate=True
    )

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

At tilføje translate=True er alt, hvad der kræves. Fra det punkt håndterer Odoo alt: sprogflaget i UI'en, oversættelseslagringen, fallback-logikken.


Brug af Odoo Studio-felter

Odoo Studio eksponerer ikke translate muligheden i sin feltkonfigurationspanel. Når du opretter et Char- eller Text-felt i Studio, er det ikke oversætteligt som standard.


Men du kan aktivere oversættelse på et Studio-felt via XML-RPC API'en, efter det er blevet oprettet. Find feltets ID i ir.model.fields og opdater dets translate egenskab:


# Find Studio-feltet
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]

# Aktiver oversættelse
models.execute_kw(
    ODOO_DB, uid, ODOO_API_KEY,
    'ir.model.fields', 'write',
    [[field['id']], {'translate': True}]
)

Denne tilgang fungerer godt for teams, der laver Odoo-tilpasninger gennem scripts eller notebooks uden adgang til kildekoden.


Håndtering af oversættelser: Eksport og import

Når de oversatte felter er på plads, er oversættelsesarbejdsgangen i Odoo ligetil:


  1. Gå til Indstillinger > Oversættelser > Eksportér oversættelse for at downloade en .po eller .csv-fil med alle uoversatte strenge for et givet sprog.
  2. Udfyld oversættelserne i filen (eller send den til en oversætter).
  3. Gå til Indstillinger > Oversættelser > Importér oversættelse for at uploade den færdige fil tilbage til Odoo.

For oversættelser på rekordniveau (som produktnavne) kan du også redigere dem direkte i grænsefladen ved at bruge sprogflagikonet ved siden af feltet. Dette er mere praktisk for små mængder indhold.


Oversættelse via API'en

Når du skriver eller opdaterer et oversat felt via XML-RPC API'en, skal du angive sproget i konteksten:


# Skriv den franske oversættelse for et produktnavn
models.execute_kw(
    ODOO_DB, uid, ODOO_API_KEY,
    'product.template', 'write',
    [[product_id], {'name': 'Ordinateur Portable Ultra'}],
    {'context': {'lang': 'fr_FR'}}
)

At skrive med et specifikt sprog i konteksten opdaterer kun oversættelsen af det sprog. Andre sprog værdier forbliver urørte. Dette er den rene måde at skubbe oversat indhold ind i Odoo fra et eksternt system.

Bedste praksis


Oversatte felter er ligetil, når de bruges korrekt, men et par vaner vil spare dig for meget tid og forvirring.


Sæt altid basis sprog værdien først

Før du tilføjer oversættelser for andre sprog, skal du sikre dig, at basis sprog værdien er korrekt og komplet. Alle andre oversættelser er afledt af denne base. Hvis du ændrer basis værdien senere, opdateres de andre oversættelser ikke automatisk og vil være ude af sync.


Oversæt kun felter, der faktisk har brug for det

Ikke hvert tekstfelt har brug for at være oversætteligt. Interne referencekoder, tekniske identifikatorer og felter, der kun er synlige for back-office personale i en en-sproget virksomhed, drager ikke fordel af oversættelse. At tilføje translate=True til for mange felter øger kompleksiteten og mængden af oversættelser, der skal vedligeholdes.


Brug eksport/import arbejdsflowet til store oversættelsesopgaver

For store kataloger (hundrede eller tusinder af produkter) er det upraktisk at redigere oversættelser én ad gangen i grænsefladen. Brug oversættelses eksportfunktionen til at generere en fil, oversætte i bulk og importere tilbage. Dette er meget hurtigere og mindre fejlbehæftet.


Giv sprog konteksten i alle API-opkald

Når du læser eller skriver oversatte felter via Odoo API'en, skal du altid give 'lang': 'xx_XX' i konteksten. Uden det, falder API'en tilbage til brugerens sprog, hvilket måske ikke er, hvad du har til hensigt. At være eksplicit undgår subtile fejl, hvor data ender med at blive gemt under det forkerte sprog.


Vedligehold oversættelser, når kilden ændres

Når du opdaterer basis sprog værdien af et oversat felt, opdateres de andre sprog oversættelser ikke automatisk. Byg en gennemgangsproces ind i dit indholds arbejdsflow, så oversættere bliver underrettet, når kildeindholdet ændres, og oversættelser skal opdateres.

Almindelige faldgruber


Selv erfarne Odoo-konsulenter støder på disse fejl. At være opmærksom på dem på forhånd vil spare dig for meget fejlfindingstid.


At glemme at videregive sprogkonteksten i API-skriver

Dette er den mest almindelige fejl, når man integrerer eksterne systemer med Odoo. Hvis du skriver et produktnavn via API'en uden at specificere et sprog, skriver Odoo det på brugerens standardsprog. Hvis den bruger tilfældigvis er konfigureret til engelsk, men du ønskede at sætte den franske oversættelse, har du overskrevet den engelske værdi i stedet. Vær altid eksplicit omkring sprogkonteksten.


At antage, at oversatte felter er filtreret i søgninger

Når du søger på et oversat felt (for eksempel at søge efter et produkt efter navn), søger Odoo som standard på det aktive sprog. Et produkt ved navn "Laptop Stand" på engelsk vil ikke dukke op i søgeresultaterne, hvis brugeren er på fransk, og den franske oversættelse ikke er blevet sat endnu. Sørg for, at oversættelserne er på plads, før du forventer, at søgninger fungerer på tværs af sprog.


At blande oversatte og ikke-oversatte felter i rapporter

Hvis en tilpasset Odoo-rapport eller eksport bruger en blanding af oversatte og ikke-oversatte tekstfelter, kan outputtet være inkonsekvent: nogle etiketter vises på brugerens sprog, mens andre altid vises på grundsproget. Gennemgå dine rapportfelter omhyggeligt og beslut på forhånd, om hver enkelt skal være oversættelig.


At undlade at tage højde for oversættelsesomkostninger i beregnede felter

Hvis du har et Odoo-beregnet felt, der bygger en streng fra flere oversatte felter, kører beregningen på det aktive sprog på tidspunktet for anmodningen. Resultatet gemmes ikke automatisk pr. sprog. Hvis du har brug for en beregnet sammenkædning af oversatte værdier på flere sprog, skal du håndtere den sprog-specifikke beregning eksplicit.


At fjerne et sprog uden at rydde op i oversættelser

Når du deaktiverer eller fjerner et sprog i Odoo, kan oversættelsesværdierne for det sprog forblive i databasen afhængigt af din version. Dette er normalt harmløst, men det kan tilføje rod. Tjek altid dine oversættelsesdata efter at have deaktiveret et sprog i et produktionsmiljø.

Konklusion


Oversatte felter er en af de mest praktiske funktioner i Odoo-rammen for virksomheder, der arbejder på tværs af flere sprog. En enkelt parameter, translate=True, låser op for muligheden for at opretholde lokaliseret indhold til produktkataloger, e-mail-skabeloner, webside-sider og brugerdefinerede felter uden at duplikere poster eller administrere separate systemer.


Nøglen er at være bevidst om, hvilke felter der faktisk har brug for oversættelse. Brug det, hvor det gør en forskel for dine brugere eller kunder, administrer oversættelser gennem eksport/import-arbejdsgangen for skala, og vær altid eksplicit om sprogkonteksten, når du arbejder med Odoo API'en.


Uanset om du opsætter en flersproget e-handelsbutik, ruller Odoo ud til internationale teams, eller laver Odoo-udvikling på et tilpasset modul, vil forståelsen af oversatte felter hjælpe dig med at bygge renere, mere brugervenlige løsninger.

Arbejder du på en flersproget Odoo-implementering og har brug for vejledning om feltkonfiguration eller oversættelsesarbejdsgange? Kontakt Dasolo-teamet og vi vil være glade for at hjælpe dig med at få det rigtigt.

Oversatte Felter i Odoo: Den Ultimative Guide
Dasolo 6. marts 2026
Del dette indlæg
Log ind for at skrive en kommentar