From c76b5f32e2a4ce229d7294d4d582e714b72e08e7 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Wed, 1 Apr 2026 16:46:32 +0200 Subject: [PATCH] fix(i18n): update last training filter hint across multiple languages - Revised the lastTrainingFilterHint in localization files for German, English (AU, GB, US), and Swiss German to enhance clarity regarding the age-class column and details available on row hover. - Improved consistency in terminology across different language files to ensure a better user experience. --- frontend/src/i18n/locales/de-CH.json | 2 +- frontend/src/i18n/locales/de.json | 2 +- frontend/src/i18n/locales/en-AU.json | 2 +- frontend/src/i18n/locales/en-GB.json | 2 +- frontend/src/i18n/locales/en-US.json | 2 +- frontend/src/views/MembersView.vue | 25 +++++++++++++++---------- 6 files changed, 20 insertions(+), 15 deletions(-) diff --git a/frontend/src/i18n/locales/de-CH.json b/frontend/src/i18n/locales/de-CH.json index 3c2cc3ed..641e8a03 100644 --- a/frontend/src/i18n/locales/de-CH.json +++ b/frontend/src/i18n/locales/de-CH.json @@ -476,7 +476,7 @@ "lastTrainingFilterHasDate": "Mit erfasstem Datum", "lastTrainingFilterNoDate": "Ohne letztes Training", "lastTrainingFilterNotInTraining": "„Nicht mehr im Training“", - "lastTrainingFilterHint": "In der Tabelle: aktuelle Saison in der AK-Spalte. Alle Details (beide Saisons, letztes Training, ggf. Teilnahmen) beim Überfahren der Zeile.", + "lastTrainingFilterHint": "AK-Spalte: laufende und nächste Saison. Weitere Details (letztes Training, Teilnahmen) auch beim Überfahren der Zeile.", "rowTooltipSeparator": "·", "ttAgeClassCol": "AK (TT)", "ttAdult": "Erwachsene (kein Jugend nach Stichtag)", diff --git a/frontend/src/i18n/locales/de.json b/frontend/src/i18n/locales/de.json index 6e7b8e03..c420996f 100644 --- a/frontend/src/i18n/locales/de.json +++ b/frontend/src/i18n/locales/de.json @@ -251,7 +251,7 @@ "lastTrainingFilterHasDate": "Mit erfasstem Datum", "lastTrainingFilterNoDate": "Ohne letztes Training", "lastTrainingFilterNotInTraining": "„Nicht mehr im Training“", - "lastTrainingFilterHint": "In der Tabelle: aktuelle Saison in der AK-Spalte. Alle Details (beide Saisons, letztes Training, ggf. Teilnahmen) beim Überfahren der Zeile.", + "lastTrainingFilterHint": "AK-Spalte: laufende und nächste Saison. Weitere Details (letztes Training, Teilnahmen) auch beim Überfahren der Zeile.", "rowTooltipSeparator": "·", "ttAgeClassCol": "AK (TT)", "ttAdult": "Erwachsene (kein Jugend nach Stichtag)", diff --git a/frontend/src/i18n/locales/en-AU.json b/frontend/src/i18n/locales/en-AU.json index 8832e9b7..1970ec79 100644 --- a/frontend/src/i18n/locales/en-AU.json +++ b/frontend/src/i18n/locales/en-AU.json @@ -476,7 +476,7 @@ "lastTrainingFilterHasDate": "With a recorded date", "lastTrainingFilterNoDate": "No last training", "lastTrainingFilterNotInTraining": "Flagged “no longer training”", - "lastTrainingFilterHint": "Table: current season in the age-class column. Full detail (both seasons, last training, participations if known) on row hover.", + "lastTrainingFilterHint": "Age-class column: current and next season. Extra detail (last training, participations) on row hover.", "rowTooltipSeparator": "·", "ttAgeClassCol": "Age class (TT)", "ttAdult": "Adults (not youth by cutoff)", diff --git a/frontend/src/i18n/locales/en-GB.json b/frontend/src/i18n/locales/en-GB.json index 94635de2..dafc5f8b 100644 --- a/frontend/src/i18n/locales/en-GB.json +++ b/frontend/src/i18n/locales/en-GB.json @@ -751,7 +751,7 @@ "lastTrainingFilterHasDate": "With a recorded date", "lastTrainingFilterNoDate": "No last training", "lastTrainingFilterNotInTraining": "Flagged “no longer training”", - "lastTrainingFilterHint": "Table: current season in the age-class column. Full detail (both seasons, last training, participations if known) on row hover.", + "lastTrainingFilterHint": "Age-class column: current and next season. Extra detail (last training, participations) on row hover.", "rowTooltipSeparator": "·", "ttAgeClassCol": "Age class (TT)", "ttAdult": "Adults (not youth by cutoff)", diff --git a/frontend/src/i18n/locales/en-US.json b/frontend/src/i18n/locales/en-US.json index 9765cde4..17b03502 100644 --- a/frontend/src/i18n/locales/en-US.json +++ b/frontend/src/i18n/locales/en-US.json @@ -476,7 +476,7 @@ "lastTrainingFilterHasDate": "With a recorded date", "lastTrainingFilterNoDate": "No last training", "lastTrainingFilterNotInTraining": "Flagged “no longer training”", - "lastTrainingFilterHint": "Table: current season in the age-class column. Full detail (both seasons, last training, participations if known) on row hover.", + "lastTrainingFilterHint": "Age-class column: current and next season. Extra detail (last training, participations) on row hover.", "rowTooltipSeparator": "·", "ttAgeClassCol": "Age class (TT)", "ttAdult": "Adults (not youth by cutoff)", diff --git a/frontend/src/views/MembersView.vue b/frontend/src/views/MembersView.vue index 075c83fa..6a163ef1 100644 --- a/frontend/src/views/MembersView.vue +++ b/frontend/src/views/MembersView.vue @@ -431,7 +431,14 @@ {{ getFormattedBirthdate(member.birthDate) }} {{ getAgeLabel(member.birthDate) }} - {{ formatMemberTtAgeClassCompactLine(member) }} +
+ {{ line }} +
{{ getOptionalFormattedDate(member.lastTraining, 'members.previewNoLastTraining') }} @@ -2442,10 +2449,6 @@ export default { const d = new Date(member.lastTraining); return !Number.isNaN(d.getTime()); }, - formatMemberTtAgeClassCompactLine(member) { - const lines = this.formatMemberTtAgeClassLines(member); - return lines[0] || '–'; - }, memberRowHoverTooltip(member) { const akFull = this.formatMemberTtAgeClassLines(member).join(` ${this.$t('members.rowTooltipSeparator')} `); const dateLabel = this.$t('members.previewLastTraining'); @@ -3424,11 +3427,13 @@ table td { max-width: 11rem; } -.tt-age-class-compact { - display: block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; +.tt-age-class-line + .tt-age-class-line { + margin-top: 0.2rem; +} + +.tt-age-class-line--next { + opacity: 0.88; + font-size: 0.92em; } .last-training-cell {