mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-01-17 15:49:34 +00:00
Ensure that synonym placeholders get cached on a per locale level
This commit is contained in:
parent
e60033a309
commit
d894e1658f
2 changed files with 8 additions and 8 deletions
|
|
@ -50,9 +50,9 @@ readonly class RegisterSynonymsAsTranslationParametersListener
|
||||||
$this->translator = $translator;
|
$this->translator = $translator;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getSynonymPlaceholders(): array
|
public function getSynonymPlaceholders(string $locale): array
|
||||||
{
|
{
|
||||||
return $this->cache->get('partdb_synonym_placeholders', function (ItemInterface $item) {
|
return $this->cache->get('partdb_synonym_placeholders' . '_' . $locale, function (ItemInterface $item) use ($locale) {
|
||||||
$item->tag('synonyms');
|
$item->tag('synonyms');
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -62,12 +62,12 @@ readonly class RegisterSynonymsAsTranslationParametersListener
|
||||||
foreach (ElementTypes::cases() as $elementType) {
|
foreach (ElementTypes::cases() as $elementType) {
|
||||||
//Versions with capitalized first letter
|
//Versions with capitalized first letter
|
||||||
$capitalized = ucfirst($elementType->value); //We have only ASCII element type values, so this is sufficient
|
$capitalized = ucfirst($elementType->value); //We have only ASCII element type values, so this is sufficient
|
||||||
$placeholders['[' . $capitalized . ']'] = $this->typeNameGenerator->typeLabel($elementType);
|
$placeholders['[' . $capitalized . ']'] = $this->typeNameGenerator->typeLabel($elementType, $locale);
|
||||||
$placeholders['[[' . $capitalized . ']]'] = $this->typeNameGenerator->typeLabelPlural($elementType);
|
$placeholders['[[' . $capitalized . ']]'] = $this->typeNameGenerator->typeLabelPlural($elementType, $locale);
|
||||||
|
|
||||||
//And we have lowercase versions for both
|
//And we have lowercase versions for both
|
||||||
$placeholders['[' . $elementType->value . ']'] = mb_strtolower($this->typeNameGenerator->typeLabel($elementType));
|
$placeholders['[' . $elementType->value . ']'] = mb_strtolower($this->typeNameGenerator->typeLabel($elementType, $locale));
|
||||||
$placeholders['[[' . $elementType->value . ']]'] = mb_strtolower($this->typeNameGenerator->typeLabelPlural($elementType));
|
$placeholders['[[' . $elementType->value . ']]'] = mb_strtolower($this->typeNameGenerator->typeLabelPlural($elementType, $locale));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $placeholders;
|
return $placeholders;
|
||||||
|
|
@ -82,7 +82,7 @@ readonly class RegisterSynonymsAsTranslationParametersListener
|
||||||
}
|
}
|
||||||
|
|
||||||
//Register all placeholders for synonyms
|
//Register all placeholders for synonyms
|
||||||
$placeholders = $this->getSynonymPlaceholders();
|
$placeholders = $this->getSynonymPlaceholders($event->getRequest()->getLocale());
|
||||||
foreach ($placeholders as $key => $value) {
|
foreach ($placeholders as $key => $value) {
|
||||||
$this->translator->addGlobalParameter($key, $value);
|
$this->translator->addGlobalParameter($key, $value);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ class RegisterSynonymsAsTranslationParametersTest extends KernelTestCase
|
||||||
|
|
||||||
public function testGetSynonymPlaceholders(): void
|
public function testGetSynonymPlaceholders(): void
|
||||||
{
|
{
|
||||||
$placeholders = $this->listener->getSynonymPlaceholders();
|
$placeholders = $this->listener->getSynonymPlaceholders('en');
|
||||||
|
|
||||||
$this->assertIsArray($placeholders);
|
$this->assertIsArray($placeholders);
|
||||||
// Curly braces for lowercase versions
|
// Curly braces for lowercase versions
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue