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_ - invariant language
    • Description_ - invariant language
    • Title_en  - translation for English
    • Description_en - translation for English
    • 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
    • id
    • Description_fin
  • sf_products_swe - translations for Swedish
    • id
    • Description_swe
EXAMPLE: For items that do not have translations, only one table is generated - sf_products with the following fields:
  • id
  • Title
  • Description

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:

  1. In Sitefinity CMS backend, navigate to Administration » Settings » Advanced.
  2. In the left pane, select Data » Database mapping options.
  3. In field Languages and cultures not persisted in split tables, enter in a comma-separated list the languages or language cultures that you do not want to be persisted in split tables.
  4. 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.

Was this article helpful?