Content::localize() 

\nn\t3::Content()->localize($table = 'tt_content', $data = [], $localize = true); 

Localize / translate data.

Examples:

Translate data using the current language of the frontend.

\nn\t3::Content()->localize( 'tt_content', $data );
Copied!

Get data in a DIFFERENT language than the one set in the frontend. Takes into account the fallback chain of the language that was set in the site config

\nn\t3::Content()->localize( 'tt_content', $data, 2 );
Copied!

Get data with own fallback chain. Completely ignores the chain, that was defined in the site config.

\nn\t3::Content()->localize( 'tt_content', $data, [3, 2, 0] );
Copied!
@param string $table Database table
@param array $data Array with the data of the default language (languageUid = 0)
@param mixed $localize Specification of how to translate. Boolean, uid or array with uids
@return array

Source Code 

public function localize($table = 'tt_content', $data = [], $localize = true)
{
	// Irgendwas ging schief?
	$pageRepository = \nn\t3::injectClass(PageRepository::class);
	if (!$pageRepository) return $data;
	// Aktuelle Sprache aus dem Frontend-Request
	$currentLanguageUid = \nn\t3::Environment()->getLanguage();
	// `false` angegeben - oder Zielsprache ist Standardsprache? Dann nichts tun.
	if ($localize === false || $localize === $currentLanguageUid) {
		return $data;
	}
	// `true` angegeben: Dann ist die Zielsprache == die aktuelle Sprache im FE
	if ($localize === true) {
		$localize = $currentLanguageUid;
		$fallbackChain = \nn\t3::Environment()->getLanguageFallbackChain($localize);
		$languageId = $localize;
	}
	// `uid` der Zielsprache angegeben (z.B. `1`)? Dann Fallback-Chain aus TYPO3-Site-Konfiguration laden
	if (is_numeric($localize)) {
		$languageId = (int)$localize;
		$fallbackChain = \nn\t3::Environment()->getLanguageFallbackChain($localize);
	}
	// `[2,1,0]` als Zielsprachen angegeben? Dann als Fallback-Chain verwenden
	if (is_array($localize)) {
		$languageId = $localize[0] ?? 0;
		$fallbackChain = $localize;
	}
	$overlayType = LanguageAspect::OVERLAYS_ON;
	foreach ($fallbackChain as $langUid) {
		$langAspect = GeneralUtility::makeInstance(LanguageAspect::class, $langUid, $langUid, $overlayType, $fallbackChain);
		if ($overlay = $pageRepository->getLanguageOverlay($table, $data, $langAspect)) {
			return $overlay;
		}
	}
	return $data;
}
Copied!