Multilanguage

Yes, t3api supports multilanguage applications!

T3api offers two ways you can request multilanguage data:

  • standard language prefix
  • language header

Standard prefix

First is a standard way, just to prefix your request with language base as defined in your site's config.yaml.

  • https://13.t3api.ddev.site/_api/news/news will return news in default language.
  • https://13.t3api.ddev.site/de/_api/news/news will return news in de language.

Language header

Second way it to use always the same default lang url and add request header X-Locale with value set to identifier of expected language. Identifier means languageId value from your site's config.yaml.

  • https://13.t3api.ddev.site/_api/news/news with header X-Locale: 0 or no header at all will return news in default language.
  • https://13.t3api.ddev.site/_api/news/news with header X-Locale: 1 will return news in de language.

Here is an config.yaml for the above examples:

languages:
  -
    title: English
    enabled: true
    languageId: '0'
    base: /
    typo3Language: default
    locale: en_US.UTF-8
    iso-639-1: en
    navigationTitle: ''
    hreflang: en-US
    direction: ltr
    flag: en-us-gb
  -
    title: German
    enabled: true
    languageId: '1'
    base: /de/
    typo3Language: de
    locale: de_DE.UTF-8
    iso-639-1: de
    navigationTitle: ''
    hreflang: de-DE
    direction: ltr
    fallbackType: strict
    flag: de
Copied!

It is possible to customize name of the language header inside ext_localconf.php:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['t3api']['languageHeader'] = 'My-Header-Name';
Copied!