Persistence of multilingual fields
By default, multilingual items are persisted in split tables. Monolingual items are persisted in one database table.
For items that are multilingual, the translations for the first 5 languages that you have added are persisted in the main table, while the translations for the rest of the languages are persisted in a separate table per language or language culture. This way, you avoid uncontrollable expansion of the main table that can, otherwise, reach the database limitation of maximum number of columns per table. The only exception is for the identifier of the type that is also a required field - for example, the Title. They are persisted in the main table for better performance.
EXAMPLE: You have a multilingual site with 7 languages
en,
de,
es,
fr,
pt,
fin, and
swe. The first 5 languages are automatically added in the main table. The last 2 are persisted is split tables. Only their identifier fields are added in the main table. When a product is persisted in the database, the following fields are generated in three different database tables:
sf_products
id
Title_
- translation for English (the default system language)
Description_
- translation for English (the default system language)
Title_de
- translation for German
Description_de
- translation for German
Title_es
- translation for Spanish
Description_es
- translation for Spanish
Title_fr
- translation for French
Description_fr
- translation for French
Title_pt
- translation for Portuguese
Description_pt
- translation for Portuguese
Title_fin
- translation for Finnish
Title_swe
- translation for Swedish
sf_products_fin
- translation for Finnish
sf_products_swe
- translations for Swedish
EXAMPLE: For items that do not have translations, only one table is generated -
sf_products
with the following fields:
Control which languages are persisted in split tables
In addition to the first 5 languages and cultures that are automatically added in the main table and are not persisted in split tables, you can persist more languages in the main table.
To do this, perform the following:
- In Sitefinity CMS backend, navigate to Administration » Settings » Advanced.
- In the left pane, select Data » Database mapping options.
- In Languages and cultures not persisted in split tables field, enter in a comma-separated list of the languages or language cultures that you do not want to be persisted in split tables.
- Save your changes.
IMPORTANT: Do not delete any of the automatically added languages or cultures. These are the first 5 languages that you have added to the website.
RECOMMENDATION: For performance considerations, we do not recommend persisting more than 10 languages in the main table.