Hoppa till innehåll

Översatta fält i Odoo – Komplett guide för utvecklare och användare

Upptäck hur Odoo hanterar flerspråkiga fält i sin datamodell och hur du kan utnyttja det i verksamheten. Vi förklarar principerna bakom översättningslager i ORM:en, när ett fält sparas per språk eller delas globalt, och vilka konsekvenser det har för sökningar, vyer och rapporter. Dessutom får du praktiska tips för att konfigurera översättningsinställningar, undvika vanliga fallgropar vid import/export och designa användargränssnitt som stödjer flera språk utan att skapa datainkonsekvenser. Efter läsningen vet du hur du planerar fältdesign, synkroniserar innehåll mellan språk och säkerställer att rätt text visas för rätt användare i Odoo.
6 mars 2026 av
Översatta fält i Odoo – Komplett guide för utvecklare och användare
Dasolo
| Inga kommentarer ännu

Många Odoo-installationer används i organisationer där personal, lager eller kunder talar olika språk — tänk en säljstyrka i Frankrike, ett lager i Tyskland eller en kundportal på spanska. För att allt ska fungera utan att skapa separata produkter eller poster behöver systemet en plats att lagra flera språkversioner av samma fältvärde. Det är precis vad översatta fält löser.


Ett översatt fält kan innehålla ett unikt värde för varje aktivt språk. En franskspråkig användare ser produktens namn på franska, medan en tysk användare ser samma produkts namn på tyska. Databasen har en enda post, men presentationen anpassas efter användarens språkval.

I den här guiden får du en praktisk introduktion till hur översatta fält hanteras i Odoo:s ORM, hur du skapar och administrerar dem, samt vilka konkreta situationer där de förenklar driften för flerspråkiga verksamheter.

Vad innebär ett översatt fält i Odoo


Ett översatt fält är kort sagt ett textfält i datamodellen som kan spara olika värden beroende på vilket språk som är aktivt i systemet. För användaren sker allt sömlöst — värdet visas i deras språk utan extra steg.


Vilka fälttyper kan översättas

  • Char: korta enradiga texter som produktnamn, kategorietiketter eller befattningar.
  • Text: längre fritext som produktbeskrivningar eller interna anteckningar.
  • Html: rik text med markup som används för webbsidor eller e-postmallar.

Numeriska värden, datum, relationer (Many2one) eller boolean-fält kan däremot inte översättas — det gäller endast fält som innehåller människoläsbar text.


Så syns det i gränssnittet

När ett fält är översatt visas en liten språkikon bredvid fältet i redigeringsläge. Klickar du på den öppnas en dialog där du kan se och redigera värdet för varje installerat språk, vilket gör det enkelt för behöriga användare att sköta översättningarna centralt.


I läsläge får användaren automatiskt värdet i sitt språk. Om ingen översättning finns för användarens språk använder Odoo istället basvärdet (ofta engelska) i stället för att lämna fältet tomt.

Hur översatta fält fungerar


Att förstå hur översatta fält lagras och hämtas hjälper dig att fatta bättre tekniska och organisatoriska beslut kring när funktionen ska användas.


Parameter för translate

I Odoo-ORM aktiverar du översättning genom att lägga till translate=True i fältdefinitionen. Det är en enkel men kraftfull inställning.

Exempelvis i en anpassad Char-definition i en Python-modell ser det ut ungefär så här:

Med den enda parametern får Odoo instruktion att spara och hämta olika värden beroende på aktuell språk-kontekst — en elegant inbyggd funktion i ramverket.


Var översättningarna lagras

Lagringsmetoden har förändrats mellan Odoo-versioner:

  • I Odoo 15 och tidigare sparades översättningar i en separat ir.translation-tabell. Varje översatt sträng var en rad där modell, fältnamn, post-id och språkkod refererades.
  • Från Odoo 16 lagras översättningarna istället i samma modellstabell i en JSONB-kolumn. Ett fält som name kan då innehålla ett JSON-objekt med språknycklar och respektive textvärden.

Byte till JSONB gav stor prestandaförbättring genom att undvika dyra join-operationer mot en separat översättningstabell och gör att uppslag och sökningar blir snabbare på stora datamängder.


Språkkontext och hur den påverkar läsning/skrift

När Odoo läser ett översatt fält använder det den aktiva språkkontexten. Är du inloggad som fransktalande hämtas automatiskt franska värden. Vid API-anrop styr du språket genom att ange det i context-argumentet.

När du bygger integrationer eller skript är det därför viktigt att skicka rätt 'lang' i kontexten för att få önskat språkvärde.

Att vara tydlig med språk i API-anrop undviker att fel språk skrivs eller läses.


translate som callable

translate-parametern kan också vara ett anropbart objekt i mer avancerade fall. Vanligt är att använda translate=_ för att markera statiska strängar (t.ex. val i selection-fält) för Odoos vanliga översättningsflöde. Det skiljer sig från fältnivå-översättningar och används främst vid utveckling av moduler.


Fallback-logik

Om det inte finns någon översättning för användarens språk faller Odoo tillbaka till databasens bask språk (ofta engelska) istället för att visa tomt. Det säkerställer en konsekvent användarupplevelse även i halvöversatta miljöer.

Affärsscenarier där det spelar roll


Varför det här är viktigt i praktiken — fem typfall


1. E-handel: flerspråkiga produktnamn och beskrivningar

I webbutiker förväntar sig kunder att se information på sitt språk. Genom att ha name och description översatta kan du driva en gemensam produktkatalog men visa lokaliserad text utan att duplicera produkter.

Besökaren på den franska versionen ser franska namn och texter medan lagersaldo, priser och logik förblir samma underliggande produkt.


2. E-postmallar i internationella företag

E-postmallar i Odoo använder HTML-fält som kan översättas. När ett orderbekräftelsemejl skickas till en tysk kund väljer Odoo automatiskt den tyska versionen av mallens innehåll om den finns.


Det gör att en och samma mall kan användas i flera marknader utan komplicerad villkorslogik eller separata mallposter per språk.


3. Webbplats- och blogginnehåll

Odoos webbmodul använder översatta Html-fält för sidinnehåll. Redaktörer kan underhålla språkspecifika texter för samma sida, vilket möjliggör flerspråkiga sajter utan externa plugin-lösningar.


Ur SEO-perspektiv kan varje språkversion dessutom få egna meta-titlar och beskrivningar, vilket underlättar ranking i lokala sökresultat.


4. Valfält och etiketter för internationella team

När du skapar selection-fält i Python kan alternativen markeras för översättning. En dropdown som visar "In Progress", "On Hold" och "Completed" på engelska kommer automatiskt visa motsvarande översättningar för andra språkaktiva användare.


Det är särskilt praktiskt i HR, projektledning och andra processer där internationella team behöver samma arbetsflöden men i eget språk.


5. Egna fält i flerspråkiga rapporter

Om du skapar anpassade fält för intern kategorisering — t.ex. servicekategorier eller produktsegment — bör de göras översättningsbara så rapporter och dashboards visar rätt etiketter för alla användare.


Annars riskerar till exempel en fransk användare få engelska etiketter i rapporter, vilket skapar förvirring och minskar användbarheten.

Skapa och aktivera översatta fält


Hur du skapar eller aktiverar översatta fält


Det finns flera vägar beroende på om du jobbar i kod eller med no-code-verktyg.

I Python (rekommenderat för utvecklare)


Den renaste metoden är att definiera fältet i en Python-modell och sätta translate=True i fältdeklarationen — det är standardpraxisen i Odoo-utveckling.

När du lagt till translate=True tar Odoo hand om UI-ikonen, lagringen och fallback-logiken utan mer jobb från din sida.


Via Odoo Studio

Odoo Studio visar inte translate-alternativet i fältkonfigurationen, så fält skapade där blir inte översättningsbara som standard.


Du kan dock slå på översättning för ett Studio-fält i efterhand via XML-RPC/API: leta upp fältet i ir.model.fields och uppdatera dess translate-egenskap.


Det här är en praktisk väg för administratörer som kör skript eller automationer utan att ändra modulkoden.

Metoden fungerar bra när du anpassar systemet genom scripts eller integrationer istället för att utveckla moduler.


Skötsel av översättningar: export och import

Odoos översättningsflöde är byggt för att hantera både mindre och större mängder text.


  1. Gå till Settings > Translations > Export Translation för att ladda ner en .po- eller .csv-fil med strängar som ska översättas för valt språk.
  2. Fyll i översättningarna i filen eller skicka den till en översättare.
  3. Importera filen tillbaka via Settings > Translations > Import Translation för att uppdatera systemet.

För postspecifika översättningar (t.ex. produktnamn) är det ofta snabbare att redigera direkt i UI via språkikonen för mindre volymer.


Översättning via API

När du skriver eller uppdaterar ett översatt fält genom XML-RPC så specificerar du språket i context-argumentet.


Genom att ange kontextens lang-nyckel skriver du endast den språkversion du vill uppdatera, vilket är det rena sättet att föra in översatt innehåll från externa system.

Att skriva med språkkontext påverkar bara den språknyckeln och lämnar andra språkvärden orörda.

Rekommenderade rutiner


Riktlinjer som förenklar arbetet


Sätt alltid bask språkvärde först

Se till att basvärdet (t.ex. engelska) är korrekt och komplett innan du börjar lägga till översättningar. Andra språk bygger på detta och ändringar i basvärdet uppdaterar inte automatiskt befintliga översättningar.


Översätt endast det som behöver översättas

Inte alla textfält bör vara översatta. Interna koder, tekniska id:n eller fält som enbart används av en enda språkgrupp behöver knappast översättas — onödiga översättningar ökar underhållet.


Använd export/import för stora volymer

För stora kataloger är det opraktiskt att redigera fält ett och ett i UI. Exportera, gör översättningen i batch och importera tillbaka för bättre kontroll och snabbare arbete.


Skicka alltid språket i API-anrop

Vid läs/skriv via API:et, ange alltid 'lang': 'xx_XX' i context för att undvika att data sparas under fel språkinställning.


Håll koll på förändringar i källtext

När du ändrar basvärdet uppdateras inte översättningar automatiskt. Inrätta en process som informerar översättare när källinnehållet ändrats så översättningarna kan uppdateras i tid.

Vanliga fallgropar


Vanliga misstag som drar tid


Att missa att ange språkkontext vid API-skrivningar

Det vanligaste felet är att skriva via API utan att specificera språk, vilket gör att texten hamnar i användarens standardspråk (t.ex. engelska) istället för önskat språk. Var alltid explicit med 'lang' vid integrationer.


Att förvänta sig att sök alltid hittar översatta termer

Sökningar körs i aktivt språk. Om ett objekt endast har en engelsk översättning och användaren är i franska kommer det inte visas i sökresultatet. Säkerställ att nödvändiga översättningar finns innan du litar på flerspråkiga sökningar.


Blanda översatta och icke-översatta fält i rapporter

Om en rapport innehåller både översatta och icke-översatta fält kan resultatet bli ojämnt — en del etiketter visas på användarens språk och andra alltid i baskspråk. Bestäm tidigt vilka fält som behöver vara översatta.


Glöm inte översättningspåverkan på beräknade fält

Beräknade fält som bygger text från flera översatta fält körs i den aktiva språkkontexten och lagras inte automatiskt per språk. Om du behöver språksspecifika beräkningar måste du hantera detta explicit.


Ta hand om data vid avaktivering av språk

När ett språk tas bort kan dess översättningsvärden ligga kvar i databasen beroende på version. Det är oftast ofarligt men kan skapa röra — kontrollera och städa vid behov i produktionsmiljöer.

Sammanfattning


Översatta fält är en praktisk och kraftfull funktion i Odoo för företag som verkar över språkgränser. Ett enkelt translate=True ger dig möjligheten att behålla en enda datamodell samtidigt som användarupplevelsen lokaliseras för kataloger, mallar, webbsidor och anpassade fält.


Var strategisk i vilka fält du översätter, använd export/import för storskaligt arbete och var alltid tydlig med språkkontext i API-arbete för att undvika fel och onödigt underhåll.


Oavsett om du bygger en flerspråkig webshop, rullar ut Odoo till internationella team eller utvecklar en skräddarsydd modul — förståelsen för översatta fält hjälper dig skapa renare, mer användarvänliga lösningar.

Behöver du hjälp med att konfigurera flerspråkiga fält eller sätta upp en översättningsprocess i Odoo? Kontakta Dasolo-teamet så hjälper vi dig gärna att få allt rätt från början.

Översatta fält i Odoo – Komplett guide för utvecklare och användare
Dasolo 6 mars 2026
Dela detta inlägg
Logga in att lämna en kommentar