Przejdź do zawartości

Pola tłumaczone w Odoo — kompletny przewodnik dla użytkowników

Dowiedz się, w jaki sposób pola tłumaczalne w Odoo przechowują dane wielojęzyczne w ORM oraz jak praktycznie wykorzystać tę funkcję w firmie
6 marca 2026 przez
Pola tłumaczone w Odoo — kompletny przewodnik dla użytkowników
Dasolo
| Brak komentarzy na ten moment

Wiele wdrożeń Odoo obsługuje użytkowników i klientów w różnych językach: handlowcy we Francji, magazyn w Niemczech, portal klienta po hiszpańsku. Aby system mógł wyświetlać te same dane w kilku wersjach językowych bez dublowania rekordów, w Odoo stosuje się tzw. pola tłumaczone — mechanizm pozwalający przechowywać różne warianty tekstu dla jednego pola.


Pomyśl o polu tłumaczonym jak o etykiecie z kilkoma wersjami: dla każdego języka zapisujesz inną treść. Ten sam rekord produktu może więc mieć nazwę po polsku, po angielsku i po niemiecku — system wybiera, którą wariant pokazać użytkownikowi zależnie od ustawionego języka.

W skrócie: ten materiał pokaże, jak w praktyce działają pola tłumaczone w ORM Odoo, jak je tworzyć i utrzymywać oraz w jakich scenariuszach biznesowych naprawdę się przydają.

Czym są pola tłumaczone w Odoo


Pole tłumaczone to pole tekstowe w modelu danych Odoo, które może przechowywać odrębną wartość dla każdego aktywnego języka w bazie. Dla użytkownika działa to transparentnie — zawsze widzi treść w swoim języku, bez dodatkowych kroków.


W Odoo tłumaczenie jest dostępne dla następujących typów pól:

  • Char — krótkie, jednowierszowe pola (np. nazwy produktów, etykiety kategorii)
  • Text — dłuższe, wielowierszowe opisy i notatki
  • Html — sformatowane treści HTML, używane m.in. na stronach WWW i w szablonach maili

Pola liczbowe, daty, Many2one czy booleany nie są tłumaczalne — mechanizm dotyczy tylko treści przeznaczonych do czytania przez ludzi.


Jak to wygląda w interfejsie

Gdy pole jest tłumaczone, w trybie edycji obok niego pojawia się mała ikona z flagą języka. Po kliknięciu otwiera się okno, w którym można wprowadzić lub poprawić tekst dla każdej z zainstalowanych wersji językowych — wszystko z jednego miejsca.


W widoku do odczytu użytkownik po prostu widzi wersję w swoim języku. Jeżeli dla danego języka nie ustawiono tłumaczenia, Odoo korzysta z wartości bazowej (zwykle w języku głównym bazy), zamiast pozostawić pole puste.

Jak działają pola tłumaczone


Znajomość mechaniki działania pól tłumaczonych ułatwia podejmowanie decyzji, kiedy ich używać i jak zarządzać tłumaczeniami przy większych zbiorach danych.


Parametr translate=True

W ORM Odoo włącza się tłumaczenie dodając do definicji pola parametr translate=True. To właśnie ta flaga mówi systemowi, że pole może mieć wersje językowe.

Przykład w modelu — definiujemy nowe pole Char i oznaczamy je jako tłumaczone (fragment kodu ilustruje ideę tworzenia takiego pola).

Dzięki temu pojedynczemu ustawieniu Odoo będzie przechowywać i zwracać różne wartości pola w zależności od aktywnego języka — to jedno z prostszych i wygodniejszych rozwiązań w platformie.


Gdzie przechowywane są tłumaczenia

Mechanizm przechowywania zmian był ewolucyjny i różni się w zależności od wersji Odoo:

  • W Odoo 15 i starszych tłumaczenia zapisywano w odrębnej tabeli ir.translation — każdy przetłumaczony ciąg był osobnym wierszem powiązanym z modelem, polem, identyfikatorem rekordu i kodem języka.
  • W Odoo 16+ tłumaczenia trafiły do kolumn JSONB w tej samej tabeli modelu. Dla pola name z translate=True wartość może wyglądać jak obiekt JSON z kluczami en_US, fr_FR itp.

Przejście na JSONB poprawiło wydajność — zniknęły kosztowne joiny do tabeli tłumaczeń, a zapytania na dużych tabelach stały się szybsze i bardziej skalowalne.


Jak działa kontekst językowy

Przy odczycie pola system bierze pod uwagę aktywny język w kontekście. Zalogowany użytkownik z ustawionym językiem francuskim zobaczy francuską wersję pola. W integracjach API język trzeba przekazać explicite w kontekście, jeśli chcemy odczytać specyficzną wersję:

W wywołaniu API podaje się kontekst {'lang': 'fr_FR'} — to kontroluje, którą wersję tekstu zwróci Odoo.

To istotne przy eksportach lub integracjach: bez explicitnego języka możesz pobrać nie tę wersję, którą potrzebujesz.


Parametr translate jako callable

Parametr translate może też przyjmować wywołanie (callable). Często stosuje się translate=_ do oznaczania statycznych etykiet i wartości wyboru, żeby były uwzględnione w mechanizmie eksportu/zarządzania tłumaczeniami Odoo — to inny przypadek niż tłumaczenia treści rekordów.


Zachowanie zapasowe (fallback)

Jeśli dla aktywnego języka nie ma ustawionej wartości, Odoo zwraca wartość z języka bazowego bazy (domyślnie angielski). Dzięki temu użytkownik zawsze zobaczy jakąś czytelną treść nawet przy częściowych tłumaczeniach.

Przykłady biznesowe


Pola tłumaczone to nie tylko techniczna ciekawostka — rozwiązują konkretne problemy w firmach działających międzynarodowo. Oto najczęstsze scenariusze zastosowań.


1. E‑commerce: wielojęzyczne nazwy i opisy produktów

Sprzedając na stronie Odoo, klient oczekuje przeglądania katalogu w swoim języku. Domyślnie pola name i description na product.template są tłumaczalne, co pozwala prowadzić jeden katalog produktów z lokalizowanymi nazwami i opisami bez potrzeby duplikowania rekordów.

Kupujący na francuskojęzycznej wersji sklepu zobaczy materiały po francusku; jednocześnie stan magazynowy, ceny i reguły sprzedaży pozostaną wspólne dla wszystkich języków — zmienia się tylko wyświetlany tekst.


2. Szablony e‑mail dla firm międzynarodowych

Szablony mailowe Odoo przechowują treść jako pole Html z translate=True. Jeśli masz ustawioną niemiecką wersję treści, potwierdzenie zamówienia trafi do niemieckiego klienta w jego języku bez dodatkowej logiki.


Dzięki temu jedna wersja szablonu obsłuży wiele rynków bez konieczności tworzenia oddzielnych rekordów czy warunków w kodzie.


3. Strony WWW i treści bloga

Strony Odoo używają tłumaczonych pól Html, więc redaktorzy mogą utrzymywać osobne wersje treści dla każdej aktywnej wersji językowej. To natywne podejście do wielojęzyczności bez zewnętrznych wtyczek.


Z punktu widzenia SEO oznacza to też, że każda wersja językowa może mieć własne meta title i meta description, co poprawia widoczność w lokalnych wynikach wyszukiwania.


4. Etykiety pól typu Selection w zespołach międzynarodowych

Przy definiowaniu Selection w kodzie można oznaczyć etykiety do tłumaczenia za pomocą funkcji _ — dropdown pokaże użytkownikowi etykietę w jego języku (np. "W trakcie", "Wstrzymane", "Zakończone").


To przydatne w HR, zarządzaniu projektami i wszędzie tam, gdzie zespoły z różnych krajów pracują na tych samych rekordach.


5. Pola własne w wielojęzycznych raportach

Jeżeli dodajesz własne pola (np. kategorie usług, poziomy ryzyka) warto zrobić je tłumaczalnymi, żeby raporty i pulpity wyglądały spójnie dla wszystkich użytkowników, niezależnie od ustawień języka.


Bez tłumaczeń użytkownicy z innym językiem mogą widzieć etykiety w bazowym języku, co prowadzi do nieporozumień i niższego zaangażowania.

Tworzenie i konfigurowanie pól tłumaczonych


Sposoby tworzenia i aktywacji tłumaczeń zależą od środowiska — możesz to zrobić w kodzie Python albo w narzędziach typu no‑code.


W Pythonie (zalecane dla deweloperów)

Najczystszy sposób to utworzyć pole w modelu z translate=True — tak robią wszyscy poradniki techniczne Odoo.


Przykład: dodanie pól Char i Html z translate=True do modelu product.template pokazuje typową implementację tłumaczonych pól.

Wystarczy dodać translate=True — Odoo automatycznie zadba o UI, przechowywanie i fallbacky.


W Odoo Studio

Studio nie udostępnia opcji translate w panelu konfiguracji pola. Pola tworzone w Studio domyślnie nie są tłumaczalne.


Można to jednak zmienić po utworzeniu pola, wykorzystując API XML‑RPC: wyszukujesz definicję pola w ir.model.fields i ustawiasz translate=True.


Przykładowy skrypt pokazuje wyszukanie pola Studio i zmianę jego właściwości przez wywołania API.

To dobre rozwiązanie dla zespołów, które wprowadzają zmiany bez dostępu do kodu źródłowego, ale potrafią wykonywać skrypty integracyjne.


Zarządzanie tłumaczeniami: eksport i import

Proces pracy z tłumaczeniami w Odoo jest prosty i oparty na plikach:


  1. Przejdź do Ustawienia > Tłumaczenia > Eksport tłumaczeń, aby pobrać .po lub .csv z ciągami do przełożenia dla danego języka.
  2. Wypełnij plik lub przekaż go tłumaczowi.
  3. Następnie zaimportuj gotowy plik przez Ustawienia > Tłumaczenia > Import tłumaczeń.

Dla pojedynczych rekordów (np. nazwy produktów) wygodniej jest użyć ikony języka w UI i wprowadzić tłumaczenia bezpośrednio — przy małej liczbie pozycji to najszybsza metoda.


Tłumaczenie przez API

Przy zapisie tłumaczonego pola przez XML‑RPC należy podać kontekst z językiem.


Przykład pokazuje zapis nazwy produktu w języku francuskim przez models.execute_kw z kontekstem {'lang': 'fr_FR'}.

Aktualizacja z określonym kontekstem modyfikuje jedynie tłumaczenie dla tego języka — pozostałe wersje pozostają bez zmian. To właściwy sposób synchronizacji treści z zewnętrznych systemów.

Najlepsze praktyki


Kilka prostych zasad znacznie ułatwia pracę z tłumaczeniami i ogranicza błędy.


Zawsze najpierw ustaw wartość bazową

Upewnij się, że wartość w języku bazowym jest poprawna i kompletna przed dodawaniem innych tłumaczeń. Inne wersje będą odnosić się do tej podstawy, a późniejsze zmiany bazowej treści nie nadpiszą automatycznie istniejących tłumaczeń.


Tłumacz tylko to, co jest konieczne

Nie każde pole wymaga tłumaczenia. Kody referencyjne, identyfikatory techniczne czy pola widoczne tylko dla pracowników w jednym języku nie muszą być tłumaczone — nadmierne oznaczanie pól zwiększa liczbę tekstów do utrzymania.


Używaj eksportu/importu przy dużych zestawach

Przy setkach czy tysiącach produktów ręczne uzupełnianie tłumaczeń jest niepraktyczne. Eksport do pliku, tłumaczenie w hurtowych porcjach i ponowny import to szybsza i bezpieczniejsza metoda.


Zawsze podawaj język w kontekście przy wywołaniach API

Przy odczytach i zapisach przez API przekazuj {'lang': 'xx_XX'} — jeśli tego nie zrobisz, API użyje języka domyślnego użytkownika i może dojść do nadpisania niewłaściwej wersji tekstu.


Pilnuj spójności przy zmianach źródła

Po zmianie wartości bazowej zaimplementuj proces informowania tłumaczy, bo dotychczasowe tłumaczenia nie aktualizują się automatycznie — warto mieć procedurę przeglądu i odświeżania tłumaczeń.

Typowe pułapki


Nawet doświadczeni konsultanci Odoo potykają się o te kwestie — świadomość problemów zaoszczędzi czas na debugowanie.


Najczęstsze błędy podczas pracy z tłumaczeniami

Zapominanie o kontekście językowym przy zapisie przez API to najczęstszy błąd. Jeśli zapiszesz nazwę produktu bez kontekstu, Odoo nadpisze wartość w języku domyślnym użytkownika zamiast dodać tłumaczenie do innego języka.


Zakładanie, że pola tłumaczone są uwzględniane w wyszukiwaniu

Wyszukiwanie po polu tłumaczonym działa w aktywnym języku. Produkt o angielskiej nazwie "Laptop Stand" może nie pojawić się w wynikach dla użytkownika ustawionego na francuski, jeśli francuska wersja nie została wprowadzona. Przy planowaniu wyszukiwań uwzględnij brakujące tłumaczenia.


Mieszanie pól tłumaczonych i nietłumaczonych w raportach

Raporty korzystające z mieszanki pól mogą zwracać niespójne wyniki — część etykiet w języku użytkownika, część zawsze w języku bazowym. Przed generowaniem raportów zdecyduj, które pola powinny być przetłumaczone.


Nieprzemyślane użycie pól obliczanych z tłumaczeń

Jeżeli pole obliczane składa się z kilku pól tłumaczonych, obliczenie odbywa się w języku aktywnym podczas żądania i nie jest automatycznie zapisywane w kilku językach. Gdy potrzebujesz wersji obliczonych dla wielu języków, trzeba to obsłużyć jawnie.


Usuwanie języka bez porządkowania tłumaczeń

Dezaktywacja języka może pozostawić wartości tłumaczeń w bazie — zwykle to nie szkodzi, ale bywa źródłem bałaganu. Po usunięciu języka warto sprawdzić dane tłumaczeń i posprzątać zbędne wpisy.

Podsumowanie


Pola tłumaczone to praktyczne narzędzie Odoo dla firm działających międzynarodowo. Jedna flaga translate=True pozwala lokalizować katalog produktów, szablony maili, strony WWW i pola niestandardowe bez duplikowania danych czy prowadzenia oddzielnych systemów.


Kluczowe jest rozsądne podejście: wybieraj tylko te pola, które rzeczywiście wymagają tłumaczeń, korzystaj z eksportu/importu przy większych pracach i zawsze jawnie przekazuj kontekst językowy przy integracjach API.


Niezależnie czy budujesz wielojęzyczny sklep, wdrażasz Odoo w międzynarodowej organizacji czy tworzysz moduł — zrozumienie działania pól tłumaczonych pomoże Ci zbudować czytelne i przyjazne rozwiązania.

Pracujesz nad wielojęzycznym wdrożeniem Odoo i potrzebujesz wsparcia przy konfiguracji pól lub procesie tłumaczeń? Skontaktuj się z zespołem Dasolo Chętnie pomożemy — doradzimy i wdrożymy najlepsze praktyki tłumaczeń w Twoim systemie.

Pola tłumaczone w Odoo — kompletny przewodnik dla użytkowników
Dasolo 6 marca 2026
Udostępnij ten artykuł
Zaloguj się by zostawić komentarz