public function render($id = null, $value = null, array $arguments = array(), $source = 'Main', $package = null, $quantity = null, $languageIdentifier = null)
{
if (preg_match(TranslationHelper::I18N_LABEL_ID_PATTERN, $id) === 1) {
// In the longer run, this "extended ID" format should directly be resolved in the localization service
list($package, $source, $id) = explode(':', $id, 3);
$source = str_replace('.', '/', $source);
}
if ($languageIdentifier === null) {
$languageIdentifier = $this->userService->getInterfaceLanguage();
}
// Catch exception in case the translation file doesn't exist, should be fixed in Flow 3.1
try {
$translation = parent::render($id, $value, $arguments, $source, $package, $quantity, $languageIdentifier);
// Fallback to english label if label was not available in specific language
if ($translation === $id && $languageIdentifier !== 'en') {
$translation = parent::render($id, $value, $arguments, $source, $package, $quantity, 'en');
}
return $translation;
} catch (Exception $exception) {
return $value ?: $id;
}
}