Skip to content

Commit a356eec

Browse files
Copilotjbtronics
andauthored
Replace type synonym placeholders with bracket notation for better DX (#1133)
* Initial plan * Replace placeholder syntax for type synonyms to be more DX friendly Co-authored-by: jbtronics <[email protected]> * Update translation files to use new placeholder syntax Co-authored-by: jbtronics <[email protected]> * Use mb_strtoupper with mb_substr for Unicode consistency Co-authored-by: jbtronics <[email protected]> * Make placeholder generation right * Removed obsolete transltions --------- 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 443cb57 commit a356eec

File tree

5 files changed

+19
-30
lines changed

5 files changed

+19
-30
lines changed

config/permissions.yaml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ perms: # Here comes a list with all Permission names (they have a perm_[name] co
1818

1919
parts: # e.g. this maps to perms_parts in User/Group database
2020
group: "data"
21-
label: "{{part}}"
21+
label: "[[Part]]"
2222
operations: # Here are all possible operations are listed => the op name is mapped to bit value
2323
read:
2424
label: "perm.read"
@@ -71,7 +71,7 @@ perms: # Here comes a list with all Permission names (they have a perm_[name] co
7171

7272

7373
storelocations: &PART_CONTAINING
74-
label: "{{storage_location}}"
74+
label: "[[Storage_location]]"
7575
group: "data"
7676
operations:
7777
read:
@@ -103,39 +103,39 @@ perms: # Here comes a list with all Permission names (they have a perm_[name] co
103103

104104
footprints:
105105
<<: *PART_CONTAINING
106-
label: "{{footprint}}"
106+
label: "[[Footprint]]"
107107

108108
categories:
109109
<<: *PART_CONTAINING
110-
label: "{{category}}"
110+
label: "[[Category]]"
111111

112112
suppliers:
113113
<<: *PART_CONTAINING
114-
label: "{{supplier}}"
114+
label: "[[Supplier]]"
115115

116116
manufacturers:
117117
<<: *PART_CONTAINING
118-
label: "{{manufacturer}}"
118+
label: "[[Manufacturer]]"
119119

120120
projects:
121121
<<: *PART_CONTAINING
122-
label: "{{project}}"
122+
label: "[[Project]]"
123123

124124
attachment_types:
125125
<<: *PART_CONTAINING
126-
label: "{{attachment_type}}"
126+
label: "[[Attachment_type]]"
127127

128128
currencies:
129129
<<: *PART_CONTAINING
130-
label: "{{currency}}"
130+
label: "[[Currency]]"
131131

132132
measurement_units:
133133
<<: *PART_CONTAINING
134-
label: "{{measurement_unit}}"
134+
label: "[[Measurement_unit]]"
135135

136136
part_custom_states:
137137
<<: *PART_CONTAINING
138-
label: "{{part_custom_state}}"
138+
label: "[[Part_custom_state]]"
139139

140140
tools:
141141
label: "perm.part.tools"

src/EventListener/RegisterSynonymsAsTranslationParametersListener.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,10 @@ public function getSynonymPlaceholders(): array
6060

6161
//Generate a placeholder for each element type
6262
foreach (ElementTypes::cases() as $elementType) {
63-
//We have a placeholder for singular
64-
$placeholders['{' . $elementType->value . '}'] = $this->typeNameGenerator->typeLabel($elementType);
65-
//We have a placeholder for plural
66-
$placeholders['{{' . $elementType->value . '}}'] = $this->typeNameGenerator->typeLabelPlural($elementType);
63+
//Versions with capitalized first letter
64+
$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);
6767

6868
//And we have lowercase versions for both
6969
$placeholders['[' . $elementType->value . ']'] = mb_strtolower($this->typeNameGenerator->typeLabel($elementType));

tests/EventListener/RegisterSynonymsAsTranslationParametersTest.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,11 @@ public function testGetSynonymPlaceholders(): void
4040
$placeholders = $this->listener->getSynonymPlaceholders();
4141

4242
$this->assertIsArray($placeholders);
43-
$this->assertSame('Part', $placeholders['{part}']);
44-
$this->assertSame('Parts', $placeholders['{{part}}']);
45-
//Lowercase versions:
43+
// Curly braces for lowercase versions
4644
$this->assertSame('part', $placeholders['[part]']);
4745
$this->assertSame('parts', $placeholders['[[part]]']);
46+
// Square brackets for capitalized versions (with capital first letter in placeholder)
47+
$this->assertSame('Part', $placeholders['[Part]']);
48+
$this->assertSame('Parts', $placeholders['[[Part]]']);
4849
}
4950
}

translations/messages.de.xlf

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14297,12 +14297,6 @@ Bitte beachten Sie, dass dieses System derzeit experimentell ist und die hier de
1429714297
<target>Mit Typsynonymen können Sie die Bezeichnungen von integrierten Datentypen ersetzen. Zum Beispiel können Sie „Footprint" in etwas anderes umbenennen.</target>
1429814298
</segment>
1429914299
</unit>
14300-
<unit id="GSqBiVV" name="{{part}}">
14301-
<segment>
14302-
<source>{{part}}</source>
14303-
<target>Bauteile</target>
14304-
</segment>
14305-
</unit>
1430614300
<unit id="wjcsjzT" name="log.element_edited.changed_fields.part_ipn_prefix">
1430714301
<segment>
1430814302
<source>log.element_edited.changed_fields.part_ipn_prefix</source>

translations/messages.en.xlf

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14146,12 +14146,6 @@ Please note that this system is currently experimental, and the synonyms defined
1414614146
<target>Type synonyms allow you to replace the labels of built-in data types. For example, you can rename "Footprint" to something else.</target>
1414714147
</segment>
1414814148
</unit>
14149-
<unit id="GSqBiVV" name="{{part}}">
14150-
<segment>
14151-
<source>{{part}}</source>
14152-
<target>Parts</target>
14153-
</segment>
14154-
</unit>
1415514149
<unit id="wjcsjzT" name="log.element_edited.changed_fields.part_ipn_prefix">
1415614150
<segment>
1415714151
<source>log.element_edited.changed_fields.part_ipn_prefix</source>

0 commit comments

Comments
 (0)