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:

EXT:site_package/Configuration/TypoScript/setup.typoscript
lib.blogListTitle = TEXT
lib.blogListTitle.data = LLL : EXT:blog_example/Resources/Private/Language/locallang.xlf:blog.list
Copied!

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.

EXT:site_package/Configuration/TypoScript/setup.typoscript
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]
Copied!

Changing localized terms using TypoScript

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_getLL(...).

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_header for the affected languages. For this, you can add the following line to your TypoScript template:

EXT:blog_example/Configuration/TypoScript/setup.typoscript
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 = 备注
Copied!

With this, you will overwrite the localization of the term comment_header for the default language and the languages "de" and "zh" in the blog example.

The locallang.xlf files of the extension do not need to be changed for this.

Outside of an Extbase request TYPO3 tries to infer the the extension key from the extensionName ViewHelper attribute or the language key itself.

Fictional root template
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
Copied!

stdWrap.lang

stdWrap 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.