Browser-cache localization strings (+ new API endpoint to get them)

This commit is contained in:
Bernd Bestel
2021-06-29 20:24:02 +02:00
parent d18a8d8b56
commit b856911f0f
8 changed files with 52 additions and 10 deletions

View File

@@ -17,8 +17,13 @@ class BaseApiController extends BaseController
parent::__construct($container);
}
protected function ApiResponse(\Psr\Http\Message\ResponseInterface $response, $data)
protected function ApiResponse(\Psr\Http\Message\ResponseInterface $response, $data, $cache = false)
{
if ($cache)
{
$response = $response->withHeader('Cache-Control', 'max-age=2592000');
}
$response->getBody()->write(json_encode($data));
return $response;
}

View File

@@ -129,7 +129,6 @@ class BaseController
$this->View->set('__n', function ($number, $singularForm, $pluralForm) use ($localizationService) {
return $localizationService->__n($number, $singularForm, $pluralForm);
});
$this->View->set('GettextPo', $localizationService->GetPoAsJsonString());
// TODO: Better handle this generically based on the current language (header in .po file?)
$dir = 'ltr';

View File

@@ -85,6 +85,11 @@ class SystemApiController extends BaseApiController
}
}
public function GetLocalizationStrings(\Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Message\ResponseInterface $response, array $args)
{
return $this->ApiResponse($response, json_decode($this->getLocalizationService()->GetPoAsJsonString()), true);
}
public function __construct(\DI\Container $container)
{
parent::__construct($container);