Skip to content

fix(i18n): align card/widget strings with existing terms - #54

Merged
cursor[bot] merged 2 commits into
asachs01:mainfrom
hollabee:fix/i18n-de-consistency
Oct 17, 2026
Merged

cursor[bot] merged 2 commits into
asachs01:mainfrom
hollabee:fix/i18n-de-consistency

Conversation

@hollabee

@hollabee hollabee commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Follow-up to #48 (refs #47). A few Group 1 strings used a different word than the rest of their locale for the same thing.

German (I can vouch for these)

Key Before After Why
cards.tasks.displayName Aufgaben To-dos "Aufgaben" means Chores everywhere else, so the To-do card was headed like the Chores screen
cards.shopping.displayName Einkaufen Einkauf matches the card body and quick-add
photoFrame.backToDashboard Zurück zum Dashboard Zurück zur Übersicht the dashboard is "Übersicht" in the nav
weatherView.feelsLike Gefühlt wie Gefühlt it's a label above the value
timer.soundKitchen Küche Timer the common German word for a kitchen timer

Other locales (consistency only)

Same kind of clash. Each new value is a term that locale's file already uses, so these don't introduce any new wording:

Locale Key Before After Matches
es cards.tasks.displayName Tareas Pendientes nav.tasks ("Tareas" is Chores)
pt cards.tasks.displayName Tarefas Afazeres nav.tasks ("Tarefas" is Chores)
it photoFrame.backToDashboard Torna alla dashboard Torna alla bacheca nav.dashboard
ko cards.shopping.displayName 쇼핑 장보기 dashboard.shopping

Also wires CardConfigModal's hard-coded Cancel/Save buttons to the existing common.cancel / common.save keys.

Mirrored into beacon/src/; scripts/check-beacon-sync.sh and tsc pass. CI test passes.

🤖 Generated with Claude Code

hollabee and others added 2 commits October 12, 2026 20:23
- cards.tasks.displayName: "Aufgaben" -> "To-dos" ("Aufgaben" is Chores
  elsewhere; nav and dashboard use "To-dos" for tasks)
- cards.shopping.displayName: "Einkaufen" -> "Einkauf" (matches the card
  body and quick-add)
- photoFrame.backToDashboard: "Zurück zum Dashboard" -> "Zurück zur
  Übersicht" (dashboard is "Übersicht" everywhere else)
- weatherView.feelsLike: "Gefühlt wie" -> "Gefühlt" (label above value)
- timer.soundKitchen: "Küche" -> "Timer" (the common German word for a kitchen timer)
- CardConfigModal: use common.cancel / common.save instead of hard-coded
  Cancel / Save

Refs asachs01#47

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… terms

Same kind of fix as the German one: Group 1 strings that used a
different word than the rest of the locale for the same thing. Each new
value is a term the same locale file already uses.

- es cards.tasks.displayName: "Tareas" -> "Pendientes" ("Tareas" is
  Chores; nav.tasks is "Pendientes")
- pt cards.tasks.displayName: "Tarefas" -> "Afazeres" ("Tarefas" is
  Chores; nav.tasks is "Afazeres")
- it photoFrame.backToDashboard: "Torna alla dashboard" -> "Torna alla
  bacheca" (nav.dashboard is "Bacheca")
- ko cards.shopping.displayName: "쇼핑" -> "장보기" (matches
  dashboard.shopping)

Refs asachs01#47

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hollabee hollabee changed the title fix(i18n): align German card/widget strings with existing terms fix(i18n): align card/widget strings with existing terms Oct 12, 2026
@cursor
cursor Bot merged commit 3e6bfd8 into asachs01:main Oct 17, 2026
1 check passed
github-actions Bot pushed a commit that referenced this pull request Oct 17, 2026
## [1.39.5](v1.39.4...v1.39.5) (2026-10-17)

### Bug Fixes

* **i18n:** align card/widget strings with existing terms ([#54](#54)) ([3e6bfd8](3e6bfd8)), closes [#47](#47)

Co-Authored-By: claude-flow <ruv@ruv.net>
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.39.5 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

cursor Bot pushed a commit that referenced this pull request Oct 17, 2026
* fix(i18n): translate remaining hardcoded screens

Complete i18n migration for all remaining hardcoded user-facing strings in root src/ (follow-up to #47, #48-#51, #54). Move strings to translation keys and fill in all 9 locales (de, en, es, fr, it, ja, ko, nl, pt).

Screens covered:
- ChoresView: all modals, buttons, labels, empty states
- Leaderboard: titles, period toggles, chore counts
- StreakBadge: tooltip and labels
- MusicView: empty state, player selection, playback controls
- NowPlayingBar: all aria-labels
- GroceryView: list selector, add/delete, item states
- OnboardingView: all steps, auth methods, error messages
- CardPickerModal: title and empty state
- ViewNameModal: labels and buttons
- Registry: default entities placeholder

Also fixed defaultConfig for ha-entities-list card to use translation key for placeholder instead of hardcoded "Entities" default title.

All changes mirrored to beacon/src/. TypeScript types enforce completeness across all locales. German translations vouched for by maintainer; others machine-generated but consistent with #54 terminology (To-dos vs Chores).

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Aaron Sachs <asachs01@users.noreply.github.com>

* fix(i18n): remove invalid placeholderKey from registry config

CardConfigField type doesn't support placeholderKey property.
Changed defaultConfig title to empty string instead of hardcoded "Entities".

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Aaron Sachs <asachs01@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Aaron Sachs <asachs01@users.noreply.github.com>
github-actions Bot pushed a commit that referenced this pull request Oct 17, 2026
## [1.39.6](v1.39.5...v1.39.6) (2026-10-17)

### Bug Fixes

* **i18n:** translate remaining hardcoded screens ([#55](#55)) ([42dbac1](42dbac1)), closes [#47](#47) [48-#51](https://github.com/48-/issues/51) [#54](#54) [#54](#54)

Co-Authored-By: claude-flow <ruv@ruv.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant