Skip to content

Import and export record translations

Quick summary: In developer mode, an Odoo administrator can export the translatable text of records, edit the value column in a CSV file, and import it back. This guide exports the Slovenian names of products; the same process works for other record models with translatable fields.


  • You need administrator rights with access to Settings. The complete import workflow is restricted to administrators.
  • Enable developer mode. It is required to display the Translations > Import / Export menus, but it does not grant additional permissions.
  • Make sure Slovenian / slovenščina is installed under Settings > Translations > Languages.
  • Use a desktop browser. Exported translation files can contain confidential business text, so store and share them only in an approved location.

This guide covers translations stored on records, such as product names and descriptions.

  1. Open Settings with developer mode active. Click Translations, then under Import / Export click Export Translation.

    Settings Translations menu with Import Translation and Export Translation available in developer mode
    Open image at full size (new tab)
  2. Configure Export Translation:

    • Select the Language, for example Slovenian / slovenščina.
    • Set File Format to CSV File.
    • Set Export Type to Model. The wizard initially selects Module, so change it explicitly.
    • Select Model to Export, for example Product. This is the model for product templates and exports their translatable record fields.
    • Review Model Domain. [] matches every product you are allowed to access. Add a domain rule when you only need a defined subset, especially in a large or sensitive database.
    Export Translation dialog configured for Slovenian CSV translations of the Product model
    Open image at full size (new tab)
  3. Click Export. When Export Complete appears, click the sl_SI.csv filename to download it, then click Close.

    Completed Slovenian translation export with the sl_SI.csv download link
    Open image at full size (new tab)

Only already populated fields are included. For products, this can include the product name and descriptions.

Open sl_SI.csv in a UTF-8-compatible spreadsheet or text editor. Its columns are:

Column Meaning What to do
module, type, name, res_id Technical identification of the record and field Preserve these values exactly.
src Source-language text Use it to identify the text; do not replace it with the translation.
value Translation Edit this column.
comments Optional translation context Preserve it when present.

Save the result as CSV with UTF-8 encoding. Do not rename or delete the headers. An empty value cell is skipped during import; clearing the cell does not delete an existing translation.

The import wizard accepts CSV and PO files. A TGZ archive can be produced by some exports, but it cannot be uploaded through Import Translation.

Export a template for a language with no translations

Section titled “Export a template for a language with no translations”

To obtain source strings with empty translation values, open Export Translation and choose New Language (Empty translation template). Select CSV File, Model, and the required record model—Product in this example.

Export Translation dialog using New Language Empty translation template for the Product model
Open image at full size (new tab)

Click Export to download product_template.csv. Use this option as a starting template for a language that has no translations yet. The exported file will containt all translatable fields. Before importing the completed file, obtain the exact Odoo locale code for the target language.

  1. Return to Settings > Translations > Import / Export and click Import Translation.

  2. Complete the fields:

    • Language Name: enter any useful label. It can be the same as the code, for example sl_SI.
    • Code: enter exact ISO locale code. This is the crucial value that assigns the file to the language. Example for Slovenian is sl_SI. Do not shorten it to sl or substitute another code.
    • File: upload the edited sl_SI.csv.
    • Overwrite Existing Terms: leave this enabled when the reviewed values in the file should replace current or customized translations.

    When the code already exists, Odoo uses that language; the entered Language Name does not rename it. For an unknown code, Odoo creates and activates a language using the entered name, which is why the code must be verified before import.

    Import Translation dialog with Language Name and Code set to sl_SI and the edited CSV uploaded
    Open image at full size (new tab)
  3. Recheck the code, file, and overwrite choice. Click Import only after this review. The import starts immediately without a preview.

  4. Open one of the affected records and verify the text in Slovenian. When the field is editable, use its translation control to compare the source and translated values directly.

    Product name translation dialog showing the English source and imported Slovenian value
    Open image at full size (new tab)
  • If no rows change, confirm that the file is CSV, its technical columns are unchanged, and the intended translations are in value rather than src.
  • If the translation appears under the wrong language, check the imported language Code. For Slovenian it must be sl_SI.
  • If some record data is absent from the file, confirm that the field is translatable. Translation export does not export ordinary business values.
  • If the file is too broad and it includes too many records, export it again with a narrower Model Domain.