Attention
TYPO3 v11 has reached end-of-life as of October 31th 2024 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v11 here: TYPO3 ELTS.
Adding Languages
The Site Management > Sites module lets you specify which languages are active for your site, which languages are available, and how they should behave. New languages for a site can also be configured in this module.
When the backend shows the list of available languages, the list of languages is limited to the languages defined by the sites module. For instance, the languages are used in the page module language selector, when editing records or in the list module.
The language management provides the ability to hide a language on the frontend while allowing it on the backend. This enables editors to start translating pages without them being directly live.
Note
In case no site configuration has been created for a tree, all configured
languages are displayed. In this case the page TSconfig options mod.
,
mod.
and
mod.
settings are also considered -
those are obsolete, if a site configuration exists.
Language fallbacks can be configured for any language except the default one. A language fallback means that if content is not available in the current language, the content is displayed in the fallback language. This may include multiple fallback levels - for example, "Modern Chinese" might fall back to "Chinese (Traditional)", which in turn may fallback to "English". All languages can be configured separately, so you can specify different fallback chains and behaviors for each language.
Example of a language configuration (excerpt):
languages:
- languageId: 0
title: English
navigationTitle: ''
base: /
locale: en_GB.UTF-8
iso-639-1: en
hreflang: en-US
direction: ltr
typo3Language: default
flag: gb
Configuration properties
enabled
-
- Type
- bool
- Example
true
Defines, if the language is visible on the frontend. Editors in the TYPO3 backend will still be able to translate content for the language.
languageId
-
- Type
- integer
- Example
1
For the default/main language of the given site, use value
0
. For additional languages use a number greater than0
. Every site should have at last one language configured - withlanguage
.Id: 0 Attention
Once pages, content or records are created in a specific language, the
language
must not be changed anymore.Id
title
-
- Type
- string
- Example
English
The internal human-readable name for this language.
websiteTitle
-
- Type
- string
- Example
My custom very British title
Overrides the global website title for this language.
navigationTitle
-
- Type
- string
- Example
British
Optional navigation title which is used in
HMENU.
.special = language
base
-
- Type
- string / URL
- Example
/uk/
The language base accepts either a URL or a path segment like
/en/
.
baseVariants
-
- Type
- array
Allows different base URLs for the same language. They follow the same syntax as the base variants on the root level of the site config and they get active, if the condition matches.
Example:
baseVariants: - base: 'https://example.localhost/' condition: 'applicationContext == "Development"' - base: 'https://staging.example.com/' condition: 'applicationContext == "Production/Sydney"' - base: 'https://testing.example.com/' condition: 'applicationContext == "Testing/Paris"'
Copied!
locale
-
- Type
- string / locale
- Example
en_
GB
The locale to use for this language. For example, it is used during frontend rendering. That locale needs to be installed on the server. In a Linux environment, you can see installed locales with
locale -
. Multiple fallback locales can be set as a comma-separated list. TYPO3 will then iterate through the locales from left to right until it finds a locale, that is installed on the server.a
iso-639-1
-
- Type
- string
- Example
en
The two-letter code for the language according to ISO-639 nomenclature.
hreflang
-
- Type
- string
- Example
en-
GB
The frontend language for
hreflang
andlang
tags.
direction
-
- Type
- string
- Example
ltr
The text direction for content in this language (left-to-right or right-to-left).
typo3Language
-
- Type
- string
- Example
en
Language identifier to use in TYPO3 XLIFF files.
flag
-
- Type
- string
- Example
gb
The flag identifier. For example, the flag is displayed in the backend page module.
fallbackType
-
- Type
- string
- Example
strict
The language fallback mode, one of:
fallback
-
Fall back to another language, if the record does not exist in the requested language. Do overlays and keep the ones that are not translated.
It behaves like the old
config.
. Keep the ones that are only available in default language.sys_ language_ overlay = 1 strict
-
Same as
fallback
but removes the records that are not translated.If there is no overlay, do not render the default language records, it behaves like the old
hide
, and include records without default translation.Non Translated free
-
Fall back to another language, if the record does not exist in the requested language. But always fetch only records of this specific (available) language.
It behaves like old
config.
.sys_ language_ overlay = 0
fallbacks
-
- Type
- comma-separated list of language IDs
- Example
1,0
The list of fallback languages. If none has a matching translation, a "pageNotFound" is thrown.