public function render()
{
if (true === isset($this->arguments['id']) && false === empty($this->arguments['id'])) {
$id = $this->arguments['id'];
} else {
$id = $this->arguments['key'];
}
$default = $this->arguments['default'];
$htmlEscape = (bool) $this->arguments['htmlEscape'];
$arguments = $this->arguments['arguments'];
$extensionName = $this->arguments['extensionName'];
if (true === empty($id)) {
$id = $this->renderChildren();
}
if (true === empty($default)) {
$default = $id;
}
if (true === empty($extensionName)) {
if (true === method_exists($this, 'getControllerContext')) {
$request = $this->getControllerContext()->getRequest();
} else {
$request = $this->controllerContext->getRequest();
}
$extensionName = $request->getControllerExtensionName();
}
$value = LocalizationUtility::translate($id, $extensionName, $arguments);
if (true === empty($value)) {
$value = $default;
if (true === is_array($arguments)) {
$value = vsprintf($value, $arguments);
}
} elseif (true === $htmlEscape) {
$value = htmlspecialchars($value);
}
return $value;
}