diff --git a/frontend/src/components/falukant/DirectorInfo.vue b/frontend/src/components/falukant/DirectorInfo.vue index 47a9754..446081c 100644 --- a/frontend/src/components/falukant/DirectorInfo.vue +++ b/frontend/src/components/falukant/DirectorInfo.vue @@ -132,7 +132,7 @@ @@ -255,6 +255,14 @@ export default { } }, + speedLabel(value) { + const key = value == null ? 'unknown' : String(value); + const tKey = `falukant.branch.transport.speed.${key}`; + const translated = this.$t(tKey); + if (!translated || translated === tKey) return value; + return translated; + }, + openNewDirectorDialog() { console.log('openNewDirectorDialog'); this.$refs.newDirectorDialog.open(this.branchId); diff --git a/frontend/src/components/falukant/SaleSection.vue b/frontend/src/components/falukant/SaleSection.vue index 462969e..c481234 100644 --- a/frontend/src/components/falukant/SaleSection.vue +++ b/frontend/src/components/falukant/SaleSection.vue @@ -61,7 +61,7 @@ @@ -251,6 +251,13 @@ return new Date(a.eta).getTime() - new Date(b.eta).getTime(); }); }, + speedLabel(value) { + const key = value == null ? 'unknown' : String(value); + const tKey = `falukant.branch.transport.speed.${key}`; + const translated = this.$t(tKey); + if (!translated || translated === tKey) return value; + return translated; + }, }, async mounted() { await this.loadInventory(); diff --git a/frontend/src/i18n/locales/de/falukant.json b/frontend/src/i18n/locales/de/falukant.json index 2e4cd8d..24b75e2 100644 --- a/frontend/src/i18n/locales/de/falukant.json +++ b/frontend/src/i18n/locales/de/falukant.json @@ -351,6 +351,13 @@ "status": "Status", "actions": "Aktionen" }, + "speed": { + "1": "Langsam", + "2": "Mittel", + "3": "Schnell", + "4": "Sehr schnell", + "unknown": "Unbekannt" + }, "status": { "inUse": "In Benutzung", "building": "Im Bau", @@ -391,6 +398,7 @@ "repairSuccess": "Fahrzeug wird repariert!", "repairError": "Fehler beim Reparieren des Fahrzeugs." }, + "stocktype": { "wood": "Holzlager", "stone": "Steinlager", diff --git a/frontend/src/i18n/locales/en/falukant.json b/frontend/src/i18n/locales/en/falukant.json index 72e2222..284f361 100644 --- a/frontend/src/i18n/locales/en/falukant.json +++ b/frontend/src/i18n/locales/en/falukant.json @@ -22,6 +22,14 @@ }, "transport": { "waiting": "Transport waiting" + , + "speed": { + "1": "Slow", + "2": "Medium", + "3": "Fast", + "4": "Very fast", + "unknown": "Unknown" + } }, "random_event": { "windfall": { diff --git a/frontend/src/views/falukant/BranchView.vue b/frontend/src/views/falukant/BranchView.vue index 43baaa4..3c4e662 100644 --- a/frontend/src/views/falukant/BranchView.vue +++ b/frontend/src/views/falukant/BranchView.vue @@ -103,7 +103,7 @@ {{ v.type.capacity }} {{ conditionLabel(v.condition) }} {{ v.type.transportMode }} - {{ v.type.speed }} + {{ speedLabel(v.type.speed) }} {{ formatDateTime(v.availableFrom) }} @@ -601,6 +601,16 @@ export default { return 'Unbekannt'; }, + speedLabel(value) { + // Expect numeric speeds 1..4; provide localized labels as fallback to raw value + const key = value == null ? 'unknown' : String(value); + const tKey = `falukant.branch.transport.speed.${key}`; + const translated = this.$t(tKey); + // If translation returns the key (no translation found), fall back to the numeric value + if (!translated || translated === tKey) return value; + return translated; + }, + async loadVehicles() { if (!this.selectedBranch) return; try {