Skip to content

Release 7.8.1: everything in your language, plus fixes found on the way - #1235

Merged
tempus2016 merged 7 commits into
mainfrom
release/7.8.1
Nov 6, 2026
Merged

tempus2016 merged 7 commits into
mainfrom
release/7.8.1

Conversation

@tempus2016

Copy link
Copy Markdown
Owner

Release 7.8.1: a full translation pass plus the bugs it found. Fixes #1234.

TaskMate 7.8.1

TaskMate now speaks your language everywhere, not just on most screens. The Penalties card no longer shows penalties.new_bonus-style key names (#1234), and every card, the admin panel, error messages, entity names and action drop-downs were checked line by line and translated in all 11 languages. Nothing needs migrating, and entity ids don't change. Minimum Home Assistant is still 2024.7.0.


🐛 Fixed: the Penalties card showed key names instead of words (#1234)

In edit mode the Penalties card's buttons read penalties.new_bonus and penalties.add_bonus, and saving a new penalty showed penalties.toast_saved. The Bonuses and Penalties cards share their code, and it asked for the bonus wording on both. They now read New Penalty / Add Penalty / Penalty saved (in every language). Reinstalling could never fix this, because it was in the card itself. A new test checks that every word either card asks for exists for both.

🌍 Fixed: words still in English, or shown as key names

  • Key names on screen — the approvals card's and parent dashboard's "View photo", the leaderboard from 6th place down (leaderboard.ordinal_6), and the Birthday badge's criteria in the panel now show words.
  • English words inside translated sentences — messages such as German "Bearbeite penalty", "Fehler bei approve chore" and "Fehler bei add Punkten" now read fully in your language.
  • Text that was typed into the code in English — every card's setup error, the "Use global default" design option in every card editor, sound names, rotation modes ("alternating"), auction refusal reasons, data health warnings, avatar unlock rules ("Level 5") and avatar names ("Rocket", "Royalty"), badge previews, the built-in template packs (they created English-named chores), stepper and button labels, the read-aloud phrases, and the printable chart's days and months.
  • One and many — "1 chores", "1 hours" and similar now have their singular forms.
  • Grammar — sentences that dropped a lower-cased word into the middle ("Keine aufgaben", "Supprimer tâche") now have their own wording per item.
  • Wrong wording — German Cancel was "Stornieren" (cancel an order), now "Abbrechen"; "Bonus gespart" is now "Bonus gespeichert"; "Sticky"/"Spread" group policies are translated in German, Norwegian and Portuguese; British spellings in en-GB (behaviour, organised, practise).
  • Wrong counts on two console pills — the calendar card's said "0 of N done" for chores still to do, and the streak card's showed the number of children on a streak as "2d streak".

🌍 Fixed: numbers, dates, times, money and percentages follow your settings

  • Numbers and times use Home Assistant's number and time format everywhere — e.g. "×1,5" in German, and 12-hour times for 12-hour users in reminders, bedtime, boosts, set times and time locks.
  • Dates in the panel's insights and reward expiry show as dates (e.g. "6. Nov. 2026") instead of raw 2026-11-06.
  • Allowance amounts put the currency where your language does: "£5", "5 €", "R$ 5".
  • Percentages follow your language: "12 %" in German, French, Danish and Norwegian, "12%" elsewhere.
  • Quoted names in messages use your language's quotation marks („Zimmer aufräumen“, « Ranger la chambre », “Tidy room”).

🌍 Fixed: errors show in your language

When TaskMate refuses an action — a chore or reward not found, a reward sold out, pets switched off, not enough points to pay out — the message used to be English for everyone. About 440 messages are now translated, and the cards, the admin panel, Home Assistant's own pop-ups and voice-assistant replies all show them in your language. The allowance payout message now uses your points name instead of the word "points".

Automations and scripts see the same errors as before: a refused action is still a validation error, and the English text is unchanged apart from the quotation marks and points name above.

🌍 Fixed: entity names and action drop-downs are translated

  • Entity names — the overview, chores, rewards, points, stats, badges, wishlist, watch, approvals, activity sensors, the complete/claim buttons and the activity events now have names in your Home Assistant language, e.g. "TaskMate Punkte von Malia". Entity ids stay exactly as they are, on existing installs and on new ones in any language, so dashboards, cards and automations keep working.
  • Action drop-downs — every choice list in Developer Tools → Actions and in the automation editor (difficulty, rotation, tiers, moods, pet species, sounds, inspection windows and more) shows labels instead of ids like every_2_days.
  • Setup — the setup dialog suggests the points name in your Home Assistant language ("Sterne", "Étoiles") instead of always "Stars".

🐛 Fixed: other bugs found during the check

  • Points Display card editor — the header colour picker threw an error and didn't change the colour.
  • Child card — stopping a timed chore left the celebration stuck on screen.
  • Rewards card (designed styles) — the claim confirmation could show a negative "Remaining" for a jackpot or savings-pool reward; it now uses the pool's total, like the classic style, and the claim button's tooltip shows when a limited reward can be claimed again.
  • Auction, Bounty and Routine cards — the card picker's preview showed an error instead of asking you to pick a child.
  • Badges card — filtering to a tier with no badges said "0 of N earned"; it now says there are no badges in that tier.
  • Weekly and Activity cards on phones — in German, the weekly stats and the console style's activity times ran past the card's edge at phone width.

Changed

  • Badge combinator values in the add_badge / update_badge actions are now and / or in the drop-down (Home Assistant requires lower case). AND and OR still work in existing automations.

Full details are in the Manual: Achievement Badges.

Full changelog: v7.8.0...v7.8.1

The Bonuses and Penalties cards share one card file. It asked for the
bonus-only add_bonus / new_bonus / toast_saved keys on both, so the
Penalties card showed "penalties.new_bonus", "penalties.add_bonus" and
"penalties.toast_saved". Each card now passes its own add/new keys, and
penalties.toast_saved is added in every language.

Also corrects German wording on these cards: Cancel is "Abbrechen", not
"Stornieren"; "Bonus gespeichert", not "gespart"; "für" in the bonus
toast; and a neutral penalty placeholder. pt-BR uses "Aplicando a".

Fixes #1234
…kend

A line-by-line read of every card, editor, the admin panel and the
backend for text that reached users untranslated or as a raw key.

Raw keys fixed: approvals/parent dashboard "View photo", the 6th+
leaderboard place, the Birthday badge criteria, and German/other
messages that had English words spliced in ("Bearbeite penalty",
"Fehler bei approve chore", "Fehler bei add Punkten").

Hard-coded English translated: setup errors on every card, the
"Use global default" editor fallback, sound names, rotation modes,
auction refusal reasons, data health warnings, avatar unlock rules,
badge previews, built-in template packs, stepper and button labels,
the read-aloud defaults, the printable chart, select entity states,
two services and several service fields, and backend help/rate-limit
errors (now translation keys).

Also: missing singular forms ("1 chores", "1 hours"), grammar broken
by lower-cased words spliced into sentences, wrong keys on the
calendar and streak console pills, numbers and times shown outside
Home Assistant's number and time format, and value fixes in de, nb,
nn, pt, pt-BR, fr, nl and en-GB.
Insights intros, the projection table and reward expiry showed raw ISO
dates; bedtime and boost previews showed raw 24-hour times. Both now
follow Home Assistant's date and time format.

The allowance ledger put the currency symbol first in every language;
it now follows each language's order ("£5", "5 €", "R$ 5").

"XP" goes through a common.xp key instead of being typed into four
places. Percentages built in code use a shared formatter, so German,
French, Danish and Norwegian get "12 %", and the percent signs inside
translated strings now follow the same rule per language.
…er's language

When TaskMate refused an action (a child or chore not found, a reward
sold out, pets switched off, ...) the message came from about 450
hard-coded English strings, so every user saw it in English.

Backend: a new TaskMateError (errors.py) is both a ValueError, so
existing handling is unchanged, and a ServiceValidationError carrying
a translation key. Its English text is read from strings.json, so each
message is written once; 424 messages are now translated in all 11
languages. WebSocket commands, HTTP uploads and voice replies carry the
same keys, and the "chore"/"Parent" stand-ins are translated too.

Frontend: window.__taskmate_error_text shows Home Assistant's
translation of the key, and every card and the admin panel use it for
backend errors. The shipped avatars' names are translated.

Services: every dropdown in services.yaml has a translation key (11
new option lists, 52 options); the badge combinator options are now
lower case as Home Assistant requires.
…ser's language; fix bugs found on the way

Entity names (sensors, binary sensor, buttons, events) are translated
in all 11 languages. Entity ids stay exactly as before on every
supported Home Assistant version: each entity suggests its id from its
English name, so cards keep finding sensor.taskmate_overview and the
others on new non-English installs too.

Names quoted in errors and notifications use each language's own
quotation marks („…“, « … », “…”) instead of straight English quotes.
The allowance payout error uses the family's points name, and the
setup dialog suggests the points name in Home Assistant's language.

Bugs found during the translation audit:
- points-display editor: the header colour picker threw (missing
  _update)
- child card: stopping a timed chore called a missing confetti method,
  leaving the celebration stuck
- rewards card: the designed styles' confirm dialog now shares the
  classic one, including the pool/jackpot total (#557); the designed
  claim button's tooltip shows the claim limit
- auction, bounty and routine cards: the card picker preview showed an
  error instead of asking for a child
- badges card: an empty tier filter said "0 of N earned"; it now says
  there are no badges in that tier
- test_repairs shared one issue-registry mock between tests and failed
  in a full run
… phone-width card

Found by the mobile sweep in German: "Aufgaben" overflowed a quarter of
the weekly card's stat grid, and "23:32 · vor 2 T." pushed console
activity rows past the card edge. The stat grid now drops to two
columns when four don't fit, and the console row puts the relative age
under the clock time.
@github-actions github-actions Bot added documentation Improvements or additions to documentation backend Python integration code cards Lovelace cards / frontend (www/*.js) translations i18n / locale strings tests Test suite labels Nov 6, 2026
@tempus2016
tempus2016 merged commit 78ff309 into main Nov 6, 2026
18 checks passed
@tempus2016
tempus2016 deleted the release/7.8.1 branch November 6, 2026 22:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend Python integration code cards Lovelace cards / frontend (www/*.js) documentation Improvements or additions to documentation tests Test suite translations i18n / locale strings

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]:

1 participant