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:
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.
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.
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_myextension {
_LOCAL_LANG {
en.comment_header = Remarks
de.comment_header = Bemerkungen
zh.comment_header = 备注
}
}
With this, you will overwrite the localization of the term
comment_ for the languages "en", "de" and "zh"
in the blog example.
Which language key an override needs
Changed in version 15.0 Important: #110175 - TypoScript _LOCAL_LANG.default is a last-resort fallback
_LOCAL_ overrode the labels of the English XLIFF
file, because TYPO3 read default as English. It is a last resort now, so
an override of an English label has to move to en or en-.
Write the language key of the locale the override belongs to. TYPO3 resolves a label in this order, and takes the first one it finds:
- The
_LOCAL_override of the locale, for exampleLANG fr-.LU - The
_LOCAL_override of the language of that locale, or of one of its fallback locales, for exampleLANG fr. - The label of the XLIFF file of the locale or of a fallback locale.
_LOCAL_, and only where the label exists in none of the above.LANG. default
So default reaches the output only for a label that no XLIFF file carries.
Use it for a label of your own, and a language key for everything that
overrides a shipped label.
Write a key of a locale as the language in lowercase, a dash, and the country
in uppercase, so fr- and en-. TYPO3 normalizes the key, so fr_
resolves to the same locale. Keep to one spelling in a project, which stays
easier to read.
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="backend.messages: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.en {
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.