review: consistent naming and methodology
All checks were successful
ci/woodpecker/push/code-style Pipeline was successful
ci/woodpecker/push/functional-tests Pipeline was successful

This commit is contained in:
Ferdinand Kuhl 2023-08-08 12:11:46 +02:00
parent ad9c9fd678
commit ef297fa8e1
5 changed files with 22 additions and 19 deletions

View file

@ -9,7 +9,7 @@ use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface; use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface; use Psr\Http\Server\RequestHandlerInterface;
class ReplaceGetTranslationRequest implements MiddlewareInterface class TransformTranslationRequestMiddleware implements MiddlewareInterface
{ {
/** /**
* @var string * @var string
@ -26,11 +26,6 @@ class ReplaceGetTranslationRequest implements MiddlewareInterface
*/ */
protected string $translateGetParam; protected string $translateGetParam;
/**
* @param string $headerName
* @param string|null $reactOnPath
* @param string $translateGetParam
*/
public function __construct(string $headerName, ?string $reactOnPath, string $translateGetParam) public function __construct(string $headerName, ?string $reactOnPath, string $translateGetParam)
{ {
$this->headerName = $headerName; $this->headerName = $headerName;

View file

@ -17,7 +17,7 @@ use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface; use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface; use Psr\Http\Server\RequestHandlerInterface;
class TranslationMiddleware implements MiddlewareInterface class TranslationRequestMiddleware implements MiddlewareInterface
{ {
/** /**
* @var string * @var string

View file

@ -1,5 +1,5 @@
DigiComp:TransformTranslationRequest: DigiComp.FlowTranslationEndpoint:TransformTranslationRequestMiddleware:
className: "DigiComp\\FlowTranslationEndpoint\\Http\\ReplaceGetTranslationRequest" className: "DigiComp\\FlowTranslationEndpoint\\Http\\TransformTranslationRequestMiddleware"
arguments: arguments:
1: 1:
setting: "DigiComp.FlowTranslationEndpoint.headerName" setting: "DigiComp.FlowTranslationEndpoint.headerName"
@ -8,17 +8,25 @@ DigiComp:TransformTranslationRequest:
3: 3:
setting: "DigiComp.FlowTranslationEndpoint.replaceRoutedEndpoint.translateGetParam" setting: "DigiComp.FlowTranslationEndpoint.replaceRoutedEndpoint.translateGetParam"
DigiComp:TranslationResponseCache: DigiComp.FlowTranslationEndpoint:TranslationResponseCache:
className: "Neos\\Cache\\Frontend\\StringFrontend" className: "Neos\\Cache\\Frontend\\StringFrontend"
factoryObjectName: Neos\Flow\Cache\CacheManager factoryObjectName: "Neos\\Flow\\Cache\\CacheManager"
factoryMethodName: getCache factoryMethodName: "getCache"
arguments: arguments:
1: 1:
value: DigiComp_FlowTranslationEndpoint_Responses value: "DigiComp_FlowTranslationEndpoint_Responses"
DigiComp\FlowTranslationEndpoint\Http\TranslationMiddleware: DigiComp.FlowTranslationEndpoint:TranslationRequestMiddleware:
className: "DigiComp\\FlowTranslationEndpoint\\Http\\TranslationRequestMiddleware"
autowiring: true
arguments: arguments:
1: 1:
setting: "DigiComp.FlowTranslationEndpoint.headerName" setting: "DigiComp.FlowTranslationEndpoint.headerName"
2:
object: "Neos\\Flow\\I18n\\Service"
3:
object: "Neos\\Flow\\I18n\\Xliff\\Service\\XliffFileProvider"
4:
object: "Neos\\Flow\\I18n\\Detector"
5: 5:
object: "DigiComp:TranslationResponseCache" object: "DigiComp.FlowTranslationEndpoint:TranslationResponseCache"

View file

@ -4,10 +4,10 @@ Neos:
middlewares: middlewares:
translationReplace: translationReplace:
position: "before translation" position: "before translation"
middleware: "DigiComp:TransformTranslationRequest" middleware: "DigiComp.FlowTranslationEndpoint:TransformTranslationRequestMiddleware"
translation: translation:
position: "start 100" position: "start 100"
middleware: "DigiComp\\FlowTranslationEndpoint\\Http\\TranslationMiddleware" middleware: "DigiComp.FlowTranslationEndpoint:TranslationRequestMiddleware"
DigiComp: DigiComp:
FlowTranslationEndpoint: FlowTranslationEndpoint:

View file

@ -6,7 +6,7 @@ This package is designed to help bringing needed translations to javascript comp
Other solutions, which would generate files available for usage in client scope, have the disadvantage that one would have to repeat the relativ complex overriding and merging logic of Flow. With this endpoint you can get the same content, as you would get, if you call the translation service with your translation id. Other solutions, which would generate files available for usage in client scope, have the disadvantage that one would have to repeat the relativ complex overriding and merging logic of Flow. With this endpoint you can get the same content, as you would get, if you call the translation service with your translation id.
The main components are a `CurrentHtmlLangViewHelper`, which is intended to be used to fill the `lang` attribute of the `html` tag, so the frontend knows, which language is currently active (and is good practice anyway) and a `TranslationMiddleware`, which will respond to any request, which have a `X-Translation-Request` header, carrying a pattern of translation ids which should be returned. The main components are a `CurrentHtmlLangViewHelper`, which is intended to be used to fill the `lang` attribute of the `html` tag, so the frontend knows, which language is currently active (and is good practice anyway) and a `TranslationRequestMiddleware`, which will respond to any request, which have a `X-Translation-Request` header, carrying a pattern of translation ids which should be returned.
For example: For example:
```` ````
@ -45,4 +45,4 @@ async function translate(idPatterns) {
} }
``` ```
If, for whatever reason, you prefer to have a "traditional" single endpoint, which works without a custom header, you can set `DigiComp.FlowTranslationEndpoint.replaceRoutedEndpoint.reactOnPath`. At this point a middleware translates all incoming requests and the GET parameter `idPatterns` (you can change the name in Settings.yaml). If, for whatever reason, you prefer to have a "traditional" single endpoint, which works without a custom header, you can set `DigiComp.FlowTranslationEndpoint.replaceRoutedEndpoint.reactOnPath`. At this point a second middleware (`TransformGetTranslationRequestMiddleware`) transforms all incoming requests and the GET parameter `idPatterns` (you can change names in Settings.yaml).