Deprecation: #94165 - sys_language table
See forge#94165
Description
Since the introduction of site handling back in TYPO3 v9, available
languages and their associated information, for example locale, ISO code or the
navigation title are configured in the site configurations. As a consequence,
the sys_
table just duplicated this information and is therefore
now deprecated.
The Core internally does not longer rely on this table but fetches
necessary information from the site languages instead. This means, there
won't be any relation to the sys_
table, which allows to
define any kind of "ID" for the language
field of records, which
is usually sys_
.
Also the site languages, used in site configurations, are now completely
independent of any sys_
record. Previously, when using the
site module to create or edit a site configuration, site languages could
only be added when a corresponding sys_
record existed.
This has now changed. The site configurations' languages
field now
features a Create new language button, which allows to create a new
site language for this site configuration. Such newly created site
language will then also be available in the selector box of all other
site configurations. The ID for a new site language is always created
automatically (auto-increment). When selecting this site language in
another site configuration, most of the fields will now be prefilled.
Note
When creating the first site configuration of a new installation, the languages selector box is empty, as new languages must be created via the Create new language button first. However, a default language (ID=0) record will always be added automatically.
Impact
Currently there is no direct impact. However, if your code relies on TYPO3
processing sys_
, you might have to adapt those places to use
site languages instead.
Affected Installations
All installations which rely on TYPO3 processing the sys_
table. For example for fetching available languages and their related
information.
Migration
Adapt your code to always use site languages for fetching and processing language related information.
For example, use the new TCA type language
, introduced in forge#57082,
instead of foreign_
for selecting a records'
language.