Skip to content

Commit 60ff727

Browse files
Copilotjbtronics
andauthored
Replace hardcoded entity type names with synonym placeholders in English and German translations (#1128)
* Initial plan * Initial plan for replacing entity type names with placeholders Co-authored-by: jbtronics <[email protected]> * Replace entity type names with synonym placeholders in English translations Co-authored-by: jbtronics <[email protected]> * Add more synonym placeholders for storage location, project, and part patterns Co-authored-by: jbtronics <[email protected]> * Update tree navigation labels with synonym placeholders Co-authored-by: jbtronics <[email protected]> * Fix remaining entity type placeholders identified in code review Co-authored-by: jbtronics <[email protected]> * Fix placeholder syntax: use [Type]/[[Type]] instead of {type}/{{type}} and add German translations Co-authored-by: jbtronics <[email protected]> * Fix German translation to avoid awkward word concatenation with placeholder Co-authored-by: jbtronics <[email protected]> * Use capitalized placeholders in German translations (nouns are always capitalized in German) Co-authored-by: jbtronics <[email protected]> * Fixed length menu for datatable views * Capitalize placeholders at the beginning of sentences/titles in English translations Co-authored-by: jbtronics <[email protected]> * Ensure that synonym placeholders get cached on a per locale level --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: jbtronics <[email protected]> Co-authored-by: Jan Böhmer <[email protected]>
1 parent a356eec commit 60ff727

16 files changed

+318
-192
lines changed

src/EventListener/RegisterSynonymsAsTranslationParametersListener.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ public function __construct(
5050
$this->translator = $translator;
5151
}
5252

53-
public function getSynonymPlaceholders(): array
53+
public function getSynonymPlaceholders(string $locale): array
5454
{
55-
return $this->cache->get('partdb_synonym_placeholders', function (ItemInterface $item) {
55+
return $this->cache->get('partdb_synonym_placeholders' . '_' . $locale, function (ItemInterface $item) use ($locale) {
5656
$item->tag('synonyms');
5757

5858

@@ -62,12 +62,12 @@ public function getSynonymPlaceholders(): array
6262
foreach (ElementTypes::cases() as $elementType) {
6363
//Versions with capitalized first letter
6464
$capitalized = ucfirst($elementType->value); //We have only ASCII element type values, so this is sufficient
65-
$placeholders['[' . $capitalized . ']'] = $this->typeNameGenerator->typeLabel($elementType);
66-
$placeholders['[[' . $capitalized . ']]'] = $this->typeNameGenerator->typeLabelPlural($elementType);
65+
$placeholders['[' . $capitalized . ']'] = $this->typeNameGenerator->typeLabel($elementType, $locale);
66+
$placeholders['[[' . $capitalized . ']]'] = $this->typeNameGenerator->typeLabelPlural($elementType, $locale);
6767

6868
//And we have lowercase versions for both
69-
$placeholders['[' . $elementType->value . ']'] = mb_strtolower($this->typeNameGenerator->typeLabel($elementType));
70-
$placeholders['[[' . $elementType->value . ']]'] = mb_strtolower($this->typeNameGenerator->typeLabelPlural($elementType));
69+
$placeholders['[' . $elementType->value . ']'] = mb_strtolower($this->typeNameGenerator->typeLabel($elementType, $locale));
70+
$placeholders['[[' . $elementType->value . ']]'] = mb_strtolower($this->typeNameGenerator->typeLabelPlural($elementType, $locale));
7171
}
7272

7373
return $placeholders;
@@ -82,7 +82,7 @@ public function __invoke(RequestEvent $event): void
8282
}
8383

8484
//Register all placeholders for synonyms
85-
$placeholders = $this->getSynonymPlaceholders();
85+
$placeholders = $this->getSynonymPlaceholders($event->getRequest()->getLocale());
8686
foreach ($placeholders as $key => $value) {
8787
$this->translator->addGlobalParameter($key, $value);
8888
}

tests/EventListener/RegisterSynonymsAsTranslationParametersTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public function setUp(): void
3737

3838
public function testGetSynonymPlaceholders(): void
3939
{
40-
$placeholders = $this->listener->getSynonymPlaceholders();
40+
$placeholders = $this->listener->getSynonymPlaceholders('en');
4141

4242
$this->assertIsArray($placeholders);
4343
// Curly braces for lowercase versions

translations/messages.cs.xlf

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13495,5 +13495,14 @@ Vezměte prosím na vědomí, že se nemůžete vydávat za uživatele se zakáz
1349513495
<target>Uživatelé</target>
1349613496
</segment>
1349713497
</unit>
13498+
<unit id="MxKRRx_" name="datatable.datatable.lengthMenu">
13499+
<notes>
13500+
<note priority="1">Do not remove! Used for datatables rendering.</note>
13501+
</notes>
13502+
<segment state="translated">
13503+
<source>datatable.datatable.lengthMenu</source>
13504+
<target>_MENU_</target>
13505+
</segment>
13506+
</unit>
1349813507
</file>
13499-
</xliff>
13508+
</xliff>

translations/messages.da.xlf

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12164,5 +12164,14 @@ Bemærk venligst, at du ikke kan kopiere fra deaktiveret bruger. Hvis du prøver
1216412164
<target>Brugere</target>
1216512165
</segment>
1216612166
</unit>
12167+
<unit id="MxKRRx_" name="datatable.datatable.lengthMenu">
12168+
<notes>
12169+
<note priority="1">Do not remove! Used for datatables rendering.</note>
12170+
</notes>
12171+
<segment state="translated">
12172+
<source>datatable.datatable.lengthMenu</source>
12173+
<target>_MENU_</target>
12174+
</segment>
12175+
</unit>
1216712176
</file>
12168-
</xliff>
12177+
</xliff>

0 commit comments

Comments
 (0)