To create many terms at once, import them from a CSV, XLS or XLSX file. This article shows you how to prepare the file in your spreadsheet, match its columns and read the report.
Before you start
- The import creates the terms of a category, for example two hundred cities or all the brands of a catalog. It is offered only on the list of a category. It never updates a term that exists.
- A member who can edit content can import. The Administrator role is not required.
- The fields and references of the type must exist before the import. A field is created in the Content types menu, never from the import. Add fields to a type describes this step.
Prepare your file
- Open the list of the category, for example Cities, in the menu of the type that cites it.
- Click Import, next to the add button. The Import entries window opens.
- Click Download template (.csv). You receive the file
entries-import-template.csv. - Open it in your spreadsheet. It has one column per language of the site, the main language first. The header of each column is the code of its language, for example
froren. - Write one term per row, its title in each language. Add one column per field or reference to fill in, for example
Latitude. - Save the file as CSV, XLS or XLSX.

The downloaded file starts with the line sep=;. With it, Excel opens the file in columns whatever its regional setting. The import ignores this line.
| Element | Rule |
|---|---|
| Header row | Required. The import matches each column by its header, never by its position: the order of the columns is free. |
| Language column | Its header is the code of the language (fr, fr_FR or fr-FR) or its full name in its own language (français (France)). Capitalization does not matter. |
| Title | A row without a title, neither in a language nor in a column sent to Entry title, is skipped. An empty title cell does not create that language, except the main language when a column goes to Entry title. |
| Field value | Written in all the languages of the term: the latitude of a city is the same everywhere. |
| Reference | The title or the slug of the linked content, never an identifier. Several contents in one cell are separated by commas. A reference that accepts only one keeps the first. |
| Empty cell | Writes nothing. |
Import the file
- In the Import entries window, drag your file onto the Drag your file here area or click Choose a file. The message Reading file… appears.
- Under Detected columns, check the language of each title column. Under First rows of the file, check the titles of the first five rows.
- Under Columns that are not a language, choose in the Goes to list the destination of each column: a field, a reference, Entry title or Ignore this column.
- Read the announced number. It is the number of terms the import will create: one per row and per language whose title is filled in. For two hundred filled rows in three languages, the window shows 600 entries will be created, languages included.
- Click the Import 600 entries button, which repeats the announced number. The message Creating… appears. At 0, the button stays grayed out: send a column to Entry title.
- Read the report, then click Close and refresh. The list shows the terms created.

Nothing is created before you click the import button. A column whose header resembles the name or key of a field is proposed on that field. The import ignores accents, capitals and spaces: LATITUDE lands on the Latitude field. You confirm each column.
A site language without a column is flagged with No column for these site languages: followed by its codes. The import still runs, without that language.
Import a file with no language column
A file whose column of names is called Name, for example, has no language column. In the Goes to list of that column, choose Entry title. Each row whose name is filled in creates a term in the main language of the site. The announced number and the button update, and the main language leaves the list of languages without a column.
Entry title is also useful when the file has language columns: it gives the title in the main language to the rows that have no title in that language.

Read the report
One row of the file creates one term per language. These terms are linked together as translations. Each term created receives its language.
- A complete term is published.
- A term with an empty required field stays a draft. The status is decided language by language: the French version can be published while the English one stays a draft.
- A row without a title is skipped.
The report starts with Import finished and the total, for example Published: 23. Draft: 2. Skipped: 1. One line per special case follows, for example Row 11: “Couëron” left as a draft because Latitude is missing. Complete these drafts in the editor, then publish them.

The sitemap.xml is rebuilt at the end of the import. The history of the site keeps a single line for the import, with the number of terms created.
Fix a reading error
| Message | Fix |
|---|---|
| The file could not be read. Use CSV, XLS or XLSX. | Save the file in one of these formats. |
| The file contains no data rows. | Add at least one row under the header row. |
| The header row is empty. Write a language code or a name above each column. | Write the code of a site language as the header, for example fr, or the name of each column. |
A title column whose header is misspelled, for example French, is not recognized as a language. It appears under Columns that are not a language: correct its header and upload the file again, or send it to Entry title if it is the main language.