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.
TypoScript
Output localized strings with Typoscript
The getText property LLL can be used to fetch translations from a translation file and output it in the current language:
lib.blogListTitle = TEXT
lib.blogListTitle.data = LLL : EXT:blog_example/Resources/Private/Language/locallang.xlf:blog.list
TypoScript conditions based on the current language
The condition function siteLanguage can be used to provide certain TypoScript configurations only for certain languages. You can query for any property of the language in the site configuration.
lib.something = TEXT
[siteLanguage("locale") == "de_CH"]
lib.something.value = This site has the locale "de_CH"
[END]
[siteLanguage("title") == "Italy"]
lib.something.value = This site has the title "Italy"
[END]
Changing localized terms using TypoScript
Attention
When localized strings are managed directly in TypoScript instead of .xlf
files the translations are not exported with export tools to be send to
translation agencies. The language strings in TypoScript might be
overlooked when introducing future translations.
It is possible to override texts in the plugin configuration in TypoScript for Extbase based plugins.
Overriding translations in non-Extbase plugins might work depending on
how they are implemented. Overriding translations works if the plugin is
based on the class AbstractPlugin and uses the function
$this->pi_
.
Attention
Setting _LOCAL_
has no effect if the ViewHelper
<f:
is used outside of the Extbase context.
See TypoScript reference, _LOCAL_LANG.
If, for example, you want to use the text "Remarks" instead of the
text "Comments", you can overwrite the identifier
comment_
for the affected languages. For this, you can
add the following line to your TypoScript template:
plugin.tx_blogexample._LOCAL_LANG.default.comment_header = Remarks
plugin.tx_blogexample._LOCAL_LANG.de.comment_header = Bemerkungen
plugin.tx_blogexample._LOCAL_LANG.zh.comment_header = 备注
With this, you will overwrite the localization of the term
comment_
for the default language and the languages "de" and "zh"
in the blog example.
The locallang.
files of the extension do not need to be changed for
this.
Attention
Setting _LOCAL_
might not work for the ViewHelper
<f:
if used outside of the Extbase request.
and the extension
ViewHelper attribute is not set and the key used
does not follow the LLL:
syntax.
Outside of an Extbase request TYPO3 tries to infer the the extension key
from the extension
ViewHelper attribute or the language key
itself.
page = PAGE
page.10 = FLUIDTEMPLATE
page.10.template = TEXT
page.10.template.value (
# infer from extensionName
<f:translate key="onlineDocumentation" extensionName="backend" />
# infer from language key
<f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang.xlf:onlineDocumentation" />
# should not work because the locallang.xlf does not exist, but works right now
<f:translate key="LLL:EXT:backend/Resources/locallang.xlf:onlineDocumentation" />
)
# Note the tx_ prefix
plugin.tx_backend._LOCAL_LANG.default.onlineDocumentation = TYPO3 Online Documentation from Typoscript
stdWrap.lang
std
offers the lang property,
which can be used to provide localized strings directly from TypoScript.
This can be used as a quick fix but it is not recommended to
manage translations within the TypoScript code.